texlive[57375] Master/texmf-dist: l3 (9jan21)

commits+karl at tug.org commits+karl at tug.org
Sun Jan 10 22:49:38 CET 2021


Revision: 57375
          http://tug.org/svn/texlive?view=revision&revision=57375
Author:   karl
Date:     2021-01-10 22:49:38 +0100 (Sun, 10 Jan 2021)
Log Message:
-----------
l3 (9jan21)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3backend/README.md
    trunk/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
    trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
    trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins
    trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins
    trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
    trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,6 +6,16 @@
 
 ## [Unreleased]
 
+## [2021-01-09]
+
+### Added
+- Support for referencing last link with `(x)dvipdfmx` (requires an up-to-date
+  backend)
+
+### Changed
+- Implementation of color wtih (x)dvipdfmx (requires an up-to-date
+  backend)
+
 ## [2020-09-24]
 
 ### Fixed
@@ -125,7 +135,8 @@
 - Include `l3backend` in file names
 - Moved backend code to internal for each 'parent' module
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2020-09-24...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2021-01-09...HEAD
+[2021-01-09]: https://github.com/latex3/latex3/compare/2020-09-24...2021-01-09
 [2020-09-24]: https://github.com/latex3/latex3/compare/2020-09-11...2020-09-24
 [2020-09-11]: https://github.com/latex3/latex3/compare/2020-09-01...2020-09-11
 [2020-09-01]: https://github.com/latex3/latex3/compare/2020-08-07...2020-09-01

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3backend/README.md	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/doc/latex/l3backend/README.md	2021-01-10 21:49:38 UTC (rev 57375)
@@ -1,7 +1,7 @@
 LaTeX3 Backend Drivers
 ======================
 
-Release 2020-09-24
+Release 2021-01-09
 
 This package forms parts of `expl3`, and contains the code used to interface
 with backends (drivers) across the `expl3` codebase. The functions here are
@@ -11,6 +11,6 @@
 
 -----
 
-<p>Copyright (C) 2019,2020 The LaTeX3 Project <br />
+<p>Copyright (C) 2019-2021 The LaTeX3 Project <br />
 <a href="http://latex-project.org/">http://latex-project.org/</a> <br />
 All rights reserved.</p>

Modified: trunk/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2021-01-10 21:49:38 UTC (rev 57375)
@@ -7,6 +7,17 @@
 
 ## [Unreleased]
 
+## [2021-01-09]
+
+### Added
+- `\keyval_parse:nnn`
+
+### Changed
+- `\keyval_parse:NNn` is set equal to `\keyval_parse:nnn`
+
+### Fixed
+- Handling of encoding-specfic commands in `\text_purify:n`
+
 ## [2020-12-07]
 
 ### Fixed
@@ -815,7 +826,8 @@
 - Step func­tions have been added for dim vari­ables,
   e.g. `\dim_step_in­line:nnnn`
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2020-12-07...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2021-01-09...HEAD
+[2021-01-09]: https://github.com/latex3/latex3/compare/2020-12-07...2021-01-09
 [2020-12-07]: https://github.com/latex3/latex3/compare/2020-12-05...2020-12-07
 [2020-12-05]: https://github.com/latex3/latex3/compare/2020-12-03...2020-12-05
 [2020-12-03]: https://github.com/latex3/latex3/compare/2020-10-27...2020-12-03

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2021-01-10 21:49:38 UTC (rev 57375)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2020-12-07
+Release 2021-01-09
 
 Overview
 --------
@@ -80,6 +80,6 @@
 
 -----
 
-<p>Copyright (C) 1998-2012,2015-2020 The LaTeX3 Project <br />
+<p>Copyright (C) 1998-2012,2015-2021 The LaTeX3 Project <br />
 <a href="http://latex-project.org/">http://latex-project.org/</a> <br />
 All rights reserved.</p>

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 
 File: interfaces3.tex
 
-Copyright (C) 1990-2011,2017-2020 The LaTeX3 Project
+Copyright (C) 1990-2011,2017-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -54,7 +54,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2020-12-07}
+\date{Released 2021-01-09}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv	2021-01-10 21:49:38 UTC (rev 57375)
@@ -164,6 +164,7 @@
 quark,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 randomwalk,randomwalk,Bruno Le Floch,https://github.com/blefloch/latex-randomwalk,https://github.com/blefloch/latex-randomwalk.git,https://github.com/blefloch/latex-randomwalk/issues,2013-03-16,2015-09-22,
 recursion,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
+ref,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2020-12-24,2020-12-24,
 regex,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2018-04-06,
 reverse,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-28,2012-09-28,
 right,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
@@ -175,6 +176,7 @@
 seq,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 shipout,ltshipout,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2020-10-01,2020-10-01,
 siunitx,siunitx,Joseph Wright,https://github.com/josephwright/siunitx,https://github.com/josephwright/siunitx.git,https://github.com/josephwright/siunitx/issues,2012-11-04,2012-11-04,
+skel,skeldoc,Magnus Lie Hetland,https://github.com/mlhetland/skeldoc.sty,https://github.com/mlhetland/skeldoc.sty.git,https://github.com/mlhetland/skeldoc.sty/issues,2021-01-04,2021-01-04,
 skip,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 sort,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2017-02-13,
 space,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 
 File: l3styleguide.tex
 
-Copyright (C) 2011,2012,2014-2020 The LaTeX3 Project
+Copyright (C) 2011,2012,2014-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2020-12-07}
+\date{Released 2021-01-09}
 
 \begin{document}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 
 File: l3syntax-changes.tex
 
-Copyright (C) 2011,2012,2017-2020 The LaTeX3 Project
+Copyright (C) 2011,2012,2017-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2020-12-07}
+\date{Released 2021-01-09}
 
 \newcommand{\TF}{\textit{(TF)}}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 
 File: l3term-glossary.tex
 
-Copyright (C) 2018-2020 The LaTeX3 Project
+Copyright (C) 2018-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2020-12-07}
+\date{Released 2021-01-09}
 
 \newcommand{\TF}{\textit{(TF)}}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 
 File: source3.tex
 
-Copyright (C) 1990-2012,2017-2020 The LaTeX3 Project
+Copyright (C) 1990-2012,2017-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -53,7 +53,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2020-12-07}
+\date{Released 2021-01-09}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro
===================================================================
--- trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/dvips/l3backend/l3backend-dvips.pro	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3backend-header.dtx  (with options: `header,dvips')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-basics.dtx
 %
-% Copyright (C) 2019,2020 The LaTeX3 Project
+% Copyright (C) 2019-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-09-24}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %
@@ -70,27 +70,27 @@
 %    \begin{macrocode}
 \ProvidesExplFile
 %<*dvipdfmx>
-  {l3backend-dvipdfmx.def}{2020-09-24}{}
+  {l3backend-dvipdfmx.def}{2021-01-09}{}
   {L3 backend support: dvipdfmx}
 %</dvipdfmx>
 %<*dvips>
-  {l3backend-dvips.def}{2020-09-24}{}
+  {l3backend-dvips.def}{2021-01-09}{}
   {L3 backend support: dvips}
 %</dvips>
 %<*dvisvgm>
-  {l3backend-dvisvgm.def}{2020-09-24}{}
+  {l3backend-dvisvgm.def}{2021-01-09}{}
   {L3 backend support: dvisvgm}
 %</dvisvgm>
 %<*luatex>
-  {l3backend-luatex.def}{2020-09-24}{}
+  {l3backend-luatex.def}{2021-01-09}{}
   {L3 backend support: PDF output (LuaTeX)}
 %</luatex>
 %<*pdftex>
-  {l3backend-pdftex.def}{2020-09-24}{}
+  {l3backend-pdftex.def}{2021-01-09}{}
   {L3 backend support: PDF output (pdfTeX)}
 %</pdftex>
 %<*xetex>
-  {l3backend-xetex.def}{2020-09-24}{}
+  {l3backend-xetex.def}{2021-01-09}{}
   {L3 backend support: XeTeX}
 %</xetex>
 %    \end{macrocode}
@@ -348,8 +348,9 @@
 % required.
 %
 % \begin{macro}{\__kernel_backend_literal_pdf:n, \__kernel_backend_literal_pdf:x}
-%   Equivalent to \texttt{pdf:content} but favored as the link to
-%   the \pdfTeX{} primitive approach is clearer.
+%   Undocumented but equivalent to \pdfTeX{}'s |literal| keyword. It's similar to
+%   be not the same as the documented |contents| keyword as that adds a |q|/|Q|
+%   pair.
 %    \begin{macrocode}
 \cs_new_protected:Npn \__kernel_backend_literal_pdf:n #1
   { \__kernel_backend_literal:n { pdf:literal~ #1 } }
@@ -379,6 +380,35 @@
 % \end{macro}
 %
 %    \begin{macrocode}
+%<@@=sys>
+%    \end{macrocode}
+%
+% \begin{macro}{\c__kernel_sys_dvipdfmx_version_int}
+%   A short excursion into the |sys| module to set up the backend version
+%   information.
+%    \begin{macrocode}
+\group_begin:
+  \cs_set:Npn \@@_tmp:w #1 Version ~ #2 ~ #3 \q_stop {#2}
+  \sys_get_shell:nnNTF { extractbb~--version }
+    { \char_set_catcode_space:n { `\  } }
+    \l_@@_internal_tl
+    {
+      \int_const:Nn \c__kernel_sys_dvipdfmx_version_int
+        {
+          \exp_after:wN \@@_tmp:w \l_@@_internal_tl
+            \q_stop
+        }
+    }
+    { \int_const:Nn \c__kernel_sys_dvipdfmx_version_int { 0 } }
+\group_end:
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
+%<@@=>
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 %</dvipdfmx|xetex>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-box.dtx
 %
-% Copyright (C) 2019,2020 The LaTeX3 Project
+% Copyright (C) 2019-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-09-24}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-color.dtx
 %
-% Copyright (C) 2019,2020 The LaTeX3 Project
+% Copyright (C) 2019-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-09-24}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %
@@ -60,7 +60,7 @@
 %<@@=color>
 %    \end{macrocode}
 %
-% Color support is split into parts: general color, separations, and color for
+% Color support is split into parts: collecting data from \LaTeXe{}, the color stack, general color, separations, and color for
 % drawings. We have different approaches in each backend, and have some choices
 % to make about \texttt{dvipdfmx}/\XeTeX{} in particular. Whilst it is in some ways
 % convenient to use the same approach in multiple backends, the fact that
@@ -67,54 +67,11 @@
 % \texttt{dvipdfmx}/\XeTeX{} is PDF-based means it (largely) sticks closer to
 % direct PDF output.
 %
-% \subsection{\texttt{dvipmdfx}/\XeTeX{}}
+% \subsection{Collecting information from \LaTeXe{}}
 %
-%    \begin{macrocode}
-%<*dvipdfmx|xetex>
-%    \end{macrocode}
+% \subsubsection{\texttt{dvips}-style}
 %
-% These backends have the most possible approaches: it recognises both
-% \texttt{dvips}-based color specials and it's own format, plus one can
-% include PDF statements directly. The latter are not subject to the stack,
-% so are not suitable for general use. Of the two stack methods, the dedicated
-% one has been extended to cover color spaces, so it is used in preference to
-% the \texttt{dvips} one.
-%
-% The \LaTeXe{} backend code uses \texttt{dvips}-based code with
-% \texttt{dvipmdfx}/\XeTeX{}, and so we leave getting color from \LaTeXe{} to
-% a shared code path below.
-%
-% \begin{macro}
-%   {
-%     \@@_backend_select_cmyk:n  ,
-%     \@@_backend_select_gray:n  ,
-%     \@@_backend_select_rgb:n
-%   }
-% \begin{macro}{\@@_backend_reset:}
-% \begin{macro}{color.sc, color.fc}
-%    Push the data to the stack.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_select_cmyk:n #1
-  {
-    \__kernel_backend_literal:n { pdf: bc ~ [#1] }
-    \group_insert_after:N \@@_backend_reset:
-  }
-\cs_new_eq:NN \@@_backend_select_gray:n \@@_backend_select_cmyk:n
-\cs_new_eq:NN \@@_backend_select_rgb:n \@@_backend_select_cmyk:n
-\cs_new_protected:Npn \@@_backend_reset:
-  { \__kernel_backend_literal:n { pdf: ec } }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</dvipdfmx|xetex>
-%    \end{macrocode}
-%
-% \subsection{\texttt{dvips}-style}
-%
-%    \begin{macrocode}
 %<*dvisvgm|dvipdfmx|dvips|xetex>
 %    \end{macrocode}
 %
@@ -128,7 +85,7 @@
 \cs_new_protected:Npn \@@_backend_pickup:N #1 { }
 \cs_if_exist:cT { ver at color.sty }
   {
-     \cs_set_protected:Npn \@@_backend_pickup:N #1
+    \cs_set_protected:Npn \@@_backend_pickup:N #1
       {
         \exp_args:NV \tl_if_head_is_space:nTF \current at color
           {
@@ -154,51 +111,9 @@
 %</dvisvgm|dvipdfmx|dvips|xetex>
 %    \end{macrocode}
 %
-%    \begin{macrocode}
-%<*dvisvgm|dvips>
-%    \end{macrocode}
+% \subsubsection{\LuaTeX{} and \pdfTeX{}}
 %
-% \begin{macro}
-%   {
-%     \@@_backend_select_cmyk:n  ,
-%     \@@_backend_select_gray:n  ,
-%     \@@_backend_select_rgb:n   ,
-%     \@@_backend_select:n
-%   }
-% \begin{macro}{\@@_backend_reset:}
-% \begin{macro}{color.sc, color.fc}
-%    Push the data to the stack. In the case of \texttt{dvips} also saves the
-%    drawing color in raw PostScript.
 %    \begin{macrocode}
-\cs_new_protected:Npn \@@_backend_select_cmyk:n #1
-  { \@@_backend_select:n { cmyk ~ #1 } }
-\cs_new_protected:Npn \@@_backend_select_gray:n #1
-  { \@@_backend_select:n { gray ~ #1 } }
-\cs_new_protected:Npn \@@_backend_select_rgb:n #1
-  { \@@_backend_select:n { rgb ~ #1 } }
-\cs_new_protected:Npn \@@_backend_select:n #1
-  {
-    \__kernel_backend_literal:n { color~push~ #1 }
-%<*dvips>
-    \__kernel_backend_postscript:n { /color.sc~ { ~ } ~def }
-    \__kernel_backend_postscript:n { /color.fc~ { ~ } ~def }
-%</dvips>
-    \group_insert_after:N \@@_backend_reset:
-  }
-\cs_new_protected:Npn \@@_backend_reset:
-  { \__kernel_backend_literal:n { color~pop } }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%    \begin{macrocode}
-%</dvisvgm|dvips>
-%    \end{macrocode}
-%
-% \subsection{\LuaTeX{} and \pdfTeX{}}
-%
-%    \begin{macrocode}
 %<*luatex|pdftex>
 %    \end{macrocode}
 %
@@ -247,9 +162,192 @@
 % \end{macro}
 % \end{macro}
 %
+%    \begin{macrocode}
+%</luatex|pdftex>
+%    \end{macrocode}
+%
+% \subsection{The color stack}
+%
+% For PDF-based engines, we have a color stack available inside the specials.
+% This is used for concepts beyond color itself: it is needed to manage th graphics
+% state generally. The exact form depends on the engine, and for
+% \texttt{dvipdfmx}/\XeTeX{} the backend version.
+%
+% \subsubsection{\texttt{dvipdfmx}/\XeTeX{}}
+%
+%    \begin{macrocode}
+%<*dvipdfmx|xetex>
+%    \end{macrocode}
+%
+% \begin{macro}{\__kernel_color_stack_init:Nnn}
+% \begin{variable}{\g__color_stack_int}
+%   In \texttt{(x)dvipdfmx}, the base color stack is not set up, so we have to
+%   force that, as well as providing a mechanism more generally.
+%    \begin{macrocode}
+\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+  {
+    \int_new:N \g__color_stack_int
+    \cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3
+      {
+        \int_gincr:N \g__color_stack_int
+        \int_const:Nn #1 { \g__color_stack_int }
+        \__kernel_backend_literal:x
+          {
+            pdfcolorstackinit ~
+            \int_use:N \g__color_stack_int \c_space_tl
+            \tl_if_blank:nF {#2} { #2 ~ }
+            (#3)
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{variable}
+% \end{macro}
+%
+% \begin{macro}{\__kernel_color_stack_push:nn}
+% \begin{macro}{\__kernel_color_stack_pop:n}
+%   Simple enough but needs a version check.
+%    \begin{macrocode}
+\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+  {
+    \cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2
+      {
+        \__kernel_backend_literal:x
+          {
+            pdfcolorstack ~
+            \int_eval:n {#1} ~
+            push ~ (#2)
+          }
+      }
+    \cs_new_protected:Npn \__kernel_color_stack_pop:n #1
+      {
+        \__kernel_backend_literal:x
+          {
+            pdfcolorstack ~
+            \int_eval:n {#1} ~
+            pop
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</dvipdfmx|xetex>
+%    \end{macrocode}
+%
+% \subsubsection{\LuaTeX and \pdfTeX{}}
+%
+%    \begin{macrocode}
+%<*luatex|pdftex>
+%    \end{macrocode}
+%
+% \begin{macro}{\__kernel_color_stack_init:Nnn}
+%    \begin{macrocode}
+\cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3
+  {
+    \int_const:Nn #1
+      {
+%<*luatex>
+        \tex_pdffeedback:D colorstackinit ~
+%</luatex>
+%<*pdftex>
+        \tex_pdfcolorstackinit:D
+%</pdftex>
+        \tl_if_blank:nF {#2} { #2 ~ }
+        {#3}
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\__kernel_color_stack_push:nn}
+% \begin{macro}{\__kernel_color_stack_pop:n}
+%    \begin{macrocode}
+\cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2
+  {
+%<*luatex>
+    \tex_pdfextension:D colorstack ~
+%</luatex>
+%<*pdftex>
+    \tex_pdfcolorstack:D
+%</pdftex>
+      \int_eval:n {#1} ~ push ~ {#2}
+  }
+\cs_new_protected:Npn \__kernel_color_stack_pop:n #1
+  {
+%<*luatex>
+    \tex_pdfextension:D colorstack ~
+%</luatex>
+%<*pdftex>
+    \tex_pdfcolorstack:D
+%</pdftex>
+      \int_eval:n {#1} ~ pop \scan_stop:
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</luatex|pdftex>
+%    \end{macrocode}
+%
+% \subsection{General color}
+%
+% \subsubsection{\texttt{dvips}-style}
+%
+%    \begin{macrocode}
+%<*dvips|dvisvgm>
+%    \end{macrocode}
+%
+% \begin{macro}
+%   {
+%     \@@_backend_select_cmyk:n  ,
+%     \@@_backend_select_gray:n  ,
+%     \@@_backend_select_rgb:n   ,
+%     \@@_backend_select:n
+%   }
+% \begin{macro}{\@@_backend_reset:}
+% \begin{macro}{color.sc, color.fc}
+%    Push the data to the stack. In the case of \texttt{dvips} also saves the
+%    drawing color in raw PostScript.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_select_cmyk:n #1
+  { \@@_backend_select:n { cmyk ~ #1 } }
+\cs_new_protected:Npn \@@_backend_select_gray:n #1
+  { \@@_backend_select:n { gray ~ #1 } }
+\cs_new_protected:Npn \@@_backend_select_rgb:n #1
+  { \@@_backend_select:n { rgb ~ #1 } }
+\cs_new_protected:Npn \@@_backend_select:n #1
+  {
+    \__kernel_backend_literal:n { color~push~ #1 }
+%<*dvips>
+    \__kernel_backend_postscript:n { /color.sc~ { ~ } ~def }
+    \__kernel_backend_postscript:n { /color.fc~ { ~ } ~def }
+%</dvips>
+    \group_insert_after:N \@@_backend_reset:
+  }
+\cs_new_protected:Npn \@@_backend_reset:
+  { \__kernel_backend_literal:n { color~pop } }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</dvips|dvisvgm>
+%    \end{macrocode}
+%
+% \subsubsection{\LuaTeX{} and \pdfTeX{}}
+%
+%    \begin{macrocode}
+%<*dvipdfmx|luatex|pdftex|xetex>
+%    \end{macrocode}
+%
 % \begin{variable}{\l__kernel_color_stack_int}
-%   \pdfTeX{} and \LuaTeX{} have multiple stacks available, and to track
-%   which one is in use a variable is required.
+%   \pdfTeX{}, \LuaTeX{} and recent \texttt{(x)dvipdfmx} have multiple stacks
+%   available, and to track which one is in use a variable is required.
 %    \begin{macrocode}
 \int_new:N \l__kernel_color_stack_int
 %    \end{macrocode}
@@ -272,24 +370,53 @@
   { \@@_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
 \cs_new_protected:Npn \@@_backend_select:n #1
   {
-%<*luatex>
-    \tex_pdfextension:D colorstack
-%</luatex>
-%<*pdftex>
-    \tex_pdfcolorstack:D
-%</pdftex>
-      \l__kernel_color_stack_int push {#1}
+    \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1}
     \group_insert_after:N \@@_backend_reset:
   }
 \cs_new_protected:Npn \@@_backend_reset:
+  { \__kernel_color_stack_pop:n \l__kernel_color_stack_int }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%    \begin{macrocode}
+%</dvipdfmx|luatex|pdftex|xetex>
+%    \end{macrocode}
+%
+% \subsubsection{\texttt{dvipmdfx}/\XeTeX{}}
+%
+%    \begin{macrocode}
+%<*dvipdfmx|xetex>
+%    \end{macrocode}
+%
+% These backends have the most possible approaches: it recognises both
+% \texttt{dvips}-based color specials and it's own format, plus one can
+% include PDF statements directly. Recent releases also have a color stack
+% approach similar to \pdfTeX{}. Of the stack methods, the dedicated
+% the most versatile is the latter as it can cover all of the use cases
+% we have. Thus it is used in preference to the \texttt{dvips}-style interface
+% or the \enquote{native} color specials (which have only one stack).
+%
+% \begin{macro}
+%   {
+%     \@@_backend_select_cmyk:n  ,
+%     \@@_backend_select_gray:n  ,
+%     \@@_backend_select_rgb:n
+%   }
+% \begin{macro}{\@@_backend_reset:}
+%    Push the data to the stack.
+%    \begin{macrocode}
+\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
   {
-%<*luatex>
-    \tex_pdfextension:D colorstack
-%</luatex>
-%<*pdftex>
-    \tex_pdfcolorstack:D
-%</pdftex>
-      \l__kernel_color_stack_int pop \scan_stop:
+    \cs_gset_protected:Npn \@@_backend_select_cmyk:n #1
+      {
+        \__kernel_backend_literal:n { pdf: bc ~ [#1] }
+        \group_insert_after:N \@@_backend_reset:
+      }
+    \cs_gset_eq:NN \@@_backend_select_gray:n \@@_backend_select_cmyk:n
+    \cs_gset_eq:NN \@@_backend_select_rgb:n \@@_backend_select_cmyk:n
+    \cs_gset_protected:Npn \@@_backend_reset:
+      { \__kernel_backend_literal:n { pdf: ec } }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -296,7 +423,7 @@
 % \end{macro}
 %
 %    \begin{macrocode}
-%</luatex|pdftex>
+%</dvipdfmx|xetex>
 %    \end{macrocode}
 %
 % \subsection{Separations}
@@ -601,22 +728,12 @@
 %
 % \begin{macro}{\@@_backend_select_separation:nn, \@@_backend_select_devicen:nn}
 % \begin{macro}{\@@_backend_select:n}
-%   Different syntaxes here as the stacks are accessed very differently.
+%   Although \texttt{(x)dvipdfmx} has a built-in approach to color spaces, that
+%   can't be used with the generic color stacks. So we take an approach in which
+%   we share the same code as for \pdfTeX{}.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_backend_select_separation:nn #1#2
-%<*dvipdfmx|xetex>
-  { \@@_backend_select:n { @#1 ~ [#2] } }
-%</dvipdfmx|xetex>
-%<*luatex|pdftex>
   { \@@_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
-%</luatex|pdftex>
-%<*dvipdfmx|xetex>
-\cs_new_protected:Npn \@@_backend_select:n #1
-  {
-    \__kernel_backend_literal:n { pdf: bc ~ #1 }
-    \group_insert_after:N \@@_backend_reset:
-  }
-%</dvipdfmx|xetex>
 \cs_new_eq:NN \@@_backend_select_devicen:nn \@@_backend_select_separation:nn
 %    \end{macrocode}
 % \end{macro}
@@ -627,9 +744,7 @@
 % \begin{macro}{\@@_backend_separation_init_CIELAB:nnn}
 %   Initialising the PDF structures needs two parts: creating an object
 %   containing the \enquote{real} name of the Separation, then adding a reference
-%   to that to each page. The latter uses the internal name of the \texttt{cs}.
-%   For \texttt{dvipdfmx}/\XeTeX{}, the backend does most of the work so we need a
-%   simplified version. We use a separate object for the tint transformation
+%   to that to each page. We use a separate object for the tint transformation
 %   following the model in the PDF reference.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_backend_separation_init:nnnnn #1#2#3#4#5
@@ -648,30 +763,19 @@
         / \str_convert_pdfname:n {#1} ~ #2 ~
         \pdf_object_last:
       }
-%<*luatex|pdftex>
     \use:x
       {
-        \pdfcoredict_gput:nnn
+        \pdfmanagement_add:nnn
           { Page / Resources / ColorSpace }
           { color \int_use:N \g_@@_model_int }
           { \pdf_object_last: }
       }
-%</luatex|pdftex>
   }
 \cs_if_exist:NF \pdf_object_now:nn
   { \cs_gset_protected:Npn \@@_backend_separation_init:nnnnn #1#2#3#4#5 { } }
 \cs_new_protected:Npn \@@_backend_separation_init:n #1
   {
-%<*dvipdfmx|xetex>
-    \__kernel_backend_literal:x
-      {
-        pdf:obj ~ @color \int_use:N \g_@@_model_int \c_space_tl
-          [#1]
-      }
-%</dvipdfmx|xetex>
-%<*luatex|pdftex>
     \pdf_object_now:nx { array } {#1}
-%</luatex|pdftex>  
   }
 %    \end{macrocode}
 %   For CIELAB colors, we need one object per document for the illuminant,
@@ -746,15 +850,13 @@
         #2 ~
         \pdf_object_last:
       }
-%<*luatex|pdftex>
     \use:x
       {
-        \pdfcoredict_gput:nnn
+        \pdfmanagement_add:nnn
           { Page / Resources / ColorSpace }
           { color \int_use:N \g_@@_model_int }
           { \pdf_object_last: }
       }
-%</luatex|pdftex>
   }
 \cs_if_exist:NF \pdf_object_now:nn
   { \cs_gset_protected:Npn \@@_backend_devicen_init:nnn #1#2#3 { } }

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-draw.dtx
 %
-% Copyright (C) 2019,2020 The LaTeX3 Project
+% Copyright (C) 2019-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-09-24}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-graphics.dtx
 %
-% Copyright (C) 2019,2020 The LaTeX3 Project
+% Copyright (C) 2019-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-09-24}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-header.dtx
 %
-% Copyright (C) 2019,2020 The LaTeX3 Project
+% Copyright (C) 2019-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-09-24}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3backend-pdf.dtx
 %
-% Copyright (C) 2019,2020 The LaTeX3 Project
+% Copyright (C) 2019-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-09-24}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %
@@ -565,7 +565,6 @@
 %   question about the name of the hook: to be resolved at the \LaTeXe{}
 %   end.
 %    \begin{macrocode}
-%<*package>
 \use_none:n
   {
     \cs_if_exist:NT \@makecol at hook
@@ -593,7 +592,6 @@
         \cs_set_eq:NN \@@_breaklink_usebox:N \hbox_unpack:N
       }
   }
-%</package>
 %    \end{macrocode}
 % \end{macro}
 %
@@ -622,6 +620,7 @@
 %   Here, we need to turn the zoom into a scale. We also need to know where
 %   the current anchor point actually is: worked out in PostScript. For the
 %   rectangle version, we have a bit more PostScript: we need two points.
+%   fitr without rule spec doesn't work, so it falls back to /Fit here.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_backend_destination:nn #1#2
   {
@@ -639,6 +638,7 @@
               { fitbv } { /FitBV ~ pdf.dest.x }
               { fith }  { /FitH ~ pdf.dest.y }
               { fitv }  { /FitV ~ pdf.dest.x }
+              { fitr }  { /Fit }
             }
             {
               /XYZ ~ pdf.dest.point ~ \fp_eval:n { (#2) / 100 }
@@ -883,6 +883,7 @@
             { fitbv } { fitbv }
             { fith }  { fith }
             { fitv }  { fitv }
+            { fitr }  { fitr }
           }
           { xyz ~ zoom \fp_eval:n { #2 * 10 } }
         \scan_stop:
@@ -1406,6 +1407,13 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{variable}{\g_@@_backend_link_int}
+%   To track annotations which are links.
+%    \begin{macrocode}
+\int_new:N \g_@@_backend_link_int
+%    \end{macrocode}
+% \end{variable}
+%
 % \begin{macro}
 %   {\@@_backend_link_begin_goto:nnw, \@@_backend_link_begin_user:nnw}
 % \begin{macro}{\@@_backend_link_begin:n}
@@ -1416,11 +1424,21 @@
   { \@@_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } }
 \cs_new_protected:Npn \@@_backend_link_begin_user:nnw #1#2
   { \@@_backend_link_begin:n {#1#2} }
-\cs_new_protected:Npn \@@_backend_link_begin:n #1
+\cs_new_protected:Npx \@@_backend_link_begin:n #1
   {
-    \@@_backend:n
+    \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
       {
-         bann
+        \exp_not:N \int_gincr:N \exp_not:N  \g_@@_backend_link_int
+      }
+    \@@_backend:x
+      {
+         bann ~
+         \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+           {
+             @pdf.lnk
+             \exp_not:N \int_use:N \exp_not:N  \g_@@_backend_link_int
+             \c_space_tl
+           }
          <<
            /Type /Annot
            #1
@@ -1435,9 +1453,17 @@
 % \end{macro}
 %
 % \begin{macro}{\@@_backend_link_last:}
-%   Data not available.
+%   Available using the backend mechanism with a suitably-recent
+%   version.
 %    \begin{macrocode}
-\cs_new:Npn \@@_backend_link_last: { }
+\cs_new:Npx \@@_backend_link_last:
+  {
+    \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+      {
+        @pdf.lnk
+          \exp_not:N \int_use:N \exp_not:N \g_@@_backend_link_int
+      }
+  }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1453,6 +1479,7 @@
 %   Here, we need to turn the zoom into a scale. The method for \texttt{FitR}
 %   is from Alexander Grahn: the idea is to avoid needing to do any calculations
 %   in \TeX{} by using the backend data for \texttt{@xpos} and \texttt{@ypos}.
+%   fitr without rule spec doesn't work, so it falls back to /Fit here.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_backend_destination:nn #1#2
   {
@@ -1470,6 +1497,7 @@
               { fitbv } { /FitBV ~ @xpos }
               { fith }  { /FitH ~ @ypos }
               { fitv }  { /FitV ~ @xpos }
+              { fitr }  { /Fit }
             }
             { /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } }
         ]

Modified: trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3backend/l3backend.ins	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 
 File l3backend.ins
 
-Copyright (C) 2019,2020 The LaTeX3 Project
+Copyright (C) 2019-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -35,7 +35,7 @@
 
 \preamble
 
-Copyright (C) 1990-2020 The LaTeX3 Project
+Copyright (C) 1990-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: expl3.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -24,7 +24,7 @@
 %
 %<*driver|generic|package|2ekernel>
 %</driver|generic|package|2ekernel>
-\def\ExplFileDate{2020-12-07}%
+\def\ExplFileDate{2021-01-09}%
 %<*driver>
 \documentclass[full]{l3doc}
 \usepackage{graphicx}
@@ -51,7 +51,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 
 File l3.ins
 
-Copyright (C) 2011,2012,2014-2020 The LaTeX3 Project
+Copyright (C) 2011,2012,2014-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of the
 LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -35,7 +35,7 @@
 
 \preamble
 
-Copyright (C) 1990-2020 The LaTeX3 Project
+Copyright (C) 1990-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -151,7 +151,7 @@
 \def\MetaPrefix{--}
 \preamble
 
-Copyright (C) 1990-2020 The LaTeX3 Project
+Copyright (C) 1990-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3basics.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3bootstrap.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3box.dtx
 %
-% Copyright (C) 2005-2020 The LaTeX3 Project
+% Copyright (C) 2005-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3candidates.dtx
 %
-% Copyright (C) 2012-2020 The LaTeX3 Project
+% Copyright (C) 2012-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3cctab.dtx
 %
-% Copyright (C) 2018-2020 The LaTeX3 Project
+% Copyright (C) 2018-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -3,7 +3,7 @@
 %% File: l3clist.dtx
 %
 % Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project
-%           (C) 2012-2020 The LaTeX3 Project
+%           (C) 2012-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3coffins.dtx
 %
-% Copyright (C) 2010-2020 The LaTeX3 Project
+% Copyright (C) 2010-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3color-base.dtx
 %
-% Copyright (C) 2011,2012,2014,2016-2020 The LaTeX3 Project
+% Copyright (C) 2011,2012,2014,2016-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3debug.dtx
 %
-% Copyright (C) 2019,2020 The LaTeX3 Project
+% Copyright (C) 2019-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3deprecation.dtx
 %
-% Copyright (C) 2017-2020 The LaTeX3 Project
+% Copyright (C) 2017-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3doc.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -31,7 +31,7 @@
 \askforoverwritefalse
 \preamble
 
-Copyright (C) 1990-2020 The LaTeX3 Project
+Copyright (C) 1990-2021 The LaTeX3 Project
 
 It may be distributed and/or modified under the conditions of
 the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -79,7 +79,7 @@
 %
 % \title{The \cls{l3doc} class}
 % \author{\Team}
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 % \maketitle
 % \tableofcontents
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File l3dosctrip.dtx
 %
-% Copyright (C) 2012,2014-2020 The LaTeX3 Project
+% Copyright (C) 2012,2014-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -63,7 +63,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3expan.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3file.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3flag.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-assign.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-aux.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-basics.dtx
 %
-% Copyright (C) 2011-2014,2016-2020 The LaTeX3 Project
+% Copyright (C) 2011-2014,2016-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-convert.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-expo.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-extended.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-logic.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-parse.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-random.dtx
 %
-% Copyright (C) 2016-2020 The LaTeX3 Project
+% Copyright (C) 2016-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-round.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-traps.dtx
 %
-% Copyright (C) 2011-2014,2016-2020 The LaTeX3 Project
+% Copyright (C) 2011-2014,2016-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp-trig.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fp.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3fparray.dtx
 %
-% Copyright (C) 2018-2020 The LaTeX3 Project
+% Copyright (C) 2018-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3int.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3intarray.dtx
 %
-% Copyright (C) 2017-2020 The LaTeX3 Project
+% Copyright (C) 2017-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3kernel-functions.dtx
 %
-% Copyright (C) 2018-2020 The LaTeX3 Project
+% Copyright (C) 2018-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3keys.dtx
 %
-% Copyright (C) 2006-2020 The LaTeX3 Project
+% Copyright (C) 2006-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %
@@ -891,8 +891,46 @@
 % \end{verbatim}
 % are treated identically.
 %
-% \begin{function}[EXP,updated = 2020-02-20]{\keyval_parse:NNn}
+% \begin{function}[rEXP, added=2020-12-19]{\keyval_parse:nnn}
 %   \begin{syntax}
+%     \cs{keyval_parse:nnn} \Arg{code_1} \Arg{code_2} \Arg{key--value list}
+%   \end{syntax}
+%   Parses the \meta{key--value list} into a series of \meta{keys} and
+%   associated \meta{values}, or keys alone (if no \meta{value} was
+%   given).  \meta{code_1} receives each \meta{key} (with no \meta{value}) as a
+%   trailing brace group, whereas \meta{code_2} is appended by two brace groups,
+%   the \meta{key} and \meta{value}.
+%   The order of the \meta{keys} in the \meta{key--value list}
+%   is preserved. Thus
+%   \begin{verbatim}
+%     \keyval_parse:nnn
+%       { \use_none:nn  { code 1 } }
+%       { \use_none:nnn { code 2 } }
+%       { key1 = value1 , key2 = value2, key3 = , key4 }
+%   \end{verbatim}
+%   is converted into an input stream
+%   \begin{verbatim}
+%     \use_none:nnn { code 2 } { key1 } { value1 }
+%     \use_none:nnn { code 2 } { key2 } { value2 }
+%     \use_none:nnn { code 2 } { key3 } { }
+%     \use_none:nn  { code 1 } { key4 }
+%   \end{verbatim}
+%   Note that there is a difference between an empty value (an equals
+%   sign followed by nothing) and a missing value (no equals sign at
+%   all). Spaces are trimmed from the ends of the \meta{key} and \meta{value},
+%   then one \emph{outer} set of braces is removed from the \meta{key}
+%   and \meta{value} as part of the processing. If you need exactly the output
+%   shown above, you'll need to either \texttt{x}-type or \texttt{e}-type expand
+%   the function.
+%   \begin{texnote}
+%     The result of each list element is returned within \cs{exp_not:n}, which
+%     means that the converted input stream does not expand further when
+%     appearing in an \texttt{x}-type or \texttt{e}-type argument expansion.
+%   \end{texnote}
+% \end{function}
+%
+% \begin{function}[rEXP,updated = 2020-12-19]{\keyval_parse:NNn}
+%   \begin{syntax}
 %     \cs{keyval_parse:NNn} \meta{function_1} \meta{function_2} \Arg{key--value list}
 %   \end{syntax}
 %   Parses the \meta{key--value list} into a series of \meta{keys} and
@@ -920,6 +958,9 @@
 %   all). Spaces are trimmed from the ends of the \meta{key} and \meta{value},
 %   then one \emph{outer} set of braces is removed from the \meta{key}
 %   and \meta{value} as part of the processing.
+%
+%   This shares the implementation of \cs{keyval_parse:nnn}, the difference is
+%   only semantically.
 %   \begin{texnote}
 %     The result is returned within \cs{exp_not:n}, which means that the
 %     converted input stream does not expand further when appearing in an
@@ -969,30 +1010,31 @@
     {
 %    \end{macrocode}
 %
-% \begin{macro}[EXP]{\keyval_parse:NNn}
+% \begin{macro}[EXP]{\keyval_parse:nnn, \keyval_parse:NNn}
 %   The main function starts the first of two loops. The outer loop splits the
 %   key--value list at active commas, the inner loop will do so at other commas.
 %   The use of \cs{s_@@_mark} here prevents loss of braces from the key
 %   argument.
 %    \begin{macrocode}
-      \cs_new:Npn \keyval_parse:NNn ##1 ##2 ##3
-        { \@@_loop_active:NNw ##1 ##2 \s_@@_mark ##3 #1 \s_@@_tail #1 }
+      \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3
+        { \@@_loop_active:nnw {##1} {##2} \s_@@_mark ##3 #1 \s_@@_tail #1 }
+      \cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}[EXP]{\@@_loop_active:NNw}
+% \begin{macro}[EXP]{\@@_loop_active:nnw}
 %   First a fast test for the end of the loop is done, it'll gobble everything
 %   up to a \cs{s_@@_tail}. The loop ending macro will gobble everything to the
-%   last \cs{s_@@_mark} in this definition.
+%   last comma in this definition.
 %   If the end isn't reached yet, start the second loop splitting at other
-%   commas, and after that one iterate the current loop.
+%   commas, the next iteration of this first loop will be inserted by the end of
+%   \cs{@@_loop_other:nnw}.
 %    \begin{macrocode}
-      \cs_new:Npn \@@_loop_active:NNw ##1 ##2 ##3 #1
+      \cs_new:Npn \@@_loop_active:nnw ##1 ##2 ##3 #1
         {
           \@@_if_recursion_tail:w ##3
             \@@_end_loop_active:w \s_@@_tail
-          \@@_loop_other:NNw ##1 ##2 ##3 , \s_@@_tail ,
-          \@@_loop_active:NNw ##1 ##2 \s_@@_mark
+          \@@_loop_other:nnw {##1} {##2} ##3 , \s_@@_tail ,
         }
 %    \end{macrocode}
 % \end{macro}
@@ -1003,14 +1045,14 @@
 %   token following \cs{s_@@_mark} that followed the equals sign. Hence they
 %   also test for the presence of such an equals sign simultaneously.
 %    \begin{macrocode}
-      \cs_new:Npn \@@_split_other:w ##1 = ##2 \s_@@_mark ##3 ##4 \s_@@_stop
+      \cs_new:Npn \@@_split_other:w ##1 = ##2 \s_@@_mark ##3
         { ##3 ##1 \s_@@_stop \s_@@_mark ##2 }
-      \cs_new:Npn \@@_split_active:w ##1 #2 ##2 \s_@@_mark ##3 ##4 \s_@@_stop
+      \cs_new:Npn \@@_split_active:w ##1 #2 ##2 \s_@@_mark ##3
         { ##3 ##1 \s_@@_stop \s_@@_mark ##2 }
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}[EXP]{\@@_loop_other:NNw}
+% \begin{macro}[EXP]{\@@_loop_other:nnw}
 %   The second loop uses the same test for its end as the first loop, next it
 %   splits at the first active equals sign using \cs{@@_split_active:w}.  The
 %   \cs{s_@@_nil} prevents accidental brace stripping and acts as a delimiter in
@@ -1018,7 +1060,7 @@
 %   number of necessary expansion steps for the expected average use case of
 %   other equals signs and hence perform better on average.
 %    \begin{macrocode}
-      \cs_new:Npn \@@_loop_other:NNw ##1 ##2 ##3 ,
+      \cs_new:Npn \@@_loop_other:nnw ##1 ##2 ##3 ,
         {
           \@@_if_recursion_tail:w ##3
             \@@_end_loop_other:w \s_@@_tail
@@ -1025,9 +1067,8 @@
           \@@_split_active:w ##3 \s_@@_nil
             \s_@@_mark \@@_split_active_auxi:w
             #2 \s_@@_mark \@@_clean_up_active:w
-            \s_@@_stop
-          ##1 ##2
-          \@@_loop_other:NNw ##1 ##2 \s_@@_mark
+          {##1} {##2}
+          \s_@@_mark
         }
 %    \end{macrocode}
 % \end{macro}
@@ -1050,7 +1091,6 @@
           \@@_split_other:w ##1 \s_@@_nil
             \s_@@_mark \@@_misplaced_equal_after_active_error:w
             = \s_@@_mark \@@_split_active_auxii:w
-            \s_@@_stop
         }
 %    \end{macrocode}
 %   \cs{@@_split_active_auxii:w} gets the correct key name with a leading
@@ -1061,7 +1101,8 @@
       \cs_new:Npn \@@_split_active_auxii:w
           ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_after_active_error:w
           \s_@@_stop \s_@@_mark
-        { \@@_trim:nN { ##1 } \@@_split_active_auxiii:w }
+          ##2 \s_@@_nil #2 \s_@@_mark \@@_clean_up_active:w
+        { \@@_trim:nN {##1} \@@_split_active_auxiii:w ##2 \s_@@_nil }
 %    \end{macrocode}
 %   Next we test for a misplaced active equals sign in the value, if none is
 %   found \cs{@@_split_active_auxiv:w} will be called.
@@ -1071,8 +1112,7 @@
           \@@_split_active:w ##2 \s_@@_nil
             \s_@@_mark \@@_misplaced_equal_in_split_error:w
             #2 \s_@@_mark \@@_split_active_auxiv:w
-            \s_@@_stop
-            { ##1 }
+            {##1}
         }
 %    \end{macrocode}
 %   This runs the last test after sanitising the remainder of the previous one.
@@ -1086,16 +1126,15 @@
           \@@_split_other:w ##1 \s_@@_nil
             \s_@@_mark \@@_misplaced_equal_in_split_error:w
             = \s_@@_mark \@@_split_active_auxv:w
-            \s_@@_stop
         }
 %    \end{macrocode}
 %   This last macro in this execution branch sanitises the last test, trims the
-%   value and passes it to \cs{@@_pair:nnNN}.
+%   value and passes it to \cs{@@_pair:nnnn}.
 %    \begin{macrocode}
       \cs_new:Npn \@@_split_active_auxv:w
           ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_in_split_error:w
           \s_@@_stop \s_@@_mark
-        { \@@_trim:nN { ##1 } \@@_pair:nnNN }
+        { \@@_trim:nN { ##1 } \@@_pair:nnnn }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -1115,7 +1154,6 @@
           \@@_split_other:w ##1 \s_@@_nil
             \s_@@_mark \@@_split_other_auxi:w
             = \s_@@_mark \@@_clean_up_other:w
-            \s_@@_stop
         }
 %    \end{macrocode}
 % \end{macro}
@@ -1132,24 +1170,25 @@
         { \@@_trim:nN { ##1 } \@@_split_other_auxii:w }
 %    \end{macrocode}
 %   We know that the value doesn't contain misplaced active equals signs but we
-%   have to test for others.
+%   have to test for others. Also we need to sanitise the previous test, which
+%   is done here and not earlier to avoid superfluous argument grabbing.
 %    \begin{macrocode}
-      \cs_new:Npn \@@_split_other_auxii:w ##1 ##2 \s_@@_nil
+      \cs_new:Npn \@@_split_other_auxii:w
+          ##1 ##2 \s_@@_nil = \s_@@_mark \@@_clean_up_other:w
         {
           \@@_split_other:w ##2 \s_@@_nil
             \s_@@_mark \@@_misplaced_equal_in_split_error:w
             = \s_@@_mark \@@_split_other_auxiii:w
-            \s_@@_stop
             { ##1 }
         }
 %    \end{macrocode}
 %   \cs{@@_split_other_auxiii:w} sanitises the test for other equals signs,
-%   trims the value and forwards it to \cs{@@_pair:nnNN}.
+%   trims the value and forwards it to \cs{@@_pair:nnnn}.
 %    \begin{macrocode}
       \cs_new:Npn \@@_split_other_auxiii:w
           ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_in_split_error:w
           \s_@@_stop \s_@@_mark
-        { \@@_trim:nN { ##1 } \@@_pair:nnNN }
+        { \@@_trim:nN { ##1 } \@@_pair:nnnn }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -1159,14 +1198,14 @@
 %   \cs{@@_clean_up_other:w} is the last branch that might exist. It is called
 %   if no equals sign was found, hence the only possibilities left are a blank
 %   list element, which is to be skipped, or a lonely key. If it's no empty list
-%   element this will trim the key name and forward it to \cs{@@_key:nNN}.
+%   element this will trim the key name and forward it to \cs{@@_key:nn}.
 %    \begin{macrocode}
       \cs_new:Npn \@@_clean_up_other:w
           ##1 \s_@@_nil \s_@@_mark \@@_split_other_auxi:w \s_@@_stop \s_@@_mark
         {
           \@@_if_blank:w ##1 \s_@@_nil \s_@@_stop \@@_blank_true:w
-            \s_@@_mark \s_@@_stop \use:n
-            { \@@_trim:nN { ##1 } \@@_key:nNN }
+            \s_@@_mark \s_@@_stop
+            \@@_trim:nN { ##1 } \@@_key:nn
         }
 %    \end{macrocode}
 % \end{macro}
@@ -1174,21 +1213,26 @@
 % \begin{macro}[EXP]{\@@_misplaced_equal_after_active_error:w}
 % \begin{macro}[EXP]{\@@_misplaced_equal_in_split_error:w}
 %   All these two macros do is gobble the remainder of the current other loop
-%   execution and throw an error.
+%   execution and throw an error. Afterwards they have to insert the next loop
+%   iteration.
 %    \begin{macrocode}
       \cs_new:Npn \@@_misplaced_equal_after_active_error:w
           \s_@@_mark ##1 \s_@@_stop \s_@@_mark ##2 \s_@@_nil
-          \s_@@_mark ##3 \s_@@_nil ##4 ##5
+           = \s_@@_mark \@@_split_active_auxii:w
+           \s_@@_mark ##3 \s_@@_nil
+           #2 \s_@@_mark \@@_clean_up_active:w
         {
           \__kernel_msg_expandable_error:nn
             { kernel } { misplaced-equals-sign }
+          \@@_loop_other:nnw
         }
       \cs_new:Npn \@@_misplaced_equal_in_split_error:w
           \s_@@_mark ##1 \s_@@_stop \s_@@_mark ##2 \s_@@_nil
-          ##3 ##4 ##5
+          ##3 \s_@@_mark ##4 ##5
         {
           \__kernel_msg_expandable_error:nn
             { kernel } { misplaced-equals-sign }
+          \@@_loop_other:nnw
         }
 %    \end{macrocode}
 % \end{macro}
@@ -1197,21 +1241,20 @@
 % \begin{macro}[EXP]{\@@_end_loop_other:w, \@@_end_loop_active:w}
 %   All that's left for the parsing loops are the macros which end the
 %   recursion. Both just gobble the remaining tokens of the respective loop
-%   including the next recursion call.
+%   including the next recursion call. \cs{@@_end_loop_other:w} also has to
+%   insert the next iteration of the active loop.
 %    \begin{macrocode}
       \cs_new:Npn \@@_end_loop_other:w
           \s_@@_tail
-          \@@_split_active:w ##1 \s_@@_nil
-          \s_@@_mark \@@_split_active_auxi:w
+          \@@_split_active:w
+          \s_@@_mark \s_@@_tail
+          \s_@@_nil \s_@@_mark
+          \@@_split_active_auxi:w
           #2 \s_@@_mark \@@_clean_up_active:w
-          \s_@@_stop
-          ##2 ##3
-          \@@_loop_other:NNw ##4 \s_@@_mark
-        { }
+        { \@@_loop_active:nnw }
       \cs_new:Npn \@@_end_loop_active:w
           \s_@@_tail
-          \@@_loop_other:NNw ##1 , \s_@@_tail ,
-          \@@_loop_active:NNw ##2 \s_@@_mark
+          \@@_loop_other:nnw ##1 \s_@@_mark \s_@@_tail , \s_@@_tail ,
         { }
 %    \end{macrocode}
 % \end{macro}
@@ -1226,23 +1269,26 @@
 \group_end:
 %    \end{macrocode}
 %
-% \begin{macro}[EXP]{\@@_pair:nnNN, \@@_key:nNN}
+% \begin{macro}[EXP]{\@@_pair:nnnn, \@@_key:nn}
 %   These macros will be called on the parsed keys and values of the key--value
 %   list. All arguments are completely trimmed. They test for blank key names
-%   and call the functions passed to \cs{keyval_parse:NNn} inside of
-%   \cs{exp_not:n} with the correct arguments.
+%   and call the functions passed to \cs{keyval_parse:nnn} inside of
+%   \cs{exp_not:n} with the correct arguments. Afterwards they insert the next
+%   iteration of the other loop.
 %    \begin{macrocode}
-\cs_new:Npn \@@_pair:nnNN #1 #2 #3 #4
+\cs_new:Npn \@@_pair:nnnn #1 #2 #3 #4
   {
     \@@_if_blank:w \s_@@_mark #2 \s_@@_nil \s_@@_stop \@@_blank_key_error:w
       \s_@@_mark \s_@@_stop
     \exp_not:n { #4 { #2 } { #1 } }
+    \@@_loop_other:nnw {#3} {#4}
   }
-\cs_new:Npn \@@_key:nNN #1 #2 #3
+\cs_new:Npn \@@_key:nn #1 #2
   {
     \@@_if_blank:w \s_@@_mark #1 \s_@@_nil \s_@@_stop \@@_blank_key_error:w
       \s_@@_mark \s_@@_stop
     \exp_not:n { #2 { #1 } }
+    \@@_loop_other:nnw {#2}
   }
 %    \end{macrocode}
 % \end{macro}
@@ -1263,7 +1309,8 @@
 %   These macros will be called if the tests above didn't gobble them, they
 %   execute the branching.
 %    \begin{macrocode}
-\cs_new:Npn \@@_blank_true:w \s_@@_mark \s_@@_stop \use:n #1 #2 #3 { }
+\cs_new:Npn \@@_blank_true:w \s_@@_mark \s_@@_stop \@@_trim:nN #1 \@@_key:nn
+  { \@@_loop_other:nnw }
 \cs_new:Npn \@@_blank_key_error:w \s_@@_mark \s_@@_stop \exp_not:n #1
   {
     \__kernel_msg_expandable_error:nn
@@ -1303,7 +1350,6 @@
             \@@_trim_auxiii:w
             #1 \s_@@_nil
             \@@_trim_auxiv:w
-          \s_@@_stop
         }
       \cs_new:Npn \@@_trim_auxi:w ##1 \s_@@_mark #1 ##2 \s_@@_mark ##3
         {
@@ -1327,8 +1373,11 @@
 %    \end{macrocode}
 %   This is the one macro which differs from the original definition.
 %    \begin{macrocode}
-      \cs_new:Npn \@@_trim_auxiv:w \s_@@_mark ##1 \s_@@_nil ##2 \s_@@_stop ##3
-        { ##3 { ##1 } }
+      \cs_new:Npn \@@_trim_auxiv:w
+          \s_@@_mark ##1 \s_@@_nil
+          \@@_trim_auxiii:w \s_@@_nil \@@_trim_auxiii:w
+          ##2
+        { ##2 { ##1 } }
     }
   \@@_tmp:n { ~ }
 \group_end:

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3legacy.dtx
 %
-% Copyright (C) 2019,2020 The LaTeX3 Project
+% Copyright (C) 2019-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3luatex.dtx
 %
-% Copyright (C) 2010-2020 The LaTeX3 Project
+% Copyright (C) 2010-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3msg.dtx
 %
-% Copyright (C) 2009-2020 The LaTeX3 Project
+% Copyright (C) 2009-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3names.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3prg.dtx
 %
-% Copyright (C) 2005-2020 The LaTeX3 Project
+% Copyright (C) 2005-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3prop.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3quark.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3regex.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3seq.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -3,7 +3,7 @@
 %% File: l3skip.dtx
 %
 % Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project
-%           (C) 2012-2020 The LaTeX3 Project
+%           (C) 2012-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File l3sort.dtx
 %
-% Copyright (C) 2012-2020 The LaTeX3 Project
+% Copyright (C) 2012-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3str-convert.dtx
 %
-% Copyright (C) 2013-2020 The LaTeX3 Project
+% Copyright (C) 2013-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3str.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3sys.dtx
 %
-% Copyright (C) 2015-2020 The LaTeX3 Project
+% Copyright (C) 2015-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %
@@ -975,10 +975,14 @@
     \__kernel_tl_gset:Nx \g_@@_backend_tl
       {
         \sys_if_engine_xetex:TF
-          { xdvipdfmx }
+          { xetex }
           {
              \sys_if_output_pdf:TF
-              { pdfmode }
+              {
+                \sys_if_engine_pdftex:TF
+                  { pdftex }
+                  { luatex }
+              }
               { dvips }
            }
       }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3text-case.dtx
 %
-% Copyright (C) 2020 The LaTeX3 Project
+% Copyright (C) 2020,2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3text-purify.dtx
 %
-% Copyright (C) 2020 The LaTeX3 Project
+% Copyright (C) 2020,2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %
@@ -94,7 +94,8 @@
 % \begin{macro}[EXP]{\@@_purify_math_cmd:Nn}
 % \begin{macro}[EXP]{\@@_purify_replace:N}
 % \begin{macro}[EXP]{\@@_purify_replace:n}
-% \begin{macro}[EXP]{\@@_purify_expand:N, \@@_purify_protect:N}
+% \begin{macro}[EXP]{\@@_purify_expand:N, \@@_purify_protect:N, \@@_purify_encoding:N}
+% \begin{macro}[EXP]{\@@_purify_encoding_escape:NN}
 %   As in the other parts of the module, we start off with a standard
 %   \enquote{action} loop, with expansion applied up-front.
 %    \begin{macrocode}
@@ -288,6 +289,22 @@
   {
     \str_if_eq:nnTF {#1} { \protect }
       { \@@_purify_protect:N }
+      { \@@_purify_encoding:N #1 }
+  }
+\cs_new:Npn \@@_purify_protect:N #1
+  {
+    \@@_if_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w }
+    \@@_purify_loop:w
+  }
+%    \end{macrocode}
+%   Handle encoding commands, as detailed for expansion.
+%    \begin{macrocode}
+\cs_new:Npn \@@_purify_encoding:N #1
+  {
+    \bool_lazy_or:nnTF
+      { \cs_if_eq_p:NN #1 \@current at cmd }
+      { \cs_if_eq_p:NN #1 \@changed at cmd }
+      { \@@_purify_encoding_escape:NN }
       {
         \@@_if_expandable:NTF #1
           { \exp_after:wN \@@_purify_loop:w #1 }
@@ -294,9 +311,9 @@
           { \@@_purify_loop:w }
       }
   }
-\cs_new:Npn \@@_purify_protect:N #1
+\cs_new:Npn \@@_purify_encoding_escape:NN #1#2
   {
-    \@@_if_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w }
+    \@@_purify_store:n {#1}
     \@@_purify_loop:w
   }
 %    \end{macrocode}
@@ -323,6 +340,7 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}
 %   {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3text.dtx
 %
-% Copyright (C) 2020 The LaTeX3 Project
+% Copyright (C) 2020,2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3tl-analysis.dtx
 %
-% Copyright (C) 2011-2020 The LaTeX3 Project
+% Copyright (C) 2011-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3tl.dtx
 %
-% Copyright (C) 1990-2020 The LaTeX3 Project
+% Copyright (C) 1990-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3token.dtx
 %
-% Copyright (C) 2005-2020 The LaTeX3 Project
+% Copyright (C) 2005-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -2,7 +2,7 @@
 %
 %% File: l3unicode.dtx
 %
-% Copyright (C) 2018-2020 The LaTeX3 Project
+% Copyright (C) 2018-2021 The LaTeX3 Project
 %
 % It may be distributed and/or modified under the conditions of the
 % LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-12-07}
+% \date{Released 2021-01-09}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,dvipdfmx')
 %% l3backend-pdf.dtx  (with options: `package,dvipdfmx')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvipdfmx.def}{2020-09-24}{}
+  {l3backend-dvipdfmx.def}{2021-01-09}{}
   {L3 backend support: dvipdfmx}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -54,20 +54,25 @@
   { \__kernel_backend_literal:n { x:gsave } }
 \cs_new_protected:Npn \__kernel_backend_scope_end:
   { \__kernel_backend_literal:n { x:grestore } }
+\group_begin:
+  \cs_set:Npn \__sys_tmp:w #1 Version ~ #2 ~ #3 \q_stop {#2}
+  \sys_get_shell:nnNTF { extractbb~--version }
+    { \char_set_catcode_space:n { `\  } }
+    \l__sys_internal_tl
+    {
+      \int_const:Nn \c__kernel_sys_dvipdfmx_version_int
+        {
+          \exp_after:wN \__sys_tmp:w \l__sys_internal_tl
+            \q_stop
+        }
+    }
+    { \int_const:Nn \c__kernel_sys_dvipdfmx_version_int { 0 } }
+\group_end:
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_select_cmyk:n #1
-  {
-    \__kernel_backend_literal:n { pdf: bc ~ [#1] }
-    \group_insert_after:N \__color_backend_reset:
-  }
-\cs_new_eq:NN \__color_backend_select_gray:n \__color_backend_select_cmyk:n
-\cs_new_eq:NN \__color_backend_select_rgb:n \__color_backend_select_cmyk:n
-\cs_new_protected:Npn \__color_backend_reset:
-  { \__kernel_backend_literal:n { pdf: ec } }
 \cs_new_protected:Npn \__color_backend_pickup:N #1 { }
 \cs_if_exist:cT { ver at color.sty }
   {
-     \cs_set_protected:Npn \__color_backend_pickup:N #1
+    \cs_set_protected:Npn \__color_backend_pickup:N #1
       {
         \exp_args:NV \tl_if_head_is_space:nTF \current at color
           {
@@ -85,13 +90,71 @@
     \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
       { \tl_set:Nn #3 { {#1} {#2} } }
   }
-\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
-  { \__color_backend_select:n { @#1 ~ [#2] } }
+\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+  {
+    \int_new:N \g__color_stack_int
+    \cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3
+      {
+        \int_gincr:N \g__color_stack_int
+        \int_const:Nn #1 { \g__color_stack_int }
+        \__kernel_backend_literal:x
+          {
+            pdfcolorstackinit ~
+            \int_use:N \g__color_stack_int \c_space_tl
+            \tl_if_blank:nF {#2} { #2 ~ }
+            (#3)
+          }
+      }
+  }
+\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+  {
+    \cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2
+      {
+        \__kernel_backend_literal:x
+          {
+            pdfcolorstack ~
+            \int_eval:n {#1} ~
+            push ~ (#2)
+          }
+      }
+    \cs_new_protected:Npn \__kernel_color_stack_pop:n #1
+      {
+        \__kernel_backend_literal:x
+          {
+            pdfcolorstack ~
+            \int_eval:n {#1} ~
+            pop
+          }
+      }
+  }
+\int_new:N \l__kernel_color_stack_int
+\cs_new_protected:Npn \__color_backend_select_cmyk:n #1
+  { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } }
+\cs_new_protected:Npn \__color_backend_select_gray:n #1
+  { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } }
+\cs_new_protected:Npn \__color_backend_select_rgb:n #1
+  { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
 \cs_new_protected:Npn \__color_backend_select:n #1
   {
-    \__kernel_backend_literal:n { pdf: bc ~ #1 }
+    \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1}
     \group_insert_after:N \__color_backend_reset:
   }
+\cs_new_protected:Npn \__color_backend_reset:
+  { \__kernel_color_stack_pop:n \l__kernel_color_stack_int }
+\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+  {
+    \cs_gset_protected:Npn \__color_backend_select_cmyk:n #1
+      {
+        \__kernel_backend_literal:n { pdf: bc ~ [#1] }
+        \group_insert_after:N \__color_backend_reset:
+      }
+    \cs_gset_eq:NN \__color_backend_select_gray:n \__color_backend_select_cmyk:n
+    \cs_gset_eq:NN \__color_backend_select_rgb:n \__color_backend_select_cmyk:n
+    \cs_gset_protected:Npn \__color_backend_reset:
+      { \__kernel_backend_literal:n { pdf: ec } }
+  }
+\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
+  { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
 \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
 \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
   {
@@ -109,16 +172,19 @@
         / \str_convert_pdfname:n {#1} ~ #2 ~
         \pdf_object_last:
       }
+    \use:x
+      {
+        \pdfmanagement_add:nnn
+          { Page / Resources / ColorSpace }
+          { color \int_use:N \g__color_model_int }
+          { \pdf_object_last: }
+      }
   }
 \cs_if_exist:NF \pdf_object_now:nn
   { \cs_gset_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { } }
 \cs_new_protected:Npn \__color_backend_separation_init:n #1
   {
-    \__kernel_backend_literal:x
-      {
-        pdf:obj ~ @color \int_use:N \g__color_model_int \c_space_tl
-          [#1]
-      }
+    \pdf_object_now:nx { array } {#1}
   }
 \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3
   {
@@ -178,6 +244,13 @@
         #2 ~
         \pdf_object_last:
       }
+    \use:x
+      {
+        \pdfmanagement_add:nnn
+          { Page / Resources / ColorSpace }
+          { color \int_use:N \g__color_model_int }
+          { \pdf_object_last: }
+      }
   }
 \cs_if_exist:NF \pdf_object_now:nn
   { \cs_gset_protected:Npn \__color_backend_devicen_init:nnn #1#2#3 { } }
@@ -621,15 +694,26 @@
   }
 \cs_new:Npn \__pdf_backend_annotation_last:
  { @pdf.obj \int_use:N \g__pdf_backend_annotation_int }
+\int_new:N \g__pdf_backend_link_int
 \cs_new_protected:Npn \__pdf_backend_link_begin_goto:nnw #1#2
   { \__pdf_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } }
 \cs_new_protected:Npn \__pdf_backend_link_begin_user:nnw #1#2
   { \__pdf_backend_link_begin:n {#1#2} }
-\cs_new_protected:Npn \__pdf_backend_link_begin:n #1
+\cs_new_protected:Npx \__pdf_backend_link_begin:n #1
   {
-    \__pdf_backend:n
+    \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
       {
-         bann
+        \exp_not:N \int_gincr:N \exp_not:N  \g__pdf_backend_link_int
+      }
+    \__pdf_backend:x
+      {
+         bann ~
+         \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+           {
+             @pdf.lnk
+             \exp_not:N \int_use:N \exp_not:N  \g__pdf_backend_link_int
+             \c_space_tl
+           }
          <<
            /Type /Annot
            #1
@@ -638,7 +722,14 @@
   }
 \cs_new_protected:Npn \__pdf_backend_link_end:
   { \__pdf_backend:n { eann } }
-\cs_new:Npn \__pdf_backend_link_last: { }
+\cs_new:Npx \__pdf_backend_link_last:
+  {
+    \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+      {
+        @pdf.lnk
+          \exp_not:N \int_use:N \exp_not:N \g__pdf_backend_link_int
+      }
+  }
 \cs_new_protected:Npn \__pdf_backend_link_margin:n #1
   { \__kernel_backend_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } }
 \cs_new_protected:Npn \__pdf_backend_destination:nn #1#2
@@ -657,6 +748,7 @@
               { fitbv } { /FitBV ~ @xpos }
               { fith }  { /FitH ~ @ypos }
               { fitv }  { /FitV ~ @xpos }
+              { fitr }  { /Fit }
             }
             { /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } }
         ]

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,dvips')
 %% l3backend-pdf.dtx  (with options: `package,dvips')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvips.def}{2020-09-24}{}
+  {l3backend-dvips.def}{2021-01-09}{}
   {L3 backend support: dvips}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -77,7 +77,7 @@
 \cs_new_protected:Npn \__color_backend_pickup:N #1 { }
 \cs_if_exist:cT { ver at color.sty }
   {
-     \cs_set_protected:Npn \__color_backend_pickup:N #1
+    \cs_set_protected:Npn \__color_backend_pickup:N #1
       {
         \exp_args:NV \tl_if_head_is_space:nTF \current at color
           {
@@ -894,6 +894,7 @@
               { fitbv } { /FitBV ~ pdf.dest.x }
               { fith }  { /FitH ~ pdf.dest.y }
               { fitv }  { /FitV ~ pdf.dest.x }
+              { fitr }  { /Fit }
             }
             {
               /XYZ ~ pdf.dest.point ~ \fp_eval:n { (#2) / 100 }

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,dvisvgm')
 %% l3backend-pdf.dtx  (with options: `package,dvisvgm')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvisvgm.def}{2020-09-24}{}
+  {l3backend-dvisvgm.def}{2021-01-09}{}
   {L3 backend support: dvisvgm}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -89,7 +89,7 @@
 \cs_new_protected:Npn \__color_backend_pickup:N #1 { }
 \cs_if_exist:cT { ver at color.sty }
   {
-     \cs_set_protected:Npn \__color_backend_pickup:N #1
+    \cs_set_protected:Npn \__color_backend_pickup:N #1
       {
         \exp_args:NV \tl_if_head_is_space:nTF \current at color
           {

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,luatex')
 %% l3backend-pdf.dtx  (with options: `package,luatex')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-luatex.def}{2020-09-24}{}
+  {l3backend-luatex.def}{2021-01-09}{}
   {L3 backend support: PDF output (LuaTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -103,6 +103,25 @@
           }
       }
   }
+\cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3
+  {
+    \int_const:Nn #1
+      {
+        \tex_pdffeedback:D colorstackinit ~
+        \tl_if_blank:nF {#2} { #2 ~ }
+        {#3}
+      }
+  }
+\cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2
+  {
+    \tex_pdfextension:D colorstack ~
+      \int_eval:n {#1} ~ push ~ {#2}
+  }
+\cs_new_protected:Npn \__kernel_color_stack_pop:n #1
+  {
+    \tex_pdfextension:D colorstack ~
+      \int_eval:n {#1} ~ pop \scan_stop:
+  }
 \int_new:N \l__kernel_color_stack_int
 \cs_new_protected:Npn \__color_backend_select_cmyk:n #1
   { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } }
@@ -112,15 +131,11 @@
   { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
 \cs_new_protected:Npn \__color_backend_select:n #1
   {
-    \tex_pdfextension:D colorstack
-      \l__kernel_color_stack_int push {#1}
+    \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1}
     \group_insert_after:N \__color_backend_reset:
   }
 \cs_new_protected:Npn \__color_backend_reset:
-  {
-    \tex_pdfextension:D colorstack
-      \l__kernel_color_stack_int pop \scan_stop:
-  }
+  { \__kernel_color_stack_pop:n \l__kernel_color_stack_int }
 \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
   { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
 \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
@@ -142,7 +157,7 @@
       }
     \use:x
       {
-        \pdfcoredict_gput:nnn
+        \pdfmanagement_add:nnn
           { Page / Resources / ColorSpace }
           { color \int_use:N \g__color_model_int }
           { \pdf_object_last: }
@@ -214,7 +229,7 @@
       }
     \use:x
       {
-        \pdfcoredict_gput:nnn
+        \pdfmanagement_add:nnn
           { Page / Resources / ColorSpace }
           { color \int_use:N \g__color_model_int }
           { \pdf_object_last: }
@@ -574,6 +589,7 @@
             { fitbv } { fitbv }
             { fith }  { fith }
             { fitv }  { fitv }
+            { fitr }  { fitr }
           }
           { xyz ~ zoom \fp_eval:n { #2 * 10 } }
         \scan_stop:

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,pdftex')
 %% l3backend-pdf.dtx  (with options: `package,pdftex')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-pdftex.def}{2020-09-24}{}
+  {l3backend-pdftex.def}{2021-01-09}{}
   {L3 backend support: PDF output (pdfTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -103,6 +103,25 @@
           }
       }
   }
+\cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3
+  {
+    \int_const:Nn #1
+      {
+        \tex_pdfcolorstackinit:D
+        \tl_if_blank:nF {#2} { #2 ~ }
+        {#3}
+      }
+  }
+\cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2
+  {
+    \tex_pdfcolorstack:D
+      \int_eval:n {#1} ~ push ~ {#2}
+  }
+\cs_new_protected:Npn \__kernel_color_stack_pop:n #1
+  {
+    \tex_pdfcolorstack:D
+      \int_eval:n {#1} ~ pop \scan_stop:
+  }
 \int_new:N \l__kernel_color_stack_int
 \cs_new_protected:Npn \__color_backend_select_cmyk:n #1
   { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } }
@@ -112,15 +131,11 @@
   { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
 \cs_new_protected:Npn \__color_backend_select:n #1
   {
-    \tex_pdfcolorstack:D
-      \l__kernel_color_stack_int push {#1}
+    \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1}
     \group_insert_after:N \__color_backend_reset:
   }
 \cs_new_protected:Npn \__color_backend_reset:
-  {
-    \tex_pdfcolorstack:D
-      \l__kernel_color_stack_int pop \scan_stop:
-  }
+  { \__kernel_color_stack_pop:n \l__kernel_color_stack_int }
 \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
   { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
 \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
@@ -142,7 +157,7 @@
       }
     \use:x
       {
-        \pdfcoredict_gput:nnn
+        \pdfmanagement_add:nnn
           { Page / Resources / ColorSpace }
           { color \int_use:N \g__color_model_int }
           { \pdf_object_last: }
@@ -214,7 +229,7 @@
       }
     \use:x
       {
-        \pdfcoredict_gput:nnn
+        \pdfmanagement_add:nnn
           { Page / Resources / ColorSpace }
           { color \int_use:N \g__color_model_int }
           { \pdf_object_last: }
@@ -574,6 +589,7 @@
             { fitbv } { fitbv }
             { fith }  { fith }
             { fitv }  { fitv }
+            { fitr }  { fitr }
           }
           { xyz ~ zoom \fp_eval:n { #2 * 10 } }
         \scan_stop:

Modified: trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -11,7 +11,7 @@
 %% l3backend-graphics.dtx  (with options: `package,xetex')
 %% l3backend-pdf.dtx  (with options: `package,xetex')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -25,7 +25,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-xetex.def}{2020-09-24}{}
+  {l3backend-xetex.def}{2021-01-09}{}
   {L3 backend support: XeTeX}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -54,20 +54,25 @@
   { \__kernel_backend_literal:n { x:gsave } }
 \cs_new_protected:Npn \__kernel_backend_scope_end:
   { \__kernel_backend_literal:n { x:grestore } }
+\group_begin:
+  \cs_set:Npn \__sys_tmp:w #1 Version ~ #2 ~ #3 \q_stop {#2}
+  \sys_get_shell:nnNTF { extractbb~--version }
+    { \char_set_catcode_space:n { `\  } }
+    \l__sys_internal_tl
+    {
+      \int_const:Nn \c__kernel_sys_dvipdfmx_version_int
+        {
+          \exp_after:wN \__sys_tmp:w \l__sys_internal_tl
+            \q_stop
+        }
+    }
+    { \int_const:Nn \c__kernel_sys_dvipdfmx_version_int { 0 } }
+\group_end:
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_select_cmyk:n #1
-  {
-    \__kernel_backend_literal:n { pdf: bc ~ [#1] }
-    \group_insert_after:N \__color_backend_reset:
-  }
-\cs_new_eq:NN \__color_backend_select_gray:n \__color_backend_select_cmyk:n
-\cs_new_eq:NN \__color_backend_select_rgb:n \__color_backend_select_cmyk:n
-\cs_new_protected:Npn \__color_backend_reset:
-  { \__kernel_backend_literal:n { pdf: ec } }
 \cs_new_protected:Npn \__color_backend_pickup:N #1 { }
 \cs_if_exist:cT { ver at color.sty }
   {
-     \cs_set_protected:Npn \__color_backend_pickup:N #1
+    \cs_set_protected:Npn \__color_backend_pickup:N #1
       {
         \exp_args:NV \tl_if_head_is_space:nTF \current at color
           {
@@ -85,13 +90,71 @@
     \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
       { \tl_set:Nn #3 { {#1} {#2} } }
   }
-\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
-  { \__color_backend_select:n { @#1 ~ [#2] } }
+\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+  {
+    \int_new:N \g__color_stack_int
+    \cs_new_protected:Npn \__kernel_color_stack_init:Nnn #1#2#3
+      {
+        \int_gincr:N \g__color_stack_int
+        \int_const:Nn #1 { \g__color_stack_int }
+        \__kernel_backend_literal:x
+          {
+            pdfcolorstackinit ~
+            \int_use:N \g__color_stack_int \c_space_tl
+            \tl_if_blank:nF {#2} { #2 ~ }
+            (#3)
+          }
+      }
+  }
+\int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+  {
+    \cs_new_protected:Npn \__kernel_color_stack_push:nn #1#2
+      {
+        \__kernel_backend_literal:x
+          {
+            pdfcolorstack ~
+            \int_eval:n {#1} ~
+            push ~ (#2)
+          }
+      }
+    \cs_new_protected:Npn \__kernel_color_stack_pop:n #1
+      {
+        \__kernel_backend_literal:x
+          {
+            pdfcolorstack ~
+            \int_eval:n {#1} ~
+            pop
+          }
+      }
+  }
+\int_new:N \l__kernel_color_stack_int
+\cs_new_protected:Npn \__color_backend_select_cmyk:n #1
+  { \__color_backend_select:n { #1 ~ k ~ #1 ~ K } }
+\cs_new_protected:Npn \__color_backend_select_gray:n #1
+  { \__color_backend_select:n { #1 ~ g ~ #1 ~ G } }
+\cs_new_protected:Npn \__color_backend_select_rgb:n #1
+  { \__color_backend_select:n { #1 ~ rg ~ #1 ~ RG } }
 \cs_new_protected:Npn \__color_backend_select:n #1
   {
-    \__kernel_backend_literal:n { pdf: bc ~ #1 }
+    \__kernel_color_stack_push:nn \l__kernel_color_stack_int {#1}
     \group_insert_after:N \__color_backend_reset:
   }
+\cs_new_protected:Npn \__color_backend_reset:
+  { \__kernel_color_stack_pop:n \l__kernel_color_stack_int }
+\int_compare:nNnT \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+  {
+    \cs_gset_protected:Npn \__color_backend_select_cmyk:n #1
+      {
+        \__kernel_backend_literal:n { pdf: bc ~ [#1] }
+        \group_insert_after:N \__color_backend_reset:
+      }
+    \cs_gset_eq:NN \__color_backend_select_gray:n \__color_backend_select_cmyk:n
+    \cs_gset_eq:NN \__color_backend_select_rgb:n \__color_backend_select_cmyk:n
+    \cs_gset_protected:Npn \__color_backend_reset:
+      { \__kernel_backend_literal:n { pdf: ec } }
+  }
+\cs_new_protected:Npn \__color_backend_select_separation:nn #1#2
+  { \__color_backend_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ scn ~ #2 ~ SCN } }
 \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn
 \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5
   {
@@ -109,16 +172,19 @@
         / \str_convert_pdfname:n {#1} ~ #2 ~
         \pdf_object_last:
       }
+    \use:x
+      {
+        \pdfmanagement_add:nnn
+          { Page / Resources / ColorSpace }
+          { color \int_use:N \g__color_model_int }
+          { \pdf_object_last: }
+      }
   }
 \cs_if_exist:NF \pdf_object_now:nn
   { \cs_gset_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { } }
 \cs_new_protected:Npn \__color_backend_separation_init:n #1
   {
-    \__kernel_backend_literal:x
-      {
-        pdf:obj ~ @color \int_use:N \g__color_model_int \c_space_tl
-          [#1]
-      }
+    \pdf_object_now:nx { array } {#1}
   }
 \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3
   {
@@ -178,6 +244,13 @@
         #2 ~
         \pdf_object_last:
       }
+    \use:x
+      {
+        \pdfmanagement_add:nnn
+          { Page / Resources / ColorSpace }
+          { color \int_use:N \g__color_model_int }
+          { \pdf_object_last: }
+      }
   }
 \cs_if_exist:NF \pdf_object_now:nn
   { \cs_gset_protected:Npn \__color_backend_devicen_init:nnn #1#2#3 { } }
@@ -667,15 +740,26 @@
   }
 \cs_new:Npn \__pdf_backend_annotation_last:
  { @pdf.obj \int_use:N \g__pdf_backend_annotation_int }
+\int_new:N \g__pdf_backend_link_int
 \cs_new_protected:Npn \__pdf_backend_link_begin_goto:nnw #1#2
   { \__pdf_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } }
 \cs_new_protected:Npn \__pdf_backend_link_begin_user:nnw #1#2
   { \__pdf_backend_link_begin:n {#1#2} }
-\cs_new_protected:Npn \__pdf_backend_link_begin:n #1
+\cs_new_protected:Npx \__pdf_backend_link_begin:n #1
   {
-    \__pdf_backend:n
+    \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
       {
-         bann
+        \exp_not:N \int_gincr:N \exp_not:N  \g__pdf_backend_link_int
+      }
+    \__pdf_backend:x
+      {
+         bann ~
+         \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+           {
+             @pdf.lnk
+             \exp_not:N \int_use:N \exp_not:N  \g__pdf_backend_link_int
+             \c_space_tl
+           }
          <<
            /Type /Annot
            #1
@@ -684,7 +768,14 @@
   }
 \cs_new_protected:Npn \__pdf_backend_link_end:
   { \__pdf_backend:n { eann } }
-\cs_new:Npn \__pdf_backend_link_last: { }
+\cs_new:Npx \__pdf_backend_link_last:
+  {
+    \int_compare:nNnF \c__kernel_sys_dvipdfmx_version_int < { 20201111 }
+      {
+        @pdf.lnk
+          \exp_not:N \int_use:N \exp_not:N \g__pdf_backend_link_int
+      }
+  }
 \cs_new_protected:Npn \__pdf_backend_link_margin:n #1
   { \__kernel_backend_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } }
 \cs_new_protected:Npn \__pdf_backend_destination:nn #1#2
@@ -703,6 +794,7 @@
               { fitbv } { /FitBV ~ @xpos }
               { fith }  { /FitH ~ @ypos }
               { fitv }  { /FitV ~ @xpos }
+              { fitr }  { /Fit }
             }
             { /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } }
         ]

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2021-01-10 21:49:38 UTC (rev 57375)
@@ -56,7 +56,7 @@
 %% l3legacy.dtx  (with options: `package')
 %% l3deprecation.dtx  (with options: `package,kernel')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -69,7 +69,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-12-07}%
+\def\ExplFileDate{2021-01-09}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -7582,10 +7582,14 @@
     \__kernel_tl_gset:Nx \g__sys_backend_tl
       {
         \sys_if_engine_xetex:TF
-          { xdvipdfmx }
+          { xetex }
           {
              \sys_if_output_pdf:TF
-              { pdfmode }
+              {
+                \sys_if_engine_pdftex:TF
+                  { pdftex }
+                  { luatex }
+              }
               { dvips }
            }
       }
@@ -12486,20 +12490,20 @@
 \group_begin:
   \cs_set_protected:Npn \__keyval_tmp:NN #1#2
     {
-      \cs_new:Npn \keyval_parse:NNn ##1 ##2 ##3
-        { \__keyval_loop_active:NNw ##1 ##2 \s__keyval_mark ##3 #1 \s__keyval_tail #1 }
-      \cs_new:Npn \__keyval_loop_active:NNw ##1 ##2 ##3 #1
+      \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3
+        { \__keyval_loop_active:nnw {##1} {##2} \s__keyval_mark ##3 #1 \s__keyval_tail #1 }
+      \cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn
+      \cs_new:Npn \__keyval_loop_active:nnw ##1 ##2 ##3 #1
         {
           \__keyval_if_recursion_tail:w ##3
             \__keyval_end_loop_active:w \s__keyval_tail
-          \__keyval_loop_other:NNw ##1 ##2 ##3 , \s__keyval_tail ,
-          \__keyval_loop_active:NNw ##1 ##2 \s__keyval_mark
+          \__keyval_loop_other:nnw {##1} {##2} ##3 , \s__keyval_tail ,
         }
-      \cs_new:Npn \__keyval_split_other:w ##1 = ##2 \s__keyval_mark ##3 ##4 \s__keyval_stop
+      \cs_new:Npn \__keyval_split_other:w ##1 = ##2 \s__keyval_mark ##3
         { ##3 ##1 \s__keyval_stop \s__keyval_mark ##2 }
-      \cs_new:Npn \__keyval_split_active:w ##1 #2 ##2 \s__keyval_mark ##3 ##4 \s__keyval_stop
+      \cs_new:Npn \__keyval_split_active:w ##1 #2 ##2 \s__keyval_mark ##3
         { ##3 ##1 \s__keyval_stop \s__keyval_mark ##2 }
-      \cs_new:Npn \__keyval_loop_other:NNw ##1 ##2 ##3 ,
+      \cs_new:Npn \__keyval_loop_other:nnw ##1 ##2 ##3 ,
         {
           \__keyval_if_recursion_tail:w ##3
             \__keyval_end_loop_other:w \s__keyval_tail
@@ -12506,9 +12510,8 @@
           \__keyval_split_active:w ##3 \s__keyval_nil
             \s__keyval_mark \__keyval_split_active_auxi:w
             #2 \s__keyval_mark \__keyval_clean_up_active:w
-            \s__keyval_stop
-          ##1 ##2
-          \__keyval_loop_other:NNw ##1 ##2 \s__keyval_mark
+          {##1} {##2}
+          \s__keyval_mark
         }
       \cs_new:Npn \__keyval_split_active_auxi:w ##1 \s__keyval_stop
         {
@@ -12515,19 +12518,18 @@
           \__keyval_split_other:w ##1 \s__keyval_nil
             \s__keyval_mark \__keyval_misplaced_equal_after_active_error:w
             = \s__keyval_mark \__keyval_split_active_auxii:w
-            \s__keyval_stop
         }
       \cs_new:Npn \__keyval_split_active_auxii:w
           ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_after_active_error:w
           \s__keyval_stop \s__keyval_mark
-        { \__keyval_trim:nN { ##1 } \__keyval_split_active_auxiii:w }
+          ##2 \s__keyval_nil #2 \s__keyval_mark \__keyval_clean_up_active:w
+        { \__keyval_trim:nN {##1} \__keyval_split_active_auxiii:w ##2 \s__keyval_nil }
       \cs_new:Npn \__keyval_split_active_auxiii:w ##1 ##2 \s__keyval_nil
         {
           \__keyval_split_active:w ##2 \s__keyval_nil
             \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
             #2 \s__keyval_mark \__keyval_split_active_auxiv:w
-            \s__keyval_stop
-            { ##1 }
+            {##1}
         }
       \cs_new:Npn \__keyval_split_active_auxiv:w
           ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
@@ -12536,12 +12538,11 @@
           \__keyval_split_other:w ##1 \s__keyval_nil
             \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
             = \s__keyval_mark \__keyval_split_active_auxv:w
-            \s__keyval_stop
         }
       \cs_new:Npn \__keyval_split_active_auxv:w
           ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
           \s__keyval_stop \s__keyval_mark
-        { \__keyval_trim:nN { ##1 } \__keyval_pair:nnNN }
+        { \__keyval_trim:nN { ##1 } \__keyval_pair:nnnn }
       \cs_new:Npn \__keyval_clean_up_active:w
           ##1 \s__keyval_nil \s__keyval_mark \__keyval_split_active_auxi:w \s__keyval_stop \s__keyval_mark
         {
@@ -12548,56 +12549,57 @@
           \__keyval_split_other:w ##1 \s__keyval_nil
             \s__keyval_mark \__keyval_split_other_auxi:w
             = \s__keyval_mark \__keyval_clean_up_other:w
-            \s__keyval_stop
         }
       \cs_new:Npn \__keyval_split_other_auxi:w ##1 \s__keyval_stop
         { \__keyval_trim:nN { ##1 } \__keyval_split_other_auxii:w }
-      \cs_new:Npn \__keyval_split_other_auxii:w ##1 ##2 \s__keyval_nil
+      \cs_new:Npn \__keyval_split_other_auxii:w
+          ##1 ##2 \s__keyval_nil = \s__keyval_mark \__keyval_clean_up_other:w
         {
           \__keyval_split_other:w ##2 \s__keyval_nil
             \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
             = \s__keyval_mark \__keyval_split_other_auxiii:w
-            \s__keyval_stop
             { ##1 }
         }
       \cs_new:Npn \__keyval_split_other_auxiii:w
           ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
           \s__keyval_stop \s__keyval_mark
-        { \__keyval_trim:nN { ##1 } \__keyval_pair:nnNN }
+        { \__keyval_trim:nN { ##1 } \__keyval_pair:nnnn }
       \cs_new:Npn \__keyval_clean_up_other:w
           ##1 \s__keyval_nil \s__keyval_mark \__keyval_split_other_auxi:w \s__keyval_stop \s__keyval_mark
         {
           \__keyval_if_blank:w ##1 \s__keyval_nil \s__keyval_stop \__keyval_blank_true:w
-            \s__keyval_mark \s__keyval_stop \use:n
-            { \__keyval_trim:nN { ##1 } \__keyval_key:nNN }
+            \s__keyval_mark \s__keyval_stop
+            \__keyval_trim:nN { ##1 } \__keyval_key:nn
         }
       \cs_new:Npn \__keyval_misplaced_equal_after_active_error:w
           \s__keyval_mark ##1 \s__keyval_stop \s__keyval_mark ##2 \s__keyval_nil
-          \s__keyval_mark ##3 \s__keyval_nil ##4 ##5
+           = \s__keyval_mark \__keyval_split_active_auxii:w
+           \s__keyval_mark ##3 \s__keyval_nil
+           #2 \s__keyval_mark \__keyval_clean_up_active:w
         {
           \__kernel_msg_expandable_error:nn
             { kernel } { misplaced-equals-sign }
+          \__keyval_loop_other:nnw
         }
       \cs_new:Npn \__keyval_misplaced_equal_in_split_error:w
           \s__keyval_mark ##1 \s__keyval_stop \s__keyval_mark ##2 \s__keyval_nil
-          ##3 ##4 ##5
+          ##3 \s__keyval_mark ##4 ##5
         {
           \__kernel_msg_expandable_error:nn
             { kernel } { misplaced-equals-sign }
+          \__keyval_loop_other:nnw
         }
       \cs_new:Npn \__keyval_end_loop_other:w
           \s__keyval_tail
-          \__keyval_split_active:w ##1 \s__keyval_nil
-          \s__keyval_mark \__keyval_split_active_auxi:w
+          \__keyval_split_active:w
+          \s__keyval_mark \s__keyval_tail
+          \s__keyval_nil \s__keyval_mark
+          \__keyval_split_active_auxi:w
           #2 \s__keyval_mark \__keyval_clean_up_active:w
-          \s__keyval_stop
-          ##2 ##3
-          \__keyval_loop_other:NNw ##4 \s__keyval_mark
-        { }
+        { \__keyval_loop_active:nnw }
       \cs_new:Npn \__keyval_end_loop_active:w
           \s__keyval_tail
-          \__keyval_loop_other:NNw ##1 , \s__keyval_tail ,
-          \__keyval_loop_active:NNw ##2 \s__keyval_mark
+          \__keyval_loop_other:nnw ##1 \s__keyval_mark \s__keyval_tail , \s__keyval_tail ,
         { }
     }
   \char_set_catcode_active:n { `\, }
@@ -12604,22 +12606,25 @@
   \char_set_catcode_active:n { `\= }
   \__keyval_tmp:NN , =
 \group_end:
-\cs_new:Npn \__keyval_pair:nnNN #1 #2 #3 #4
+\cs_new:Npn \__keyval_pair:nnnn #1 #2 #3 #4
   {
     \__keyval_if_blank:w \s__keyval_mark #2 \s__keyval_nil \s__keyval_stop \__keyval_blank_key_error:w
       \s__keyval_mark \s__keyval_stop
     \exp_not:n { #4 { #2 } { #1 } }
+    \__keyval_loop_other:nnw {#3} {#4}
   }
-\cs_new:Npn \__keyval_key:nNN #1 #2 #3
+\cs_new:Npn \__keyval_key:nn #1 #2
   {
     \__keyval_if_blank:w \s__keyval_mark #1 \s__keyval_nil \s__keyval_stop \__keyval_blank_key_error:w
       \s__keyval_mark \s__keyval_stop
     \exp_not:n { #2 { #1 } }
+    \__keyval_loop_other:nnw {#2}
   }
 \cs_new:Npn \__keyval_if_empty:w #1 \s__keyval_mark \s__keyval_stop { }
 \cs_new:Npn \__keyval_if_blank:w \s__keyval_mark #1 { \__keyval_if_empty:w \s__keyval_mark }
 \cs_new:Npn \__keyval_if_recursion_tail:w \s__keyval_mark #1 \s__keyval_tail { }
-\cs_new:Npn \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \use:n #1 #2 #3 { }
+\cs_new:Npn \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \__keyval_trim:nN #1 \__keyval_key:nn
+  { \__keyval_loop_other:nnw }
 \cs_new:Npn \__keyval_blank_key_error:w \s__keyval_mark \s__keyval_stop \exp_not:n #1
   {
     \__kernel_msg_expandable_error:nn
@@ -12642,7 +12647,6 @@
             \__keyval_trim_auxiii:w
             #1 \s__keyval_nil
             \__keyval_trim_auxiv:w
-          \s__keyval_stop
         }
       \cs_new:Npn \__keyval_trim_auxi:w ##1 \s__keyval_mark #1 ##2 \s__keyval_mark ##3
         {
@@ -12663,8 +12667,11 @@
           ##1 \s__keyval_nil
           \__keyval_trim_auxiii:w
         }
-      \cs_new:Npn \__keyval_trim_auxiv:w \s__keyval_mark ##1 \s__keyval_nil ##2 \s__keyval_stop ##3
-        { ##3 { ##1 } }
+      \cs_new:Npn \__keyval_trim_auxiv:w
+          \s__keyval_mark ##1 \s__keyval_nil
+          \__keyval_trim_auxiii:w \s__keyval_nil \__keyval_trim_auxiii:w
+          ##2
+        { ##2 { ##1 } }
     }
   \__keyval_tmp:n { ~ }
 \group_end:
@@ -30879,6 +30886,19 @@
   {
     \str_if_eq:nnTF {#1} { \protect }
       { \__text_purify_protect:N }
+      { \__text_purify_encoding:N #1 }
+  }
+\cs_new:Npn \__text_purify_protect:N #1
+  {
+    \__text_if_recursion_tail_stop_do:Nn #1 { \__text_purify_end:w }
+    \__text_purify_loop:w
+  }
+\cs_new:Npn \__text_purify_encoding:N #1
+  {
+    \bool_lazy_or:nnTF
+      { \cs_if_eq_p:NN #1 \@current at cmd }
+      { \cs_if_eq_p:NN #1 \@changed at cmd }
+      { \__text_purify_encoding_escape:NN }
       {
         \__text_if_expandable:NTF #1
           { \exp_after:wN \__text_purify_loop:w #1 }
@@ -30885,9 +30905,9 @@
           { \__text_purify_loop:w }
       }
   }
-\cs_new:Npn \__text_purify_protect:N #1
+\cs_new:Npn \__text_purify_encoding_escape:NN #1#2
   {
-    \__text_if_recursion_tail_stop_do:Nn #1 { \__text_purify_end:w }
+    \__text_purify_store:n {#1}
     \__text_purify_loop:w
   }
 \cs_new_protected:Npn \text_declare_purify_equivalent:Nn #1#2

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% expl3.dtx  (with options: `generic,loader')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-12-07}%
+\def\ExplFileDate{2021-01-09}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% expl3.dtx  (with options: `2ekernel,loader')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-12-07}%
+\def\ExplFileDate{2021-01-09}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua	2021-01-10 21:49:38 UTC (rev 57375)
@@ -9,7 +9,7 @@
 -- l3sys.dtx  (with options: `package,lua')
 -- l3token.dtx  (with options: `package,lua')
 -- 
--- Copyright (C) 1990-2020 The LaTeX3 Project
+-- Copyright (C) 1990-2021 The LaTeX3 Project
 -- 
 -- It may be distributed and/or modified under the conditions of
 -- the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% expl3.dtx  (with options: `package,loader')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-12-07}%
+\def\ExplFileDate{2021-01-09}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3debug.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3debug.dtx  (with options: `package')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3deprecation.dtx  (with options: `package,patches')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3doc.dtx  (with options: `class')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3docstrip.dtx  (with options: `program')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88591')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885910')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885911')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885913')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885914')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885915')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885916')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88592')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88593')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88594')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88595')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88596')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88597')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88598')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def	2021-01-10 20:13:26 UTC (rev 57374)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def	2021-01-10 21:49:38 UTC (rev 57375)
@@ -6,7 +6,7 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88599')
 %% 
-%% Copyright (C) 1990-2020 The LaTeX3 Project
+%% Copyright (C) 1990-2021 The LaTeX3 Project
 %% 
 %% It may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License (LPPL), either version 1.3c of



More information about the tex-live-commits mailing list.