From 522964b40afca63660485cdcfc577b25bdf02e35 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 17 Jul 2020 21:45:53 +0000
Subject: l3 (17jul20)

git-svn-id: svn://tug.org/texlive/trunk@55860 c570f23f-e606-0410-a88d-b1316a301751
---
 .../texmf-dist/tex/latex/l3kernel/expl3-code.tex   | 1308 +++++++++-----------
 1 file changed, 556 insertions(+), 752 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex')

diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index c954b30dfb2..6779946f1f0 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -39,6 +39,7 @@
 %% l3fp-convert.dtx  (with options: `package')
 %% l3fp-random.dtx  (with options: `package')
 %% l3fparray.dtx  (with options: `package')
+%% l3cctab.dtx  (with options: `package')
 %% l3sort.dtx  (with options: `package')
 %% l3str-convert.dtx  (with options: `package')
 %% l3tl-analysis.dtx  (with options: `package')
@@ -68,7 +69,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-06-18}%
+\def\ExplFileDate{2020-07-17}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -765,9 +766,7 @@
   \__kernel_primitive:NN \pdfuniqueresname      \tex_pdfuniqueresname:D
   \__kernel_primitive:NN \pdfvorigin            \tex_pdfvorigin:D
   \__kernel_primitive:NN \pdfxform              \tex_pdfxform:D
-  \__kernel_primitive:NN \pdfxformattr          \tex_pdfxformattr:D
   \__kernel_primitive:NN \pdfxformname          \tex_pdfxformname:D
-  \__kernel_primitive:NN \pdfxformresources     \tex_pdfxformresources:D
   \__kernel_primitive:NN \pdfximage             \tex_pdfximage:D
   \__kernel_primitive:NN \pdfximagebbox         \tex_pdfximagebbox:D
   \__kernel_primitive:NN \ifpdfabsdim           \tex_ifabsdim:D
@@ -1046,7 +1045,7 @@
   \__kernel_primitive:NN \normaldeviate         \tex_normaldeviate:D
   \__kernel_primitive:NN \outputmode            \tex_pdfoutput:D
   \__kernel_primitive:NN \pageheight            \tex_pageheight:D
-  \__kernel_primitive:NN \pagewidth             \tex_pagewith:D
+  \__kernel_primitive:NN \pagewidth             \tex_pagewidth:D
   \__kernel_primitive:NN \protrudechars         \tex_protrudechars:D
   \__kernel_primitive:NN \pxdimen               \tex_pxdimen:D
   \__kernel_primitive:NN \randomseed            \tex_randomseed:D
@@ -1305,10 +1304,12 @@
 \tex_endgroup:D
 \tex_ifdefined:D \@@end
   \tex_let:D \tex_end:D                  \@@end
+  \tex_let:D \tex_input:D                \@@input
+\tex_fi:D
+\tex_ifdefined:D \@@hyph
   \tex_let:D \tex_everydisplay:D         \frozen@everydisplay
   \tex_let:D \tex_everymath:D            \frozen@everymath
   \tex_let:D \tex_hyphen:D               \@@hyph
-  \tex_let:D \tex_input:D                \@@input
   \tex_let:D \tex_italiccorrection:D     \@@italiccorr
   \tex_let:D \tex_underline:D            \@@underline
   \tex_ifdefined:D \@@shipout
@@ -1473,638 +1474,6 @@
   \tex_let:D \tex_middle:D \normalmiddle
   \tex_let:D \tex_right:D  \normalright
 \tex_fi:D
-\tex_begingroup:D
-  \tex_long:D \tex_def:D \use_ii:nn #1#2 {#2}
-  \tex_long:D \tex_def:D \use_none:n #1 { }
-  \tex_long:D \tex_def:D \__kernel_primitive:NN #1#2
-    {
-      \tex_ifdefined:D #1
-        \tex_expandafter:D \use_ii:nn
-      \tex_fi:D
-        \use_none:n { \tex_global:D \tex_let:D #2 #1 }
-    }
-  \tex_xdef:D \__kernel_primitives:
-    {
-      \tex_unexpanded:D
-        {
-  \__kernel_primitive:NN \beginL                \etex_beginL:D
-  \__kernel_primitive:NN \beginR                \etex_beginR:D
-  \__kernel_primitive:NN \botmarks              \etex_botmarks:D
-  \__kernel_primitive:NN \clubpenalties         \etex_clubpenalties:D
-  \__kernel_primitive:NN \currentgrouplevel     \etex_currentgrouplevel:D
-  \__kernel_primitive:NN \currentgrouptype      \etex_currentgrouptype:D
-  \__kernel_primitive:NN \currentifbranch       \etex_currentifbranch:D
-  \__kernel_primitive:NN \currentiflevel        \etex_currentiflevel:D
-  \__kernel_primitive:NN \currentiftype         \etex_currentiftype:D
-  \__kernel_primitive:NN \detokenize            \etex_detokenize:D
-  \__kernel_primitive:NN \dimexpr               \etex_dimexpr:D
-  \__kernel_primitive:NN \displaywidowpenalties
-    \etex_displaywidowpenalties:D
-  \__kernel_primitive:NN \endL                  \etex_endL:D
-  \__kernel_primitive:NN \endR                  \etex_endR:D
-  \__kernel_primitive:NN \eTeXrevision          \etex_eTeXrevision:D
-  \__kernel_primitive:NN \eTeXversion           \etex_eTeXversion:D
-  \__kernel_primitive:NN \everyeof              \etex_everyeof:D
-  \__kernel_primitive:NN \firstmarks            \etex_firstmarks:D
-  \__kernel_primitive:NN \fontchardp            \etex_fontchardp:D
-  \__kernel_primitive:NN \fontcharht            \etex_fontcharht:D
-  \__kernel_primitive:NN \fontcharic            \etex_fontcharic:D
-  \__kernel_primitive:NN \fontcharwd            \etex_fontcharwd:D
-  \__kernel_primitive:NN \glueexpr              \etex_glueexpr:D
-  \__kernel_primitive:NN \glueshrink            \etex_glueshrink:D
-  \__kernel_primitive:NN \glueshrinkorder       \etex_glueshrinkorder:D
-  \__kernel_primitive:NN \gluestretch           \etex_gluestretch:D
-  \__kernel_primitive:NN \gluestretchorder      \etex_gluestretchorder:D
-  \__kernel_primitive:NN \gluetomu              \etex_gluetomu:D
-  \__kernel_primitive:NN \ifcsname              \etex_ifcsname:D
-  \__kernel_primitive:NN \ifdefined             \etex_ifdefined:D
-  \__kernel_primitive:NN \iffontchar            \etex_iffontchar:D
-  \__kernel_primitive:NN \interactionmode       \etex_interactionmode:D
-  \__kernel_primitive:NN \interlinepenalties    \etex_interlinepenalties:D
-  \__kernel_primitive:NN \lastlinefit           \etex_lastlinefit:D
-  \__kernel_primitive:NN \lastnodetype          \etex_lastnodetype:D
-  \__kernel_primitive:NN \marks                 \etex_marks:D
-  \__kernel_primitive:NN \middle                \etex_middle:D
-  \__kernel_primitive:NN \muexpr                \etex_muexpr:D
-  \__kernel_primitive:NN \mutoglue              \etex_mutoglue:D
-  \__kernel_primitive:NN \numexpr               \etex_numexpr:D
-  \__kernel_primitive:NN \pagediscards          \etex_pagediscards:D
-  \__kernel_primitive:NN \parshapedimen         \etex_parshapedimen:D
-  \__kernel_primitive:NN \parshapeindent        \etex_parshapeindent:D
-  \__kernel_primitive:NN \parshapelength        \etex_parshapelength:D
-  \__kernel_primitive:NN \predisplaydirection   \etex_predisplaydirection:D
-  \__kernel_primitive:NN \protected             \etex_protected:D
-  \__kernel_primitive:NN \readline              \etex_readline:D
-  \__kernel_primitive:NN \savinghyphcodes       \etex_savinghyphcodes:D
-  \__kernel_primitive:NN \savingvdiscards       \etex_savingvdiscards:D
-  \__kernel_primitive:NN \scantokens            \etex_scantokens:D
-  \__kernel_primitive:NN \showgroups            \etex_showgroups:D
-  \__kernel_primitive:NN \showifs               \etex_showifs:D
-  \__kernel_primitive:NN \showtokens            \etex_showtokens:D
-  \__kernel_primitive:NN \splitbotmarks         \etex_splitbotmarks:D
-  \__kernel_primitive:NN \splitdiscards         \etex_splitdiscards:D
-  \__kernel_primitive:NN \splitfirstmarks       \etex_splitfirstmarks:D
-  \__kernel_primitive:NN \TeXXeTstate           \etex_TeXXeTstate:D
-  \__kernel_primitive:NN \topmarks              \etex_topmarks:D
-  \__kernel_primitive:NN \tracingassigns        \etex_tracingassigns:D
-  \__kernel_primitive:NN \tracinggroups         \etex_tracinggroups:D
-  \__kernel_primitive:NN \tracingifs            \etex_tracingifs:D
-  \__kernel_primitive:NN \tracingnesting        \etex_tracingnesting:D
-  \__kernel_primitive:NN \tracingscantokens     \etex_tracingscantokens:D
-  \__kernel_primitive:NN \unexpanded            \etex_unexpanded:D
-  \__kernel_primitive:NN \unless                \etex_unless:D
-  \__kernel_primitive:NN \widowpenalties        \etex_widowpenalties:D
-  \__kernel_primitive:NN \pdfannot              \pdftex_pdfannot:D
-  \__kernel_primitive:NN \pdfcatalog            \pdftex_pdfcatalog:D
-  \__kernel_primitive:NN \pdfcompresslevel      \pdftex_pdfcompresslevel:D
-  \__kernel_primitive:NN \pdfcolorstack         \pdftex_pdfcolorstack:D
-  \__kernel_primitive:NN \pdfcolorstackinit     \pdftex_pdfcolorstackinit:D
-  \__kernel_primitive:NN \pdfcreationdate       \pdftex_pdfcreationdate:D
-  \__kernel_primitive:NN \pdfdecimaldigits      \pdftex_pdfdecimaldigits:D
-  \__kernel_primitive:NN \pdfdest               \pdftex_pdfdest:D
-  \__kernel_primitive:NN \pdfdestmargin         \pdftex_pdfdestmargin:D
-  \__kernel_primitive:NN \pdfendlink            \pdftex_pdfendlink:D
-  \__kernel_primitive:NN \pdfendthread          \pdftex_pdfendthread:D
-  \__kernel_primitive:NN \pdffontattr           \pdftex_pdffontattr:D
-  \__kernel_primitive:NN \pdffontname           \pdftex_pdffontname:D
-  \__kernel_primitive:NN \pdffontobjnum         \pdftex_pdffontobjnum:D
-  \__kernel_primitive:NN \pdfgamma              \pdftex_pdfgamma:D
-  \__kernel_primitive:NN \pdfimageapplygamma    \pdftex_pdfimageapplygamma:D
-  \__kernel_primitive:NN \pdfimagegamma         \pdftex_pdfimagegamma:D
-  \__kernel_primitive:NN \pdfgentounicode       \pdftex_pdfgentounicode:D
-  \__kernel_primitive:NN \pdfglyphtounicode     \pdftex_pdfglyphtounicode:D
-  \__kernel_primitive:NN \pdfhorigin            \pdftex_pdfhorigin:D
-  \__kernel_primitive:NN \pdfimagehicolor       \pdftex_pdfimagehicolor:D
-  \__kernel_primitive:NN \pdfimageresolution    \pdftex_pdfimageresolution:D
-  \__kernel_primitive:NN \pdfincludechars       \pdftex_pdfincludechars:D
-  \__kernel_primitive:NN \pdfinclusioncopyfonts
-    \pdftex_pdfinclusioncopyfonts:D
-  \__kernel_primitive:NN \pdfinclusionerrorlevel
-    \pdftex_pdfinclusionerrorlevel:D
-  \__kernel_primitive:NN \pdfinfo               \pdftex_pdfinfo:D
-  \__kernel_primitive:NN \pdflastannot          \pdftex_pdflastannot:D
-  \__kernel_primitive:NN \pdflastlink           \pdftex_pdflastlink:D
-  \__kernel_primitive:NN \pdflastobj            \pdftex_pdflastobj:D
-  \__kernel_primitive:NN \pdflastxform          \pdftex_pdflastxform:D
-  \__kernel_primitive:NN \pdflastximage         \pdftex_pdflastximage:D
-  \__kernel_primitive:NN \pdflastximagecolordepth
-    \pdftex_pdflastximagecolordepth:D
-  \__kernel_primitive:NN \pdflastximagepages    \pdftex_pdflastximagepages:D
-  \__kernel_primitive:NN \pdflinkmargin         \pdftex_pdflinkmargin:D
-  \__kernel_primitive:NN \pdfliteral            \pdftex_pdfliteral:D
-  \__kernel_primitive:NN \pdfminorversion       \pdftex_pdfminorversion:D
-  \__kernel_primitive:NN \pdfnames              \pdftex_pdfnames:D
-  \__kernel_primitive:NN \pdfobj                \pdftex_pdfobj:D
-  \__kernel_primitive:NN \pdfobjcompresslevel
-    \pdftex_pdfobjcompresslevel:D
-  \__kernel_primitive:NN \pdfoutline            \pdftex_pdfoutline:D
-  \__kernel_primitive:NN \pdfoutput             \pdftex_pdfoutput:D
-  \__kernel_primitive:NN \pdfpageattr           \pdftex_pdfpageattr:D
-  \__kernel_primitive:NN \pdfpagebox            \pdftex_pdfpagebox:D
-  \__kernel_primitive:NN \pdfpageref            \pdftex_pdfpageref:D
-  \__kernel_primitive:NN \pdfpageresources      \pdftex_pdfpageresources:D
-  \__kernel_primitive:NN \pdfpagesattr          \pdftex_pdfpagesattr:D
-  \__kernel_primitive:NN \pdfrefobj             \pdftex_pdfrefobj:D
-  \__kernel_primitive:NN \pdfrefxform           \pdftex_pdfrefxform:D
-  \__kernel_primitive:NN \pdfrefximage          \pdftex_pdfrefximage:D
-  \__kernel_primitive:NN \pdfrestore            \pdftex_pdfrestore:D
-  \__kernel_primitive:NN \pdfretval             \pdftex_pdfretval:D
-  \__kernel_primitive:NN \pdfsave               \pdftex_pdfsave:D
-  \__kernel_primitive:NN \pdfsetmatrix          \pdftex_pdfsetmatrix:D
-  \__kernel_primitive:NN \pdfstartlink          \pdftex_pdfstartlink:D
-  \__kernel_primitive:NN \pdfstartthread        \pdftex_pdfstartthread:D
-  \__kernel_primitive:NN \pdfsuppressptexinfo
-    \pdftex_pdfsuppressptexinfo:D
-  \__kernel_primitive:NN \pdfthread             \pdftex_pdfthread:D
-  \__kernel_primitive:NN \pdfthreadmargin       \pdftex_pdfthreadmargin:D
-  \__kernel_primitive:NN \pdftrailer            \pdftex_pdftrailer:D
-  \__kernel_primitive:NN \pdfuniqueresname      \pdftex_pdfuniqueresname:D
-  \__kernel_primitive:NN \pdfvorigin            \pdftex_pdfvorigin:D
-  \__kernel_primitive:NN \pdfxform              \pdftex_pdfxform:D
-  \__kernel_primitive:NN \pdfxformattr          \pdftex_pdfxformattr:D
-  \__kernel_primitive:NN \pdfxformname          \pdftex_pdfxformname:D
-  \__kernel_primitive:NN \pdfxformresources     \pdftex_pdfxformresources:D
-  \__kernel_primitive:NN \pdfximage             \pdftex_pdfximage:D
-  \__kernel_primitive:NN \pdfximagebbox         \pdftex_pdfximagebbox:D
-  \__kernel_primitive:NN \ifpdfabsdim           \pdftex_ifabsdim:D
-  \__kernel_primitive:NN \ifpdfabsnum           \pdftex_ifabsnum:D
-  \__kernel_primitive:NN \ifpdfprimitive        \pdftex_ifprimitive:D
-  \__kernel_primitive:NN \pdfadjustspacing      \pdftex_adjustspacing:D
-  \__kernel_primitive:NN \pdfcopyfont           \pdftex_copyfont:D
-  \__kernel_primitive:NN \pdfdraftmode          \pdftex_draftmode:D
-  \__kernel_primitive:NN \pdfeachlinedepth      \pdftex_eachlinedepth:D
-  \__kernel_primitive:NN \pdfeachlineheight     \pdftex_eachlineheight:D
-  \__kernel_primitive:NN \pdffilemoddate        \pdftex_filemoddate:D
-  \__kernel_primitive:NN \pdffilesize           \pdftex_filesize:D
-  \__kernel_primitive:NN \pdffirstlineheight    \pdftex_firstlineheight:D
-  \__kernel_primitive:NN \pdffontexpand         \pdftex_fontexpand:D
-  \__kernel_primitive:NN \pdffontsize           \pdftex_fontsize:D
-  \__kernel_primitive:NN \pdfignoreddimen       \pdftex_ignoreddimen:D
-  \__kernel_primitive:NN \pdfinsertht           \pdftex_insertht:D
-  \__kernel_primitive:NN \pdflastlinedepth      \pdftex_lastlinedepth:D
-  \__kernel_primitive:NN \pdflastxpos           \pdftex_lastxpos:D
-  \__kernel_primitive:NN \pdflastypos           \pdftex_lastypos:D
-  \__kernel_primitive:NN \pdfmapfile            \pdftex_mapfile:D
-  \__kernel_primitive:NN \pdfmapline            \pdftex_mapline:D
-  \__kernel_primitive:NN \pdfmdfivesum          \pdftex_mdfivesum:D
-  \__kernel_primitive:NN \pdfnoligatures        \pdftex_noligatures:D
-  \__kernel_primitive:NN \pdfnormaldeviate      \pdftex_normaldeviate:D
-  \__kernel_primitive:NN \pdfpageheight         \pdftex_pageheight:D
-  \__kernel_primitive:NN \pdfpagewidth          \pdftex_pagewidth:D
-  \__kernel_primitive:NN \pdfpkmode             \pdftex_pkmode:D
-  \__kernel_primitive:NN \pdfpkresolution       \pdftex_pkresolution:D
-  \__kernel_primitive:NN \pdfprimitive          \pdftex_primitive:D
-  \__kernel_primitive:NN \pdfprotrudechars      \pdftex_protrudechars:D
-  \__kernel_primitive:NN \pdfpxdimen            \pdftex_pxdimen:D
-  \__kernel_primitive:NN \pdfrandomseed         \pdftex_randomseed:D
-  \__kernel_primitive:NN \pdfsavepos            \pdftex_savepos:D
-  \__kernel_primitive:NN \pdfstrcmp             \pdftex_strcmp:D
-  \__kernel_primitive:NN \pdfsetrandomseed      \pdftex_setrandomseed:D
-  \__kernel_primitive:NN \pdfshellescape        \pdftex_shellescape:D
-  \__kernel_primitive:NN \pdftracingfonts       \pdftex_tracingfonts:D
-  \__kernel_primitive:NN \pdfuniformdeviate     \pdftex_uniformdeviate:D
-  \__kernel_primitive:NN \pdftexbanner          \pdftex_pdftexbanner:D
-  \__kernel_primitive:NN \pdftexrevision        \pdftex_pdftexrevision:D
-  \__kernel_primitive:NN \pdftexversion         \pdftex_pdftexversion:D
-  \__kernel_primitive:NN \efcode                \pdftex_efcode:D
-  \__kernel_primitive:NN \ifincsname            \pdftex_ifincsname:D
-  \__kernel_primitive:NN \leftmarginkern        \pdftex_leftmarginkern:D
-  \__kernel_primitive:NN \letterspacefont       \pdftex_letterspacefont:D
-  \__kernel_primitive:NN \lpcode                \pdftex_lpcode:D
-  \__kernel_primitive:NN \quitvmode             \pdftex_quitvmode:D
-  \__kernel_primitive:NN \rightmarginkern       \pdftex_rightmarginkern:D
-  \__kernel_primitive:NN \rpcode                \pdftex_rpcode:D
-  \__kernel_primitive:NN \synctex               \pdftex_synctex:D
-  \__kernel_primitive:NN \tagcode               \pdftex_tagcode:D
-  \__kernel_primitive:NN \mdfivesum             \pdftex_mdfivesum:D
-  \__kernel_primitive:NN \ifprimitive           \pdftex_ifprimitive:D
-  \__kernel_primitive:NN \primitive             \pdftex_primitive:D
-  \__kernel_primitive:NN \shellescape           \pdftex_shellescape:D
-  \__kernel_primitive:NN \adjustspacing         \pdftex_adjustspacing:D
-  \__kernel_primitive:NN \copyfont              \pdftex_copyfont:D
-  \__kernel_primitive:NN \draftmode             \pdftex_draftmode:D
-  \__kernel_primitive:NN \expandglyphsinfont    \pdftex_fontexpand:D
-  \__kernel_primitive:NN \ifabsdim              \pdftex_ifabsdim:D
-  \__kernel_primitive:NN \ifabsnum              \pdftex_ifabsnum:D
-  \__kernel_primitive:NN \ignoreligaturesinfont
-    \pdftex_ignoreligaturesinfont:D
-  \__kernel_primitive:NN \insertht              \pdftex_insertht:D
-  \__kernel_primitive:NN \lastsavedboxresourceindex
-    \pdftex_pdflastxform:D
-  \__kernel_primitive:NN \lastsavedimageresourceindex
-    \pdftex_pdflastximage:D
-  \__kernel_primitive:NN \lastsavedimageresourcepages
-    \pdftex_pdflastximagepages:D
-  \__kernel_primitive:NN \lastxpos              \pdftex_lastxpos:D
-  \__kernel_primitive:NN \lastypos              \pdftex_lastypos:D
-  \__kernel_primitive:NN \normaldeviate         \pdftex_normaldeviate:D
-  \__kernel_primitive:NN \outputmode            \pdftex_pdfoutput:D
-  \__kernel_primitive:NN \pageheight            \pdftex_pageheight:D
-  \__kernel_primitive:NN \pagewidth             \pdftex_pagewith:D
-  \__kernel_primitive:NN \protrudechars         \pdftex_protrudechars:D
-  \__kernel_primitive:NN \pxdimen               \pdftex_pxdimen:D
-  \__kernel_primitive:NN \randomseed            \pdftex_randomseed:D
-  \__kernel_primitive:NN \useboxresource        \pdftex_pdfrefxform:D
-  \__kernel_primitive:NN \useimageresource      \pdftex_pdfrefximage:D
-  \__kernel_primitive:NN \savepos               \pdftex_savepos:D
-  \__kernel_primitive:NN \saveboxresource       \pdftex_pdfxform:D
-  \__kernel_primitive:NN \saveimageresource     \pdftex_pdfximage:D
-  \__kernel_primitive:NN \setrandomseed         \pdftex_setrandomseed:D
-  \__kernel_primitive:NN \tracingfonts          \pdftex_tracingfonts:D
-  \__kernel_primitive:NN \uniformdeviate        \pdftex_uniformdeviate:D
-  \__kernel_primitive:NN \suppressfontnotfounderror
-    \xetex_suppressfontnotfounderror:D
-  \__kernel_primitive:NN \XeTeXcharclass        \xetex_charclass:D
-  \__kernel_primitive:NN \XeTeXcharglyph        \xetex_charglyph:D
-  \__kernel_primitive:NN \XeTeXcountfeatures    \xetex_countfeatures:D
-  \__kernel_primitive:NN \XeTeXcountglyphs      \xetex_countglyphs:D
-  \__kernel_primitive:NN \XeTeXcountselectors   \xetex_countselectors:D
-  \__kernel_primitive:NN \XeTeXcountvariations  \xetex_countvariations:D
-  \__kernel_primitive:NN \XeTeXdefaultencoding  \xetex_defaultencoding:D
-  \__kernel_primitive:NN \XeTeXdashbreakstate   \xetex_dashbreakstate:D
-  \__kernel_primitive:NN \XeTeXfeaturecode      \xetex_featurecode:D
-  \__kernel_primitive:NN \XeTeXfeaturename      \xetex_featurename:D
-  \__kernel_primitive:NN \XeTeXfindfeaturebyname
-    \xetex_findfeaturebyname:D
-  \__kernel_primitive:NN \XeTeXfindselectorbyname
-    \xetex_findselectorbyname:D
-  \__kernel_primitive:NN \XeTeXfindvariationbyname
-    \xetex_findvariationbyname:D
-  \__kernel_primitive:NN \XeTeXfirstfontchar    \xetex_firstfontchar:D
-  \__kernel_primitive:NN \XeTeXfonttype         \xetex_fonttype:D
-  \__kernel_primitive:NN \XeTeXgenerateactualtext
-    \xetex_generateactualtext:D
-  \__kernel_primitive:NN \XeTeXglyph            \xetex_glyph:D
-  \__kernel_primitive:NN \XeTeXglyphbounds      \xetex_glyphbounds:D
-  \__kernel_primitive:NN \XeTeXglyphindex       \xetex_glyphindex:D
-  \__kernel_primitive:NN \XeTeXglyphname        \xetex_glyphname:D
-  \__kernel_primitive:NN \XeTeXinputencoding    \xetex_inputencoding:D
-  \__kernel_primitive:NN \XeTeXinputnormalization
-    \xetex_inputnormalization:D
-  \__kernel_primitive:NN \XeTeXinterchartokenstate
-    \xetex_interchartokenstate:D
-  \__kernel_primitive:NN \XeTeXinterchartoks    \xetex_interchartoks:D
-  \__kernel_primitive:NN \XeTeXisdefaultselector
-    \xetex_isdefaultselector:D
-  \__kernel_primitive:NN \XeTeXisexclusivefeature
-    \xetex_isexclusivefeature:D
-  \__kernel_primitive:NN \XeTeXlastfontchar     \xetex_lastfontchar:D
-  \__kernel_primitive:NN \XeTeXlinebreakskip    \xetex_linebreakskip:D
-  \__kernel_primitive:NN \XeTeXlinebreaklocale  \xetex_linebreaklocale:D
-  \__kernel_primitive:NN \XeTeXlinebreakpenalty \xetex_linebreakpenalty:D
-  \__kernel_primitive:NN \XeTeXOTcountfeatures  \xetex_OTcountfeatures:D
-  \__kernel_primitive:NN \XeTeXOTcountlanguages \xetex_OTcountlanguages:D
-  \__kernel_primitive:NN \XeTeXOTcountscripts   \xetex_OTcountscripts:D
-  \__kernel_primitive:NN \XeTeXOTfeaturetag     \xetex_OTfeaturetag:D
-  \__kernel_primitive:NN \XeTeXOTlanguagetag    \xetex_OTlanguagetag:D
-  \__kernel_primitive:NN \XeTeXOTscripttag      \xetex_OTscripttag:D
-  \__kernel_primitive:NN \XeTeXpdffile          \xetex_pdffile:D
-  \__kernel_primitive:NN \XeTeXpdfpagecount     \xetex_pdfpagecount:D
-  \__kernel_primitive:NN \XeTeXpicfile          \xetex_picfile:D
-  \__kernel_primitive:NN \XeTeXselectorname     \xetex_selectorname:D
-  \__kernel_primitive:NN \XeTeXtracingfonts     \xetex_tracingfonts:D
-  \__kernel_primitive:NN \XeTeXupwardsmode      \xetex_upwardsmode:D
-  \__kernel_primitive:NN \XeTeXuseglyphmetrics  \xetex_useglyphmetrics:D
-  \__kernel_primitive:NN \XeTeXvariation        \xetex_variation:D
-  \__kernel_primitive:NN \XeTeXvariationdefault \xetex_variationdefault:D
-  \__kernel_primitive:NN \XeTeXvariationmax     \xetex_variationmax:D
-  \__kernel_primitive:NN \XeTeXvariationmin     \xetex_variationmin:D
-  \__kernel_primitive:NN \XeTeXvariationname    \xetex_variationname:D
-  \__kernel_primitive:NN \XeTeXrevision         \xetex_XeTeXrevision:D
-  \__kernel_primitive:NN \XeTeXversion          \xetex_XeTeXversion:D
-  \__kernel_primitive:NN \alignmark             \luatex_alignmark:D
-  \__kernel_primitive:NN \aligntab              \luatex_aligntab:D
-  \__kernel_primitive:NN \attribute             \luatex_attribute:D
-  \__kernel_primitive:NN \attributedef          \luatex_attributedef:D
-  \__kernel_primitive:NN \automaticdiscretionary
-    \luatex_automaticdiscretionary:D
-  \__kernel_primitive:NN \automatichyphenmode
-    \luatex_automatichyphenmode:D
-  \__kernel_primitive:NN \automatichyphenpenalty
-    \luatex_automatichyphenpenalty:D
-  \__kernel_primitive:NN \begincsname           \luatex_begincsname:D
-  \__kernel_primitive:NN \breakafterdirmode     \luatex_breakafterdirmode:D
-  \__kernel_primitive:NN \catcodetable          \luatex_catcodetable:D
-  \__kernel_primitive:NN \clearmarks            \luatex_clearmarks:D
-  \__kernel_primitive:NN \crampeddisplaystyle
-    \luatex_crampeddisplaystyle:D
-  \__kernel_primitive:NN \crampedscriptscriptstyle
-    \luatex_crampedscriptscriptstyle:D
-  \__kernel_primitive:NN \crampedscriptstyle    \luatex_crampedscriptstyle:D
-  \__kernel_primitive:NN \crampedtextstyle      \luatex_crampedtextstyle:D
-  \__kernel_primitive:NN \directlua             \luatex_directlua:D
-  \__kernel_primitive:NN \dviextension          \luatex_dviextension:D
-  \__kernel_primitive:NN \dvifeedback           \luatex_dvifeedback:D
-  \__kernel_primitive:NN \dvivariable           \luatex_dvivariable:D
-  \__kernel_primitive:NN \etoksapp              \luatex_etoksapp:D
-  \__kernel_primitive:NN \etokspre              \luatex_etokspre:D
-  \__kernel_primitive:NN \explicithyphenpenalty
-    \luatex_explicithyphenpenalty:D
-  \__kernel_primitive:NN \expanded              \luatex_expanded:D
-  \__kernel_primitive:NN \explicitdiscretionary
-    \luatex_explicitdiscretionary:D
-  \__kernel_primitive:NN \firstvalidlanguage    \luatex_firstvalidlanguage:D
-  \__kernel_primitive:NN \fontid                \luatex_fontid:D
-  \__kernel_primitive:NN \formatname            \luatex_formatname:D
-  \__kernel_primitive:NN \hjcode                \luatex_hjcode:D
-  \__kernel_primitive:NN \hpack                 \luatex_hpack:D
-  \__kernel_primitive:NN \hyphenationbounds     \luatex_hyphenationbounds:D
-  \__kernel_primitive:NN \hyphenationmin        \luatex_hyphenationmin:D
-  \__kernel_primitive:NN \hyphenpenaltymode     \luatex_hyphenpenaltymode:D
-  \__kernel_primitive:NN \gleaders              \luatex_gleaders:D
-  \__kernel_primitive:NN \initcatcodetable      \luatex_initcatcodetable:D
-  \__kernel_primitive:NN \lastnamedcs           \luatex_lastnamedcs:D
-  \__kernel_primitive:NN \latelua               \luatex_latelua:D
-  \__kernel_primitive:NN \letcharcode           \luatex_letcharcode:D
-  \__kernel_primitive:NN \luaescapestring       \luatex_luaescapestring:D
-  \__kernel_primitive:NN \luafunction           \luatex_luafunction:D
-  \__kernel_primitive:NN \luatexbanner          \luatex_luatexbanner:D
-  \__kernel_primitive:NN \luatexrevision        \luatex_luatexrevision:D
-  \__kernel_primitive:NN \luatexversion         \luatex_luatexversion:D
-  \__kernel_primitive:NN \mathdelimitersmode    \luatex_mathdelimitersmode:D
-  \__kernel_primitive:NN \mathdisplayskipmode
-    \luatex_mathdisplayskipmode:D
-  \__kernel_primitive:NN \matheqnogapstep       \luatex_matheqnogapstep:D
-  \__kernel_primitive:NN \mathnolimitsmode      \luatex_mathnolimitsmode:D
-  \__kernel_primitive:NN \mathoption            \luatex_mathoption:D
-  \__kernel_primitive:NN \mathpenaltiesmode     \luatex_mathpenaltiesmode:D
-  \__kernel_primitive:NN \mathrulesfam          \luatex_mathrulesfam:D
-  \__kernel_primitive:NN \mathscriptsmode       \luatex_mathscriptsmode:D
-  \__kernel_primitive:NN \mathscriptboxmode     \luatex_mathscriptboxmode:D
-  \__kernel_primitive:NN \mathstyle             \luatex_mathstyle:D
-  \__kernel_primitive:NN \mathsurroundmode      \luatex_mathsurroundmode:D
-  \__kernel_primitive:NN \mathsurroundskip      \luatex_mathsurroundskip:D
-  \__kernel_primitive:NN \nohrule               \luatex_nohrule:D
-  \__kernel_primitive:NN \nokerns               \luatex_nokerns:D
-  \__kernel_primitive:NN \noligs                \luatex_noligs:D
-  \__kernel_primitive:NN \nospaces              \luatex_nospaces:D
-  \__kernel_primitive:NN \novrule               \luatex_novrule:D
-  \__kernel_primitive:NN \outputbox             \luatex_outputbox:D
-  \__kernel_primitive:NN \pagebottomoffset      \luatex_pagebottomoffset:D
-  \__kernel_primitive:NN \pageleftoffset        \luatex_pageleftoffset:D
-  \__kernel_primitive:NN \pagerightoffset       \luatex_pagerightoffset:D
-  \__kernel_primitive:NN \pagetopoffset         \luatex_pagetopoffset:D
-  \__kernel_primitive:NN \pdfextension          \luatex_pdfextension:D
-  \__kernel_primitive:NN \pdffeedback           \luatex_pdffeedback:D
-  \__kernel_primitive:NN \pdfvariable           \luatex_pdfvariable:D
-  \__kernel_primitive:NN \postexhyphenchar      \luatex_postexhyphenchar:D
-  \__kernel_primitive:NN \posthyphenchar        \luatex_posthyphenchar:D
-  \__kernel_primitive:NN \prebinoppenalty       \luatex_prebinoppenalty:D
-  \__kernel_primitive:NN \predisplaygapfactor
-    \luatex_predisplaygapfactor:D
-  \__kernel_primitive:NN \preexhyphenchar       \luatex_preexhyphenchar:D
-  \__kernel_primitive:NN \prehyphenchar         \luatex_prehyphenchar:D
-  \__kernel_primitive:NN \prerelpenalty         \luatex_prerelpenalty:D
-  \__kernel_primitive:NN \savecatcodetable      \luatex_savecatcodetable:D
-  \__kernel_primitive:NN \scantextokens         \luatex_scantextokens:D
-  \__kernel_primitive:NN \setfontid             \luatex_setfontid:D
-  \__kernel_primitive:NN \shapemode             \luatex_shapemode:D
-  \__kernel_primitive:NN \suppressifcsnameerror
-    \luatex_suppressifcsnameerror:D
-  \__kernel_primitive:NN \suppresslongerror     \luatex_suppresslongerror:D
-  \__kernel_primitive:NN \suppressmathparerror
-    \luatex_suppressmathparerror:D
-  \__kernel_primitive:NN \suppressoutererror    \luatex_suppressoutererror:D
-  \__kernel_primitive:NN \suppressprimitiveerror
-    \luatex_suppressprimitiveerror:D
-  \__kernel_primitive:NN \toksapp               \luatex_toksapp:D
-  \__kernel_primitive:NN \tokspre               \luatex_tokspre:D
-  \__kernel_primitive:NN \tpack                 \luatex_tpack:D
-  \__kernel_primitive:NN \vpack                 \luatex_vpack:D
-  \__kernel_primitive:NN \bodydir               \luatex_bodydir:D
-  \__kernel_primitive:NN \boxdir                \luatex_boxdir:D
-  \__kernel_primitive:NN \leftghost             \luatex_leftghost:D
-  \__kernel_primitive:NN \linedir               \luatex_linedir:D
-  \__kernel_primitive:NN \localbrokenpenalty    \luatex_localbrokenpenalty:D
-  \__kernel_primitive:NN \localinterlinepenalty
-    \luatex_localinterlinepenalty:D
-  \__kernel_primitive:NN \localleftbox          \luatex_localleftbox:D
-  \__kernel_primitive:NN \localrightbox         \luatex_localrightbox:D
-  \__kernel_primitive:NN \mathdir               \luatex_mathdir:D
-  \__kernel_primitive:NN \pagedir               \luatex_pagedir:D
-  \__kernel_primitive:NN \pardir                \luatex_pardir:D
-  \__kernel_primitive:NN \rightghost            \luatex_rightghost:D
-  \__kernel_primitive:NN \textdir               \luatex_textdir:D
-  \__kernel_primitive:NN \Uchar                 \utex_char:D
-  \__kernel_primitive:NN \Ucharcat              \utex_charcat:D
-  \__kernel_primitive:NN \Udelcode              \utex_delcode:D
-  \__kernel_primitive:NN \Udelcodenum           \utex_delcodenum:D
-  \__kernel_primitive:NN \Udelimiter            \utex_delimiter:D
-  \__kernel_primitive:NN \Udelimiterover        \utex_delimiterover:D
-  \__kernel_primitive:NN \Udelimiterunder       \utex_delimiterunder:D
-  \__kernel_primitive:NN \Uhextensible          \utex_hextensible:D
-  \__kernel_primitive:NN \Umathaccent           \utex_mathaccent:D
-  \__kernel_primitive:NN \Umathaxis             \utex_mathaxis:D
-  \__kernel_primitive:NN \Umathbinbinspacing    \utex_binbinspacing:D
-  \__kernel_primitive:NN \Umathbinclosespacing  \utex_binclosespacing:D
-  \__kernel_primitive:NN \Umathbininnerspacing  \utex_bininnerspacing:D
-  \__kernel_primitive:NN \Umathbinopenspacing   \utex_binopenspacing:D
-  \__kernel_primitive:NN \Umathbinopspacing     \utex_binopspacing:D
-  \__kernel_primitive:NN \Umathbinordspacing    \utex_binordspacing:D
-  \__kernel_primitive:NN \Umathbinpunctspacing  \utex_binpunctspacing:D
-  \__kernel_primitive:NN \Umathbinrelspacing    \utex_binrelspacing:D
-  \__kernel_primitive:NN \Umathchar             \utex_mathchar:D
-  \__kernel_primitive:NN \Umathcharclass        \utex_mathcharclass:D
-  \__kernel_primitive:NN \Umathchardef          \utex_mathchardef:D
-  \__kernel_primitive:NN \Umathcharfam          \utex_mathcharfam:D
-  \__kernel_primitive:NN \Umathcharnum          \utex_mathcharnum:D
-  \__kernel_primitive:NN \Umathcharnumdef       \utex_mathcharnumdef:D
-  \__kernel_primitive:NN \Umathcharslot         \utex_mathcharslot:D
-  \__kernel_primitive:NN \Umathclosebinspacing  \utex_closebinspacing:D
-  \__kernel_primitive:NN \Umathcloseclosespacing
-    \utex_closeclosespacing:D
-  \__kernel_primitive:NN \Umathcloseinnerspacing
-    \utex_closeinnerspacing:D
-  \__kernel_primitive:NN \Umathcloseopenspacing \utex_closeopenspacing:D
-  \__kernel_primitive:NN \Umathcloseopspacing   \utex_closeopspacing:D
-  \__kernel_primitive:NN \Umathcloseordspacing  \utex_closeordspacing:D
-  \__kernel_primitive:NN \Umathclosepunctspacing
-    \utex_closepunctspacing:D
-  \__kernel_primitive:NN \Umathcloserelspacing  \utex_closerelspacing:D
-  \__kernel_primitive:NN \Umathcode             \utex_mathcode:D
-  \__kernel_primitive:NN \Umathcodenum          \utex_mathcodenum:D
-  \__kernel_primitive:NN \Umathconnectoroverlapmin
-    \utex_connectoroverlapmin:D
-  \__kernel_primitive:NN \Umathfractiondelsize  \utex_fractiondelsize:D
-  \__kernel_primitive:NN \Umathfractiondenomdown
-    \utex_fractiondenomdown:D
-  \__kernel_primitive:NN \Umathfractiondenomvgap
-    \utex_fractiondenomvgap:D
-  \__kernel_primitive:NN \Umathfractionnumup    \utex_fractionnumup:D
-  \__kernel_primitive:NN \Umathfractionnumvgap  \utex_fractionnumvgap:D
-  \__kernel_primitive:NN \Umathfractionrule     \utex_fractionrule:D
-  \__kernel_primitive:NN \Umathinnerbinspacing  \utex_innerbinspacing:D
-  \__kernel_primitive:NN \Umathinnerclosespacing
-    \utex_innerclosespacing:D
-  \__kernel_primitive:NN \Umathinnerinnerspacing
-    \utex_innerinnerspacing:D
-  \__kernel_primitive:NN \Umathinneropenspacing \utex_inneropenspacing:D
-  \__kernel_primitive:NN \Umathinneropspacing   \utex_inneropspacing:D
-  \__kernel_primitive:NN \Umathinnerordspacing  \utex_innerordspacing:D
-  \__kernel_primitive:NN \Umathinnerpunctspacing
-    \utex_innerpunctspacing:D
-  \__kernel_primitive:NN \Umathinnerrelspacing  \utex_innerrelspacing:D
-  \__kernel_primitive:NN \Umathlimitabovebgap   \utex_limitabovebgap:D
-  \__kernel_primitive:NN \Umathlimitabovekern   \utex_limitabovekern:D
-  \__kernel_primitive:NN \Umathlimitabovevgap   \utex_limitabovevgap:D
-  \__kernel_primitive:NN \Umathlimitbelowbgap   \utex_limitbelowbgap:D
-  \__kernel_primitive:NN \Umathlimitbelowkern   \utex_limitbelowkern:D
-  \__kernel_primitive:NN \Umathlimitbelowvgap   \utex_limitbelowvgap:D
-  \__kernel_primitive:NN \Umathnolimitsubfactor \utex_nolimitsubfactor:D
-  \__kernel_primitive:NN \Umathnolimitsupfactor \utex_nolimitsupfactor:D
-  \__kernel_primitive:NN \Umathopbinspacing     \utex_opbinspacing:D
-  \__kernel_primitive:NN \Umathopclosespacing   \utex_opclosespacing:D
-  \__kernel_primitive:NN \Umathopenbinspacing   \utex_openbinspacing:D
-  \__kernel_primitive:NN \Umathopenclosespacing \utex_openclosespacing:D
-  \__kernel_primitive:NN \Umathopeninnerspacing \utex_openinnerspacing:D
-  \__kernel_primitive:NN \Umathopenopenspacing  \utex_openopenspacing:D
-  \__kernel_primitive:NN \Umathopenopspacing    \utex_openopspacing:D
-  \__kernel_primitive:NN \Umathopenordspacing   \utex_openordspacing:D
-  \__kernel_primitive:NN \Umathopenpunctspacing \utex_openpunctspacing:D
-  \__kernel_primitive:NN \Umathopenrelspacing   \utex_openrelspacing:D
-  \__kernel_primitive:NN \Umathoperatorsize     \utex_operatorsize:D
-  \__kernel_primitive:NN \Umathopinnerspacing   \utex_opinnerspacing:D
-  \__kernel_primitive:NN \Umathopopenspacing    \utex_opopenspacing:D
-  \__kernel_primitive:NN \Umathopopspacing      \utex_opopspacing:D
-  \__kernel_primitive:NN \Umathopordspacing     \utex_opordspacing:D
-  \__kernel_primitive:NN \Umathoppunctspacing   \utex_oppunctspacing:D
-  \__kernel_primitive:NN \Umathoprelspacing     \utex_oprelspacing:D
-  \__kernel_primitive:NN \Umathordbinspacing    \utex_ordbinspacing:D
-  \__kernel_primitive:NN \Umathordclosespacing  \utex_ordclosespacing:D
-  \__kernel_primitive:NN \Umathordinnerspacing  \utex_ordinnerspacing:D
-  \__kernel_primitive:NN \Umathordopenspacing   \utex_ordopenspacing:D
-  \__kernel_primitive:NN \Umathordopspacing     \utex_ordopspacing:D
-  \__kernel_primitive:NN \Umathordordspacing    \utex_ordordspacing:D
-  \__kernel_primitive:NN \Umathordpunctspacing  \utex_ordpunctspacing:D
-  \__kernel_primitive:NN \Umathordrelspacing    \utex_ordrelspacing:D
-  \__kernel_primitive:NN \Umathoverbarkern      \utex_overbarkern:D
-  \__kernel_primitive:NN \Umathoverbarrule      \utex_overbarrule:D
-  \__kernel_primitive:NN \Umathoverbarvgap      \utex_overbarvgap:D
-  \__kernel_primitive:NN \Umathoverdelimiterbgap
-     \utex_overdelimiterbgap:D
-  \__kernel_primitive:NN \Umathoverdelimitervgap
-    \utex_overdelimitervgap:D
-  \__kernel_primitive:NN \Umathpunctbinspacing  \utex_punctbinspacing:D
-  \__kernel_primitive:NN \Umathpunctclosespacing
-    \utex_punctclosespacing:D
-  \__kernel_primitive:NN \Umathpunctinnerspacing
-    \utex_punctinnerspacing:D
-  \__kernel_primitive:NN \Umathpunctopenspacing \utex_punctopenspacing:D
-  \__kernel_primitive:NN \Umathpunctopspacing   \utex_punctopspacing:D
-  \__kernel_primitive:NN \Umathpunctordspacing  \utex_punctordspacing:D
-  \__kernel_primitive:NN \Umathpunctpunctspacing\utex_punctpunctspacing:D
-  \__kernel_primitive:NN \Umathpunctrelspacing  \utex_punctrelspacing:D
-  \__kernel_primitive:NN \Umathquad             \utex_quad:D
-  \__kernel_primitive:NN \Umathradicaldegreeafter
-    \utex_radicaldegreeafter:D
-  \__kernel_primitive:NN \Umathradicaldegreebefore
-    \utex_radicaldegreebefore:D
-  \__kernel_primitive:NN \Umathradicaldegreeraise
-    \utex_radicaldegreeraise:D
-  \__kernel_primitive:NN \Umathradicalkern      \utex_radicalkern:D
-  \__kernel_primitive:NN \Umathradicalrule      \utex_radicalrule:D
-  \__kernel_primitive:NN \Umathradicalvgap      \utex_radicalvgap:D
-  \__kernel_primitive:NN \Umathrelbinspacing    \utex_relbinspacing:D
-  \__kernel_primitive:NN \Umathrelclosespacing  \utex_relclosespacing:D
-  \__kernel_primitive:NN \Umathrelinnerspacing  \utex_relinnerspacing:D
-  \__kernel_primitive:NN \Umathrelopenspacing   \utex_relopenspacing:D
-  \__kernel_primitive:NN \Umathrelopspacing     \utex_relopspacing:D
-  \__kernel_primitive:NN \Umathrelordspacing    \utex_relordspacing:D
-  \__kernel_primitive:NN \Umathrelpunctspacing  \utex_relpunctspacing:D
-  \__kernel_primitive:NN \Umathrelrelspacing    \utex_relrelspacing:D
-  \__kernel_primitive:NN \Umathskewedfractionhgap
-    \utex_skewedfractionhgap:D
-  \__kernel_primitive:NN \Umathskewedfractionvgap
-    \utex_skewedfractionvgap:D
-  \__kernel_primitive:NN \Umathspaceafterscript \utex_spaceafterscript:D
-  \__kernel_primitive:NN \Umathstackdenomdown   \utex_stackdenomdown:D
-  \__kernel_primitive:NN \Umathstacknumup       \utex_stacknumup:D
-  \__kernel_primitive:NN \Umathstackvgap        \utex_stackvgap:D
-  \__kernel_primitive:NN \Umathsubshiftdown     \utex_subshiftdown:D
-  \__kernel_primitive:NN \Umathsubshiftdrop     \utex_subshiftdrop:D
-  \__kernel_primitive:NN \Umathsubsupshiftdown  \utex_subsupshiftdown:D
-  \__kernel_primitive:NN \Umathsubsupvgap       \utex_subsupvgap:D
-  \__kernel_primitive:NN \Umathsubtopmax        \utex_subtopmax:D
-  \__kernel_primitive:NN \Umathsupbottommin     \utex_supbottommin:D
-  \__kernel_primitive:NN \Umathsupshiftdrop     \utex_supshiftdrop:D
-  \__kernel_primitive:NN \Umathsupshiftup       \utex_supshiftup:D
-  \__kernel_primitive:NN \Umathsupsubbottommax  \utex_supsubbottommax:D
-  \__kernel_primitive:NN \Umathunderbarkern     \utex_underbarkern:D
-  \__kernel_primitive:NN \Umathunderbarrule     \utex_underbarrule:D
-  \__kernel_primitive:NN \Umathunderbarvgap     \utex_underbarvgap:D
-  \__kernel_primitive:NN \Umathunderdelimiterbgap
-    \utex_underdelimiterbgap:D
-  \__kernel_primitive:NN \Umathunderdelimitervgap
-    \utex_underdelimitervgap:D
-  \__kernel_primitive:NN \Unosubscript          \utex_nosubscript:D
-  \__kernel_primitive:NN \Unosuperscript        \utex_nosuperscript:D
-  \__kernel_primitive:NN \Uoverdelimiter        \utex_overdelimiter:D
-  \__kernel_primitive:NN \Uradical              \utex_radical:D
-  \__kernel_primitive:NN \Uroot                 \utex_root:D
-  \__kernel_primitive:NN \Uskewed               \utex_skewed:D
-  \__kernel_primitive:NN \Uskewedwithdelims     \utex_skewedwithdelims:D
-  \__kernel_primitive:NN \Ustack                \utex_stack:D
-  \__kernel_primitive:NN \Ustartdisplaymath     \utex_startdisplaymath:D
-  \__kernel_primitive:NN \Ustartmath            \utex_startmath:D
-  \__kernel_primitive:NN \Ustopdisplaymath      \utex_stopdisplaymath:D
-  \__kernel_primitive:NN \Ustopmath             \utex_stopmath:D
-  \__kernel_primitive:NN \Usubscript            \utex_subscript:D
-  \__kernel_primitive:NN \Usuperscript          \utex_superscript:D
-  \__kernel_primitive:NN \Uunderdelimiter       \utex_underdelimiter:D
-  \__kernel_primitive:NN \Uvextensible          \utex_vextensible:D
-  \__kernel_primitive:NN \autospacing           \ptex_autospacing:D
-  \__kernel_primitive:NN \autoxspacing          \ptex_autoxspacing:D
-  \__kernel_primitive:NN \dtou                  \ptex_dtou:D
-  \__kernel_primitive:NN \epTeXinputencoding    \ptex_inputencoding:D
-  \__kernel_primitive:NN \epTeXversion          \ptex_epTeXversion:D
-  \__kernel_primitive:NN \euc                   \ptex_euc:D
-  \__kernel_primitive:NN \ifdbox                \ptex_ifdbox:D
-  \__kernel_primitive:NN \ifddir                \ptex_ifddir:D
-  \__kernel_primitive:NN \ifmdir                \ptex_ifmdir:D
-  \__kernel_primitive:NN \iftbox                \ptex_iftbox:D
-  \__kernel_primitive:NN \iftdir                \ptex_iftdir:D
-  \__kernel_primitive:NN \ifybox                \ptex_ifybox:D
-  \__kernel_primitive:NN \ifydir                \ptex_ifydir:D
-  \__kernel_primitive:NN \inhibitglue           \ptex_inhibitglue:D
-  \__kernel_primitive:NN \inhibitxspcode        \ptex_inhibitxspcode:D
-  \__kernel_primitive:NN \jcharwidowpenalty     \ptex_jcharwidowpenalty:D
-  \__kernel_primitive:NN \jfam                  \ptex_jfam:D
-  \__kernel_primitive:NN \jfont                 \ptex_jfont:D
-  \__kernel_primitive:NN \jis                   \ptex_jis:D
-  \__kernel_primitive:NN \kanjiskip             \ptex_kanjiskip:D
-  \__kernel_primitive:NN \kansuji               \ptex_kansuji:D
-  \__kernel_primitive:NN \kansujichar           \ptex_kansujichar:D
-  \__kernel_primitive:NN \kcatcode              \ptex_kcatcode:D
-  \__kernel_primitive:NN \kuten                 \ptex_kuten:D
-  \__kernel_primitive:NN \noautospacing         \ptex_noautospacing:D
-  \__kernel_primitive:NN \noautoxspacing        \ptex_noautoxspacing:D
-  \__kernel_primitive:NN \postbreakpenalty      \ptex_postbreakpenalty:D
-  \__kernel_primitive:NN \prebreakpenalty       \ptex_prebreakpenalty:D
-  \__kernel_primitive:NN \ptexminorversion      \ptex_ptexminorversion:D
-  \__kernel_primitive:NN \ptexrevision          \ptex_ptexrevision:D
-  \__kernel_primitive:NN \ptexversion           \ptex_ptexversion:D
-  \__kernel_primitive:NN \showmode              \ptex_showmode:D
-  \__kernel_primitive:NN \sjis                  \ptex_sjis:D
-  \__kernel_primitive:NN \tate                  \ptex_tate:D
-  \__kernel_primitive:NN \tbaselineshift        \ptex_tbaselineshift:D
-  \__kernel_primitive:NN \tfont                 \ptex_tfont:D
-  \__kernel_primitive:NN \xkanjiskip            \ptex_xkanjiskip:D
-  \__kernel_primitive:NN \xspcode               \ptex_xspcode:D
-  \__kernel_primitive:NN \ybaselineshift        \ptex_ybaselineshift:D
-  \__kernel_primitive:NN \yoko                  \ptex_yoko:D
-  \__kernel_primitive:NN \disablecjktoken       \uptex_disablecjktoken:D
-  \__kernel_primitive:NN \enablecjktoken        \uptex_enablecjktoken:D
-  \__kernel_primitive:NN \forcecjktoken         \uptex_forcecjktoken:D
-  \__kernel_primitive:NN \kchar                 \uptex_kchar:D
-  \__kernel_primitive:NN \kchardef              \uptex_kchardef:D
-  \__kernel_primitive:NN \kuten                 \uptex_kuten:D
-  \__kernel_primitive:NN \ucs                   \uptex_ucs:D
-  \__kernel_primitive:NN \uptexrevision         \uptex_uptexrevision:D
-  \__kernel_primitive:NN \uptexversion          \uptex_uptexversion:D
-        }
-    }
-  \__kernel_primitives:
-\tex_endgroup:D
 %% File: l3basics.dtx
 \tex_let:D \if_true:           \tex_iftrue:D
 \tex_let:D \if_false:          \tex_iffalse:D
@@ -4601,6 +3970,21 @@
   }
 \prg_generate_conditional_variant:Nnn \tl_if_eq:NN
   { Nc , c , cc } { p , TF , T , F }
+\tl_new:N \l__tl_internal_a_tl
+\tl_new:N \l__tl_internal_b_tl
+\prg_new_protected_conditional:Npnn \tl_if_eq:Nn #1#2 { T , F , TF }
+  {
+    \group_begin:
+      \tl_set:Nn \l__tl_internal_b_tl {#2}
+      \exp_after:wN
+    \group_end:
+    \if_meaning:w #1 \l__tl_internal_b_tl
+      \prg_return_true:
+    \else:
+      \prg_return_false:
+    \fi:
+  }
+\prg_generate_conditional_variant:Nnn \tl_if_eq:Nn { c } { TF , T , F }
 \prg_new_protected_conditional:Npnn \tl_if_eq:nn #1#2 { T , F ,  TF }
   {
     \group_begin:
@@ -4614,8 +3998,6 @@
       \prg_return_false:
     \fi:
   }
-\tl_new:N \l__tl_internal_a_tl
-\tl_new:N \l__tl_internal_b_tl
 \cs_new_protected:Npn \tl_if_in:NnT  { \exp_args:No \tl_if_in:nnT  }
 \cs_new_protected:Npn \tl_if_in:NnF  { \exp_args:No \tl_if_in:nnF  }
 \cs_new_protected:Npn \tl_if_in:NnTF { \exp_args:No \tl_if_in:nnTF }
@@ -6443,6 +5825,26 @@
     \exp_after:wN #1
     \int_value:w \int_eval:w 1 + #2 ;
   }
+\cs_new_protected:Npn \seq_set_map_x:NNn
+  { \__seq_set_map_x:NNNn \tl_set:Nx }
+\cs_new_protected:Npn \seq_gset_map_x:NNn
+  { \__seq_set_map_x:NNNn \tl_gset:Nx }
+\cs_new_protected:Npn \__seq_set_map_x:NNNn #1#2#3#4
+  {
+    \__seq_push_item_def:n { \exp_not:N \__seq_item:n {#4} }
+    #1 #2 { #3 }
+    \__seq_pop_item_def:
+  }
+\cs_new_protected:Npn \seq_set_map:NNn
+  { \__seq_set_map:NNNn \tl_set:Nx }
+\cs_new_protected:Npn \seq_gset_map:NNn
+  { \__seq_set_map:NNNn \tl_gset:Nx }
+\cs_new_protected:Npn \__seq_set_map:NNNn #1#2#3#4
+  {
+    \__seq_push_item_def:n { \exp_not:n { \__seq_item:n {#4} } }
+    #1 #2 { #3 }
+    \__seq_pop_item_def:
+  }
 \cs_new:Npn \seq_count:N #1
   {
     \int_eval:n
@@ -9716,8 +9118,8 @@
       { \tl_set:Nn #3 {##2} }
       { \tl_set:Nn #3 { \q_no_value } }
   }
-\cs_generate_variant:Nn \prop_get:NnN {     NV , No }
-\cs_generate_variant:Nn \prop_get:NnN { c , cV , co }
+\cs_generate_variant:Nn \prop_get:NnN {     NV , Nv , No }
+\cs_generate_variant:Nn \prop_get:NnN { c , cV , cv , co }
 \cs_new_protected:Npn \prop_pop:NnN #1#2#3
   {
     \__prop_split:NnTF #1 {#2}
@@ -9799,13 +9201,13 @@
       { #1 #2 { \exp_not:o {#2} \l__prop_internal_tl } }
   }
 \cs_generate_variant:Nn \prop_put:Nnn
-  {     NnV , Nno , Nnx , NV , NVV , No , Noo }
+  {     NnV , Nno , Nnx , NV , NVV , NVx , Nvx , No , Noo , Nxx }
 \cs_generate_variant:Nn \prop_put:Nnn
-  { c , cnV , cno , cnx , cV , cVV , co , coo }
+  { c , cnV , cno , cnx , cV , cVV , cVx , cvx , co , coo , cxx }
 \cs_generate_variant:Nn \prop_gput:Nnn
-  {     NnV , Nno , Nnx , NV , NVV , No , Noo }
+  {     NnV , Nno , Nnx , NV , NVV , NVx , Nvx , No , Noo , Nxx }
 \cs_generate_variant:Nn \prop_gput:Nnn
-  { c , cnV , cno , cnx , cV , cVV , co , coo }
+  { c , cnV , cno , cnx , cV , cVV , cVx , cvx , co , coo , cxx }
 \cs_new_protected:Npn \prop_put_if_new:Nnn
   { \__prop_put_if_new:NNnn \tl_set:Nx }
 \cs_new_protected:Npn \prop_gput_if_new:Nnn
@@ -9868,7 +9270,7 @@
       { \prg_return_false: }
   }
 \prg_generate_conditional_variant:Nnn \prop_get:NnN
-  { NV , No , c , cV , co } { T , F , TF }
+  { NV , Nv , No , c , cV , cv , co } { T , F , TF }
 \cs_new:Npn \prop_map_function:NN #1#2
   {
     \exp_after:wN \use_i_ii:nnn
@@ -10272,6 +9674,12 @@
         { \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} }
         { } { } \iow_log:n
     }
+  \__msg_class_new:nn { term }
+    {
+      \iow_wrap:nnnN
+        { \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} }
+        { } { } \iow_term:n
+    }
   \__msg_class_new:nn { none } { }
   \__msg_class_new:nn { show }
     {
@@ -11736,24 +11144,24 @@
         \tl_if_blank:eTF { \__file_size:n {#1} }
           {
             \seq_map_tokens:Nn \l_file_search_path_seq
-              { \__file_full_name_aux:nn {#1} }
+              { \__file_full_name_aux:Nnn \seq_map_break:n {#1} }
             \cs_if_exist:NT \input@path
               {
                 \tl_map_tokens:Nn \input@path
-                  { \__file_full_name_aux:nn {#1} }
+                  { \__file_full_name_aux:Nnn \tl_map_break:n {#1} }
               }
             \__file_name_end:
           }
           { \__file_ext_check:n {#1} }
       }
   }
-\cs_new:Npn \__file_full_name_aux:nn #1#2
-  { \exp_args:Ne \__file_full_name_aux:n { \tl_to_str:n {#2} / #1 } }
-\cs_new:Npn \__file_full_name_aux:n #1
+\cs_new:Npn \__file_full_name_aux:Nnn #1#2#3
+  { \exp_args:Ne \__file_full_name_aux:nN { \tl_to_str:n {#3} / #2 } #1 }
+\cs_new:Npn \__file_full_name_aux:nN #1 #2
   {
     \tl_if_blank:eF { \__file_size:n {#1} }
       {
-        \seq_map_break:n
+        #2
           {
             \__file_ext_check:n {#1}
             \__file_name_cleanup:w
@@ -12194,46 +11602,63 @@
     \str_gset:Nn \g_file_curr_name_str {#2}
     \str_gset:Nn \g_file_curr_ext_str  {#3}
   }
-\cs_new_protected:Npn \file_parse_full_name:nNNN #1#2#3#4
+\cs_new:Npn \file_parse_full_name:n #1
+  {
+    \file_parse_full_name_apply:nN {#1}
+      \prg_do_nothing:
+  }
+\cs_new:Npn \file_parse_full_name_apply:nN #1
   {
-    \exp_after:wN \__file_parse_full_name_auxi:w
-      \tl_to_str:n { #1 " #1 " } \s__file_stop #2#3#4
+    \exp_args:Ne \__file_parse_full_name_auxi:nN
+      { \__kernel_file_name_sanitize:n {#1} }
   }
-\cs_generate_variant:Nn \file_parse_full_name:nNNN { V }
-\cs_new_protected:Npn \__file_parse_full_name_auxi:w
-  #1 " #2 " #3 \s__file_stop #4#5#6
+\cs_new:Npn \__file_parse_full_name_auxi:nN #1
   {
-    \__file_parse_full_name_split:nNNNTF {#2} / #4 #5
-      { \str_if_empty:NT #4 { \str_set:Nn #4 { / } } }
-      { }
-    \exp_args:No \__file_parse_full_name_split:nNNNTF {#5} . #5 #6
-      { \str_put_left:Nn #6 { . } }
-      {
-        \str_set_eq:NN #5 #6
-        \str_clear:N #6
-      }
+    \__file_parse_full_name_area:nw { } #1
+      / \s__file_stop
+  }
+\cs_new:Npn \__file_parse_full_name_area:nw #1 #2 / #3 \s__file_stop
+  {
+    \tl_if_empty:nTF {#3}
+      { \__file_parse_full_name_base:nw { } #2 . \s__file_stop {#1} }
+      { \__file_parse_full_name_area:nw { #1 / #2 } #3 \s__file_stop }
   }
-\cs_new_protected:Npn \__file_parse_full_name_split:nNNNTF #1#2#3#4
+\cs_new:Npn \__file_parse_full_name_base:nw #1 #2 . #3 \s__file_stop
   {
-    \cs_set_protected:Npn \__file_tmp:w ##1 ##2 #2 ##3 \s__file_stop
+    \tl_if_empty:nTF {#3}
       {
-        \tl_if_empty:nTF {##3}
+        \tl_if_empty:nTF {#1}
           {
-            \str_set:Nn #4 {##2}
-            \tl_if_empty:nTF {##1}
-              {
-                \str_clear:N #3
-                \use_ii:nn
-              }
-              {
-                \str_set:Nx #3 { \str_tail:n {##1} }
-                \use_i:nn
-              }
+            \tl_if_empty:nTF {#2}
+              { \__file_parse_full_name_tidy:nnnN { } { } }
+              { \__file_parse_full_name_tidy:nnnN { .#2 } { } }
           }
-          { \__file_tmp:w { ##1 #2 ##2 } ##3 \s__file_stop }
+          { \__file_parse_full_name_tidy:nnnN {#1} { .#2 } }
+      }
+      { \__file_parse_full_name_base:nw { #1 . #2 } #3 \s__file_stop }
+  }
+\cs_new:Npn \__file_parse_full_name_tidy:nnnN #1 #2 #3 #4
+  {
+    \exp_args:Nee #4
+      {
+        \str_if_eq:nnF {#3} { / } { \use_none:n }
+        #3 \prg_do_nothing:
       }
-    \__file_tmp:w { } #1 #2 \s__file_stop
+      { \use_none:n #1 \prg_do_nothing: }
+      {#2}
+  }
+\cs_new_protected:Npn \file_parse_full_name:nNNN #1 #2 #3 #4
+  {
+    \file_parse_full_name_apply:nN {#1}
+      \__file_full_name_assign:nnnNNN #2 #3 #4
   }
+\cs_new_protected:Npn \__file_full_name_assign:nnnNNN #1 #2 #3 #4 #5 #6
+  {
+    \str_set:Nn #4 {#1}
+    \str_set:Nn #5 {#2}
+    \str_set:Nn #6 {#3}
+  }
+\cs_generate_variant:Nn \file_parse_full_name:nNNN { V }
 \cs_new_protected:Npn \file_show_list: { \__file_list:N \msg_show:nnxxxx }
 \cs_new_protected:Npn \file_log_list: { \__file_list:N \msg_log:nnxxxx }
 \cs_new_protected:Npn \__file_list:N #1
@@ -14126,24 +13551,23 @@
 \cs_generate_variant:Nn \intarray_count:N { c }
 \cs_new:Npn \__intarray_signed_max_dim:n #1
   { \int_value:w \int_compare:nNnT {#1} < 0 { - } \c_max_dim }
-\cs_new:Npn \__intarray_bounds:NNnTF #1#2#3#4#5
+\cs_new:Npn \__intarray_bounds:NNnTF #1#2#3
   {
     \if_int_compare:w 1 > #3 \exp_stop_f:
-      \__intarray_bounds_error:NNn #1 #2 {#3}
-      #5
+      \__intarray_bounds_error:NNnw #1 #2 {#3}
     \else:
       \if_int_compare:w #3 > \intarray_count:N #2 \exp_stop_f:
-        \__intarray_bounds_error:NNn #1 #2 {#3}
-        #5
-      \else:
-        #4
+        \__intarray_bounds_error:NNnw #1 #2 {#3}
       \fi:
     \fi:
+    \use_i:nn
   }
-\cs_new:Npn \__intarray_bounds_error:NNn #1#2#3
+\cs_new:Npn \__intarray_bounds_error:NNnw #1#2#3#4 \use_i:nn #5#6
   {
+    #4
     #1 { kernel } { out-of-bounds }
       { \token_to_str:N #2 } {#3} { \intarray_count:N #2 }
+    #6
   }
 \cs_new_protected:Npn \__kernel_intarray_gset:Nnn #1#2#3
   { \__intarray_entry:w #2 #1 #3 \c__intarray_sp_dim }
@@ -15749,22 +15173,23 @@
 \cs_new:Npn \__fp_parse_exponent:N #1
   {
     \if:w e \if:w E \exp_not:N #1 e \else: \exp_not:N #1 \fi:
-      \exp_after:wN \__fp_parse_exponent_aux:N
+      \exp_after:wN \__fp_parse_exponent_aux:NN
+      \exp_after:wN #1
       \exp:w
     \else:
       0 \__fp_parse_return_semicolon:w #1
     \fi:
     \__fp_parse_expand:w
   }
-\cs_new:Npn \__fp_parse_exponent_aux:N #1
+\cs_new:Npn \__fp_parse_exponent_aux:NN #1#2
   {
-    \if_int_compare:w \if_catcode:w \scan_stop: \exp_not:N #1
-                0 \else: `#1 \fi: > `9 \exp_stop_f:
-      0 \exp_after:wN ; \exp_after:wN e
+    \if_int_compare:w \if_catcode:w \scan_stop: \exp_not:N #2
+                0 \else: `#2 \fi: > `9 \exp_stop_f:
+      0 \exp_after:wN ; \exp_after:wN #1
     \else:
       \exp_after:wN \__fp_parse_exponent_sign:N
     \fi:
-    #1
+    #2
   }
 \cs_new:Npn \__fp_parse_exponent_sign:N #1
   {
@@ -20684,6 +20109,361 @@
   }
 \cs_new:Npn \__fp_array_item_normal:w #1 #2#3#4#5 #6 ; #7 ; #8 ; #9
   { #9 \s__fp \__fp_chk:w 1 #1 {#8} #7 {#2#3#4#5} {#6} ; }
+%% File: l3cctab.dtx
+\seq_new:N \g__cctab_stack_seq
+\seq_new:N \g__cctab_unused_seq
+\seq_new:N \g__cctab_group_seq
+\int_new:N  \g__cctab_allocate_int
+\tl_new:N \l__cctab_internal_a_tl
+\tl_new:N \l__cctab_internal_b_tl
+\prop_new:N \g__cctab_endlinechar_prop
+\sys_if_engine_luatex:TF
+  {
+    \cs_new_protected:Npn \cctab_new:N #1
+      {
+        \__kernel_chk_if_free_cs:N #1
+        \__cctab_new:N #1
+      }
+    \cs_new_eq:NN \__cctab_new:N \newcatcodetable
+  }
+  {
+    \cs_new_protected:Npn \__cctab_new:N #1
+      { \intarray_new:Nn #1 { 257 } }
+    \cs_new_protected:Npn \__cctab_gstore:Nnn #1#2#3
+      { \intarray_gset:Nnn #1 { \int_eval:n { #2 + 1 } } {#3} }
+    \cs_new_protected:Npn \cctab_new:N #1
+      {
+        \__kernel_chk_if_free_cs:N #1
+        \__cctab_new:N #1
+        \int_step_inline:nn { 256 }
+          { \__kernel_intarray_gset:Nnn #1 {##1} { 12 } }
+        \__kernel_intarray_gset:Nnn #1 { 257 } { 13 }
+        \__cctab_gstore:Nnn #1 { 0 } { 9 }
+        \__cctab_gstore:Nnn #1 { 13 } { 5 }
+        \__cctab_gstore:Nnn #1 { 32 } { 10 }
+        \__cctab_gstore:Nnn #1 { 37 } { 14 }
+        \int_step_inline:nnn { 65 } { 90 }
+          { \__cctab_gstore:Nnn #1 {##1} { 11 } }
+        \__cctab_gstore:Nnn #1 { 92 } { 0 }
+        \int_step_inline:nnn { 97 } { 122 }
+          { \__cctab_gstore:Nnn #1 {##1} { 11 } }
+        \__cctab_gstore:Nnn #1 { 127 } { 15 }
+      }
+  }
+\cs_generate_variant:Nn \cctab_new:N { c }
+\sys_if_engine_luatex:TF
+  {
+    \cs_new_protected:Npn \__cctab_gset:n #1
+      { \exp_args:Nf \__cctab_gset_aux:n { \int_eval:n {#1} } }
+    \cs_new_protected:Npn \__cctab_gset_aux:n #1
+      {
+        \tex_savecatcodetable:D #1 \scan_stop:
+        \int_compare:nNnTF { \tex_endlinechar:D } = { 13 }
+          { \prop_gremove:Nn \g__cctab_endlinechar_prop {#1} }
+          {
+            \prop_gput:NnV \g__cctab_endlinechar_prop {#1}
+              \tex_endlinechar:D
+          }
+      }
+  }
+  {
+    \cs_new_protected:Npn \__cctab_gset:n #1
+      {
+        \int_step_inline:nn { 256 }
+          {
+            \__kernel_intarray_gset:Nnn #1 {##1}
+              { \char_value_catcode:n { ##1 - 1 } }
+          }
+        \__kernel_intarray_gset:Nnn #1 { 257 }
+          { \tex_endlinechar:D }
+      }
+  }
+\cs_new_protected:Npn \cctab_gset:Nn #1#2
+  {
+    \__cctab_chk_if_valid:NT #1
+      {
+        \group_begin:
+          \cctab_select:N \c_initex_cctab
+          #2 \scan_stop:
+          \__cctab_gset:n {#1}
+        \group_end:
+      }
+  }
+\cs_generate_variant:Nn \cctab_gset:Nn { c }
+\sys_if_engine_luatex:T
+  {
+    \__cctab_new:N \g__cctab_internal_cctab
+    \cs_new:Npn \__cctab_internal_cctab_name:
+      {
+        g__cctab_internal
+        \tex_romannumeral:D \tex_currentgrouplevel:D
+        _cctab
+      }
+  }
+\cs_new_protected:Npn \cctab_select:N #1
+  { \__cctab_chk_if_valid:NT #1 { \__cctab_select:N #1 } }
+\cs_generate_variant:Nn \cctab_select:N { c }
+\sys_if_engine_luatex:TF
+  {
+    \cs_new_protected:Npn \__cctab_select:N #1
+      {
+        \tex_catcodetable:D #1
+        \prop_get:NVNTF \g__cctab_endlinechar_prop #1 \l__cctab_internal_a_tl
+          { \int_set:Nn \tex_endlinechar:D { \l__cctab_internal_a_tl } }
+          { \int_set:Nn \tex_endlinechar:D { 13 } }
+        \cs_if_exist:cF { \__cctab_internal_cctab_name: }
+          { \exp_args:Nc \__cctab_new:N { \__cctab_internal_cctab_name: } }
+        \exp_args:Nc \tex_savecatcodetable:D { \__cctab_internal_cctab_name: }
+        \exp_args:Nc \tex_catcodetable:D { \__cctab_internal_cctab_name: }
+      }
+  }
+  {
+    \cs_new_protected:Npn \__cctab_select:N #1
+      {
+        \int_step_inline:nn { 256 }
+          {
+            \char_set_catcode:nn { ##1 - 1 }
+              { \__kernel_intarray_item:Nn #1 {##1} }
+          }
+        \int_set:Nn \tex_endlinechar:D
+          { \__kernel_intarray_item:Nn #1 { 257 } }
+      }
+  }
+\sys_if_engine_luatex:TF
+  {
+    \cs_new_protected:Npn \__cctab_begin_aux:
+      {
+        \__cctab_new:N \g__cctab_next_cctab
+        \tl_set:NV \l__cctab_internal_a_tl \g__cctab_next_cctab
+        \cs_undefine:N \g__cctab_next_cctab
+      }
+  }
+  {
+    \cs_new_protected:Npn \__cctab_begin_aux:
+      {
+        \int_gincr:N \g__cctab_allocate_int
+        \exp_args:Nc \__cctab_new:N
+          { g__cctab_ \int_use:N \g__cctab_allocate_int _cctab }
+        \exp_args:NNc \tl_set:Nn \l__cctab_internal_a_tl
+          { g__cctab_ \int_use:N \g__cctab_allocate_int _cctab }
+      }
+  }
+\cs_new_protected:Npn \cctab_begin:N #1
+  {
+    \__cctab_chk_if_valid:NT #1
+      {
+        \seq_gpop:NNF \g__cctab_unused_seq \l__cctab_internal_a_tl
+          { \__cctab_begin_aux: }
+        \exp_args:Nx \__cctab_chk_group_begin:n
+          { \__cctab_nesting_number:N \l__cctab_internal_a_tl }
+        \seq_gpush:NV \g__cctab_stack_seq \l__cctab_internal_a_tl
+        \exp_args:NV \__cctab_gset:n \l__cctab_internal_a_tl
+        \__cctab_select:N #1
+      }
+  }
+\cs_generate_variant:Nn \cctab_begin:N { c }
+\cs_new_protected:Npn \cctab_end:
+  {
+    \seq_gpop:NNTF \g__cctab_stack_seq \l__cctab_internal_a_tl
+      {
+        \seq_gpush:NV \g__cctab_unused_seq \l__cctab_internal_a_tl
+        \exp_args:Nx \__cctab_chk_group_end:n
+          { \__cctab_nesting_number:N \l__cctab_internal_a_tl }
+        \__cctab_select:N \l__cctab_internal_a_tl
+      }
+      { \__kernel_msg_error:nn { kernel } { cctab-extra-end } }
+  }
+\cs_new_protected:Npn \__cctab_chk_group_begin:n #1
+  {
+    \seq_gpush:Nx \g__cctab_group_seq
+      { \int_use:N \tex_currentgrouplevel:D }
+    \cs_set_eq:cN { __cctab_group_ #1 _chk: } \prg_do_nothing:
+  }
+\cs_new_protected:Npn \__cctab_chk_group_end:n #1
+  {
+    \seq_gpop:NN \g__cctab_group_seq \l__cctab_internal_b_tl
+    \bool_lazy_and:nnF
+      {
+        \int_compare_p:nNn
+          { \tex_currentgrouplevel:D } = { \l__cctab_internal_b_tl }
+      }
+      { \cs_if_exist_p:c { __cctab_group_ #1 _chk: } }
+      {
+        \__kernel_msg_error:nnx { kernel } { cctab-group-mismatch }
+          {
+            \int_sign:n
+              { \tex_currentgrouplevel:D - \l__cctab_internal_b_tl }
+          }
+      }
+    \cs_undefine:c { __cctab_group_ #1 _chk: }
+  }
+\sys_if_engine_luatex:TF
+  { \cs_new:Npn \__cctab_nesting_number:N #1 {#1} }
+  {
+    \cs_new:Npn \__cctab_nesting_number:N #1
+      {
+        \exp_after:wN \exp_after:wN \exp_after:wN \__cctab_nesting_number:w
+          \exp_after:wN \token_to_str:N #1
+      }
+    \use:x
+      {
+        \cs_new:Npn \exp_not:N \__cctab_nesting_number:w
+          ##1 \tl_to_str:n { g__cctab_ } ##2 \tl_to_str:n { _cctab } {##2}
+      }
+  }
+\cs_if_exist:NT \hook_gput_code:nnn
+  {
+    \hook_gput_code:nnn { enddocument/end } { kernel }
+      {
+        \seq_if_empty:NF \g__cctab_stack_seq
+          { \__kernel_msg_error:nn { kernel } { cctab-missing-end } }
+      }
+  }
+\prg_new_eq_conditional:NNn \cctab_if_exist:N \cs_if_exist:N
+  { TF , T , F , p }
+\prg_new_eq_conditional:NNn \cctab_if_exist:c \cs_if_exist:c
+  { TF , T , F , p }
+\prg_new_protected_conditional:Npnn \__cctab_chk_if_valid:N #1
+  { TF , T , F }
+  {
+    \cctab_if_exist:NTF #1
+      {
+        \__cctab_chk_if_valid_aux:NTF #1
+          { \prg_return_true: }
+          {
+            \__kernel_msg_error:nnx { kernel } { invalid-cctab }
+              { \token_to_str:N #1 }
+            \prg_return_false:
+          }
+      }
+      {
+        \__kernel_msg_error:nnx { kernel } { command-not-defined }
+          { \token_to_str:N #1 }
+        \prg_return_false:
+      }
+  }
+\sys_if_engine_luatex:TF
+  {
+    \cs_new_protected:Npn \__cctab_chk_if_valid_aux:NTF #1
+      {
+        \int_compare:nNnTF {#1-1} < { \e@alloc@ccodetable@count }
+      }
+  }
+  {
+    \cs_new_protected:Npn \__cctab_chk_if_valid_aux:NTF #1
+      {
+        \exp_args:Nf \str_if_in:nnTF
+          { \cs_meaning:N #1 }
+          { select~font~cmr10~at~ }
+      }
+  }
+\cs_new_protected:Npn \cctab_const:Nn #1#2
+  {
+    \cctab_new:N #1
+    \cctab_gset:Nn #1 {#2}
+  }
+\cs_generate_variant:Nn \cctab_const:Nn { c }
+\cctab_new:N \c_initex_cctab
+\cctab_const:Nn \c_other_cctab
+  {
+    \cctab_select:N \c_initex_cctab
+    \int_set:Nn \tex_endlinechar:D     { -1 }
+    \int_step_inline:nnn { 0 } { 127 }
+      { \char_set_catcode_other:n {#1} }
+  }
+\cctab_const:Nn \c_str_cctab
+  {
+    \cctab_select:N \c_other_cctab
+    \char_set_catcode_space:n { 32 }
+  }
+\cs_if_exist:NTF \@expl@finalise@setup@@
+  { \tl_gput_right:Nn \@expl@finalise@setup@@ }
+  { \use:n }
+  {
+    \__cctab_new:N \c_code_cctab
+    \group_begin:
+      \int_set:Nn \tex_endlinechar:D { 32 }
+      \char_set_catcode_invalid:n { 0 }
+      \bool_lazy_or:nnTF
+        { \sys_if_engine_xetex_p: } { \sys_if_engine_luatex_p: }
+        { \int_step_function:nN { 31 } \char_set_catcode_invalid:n }
+        { \int_step_function:nN { 31 } \char_set_catcode_active:n }
+      \int_step_function:nnN { 33 } { 64 } \char_set_catcode_other:n
+      \int_step_function:nnN { 65 } { 90 } \char_set_catcode_letter:n
+      \int_step_function:nnN { 91 } { 96 } \char_set_catcode_other:n
+      \int_step_function:nnN { 97 } { 122 } \char_set_catcode_letter:n
+      \char_set_catcode_ignore:n           { 9 }   % tab
+      \char_set_catcode_other:n            { 10 }  % lf
+      \char_set_catcode_active:n           { 12 }  % ff
+      \char_set_catcode_end_line:n         { 13 }  % cr
+      \char_set_catcode_ignore:n           { 32 }  % space
+      \char_set_catcode_parameter:n        { 35 }  % hash
+      \char_set_catcode_math_toggle:n      { 36 }  % dollar
+      \char_set_catcode_comment:n          { 37 }  % percent
+      \char_set_catcode_alignment:n        { 38 }  % ampersand
+      \char_set_catcode_letter:n           { 58 }  % colon
+      \char_set_catcode_escape:n           { 92 }  % backslash
+      \char_set_catcode_math_superscript:n { 94 }  % circumflex
+      \char_set_catcode_letter:n           { 95 }  % underscore
+      \char_set_catcode_group_begin:n      { 123 } % left brace
+      \char_set_catcode_other:n            { 124 } % pipe
+      \char_set_catcode_group_end:n        { 125 } % right brace
+      \char_set_catcode_space:n            { 126 } % tilde
+      \char_set_catcode_invalid:n          { 127 } % ^^?
+      \__cctab_gset:n { \c_code_cctab }
+    \group_end:
+    \cctab_const:Nn \c_document_cctab
+      {
+        \cctab_select:N \c_code_cctab
+        \int_set:Nn \tex_endlinechar:D { 13 }
+        \char_set_catcode_space:n          { 9 }
+        \char_set_catcode_space:n          { 32 }
+        \char_set_catcode_other:n          { 58 }
+        \char_set_catcode_math_subscript:n { 95 }
+        \char_set_catcode_active:n         { 126 }
+      }
+  }
+\__kernel_msg_new:nnnn { kernel } { cctab-stack-full }
+  { The~category~code~table~stack~is~exhausted. }
+  {
+    LaTeX~has~been~asked~to~switch~to~a~new~category~code~table,~
+    but~there~is~no~more~space~to~do~this!
+  }
+\__kernel_msg_new:nnnn { kernel } { cctab-extra-end }
+  { Extra~\iow_char:N\\cctab_end:~ignored~\msg_line_context:. }
+  {
+    LaTeX~came~across~a~\iow_char:N\\cctab_end:~without~a~matching~
+    \iow_char:N\\cctab_begin:N.~This~command~will~be~ignored.
+  }
+\__kernel_msg_new:nnnn { kernel } { cctab-missing-end }
+  { Missing~\iow_char:N\\cctab_end:~before~end~of~TeX~run. }
+  {
+    LaTeX~came~across~more~\iow_char:N\\cctab_begin:N~than~
+    \iow_char:N\\cctab_end:.
+  }
+\__kernel_msg_new:nnnn { kernel } { invalid-cctab }
+  { Invalid~\iow_char:N\\catcode~table. }
+  {
+    You~can~only~switch~to~a~\iow_char:N\\catcode~table~that~is~
+    initialized~using~\iow_char:N\\cctab_new:N~or~
+    \iow_char:N\\cctab_const:Nn.
+  }
+\__kernel_msg_new:nnnn { kernel } { cctab-group-mismatch }
+  {
+    \iow_char:N\\cctab_end:~occurred~in~a~
+    \int_case:nn {#1}
+      {
+        { 0 } { different~group }
+        { 1 } { higher~group~level }
+        { -1 } { lower~group~level }
+      } ~than~
+    the~matching~\iow_char:N\\cctab_begin:N.
+  }
+  {
+    Catcode~tables~and~groups~must~be~properly~nested,~but~
+    you~tried~to~interleave~them.~LaTeX~will~try~to~proceed,~
+    but~results~may~be~unexpected.
+  }
 %% File l3sort.dtx
 \seq_new:N \g__sort_internal_seq
 \tl_new:N \g__sort_internal_tl
@@ -24471,7 +24251,7 @@
 \cs_new_protected:Npn \__regex_show_item_exact_cs:n #1
   {
     \seq_set_split:Nnn \l__regex_internal_seq { \scan_stop: } {#1}
-    \seq_set_map:NNn \l__regex_internal_seq
+    \seq_set_map_x:NNn \l__regex_internal_seq
       \l__regex_internal_seq { \iow_char:N\\##1 }
     \__regex_show_one:n
       { control~sequence~ \seq_use:Nn \l__regex_internal_seq { ~or~ } }
@@ -25626,7 +25406,7 @@
             { \flag_height:n { __regex_end } }
             { \flag_height:n { __regex_begin } }
         }
-      \seq_set_map:NNn \l__regex_internal_seq \l__regex_internal_seq {##1}
+      \seq_set_map_x:NNn \l__regex_internal_seq \l__regex_internal_seq {##1}
       \exp_args:NNNo
       \group_end:
       \tl_set:Nn #1 { \l__regex_internal_seq }
@@ -30627,16 +30407,6 @@
     #1 #2 { #3 }
     \__seq_pop_item_def:
   }
-\cs_new_protected:Npn \seq_set_map:NNn
-  { \__seq_set_map:NNNn \tl_set:Nx }
-\cs_new_protected:Npn \seq_gset_map:NNn
-  { \__seq_set_map:NNNn \tl_gset:Nx }
-\cs_new_protected:Npn \__seq_set_map:NNNn #1#2#3#4
-  {
-    \__seq_push_item_def:n { \exp_not:N \__seq_item:n {#4} }
-    #1 #2 { #3 }
-    \__seq_pop_item_def:
-  }
 \cs_new_protected:Npn \seq_set_from_inline_x:Nnn
   { \__seq_set_from_inline_x:NNnn \tl_set:Nx }
 \cs_new_protected:Npn \seq_gset_from_inline_x:Nnn
@@ -31070,6 +30840,52 @@
   { \c_sys_jobname_str } { 2017-01-01 }
 \__deprecation_old:Nnn \c_minus_one
   { -1 } { 2019-01-01 }
+\__deprecation_old:Nnn \c_zero
+  { 0 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_one
+  { 1 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_two
+  { 2 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_three
+  { 3 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_four
+  { 4 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_five
+  { 5 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_six
+  { 6 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_seven
+  { 7 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_eight
+  { 8 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_nine
+  { 9 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_ten
+  { 10 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_eleven
+  { 11 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_twelve
+  { 12 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_thirteen
+  { 13 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_fourteen
+  { 14 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_fifteen
+  { 15 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_sixteen
+  { 16 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_thirty_two
+  { 32 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_one_hundred
+  { 100 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_two_hundred_fifty_five
+  { 255 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_two_hundred_fifty_six
+  { 256 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_one_thousand
+  { 1000 } { 2020-01-01 }
+\__deprecation_old:Nnn \c_ten_thousand
+  { 10000 } { 2020-01-01 }
 \__deprecation_old:Nnn \dim_case:nnn
   { \dim_case:nnF } { 2015-07-14 }
 \__deprecation_old:Nnn \file_add_path:nN
@@ -31110,6 +30926,12 @@
   { \iow_show_list: } { 2019-01-01 }
 \__deprecation_old:Nnn \iow_log_streams:
   { \iow_log_list: } { 2019-01-01 }
+\__deprecation_old:Nnn \lua_escape_x:n
+  { \lua_escape:e } { 2020-01-01 }
+\__deprecation_old:Nnn \lua_now_x:n
+  { \lua_now:e } { 2020-01-01 }
+\__deprecation_old_protected:Nnn \lua_shipout_x:n
+  { \lua_shipout_e:n } { 2020-01-01 }
 \__deprecation_old:Nnn \luatex_if_engine_p:
   { \sys_if_engine_luatex_p: } { 2017-01-01 }
 \__deprecation_old:Nnn \luatex_if_engine:F
@@ -31118,6 +30940,12 @@
   { \sys_if_engine_luatex:T } { 2017-01-01 }
 \__deprecation_old:Nnn \luatex_if_engine:TF
   { \sys_if_engine_luatex:TF } { 2017-01-01 }
+\__deprecation_old_protected:Nnn \msg_interrupt:nnn
+  { [Defined~error~message] } { 2020-01-01 }
+\__deprecation_old_protected:Nnn \msg_log:n
+  { \iow_log:n } { 2020-01-01 }
+\__deprecation_old_protected:Nnn \msg_term:n
+  { \iow_term:n } { 2020-01-01 }
 \__deprecation_old:Nnn \pdftex_if_engine_p:
   { \sys_if_engine_pdftex_p: } { 2017-01-01 }
 \__deprecation_old:Nnn \pdftex_if_engine:F
@@ -31144,8 +30972,28 @@
   { \str_case:nnF } { 2015-07-14 }
 \__deprecation_old:Nnn \str_case:onn
   { \str_case:onF } { 2015-07-14 }
+\__deprecation_old:Nnn \str_case_x:nn
+  { \str_case_e:nn } { 2020-01-01 }
 \__deprecation_old:Nnn \str_case_x:nnn
   { \str_case_e:nnF } { 2015-07-14 }
+\__deprecation_old:Nnn \str_case_x:nnT
+  { \str_case_e:nnT } { 2020-01-01 }
+\__deprecation_old:Nnn \str_case_x:nnTF
+  { \str_case_e:nnTF } { 2020-01-01 }
+\__deprecation_old:Nnn \str_case_x:nnF
+  { \str_case_e:nnF } { 2020-01-01 }
+\__deprecation_old:Nnn \str_if_eq_x_p:nn
+  { \str_if_eq_p:ee } { 2020-01-01 }
+\__deprecation_old:Nnn \str_if_eq_x:nnT
+  { \str_if_eq:eeT } { 2020-01-01 }
+\__deprecation_old:Nnn \str_if_eq_x:nnF
+  { \str_if_eq:eeF } { 2020-01-01 }
+\__deprecation_old:Nnn \str_if_eq_x:nnTF
+  { \str_if_eq:eeTF } { 2020-01-01 }
+\__deprecation_old_protected:Nnn \tl_show_analysis:N
+  { \tl_analysis_show:N } { 2020-01-01 }
+\__deprecation_old_protected:Nnn \tl_show_analysis:n
+  { \tl_analysis_show:n } { 2020-01-01 }
 \__deprecation_old:Nnn \tl_case:cnn
   { \tl_case:cnF } { 2015-07-14 }
 \__deprecation_old:Nnn \tl_case:Nnn
@@ -31164,50 +31012,6 @@
   { \sys_if_engine_xetex:T } { 2017-01-01 }
 \__deprecation_old:Nnn \xetex_if_engine:TF
   { \sys_if_engine_xetex:TF } { 2017-01-01 }
-\cs_new_protected:Npn \__deprecation_primitive:NN #1#2 { }
-\exp_last_unbraced:NNNNo
-  \cs_new:Npn \__deprecation_primitive:w #1 { \token_to_str:N _ } { }
-\__kernel_deprecation_code:nn
-  {
-    \cs_set_protected:Npn \__kernel_primitive:NN #1
-      {
-        \exp_after:wN \__deprecation_primitive:NN
-        \exp_after:wN #1
-        \exp_not:N
-      }
-    \cs_set_protected:Npn \__deprecation_primitive:NN #1#2
-      {
-        \tex_let:D #2 \scan_stop:
-        \exp_args:NNx \__kernel_deprecation_error:Nnn #2
-          {
-            \iow_char:N \\
-            \cs_if_exist:NTF #1
-              { \cs_to_str:N #1 }
-              {
-                tex_
-                \exp_last_unbraced:Nf
-                \__deprecation_primitive:w { \cs_to_str:N #2 }
-              }
-          }
-          { 2020-01-01 }
-      }
-    \__kernel_primitives:
-  }
-  {
-    \cs_set_protected:Npn \__kernel_primitive:NN #1
-      {
-        \exp_after:wN \__deprecation_primitive:NN
-        \exp_after:wN #1
-        \exp_not:N
-      }
-    \cs_set_protected:Npn \__deprecation_primitive:NN #1#2
-      {
-        \tex_let:D #2 #1
-        \cs_if_exist:cT { tex_ \cs_to_str:N #1 :D }
-          { \cs_set_eq:Nc #2 { tex_ \cs_to_str:N #1 :D } }
-      }
-    \__kernel_primitives:
-  }
 \group_begin:
 \cs_set_protected:Npn \ProvidesExplFile
   {
-- 
cgit v1.2.3

