texlive[43088] Master/texmf-dist: l3 (29jan17)

commits+karl at tug.org commits+karl at tug.org
Sun Jan 29 23:34:58 CET 2017


Revision: 43088
          http://tug.org/svn/texlive?view=revision&revision=43088
Author:   karl
Date:     2017-01-29 23:34:57 +0100 (Sun, 29 Jan 2017)
Log Message:
-----------
l3 (29jan17)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3sort/l3sort.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3flag.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3regex.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-analysis.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-build.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
    trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf
    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/l3docstrip.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/README.md
    trunk/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf
    trunk/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf
    trunk/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-analysis.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-build.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins
    trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
    trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.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/l3alloc.dtx
    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/l3clist.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3color.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/l3drivers.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/l3final.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3format.ins
    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/l3int.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.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/l3oldmodules.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/l3seq.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.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/l3tl.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.ins
    trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.ins
    trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.ins
    trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
    trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.ins
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3sort/l3sort.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
    trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
    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.lua
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3color.sty
    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/l3dvipdfmx.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3file.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3names.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3str.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
    trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
    trunk/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
    trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
    trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3experimental/README.md	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/doc/latex/l3experimental/README.md	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,7 +1,7 @@
 Experimental LaTeX3 Concepts
 ============================
 
-Release 2016/11/21 (r6760)
+Release 2017/01/28 (r6834)
 
 Overview
 --------

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

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3flag.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3regex.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-convert.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-analysis.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/l3str/l3tl-build.pdf
===================================================================
(Binary files differ)

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

Modified: trunk/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf
===================================================================
(Binary files differ)

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

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2016/11/21 (r6760)
+Release 2017/01/28 (r6834)
 
 Overview
 --------

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/l3docstrip.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt	2017-01-29 22:34:57 UTC (rev 43088)
@@ -15,24 +15,9 @@
 --------------------------------------
 Function                   Expires end
 --------------------------------------
-\c_job_name_tl                    2016
-\luatex_if_engine_p:              2016
-\luatex_if_engine:F               2016
-\luatex_if_engine:T               2016
-\luatex_if_engine:TF              2016
-\pdftex_if_engine_p:              2016
-\pdftex_if_engine:F               2016
-\pdftex_if_engine:T               2016
-\pdftex_if_engine:TF              2016
-\scan_align_safe_stop:            2016
+\iow_get_str:NN                   2017
 \tl_to_lowercase:n                2017
 \tl_to_uppercase:n                2017
-\xetex_if_engine_p:               2016
-\xetex_if_engine:F                2016
-\xetex_if_engine:T                2016
-\xetex_if_engine:TF               2016
-[key property] .value_forbidden:  2016
-[key property] .value_required:   2016
 ---------------------------------------
 
 Removed functions and variables
@@ -47,6 +32,7 @@
 \c_active_char_token                            2011-09-08    2786
 \c_alignment_tab_token                          2011-09-08    2786
 \c_empty_toks                                   2011-09-08    2786
+\c_job_name_tl                                  2017-01-01    6810
 \c_keys_code_root_tl                            2013-01-08    4412
 \c_letter_token                                 2011-09-08    2786
 \c_luatex_is_engine_bool                        2011-12-30    3114
@@ -274,6 +260,10 @@
 \l_tmpb_toks                                    2011-09-08    2786
 \l_tmpc_int                                     2013-01-08    4412
 \l_tmpc_toks                                    2011-09-08    2786
+\luatex_if_engine_p:                            2017-01-01    6811
+\luatex_if_engine:T                             2017-01-01    6811
+\luatex_if_engine:F                             2017-01-01    6811
+\luatex_if_engine:TF                            2017-01-01    6811
 \msg_class_new:nn                               2011-09-08    2786
 \msg_class_set:nn                               2013-01-08    4412
 \msg_direct_interrupt:xxxxx                     2011-09-08    2786
@@ -293,8 +283,10 @@
 \msg_trace:nnxxx                                2011-09-08    2786
 \msg_trace:nnxxxx                               2011-09-08    2786
 \msg_two_newlines:                              2013-01-08    4412
-\quark_if_recursion_tail_break:N                2015-07-14    5659
-\quark_if_recursion_tail_break:n                2015-07-14    5659
+\pdftex_if_engine_p:                            2017-01-01    6811
+\pdftex_if_engine:T                             2017-01-01    6811
+\pdftex_if_engine:F                             2017-01-01    6811
+\pdftex_if_engine:TF                            2017-01-01    6811
 \peek_after:NN                                  2011-09-08    2786
 \peek_gafter:NN                                 2011-09-08    2786
 \prg_case_dim:nnn                               2013-01-08    4412
@@ -346,6 +338,9 @@
 \prop_if_in:ccF                                 2011-09-08    2786
 \prop_if_in:ccT                                 2011-09-08    2786
 \prop_if_in:ccTF                                2011-09-08    2786
+\quark_if_recursion_tail_break:N                2015-07-14    5659
+\quark_if_recursion_tail_break:n                2015-07-14    5659
+\scan_align_safe_stop:                          2017-01-01    6811
 \seq_display:c                                  2011-09-08    2786
 \seq_display:N                                  2011-09-08    2786
 \seq_length:c                                   2013-01-08    4412
@@ -534,6 +529,10 @@
 \use_i_after_else:nw                            2011-12-30    3114
 \use_i_after_or:nw                              2011-12-30    3114
 \use_i_after_orelse:nw                          2011-12-30    3114
+\xetex_if_engine_p:                             2017-01-01    6811
+\xetex_if_engine:T                              2017-01-01    6811
+\xetex_if_engine:F                              2017-01-01    6811
+\xetex_if_engine:TF                             2017-01-01    6811
 \vbox_gset_inline_begin:N                       2014-08-09    5822
 \vbox_gset_inline_begin:c                       2014-08-09    5822
 \vbox_gset_inline_end:                          2014-08-09    5822
@@ -545,4 +544,6 @@
 [key property] .code:x                          2013-07-10    4539
 [key property] .generate_choices:n              2015-07-14    5655
 [key property] .meta:x                          2013-07-10    4538
+[key property] .value_forbidden:                2017-01-01    6811
+[key property] .value_required:                 2017-01-01    6811
 ------------------------------------------------------------------

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex/l3packages/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3packages/README.md	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/doc/latex/l3packages/README.md	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,7 +1,7 @@
 LaTeX3 High-Level Concepts
 ==========================
 
-Release 2016/11/21 (r6760)
+Release 2017/01/28 (r6834)
 
 Overview
 --------

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

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

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

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

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,44 +1,30 @@
 % \iffalse
 %
 %% File l3sort.dtx (C) Copyright 2012,2014-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/11/21]
-%<package>\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+%<package>\@ifpackagelater{expl3}{2017/01/28}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{l3sort}{Support package l3kernel too old}
@@ -50,7 +36,7 @@
 %<package>      }%
 %<package>    \endinput
 %<package>  }
-\GetIdInfo$Id: l3sort.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3sort.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental sorting functions}
 %</driver|package>
 %<*driver>
@@ -82,6 +68,7 @@
 % \maketitle
 %
 % \begin{documentation}
+% ^^A todo: ask list about ltplain, mkpattern.tex, GFnotation.tex, texinfo.tex, lollipop-plain, etex-mac.tex,
 %
 % \section{\pkg{l3sort} documentation}
 %
@@ -114,10 +101,11 @@
 % inefficient way).
 %
 % \begin{texnote}
-%   Internally, the code from \pkg{l3sort} stores items in \tn{toks}.
-%   Thus, the \meta{comparison code} should not alter the
-%   contents of any \tn{toks}, nor assume that they hold a
-%   given value.
+%   Internally, the code from \pkg{l3sort} stores items in \tn{toks}
+%   registers allocated locally.  Thus, the \meta{comparison code}
+%   should not call \tn{newtoks} or other commands that allocate new
+%   \tn{toks} registers.  On the other hand, altering the value of a
+%   previously allocated \tn{toks} register is not a problem.
 % \end{texnote}
 %
 % \begin{function}{\seq_sort:Nn, \seq_gsort:Nn}
@@ -189,26 +177,25 @@
 %
 % \subsection{Variables}
 %
-% \begin{variable}{\c_@@_max_length_int}
-%   The maximum length of a sequence which will not overflow
-%   the available registers depends on which engine is in use.
-%   For $2^{N}$ registers, it is $3\cdot 2^{N-2}$: for that number
-%   of items, at the last step the block size will be $2^{N-1}$,
-%   and the two blocks to merge will be of sizes $2^{N-1}$ and
-%   $2^{N-2}$ respectively. When merging, one of the blocks must
-%   be copied to temporary registers; here, the smallest block,
-%   of size $2^{N-2}$, will fill up exactly the $2^{N-2}$ free
-%   registers, totalling $2^{N-1}+2^{N-2}+2^{N-2}=2^{N}$ registers.
+% \begin{variable}
+%   {
+%     \l_@@_length_int, \l_@@_min_int, \l_@@_top_int, \l_@@_max_int,
+%     \l_@@_true_max_int
+%   }
+%   The sequence has \cs{l_@@_length_int} items and is stored from
+%   \cs{l_@@_min_int} to $\cs{l_@@_top_int}-1$.  While reading the
+%   sequence in memory, we check that \cs{l_@@_top_int} remains at most
+%   \cs{l_@@_max_int}, precomputed by \cs{@@_compute_range:}.  That
+%   bound is such that the merge sort will only use \tn{toks} registers
+%   less than \cs{l_@@_true_max_int}, namely those that have not been
+%   allocated for use in other code: the user's comparison code could
+%   alter these.
 %    \begin{macrocode}
-\int_const:Nn \c_@@_max_length_int
-  { \sys_if_engine_luatex:TF { 49152 } { 24576 } }
-%    \end{macrocode}
-% \end{variable}
-%
-% \begin{variable}{\l_@@_length_int}
-%   Length of the sequence which is being sorted.
-%    \begin{macrocode}
 \int_new:N \l_@@_length_int
+\int_new:N \l_@@_min_int
+\int_new:N \l_@@_top_int
+\int_new:N \l_@@_max_int
+\int_new:N \l_@@_true_max_int
 %    \end{macrocode}
 % \end{variable}
 %
@@ -254,34 +241,168 @@
 % \end{variable}
 % \end{variable}
 %
+% \subsection{Finding available \tn{toks} registers}
+%
+% \begin{macro}[int]{\@@_shrink_range:}
+% \begin{macro}[aux]{\@@_shrink_range_loop:}
+%   After \cs{@@_compute_range:} (defined below) determines that
+%   \tn{toks} registers between \cs{l_@@_min_int} (included) and
+%   \cs{l_@@_true_max_int} (excluded) have not yet been assigned,
+%   \cs{@@_shrink_range:} computes \cs{l_@@_max_int} to reflect the need
+%   for a buffer when merging blocks in the merge sort.  Given
+%   $2^{n}\leq A\leq 2^{n}+2^{n-1}$ registers we can sort $\lfloor
+%   A/2\rfloor+2^{n-2}$ items while if we have $2^{n}+2^{n-1}\leq A\leq
+%   2^{n+1}$ registers we can sort $A-2^{n-1}$ items.  We first find out
+%   a power $2^{n}$ such that $2^{n}\leq A\leq 2^{n+1}$ by repeatedly
+%   halving \cs{l_@@_block_int}, starting at $2^{15}$ or $2^{14}$ namely
+%   half the total number of registers, then we use the formulas and set
+%   \cs{l_@@_max_int}.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_shrink_range:
+  {
+    \int_set:Nn \l_@@_A_int
+      { \l_@@_true_max_int - \l_@@_min_int + \c_one }
+    \int_set:Nn \l_@@_block_int { \c_max_register_int / \c_two }
+    \@@_shrink_range_loop:
+    \int_set:Nn \l_@@_max_int
+      {
+        \int_compare:nNnTF
+          { \l_@@_block_int * \c_three / \c_two } > \l_@@_A_int
+          {
+            \l_@@_min_int
+            + ( \l_@@_A_int - \c_one ) / \c_two
+            + \l_@@_block_int / \c_four
+            - \c_one
+          }
+          { \l_@@_true_max_int - \l_@@_block_int / \c_two }
+      }
+  }
+\cs_new_protected:Npn \@@_shrink_range_loop:
+  {
+    \if_int_compare:w \l_@@_A_int < \l_@@_block_int
+      \tex_divide:D \l_@@_block_int \c_two
+      \exp_after:wN \@@_shrink_range_loop:
+    \fi:
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[int]{\@@_compute_range:, \@@_redefine_compute_range:}
+% \begin{variable}{\c_@@_max_length_int}
+%   First find out what \tn{toks} have not yet been assigned.  There are
+%   many cases.  In \LaTeXe{} with no package, available \tn{toks} range
+%   from $\tn{count}15+1$ to \cs{c_max_register_int} included (this was
+%   not altered despite the 2015 changes).  When \tn{loctoks} is
+%   defined, namely in plain (e)\TeX{}, or when the package \pkg{etex}
+%   is loaded in \LaTeXe{}, redefine \cs{@@_compute_range:} to use the
+%   range $\tn{count}265$ to $\tn{count}275-1$.  The \pkg{elocalloc}
+%   package also defines \tn{loctoks} but uses yet another number for
+%   the upper bound, namely \cs{e at alloc@top} (minus one).  We must check
+%   for \tn{loctoks} every time a sorting function is called, as
+%   \pkg{etex} or \pkg{elocalloc} could be loaded.
+%
+%   In Con\TeX{}t MkIV the range is from
+%   $|\c_syst_last_allocated_toks|+1$ to \cs{c_max_register_int}, and in
+%   MkII it is from $|\lastallocatedtoks|+1$ to \cs{c_max_register_int}.
+%   In all these cases, call \cs{@@_shrink_range:}.  The \LaTeX3 format
+%   mode is easiest: no \tn{toks} are ever allocated so available
+%   \tn{toks} range from $0$ to \cs{c_max_register_int} and we
+%   precompute the result of \cs{@@_shrink_range:}.
+%    \begin{macrocode}
+%<*package>
+\cs_new_protected:Npn \@@_compute_range:
+  {
+    \int_set:Nn \l_@@_min_int { \tex_count:D 15 + \c_one }
+    \int_set:Nn \l_@@_true_max_int { \c_max_register_int + \c_one }
+    \@@_shrink_range:
+    \if_meaning:w \loctoks \tex_undefined:D \else:
+      \if_meaning:w \loctoks \scan_stop: \else:
+        \@@_redefine_compute_range:
+        \@@_compute_range:
+      \fi:
+    \fi:
+  }
+\cs_new_protected:Npn \@@_redefine_compute_range:
+  {
+    \cs_if_exist:cTF { ver at elocalloc.sty }
+      {
+        \cs_gset_protected:Npn \@@_compute_range:
+          {
+            \int_set:Nn \l_@@_min_int { \tex_count:D 265 }
+            \int_set_eq:NN \l_@@_true_max_int \e at alloc@top
+            \@@_shrink_range:
+          }
+      }
+      {
+        \cs_gset_protected:Npn \@@_compute_range:
+          {
+            \int_set:Nn \l_@@_min_int { \tex_count:D 265 }
+            \int_set:Nn \l_@@_true_max_int { \tex_count:D 275 }
+            \@@_shrink_range:
+          }
+      }
+  }
+\cs_if_exist:NT \loctoks { \@@_redefine_compute_range: }
+\tl_map_inline:nn { \lastallocatedtoks \c_syst_last_allocated_toks }
+  {
+    \cs_if_exist:NT #1
+      {
+        \cs_gset_protected:Npn \@@_compute_range:
+          {
+            \int_set:Nn \l_@@_min_int { #1 + \c_one }
+            \int_set:Nn \l_@@_true_max_int { \c_max_register_int + \c_one }
+            \@@_shrink_range:
+          }
+      }
+  }
+%</package>
+%<*initex>
+\int_const:Nn \c_@@_max_length_int
+  { ( \c_max_register_int + 1 ) * 3 / 4 }
+\cs_new_protected:Npn \@@_compute_range:
+  {
+    \int_set_eq:NN \l_@@_min_int \c_zero
+    \int_set:Nn \l_@@_true_max_int { \c_max_register_int + \c_one }
+    \int_set_eq:NN \l_@@_max_int \c_@@_max_length_int
+  }
+%</initex>
+%    \end{macrocode}
+% \end{variable}
+% \end{macro}
+%
 % \subsection{Protected user commands}
 %
 % \begin{macro}[int]{\@@_main:NNNnNn}
-%   Sorting happens in three steps. First store items
-%   in \tn{toks} registers ranging from $0$ to the length
-%   of the list, while checking that the list is not too
+%   Sorting happens in three steps. First store items in \tn{toks}
+%   registers ranging from \cs{l_@@_min_int} to $\cs{l_@@_top_int}-1$,
+%   while checking that the list is not too
 %   long. If we reach the maximum length, all further
 %   items are entirely ignored after raising an error.
 %   Secondly, sort the array of \tn{toks} registers,
-%   using the user-defined sorting function, |#5|.
+%   using the user-defined sorting function, |#6|.
 %   Finally, unpack the \tn{toks} registers (now sorted)
 %   into a variable of the right type, by \texttt{x}-expanding
-%   the code in |#3|, specific to each type of list.
+%   the code in |#4|, specific to each type of list.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_main:NNNnNn #1#2#3#4#5#6
   {
     \group_begin:
-      \l_@@_length_int \c_zero
+%<package>      \@@_disable_toksdef:
+      \@@_compute_range:
+      \int_set_eq:NN \l_@@_top_int \l_@@_min_int
       #2 #5
         {
-          \if_int_compare:w \l_@@_length_int = \c_@@_max_length_int
+          \if_int_compare:w \l_@@_top_int = \l_@@_max_int
             \@@_too_long_error:NNw #3 #5
           \fi:
-          \tex_toks:D \l_@@_length_int {##1}
-          \tex_advance:D \l_@@_length_int \c_one
+          \tex_toks:D \l_@@_top_int {##1}
+          \tex_advance:D \l_@@_top_int \c_one
         }
-      \cs_set:Npn \sort_compare:nn ##1 ##2 { #6 }
-      \l_@@_block_int \c_one
+      \int_set:Nn \l_@@_length_int
+        { \l_@@_top_int - \l_@@_min_int }
+      \cs_set:Npn \@@_compare:nn ##1 ##2 { #6 }
+      \int_set_eq:NN \l_@@_block_int \c_one
       \@@_level:
       \use:x
         {
@@ -307,14 +428,14 @@
 \cs_new_protected:Npn \seq_sort:Nn
   {
     \@@_main:NNNnNn \tl_set:Nn
-      \seq_map_inline:Nn \seq_map_break:
-      { \s__seq \@@_toks:NNw \exp_not:N \__seq_item:n 0 ; }
+      \seq_map_inline:Nn \seq_map_break:n
+      { \s__seq \@@_toks:NN \exp_not:N \__seq_item:n }
   }
 \cs_new_protected:Npn \seq_gsort:Nn
   {
     \@@_main:NNNnNn \tl_gset:Nn
-      \seq_map_inline:Nn \seq_map_break:
-      { \s__seq \@@_toks:NNw \exp_not:N \__seq_item:n 0 ; }
+      \seq_map_inline:Nn \seq_map_break:n
+      { \s__seq \@@_toks:NN \exp_not:N \__seq_item:n }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -324,19 +445,19 @@
 %   the scope of the assignment. Mapping through the token
 %   list is done with \cs{tl_map_inline:Nn}, and producing
 %   the token list is very similar to sequences, removing
-%   \cs{seq_item:Nn}.
+%   \cs{__seq_item:n}.
 %    \begin{macrocode}
 \cs_new_protected:Npn \tl_sort:Nn
   {
     \@@_main:NNNnNn \tl_set:Nn
-      \tl_map_inline:Nn \tl_map_break:
-      { \@@_toks:NNw \prg_do_nothing: \prg_do_nothing: 0 ; }
+      \tl_map_inline:Nn \tl_map_break:n
+      { \@@_toks:NN \prg_do_nothing: \prg_do_nothing: }
   }
 \cs_new_protected:Npn \tl_gsort:Nn
   {
     \@@_main:NNNnNn \tl_gset:Nn
-      \tl_map_inline:Nn \tl_map_break:
-      { \@@_toks:NNw \prg_do_nothing: \prg_do_nothing: 0 ; }
+      \tl_map_inline:Nn \tl_map_break:n
+      { \@@_toks:NN \prg_do_nothing: \prg_do_nothing: }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -350,7 +471,7 @@
 %   for sequences and token lists. The first comma must be removed.
 %   An item must be wrapped in an extra set of braces if it contains
 %   either the space or the comma characters. This is taken care of
-%   by \cs{clist_wrap_item:n}, but \cs{@@_toks:NNw} would simply
+%   by \cs{clist_wrap_item:n}, but \cs{@@_toks:NN} would simply
 %   feed \cs{tex_the:D} \cs{tex_toks:D} \meta{number} as an
 %   argument to that function; hence we need to expand this argument
 %   once to unpack the register.
@@ -364,10 +485,10 @@
     \clist_if_empty:NF #2
       {
         \@@_main:NNNnNn #1
-          \clist_map_inline:Nn \clist_map_break:
+          \clist_map_inline:Nn \clist_map_break:n
           {
             \exp_last_unbraced:Nf \use_none:n
-              { \@@_toks:NNw \exp_args:No \__clist_wrap_item:n 0 ; }
+              { \@@_toks:NN \exp_args:No \__clist_wrap_item:n }
           }
           #2 {#3}
       }
@@ -376,10 +497,10 @@
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}{\@@_toks:NNw}
-%   Unpack the various \tn{toks} registers, from $0$ to the length
-%   of the list. The functions |#1| and |#2| allow us to treat the
-%   three data structures in a unified way:
+% \begin{macro}{\@@_toks:NN, \@@_toks:NNw}
+%   Unpack the various \tn{toks} registers, from \cs{l_@@_min_int} to
+%   $\cs{l_@@_top_int}-1$. The functions |#1| and |#2| allow us to treat
+%   the three data structures in a unified way:
 %   \begin{itemize}
 %   \item for sequences, they are \cs{exp_not:N} \cs{__seq_item:n},
 %     expanding to the \cs{__seq_item:n} separator, as expected;
@@ -391,9 +512,11 @@
 %     braces.
 %   \end{itemize}
 %    \begin{macrocode}
+\cs_new:Npn \@@_toks:NN #1#2
+  { \@@_toks:NNw #1 #2 \l_@@_min_int ; }
 \cs_new:Npn \@@_toks:NNw #1#2#3 ;
   {
-    \if_int_compare:w #3 < \l_@@_length_int
+    \if_int_compare:w #3 < \l_@@_top_int
       #1 #2 { \tex_the:D \tex_toks:D #3 }
       \exp_after:wN \@@_toks:NNw \exp_after:wN #1 \exp_after:wN #2
       \__int_value:w \__int_eval:w #3 + \c_one \exp_after:wN ;
@@ -402,7 +525,7 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \subsection{Sorting itself}
+% \subsection{Merge sort}
 %
 % \begin{macro}[int]{\@@_level:}
 %   This function is called once blocks of size \cs{l_@@_block_int}
@@ -414,9 +537,9 @@
 \cs_new_protected:Npn \@@_level:
   {
     \if_int_compare:w \l_@@_block_int < \l_@@_length_int
-      \l_@@_end_int \c_zero
+      \l_@@_end_int \l_@@_min_int
       \@@_merge_blocks:
-      \tex_multiply:D \l_@@_block_int \c_two
+      \tex_advance:D \l_@@_block_int \l_@@_block_int
       \exp_after:wN \@@_level:
     \fi:
   }
@@ -427,14 +550,14 @@
 %   This function is called to merge a pair of blocks, starting at
 %   the last value of \cs{l_@@_end_int} (end-point of the previous
 %   pair of blocks). If shifting by one block to the right we reach
-%   the end of the list, then this pass has ended: this end of the
-%   list is sorted already. Store the result of that shift in $A$,
+%   the end of the list, then this pass has ended: the end of the
+%   list is sorted already. Otherwise, store the result of that shift in $A$,
 %   which will index the first block starting from the top end.
-%   Then locate the end-point (maximum) of the upper block: shift
-%   \texttt{end} upwards by one more block, checking that we don't
-%   go beyond the length of the list. Copy this upper block of \tn{toks}
+%   Then locate the end-point (maximum) of the second block: shift
+%   \texttt{end} upwards by one more block, but keeping it
+%   $\leq\texttt{top}$. Copy this upper block of \tn{toks}
 %   registers in registers above \texttt{length}, indexed by $C$:
-%   this is covered by \cs{sort_copy_block:}. Once this is done we
+%   this is covered by \cs{@@_copy_block:}. Once this is done we
 %   are ready to do the actual merger using \cs{@@_merge_blocks_aux:},
 %   after shifting $A$, $B$ and $C$ so that they point to the largest
 %   index in their respective ranges rather than pointing just beyond
@@ -445,19 +568,19 @@
   {
     \l_@@_begin_int \l_@@_end_int
     \tex_advance:D \l_@@_end_int \l_@@_block_int
-    \if_int_compare:w \__int_eval:w \l_@@_end_int < \l_@@_length_int
+    \if_int_compare:w \l_@@_end_int < \l_@@_top_int
       \l_@@_A_int \l_@@_end_int
       \tex_advance:D \l_@@_end_int \l_@@_block_int
-      \if_int_compare:w \l_@@_end_int > \l_@@_length_int
-        \l_@@_end_int \l_@@_length_int
+      \if_int_compare:w \l_@@_end_int > \l_@@_top_int
+        \l_@@_end_int \l_@@_top_int
       \fi:
       \l_@@_B_int \l_@@_A_int
-      \l_@@_C_int \l_@@_length_int
-      \sort_copy_block:
-      \tex_advance:D \l_@@_A_int \c_minus_one
-      \tex_advance:D \l_@@_B_int \c_minus_one
-      \tex_advance:D \l_@@_C_int \c_minus_one
-      \@@_merge_blocks_aux:
+      \l_@@_C_int \l_@@_top_int
+      \@@_copy_block:
+      \tex_advance:D \l_@@_A_int - \c_one
+      \tex_advance:D \l_@@_B_int - \c_one
+      \tex_advance:D \l_@@_C_int - \c_one
+      \exp_after:wN \@@_merge_blocks_aux:
       \exp_after:wN \@@_merge_blocks:
     \fi:
   }
@@ -464,14 +587,14 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}[int]{\sort_copy_block:}
+% \begin{macro}[int]{\@@_copy_block:}
 %   We wish to store a copy of the \enquote{upper} block of
 %   \tn{toks} registers, ranging between the initial value of
 %   \cs{l_@@_B_int} (included) and \cs{l_@@_end_int}
 %   (excluded) into a new range starting at the initial value
-%   of \cs{l_@@_C_int}, namely \cs{l_@@_length_int}.
+%   of \cs{l_@@_C_int}, namely \cs{l_@@_top_int}.
 %    \begin{macrocode}
-\cs_new_protected:Npn \sort_copy_block:
+\cs_new_protected:Npn \@@_copy_block:
   {
     \tex_toks:D \l_@@_C_int \tex_toks:D \l_@@_B_int
     \tex_advance:D \l_@@_C_int \c_one
@@ -479,7 +602,7 @@
     \if_int_compare:w \l_@@_B_int = \l_@@_end_int
       \use_i:nn
     \fi:
-    \sort_copy_block:
+    \@@_copy_block:
   }
 %    \end{macrocode}
 % \end{macro}
@@ -487,7 +610,7 @@
 % \begin{macro}[aux]{\@@_merge_blocks_aux:}
 %   At this stage, the first block starts at \cs{l_@@_begin_int},
 %   and ends at \cs{l_@@_A_int}, and the second block starts at
-%   \cs{l_@@_length_int} and ends at \cs{l_@@_C_int}. The result
+%   \cs{l_@@_top_int} and ends at \cs{l_@@_C_int}. The result
 %   of the merger is stored at positions indexed by \cs{l_@@_B_int},
 %   which starts at $\cs{l_@@_end_int}-1$ and decreases down to
 %   \cs{l_@@_begin_int}, covering the full range of the two blocks.
@@ -500,16 +623,48 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_merge_blocks_aux:
   {
-    \exp_after:wN \sort_compare:nn \exp_after:wN
+    \exp_after:wN \@@_compare:nn \exp_after:wN
       { \tex_the:D \tex_toks:D \exp_after:wN \l_@@_A_int \exp_after:wN }
       \exp_after:wN { \tex_the:D \tex_toks:D \l_@@_C_int }
+    \prg_do_nothing:
+    \@@_return_mark:N
+    \@@_return_mark:N
+    \@@_return_none_error:
   }
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}[aux]{\sort_ordered:}
+%
+% \begin{macro}{\sort_ordered:, \sort_reversed:}
+% \begin{macro}[aux]{\@@_return_mark:N}
+% \begin{macro}[aux]{\@@_return_none_error:, \@@_return_two_error:w}
+%   The marker removes one token.  Each comparison should call
+%   \cs{sort_ordered:} or \cs{sort_reversed:} exactly
+%   once.  If neither is called, \cs{@@_return_none_error:} is called.
+%    \begin{macrocode}
+\cs_new_protected:Npn \sort_ordered: #1 \@@_return_mark:N
+  { #1 \@@_return_mark:N \@@_return_two_error:w \@@_ordered: }
+\cs_new_protected:Npn \sort_reversed: #1 \@@_return_mark:N
+  { #1 \@@_return_mark:N \@@_return_two_error:w \@@_return_reversed: }
+\cs_new_protected:Npn \@@_return_mark:N #1 { }
+\cs_new_protected:Npn \@@_return_none_error:
+  {
+    \__msg_kernel_error:nnxx { sort } { return-none }
+      { \tex_the:D \tex_toks:D \l_@@_A_int }
+      { \tex_the:D \tex_toks:D \l_@@_C_int }
+    \@@_ordered:
+  }
+\cs_new_protected:Npn \@@_return_two_error:w
+    #1 \@@_return_none_error:
+  { \__msg_kernel_error:nn { sort } { return-two } }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[aux]{\@@_ordered:}
 %   If the comparison function returns \texttt{ordered},
-%   then the second argument fed to \cs{sort_compare:nn}
+%   then the second argument fed to \cs{@@_compare:nn}
 %   should remain to the right of the other one. Since
 %   we build the merger starting from the right, we copy
 %   that \tn{toks} register into the allotted range, then
@@ -516,15 +671,15 @@
 %   shift the pointers $B$ and $C$, and go on to do one
 %   more step in the merger, unless the second block has
 %   been exhausted: then the remainder of the first block
-%   is already in the correct register and we are done
+%   is already in the correct registers and we are done
 %   with merging those two blocks.
 %    \begin{macrocode}
-\cs_new_protected:Npn \sort_ordered:
+\cs_new_protected:Npn \@@_ordered:
   {
     \tex_toks:D \l_@@_B_int \tex_toks:D \l_@@_C_int
-    \tex_advance:D \l_@@_B_int \c_minus_one
-    \tex_advance:D \l_@@_C_int \c_minus_one
-    \if_int_compare:w \l_@@_C_int < \l_@@_length_int
+    \tex_advance:D \l_@@_B_int - \c_one
+    \tex_advance:D \l_@@_C_int - \c_one
+    \if_int_compare:w \l_@@_C_int < \l_@@_top_int
       \use_i:nn
     \fi:
     \@@_merge_blocks_aux:
@@ -531,8 +686,9 @@
   }
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 %
-% \begin{macro}[aux]{\sort_reversed:}
+% \begin{macro}[aux]{\@@_return_reversed:}
 %   If the comparison function returns \texttt{reversed},
 %   then the next item to add to the merger is the first
 %   argument, contents of the \tn{toks} register $A$.
@@ -540,14 +696,14 @@
 %   go for one more step for the merger, unless the left
 %   block was exhausted ($A$ goes below the threshold).
 %   In that case, all remaining \tn{toks} registers in
-%   the second block, indexed by $C$, should be copied
-%   to the merger (see \cs{@@_merge_blocks_end:}).
+%   the second block, indexed by $C$, are copied
+%   to the merger by \cs{@@_merge_blocks_end:}.
 %    \begin{macrocode}
-\cs_new_protected:Npn \sort_reversed:
+\cs_new_protected:Npn \@@_return_reversed:
   {
     \tex_toks:D \l_@@_B_int \tex_toks:D \l_@@_A_int
-    \tex_advance:D \l_@@_B_int \c_minus_one
-    \tex_advance:D \l_@@_A_int \c_minus_one
+    \tex_advance:D \l_@@_B_int - \c_one
+    \tex_advance:D \l_@@_A_int - \c_one
     \if_int_compare:w \l_@@_A_int < \l_@@_begin_int
       \@@_merge_blocks_end: \use_i:nn
     \fi:
@@ -561,13 +717,13 @@
 %   in the block indexed by $C$ to the merger indexed by $B$.
 %   The end can equally be detected by checking when $B$ reaches
 %   the threshold \texttt{begin}, or when $C$ reaches
-%   \texttt{length}.
+%   \texttt{top}.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_merge_blocks_end:
   {
     \tex_toks:D \l_@@_B_int \tex_toks:D \l_@@_C_int
-    \tex_advance:D \l_@@_B_int \c_minus_one
-    \tex_advance:D \l_@@_C_int \c_minus_one
+    \tex_advance:D \l_@@_B_int - \c_one
+    \tex_advance:D \l_@@_C_int - \c_one
     \if_int_compare:w \l_@@_B_int < \l_@@_begin_int
       \use_i:nn
     \fi:
@@ -586,8 +742,8 @@
 %
 % A prototypical version of expandable quicksort is as follows.  If the
 % argument has no item, return nothing, otherwise partition, using the
-% first item as a pivot (argument |#4| of |\__sort:nnNnn|).  The
-% arguments of |\__sort:nnNnn| are 1.~items less than |#4|, 2.~items
+% first item as a pivot (argument |#4| of \cs{@@:nnNnn}).  The
+% arguments of \cs{@@:nnNnn} are 1.~items less than |#4|, 2.~items
 % greater or equal to |#4|, 3.~comparison, 4.~pivot, 5.~next item to
 % test.  If |#5| is the tail of the list, call \cs{tl_sort:nN} on |#1|
 % and on |#2|, placing |#4| in between; |\use:ff| expands the parts to
@@ -617,13 +773,13 @@
 % There are quite a few optimizations available here: the code below is
 % less legible, but more than twice as fast.
 %
-% In the simple version of the code, |\__sort:nnNnn| is called
+% In the simple version of the code, \cs{@@:nnNnn} is called
 % \(O(n\ln n)\) times on average (the number of comparisons required by
 % the quicksort algorithm).  Hence most of our focus will be on
 % optimizing that function.
 %
 % The first speed up is to avoid testing for the end of the list at
-% every call to |\__sort:nnNnn|.  For this, the list is prepared by
+% every call to \cs{@@:nnNnn}.  For this, the list is prepared by
 % changing each \meta{item} of the original token list into
 % \meta{command} \Arg{item}, just like sequences are stored.  We arrange
 % things such that the \meta{command} is the \meta{conditional} provided
@@ -630,21 +786,21 @@
 % by the user: the loop over the \meta{prepared tokens} then looks like
 % \begin{quote}
 %   \ttfamily
-%   \cs{cs_new:Npn}~|\__sort_loop:wNn|~\ldots{}~|#6#7|\\
+%   \cs{cs_new:Npn}~\cs{@@_loop:wNn}~\ldots{}~|#6#7|\\
 %   ~~|{|\\
 %   ~~~~|#6|~\Arg{pivot}~|{#7}|~\meta{loop big}~\meta{loop small}\\
 %   ~~~~~~\meta{extra arguments}\\
 %   ~~|}|\\
-%   |\__sort_loop:wNn|~\ldots{}~\meta{prepared tokens}\\
+%   \cs{@@_loop:wNn}~\ldots{}~\meta{prepared tokens}\\
 %   ~~\meta{end-loop}~|{}|~|\q_stop|
 % \end{quote}
 % In this example, which matches the structure of
-% \cs{__sort_quick_split_i:NnnnnNn} and a few other functions below, the
-% |\__sort_loop:wNn| auxiliary normally receives the user's
+% \cs{@@_quick_split_i:NnnnnNn} and a few other functions below, the
+% \cs{@@_loop:wNn} auxiliary normally receives the user's
 % \meta{conditional} as~|#6| and an \meta{item} as~|#7|.  This is
 % compared to the \meta{pivot} (the argument~|#5|, not shown here), and
 % the \meta{conditional} leaves the \meta{loop big} or \meta{loop small}
-% auxiliary, which both have the same form as |\__sort_loop:wNn|,
+% auxiliary, which both have the same form as \cs{@@_loop:wNn},
 % receiving the next pair \meta{conditional} \Arg{item} as |#6|
 % and~|#7|.  At the end, |#6| is the \meta{end-loop} function, which
 % terminates the loop.
@@ -651,7 +807,7 @@
 %
 % The second speed up is to minimize the duplicated tokens between the
 % \texttt{true} and \texttt{false} branches of the conditional.  For
-% this, we introduce two versions of |\__sort:nnNnn|, which receive
+% this, we introduce two versions of \cs{@@:nnNnn}, which receive
 % the new item as~|#1| and place it either into the list~|#2| of items
 % less than the pivot~|#4| or into the list~|#3| of items greater or
 % equal to the pivot.
@@ -667,7 +823,7 @@
 %       {#6} {#2} { #3 {#1} } {#4}
 %   }
 % \end{verbatim}
-% Note that the two functions have the form of |\__sort_loop:wNn| above,
+% Note that the two functions have the form of \cs{@@_loop:wNn} above,
 % receiving as~|#5| the conditional or a function to end the loop.  In
 % fact, the lists~|#2| and~|#3| must be made of pairs \meta{conditional}
 % \Arg{item}, so we have to replace~|{#6}| above by |{|~|#5|~|{#6}|~|}|,
@@ -675,14 +831,14 @@
 % all argument numbers are shifted compared to this code.
 %
 % The third speed up is to avoid |\use:ff| using a continuation-passing
-% style: \cs{__sort_quick_split:NnNn} expects a list followed by
+% style: \cs{@@_quick_split:NnNn} expects a list followed by
 % \cs{q_mark} \Arg{code}, and expands to \meta{code} \meta{sorted list}.
 % Sorting the two parts of the list around the pivot is done with
 % \begin{quote}
 %   \ttfamily
-%   \cs{__sort_quick_split:NnNn} |#2| \ldots{} \cs{q_mark}\\
+%   \cs{@@_quick_split:NnNn} |#2| \ldots{} \cs{q_mark}\\
 %   ~~|{|\\
-%   ~~~~\cs{__sort_quick_split:NnNn} |#1| \ldots{} \cs{q_mark} \Arg{code}\\
+%   ~~~~\cs{@@_quick_split:NnNn} |#1| \ldots{} \cs{q_mark} \Arg{code}\\
 %   ~~~~\Arg{pivot}\\
 %   ~~|}|
 % \end{quote}
@@ -692,10 +848,10 @@
 %
 % The fourth speed up is avoid the recursive call to \cs{tl_sort:nN}
 % with an empty first argument.  For this, we introduce functions
-% similar to the |\__sort_i:nnnnNn| of the last example, but aware of
+% similar to the \cs{@@_i:nnnnNn} of the last example, but aware of
 % whether the list of \meta{conditional} \Arg{item} read so far that are
 % less than the pivot, and the list of those greater or equal, are empty
-% or not: see \cs{__sort_quick_split:NnNn} and functions defined below.
+% or not: see \cs{@@_quick_split:NnNn} and functions defined below.
 % Knowing whether the lists are empty or not is useless if we do not use
 % distinct ending codes as appropriate.  The splitting auxiliaries
 % communicate to the \meta{end-loop} function (that is initially placed
@@ -724,9 +880,9 @@
 % \begin{macro}[EXP]{\tl_sort:nN}
 % \begin{macro}[aux, EXP]
 %   {
-%     \__sort_quick_prepare:Nnnn,
-%     \__sort_quick_prepare_end:NNNnw,
-%     \__sort_quick_cleanup:w
+%     \@@_quick_prepare:Nnnn,
+%     \@@_quick_prepare_end:NNNnw,
+%     \@@_quick_cleanup:w
 %   }
 %   The code within the \cs{exp_not:f} sorts the list, leaving in most
 %   cases a leading \cs{exp_not:f}, which stops the expansion, letting
@@ -738,7 +894,7 @@
 %   item as~|#3|, and the item after that as~|#4|.  The loop ends
 %   when~|#4| contains \cs{__prg_break_point:}, then the
 %   \texttt{prepare_end} auxiliary finds the prepared token list
-%   as~|#4|.  The scene is then set up for \cs{__sort_quick_split:NnNn},
+%   as~|#4|.  The scene is then set up for \cs{@@_quick_split:NnNn},
 %   which will sort the prepared list and perform the post action placed
 %   after \cs{q_mark}, namely removing the trailing \cs{s__stop} and
 %   \cs{q_stop} and leaving \cs{exp_stop_f:} to stop
@@ -750,25 +906,25 @@
       {
         \tl_if_blank:nF {#1}
           {
-            \__sort_quick_prepare:Nnnn #2 { } { }
+            \@@_quick_prepare:Nnnn #2 { } { }
               #1
-              { \__prg_break_point: \__sort_quick_prepare_end:NNNnw }
+              { \__prg_break_point: \@@_quick_prepare_end:NNNnw }
             \q_stop
           }
       }
   }
-\cs_new:Npn \__sort_quick_prepare:Nnnn #1#2#3#4
+\cs_new:Npn \@@_quick_prepare:Nnnn #1#2#3#4
   {
     \__prg_break: #4 \__prg_break_point:
-    \__sort_quick_prepare:Nnnn #1 { #2 #3 } { #1 {#4} }
+    \@@_quick_prepare:Nnnn #1 { #2 #3 } { #1 {#4} }
   }
-\cs_new:Npn \__sort_quick_prepare_end:NNNnw #1#2#3#4#5 \q_stop
+\cs_new:Npn \@@_quick_prepare_end:NNNnw #1#2#3#4#5 \q_stop
   {
-    \__sort_quick_split:NnNn #4 \__sort_quick_end:nnTFNn { }
-    \q_mark { \__sort_quick_cleanup:w \exp_stop_f: }
+    \@@_quick_split:NnNn #4 \@@_quick_end:nnTFNn { }
+    \q_mark { \@@_quick_cleanup:w \exp_stop_f: }
     \s__stop \q_stop
   }
-\cs_new:Npn \__sort_quick_cleanup:w #1 \s__stop \q_stop {#1}
+\cs_new:Npn \@@_quick_cleanup:w #1 \s__stop \q_stop {#1}
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -775,11 +931,11 @@
 %
 % \begin{macro}[EXP, aux]
 %   {
-%     \__sort_quick_split:NnNn,
-%     \__sort_quick_only_i:NnnnnNn,
-%     \__sort_quick_only_ii:NnnnnNn,
-%     \__sort_quick_split_i:NnnnnNn,
-%     \__sort_quick_split_ii:NnnnnNn
+%     \@@_quick_split:NnNn,
+%     \@@_quick_only_i:NnnnnNn,
+%     \@@_quick_only_ii:NnnnnNn,
+%     \@@_quick_split_i:NnnnnNn,
+%     \@@_quick_split_ii:NnnnnNn
 %   }
 %   The \texttt{only_i}, \texttt{only_ii}, \texttt{split_i} and
 %   \texttt{split_ii} auxiliaries receive a useless first argument, the
@@ -788,7 +944,7 @@
 %   items~|#4|, the pivot~|#5|, a \meta{function}~|#6|, and an
 %   item~|#7|.  The \meta{function} is the user's \meta{conditional}
 %   except at the end of the list where it is
-%   \cs{__sort_quick_end:nnTFNn}.  The comparison is applied to the
+%   \cs{@@_quick_end:nnTFNn}.  The comparison is applied to the
 %   \meta{pivot} and the \meta{item}, and calls the \texttt{only_i} or
 %   \texttt{split_i} auxiliaries if the \meta{item} is smaller, and the
 %   \texttt{only_ii} or \texttt{split_ii} auxiliaries otherwise.  In
@@ -802,34 +958,34 @@
 %   argument is always the user's \meta{conditional} rather than an
 %   ending function.
 %    \begin{macrocode}
-\cs_new:Npn \__sort_quick_split:NnNn #1#2#3#4
+\cs_new:Npn \@@_quick_split:NnNn #1#2#3#4
   {
-    #3 {#2} {#4} \__sort_quick_only_ii:NnnnnNn \__sort_quick_only_i:NnnnnNn
-      \__sort_quick_single_end:nnnwnw
+    #3 {#2} {#4} \@@_quick_only_ii:NnnnnNn \@@_quick_only_i:NnnnnNn
+      \@@_quick_single_end:nnnwnw
       { #3 {#4} } { } { } {#2}
   }
-\cs_new:Npn \__sort_quick_only_i:NnnnnNn #1#2#3#4#5#6#7
+\cs_new:Npn \@@_quick_only_i:NnnnnNn #1#2#3#4#5#6#7
   {
-    #6 {#5} {#7} \__sort_quick_split_ii:NnnnnNn \__sort_quick_only_i:NnnnnNn
-      \__sort_quick_only_i_end:nnnwnw
+    #6 {#5} {#7} \@@_quick_split_ii:NnnnnNn \@@_quick_only_i:NnnnnNn
+      \@@_quick_only_i_end:nnnwnw
       { #6 {#7} } { #3 #2 } { } {#5}
   }
-\cs_new:Npn \__sort_quick_only_ii:NnnnnNn #1#2#3#4#5#6#7
+\cs_new:Npn \@@_quick_only_ii:NnnnnNn #1#2#3#4#5#6#7
   {
-    #6 {#5} {#7} \__sort_quick_only_ii:NnnnnNn \__sort_quick_split_i:NnnnnNn
-      \__sort_quick_only_ii_end:nnnwnw
+    #6 {#5} {#7} \@@_quick_only_ii:NnnnnNn \@@_quick_split_i:NnnnnNn
+      \@@_quick_only_ii_end:nnnwnw
       { #6 {#7} } { } { #4 #2 } {#5}
   }
-\cs_new:Npn \__sort_quick_split_i:NnnnnNn #1#2#3#4#5#6#7
+\cs_new:Npn \@@_quick_split_i:NnnnnNn #1#2#3#4#5#6#7
   {
-    #6 {#5} {#7} \__sort_quick_split_ii:NnnnnNn \__sort_quick_split_i:NnnnnNn
-      \__sort_quick_split_end:nnnwnw
+    #6 {#5} {#7} \@@_quick_split_ii:NnnnnNn \@@_quick_split_i:NnnnnNn
+      \@@_quick_split_end:nnnwnw
       { #6 {#7} } { #3 #2 } {#4} {#5}
   }
-\cs_new:Npn \__sort_quick_split_ii:NnnnnNn #1#2#3#4#5#6#7
+\cs_new:Npn \@@_quick_split_ii:NnnnnNn #1#2#3#4#5#6#7
   {
-    #6 {#5} {#7} \__sort_quick_split_ii:NnnnnNn \__sort_quick_split_i:NnnnnNn
-      \__sort_quick_split_end:nnnwnw
+    #6 {#5} {#7} \@@_quick_split_ii:NnnnnNn \@@_quick_split_i:NnnnnNn
+      \@@_quick_split_end:nnnwnw
       { #6 {#7} } {#3} { #4 #2 } {#5}
   }
 %    \end{macrocode}
@@ -837,13 +993,13 @@
 %
 % \begin{macro}[EXP, aux]
 %   {
-%     \__sort_quick_end:nnTFNn,
-%     \__sort_quick_single_end:nnnwnw,
-%     \__sort_quick_only_i_end:nnnwnw,
-%     \__sort_quick_only_ii_end:nnnwnw,
-%     \__sort_quick_split_end:nnnwnw,
+%     \@@_quick_end:nnTFNn,
+%     \@@_quick_single_end:nnnwnw,
+%     \@@_quick_only_i_end:nnnwnw,
+%     \@@_quick_only_ii_end:nnnwnw,
+%     \@@_quick_split_end:nnnwnw,
 %   }
-%   The \cs{__sort_quick_end:nnTFNn} appears instead of the user's
+%   The \cs{@@_quick_end:nnTFNn} appears instead of the user's
 %   conditional, and receives as its arguments the pivot~|#1|, a fake
 %   item~|#2|, a \texttt{true} and a \texttt{false} branches |#3|
 %   and~|#4|, followed by an ending function~|#5| (one of the four
@@ -864,28 +1020,28 @@
 %   the pivot are sorted, then items less than the pivot, and the
 %   continuations are done in such a way to place the pivot in between.
 %    \begin{macrocode}
-\cs_new:Npn \__sort_quick_end:nnTFNn #1#2#3#4#5#6 {#5}
-\cs_new:Npn \__sort_quick_single_end:nnnwnw #1#2#3#4 \q_mark #5#6 \q_stop
+\cs_new:Npn \@@_quick_end:nnTFNn #1#2#3#4#5#6 {#5}
+\cs_new:Npn \@@_quick_single_end:nnnwnw #1#2#3#4 \q_mark #5#6 \q_stop
   { #5 {#3} #6 \q_stop }
-\cs_new:Npn \__sort_quick_only_i_end:nnnwnw #1#2#3#4 \q_mark #5#6 \q_stop
+\cs_new:Npn \@@_quick_only_i_end:nnnwnw #1#2#3#4 \q_mark #5#6 \q_stop
   {
-    \__sort_quick_split:NnNn #1
-      \__sort_quick_end:nnTFNn { } \q_mark {#5}
+    \@@_quick_split:NnNn #1
+      \@@_quick_end:nnTFNn { } \q_mark {#5}
     {#3}
     #6 \q_stop
   }
-\cs_new:Npn \__sort_quick_only_ii_end:nnnwnw #1#2#3#4 \q_mark #5#6 \q_stop
+\cs_new:Npn \@@_quick_only_ii_end:nnnwnw #1#2#3#4 \q_mark #5#6 \q_stop
   {
-    \__sort_quick_split:NnNn #2
-      \__sort_quick_end:nnTFNn { } \q_mark { #5 {#3} }
+    \@@_quick_split:NnNn #2
+      \@@_quick_end:nnTFNn { } \q_mark { #5 {#3} }
     #6 \q_stop
   }
-\cs_new:Npn \__sort_quick_split_end:nnnwnw #1#2#3#4 \q_mark #5#6 \q_stop
+\cs_new:Npn \@@_quick_split_end:nnnwnw #1#2#3#4 \q_mark #5#6 \q_stop
   {
-    \__sort_quick_split:NnNn #2 \__sort_quick_end:nnTFNn { } \q_mark
+    \@@_quick_split:NnNn #2 \@@_quick_end:nnTFNn { } \q_mark
       {
-        \__sort_quick_split:NnNn #1
-          \__sort_quick_end:nnTFNn { } \q_mark {#5}
+        \@@_quick_split:NnNn #1
+          \@@_quick_end:nnTFNn { } \q_mark {#5}
         {#3}
       }
     #6 \q_stop
@@ -895,7 +1051,50 @@
 %
 % \subsection{Messages}
 %
-% \begin{macro}{\@@_too_long_error:NNw}
+% \begin{macro}[aux]{\@@_error:}
+%   Bailing out of the sorting code is a bit tricky.  It may not be safe
+%   to use a delimited argument, so instead we redefine many
+%   \pkg{l3sort} commands to be trivial, with \cs{@@_level:} getting rid
+%   of the final assignment.  This error recovery won't work in a group.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_error:
+  {
+    \cs_set_eq:NN \@@_merge_blocks_aux: \prg_do_nothing:
+    \cs_set_eq:NN \@@_merge_blocks: \prg_do_nothing:
+    \cs_set_protected:Npn \@@_level: \use:x ##1 { \group_end: }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[aux]{\@@_disable_toksdef:, \@@_disabled_toksdef:n}
+%   While sorting, \tn{toksdef} is locally disabled to prevent users
+%   from using \tn{newtoks} or similar commands in their comparison
+%   code: the \tn{toks} registers that would be assigned are in use by
+%   \pkg{l3sort}.  In format mode, none of this is needed since there is
+%   no \tn{toks} allocator.
+%    \begin{macrocode}
+%<*package>
+\cs_new_protected:Npn \@@_disable_toksdef:
+  { \cs_set_eq:NN \toksdef \@@_disabled_toksdef:n }
+\cs_new_protected:Npn \@@_disabled_toksdef:n #1
+  {
+    \__msg_kernel_error:nnx { sort } { toksdef }
+      { \token_to_str:N #1 }
+    \@@_error:
+    \tex_toksdef:D #1
+  }
+\__msg_kernel_new:nnnn { sort } { toksdef }
+  { Allocation~of~\iow_char:N\\toks~registers~impossible~while~sorting. }
+  {
+    The~comparison~code~used~for~sorting~a~list~has~attempted~to~
+    define~#1~as~a~new~\iow_char:N\\toks~register~using~\iow_char:N\\newtoks~
+    or~a~similar~command.~The~list~will~not~be~sorted.
+  }
+%</package>
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[aux]{\@@_too_long_error:NNw}
 %   When there are too many items in a sequence, this is an error, and
 %   we clean up properly the mapping over items in the list: break using
 %   the type-specific breaking function |#1|.
@@ -903,20 +1102,43 @@
 \cs_new_protected:Npn \@@_too_long_error:NNw #1#2 \fi:
   {
     \fi:
-    \__msg_kernel_error:nnx { sort } { too-large } { \token_to_str:N #2 }
-    #1
+    \__msg_kernel_error:nnxxx { sort } { too-large }
+      { \token_to_str:N #2 }
+      { \int_eval:n { \l_@@_true_max_int - \l_@@_min_int } }
+      { \int_eval:n { \l_@@_top_int - \l_@@_min_int } }
+    #1 \@@_error:
   }
 \__msg_kernel_new:nnnn { sort } { too-large }
   { The~list~#1~is~too~long~to~be~sorted~by~TeX. }
   {
-    TeX~has~\int_eval:n { \c_max_register_int + 1 }~registers~available:~
-    this~only~allows~to~sorts~with~up~to~\int_use:N \c_@@_max_length_int
-    \ items.~All~extra~items~will~be~ignored.
+    TeX~has~#2~toks~registers~still~available:~
+    this~only~allows~to~sort~with~up~to~#3~
+    items.~All~extra~items~will~be~deleted.
   }
 %    \end{macrocode}
 % \end{macro}
 %
 %    \begin{macrocode}
+\__msg_kernel_new:nnnn { sort } { return-none }
+  { The~comparison~code~did~not~return. }
+  {
+    When~sorting~a~list,~the~code~to~compare~items~#1~and~#2~
+    did~not~call~
+    \iow_char:N\\sort_ordered: ~nor~
+    \iow_char:N\\sort_reversed: .~
+    Exactly~one~of~these~should~be~called.
+  }
+\__msg_kernel_new:nnnn { sort } { return-two }
+  { The~comparison~code~returned~multiple~times. }
+  {
+    When~sorting~a~list,~the~code~to~compare~items~called~
+    \iow_char:N\\sort_ordered: ~or~
+    \iow_char:N\\sort_reversed: ~multiple~times.~
+    Exactly~one~of~these~should~be~called.
+  }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
 %</initex|package>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.ins	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3sort/l3sort.ins	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,6 +1,6 @@
 \iffalse meta-comment
 
-File l3sort.ins Copyright (C) 2012 The LaTeX3 Project
+File l3sort.ins Copyright (C) 2012,2106 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
@@ -12,8 +12,19 @@
 This file is part of the "l3experimental bundle" (The Work in LPPL)
 and all files in that bundle must be distributed together.
 
-The released version of this bundle is available from CTAN.
+-----------------------------------------------------------------------
 
+The development version of the bundle can be found at
+
+   https://github.com/latex3/latex3
+
+for those people who are interested.
+
+-----------------------------------------------------------------------
+
+Any modification of this file should ensure that the copyright and
+license information is placed in the derived files.
+
 \fi
 
 \input l3docstrip.tex
@@ -21,13 +32,18 @@
 
 \preamble
 
-EXPERIMENTAL CODE
+Copyright (C) 2012-2016 The LaTeX3 Project
 
-Do not distribute this file without also distributing the
-source files specified above.
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
 
-Do not distribute a modified version of this file.
+   http://www.latex-project.org/lppl.txt
 
+This file is part of the "l3experimental bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
 \endpreamble
 % stop docstrip adding \endinput
 \postamble

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3flag.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3flag.dtx Copyright (C) 2011-2012,2014-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/11/21]
-%<package>\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+%<package>\@ifpackagelater{expl3}{2017/01/28}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{l3flag}{Support package l3kernel too old}
@@ -49,7 +36,7 @@
 %<package>      }%
 %<package>    \endinput
 %<package>  }
-\GetIdInfo$Id: l3flag.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3flag.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental flags}
 %</driver|package>
 %<*driver>

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3regex.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3regex.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/11/21]
-%<package>\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+%<package>\@ifpackagelater{expl3}{2017/01/28}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{l3regex}{Support package l3kernel too old}
@@ -49,7 +36,7 @@
 %<package>      }%
 %<package>    \endinput
 %<package>  }
-\GetIdInfo$Id: l3regex.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3regex.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental regular expressions}
 %</driver|package>
 %<*driver>
@@ -3812,7 +3799,7 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_group_submatches:nNN #1#2#3
   {
-    \if_int_compare:w #1 > \c_minus_one
+    \if_int_compare:w #1 > - \c_one
       \@@_toks_put_left:Nx #2 { \@@_action_submatch:n { #1 < } }
       \@@_toks_put_left:Nx #3 { \@@_action_submatch:n { #1 > } }
     \fi:
@@ -5578,7 +5565,7 @@
         }
       \prop_map_inline:Nn \l_@@_success_submatches_prop
         {
-          \if_int_compare:w ##1 \c_minus_one
+          \if_int_compare:w ##1 - \c_one
             \exp_after:wN \@@_extract_e:wn \__int_value:w
           \else:
             \exp_after:wN \@@_extract_b:wn \__int_value:w

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-convert.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,41 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 \RequirePackage{expl3}
-\GetIdInfo$Id: l3str-convert.dtx 6699 2016-09-07 16:03:15Z bruno $
+\GetIdInfo$Id: l3str-convert.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental string encoding conversions}
 %</driver|package>
 %<*driver>
@@ -1949,7 +1936,7 @@
 %   step: use the quotient of |#1| by $64$, and |#1| as arguments for
 %   the looping auxiliary, and output the continuation byte
 %   corresponding to the remainder $|#2|-64|#1|+128$. The bizarre
-%   construction |\c_minus_one + \c_zero *| removes the spurious initial
+%   construction |- \c_one + \c_zero *| removes the spurious initial
 %   continuation byte (better methods welcome).
 %    \begin{macrocode}
 \cs_new_protected:cpn { @@_convert_encode_utf8: }
@@ -1956,7 +1943,7 @@
   { \@@_convert_gmap_internal:N \@@_encode_utf_viii_char:n }
 \cs_new:Npn \@@_encode_utf_viii_char:n #1
   {
-    \@@_encode_utf_viii_loop:wwnnw #1 ; \c_minus_one + \c_zero * ;
+    \@@_encode_utf_viii_loop:wwnnw #1 ; - \c_one + \c_zero * ;
       { 128 } { \c_zero }
       {  32 } {     192 }
       {  16 } {     224 }

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,41 +1,28 @@
 % \iffalse meta-comment
 %
-%% File: l3str-format.dtx Copyright (C) 2012-2013,2015 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% File: l3str-format.dtx Copyright (C) 2012-2013,2015,2016 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 \RequirePackage{expl3}
-\GetIdInfo$Id: l3str-format.dtx 6589 2016-06-13 11:11:55Z joseph $
+\GetIdInfo$Id: l3str-format.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental string formatting}
 %</driver|package>
 %<*driver>

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3str.ins	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,6 +1,6 @@
 \iffalse meta-comment
 
-File l3str.ins Copyright (C) 2011, 2013, 2015 The LaTeX3 Project
+File l3str.ins Copyright (C) 2011,2013,2015,2016 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
@@ -12,8 +12,19 @@
 This file is part of the "l3experimental bundle" (The Work in LPPL)
 and all files in that bundle must be distributed together.
 
-The released version of this bundle is available from CTAN.
+-----------------------------------------------------------------------
 
+The development version of the bundle can be found at
+
+   https://github.com/latex3/latex3
+
+for those people who are interested.
+
+-----------------------------------------------------------------------
+
+Any modification of this file should ensure that the copyright and
+license information is placed in the derived files.
+
 \fi
 
 \input l3docstrip.tex
@@ -21,13 +32,18 @@
 
 \preamble
 
-EXPERIMENTAL CODE
+Copyright (C) 2011-2016 The LaTeX3 Project
 
-Do not distribute this file without also distributing the
-source files specified above.
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
 
-Do not distribute a modified version of this file.
+   http://www.latex-project.org/lppl.txt
 
+This file is part of the "l3experimental bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
 \endpreamble
 % stop docstrip adding \endinput
 \postamble

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-analysis.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-analysis.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,41 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3tl-analysis.dtx Copyright (C) 2011-2012,2015,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 \RequirePackage{expl3}
-\GetIdInfo$Id: l3tl-analysis.dtx 6589 2016-06-13 11:11:55Z joseph $
+\GetIdInfo$Id: l3tl-analysis.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental token lists analysis}
 %</driver|package>
 %<*driver>
@@ -412,7 +399,7 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_setup:n #1
   {
-    \int_set_eq:NN \tex_escapechar:D \c_minus_one
+    \int_set:Nn \tex_escapechar:D { - \c_one }
     \exp_after:wN \@@_disable_loop:N
       \tl_to_str:n {#1} { ~ } { ? ~ \__prg_break: }
     \__prg_break_point:
@@ -520,7 +507,7 @@
           \c_one
         \else:
           \if_catcode:w \exp_not:N \l_@@_token \c_group_end_token
-            \c_minus_one
+            - \c_one
           \else:
             \c_two
           \fi:
@@ -670,7 +657,7 @@
       = \l_@@_normal_int sp plus \l_@@_type_int sp \scan_stop:
     \int_incr:N \l_@@_index_int
     \int_zero:N \l_@@_normal_int
-    \if_int_compare:w \l_@@_nesting_int = \c_minus_one
+    \if_int_compare:w \l_@@_nesting_int = - \c_one
       \cs_set_eq:NN \@@_a_loop:w \scan_stop:
     \fi:
   }
@@ -815,7 +802,7 @@
     \exp_not:n { \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: }
     \exp_not:N \__int_value:w `#1 \s__tl
    \exp_not:N \exp_after:wN \exp_not:N \@@_b_normals:ww
-     \exp_not:N \__int_value:w \exp_not:N \__int_eval:w \c_minus_one +
+     \exp_not:N \__int_value:w \exp_not:N \__int_eval:w - \c_one +
   }
 %    \end{macrocode}
 % \end{macro}

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-build.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-build.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/l3str/l3tl-build.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3tl-build.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/11/21]
-%<package>\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+%<package>\@ifpackagelater{expl3}{2017/01/28}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{l3tl-build}{Support package l3kernel too old}
@@ -49,7 +36,7 @@
 %<package>      }%
 %<package>    \endinput
 %<package>  }
-\GetIdInfo$Id: l3tl-build.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3tl-build.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental token list construction}
 %</driver|package>
 %<*driver>

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
-%% File: xcoffins.dtx Copyright(C) 2010-2012,2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
+%% File: xcoffins.dtx Copyright(C) 2010-2012,2014,2016,2017 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 \RequirePackage{xparse}
-\GetIdInfo$Id: xcoffins.dtx 4728 2014-05-04 13:25:37Z joseph $
+\GetIdInfo$Id: xcoffins.dtx 6833 2017-01-28 20:01:31Z joseph $
   {L3 Experimental design-level coffins}
 %</driver|package>
 %<*driver>
@@ -715,20 +701,20 @@
 %    \begin{macrocode}
 \keys_define:nn { coffin }
   {
-    coffin1-hpole     .tl_set:N        = \l_@@_A_hpole_tl          ,
-    coffin1-hpole     .value_required:                                 ,
-    coffin1-vpole     .tl_set:N        = \l_@@_A_vpole_tl          ,
-    coffin1-vpole     .value_required:                                 ,
-    coffin2-hpole     .tl_set:N        = \l_@@_B_hpole_tl          ,
-    coffin2-hpole     .value_required:                                 ,
-    coffin2-vpole     .tl_set:N        = \l_@@_B_vpole_tl          ,
-    coffin2-vpole     .value_required:                                 ,
-    grow-bounding-box .bool_set:N      = \l_@@_bound_box_grow_bool ,
-    grow-bounding-box .default:n       = true                          ,
-    hoffset           .dim_set:N       = \l_@@_hoffset_dim         ,
-    hoffset           .value_required:                                 ,
-    voffset           .dim_set:N       = \l_@@_voffset_dim         ,
-    voffset           .value_required:
+    coffin1-hpole     .tl_set:N         = \l_@@_A_hpole_tl          ,
+    coffin1-hpole     .value_required:n = true                      ,
+    coffin1-vpole     .tl_set:N         = \l_@@_A_vpole_tl          ,
+    coffin1-vpole     .value_required:n = true                      ,
+    coffin2-hpole     .tl_set:N         = \l_@@_B_hpole_tl          ,
+    coffin2-hpole     .value_required:n = true                      ,
+    coffin2-vpole     .tl_set:N         = \l_@@_B_vpole_tl          ,
+    coffin2-vpole     .value_required:n = true                      ,
+    grow-bounding-box .bool_set:N       = \l_@@_bound_box_grow_bool ,
+    grow-bounding-box .default:n        = true                      ,
+    hoffset           .dim_set:N        = \l_@@_hoffset_dim         ,
+    hoffset           .value_required:n = true                      ,
+    voffset           .dim_set:N        = \l_@@_voffset_dim         ,
+    voffset           .value_required:n = true
   }
 \keys_set:nn { coffin }
   {

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.ins	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,6 +1,6 @@
 \iffalse meta-comment
 
-File xcoffins.ins Copyright (C) 2010,2011 The LaTeX3 Project
+File xcoffins.ins Copyright (C) 2010,2011,2016 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
@@ -12,8 +12,19 @@
 This file is part of the "l3experimental bundle" (The Work in LPPL)
 and all files in that bundle must be distributed together.
 
-The released version of this bundle is available from CTAN.
+-----------------------------------------------------------------------
 
+The development version of the bundle can be found at
+
+   https://github.com/latex3/latex3
+
+for those people who are interested.
+
+-----------------------------------------------------------------------
+
+Any modification of this file should ensure that the copyright and
+license information is placed in the derived files.
+
 \fi
 
 \input l3docstrip.tex
@@ -21,13 +32,18 @@
 
 \preamble
 
-EXPERIMENTAL CODE
+Copyright (C) 2010-2016 The LaTeX3 Project
 
-Do not distribute this file without also distributing the
-source files specified above.
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
 
-Do not distribute a modified version of this file.
+   http://www.latex-project.org/lppl.txt
 
+This file is part of the "l3experimental bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
 \endpreamble
 % stop docstrip adding \endinput
 \postamble

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -2,44 +2,30 @@
 %
 %% File: l3galley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
 %%                              (C) 2010-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/11/21]
-%<package>\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+%<package>\@ifpackagelater{expl3}{2017/01/28}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{l3galley}{Support package l3kernel too old}
@@ -51,7 +37,7 @@
 %<package>      }%
 %<package>    \endinput
 %<package>  }
-\GetIdInfo$Id: l3galley.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3galley.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental galley code}
 %</driver|package>
 %<*driver>
@@ -1949,11 +1935,8 @@
       {
         \seq_gset_eq:Nc \g_@@_tmpa_seq { g_@@_cutout_ #1 _seq }
         \seq_gset_eq:Nc \g_@@_tmpb_seq { l_@@_parshape_ #1 _indent_seq }
-        \tl_set:Nx \l_@@_tmp_tl
-          {
-            \seq_item:Nn \g_@@_tmpb_seq
-              { \seq_count:N \g_@@_tmpb_seq }
-          }
+        \seq_get_right:NNF \g_@@_tmpb_seq \l_@@_tmp_tl
+          { \tl_clear:N \l_@@_tmp_tl }
         \tl_if_empty:NT \l_@@_tmp_tl
          { \tl_set:Nn \l_@@_tmp_tl { 0pt } }
         \int_set:Nn \l_@@_tmp_int
@@ -1978,8 +1961,8 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_parshape_set_cutouts:N #1
   {
-    \tl_set:Nx \l_@@_tmp_tl
-      { \seq_item:Nn #1 { \seq_count:N #1 } }
+    \seq_get_right:NNF #1 \l_@@_tmp_tl
+      { \tl_clear:N \l_@@_tmp_tl }
     \tl_if_empty:NT \l_@@_tmp_tl
       { \tl_set:Nn \l_@@_tmp_tl { 0pt } }
     \prg_replicate:nn { \int_abs:n \l_@@_tmp_int }
@@ -2540,7 +2523,7 @@
   {
     \mode_if_vertical:T
       {
-        \int_compare:nNnT \@dbltopnum = \c_minus_one
+        \int_compare:nNnT \@dbltopnum = { - \c_one }
           {
             \dim_compare:nNnT \tex_pagetotal:D < \topskip
               { \tex_hbox:D { } }

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,29 @@
 % \iffalse
 %
 %% File: xgalley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
-%%                             (C) 2010-2012,2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
+%%                             (C) 2010-2012,2014,2106 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3experimental bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 \RequirePackage{xparse}
-\GetIdInfo$Id: xgalley.dtx 5375 2014-08-25 10:17:29Z joseph $
+\GetIdInfo$Id: xgalley.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental galley}
 %</driver|package>
 %<*driver>

Modified: trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.ins	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,6 +1,6 @@
 \iffalse meta-comment
 
-File xgalley.ins Copyright (C) 2010-2012 The LaTeX3 Project
+File xgalley.ins Copyright (C) 2010-2012,2016 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
@@ -12,8 +12,19 @@
 This file is part of the "l3experimental bundle" (The Work in LPPL)
 and all files in that bundle must be distributed together.
 
-The released version of this bundle is available from CTAN.
+-----------------------------------------------------------------------
 
+The development version of the bundle can be found at
+
+   https://github.com/latex3/latex3
+
+for those people who are interested.
+
+-----------------------------------------------------------------------
+
+Any modification of this file should ensure that the copyright and
+license information is placed in the derived files.
+
 \fi
 
 \input l3docstrip.tex
@@ -21,13 +32,18 @@
 
 \preamble
 
-EXPERIMENTAL CODE
+Copyright (C) 2010-2016 The LaTeX3 Project
 
-Do not distribute this file without also distributing the
-source files specified above.
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
 
-Do not distribute a modified version of this file.
+   http://www.latex-project.org/lppl.txt
 
+This file is part of the "l3experimental bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
 \endpreamble
 % stop docstrip adding \endinput
 \postamble

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: expl3.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|generic|package>
 \def\ExplFileName{expl3}%
 \def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2016/11/21}%
-\def\ExplFileVersion{6760}%
+\def\ExplFileDate{2017/01/28}%
+\def\ExplFileVersion{6834}%
 %</driver|generic|package>
 %<*driver>
 \documentclass[full]{l3doc}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3.ins	2017-01-29 22:34:57 UTC (rev 43088)
@@ -12,8 +12,19 @@
 This file is part of the "l3kernel bundle" (The Work in LPPL)
 and all files in that bundle must be distributed together.
 
-The released version of this bundle is available from CTAN.
+-----------------------------------------------------------------------
 
+The development version of the bundle can be found at
+
+   https://github.com/latex3/latex3
+
+for those people who are interested.
+
+-----------------------------------------------------------------------
+
+Any modification of this file should ensure that the copyright and
+license information is placed in the derived files.
+
 \fi
 
 \let\jobname\relax
@@ -22,13 +33,18 @@
 
 \preamble
 
-EXPERIMENTAL CODE
+Copyright (C) 1990-2016 The LaTeX3 Project
 
-Do not distribute this file without also distributing the
-source files specified above.
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
 
-Do not distribute a modified version of this file.
+   http://www.latex-project.org/lppl.txt
 
+This file is part of the "l3kernel bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
 \endpreamble
 % stop docstrip adding \endinput
 \postamble

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,41 +1,28 @@
 % \iffalse meta-comment
 %
-%% File: l3alloc.dtx Copyright (C) 1990-2012,2014,2015 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% File: l3alloc.dtx Copyright (C) 1990-2012,2014-2016 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3alloc.dtx 5952 2015-09-08 16:10:05Z joseph $
+\GetIdInfo$Id: l3alloc.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Register allocation}
 \begin{document}
   \DocInput{\jobname.dtx}
@@ -185,12 +172,12 @@
 %   makes sense to collect most of them together here.
 %    \begin{macrocode}
 \cs_if_exist:NTF \luatex_luatexversion:D
-  { \@@_new:nnnN { box } \c_zero \c_max_register_int \tex_chardef:D }
-  { \@@_new:nnnN { box } \c_zero \c_max_register_int \tex_mathchardef:D }
-\@@_new:nnnN { dim }     \c_zero \c_max_register_int \tex_dimendef:D
-\@@_new:nnnN { int }    { 11 }   \c_max_register_int \tex_countdef:D
-\@@_new:nnnN { muskip } \c_zero  \c_max_register_int \tex_muskipdef:D
-\@@_new:nnnN { skip }   \c_zero  \c_max_register_int \tex_skipdef:D
+  { \@@_new:nnnN { box } { 0 } \c_max_register_int \tex_chardef:D }
+  { \@@_new:nnnN { box } { 0 } \c_max_register_int \tex_mathchardef:D }
+\@@_new:nnnN { dim }     { 0 } \c_max_register_int \tex_dimendef:D
+\@@_new:nnnN { int }    { 10 } \c_max_register_int \tex_countdef:D
+\@@_new:nnnN { muskip }  { 0 } \c_max_register_int \tex_muskipdef:D
+\@@_new:nnnN { skip }    { 0 } \c_max_register_int \tex_skipdef:D
 %    \end{macrocode}
 % \end{macro}
 %
@@ -254,7 +241,7 @@
             \tl_if_exist:cTF { c__ #1 _allocation_reserve_begin_tl }
               {
                 \int_compare:nNnTF
-                  { \tl_use:c { g__ #1 _allocation_tl } + \c_one }
+                  { \tl_use:c { g__ #1 _allocation_tl } + 1 }
                   =
                   { \tl_use:c { c__ #1 _allocation_reserve_begin_tl } }
                   { \tl_use:c { c__ #1 _allocation_reserve_end_tl } }
@@ -261,7 +248,7 @@
                   { \tl_use:c { g__ #1 _allocation_tl } }
               }
               { \tl_use:c { g__ #1 _allocation_tl } }
-            + \c_one
+            + 1
           }
       }
   }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3basics.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3basics.dtx 6696 2016-09-01 16:09:52Z bruno $
+\GetIdInfo$Id: l3basics.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Basic definitions}
 %</driver|package>
 %<*driver>
@@ -558,7 +545,7 @@
 %     \cs_gset_nopar:Nx, \cs_gset_nopar:cx
 %   }
 %   \begin{syntax}
-%     \cs{cs_git cogset_nopar:Nn} \meta{function} \Arg{code}
+%     \cs{cs_gset_nopar:Nn} \meta{function} \Arg{code}
 %   \end{syntax}
 %   Sets \meta{function} to expand to \meta{code} as replacement text.
 %   Within the \meta{code}, the number of \meta{parameters} is detected
@@ -1435,26 +1422,15 @@
 %
 % \subsection{Defining some constants}
 %
-% \begin{variable}{\c_minus_one, \c_zero, \c_sixteen}
-%    We need the constants \cs{c_minus_one} and \cs{c_sixteen} now for
-%    writing information to the log and the terminal and \cs{c_zero}
-%    which is used by some functions in the \textsf{l3alloc} module. The
-%    rest are defined in the \textsf{l3int} module -- at least for the
-%    ones that can be defined with \cs{tex_chardef:D} or
-%    \cs{tex_mathchardef:D}. For other constants the \textsf{l3int} module is
-%    required but it can't be used until the allocation has been set
-%    up properly! The actual allocation mechanism is in
-%    \pkg{l3alloc}, and works such that the first available count register
-%    is $10$.
+% \begin{variable}{\c_zero}
+%   We need the constant \cs{c_zero}
+%   which is used by some functions in the \textsf{l3alloc} module. The
+%   rest are defined in the \textsf{l3int} module -- at least for the
+%   ones that can be defined with \cs{tex_chardef:D} or
+%   \cs{tex_mathchardef:D}. For other constants the \textsf{l3int} module is
+%   required but it can't be used until the allocation has been set
+%   up properly!
 %    \begin{macrocode}
-%<*package>
-\tex_let:D \c_minus_one \m at ne
-%</package>
-%<*initex>
-\tex_countdef:D \c_minus_one = 10 ~
-\c_minus_one = -1 ~
-%</initex>
-\tex_chardef:D \c_sixteen = 16 ~
 \tex_chardef:D \c_zero    = 0 ~
 %    \end{macrocode}
 % \end{variable}
@@ -2293,9 +2269,9 @@
 %    These will be redefined later by \pkg{l3io}.
 %    \begin{macrocode}
 \cs_set_protected:Npn \iow_log:x
-  { \tex_immediate:D \tex_write:D \c_minus_one }
+  { \tex_immediate:D \tex_write:D -1 }
 \cs_set_protected:Npn \iow_term:x
-  { \tex_immediate:D \tex_write:D \c_sixteen }
+  { \tex_immediate:D \tex_write:D 16 }
 %    \end{macrocode}
 % \end{macro}
 %
@@ -2692,7 +2668,7 @@
     \if_meaning:w \c_true_bool #3
       \tl_count:n {#2}
     \else:
-      \c_minus_one
+      -1
     \fi:
   }
 \cs_new:Npn \__cs_count_signature:c

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,38 +1,25 @@
 % \iffalse meta-comment
 %
 %% File: l3bootstrap.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 % \begin{macro}{\GetIdInfo}
 % \begin{macro}[aux]{\GetIdInfoAuxI, \GetIdInfoAuxII, \GetIdInfoAuxIII}
@@ -145,7 +132,7 @@
 % \end{macro}
 % \end{macro}
 % \end{macro}
-\GetIdInfo$Id: l3bootstrap.dtx 6596 2016-06-13 21:29:58Z joseph $
+\GetIdInfo$Id: l3bootstrap.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Bootstrap code}%
 %</driver|package>
 %<*driver>

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3box.dtx Copyright (C) 2005-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3box.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3box.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental boxes}
 %</driver|package>
 %<*driver>
@@ -976,7 +963,7 @@
       \int_set:Nn \tex_showboxbreadth:D {#3}
       \int_set:Nn \tex_showboxdepth:D   {#4}
       \int_set_eq:NN \tex_tracingonline:D #1
-      \int_set_eq:NN \tex_errorcontextlines:D \c_minus_one
+      \int_set:Nn \tex_errorcontextlines:D { - \c_one }
       \box_if_exist:NTF #2
         { \tex_showbox:D \use:n {#2} }
         {

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,44 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3candidates.dtx Copyright (C) 2012-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3candidates.dtx 6688 2016-08-19 19:21:48Z bruno $
+\GetIdInfo$Id: l3candidates.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Experimental additions to l3kernel}
 %</driver|package>
 %<*driver>
@@ -317,6 +303,23 @@
 %   \cs{clist_show:n} which displays the result in the terminal.
 % \end{function}
 %
+% \begin{function}[EXP, added = 2016-12-06]
+%   {\clist_rand_item:N, \clist_rand_item:n, \clist_rand_item:c}
+%   \begin{syntax}
+%     \cs{clist_rand_item:N} \meta{clist~var}
+%     \cs{clist_rand_item:n} \Arg{comma list}
+%   \end{syntax}
+%   Selects a pseudo-random item of the \meta{comma list}.  If the
+%   \meta{comma list} has no item, the result is empty.  This is only
+%   available in \pdfTeX{} and \LuaTeX{}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{item}
+%     will not expand further when appearing in an \texttt{x}-type
+%     argument expansion.
+%   \end{texnote}
+% \end{function}
+%
 % \section{Additions to \pkg{l3coffins}}
 %
 % \begin{function}{\coffin_resize:Nnn, \coffin_resize:cnn}
@@ -495,6 +498,15 @@
 %   in the log file.
 % \end{function}
 %
+% \begin{function}[EXP, added = 2016-12-06]{\int_rand:nn}
+%   \begin{syntax}
+%     \cs{int_rand:nn} \Arg{intexpr_1} \Arg{intexpr_2}
+%   \end{syntax}
+%   Evaluates the two \meta{integer expressions} and produces a
+%   pseudo-random number between the two (with bounds included).  This
+%   is only available in \pdfTeX{} and \LuaTeX{}.
+% \end{function}
+%
 % \section{Additions to \pkg{l3keys}}
 %
 % \begin{function}[added = 2014-08-22]{\keys_log:nn}
@@ -673,6 +685,51 @@
 %   Writes the entries in the \meta{property list} in the log file.
 % \end{function}
 %
+% \begin{function}[EXP, added = 2016-12-06]
+%   {\prop_rand_key:N, \prop_rand_key:c}
+%   \begin{syntax}
+%     \cs{prop_rand_key:N} \meta{prop~var}
+%   \end{syntax}
+%   Selects a pseudo-random key--value pair in the \meta{property list}
+%   and returns the \meta{key}.  If the \meta{property list} is empty
+%   the result is empty.  This is only available in \pdfTeX{} and
+%   \LuaTeX{}.
+% \end{function}
+%
+% \begin{function}[EXP, added = 2016-12-06]
+%   {\prop_rand_value:N, \prop_rand_value:c}
+%   \begin{syntax}
+%     \cs{prop_rand_value:N} \meta{prop~var}
+%   \end{syntax}
+%   Selects a pseudo-random key--value pair in the \meta{property list}
+%   and returns the \meta{value}.  If the \meta{property list} is empty
+%   the result is empty.  This is only available in \pdfTeX{} and
+%   \LuaTeX{}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{value}
+%     will not expand further when appearing in an \texttt{x}-type
+%     argument expansion.
+%   \end{texnote}
+% \end{function}
+%
+% \begin{function}[EXP, added = 2016-12-06]
+%   {\prop_rand_key_value:N, \prop_rand_key_value:c}
+%   \begin{syntax}
+%     \cs{prop_rand_key_value:N} \meta{prop~var}
+%   \end{syntax}
+%   Selects a pseudo-random key--value pair in the \meta{property list}
+%   and returns \Arg{key}\Arg{value}.  If the \meta{property list} is
+%   empty the result is empty.  This is only available in \pdfTeX{} and
+%   \LuaTeX{}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{value}
+%     will not expand further when appearing in an \texttt{x}-type
+%     argument expansion.
+%   \end{texnote}
+% \end{function}
+%
 % \section{Additions to \pkg{l3seq}}
 %
 % \begin{function}[rEXP]
@@ -733,6 +790,21 @@
 %   Writes the entries in the \meta{sequence} in the log file.
 % \end{function}
 %
+% \begin{function}[EXP, added = 2016-12-06]{\seq_rand_item:N, \seq_rand_item:c}
+%   \begin{syntax}
+%     \cs{seq_rand_item:N} \meta{seq~var}
+%   \end{syntax}
+%   Selects a pseudo-random item of the \meta{sequence}.  If the
+%   \meta{sequence} is empty the result is empty.  This is only
+%   available in \pdfTeX{} and \LuaTeX{}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{item}
+%     will not expand further when appearing in an \texttt{x}-type
+%     argument expansion.
+%   \end{texnote}
+% \end{function}
+%
 % \section{Additions to \pkg{l3skip}}
 %
 % \begin{function}{\skip_split_finite_else_action:nnNN}
@@ -1069,12 +1141,29 @@
 %
 % \begin{function}[added = 2014-08-22]{\tl_log:n}
 %   \begin{syntax}
-%     \cs{tl_log:n} \meta{token list}
+%     \cs{tl_log:n} \Arg{token list}
 %   \end{syntax}
 %   Writes the \meta{token list} in the log file.  See also
 %   \cs{tl_show:n} which displays the result in the terminal.
 % \end{function}
 %
+% \begin{function}[EXP, added = 2016-12-06]
+%   {\tl_rand_item:N, \tl_rand_item:c, \tl_rand_item:n}
+%   \begin{syntax}
+%     \cs{tl_rand_item:N} \meta{tl~var}
+%     \cs{tl_rand_item:n} \Arg{token list}
+%   \end{syntax}
+%   Selects a pseudo-random item of the \meta{token list}.  If the
+%   \meta{token list} is blank, the result is empty.  This is only
+%   available in \pdfTeX{} and \LuaTeX{}.
+%   \begin{texnote}
+%     The result is returned within the \tn{unexpanded}
+%     primitive (\cs{exp_not:n}), which means that the \meta{item}
+%     will not expand further when appearing in an \texttt{x}-type
+%     argument expansion.
+%   \end{texnote}
+% \end{function}
+%
 % \section{Additions to \pkg{l3tokens}}
 %
 % \begin{function}[TF, updated = 2012-12-20]{\peek_N_type:}
@@ -1799,6 +1888,33 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\clist_rand_item:n, \clist_rand_item:N, \clist_rand_item:c}
+% \begin{macro}[aux]{\@@_rand_item:nn}
+%   The |N|-type function is not implemented through the |n|-type
+%   function for efficiency: for instance comma-list variables do not
+%   require space-trimming of their items.  Even testing for emptyness
+%   of an |n|-type comma-list is slow, so we count items first and use
+%   that both for the emptyness test and the pseudo-random integer.
+%   Importantly, \cs{clist_item:Nn} and \cs{clist_item:nn} only evaluate
+%   their argument once.
+%    \begin{macrocode}
+\cs_new:Npn \clist_rand_item:n #1
+  { \exp_args:Nf \@@_rand_item:nn { \clist_count:n {#1} } {#1} }
+\cs_new:Npn \@@_rand_item:nn #1#2
+  {
+    \int_compare:nNnF {#1} = \c_zero
+      { \clist_item:nn {#2} { \int_rand:nn { 1 } {#1} } }
+  }
+\cs_new:Npn \clist_rand_item:N #1
+  {
+    \clist_if_empty:NF #1
+      { \clist_item:Nn #1 { \int_rand:nn { 1 } { \clist_count:N #1 } } }
+  }
+\cs_generate_variant:Nn \clist_rand_item:N { c }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \subsection{Additions to \pkg{l3coffins}}
 %
 %    \begin{macrocode}
@@ -2338,7 +2454,7 @@
 \cs_new_protected:Npn \ior_map_inline:Nn
   { \@@_map_inline:NNn \ior_get:NN }
 \cs_new_protected:Npn \ior_str_map_inline:Nn
-  { \@@_map_inline:NNn \ior_get_str:NN }
+  { \@@_map_inline:NNn \ior_str_get:NN }
 \cs_new_protected:Npn \@@_map_inline:NNn
   {
     \int_gincr:N \g__prg_map_int
@@ -2408,6 +2524,10 @@
 %
 % \subsection{Additions to \pkg{l3int}}
 %
+%    \begin{macrocode}
+%<@@=int>
+%    \end{macrocode}
+%
 % \begin{macro}{\int_log:N, \int_log:c}
 %   Redirect output of \cs{int_show:N} to the log.  This is not just a
 %   copy of \cs{__kernel_register_log:N} because of subtleties
@@ -2428,6 +2548,89 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}[EXP]{\int_rand:nn}
+% \begin{macro}[aux, EXP]
+%   {
+%     \@@_rand:ww, \@@_rand_narrow:n,
+%     \@@_rand_narrow:nnn, \@@_rand_narrow:nnnn
+%   }
+%   Evaluate the argument and filter out the case where the lower
+%   bound~|#1| is more than the upper bound~|#2|.  Then determine
+%   whether the range is narrower than \cs{c__fp_rand_size_int}; |#2-#1|
+%   may overflow for very large positive~|#2| and negative~|#1|.  If the
+%   range is wide, use slower code from \pkg{l3fp}.  If the range is
+%   narrow, call \cs{@@_rand_narrow:nn} \Arg{choices} |{#1}| where
+%   \meta{choices} is the number of possible outcomes.  Then
+%   \cs{@@_rand_narrow:nnnn} receives a random number reduced modulo
+%   \meta{choices}, the random number itself, \meta{choices} and |#1|.
+%   To avoid bias, throw away the random number if it lies in the last,
+%   incomplete, interval of size \meta{choices} in
+%   $[0,\cs{c__fp_rand_size_int}-1]$, and try again.
+%    \begin{macrocode}
+\cs_if_exist:NTF \pdftex_uniformdeviate:D
+  {
+    \cs_new:Npn \int_rand:nn #1#2
+      {
+        \exp_after:wN \@@_rand:ww
+        \__int_value:w \__int_eval:w #1 \exp_after:wN ;
+        \__int_value:w \__int_eval:w #2 ;
+      }
+    \cs_new:Npn \@@_rand:ww #1; #2;
+      {
+        \int_compare:nNnTF {#1} > {#2}
+          {
+            \__msg_kernel_expandable_error:nnnn
+              { kernel } { backward-range } {#1} {#2}
+            \@@_rand:ww #2; #1;
+          }
+          {
+            \int_compare:nNnTF {#1} > \c_zero
+              { \int_compare:nNnTF { #2 - #1 } < \c__fp_rand_size_int }
+              { \int_compare:nNnTF {#2} < { #1 + \c__fp_rand_size_int } }
+                  {
+                    \exp_args:Nf \@@_rand_narrow:nn
+                      { \int_eval:n { #2 - #1 + \c_one } } {#1}
+                  }
+                  { \fp_to_int:n { randint(#1,#2) } }
+          }
+      }
+    \cs_new:Npn \@@_rand_narrow:nn
+      {
+        \exp_args:No \@@_rand_narrow:nnn
+          { \pdftex_uniformdeviate:D \c__fp_rand_size_int }
+      }
+    \cs_new:Npn \@@_rand_narrow:nnn #1#2
+      {
+        \exp_args:Nf \@@_rand_narrow:nnnn
+          { \int_mod:nn {#1} {#2} } {#1} {#2}
+      }
+    \cs_new:Npn \@@_rand_narrow:nnnn #1#2#3#4
+      {
+        \int_compare:nNnTF { #2 - #1 + #3 } > \c__fp_rand_size_int
+          { \@@_rand_narrow:nn {#3} {#4} }
+          { \int_eval:n { #4 + #1 } }
+      }
+  }
+  {
+    \cs_new:Npn \int_rand:nn #1#2
+      {
+        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
+        \int_eval:n {#1}
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The following must be added to \pkg{l3msg}.
+%    \begin{macrocode}
+\cs_if_exist:NT \pdftex_uniformdeviate:D
+  {
+    \__msg_kernel_new:nnn { kernel } { backward-range }
+      { Bounds~ordered~backwards~in~\int_rand:nn {#1}~{#2}. }
+  }
+%    \end{macrocode}
+%
 % \subsection{Additions to \pkg{l3keys}}
 %
 %    \begin{macrocode}
@@ -2638,6 +2841,47 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}[EXP]
+%   {
+%     \prop_rand_key:N, \prop_rand_key:c,
+%     \prop_rand_value:N, \prop_rand_value:c,
+%     \prop_rand_key_value:N, \prop_rand_key_value:c
+%   }
+% \begin{macro}[aux, EXP]{\@@_rand:NN, \@@_rand_item:Nw}
+%   Contrarily to |clist|, |seq| and |tl|, there is no function to get
+%   an item of a |prop| given an integer between $1$ and the number of
+%   items, so we write the appropriate code.  There is no bounds
+%   checking because \cs{int_rand:nn} is always within bounds.  At the
+%   end, leave either the key |#3| or the value |#4| in the input
+%   stream.
+%    \begin{macrocode}
+\cs_new:Npn \prop_rand_key:N { \@@_rand:NN \use_i:nnn }
+\cs_new:Npn \prop_rand_value:N { \@@_rand:NN \use_none:n }
+\cs_new:Npn \prop_rand_key_value:N { \@@_rand:NN \@@_rand:nNn }
+\cs_new:Npn \@@_rand:nNn #1#2#3 { \exp_not:n { {#1} {#3} } }
+\cs_new:Npn \@@_rand:NN #1#2
+  {
+    \prop_if_empty:NTF #2 { }
+      {
+        \exp_after:wN \@@_rand_item:Nw \exp_after:wN #1
+        \__int_value:w \int_rand:nn { 1 } { \prop_count:N #2 } #2
+        \q_stop
+      }
+  }
+\cs_new:Npn \@@_rand_item:Nw #1#2 \s_@@ \@@_pair:wn #3 \s_@@ #4
+  {
+    \int_compare:nNnF {#2} > \c_one
+      { \use_i_delimit_by_q_stop:nw { #1 {#3} \exp_not:n {#4} } }
+    \exp_after:wN \@@_rand_item:Nw \exp_after:wN #1
+    \__int_value:w \int_eval:n { #2 - \c_one } \s_@@
+  }
+\cs_generate_variant:Nn \prop_rand_key:N { c }
+\cs_generate_variant:Nn \prop_rand_value:N { c }
+\cs_generate_variant:Nn \prop_rand_key_value:N { c }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \subsection{Additions to \pkg{l3seq}}
 %
 %    \begin{macrocode}
@@ -2745,6 +2989,18 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\seq_rand_item:N, \seq_rand_item:c}
+%   Importantly, \cs{seq_item:Nn} only evaluates its argument once.
+%    \begin{macrocode}
+\cs_new:Npn \seq_rand_item:N #1
+  {
+    \seq_if_empty:NF #1
+      { \seq_item:Nn #1 { \int_rand:nn { 1 } { \seq_count:N #1 } } }
+  }
+\cs_generate_variant:Nn \seq_rand_item:N { c }
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsection{Additions to \pkg{l3skip}}
 %
 %    \begin{macrocode}
@@ -2937,7 +3193,7 @@
       }
   }
 \exp_args:Nno \use:nn
-  { \cs_set_protected:Npn \@@_from_file_do:w #1 }
+  { \cs_new_protected:Npn \@@_from_file_do:w #1 }
   { \c_@@_rescan_marker_tl }
   { \tl_set:No \l_@@_internal_a_tl {#1} }
 %    \end{macrocode}
@@ -4442,6 +4698,19 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\tl_rand_item:n, \tl_rand_item:N, \tl_rand_item:c}
+%   Importantly \cs{tl_item:nn} only evaluates its argument once.
+%    \begin{macrocode}
+\cs_new:Npn \tl_rand_item:n #1
+  {
+    \tl_if_blank:nF {#1}
+      { \tl_item:nn {#1} { \int_rand:nn { 1 } { \tl_count:n {#1} } } }
+  }
+\cs_new:Npn \tl_rand_item:N { \exp_args:No \tl_rand_item:n }
+\cs_generate_variant:Nn \tl_rand_item:N { c }
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsection{Additions to \pkg{l3tokens}}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -3,43 +3,30 @@
 %% File: l3clist.dtx Copyright (C) 2004-2011 Frank Mittelbach,
 %%                                 The LaTeX3 project
 %%                             (C) 2012-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3clist.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3clist.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Comma separated lists}
 %</driver|package>
 %<*driver>
@@ -1720,7 +1707,7 @@
 % \subsection{Using a single item}
 %
 % \begin{macro}{\clist_item:Nn, \clist_item:cn}
-% \begin{macro}[aux]{\@@_item:nnNn}
+% \begin{macro}[aux]{\@@_item:nnnN, \@@_item:ffoN, \@@_item:ffnN}
 % \begin{macro}[aux]{\@@_item_N_loop:nw}
 %   To avoid needing to test the end of the list at each step,
 %   we first compute the \meta{length} of the list. If the item number
@@ -1732,27 +1719,28 @@
 %    \begin{macrocode}
 \cs_new:Npn \clist_item:Nn #1#2
   {
-    \exp_args:Nfo \@@_item:nnNn
+    \@@_item:ffoN
       { \clist_count:N #1 }
+      { \int_eval:n {#2} }
       #1
       \@@_item_N_loop:nw
-      {#2}
   }
-\cs_new:Npn \@@_item:nnNn #1#2#3#4
+\cs_new:Npn \@@_item:nnnN #1#2#3#4
   {
-    \int_compare:nNnTF {#4} < \c_zero
+    \int_compare:nNnTF {#2} < \c_zero
       {
-        \int_compare:nNnTF {#4} < { - #1 }
+        \int_compare:nNnTF {#2} < { - #1 }
           { \use_none_delimit_by_q_stop:w }
-          { \exp_args:Nf #3 { \int_eval:n { #4 + \c_one + #1 } } }
+          { \exp_args:Nf #4 { \int_eval:n { #2 + \c_one + #1 } } }
       }
       {
-        \int_compare:nNnTF {#4} > {#1}
+        \int_compare:nNnTF {#2} > {#1}
           { \use_none_delimit_by_q_stop:w }
-          { #3 {#4} }
+          { #4 {#2} }
       }
-    { } , #2 , \q_stop
+    { } , #3 , \q_stop
   }
+\cs_generate_variant:Nn \@@_item:nnnN { ffo, ff }
 \cs_new:Npn \@@_item_N_loop:nw #1 #2,
   {
     \int_compare:nNnTF {#1} = \c_zero
@@ -1778,11 +1766,11 @@
 %    \begin{macrocode}
 \cs_new:Npn \clist_item:nn #1#2
   {
-    \exp_args:Nf \@@_item:nnNn
+    \@@_item:ffnN
       { \clist_count:n {#1} }
+      { \int_eval:n {#2} }
       {#1}
       \@@_item_n:nw
-      {#2}
   }
 \cs_new:Npn \@@_item_n:nw #1
   { \@@_item_n_loop:nw {#1} \prg_do_nothing: }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,44 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3coffins.dtx Copyright(C) 2010-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3coffins.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3coffins.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Coffin code layer}
 %</driver|package>
 %<*driver>

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,44 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3color.dtx Copyright(C) 2011,2012,2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3color.dtx 6596 2016-06-13 21:29:58Z joseph $
+\GetIdInfo$Id: l3color.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental color support}
 %</driver|package>
 %<*driver>

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,38 +1,25 @@
 % \iffalse meta-comment
 %
 %% File: l3doc.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \def\nameofplainTeX{plain}
 \ifx\fmtname\nameofplainTeX\else
@@ -75,7 +62,7 @@
 %
 %<*driver|class>
 \RequirePackage{expl3,xparse,calc}
-\GetIdInfo$Id: l3doc.dtx 6701 2016-09-08 13:56:52Z qinglee $
+\GetIdInfo$Id: l3doc.dtx 6809 2017-01-01 06:33:13Z bruno $
           {L3 Experimental documentation class}
 %</driver|class>
 %
@@ -3715,8 +3702,8 @@
     \use:x
       {
         \@@_special_index_module:nnnnN
-          { \quotechar #1 }
-          { \quotechar \bslash \quotechar #1 }
+          {#1}
+          { \bslash #1 }
           { }
           { }
           \c_false_bool
@@ -3758,6 +3745,7 @@
 %   a construct such as |\meta{...}|.
 %    \begin{macrocode}
 \tl_new:N \l_@@_index_escaped_macro_tl
+\tl_new:N \l_@@_index_escaped_key_tl
 \cs_new_protected:Npn \@@_special_index_module:nnnnN #1#2#3#4#5
   {
     \use:x
@@ -3783,6 +3771,8 @@
 \cs_generate_variant:Nn \@@_special_index_module:nnnnN { ooo }
 \cs_new_protected:Npn \@@_special_index_aux:nnnnnn #1#2#3#4#5#6
   {
+    \tl_set:Nn \l_@@_index_escaped_key_tl {#1}
+    \@@_quote_special_char:N \l_@@_index_escaped_key_tl
     \@@_special_index_set:Nn \l_@@_index_escaped_macro_tl {#2}
     \str_if_eq:onTF { \@currenvir } { macrocode }
       { \codeline at wrindex }
@@ -3797,7 +3787,7 @@
       {
         \tl_if_empty:nF { #3 #4 #5 }
           { #3 #5 \actualchar #4 #5 \levelchar }
-        #1
+        \l_@@_index_escaped_key_tl
         \actualchar
         {
           \token_to_str:N \verbatim at font \c_space_tl
@@ -3812,6 +3802,12 @@
     \tl_set:Nx #1 { \tl_to_str:n {#2} }
     \@@_if_almost_str:nTF {#2}
       {
+        \tl_replace_all:Non #1 { \tl_to_str:n { __ } }
+          {
+            \verbatimchar
+            \token_to_str:N \_ \token_to_str:N \_
+            \token_to_str:N \verb * \verbatimchar
+          }
         \exp_args:Nx \tl_map_inline:nn
           { \tl_to_str:N \verbatimchar \token_to_str:N _ }
           {
@@ -3818,17 +3814,12 @@
             \tl_replace_all:Nnn #1 {##1}
               {
                 \verbatimchar \c_@@_backslash_tl ##1
-                \token_to_str:N \verb \quotechar * \verbatimchar
+                \token_to_str:N \verb * \verbatimchar
               }
           }
-        \tl_map_inline:nn { \actualchar \encapchar \levelchar }
-          {
-            \tl_replace_all:Nxn #1
-              { \tl_to_str:N ##1 } { \quotechar \tl_to_str:N ##1 }
-          }
         \tl_set:Nx #1
           {
-            \token_to_str:N \verb \quotechar * \verbatimchar
+            \token_to_str:N \verb * \verbatimchar
             #1 \verbatimchar
           }
       }
@@ -3838,10 +3829,25 @@
           { \c_@@_backslash_tl }
           { \token_to_str:N \bslash \c_space_tl }
       }
+    \@@_quote_special_char:N #1
   }
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}[aux]{\@@_quote_special_char:N}
+% Quote some special characters.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_quote_special_char:N #1
+  {
+    \tl_map_inline:nn { \quotechar \actualchar \encapchar \levelchar }
+      {
+        \tl_replace_all:Nxn #1
+          { \tl_to_str:N ##1 } { \quotechar \tl_to_str:N ##1 }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
 % \subsubsection{Finding sort-key and module}
 %
 % \begin{macro}[aux]{\@@_key_get:n}
@@ -3895,7 +3901,7 @@
 %   the first occurence of |#1|.  Helper that removes any leading
 %   underscore from \cs{l_@@_index_key_tl}.
 %    \begin{macrocode}
-\cs_set:Npn \@@_key_trim_module:n #1
+\cs_new_protected:Npn \@@_key_trim_module:n #1
   {
     \cs_set:Npn \@@_tmpa:w ##1 #1 ##2 \q_stop
       { \exp_not:n {##1} }
@@ -4322,7 +4328,6 @@
 %
 % \begin{macro}
 %   {
-%     \c_minus_one,
 %     \c_zero,
 %     \c_one,
 %     \c_two,

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,39 +1,25 @@
 % \iffalse
 %
-%% File l3dosctrip.dtx Copyright (C) 2012 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
+%% File l3dosctrip.dtx Copyright (C) 2012,2016 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|program>
 \def\ExplFileDate{2012/06/08}
 \def\ExplFileName{l3docstrip}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,44 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3drivers.dtx Copyright(C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3drivers.dtx 6644 2016-08-13 20:22:11Z bruno $
+\GetIdInfo$Id: l3drivers.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Experimental drivers}
 %</driver|package>
 %<*driver>
@@ -90,7 +76,7 @@
 % The code here is all very low-level, and should not in general be used
 % outside of the kernel. It is also important to note that many of the
 % functions here are closely tied to the immediate level \enquote{up},
-% and they must be used in the correct contexts.d
+% and they must be used in the correct contexts.
 %
 % \section{Box clipping}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3expan.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3expan.dtx 6684 2016-08-19 15:21:49Z bruno $
+\GetIdInfo$Id: l3expan.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Argument expansion}
 %</driver|package>
 %<*driver>
@@ -158,7 +145,7 @@
 %   control sequence} is protected or if the \meta{variant} involves
 %   |x|~arguments, then the \meta{variant control sequence} will also be
 %   protected.  The \meta{variant} is created globally, as is any
-%   \cs{exp_args:N\meta{variant}} function needed to carry out the
+%   \cs[no-index]{exp_args:N\meta{variant}} function needed to carry out the
 %   expansion.
 % \end{function}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3file.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3file.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3file.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 File and I/O operations}
 %</driver|package>
 %<*driver>
@@ -278,9 +265,9 @@
 %   \end{texnote}
 % \end{function}
 %
-% \begin{function}[added = 2012-06-24, updated = 2012-07-31]{\ior_get_str:NN}
+% \begin{function}[added = 2016-12-04]{\ior_str_get:NN}
 %   \begin{syntax}
-%     \cs{ior_get_str:NN} \meta{stream} \meta{token list variable}
+%     \cs{ior_str_get:NN} \meta{stream} \meta{token list variable}
 %   \end{syntax}
 %   Function that reads one line from the input \meta{stream} and stores
 %   the result locally in the \meta{token list} variable. If the
@@ -302,7 +289,7 @@
 %     This protected macro is a wrapper around the \eTeX{} primitive
 %     \tn{readline}.  However, the end-line character normally added by
 %     this primitive is not included in the result of
-%     \cs{ior_get_str:NN}.
+%     \cs{ior_str_get:NN}.
 %   \end{texnote}
 % \end{function}
 %
@@ -690,7 +677,10 @@
   {
     \group_begin:
       \seq_map_inline:Nn \l_char_active_seq
-        { \char_set:active:Npx ##1 { \cs_to_str:N ##1 } }
+        {
+          \tl_set:Nx \l_@@_internal_tl { \iow_char:N ##1 }
+          \char_set_active_eq:NN ##1 \l_@@_internal_tl
+        }
       \tl_set:Nx \l_@@_internal_name_tl {#1}
       \tl_set:Nx \l_@@_internal_name_tl
         { \tl_to_str:N \l_@@_internal_name_tl }
@@ -803,7 +793,7 @@
 %
 % \begin{macro}{\file_input:n}
 % \begin{macro}[int]{\@@_if_exist:nT}
-% \begin{macro}[aux]{\@@_input:n \@@_input:V}
+% \begin{macro}[aux]{\@@_input:n, \@@_input:V}
 % \begin{macro}[aux]{\@@_input_aux:n, \@@_input_aux:o}
 %   Loading a file is done in a safe way, checking first that the file
 %   exists and loading only if it does.  Push the file name on the
@@ -1110,7 +1100,7 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \ior_close:N #1
   {
-    \int_compare:nT { \c_minus_one < #1 < \c_sixteen }
+    \int_compare:nT { - \c_one < #1 < \c_sixteen }
       {
         \tex_closein:D #1
         \prop_gremove:NV \g_@@_streams_prop #1
@@ -1186,15 +1176,15 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}{\ior_get_str:NN}
+% \begin{macro}{\ior_str_get:NN}
 %   Reading as strings is a more complicated wrapper, as we wish to
 %   remove the endline character.
 %    \begin{macrocode}
-\cs_new_protected:Npn \ior_get_str:NN #1#2
+\cs_new_protected:Npn \ior_str_get:NN #1#2
   {
     \use:x
       {
-        \int_set_eq:NN \tex_endlinechar:D \c_minus_one
+        \int_set:Nn \tex_endlinechar:D { - \c_one }
         \exp_not:n { \etex_readline:D #1 to #2 }
         \int_set:Nn \tex_endlinechar:D { \int_use:N \tex_endlinechar:D }
       }
@@ -1349,13 +1339,13 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \iow_close:N #1
   {
-    \int_compare:nT { \c_minus_one < #1 < \c_sixteen }
+    \int_compare:nT { - \c_one < #1 < \c_sixteen }
       {
         \tex_immediate:D \tex_closeout:D #1
         \prop_gremove:NV \g_@@_streams_prop #1
         \seq_if_in:NVF \g_@@_streams_seq #1
           { \seq_gpush:NV \g_@@_streams_seq #1 }
-        \cs_gset_eq:NN #1 \c_term_ior
+        \cs_gset_eq:NN #1 \c_term_iow
       }
   }
 \cs_generate_variant:Nn \iow_close:N { c }
@@ -1572,7 +1562,7 @@
 %   nicer.
 %    \begin{macrocode}
 \group_begin:
-  \int_set_eq:NN \tex_escapechar:D \c_minus_one
+  \int_set:Nn \tex_escapechar:D { - \c_one }
   \tl_const:Nx \c_@@_wrap_marker_tl
     { \tl_to_str:n { \^^I \^^O \^^W \^^_ \^^W \^^R \^^A \^^P } }
 \group_end:
@@ -1638,7 +1628,7 @@
 \cs_new_protected:Npn \iow_wrap:nnnN #1#2#3#4
   {
     \group_begin:
-      \int_set_eq:NN \tex_escapechar:D \c_minus_one
+      \int_set:Nn \tex_escapechar:D { - \c_one }
       \cs_set:Npx \{ { \token_to_str:N \{ }
       \cs_set:Npx \# { \token_to_str:N \# }
       \cs_set:Npx \} { \token_to_str:N \} }
@@ -1892,7 +1882,16 @@
   { Only~\iow_wrap:nnnN~(arg~1)~allows~\iow_indent:n }
 %    \end{macrocode}
 %
+% \subsection{Deprecated functions}
+%
+% \begin{macro}[added = 2012-06-24, updated = 2012-07-31, deprecated=2017-12-31]{\ior_get_str:NN}
+%   For removal after 2017-12-31.
 %    \begin{macrocode}
+\cs_new_eq:NN \ior_get_str:NN \ior_str_get:NN
+%    \end{macrocode}
+% \end{macro}
+%
+%    \begin{macrocode}
 %</initex|package>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,41 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3final.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3final.dtx 6596 2016-06-13 21:29:58Z joseph $
+\GetIdInfo$Id: l3final.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental format finalisation}
 \begin{document}
   \DocInput{\jobname.dtx}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3format.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3format.ins	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3format.ins	2017-01-29 22:34:57 UTC (rev 43088)
@@ -12,8 +12,19 @@
 This file is part of the "l3kernel bundle" (The Work in LPPL)
 and all files in that bundle must be distributed together.
 
-The released version of this bundle is available from CTAN.
+-----------------------------------------------------------------------
 
+The development version of the bundle can be found at
+
+   https://github.com/latex3/latex3
+
+for those people who are interested.
+
+-----------------------------------------------------------------------
+
+Any modification of this file should ensure that the copyright and
+license information is placed in the derived files.
+
 \fi
 
 \let\jobname\relax
@@ -22,13 +33,18 @@
 
 \preamble
 
-EXPERIMENTAL CODE
+Copyright (C) 1990-2016 The LaTeX3 Project
 
-Do not distribute this file without also distributing the
-source files specified above.
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
 
-Do not distribute a modified version of this file.
+   http://www.latex-project.org/lppl.txt
 
+This file is part of the "l3kernel bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
 \endpreamble
 % stop docstrip adding \endinput
 \postamble

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
-%%
+%
 %% File: l3fp-assign.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-assign.dtx 6596 2016-06-13 21:29:58Z joseph $
+\GetIdInfo$Id: l3fp-assign.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point assignments}
 \begin{document}
   \DocInput{\jobname.dtx}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3fp-aux.dtx Copyright(C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-aux.dtx 6750 2016-11-21 01:24:26Z bruno $
+\GetIdInfo$Id: l3fp-aux.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point support functions}
 \documentclass[full]{l3doc}
 \begin{document}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-basics.dtx 6596 2016-06-13 21:29:58Z joseph $
+\GetIdInfo$Id: l3fp-basics.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point arithmetic}
 \begin{document}
   \DocInput{\jobname.dtx}
@@ -215,7 +201,7 @@
         \if_int_compare:w #2 > #4 \exp_stop_f:
           \c_three
         \else:
-          \c_minus_one
+          \c_four
         \fi:
       \fi:
            \exp_after:wN \@@_add_zeros_o:Nww \__int_value:w

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3fp-convert.dtx Copyright(C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-convert.dtx 6596 2016-06-13 21:29:58Z joseph $
+\GetIdInfo$Id: l3fp-convert.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point conversion}
 \begin{document}
   \DocInput{\jobname.dtx}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3fp-expo.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-expo.dtx 6441 2016-03-24 10:11:59Z joseph $
+\GetIdInfo$Id: l3fp-expo.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point exponential-related functions}
 \begin{document}
   \DocInput{\jobname.dtx}
@@ -1208,12 +1194,12 @@
 %   \meta{digits} |;| which would be the digits surrounding the decimal
 %   period.  If the \meta{digits} are non-zero, the number is not an
 %   integer.  Otherwise, check the parity of the \meta{digit} and return
-%   \cs{c_zero} or \cs{c_minus_one}.
+%   \cs{c_zero} or |-|\cs{c_one}.
 %    \begin{macrocode}
 \cs_new:Npn \@@_pow_neg_case:w \s_@@ \@@_chk:w #1#2#3;
   {
     \if_case:w #1 \exp_stop_f:
-           \c_minus_one
+           -\c_one
     \or:   \@@_pow_neg_case_aux:nnnnn #3
     \else: \c_one
     \fi:
@@ -1222,7 +1208,7 @@
   {
     \if_int_compare:w #1 > \c_eight
       \if_int_compare:w #1 > \c_sixteen
-        \c_minus_one
+        -\c_one
       \else:
         \exp_after:wN \exp_after:wN
         \exp_after:wN \@@_pow_neg_case_aux:NNNNNNNNw
@@ -1248,7 +1234,7 @@
       \if_int_odd:w #8 \exp_stop_f:
         \c_zero
       \else:
-        \c_minus_one
+        -\c_one
       \fi:
     \else:
       \c_one

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3fp-extended.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-extended.dtx 6684 2016-08-19 15:21:49Z bruno $
+\GetIdInfo$Id: l3fp-extended.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-points with extended precision}
 \begin{document}
   \DocInput{\jobname.dtx}
@@ -290,7 +276,7 @@
   {
     \exp_after:wN \@@_fixed_div_int_after:Nw
     \exp_after:wN #8
-    \__int_value:w \__int_eval:w \c_minus_one
+    \__int_value:w \__int_eval:w - \c_one
       \@@_fixed_div_int:wnN
       #1; {#7} \@@_fixed_div_int_auxi:wnn
       #2; {#7} \@@_fixed_div_int_auxi:wnn

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3fp-logic.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-logic.dtx 6759 2016-11-21 17:04:08Z joseph $
+\GetIdInfo$Id: l3fp-logic.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point conditionals}
 \begin{document}
   \DocInput{\jobname.dtx}
@@ -318,56 +304,72 @@
 %
 % \begin{macro}[EXP]{\fp_step_function:nnnN, \fp_step_function:nnnc}
 % \begin{macro}[EXP, aux]{\@@_step:wwwN}
-% \begin{macro}[EXP, aux]{\@@_step:NnnnN, \@@_step:NfnnN}
-%   The approach here is much the same as \cs{int_step_function:nnnN} except we
-%   do not have a convenient low-level way to evaluation each argument to give
-%   a pure number. Instead, the internal parser is used to leave values in the
-%   internal format (and avoid a more expensive \texttt{f}-type expansion of
-%   multiple uses of \texttt{fp_eval:n}).
+% \begin{macro}[EXP, aux]{\@@_step:NnnnnN, \@@_step:NfnnnN}
+%   The approach here is somewhat similar to
+%   \cs{int_step_function:nnnN}.  There are two subtleties: we use the
+%   internal parser \cs{@@_parse:n} to avoid converting back and forth
+%   from the internal representation; and (due to rounding) even a
+%   non-zero step does not guarantee that the loop counter will
+%   increase.
 %    \begin{macrocode}
 \cs_new:Npn \fp_step_function:nnnN #1#2#3
   {
     \exp_after:wN \@@_step:wwwN
-      \exp:w \exp_end_continue_f:w \@@_parse_o:n {#1} :
-      \exp:w \exp_end_continue_f:w \@@_parse_o:n {#2} :
-      \exp:w \exp_end_continue_f:w \@@_parse:n {#3} :
+      \exp:w \exp_end_continue_f:w \@@_parse_o:n {#1}
+      \exp:w \exp_end_continue_f:w \@@_parse_o:n {#2}
+      \exp:w \exp_end_continue_f:w \@@_parse:n {#3}
   }
 \cs_generate_variant:Nn \fp_step_function:nnnN { nnnc }
-%    \end{macrocode}
-%   Here, |#1| will be passed to the output on the first pass of the loop.
-%   To avoid this being in internal form, an \texttt{f}-type expansion is used
-%   here on that value only. The second and third arguments will be converted
-%   during the loop itself.
+%      \end{macrocode}
+%   Only \enquote{normal} floating points (not $\pm 0$,
+%   $\pm\texttt{inf}$, \texttt{nan}) can be used as step; if positive,
+%   call \cs{@@_step:NnnnnN} with argument |>| otherwise~|<|.  This
+%   function has one more argument than its integer counterpart, namely
+%   the previous value, to catch the case where the loop has made no
+%   progress.  Conversion to decimal is done just before calling the
+%   user's function.
 %    \begin{macrocode}
-\cs_new:Npn \@@_step:wwwN #1 : #2 : #3 : #4
+\cs_new:Npn \@@_step:wwwN #1 ; \s_@@ \@@_chk:w #2#3#4 ; #5; #6
   {
-    \fp_compare:nNnTF {#2} > 0
-      { \@@_step:NfnnN > }
+    \token_if_eq_meaning:NNTF #2 1
       {
-        \fp_compare:nNnTF {#2} = 0
+        \token_if_eq_meaning:NNTF #3 0
+          { \@@_step:NnnnnN > }
+          { \@@_step:NnnnnN < }
+      }
+      {
+        \token_if_eq_meaning:NNTF #2 0
+          { \__msg_kernel_expandable_error:nnn { kernel } { zero-step } {#6} }
           {
-            \__msg_kernel_expandable_error:nnn { kernel } { zero-step } {#4}
-            \use_none:nnnn
+            \@@_error:nnfn { bad-step } { }
+              { \fp_to_tl:n { \s_@@ \@@_chk:w #2#3#4 ; } } {#6}
           }
-          { \@@_step:NfnnN < }
+        \use_none:nnnnn
       }
-      { \fp_eval:n {#1} } {#2} {#3} #4
+      { #1 ; } { \c_nan_fp } { \s_@@ \@@_chk:w #2#3#4 ; } { #5 ; } #6
   }
-
-\cs_new:Npn \@@_step:NnnnN #1#2#3#4#5
+\cs_new:Npn \@@_step:NnnnnN #1#2#3#4#5#6
   {
-    \fp_compare:nNnF {#2} #1 {#4}
+    \fp_compare:nNnTF {#2} = {#3}
       {
-        #5 {#2}
-        \@@_step:NfnnN
-          #1 { \fp_eval:n { #2 + #3 } } {#3} {#4} #5
+        \@@_error:nffn { tiny-step }
+          { \fp_to_tl:n {#3} } { \fp_to_tl:n {#4} } {#6}
       }
+      {
+        \fp_compare:nNnF {#2} #1 {#5}
+          {
+            \exp_args:Nf #6 { \@@_to_decimal_dispatch:w #2 }
+            \@@_step:NfnnnN
+              #1 { \@@_parse:n { #2 + #4 } } {#2} {#4} {#5} #6
+          }
+      }
   }
-\cs_generate_variant:Nn \@@_step:NnnnN { Nf }
+\cs_generate_variant:Nn \@@_step:NnnnnN { Nf }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
+%
 % \begin{macro}{\fp_step_inline:nnnn}
 %   As for \cs{int_step_inline:nnnn}, create a global function and apply it,
 %   following up with a break point.
@@ -384,6 +386,13 @@
 %    \end{macrocode}
 % \end{macro}
 %
+%    \begin{macrocode}
+\__msg_kernel_new:nnn { kernel } { fp-bad-step }
+  { Invalid~step~size~#2~in~step~function~#3. }
+\__msg_kernel_new:nnn { kernel } { fp-tiny-step }
+  { Tiny~step~size~(#1+#2=#1)~in~step~function~#3. }
+%    \end{macrocode}
+%
 % \subsection{Extrema}
 %
 % \begin{macro}[int, EXP]{\@@_minmax_o:Nw}
@@ -400,9 +409,9 @@
 \cs_new:Npn \@@_minmax_o:Nw #1#2 @
   {
     \if_meaning:w 0 #1
-      \exp_after:wN \@@_minmax_loop:Nww \exp_after:wN \c_one
+      \exp_after:wN \@@_minmax_loop:Nww \exp_after:wN +
     \else:
-      \exp_after:wN \@@_minmax_loop:Nww \exp_after:wN \c_minus_one
+      \exp_after:wN \@@_minmax_loop:Nww \exp_after:wN -
     \fi:
     #2
     \s_@@ \@@_chk:w 2 #1 \s_@@_exact ;
@@ -412,7 +421,7 @@
 % \end{macro}
 %
 % \begin{macro}[aux, EXP]{\@@_minmax_loop:Nww}
-%   The first argument is $-1$ or $1$ to denote the case where the
+%   The first argument is $-$ or $+$ to denote the case where the
 %   currently largest (smallest) number found (first floating point
 %   argument) should be replaced by the new number (second floating
 %   point argument).  If the new number is \texttt{nan}, keep that as
@@ -436,7 +445,7 @@
           \@@_compare_back:ww
             \s_@@ \@@_chk:w #4#5;
             \s_@@ \@@_chk:w #2#3;
-          = #1
+          = #1 \c_one
         \@@_minmax_auxii:ww
       \else:
         \@@_minmax_auxi:ww
@@ -545,7 +554,7 @@
       \@@_exp_after_array_f:w #3 \s_@@_stop
       \exp_after:wN @
       \exp:w
-        \@@_parse_operand:Nw \c_two
+        \@@_parse_operand:Nw \c_@@_prec_colon_int
         \@@_parse_expand:w
     \else:
       \__msg_kernel_expandable_error:nnnn

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3fp-parse.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-parse.dtx 6750 2016-11-21 01:24:26Z bruno $
+\GetIdInfo$Id: l3fp-parse.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point expression parsing}
 \begin{document}
   \DocInput{\jobname.dtx}
@@ -111,20 +97,57 @@
 % \begin{itemize}
 % \item[16] Function calls with multiple arguments.
 % \item[15] Function calls expecting exactly one argument.
-% \item[14] Binary |**| and~|^| (right to left).
+% \item[13/14] Binary |**| and~|^| (right to left).
 % \item[12] Unary |+|, |-|, |!| (right to left).
 % \item[10] Binary |*|, |/|, and juxtaposition (implicit~|*|).
 % \item[9] Binary |+| and~|-|.
 % \item[7] Comparisons.
-% \item[5] Logical \texttt{and}, denoted by~|&&|.
-% \item[4] Logical \texttt{or}, denoted by~\verb*+||+.
-% \item[3] Ternary operator |?:|, piece~|?|.
-% \item[2] Ternary operator |?:|, piece~|:|.
-% \item[1] Commas, and parentheses accepting commas.
-% \item[0] Parentheses expecting exactly one argument.
-% \item[-1] Start and end of the expression.
+% \item[6] Logical \texttt{and}, denoted by~|&&|.
+% \item[5] Logical \texttt{or}, denoted by~\verb*+||+.
+% \item[4] Ternary operator |?:|, piece~|?|.
+% \item[3] Ternary operator |?:|, piece~|:|.
+% \item[2] Commas, and parentheses accepting commas.
+% \item[1] Parentheses expecting exactly one argument.
+% \item[0] Start and end of the expression.
 % \end{itemize}
 %
+% \begin{variable}
+%   {
+%     \c_@@_prec_funcii_int,
+%     \c_@@_prec_func_int,
+%     \c_@@_prec_hatii_int,
+%     \c_@@_prec_hat_int,
+%     \c_@@_prec_not_int,
+%     \c_@@_prec_times_int,
+%     \c_@@_prec_plus_int,
+%     \c_@@_prec_comp_int,
+%     \c_@@_prec_and_int,
+%     \c_@@_prec_or_int,
+%     \c_@@_prec_quest_int,
+%     \c_@@_prec_colon_int,
+%     \c_@@_prec_comma_int,
+%     \c_@@_prec_paren_int,
+%     \c_@@_prec_end_int,
+%   }
+%    \begin{macrocode}
+\int_const:Nn \c_@@_prec_funcii_int { 16 }
+\int_const:Nn \c_@@_prec_func_int   { 15 }
+\int_const:Nn \c_@@_prec_hatii_int  { 14 }
+\int_const:Nn \c_@@_prec_hat_int    { 13 }
+\int_const:Nn \c_@@_prec_not_int    { 12 }
+\int_const:Nn \c_@@_prec_times_int  { 10 }
+\int_const:Nn \c_@@_prec_plus_int   { 9 }
+\int_const:Nn \c_@@_prec_comp_int   { 7 }
+\int_const:Nn \c_@@_prec_and_int    { 6 }
+\int_const:Nn \c_@@_prec_or_int     { 5 }
+\int_const:Nn \c_@@_prec_quest_int  { 4 }
+\int_const:Nn \c_@@_prec_colon_int  { 3 }
+\int_const:Nn \c_@@_prec_comma_int  { 2 }
+\int_const:Nn \c_@@_prec_paren_int  { 1 }
+\int_const:Nn \c_@@_prec_end_int    { 0 }
+%    \end{macrocode}
+% \end{variable}
+%
 % \subsubsection{Storing results}
 %
 % The main question in parsing expressions expandably is to decide where
@@ -215,8 +238,8 @@
 % previous binary operator is, or rather, its precedence: we thus rename
 % it |\operand:Nw|.  Let us describe as an example how the calculation
 % |41-2^3*4+5| will be done.  Here, we abuse notations: the first
-% argument of |\operand:Nw| should be an integer constant (\cs{c_three},
-% \cs{c_nine}, \ldots{}) equal to the precedence of the given operator,
+% argument of |\operand:Nw| should be an integer constant (\cs{c_@@_prec_plus_int},
+% \ldots{}) equal to the precedence of the given operator,
 % not directly the operator itself.
 % \begin{itemize}
 %   \item Clean up~|41| and find~|-|.  We call |\operand:Nw|~|-| to find
@@ -1736,7 +1759,7 @@
 % \begin{macro}[EXP, aux]{\@@_parse_prefix_-:Nw, \@@_parse_prefix_!:Nw}
 %   The unary~|-| and boolean not are harder: we parse the operand using
 %   a precedence equal to the maximum of the previous precedence~|##1|
-%   and the precedence \cs{c_twelve} of the unary operator, then call
+%   and the precedence \cs{c_@@_prec_not_int} of the unary operator, then call
 %   the appropriate |\__fp_|\meta{operation}|_o:w| function,
 %   where the \meta{operation} is |set_sign| or |not|.
 %    \begin{macrocode}
@@ -1757,8 +1780,8 @@
         \@@_parse_expand:w
       }
   }
-\@@_tmp:w - \c_twelve \@@_set_sign_o:w 2
-\@@_tmp:w ! \c_twelve \@@_not_o:w ?
+\@@_tmp:w - \c_@@_prec_not_int \@@_set_sign_o:w 2
+\@@_tmp:w ! \c_@@_prec_not_int \@@_not_o:w ?
 %    \end{macrocode}
 % \end{macro}
 %
@@ -1801,10 +1824,10 @@
       \exp_after:wN \@@_parse_lparen_after:NwN
       \exp_after:wN #1
       \exp:w
-      \if_int_compare:w #1 = \c_sixteen
-        \@@_parse_operand:Nw \c_one
+      \if_int_compare:w #1 = \c_@@_prec_funcii_int
+        \@@_parse_operand:Nw \c_@@_prec_comma_int
       \else:
-        \@@_parse_operand:Nw \c_zero
+        \@@_parse_operand:Nw \c_@@_prec_paren_int
       \fi:
       \@@_parse_expand:w
     }
@@ -1827,31 +1850,15 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{macro}[aux, EXP, verb]{\@@_parse_prefix_,:Nw}
 % \begin{macro}[aux, EXP]{\@@_parse_prefix_):Nw}
-%   The right parenthesis and the comma can appear as unary prefixes
-%   when an argument of a multi-argument function is missing (for
-%   instance the first and last ones in |max(,1,2,)| or in |rand()|).
-%   In single-argument functions (precedence~$0$ rather than~$1$) forbid
-%   this.
+%   The right parenthesis can appear as unary prefixes when arguments of
+%   a multi-argument function end with a comma, or when there is no
+%   argument, as in |max(1,2,)| or in |rand()|.  In single-argument
+%   functions (precedence~$0$ rather than~$1$) forbid this.
 %    \begin{macrocode}
-\cs_new:cpn { @@_parse_prefix_,:Nw } #1
-  {
-    \if_int_compare:w #1 = \c_one
-      \exp_after:wN \@@_parse_one:Nw
-      \exp_after:wN #1
-    \else:
-      \__msg_kernel_expandable_error:nnn
-        { kernel } { fp-missing-number } { , }
-      \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w
-      \exp_after:wN \@@_parse_infix:NN
-      \exp_after:wN #1
-      \exp_after:wN ,
-    \fi:
-  }
 \cs_new:cpn { @@_parse_prefix_):Nw } #1
   {
-    \if_int_compare:w #1 = \c_one
+    \if_int_compare:w #1 = \c_@@_prec_comma_int
     \else:
       \__msg_kernel_expandable_error:nnn
         { kernel } { fp-missing-number } { ) }
@@ -1861,7 +1868,6 @@
   }
 %    \end{macrocode}
 % \end{macro}
-% \end{macro}
 %
 % \subsubsection{Constants}
 %
@@ -1958,7 +1964,7 @@
     \exp_after:wN #2
     \cs:w @@_#1_o:w \exp_after:wN \cs_end:
     \exp:w
-    \@@_parse_operand:Nw \c_fifteen \@@_parse_expand:w
+    \@@_parse_operand:Nw \c_@@_prec_func_int \@@_parse_expand:w
   }
 \cs_new:Npn \@@_parse_function:NNN #1#2#3
   {
@@ -1967,7 +1973,7 @@
     \exp_after:wN #2
     \exp_after:wN #1
     \exp:w
-    \@@_parse_operand:Nw \c_sixteen \@@_parse_expand:w
+    \@@_parse_operand:Nw \c_@@_prec_funcii_int \@@_parse_expand:w
   }
 %    \end{macrocode}
 % \end{macro}
@@ -2108,7 +2114,7 @@
 %   Start an \cs{exp:w} expansion so that \cs{@@_parse:n} expands
 %   in two steps.  The \cs{@@_parse_operand:Nw} function will perform
 %   computations until reaching an operation with precedence
-%   \cs{c_minus_one} or less, namely, the end of the expression.  The
+%   \cs{c_@@_prec_end_int} or less, namely, the end of the expression.  The
 %   marker \cs{s_@@_mark} indicates that the next token is an already
 %   parsed version of an infix operator, and \cs{@@_parse_infix_end:N}
 %   has infinitely negative precedence.  Finally, clean up a
@@ -2120,7 +2126,7 @@
     \exp:w
       \exp_after:wN \@@_parse_after:ww
       \exp:w
-        \@@_parse_operand:Nw \c_minus_one
+        \@@_parse_operand:Nw \c_@@_prec_end_int
         \@@_parse_expand:w #1
         \s_@@_mark \@@_parse_infix_end:N
       \s_@@_stop
@@ -2272,7 +2278,7 @@
   \char_set_catcode_letter:N \)
   \cs_new:Npn \@@_parse_infix_):N #1
     {
-      \if_int_compare:w #1 < \c_zero
+      \if_int_compare:w #1 < \c_@@_prec_paren_int
         \__msg_kernel_expandable_error:nnn { kernel } { fp-extra } { ) }
         \exp_after:wN \@@_parse_infix:NN
         \exp_after:wN #1
@@ -2288,37 +2294,53 @@
 % \end{macro}
 %
 % \begin{macro}[aux, verb, EXP]{\__fp_parse_infix_,:N}
+% \begin{macro}[aux, EXP]{\@@_parse_infix_comma:w, \@@_parse_infix_comma_error:w}
+% \begin{macro}[aux, verb, EXP]{\__fp_,_o:ww}
+%   \cs{@@_,_o:ww} is a complicated way of replacing any number of
+%   floating point arguments by \texttt{nan}.
 %    \begin{macrocode}
 \group_begin:
   \char_set_catcode_letter:N \,
   \cs_new:Npn \@@_parse_infix_,:N #1
     {
-      \if_int_compare:w #1 > \c_one
+      \if_int_compare:w #1 > \c_@@_prec_comma_int
         \exp_after:wN @
         \exp_after:wN \use_none:n
         \exp_after:wN \@@_parse_infix_,:N
       \else:
-        \if_int_compare:w #1 = \c_one
-          \exp_after:wN \@@_parse_infix_comma:w
-          \exp:w
-        \else:
-          \exp_after:wN \@@_parse_infix_comma_gobble:w
-          \exp:w
+        \if_int_compare:w #1 < \c_@@_prec_comma_int
+          \@@_parse_infix_comma_error:w
         \fi:
-        \@@_parse_operand:Nw \c_one
+        \exp_after:wN \@@_parse_infix_comma:w
+        \exp:w \@@_parse_operand:Nw \c_@@_prec_comma_int
         \exp_after:wN \@@_parse_expand:w
       \fi:
     }
   \cs_new:Npn \@@_parse_infix_comma:w #1 @
     { #1 @ \use_none:n }
-  \cs_new:Npn \@@_parse_infix_comma_gobble:w #1 @
+  \cs_new:Npn \@@_parse_infix_comma_error:w #1 \exp:w
     {
+      \fi:
       \__msg_kernel_expandable_error:nn { kernel } { fp-extra-comma }
-      @ \use_none:n
+      \exp_after:wN @
+      \exp_after:wN \@@_parse_apply_binary:NwNwN
+      \exp_after:wN ,
+      \exp:w
     }
+  \cs_new:Npn \@@_,_o:ww #1
+    {
+      \if_meaning:w \s_@@ #1
+        \exp_after:wN \@@_use_i_until_s:nw
+        \exp_after:wN \@@_,_o:ww
+      \fi:
+      \exp_after:wN \c_nan_fp
+      #1
+    }
 \group_end:
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
+% \end{macro}
 %
 % \subsubsection{Usual infix operators}
 %
@@ -2367,13 +2389,13 @@
           \fi:
         }
     }
-  \@@_tmp:w \@@_parse_infix_^:N   ^ \c_fifteen \c_fourteen
-  \@@_tmp:w \@@_parse_infix_/:N   / \c_ten     \c_ten
-  \@@_tmp:w \@@_parse_infix_mul:N * \c_ten     \c_ten
-  \@@_tmp:w \@@_parse_infix_-:N   - \c_nine    \c_nine
-  \@@_tmp:w \@@_parse_infix_+:N   + \c_nine    \c_nine
-  \@@_tmp:w \@@_parse_infix_and:N & \c_five    \c_five
-  \@@_tmp:w \@@_parse_infix_or:N  | \c_four    \c_four
+  \@@_tmp:w \@@_parse_infix_^:N   ^ \c_@@_prec_hatii_int \c_@@_prec_hat_int
+  \@@_tmp:w \@@_parse_infix_/:N   / \c_@@_prec_times_int \c_@@_prec_times_int
+  \@@_tmp:w \@@_parse_infix_mul:N * \c_@@_prec_times_int \c_@@_prec_times_int
+  \@@_tmp:w \@@_parse_infix_-:N   - \c_@@_prec_plus_int  \c_@@_prec_plus_int
+  \@@_tmp:w \@@_parse_infix_+:N   + \c_@@_prec_plus_int  \c_@@_prec_plus_int
+  \@@_tmp:w \@@_parse_infix_and:N & \c_@@_prec_and_int   \c_@@_prec_and_int
+  \@@_tmp:w \@@_parse_infix_or:N  | \c_@@_prec_or_int    \c_@@_prec_or_int
 \group_end:
 %    \end{macrocode}
 % \end{macro}
@@ -2403,11 +2425,11 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_parse_infix_juxtapose:N #1
   {
-    \if_int_compare:w #1 < \c_ten
+    \if_int_compare:w #1 < \c_@@_prec_times_int
       \exp_after:wN @
       \exp_after:wN \@@_parse_apply_juxtapose:NwwN
       \exp:w
-      \@@_parse_operand:Nw \c_ten
+      \@@_parse_operand:Nw \c_@@_prec_times_int
       \exp_after:wN \@@_parse_expand:w
     \else:
       \exp_after:wN @
@@ -2493,11 +2515,11 @@
   \char_set_catcode_letter:N \?
   \cs_new:Npn \@@_parse_infix_?:N #1
     {
-      \if_int_compare:w #1 < \c_three
+      \if_int_compare:w #1 < \c_@@_prec_quest_int
         \exp_after:wN @
         \exp_after:wN \@@_ternary:NwwN
         \exp:w
-        \@@_parse_operand:Nw \c_three
+        \@@_parse_operand:Nw \c_@@_prec_quest_int
         \exp_after:wN \@@_parse_expand:w
       \else:
         \exp_after:wN @
@@ -2507,13 +2529,13 @@
     }
   \cs_new:Npn \@@_parse_infix_::N #1
     {
-      \if_int_compare:w #1 < \c_three
+      \if_int_compare:w #1 < \c_@@_prec_quest_int
         \__msg_kernel_expandable_error:nnnn
           { kernel } { fp-missing } { ? } { ~for~?: }
         \exp_after:wN @
         \exp_after:wN \@@_ternary_auxii:NwwN
         \exp:w
-        \@@_parse_operand:Nw \c_two
+        \@@_parse_operand:Nw \c_@@_prec_colon_int
         \exp_after:wN \@@_parse_expand:w
       \else:
         \exp_after:wN @
@@ -2574,7 +2596,7 @@
   }
 \cs_new:Npn \@@_parse_compare:NNNNNNN #1
   {
-    \if_int_compare:w #1 < \c_seven
+    \if_int_compare:w #1 < \c_@@_prec_comp_int
       \exp_after:wN \@@_parse_compare_auxi:NNNNNNN
       \exp_after:wN \@@_parse_excl_error:
     \else:
@@ -2587,7 +2609,7 @@
   {
     \if_case:w
           \if_catcode:w \scan_stop: \exp_not:N #7
-            \c_minus_one
+            \c_four
           \else:
             \__int_eval:w `#7 - `< \__int_eval_end:
           \fi:
@@ -2620,7 +2642,7 @@
     \exp_after:wN #3
     \exp_after:wN #4
     \exp:w
-    \@@_parse_operand:Nw \c_seven \@@_parse_expand:w #5
+    \@@_parse_operand:Nw \c_@@_prec_comp_int \@@_parse_expand:w #5
   }
 \cs_new:Npn \@@_parse_apply_compare:NwNNNNNwN
     #1 #2@ #3 #4#5#6#7 #8@ #9
@@ -2677,7 +2699,7 @@
     \exp_after:wN \@@_function_apply:nw
     \exp_after:wN #1
     \exp:w
-      \@@_parse_operand:Nw \c_sixteen \@@_parse_expand:w
+      \@@_parse_operand:Nw \c_@@_prec_funcii_int \@@_parse_expand:w
   }
 %    \end{macrocode}
 % \end{macro}
@@ -2713,7 +2735,7 @@
             \__int_value:w #3 \exp_after:wN ; \exp_after:wN
           }
         \exp:w
-          \@@_parse_operand:Nw \c_sixteen \@@_parse_expand:w
+          \@@_parse_operand:Nw \c_@@_prec_funcii_int \@@_parse_expand:w
       }
     \cs_new:Npn #2 #4 {#5}
   }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3fp-random.dtx Copyright (C) 2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-random.dtx 6750 2016-11-21 01:24:26Z bruno $
+\GetIdInfo$Id: l3fp-random.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point random numbers}
 \begin{document}
   \DocInput{\jobname.dtx}
@@ -76,15 +62,128 @@
 %<@@=fp>
 %    \end{macrocode}
 %
+% \subsection{Engine support}
+%
+% At present, \XeTeX{}, \pTeX{} and \upTeX{} do not provide random
+% numbers, while \LuaTeX{} and \pdfTeX{} provide the primitive
+% \cs{pdftex_uniformdeviate:D} (\tn{pdfuniformdeviate} in \pdfTeX{} and
+% \tn{uniformdeviate} in \LuaTeX{}).  We write the test twice simply in
+% order to write the \texttt{false} branch first.
+%    \begin{macrocode}
+\cs_if_exist:NF \pdftex_uniformdeviate:D
+  {
+    \__msg_kernel_new:nnn { kernel } { fp-no-random }
+      { Random~numbers~unavailable }
+    \cs_new:Npn \@@_rand_o:Nw ? #1 @
+      {
+        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
+        \exp_after:wN \c_nan_fp
+      }
+    \cs_new_eq:NN \@@_randint_o:Nw \@@_rand_o:Nw
+  }
+\cs_if_exist:NT \pdftex_uniformdeviate:D
+  {
+%    \end{macrocode}
+%
+% \begin{macro}[EXP, int]{\@@_rand_uniform:}
+% \begin{variable}
+%   {
+%     \c_@@_rand_size_int,
+%     \c_@@_rand_four_int,
+%     \c_@@_rand_eight_int,
+%   }
+%   The \cs{pdftex_uniformdeviate:D} primitive gives a pseudo-random
+%   integer in a range $[0,n-1]$ of the user's choice.  This number is
+%   meant to be uniformly distributed, but is produced by rescaling a
+%   uniform pseudo-random integer in $[0,2^{28}-1]$.  For instance,
+%   setting~$n$ to (any multiple of) $2^{29}$ gives only even values.
+%   Thus it is only safe to call \cs{pdftex_uniformdeviate:D} with
+%   argument $2^{28}$.  This integer is also used in the implementation
+%   of \cs{int_rand:nn}.  We will also use variants of this number
+%   rounded down to multiples of $10^4$ and $10^8$.
+%    \begin{macrocode}
+\cs_new:Npn \@@_rand_uniform:
+  { \pdftex_uniformdeviate:D \c_@@_rand_size_int }
+\int_const:Nn \c_@@_rand_size_int   { 268 435 456 }
+\int_const:Nn \c_@@_rand_four_int   { 268 430 000 }
+\int_const:Nn \c_@@_rand_eight_int  { 200 000 000 }
+%    \end{macrocode}
+% \end{variable}
+% \end{macro}
+%
+% \begin{macro}[EXP, int]{\@@_rand_myriads:n}
+% \begin{macro}[EXP, aux]
+%   {
+%     \@@_rand_myriads_loop:nn,
+%     \@@_rand_myriads_get:w,
+%     \@@_rand_myriads_last:,
+%     \@@_rand_myriads_last:w,
+%   }
+%   Used as \cs{@@_rand_myriads:n} |{XXX}| with one input character per
+%   block of four digit we want.  Given a pseudo-random integer from the
+%   primitive, we extract $2$ blocks of digits if possible, namely if
+%   the integer is less than $2\times 10^8$.  If that's not possible,
+%   we try to extract $1$~block, which succeeds in the range $[2\times
+%   10^8, 26843\times 10^4)$.  For the $5456$ remaining possible values
+%   we just throw away the random integer and get a new one.  Depending
+%   on whether we got $2$, $1$, or~$0$ blocks, remove the same number of
+%   characters from the input stream with \cs{use_i:nnn}, \cs{use_i:nn}
+%   or nothing.
+%    \begin{macrocode}
+\cs_new:Npn \@@_rand_myriads:n #1
+  {
+    \@@_rand_myriads_loop:nn #1
+      { ? \use_i_delimit_by_q_stop:nw \@@_rand_myriads_last: }
+      { ? \use_none_delimit_by_q_stop:w } \q_stop
+  }
+\cs_new:Npn \@@_rand_myriads_loop:nn #1#2
+  {
+    \use_none:n #2
+    \exp_after:wN \@@_rand_myriads_get:w
+    \__int_value:w \@@_rand_uniform: ; {#1}{#2}
+  }
+\cs_new:Npn \@@_rand_myriads_get:w #1 ;
+  {
+    \if_int_compare:w #1 < \c_@@_rand_eight_int
+      \exp_after:wN \use_none:n
+      \__int_value:w \__int_eval:w
+        \c_@@_rand_eight_int + #1 \__int_eval_end:
+      \exp_after:wN \use_i:nnn
+    \else:
+      \if_int_compare:w #1 < \c_@@_rand_four_int
+        \exp_after:wN \use_none:nnnnn
+        \__int_value:w \__int_eval:w
+          \c_@@_rand_four_int + #1 \__int_eval_end:
+        \exp_after:wN \exp_after:wN \exp_after:wN \use_i:nn
+      \fi:
+    \fi:
+    \@@_rand_myriads_loop:nn
+  }
+\cs_new:Npn \@@_rand_myriads_last:
+  {
+    \exp_after:wN \@@_rand_myriads_last:w
+    \__int_value:w \@@_rand_uniform: ;
+  }
+\cs_new:Npn \@@_rand_myriads_last:w #1 ;
+  {
+    \if_int_compare:w #1 < \c_@@_rand_four_int
+      \exp_after:wN \use_none:nnnnn
+      \__int_value:w \__int_eval:w
+        \c_@@_rand_four_int + #1 \__int_eval_end:
+    \else:
+      \exp_after:wN \@@_rand_myriads_last:
+    \fi:
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \subsection{Random floating point}
 %
 % \begin{macro}[EXP, int]{\@@_rand_o:Nw}
-% \begin{macro}[EXP, aux]{\@@_rand_o:}
-%   Check that |random| was called without argument.  Random numbers are
-%   only available if the engine defines a primitive equivalent to
-%   \pdfTeX{}'s \tn{pdfuniformdeviate}.  A random floating point number
-%   in $[0,1)$, uniformly distributed with equal-spaced steps of
-%   $10^{-16}$ is obtained by combining two integers in $[0,10^8-1]$.
+% \begin{macro}[EXP, aux]{\@@_rand_o:, \@@_rand_o:w}
+%   First we check that |random| was called without argument.  Then get
+%   four blocks of four digits.
 %    \begin{macrocode}
 \cs_new:Npn \@@_rand_o:Nw ? #1 @
   {
@@ -96,29 +195,8 @@
         \exp_after:wN \c_nan_fp
       }
   }
-\cs_if_exist:NTF \pdftex_uniformdeviate:D
-  {
-    \cs_new:Npn \@@_rand_o:
-      {
-        \@@_parse_o:n
-          {
-            .
-            \exp_after:wN \use_none:n
-            \__int_value:w \__int_eval:w 1 0000 0000 +
-              \pdftex_uniformdeviate:D 1 0000 0000 \__int_eval_end:
-            \exp_after:wN \use_none:n
-            \__int_value:w \__int_eval:w 1 0000 0000 +
-              \pdftex_uniformdeviate:D 1 0000 0000 \__int_eval_end:
-          }
-      }
-  }
-  {
-    \cs_new:Npn \@@_rand_o:
-      {
-        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
-        \exp_after:wN \c_nan_fp
-      }
-  }
+\cs_new:Npn \@@_rand_o:
+  { \@@_parse_o:n { . \@@_rand_myriads:n { xxxx } } }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -130,29 +208,33 @@
 %   {
 %     \@@_randint_badarg:w,
 %     \@@_randint_e:w,
-%     \@@_randint_narrow_e:nn,
-%     \@@_randint_wide_e:nn,
-%     \@@_randint_wide_e:nnn,
+%     \@@_randint_e:wnn,
+%     \@@_randint_e:wwNnn,
+%     \@@_randint_e:wwwNnn,
+%     \@@_randint_narrow_e:nnnn,
 %     \@@_randint_wide_e:nnnn,
+%     \@@_randint_wide_e:wnnn,
 %   }
 %     Enforce that there is one argument (then add first argument~$1$)
 %     or two arguments.  Enforce that they are integers in
-%     $(-10^{16},10^{16})$ and ordered.
+%     $(-10^{16},10^{16})$ and ordered.  We distinguish narrow ranges
+%     (less than $2^{28}$) from wider ones.
 %
-%     When the range is narrow (less than $2\times 10^9$) we can
-%     directly use the primitive.  Otherwise we use the primitive twice.
-%     To ensure a uniform distribution we combine two uniformly
-%     distributed integers into a total range greater or equal to our
-%     target range and try again if the random number ended up being too
-%     big.
+%     For narrow ranges, compute the number~$n$ of possible outputs as
+%     an integer using \cs{fp_to_int:n}, and reduce a pseudo-random
+%     $28$-bit integer~$r$ modulo~$n$.  On its own, this is not uniform
+%     when $[0,2^{28}-1]$ does not divide evenly into intervals of
+%     size~$n$.  The auxiliary \cs{@@_randint_e:wwwNnn} discards the
+%     pseudo-random integer if it lies in an incomplete interval, and
+%     repeats.
 %
-%     The strange |+\c_six| ensures that the first argument of
-%     \cs{@@_randint_wide_e:nnn} is larger than $10^{-8}$ times the
-%     difference between the end-points even if these are near
-%     $-10^{16}$ and $+10^{16}$ (their difference is rounded to sixteen
-%     digits).  Note that we cannot just concatenate the two random
-%     numbers provided by the engine as that may give an integer up to
-%     (almost) $2\times 10^{16}$ which incurs rounding.
+%     For wide ranges we use the same code except for the last eight
+%     digits which use \cs{@@_rand_myriads:n}.  It is not safe to
+%     combine the first digits with the last eight as a single string of
+%     digits, as this may exceed $16$~digits and be rounded.  Instead,
+%     we first add the first few digits (times $10^8$) to the lower
+%     bound.  The result is compared to the upper bound and the process
+%     repeats if needed.
 %    \begin{macrocode}
 \cs_new:Npn \@@_randint_o:Nw ? #1 @
   {
@@ -186,10 +268,8 @@
         \@@_randint_badarg:w #1;
         \@@_randint_badarg:w #2;
         \fp_compare:nNnTF { #1; } > { #2; } { \c_one } { \c_zero }
-      \fp_compare:nNnTF { #1; + 2e9 } < { #2; }
-        { \@@_randint_wide_e:nn }
-        { \@@_randint_narrow_e:nn }
-        { #1; } { #2; }
+      \exp_after:wN \exp_after:wN \exp_after:wN \@@_randint_e:wnn
+        \@@_parse:n { #2; - #1; } { #1; } { #2; }
     \or:
       \@@_invalid_operation_tl_o:ff
         { randint } { \@@_array_to_clist:n { #1; #2; } }
@@ -196,63 +276,56 @@
       \exp:w
     \fi:
   }
-\cs_if_exist:NTF \pdftex_uniformdeviate:D
+\cs_new:Npn \@@_randint_e:wnn #1;
   {
-    \cs_new:Npn \@@_randint_narrow_e:nn #1#2
+    \exp_after:wN \@@_randint_e:wwNnn
+    \__int_value:w \@@_rand_uniform: \exp_after:wN ;
+    \exp:w \exp_end_continue_f:w
+      \fp_compare:nNnTF { #1 ; } < \c_@@_rand_size_int
+        { \fp_to_int:n { #1 ; + 1 } ; \@@_randint_narrow_e:nnnn }
+        { \fp_to_int:n { floor(#1 ; * 1e-8 + 1) } ; \@@_randint_wide_e:nnnn }
+  }
+\cs_new:Npn \@@_randint_e:wwNnn #1 ; #2 ;
+  {
+    \exp_after:wN \@@_randint_e:wwwNnn
+    \__int_value:w \int_mod:nn {#1} {#2} ; #1 ; #2 ;
+  }
+\cs_new:Npn \@@_randint_e:wwwNnn #1 ; #2 ; #3 ; #4
+  {
+    \int_compare:nNnTF { #2 - #1 + #3 } > \c_@@_rand_size_int
       {
-        \@@_parse_o:n
-          {
-            #1 +
-            \pdftex_uniformdeviate:D
-              \int_eval:n { \fp_to_int:n { #2 - #1 } + \c_one }
-          }
-        \exp:w
+        \exp_after:wN \@@_randint_e:wwNnn
+          \__int_value:w \@@_rand_uniform: ; #3 ; #4
       }
-    \cs_new:Npn \@@_randint_wide_e:nn #1 #2
-      {
-        \exp_args:Nf \@@_randint_wide_e:nnn
-          { \fp_to_int:n { ceil ( ( #2 - #1 + \c_six ) * 1e-8 ) } }
-          {#1} {#2}
-      }
-    \cs_new:Npn \@@_randint_wide_e:nnn #1#2#3
-      {
-        \exp_args:Nf \@@_randint_wide_e:nnnn
-          {
-            \@@_parse:n
-              {
-                #2 +
-                \pdftex_uniformdeviate:D #1 e 8 +
-                \pdftex_uniformdeviate:D 1 0000 0000
-              }
-          }
-          {#1} {#2} {#3}
-      }
-    \cs_new:Npn \@@_randint_wide_e:nnnn #1#2#3#4
-      {
-        \fp_compare:nNnTF {#1} > {#4}
-          { \@@_randint_wide_e:nnn {#2} {#3} {#4} }
-          { \@@_exp_after_o:w #1 \exp:w }
-      }
+      { #4 {#1} {#3} }
   }
+\cs_new:Npn \@@_randint_narrow_e:nnnn #1#2#3#4
+  { \@@_parse_o:n { #3 + #1 } \exp:w }
+\cs_new:Npn \@@_randint_wide_e:nnnn #1#2#3#4
   {
-    \cs_new:Npn \@@_randint_narrow_e:nn #1#2
+    \exp_after:wN \exp_after:wN
+    \exp_after:wN \@@_randint_wide_e:wnnn
+      \@@_parse:n { #3 + #1e8 + \@@_rand_myriads:n { xx } }
+      {#2} {#3} {#4}
+  }
+\cs_new:Npn \@@_randint_wide_e:wnnn #1 ; #2#3#4
+  {
+    \fp_compare:nNnTF { #1 ; } > {#4}
       {
-        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
-        \exp_after:wN \c_nan_fp \exp:w
+        \exp_after:wN \@@_randint_e:wwNnn
+          \__int_value:w \@@_rand_uniform: ; #2 ;
+          \@@_randint_wide_e:nnnn {#3} {#4}
       }
-    \cs_new:Npn \@@_randint_wide_e:nn #1#2
-      {
-        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
-        \exp_after:wN \c_nan_fp \exp:w
-      }
+      { \@@_exp_after_o:w #1 ; \exp:w }
   }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 %
+% End the initial conditional that ensures these commands are only
+% defined in \pdfTeX{} and \LuaTeX{}.
 %    \begin{macrocode}
-\__msg_kernel_new:nnn { kernel } { fp-no-random }
-  { Random~numbers~unavailable }
+  }
 %    \end{macrocode}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3fp-round.dtx Copyright(C) 2011-2012,2014-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-round.dtx 6750 2016-11-21 01:24:26Z bruno $
+\GetIdInfo$Id: l3fp-round.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point rounding}
 \begin{document}
   \DocInput{\jobname.dtx}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
-%%
+%
 %% File: l3fp-traps.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-traps.dtx 6596 2016-06-13 21:29:58Z joseph $
+\GetIdInfo$Id: l3fp-traps.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point exception trapping}
 \begin{document}
   \DocInput{\jobname.dtx}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,42 +1,28 @@
 % \iffalse meta-comment
 %
 %% File: l3fp-trig.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
-\GetIdInfo$Id: l3fp-trig.dtx 6723 2016-10-17 16:42:15Z bruno $
+\GetIdInfo$Id: l3fp-trig.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating-point trigonometric functions}
 \begin{document}
   \DocInput{\jobname.dtx}
@@ -1272,7 +1258,7 @@
 %    \begin{macrocode}
 \cs_new:Npn \@@_atan_Taylor_loop:www #1; #2; #3;
   {
-    \if_int_compare:w #1 = \c_minus_one
+    \if_int_compare:w #1 = - \c_one
       \@@_atan_Taylor_break:w
     \fi:
     \exp_after:wN \@@_fixed_div_int:wwN \c_@@_one_fixed_tl ; #1;

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,44 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3fp.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3fp.dtx 6761 2016-11-21 21:48:43Z joseph $
+\GetIdInfo$Id: l3fp.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating points}
 %</driver|package>
 %<*driver>
@@ -91,7 +77,6 @@
 %   \item Boolean logic: negation $\mathop{!}x$, conjunction
 %     $x\mathop{\&\&}y$, disjunction $x\mathop{\vert\vert}y$, ternary
 %     operator $x\mathop{?}y\mathop{:}z$.
-%   \item Random numbers: $\mathop{rand}()$, $\mathop{randint}(m,n)$.
 %   \item Exponentials: $\exp x$, $\ln x$, $x^y$.
 %   \item Trigonometry: $\sin x$, $\cos x$, $\tan x$, $\cot x$, $\sec
 %     x$, $\csc x$ expecting their arguments in radians, and
@@ -123,6 +108,8 @@
 %     ties rounded to an even value by default, towards zero if $t=0$,
 %     towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$.  And
 %     \emph{(not yet)} modulo, and \enquote{quantize}.
+%   \item Random numbers: $\mathop{rand}()$, $\mathop{randint}(m,n)$ in
+%     \pdfTeX{} and \LuaTeX{} engines.
 %   \item Constants: \texttt{pi}, \texttt{deg} (one degree in radians).
 %   \item Dimensions, automatically expressed in points, \emph{e.g.},
 %     \texttt{pc} is~$12$.
@@ -541,8 +528,8 @@
 %   \texttt{false}.
 % \end{function}
 %
-% \begin{function}[added = 2016-11-21, rEXP]
-%   {\fp_step_function:nnnN}
+% \begin{function}[added = 2016-11-21, updated = 2016-12-06, rEXP]
+%   {\fp_step_function:nnnN, \fp_step_function:nnnc}
 %   \begin{syntax}
 %     \cs{fp_step_function:nnnN} \Arg{initial value} \Arg{step} \Arg{final value} \meta{function}
 %   \end{syntax}
@@ -569,9 +556,14 @@
 %     [I saw 1.4] \quad
 %     [I saw 1.5] \quad
 %   \end{quote}
+%   \begin{texnote}
+%     Due to rounding, it may happen that adding the \meta{step} to the
+%     \meta{value} does not change the \meta{value}; such cases give an
+%     error, as they would otherwise lead to an infinite loop.
+%   \end{texnote}
 % \end{function}
 %
-% \begin{function}[added = 2016-11-21]
+% \begin{function}[added = 2016-11-21, updated = 2016-12-06]
 %   {\fp_step_inline:nnnn}
 %   \begin{syntax}
 %     \cs{fp_step_inline:nnnn} \Arg{initial value} \Arg{step} \Arg{final value} \Arg{code}
@@ -1180,20 +1172,36 @@
 %   $\sqrt{\text{\nan{}}}=\text{\nan{}}$.
 % \end{function}
 %
-% \begin{function}[added = 2016-11-20]{rand}
+% \begin{function}[added = 2016-12-05]{rand}
 %   \begin{syntax}
 %     \cs{fp_eval:n} \{ |rand()| \}
 %   \end{syntax}
 %   Produces a pseudo-random floating-point number (multiple of
-%   $10^{-16}$) between $0$~included and $1$~excluded.
+%   $10^{-16}$) between $0$~included and $1$~excluded.  Available in
+%   \pdfTeX{} and \LuaTeX{} engines only.
 %   \begin{texnote}
-%     This is a wrapper around \tn{pdfuniformdeviate}.  The random seed
-%     can be queried using \tn{pdfrandomseed} and set using
-%     \tn{pdfsetrandomseed}.
+%     This is based on pseudo-random numbers provided by the engine's
+%     primitive \tn{pdfuniformdeviate} in \pdfTeX{} and
+%     \tn{uniformdeviate} in \LuaTeX{}.  The underlying code in
+%     \pdfTeX{} and \LuaTeX{} is based on Metapost, which follows an
+%     additive scheme recommended in Section 3.6 of \enquote{The Art of
+%     Computer Programming, Volume~2}.
+%
+%     While we are more careful than \tn{uniformdeviate} to preserve
+%     uniformity of the underlying stream of $28$-bit pseudo-random
+%     integers, these pseudo-random numbers should of course not be
+%     relied upon for serious numerical computations nor cryptography.
+%
+%     The random seed can be queried using \tn{pdfrandomseed} and set
+%     using \tn{pdfsetrandomseed} (in \LuaTeX{} \tn{randomseed} and
+%     \tn{setrandomseed}).  While a $32$-bit (signed) integer can be
+%     given as a seed, only the absolute value is used and any number
+%     beyond $2^{28}$ is divided by an appropriate power of~$2$.  We
+%     recommend using an integer in $[0,2^{28}-1]$.
 %   \end{texnote}
 % \end{function}
 %
-% \begin{function}[added = 2016-11-20]{randint}
+% \begin{function}[added = 2016-12-05]{randint}
 %   \begin{syntax}
 %     \cs{fp_eval:n} \{ |randint(| \meta{fpexpr} |)| \}
 %     \cs{fp_eval:n} \{ |randint(| \meta{fpexpr_1} , \meta{fpexpr_2} |)| \}
@@ -1201,12 +1209,8 @@
 %   Produces a pseudo-random integer between $1$~and \meta{fpexpr} or
 %   between \meta{fpexpr_1} and \meta{fpexpr_2} inclusive.  The bounds
 %   must be integers in the range $(-10^{16},10^{16})$ and the first
-%   must be smaller or equal to the second.
-%   \begin{texnote}
-%     This is a wrapper around \tn{pdfuniformdeviate}.  The random seed
-%     can be queried using \tn{pdfrandomseed} and set using
-%     \tn{pdfsetrandomseed}.
-%   \end{texnote}
+%   must be smaller or equal to the second.  See \texttt{rand} for
+%   important comments on how these pseudo-random numbers are generated.
 % \end{function}
 %
 % \begin{variable}[tested = m3fp-parse001]{inf, nan}
@@ -1297,8 +1301,6 @@
 %   \item Hyperbolic functions \texttt{cosh}, \texttt{sinh}, \texttt{tanh}.
 %   \item Inverse hyperbolics.
 %   \item Base conversion, input such as \texttt{0xAB.CDEF}.
-%   \item Random numbers (pgfmath provides |rnd|, |rand|, |random|), with
-%     seed reset at every \cs{fp_set:Nn}.
 %   \item Factorial (not with |!|), gamma function.
 %   \item Improve coefficients of the \texttt{sin} and \texttt{tan}
 %     series.

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3int.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3int.dtx 6700 2016-09-07 22:16:49Z bruno $
+\GetIdInfo$Id: l3int.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Integers}
 %</driver|package>
 %<*driver>
@@ -1313,7 +1300,7 @@
 \cs_new_protected:Npn \int_incr:N #1
   { \tex_advance:D #1 \c_one }
 \cs_new_protected:Npn \int_decr:N #1
-  { \tex_advance:D #1 \c_minus_one }
+  { \tex_advance:D #1 - \c_one }
 \cs_new_protected:Npn \int_gincr:N
   { \tex_global:D \int_incr:N }
 \cs_new_protected:Npn \int_gdecr:N
@@ -2372,11 +2359,7 @@
 %
 % \subsection{Constant integers}
 %
-% \begin{variable}{\c_minus_one}
-%   This is needed early, and so is in \pkg{l3basics}
-% \end{variable}
-%
-% \begin{variable}{\c_zero, \c_sixteen}
+% \begin{variable}{\c_zero}
 %   Again, in \pkg{l3basics}
 % \end{variable}
 %
@@ -2384,7 +2367,7 @@
 %   {
 %     \c_one, \c_two, \c_three, \c_four, \c_five, \c_six, \c_seven, \c_eight,
 %     \c_nine, \c_ten, \c_eleven, \c_twelve, \c_thirteen, \c_fourteen,
-%     \c_fifteen
+%     \c_fifteen, \c_sixteen
 %   }
 % Low-number values not previously defined.
 %    \begin{macrocode}
@@ -2403,9 +2386,23 @@
 \int_const:Nn \c_thirteen { 13 }
 \int_const:Nn \c_fourteen { 14 }
 \int_const:Nn \c_fifteen  { 15 }
+\int_const:Nn \c_sixteen  { 16 }
 %    \end{macrocode}
 % \end{variable}
 %
+% \begin{variable}{\c_minus_one}
+%   The actual allocation mechanism is in \pkg{l3alloc}; it requires
+%   \cs{c_one} to be defined.  In package mode, reuse \tn{m at ne}.
+%    \begin{macrocode}
+%<*package>
+\cs_new_eq:NN \c_minus_one \m at ne
+%</package>
+%<*initex>
+\int_const:Nn \c_minus_one { -1 }
+%</initex>
+%    \end{macrocode}
+% \end{variable}
+%
 % \begin{variable}{\c_thirty_two}
 %   One middling value.
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
-%% File: l3keys.dtx Copyright (C) 2006-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% File: l3keys.dtx Copyright (C) 2006-2017 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3keys.dtx 6711 2016-09-21 07:04:35Z joseph $
+\GetIdInfo$Id: l3keys.dtx 6811 2017-01-01 08:50:54Z joseph $
   {L3 Key-value interfaces}
 %</driver|package>
 %<*driver>
@@ -320,6 +307,26 @@
 %   described in Section~\ref{sec:l3keys:selective}.
 % \end{function}
 %
+% \begin{function}[added = 2016-11-22]{.inherit:n}
+%   \begin{syntax}
+%     \meta{key} .inherit:n = \Arg{parents}
+%   \end{syntax}
+%   Specifies that the \meta{key} path should inherit the keys listed
+%   as \meta{parents}. For example, with setting
+%   \begin{verbatim}
+%     \keys_define:n { foo } { test .code:n = \tl_show:n {#1} }
+%     \keys_define:n { } { bar .inherit:n = foo }
+%   \end{verbatim}
+%   setting
+%   \begin{verbatim}
+%     \keys_set:n { bar } { test = a }
+%   \end{verbatim}
+%   will be equivalent to
+%   \begin{verbatim}
+%     \keys_set:n { foo } { test = a }
+%   \end{verbatim}
+% \end{function}
+%
 % \begin{function}[updated = 2013-07-09]
 %   {.initial:n, .initial:V, .initial:o, .initial:x}
 %   \begin{syntax}
@@ -1115,8 +1122,9 @@
 %   {
 %     \c_@@_code_root_tl    ,
 %     \c_@@_default_root_tl ,
-%     \c_@@_groups_root_tl,
-%     \c_@@_info_root_tl    ,
+%     \c_@@_groups_root_tl  ,
+%     \c_@@_inherit_root_tl  ,
+%     \c_@@_type_root_tl    ,
 %     \c_@@_validate_root_tl
 %   }
 %   Various storage areas for the different data which make up keys.
@@ -1124,7 +1132,8 @@
 \tl_const:Nn \c_@@_code_root_tl     { key~code~>~ }
 \tl_const:Nn \c_@@_default_root_tl  { key~default~>~ }
 \tl_const:Nn \c_@@_groups_root_tl   { key~groups~>~ }
-\tl_const:Nn \c_@@_info_root_tl     { key~info~>~ }
+\tl_const:Nn \c_@@_inherit_root_tl  { key~inherit~>~ }
+\tl_const:Nn \c_@@_type_root_tl     { key~type~>~ }
 \tl_const:Nn \c_@@_validate_root_tl { key~validate~>~ }
 %    \end{macrocode}
 % \end{variable}
@@ -1316,7 +1325,12 @@
       {
         \str_if_eq:nnTF {#3} { . }
           {
-            \tl_set:Nx \l_keys_path_tl { \l_@@_module_tl / #1 }
+            \tl_set:Nx \l_keys_path_tl
+              {
+                \tl_if_empty:NF \l_@@_module_tl
+                  { \l_@@_module_tl  / }
+                #1
+              }
             \tl_set:Nn \l_@@_property_tl { . #2 }
           }
           {
@@ -1376,35 +1390,6 @@
 %
 % \subsection{Turning properties into actions}
 %
-% \begin{macro}[int]{\@@_ensure_exist:n, \@@_ensure_exist:V}
-%   Used to make sure that a key implementation and the related property
-%   list will exist whenever this is required. We cannot use for example
-%   \cs{prop_clear_new:c} here as that would affect the order in which key
-%   properties must be set. As key definitions are never global we use
-%   |\cs_set_protected:cpn| not |\cs_new_protected:cpn| here. For the
-%   same reason, to avoid issues if the key has been undefined in the
-%   current scope but exists at a higher level, we do not use \cs{prop_new:c}
-%   but rather \cs{prop_set_eq:cN}. The function \cs{__chk_log:x} only
-%   writes to the log file if logging all new functions is active: without
-%   it keys would not show up (as we are not using \cs[no-index]{..._new}).
-%    \begin{macrocode}
-\cs_new_protected:Npn \@@_ensure_exist:n #1
-  {
-    \prop_if_exist:cF { \c_@@_info_root_tl #1 }
-      {
-        \prop_set_eq:cN { \c_@@_info_root_tl #1 } \c_empty_prop
-      }
-
-    \cs_if_exist:cF { \c_@@_code_root_tl #1 }
-      {
-        \__chk_log:x { Defining~key~#1~ \msg_line_context: }
-        \cs_set_protected:cpn { \c_@@_code_root_tl #1 } ##1 { }
-      }
-  }
-\cs_generate_variant:Nn \@@_ensure_exist:n { V }
-%    \end{macrocode}
-% \end{macro}
-%
 % \begin{macro}[int]{\@@_bool_set:Nn, \@@_bool_set:cn}
 %   Boolean keys are really just choices, but all done by hand. The
 %   second argument here is the scope: either empty or \texttt{ g } for
@@ -1452,13 +1437,10 @@
 % \end{macro}
 %
 % \begin{macro}[int]{\@@_choice_make:, \@@_multichoice_make:}
-% \begin{macro}[int]{\@@_choice_make:N}
+% \begin{macro}[aux]{\@@_choice_make:N}
 % \begin{macro}[aux]{\@@_choice_make_aux:N}
-% \begin{macro}[aux]{\@@_parent:n, \@@_parent:o}
-% \begin{macro}[aux]{\@@_parent:wn}
 %   To make a choice from a key, two steps: set the code, and set the
-%   unknown key. There is one point to watch here: choice keys cannot be
-%   nested! As multichoices and choices are essentially the same bar one
+%   unknown key. As multichoices and choices are essentially the same bar one
 %   function, the code is given together.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_choice_make:
@@ -1467,12 +1449,12 @@
   { \@@_choice_make:N \@@_multichoice_find:n }
 \cs_new_protected:Npn \@@_choice_make:N #1
   {
-    \prop_if_exist:cTF
-      { \c_@@_info_root_tl \@@_parent:o \l_keys_path_tl }
+    \cs_if_exist:cTF
+      { \c_@@_type_root_tl \@@_parent:o \l_keys_path_tl }
       {
-        \prop_get:cnNTF
-          { \c_@@_info_root_tl \@@_parent:o \l_keys_path_tl }
-          { choice } \l_keys_value_tl
+        \str_if_eq_x:nnTF
+          { \exp_not:v { \c_@@_type_root_tl \@@_parent:o \l_keys_path_tl } }
+          { choice }
           {
             \__msg_kernel_error:nnxx { kernel } { nested-choice-key }
               { \l_keys_path_tl } { \@@_parent:o \l_keys_path_tl }
@@ -1483,9 +1465,8 @@
   }
 \cs_new_protected:Npn \@@_choice_make_aux:N #1
   {
+    \cs_set_nopar:cpn { \c_@@_type_root_tl \l_keys_path_tl } { choice }
     \@@_cmd_set:nn { \l_keys_path_tl } { #1 {##1} }
-    \prop_put:cnn { \c_@@_info_root_tl \l_keys_path_tl } { choice }
-      { true }
     \@@_cmd_set:nn { \l_keys_path_tl / unknown }
       {
         \__msg_kernel_error:nnxx { kernel } { key-choice-unknown }
@@ -1492,23 +1473,10 @@
           { \l_keys_path_tl } {##1}
       }
   }
-\cs_new:Npn \@@_parent:n #1
-  { \@@_parent:wn #1 / / \q_stop { } }
-\cs_generate_variant:Nn \@@_parent:n { o }
-\cs_new:Npn \@@_parent:wn #1 / #2 / #3 \q_stop #4
-  {
-    \tl_if_blank:nTF {#2}
-      { \use_none:n #4 }
-      {
-        \@@_parent:wn #2 / #3 \q_stop { #4 / #1 }
-      }
-  }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
 % \end{macro}
-% \end{macro}
-% \end{macro}
 %
 % \begin{macro}[int]{\@@_choices_make:nn, \@@_multichoices_make:nn}
 % \begin{macro}[aux]{\@@_choices_make:Nnn}
@@ -1546,7 +1514,8 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_cmd_set:nn #1#2
   {
-    \@@_ensure_exist:V \l_keys_path_tl
+    \cs_if_exist:cF { \c_@@_code_root_tl #1 }
+      { \__chk_log:x { Defining~key~#1~\msg_line_context: } }
     \cs_set_protected:cpn { \c_@@_code_root_tl #1 } ##1 {#2}
   }
 \cs_generate_variant:Nn \@@_cmd_set:nn { nx , Vn , Vo }
@@ -1575,27 +1544,39 @@
 % \end{macro}
 %
 % \begin{macro}[int]{\@@_groups_set:n}
-%   Assigning a key to one or more groups uses comma lists. So that the comma
-%   list is \enquote{well-behaved} later, the storage is done via a stored
-%   list here, which does the normalisation.
+%   Assigning a key to one or more groups uses comma lists. As the list of
+%   groups only exists if there is anything to do, the setting is done using
+%   a scratch list. For the usual grouping reasons we use the low-level
+%   approach to undefining a list.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_groups_set:n #1
   {
-    \@@_ensure_exist:V \l_keys_path_tl
     \clist_set:Nn \l_@@_groups_clist {#1}
     \clist_if_empty:NTF \l_@@_groups_clist
       {
-        \prop_remove:cn { \c_@@_info_root_tl \l_keys_path_tl }
-          { groups }
+        \cs_set_eq:cN { \c_@@_groups_root_tl \l_keys_path_tl }
+          \tex_undefined:D
       }
       {
-        \prop_put:cnV { \c_@@_info_root_tl \l_keys_path_tl }
-          { groups } \l_@@_groups_clist
+        \clist_set_eq:cN { \c_@@_groups_root_tl \l_keys_path_tl }
+          \l_@@_groups_clist
       }
   }
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}[int]{\@@_inherit:n}
+%  Inheritance means ignoring anything already said about the key:
+%  zap the lot and set up.
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_inherit:n #1
+  {
+    \@@_undefine:
+    \cs_set_nopar:cpn { \c_@@_inherit_root_tl \l_keys_path_tl } {#1}
+  }
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}[int]{\@@_initialise:n}
 %   A set up for initialisation: just run the code if it exists.
 %    \begin{macrocode}
@@ -1631,7 +1612,7 @@
 \cs_new_protected:Npn \@@_undefine:
   {
     \clist_map_inline:nn
-      { code , default , groups , info , validate }
+      { code , default , groups , inherit , type , validate }
       {
         \cs_set_eq:cN
           { \tl_use:c { c_@@_ ##1 _root_tl } \l_keys_path_tl }
@@ -1866,6 +1847,14 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{.inherit:n}
+%   Nothing complex: only one variant at the moment!
+%    \begin{macrocode}
+\cs_new_protected:cpn { \c_@@_props_root_tl .inherit:n } #1
+  { \@@_inherit:n {#1} }
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{.initial:n, .initial:V, .initial:o, .initial:x}
 %   The standard hand-off approach.
 %    \begin{macrocode}
@@ -2143,7 +2132,12 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_set_aux:nnn #1#2#3
   {
-    \tl_set:Nx \l_keys_path_tl { #1 / \@@_remove_spaces:n {#2} }
+    \tl_set:Nx \l_keys_path_tl
+      {
+        \tl_if_blank:nF {#1}
+          { #1 / }
+        \@@_remove_spaces:n {#2}
+      }
     \tl_clear:N \l_@@_module_tl
     \exp_after:wN \@@_find_key_module:w \l_keys_path_tl / \q_stop
     \@@_value_or_default:n {#3}
@@ -2174,16 +2168,11 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_set_selective:
   {
-    \prop_if_exist:cTF { \c_@@_info_root_tl \l_keys_path_tl }
+    \cs_if_exist:cTF { \c_@@_groups_root_tl \l_keys_path_tl }
       {
-        \prop_get:cnNTF { \c_@@_info_root_tl \l_keys_path_tl }
-          { groups } \l_@@_groups_clist
-          { \@@_check_groups: }
-          {
-            \bool_if:NTF \l_@@_filtered_bool
-              { \@@_execute: }
-              { \@@_store_unused: }
-          }
+        \clist_set_eq:Nc \l_@@_groups_clist
+          { \c_@@_groups_root_tl \l_keys_path_tl }
+        \@@_check_groups:
       }
       {
         \bool_if:NTF \l_@@_filtered_bool
@@ -2274,23 +2263,41 @@
     \bool_if:NTF \l_@@_only_known_bool
       { \@@_store_unused: }
       {
-        \cs_if_exist:cTF { \c_@@_code_root_tl \l_@@_module_tl / unknown }
+        \cs_if_exist:cTF
+          { \c_@@_inherit_root_tl \@@_parent:o \l_keys_path_tl }
           {
-            \cs:w \c_@@_code_root_tl \l_@@_module_tl / unknown \exp_after:wN
-              \cs_end: \exp_after:wN { \l_keys_value_tl }
+            \clist_map_inline:cn
+              { \c_@@_inherit_root_tl \@@_parent:o \l_keys_path_tl }
+              {
+                \cs_if_exist:cT
+                  { \c_@@_code_root_tl ##1 / \l_keys_key_tl }
+                  {
+                    \cs:w \c_@@_code_root_tl ##1 / \l_keys_key_tl
+                      \exp_after:wN \cs_end: \exp_after:wN
+                      { \l_keys_value_tl }
+                    \clist_map_break:
+                  }
+              }
           }
           {
-            \__msg_kernel_error:nnxx { kernel } { key-unknown }
-              { \l_keys_path_tl } { \l_@@_module_tl }
+            \cs_if_exist:cTF { \c_@@_code_root_tl \l_@@_module_tl / unknown }
+              {
+                \cs:w \c_@@_code_root_tl \l_@@_module_tl / unknown
+                  \exp_after:wN \cs_end: \exp_after:wN { \l_keys_value_tl }
+              }
+              {
+                \__msg_kernel_error:nnxx { kernel } { key-unknown }
+                  { \l_keys_path_tl } { \l_@@_module_tl }
+              }
           }
-      }
+       }
   }
 \cs_new:Npn \@@_execute:nn #1#2
   {
     \cs_if_exist:cTF { \c_@@_code_root_tl #1 }
       {
-        \exp_args:Nc \exp_args:No { \c_@@_code_root_tl #1 }
-          \l_keys_value_tl
+        \cs:w \c_@@_code_root_tl #1 \exp_after:wN \cs_end:
+          \exp_after:wN { \l_keys_value_tl }
       }
       {#2}
   }
@@ -2328,6 +2335,25 @@
 %
 % \subsection{Utilities}
 %
+% \begin{macro}[EXP, int]{\@@_parent:n, \@@_parent:o}
+% \begin{macro}[EXP, aux]{\@@_parent:w}
+%   Used to strip off the ending part of the key path after the last~|/|.
+%    \begin{macrocode}
+\cs_new:Npn \@@_parent:n #1
+  { \@@_parent:w #1 / / \q_stop { } }
+\cs_generate_variant:Nn \@@_parent:n { o }
+\cs_new:Npn \@@_parent:w #1 / #2 / #3 \q_stop #4
+  {
+    \tl_if_blank:nTF {#2}
+      { \use_none:n #4 }
+      {
+        \@@_parent:w #2 / #3 \q_stop { #4 / #1 }
+      }
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
 % \begin{macro}[EXP, int]{\@@_remove_spaces:n}
 % \begin{macro}[EXP, aux]{\@@_remove_spaces:w}
 %   Removes all spaces from the input which is detokenized as a result.
@@ -2375,7 +2401,7 @@
 % \end{macro}
 %
 % \begin{macro}{\keys_show:nn}
-% \begin{macro}[aux]{\@@_show:NN}
+% \begin{macro}[aux]{\@@_show:N}
 %   To show a key, test for its existence to issue the correct message
 %   (same message, but with a |t| or |f| argument, then build the
 %   control sequences which contain the code and other information
@@ -2389,9 +2415,8 @@
       {
         \__msg_show_pre:nnxxxx { LaTeX / kernel } { show-key }
           { \@@_remove_spaces:n { #1 / #2 } } { t } { } { }
-        \exp_args:Ncc \@@_show:NN
+        \exp_args:Nc \@@_show:N
           { \c_@@_code_root_tl \@@_remove_spaces:n { #1 / #2 } }
-          { \c_@@_info_root_tl \@@_remove_spaces:n { #1 / #2 } }
       }
       {
         \__msg_show_pre:nnxxxx { LaTeX / kernel } { show-key }
@@ -2399,7 +2424,7 @@
         \__msg_show_wrap:n { }
       }
   }
-\cs_new_protected:Npn \@@_show:NN #1#2
+\cs_new_protected:Npn \@@_show:N #1
   {
     \use:x
       {
@@ -2407,8 +2432,6 @@
           {
             \exp_not:N \__msg_show_item_unbraced:nn { code }
               { \token_get_replacement_spec:N #1 }
-            \exp_not:n
-              { \prop_map_function:NN #2 \__msg_show_item_unbraced:nn }
           }
       }
   }
@@ -2491,21 +2514,7 @@
   }
 %    \end{macrocode}
 %
-% \subsection{Deprecated functions}
-%
-% \begin{macro}[deprecated = 2017]{.value_forbidden:}
-% \begin{macro}{.value_required:}
-%   Deprecated 2015-07-14.
 %    \begin{macrocode}
-\cs_new_protected:cpn { \c_@@_props_root_tl .value_forbidden: }
-  { \@@_value_requirement:nn { forbidden } { true } }
-\cs_new_protected:cpn { \c_@@_props_root_tl .value_required: }
-  { \@@_value_requirement:nn { required } { true } }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%    \begin{macrocode}
 %</initex|package>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3luatex.dtx Copyright (C) 2010-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package&tex>
-\GetIdInfo$Id: l3luatex.dtx 6679 2016-08-18 20:54:06Z bruno $
+\GetIdInfo$Id: l3luatex.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental LuaTeX-specific functions}
 %</driver|package&tex>
 %<*driver>

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3msg.dtx Copyright (C) 2009-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3msg.dtx 6691 2016-08-19 22:14:26Z bruno $
+\GetIdInfo$Id: l3msg.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Messages}
 %</driver|package>
 %<*driver>
@@ -1074,7 +1061,7 @@
           }
         \__iow_with:Nnn \tex_newlinechar:D { `\^^J }
           {
-            \__iow_with:Nnn \tex_errorcontextlines:D \c_minus_one
+            \__iow_with:Nnn \tex_errorcontextlines:D { - \c_one }
               {
                 \group_begin:
                   \cs_set_protected:Npn &
@@ -1124,7 +1111,7 @@
 % deliberate change by a user this is only set in format mode.
 %    \begin{macrocode}
 %<*initex>
-\int_gset_eq:NN \tex_errorcontextlines:D \c_minus_one
+\int_gset:Nn \tex_errorcontextlines:D { - \c_one }
 %</initex>
 %    \end{macrocode}
 %
@@ -2256,7 +2243,7 @@
       {
         \__iow_with:Nnn \tex_newlinechar:D { 10 }
           {
-            \__iow_with:Nnn \tex_errorcontextlines:D \c_minus_one
+            \__iow_with:Nnn \tex_errorcontextlines:D { - \c_one }
               {
                 \etex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN
                   { \exp_after:wN \l_@@_internal_tl }

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3names.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3names.dtx 6722 2016-10-13 10:22:35Z joseph $
+\GetIdInfo$Id: l3names.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Namespace for primitives}
 %</driver|package>
 %<*driver>
@@ -86,11 +73,14 @@
 % the primitives. These are named based on the engine which first introduced
 % them:
 % \begin{itemize}
-%   \item[\cs{tex_\ldots}] Introduced by \TeX{} itself;
-%   \item[\cs{etex_\ldots}] Introduced by the \eTeX{} extensions;
-%   \item[\cs{pdftex_\ldots}] Introduced by \pdfTeX{};
-%   \item[\cs{xetex_\ldots}] Introduced by \XeTeX{};
-%   \item[\cs{luatex_\ldots}] Introduced by \LuaTeX{}.
+%   \item[{\cs[no-index]{tex_\ldots}}] Introduced by \TeX{} itself;
+%   \item[{\cs[no-index]{etex_\ldots}}] Introduced by the \eTeX{} extensions;
+%   \item[{\cs[no-index]{pdftex_\ldots}}] Introduced by \pdfTeX{};
+%   \item[{\cs[no-index]{xetex_\ldots}}] Introduced by \XeTeX{};
+%   \item[{\cs[no-index]{luatex_\ldots}}] Introduced by \LuaTeX{};
+%   \item[{\cs[no-index]{utex_\ldots}}] Introduced by \XeTeX{} and \LuaTeX{};
+%   \item[{\cs[no-index]{ptex_\ldots}}] Introduced by p\TeX{};
+%   \item[{\cs[no-index]{uptex_\ldots}}] Introduced by up\TeX{}.
 % \end{itemize}
 %
 % \end{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,38 +1,25 @@
 % \iffalse meta-comment
 %
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|oldmodules>
 \def\ExplFileDate{2014/09/06}
 %</driver|oldmodules>

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
-%% File: l3prg.dtx Copyright (C) 2005-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% File: l3prg.dtx Copyright (C) 2005-2017 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3prg.dtx 6679 2016-08-18 20:54:06Z bruno $
+\GetIdInfo$Id: l3prg.dtx 6811 2017-01-01 08:50:54Z joseph $
   {L3 Control structures}
 %</driver|package>
 %<*driver>
@@ -1553,16 +1540,7 @@
 % \end{macro}
 % \end{macro}
 %
-% \subsection{Deprecated functions}
-%
-% \begin{macro}[int]{\scan_align_safe_stop:}
-%   Deprecated 2015-08-01 for removal after 2016-12-31.
 %    \begin{macrocode}
-\cs_new_protected:Npn \scan_align_safe_stop: { }
-%    \end{macrocode}
-% \end{macro}
-%
-%    \begin{macrocode}
 %</initex|package>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3prop.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3prop.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3prop.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Property lists}
 %</driver|package>
 %<*driver>

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
-%% File: l3quark.dtx Copyright (C) 1990-2015 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% File: l3quark.dtx Copyright (C) 1990-2016 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3quark.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3quark.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Quarks}
 %</driver|package>
 %<*driver>

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3seq.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3seq.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3seq.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Sequences and stacks}
 %</driver|package>
 %<*driver>
@@ -1684,7 +1671,7 @@
 % \end{macro}
 %
 % \begin{macro}{\seq_item:Nn, \seq_item:cn}
-% \begin{macro}[aux]{\@@_item:wNn, \@@_item:nnn}
+% \begin{macro}[aux]{\@@_item:wNn, \@@_item:nN, \@@_item:nnn}
 %   The idea here is to find the offset of the item from the left, then use
 %   a loop to grab the correct item. If the resulting offset is too large,
 %   then the stop code |{ ? \__prg_break: } { }| will be used by the auxiliary,
@@ -1695,18 +1682,17 @@
 \cs_new:Npn \@@_item:wNn \s_@@ #1 \q_stop #2#3
   {
     \exp_args:Nf \@@_item:nnn
-      {
-        \int_eval:n
-          {
-            \int_compare:nNnT {#3} < \c_zero
-              { \seq_count:N #2 + \c_one + }
-            #3
-          }
-      }
+      { \exp_args:Nf \@@_item:nN { \int_eval:n {#3} } #2 }
     #1
     { ? \__prg_break: } { }
     \__prg_break_point:
   }
+\cs_new:Npn \@@_item:nN #1#2
+  {
+    \int_compare:nNnTF {#1} < \c_zero
+      { \int_eval:n { \seq_count:N #2 + \c_one + #1 } }
+      {#1}
+  }
 \cs_new:Npn \@@_item:nnn #1#2#3
   {
     \use_none:n #2

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -2,43 +2,30 @@
 %
 %% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project
 %%                            (C) 2012-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3skip.dtx 6692 2016-08-19 22:29:47Z bruno $
+\GetIdInfo$Id: l3skip.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Dimensions and skips}
 %</driver|package>
 %<*driver>
@@ -1151,7 +1138,7 @@
   }
 \cs_new:Npn \@@_abs:N #1
   { \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\cs_set:Npn \dim_max:nn #1#2
+\cs_new:Npn \dim_max:nn #1#2
   {
     \dim_use:N \@@_eval:w \exp_after:wN \@@_maxmin:wwN
       \dim_use:N \@@_eval:w #1 \exp_after:wN ;
@@ -1159,7 +1146,7 @@
       >
     \@@_eval_end:
   }
-\cs_set:Npn \dim_min:nn #1#2
+\cs_new:Npn \dim_min:nn #1#2
   {
     \dim_use:N \@@_eval:w \exp_after:wN \@@_maxmin:wwN
       \dim_use:N \@@_eval:w #1 \exp_after:wN ;
@@ -1321,7 +1308,7 @@
 %   |while_do| and |do_while| functions for dimensions. Same as for the
 %   |int| type only the names have changed.
 %    \begin{macrocode}
-\cs_set:Npn \dim_while_do:nn #1#2
+\cs_new:Npn \dim_while_do:nn #1#2
   {
     \dim_compare:nT {#1}
       {
@@ -1329,7 +1316,7 @@
         \dim_while_do:nn {#1} {#2}
       }
   }
-\cs_set:Npn \dim_until_do:nn #1#2
+\cs_new:Npn \dim_until_do:nn #1#2
   {
     \dim_compare:nF {#1}
       {
@@ -1337,13 +1324,13 @@
         \dim_until_do:nn {#1} {#2}
       }
   }
-\cs_set:Npn \dim_do_while:nn #1#2
+\cs_new:Npn \dim_do_while:nn #1#2
   {
     #2
     \dim_compare:nT {#1}
       { \dim_do_while:nn {#1} {#2} }
   }
-\cs_set:Npn \dim_do_until:nn #1#2
+\cs_new:Npn \dim_do_until:nn #1#2
   {
     #2
     \dim_compare:nF {#1}
@@ -1362,7 +1349,7 @@
 %   |while_do| and |do_while| functions for dimensions. Same as for the
 %   |int| type only the names have changed.
 %    \begin{macrocode}
-\cs_set:Npn \dim_while_do:nNnn #1#2#3#4
+\cs_new:Npn \dim_while_do:nNnn #1#2#3#4
   {
     \dim_compare:nNnT {#1} #2 {#3}
       {
@@ -1370,7 +1357,7 @@
         \dim_while_do:nNnn {#1} #2 {#3} {#4}
       }
   }
-\cs_set:Npn \dim_until_do:nNnn #1#2#3#4
+\cs_new:Npn \dim_until_do:nNnn #1#2#3#4
   {
   \dim_compare:nNnF {#1} #2 {#3}
     {
@@ -1378,13 +1365,13 @@
       \dim_until_do:nNnn {#1} #2 {#3} {#4}
     }
   }
-\cs_set:Npn \dim_do_while:nNnn #1#2#3#4
+\cs_new:Npn \dim_do_while:nNnn #1#2#3#4
   {
     #4
     \dim_compare:nNnT {#1} #2 {#3}
       { \dim_do_while:nNnn {#1} #2 {#3} {#4} }
   }
-\cs_set:Npn \dim_do_until:nNnn #1#2#3#4
+\cs_new:Npn \dim_do_until:nNnn #1#2#3#4
   {
     #4
     \dim_compare:nNnF {#1} #2 {#3}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3str.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3str.dtx 6692 2016-08-19 22:29:47Z bruno $
+\GetIdInfo$Id: l3str.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Strings}
 %</driver|package>
 %<*driver>
@@ -1333,13 +1320,13 @@
 %    \begin{macrocode}
 \cs_new:Npn \str_head:N { \exp_args:No \str_head:n }
 \cs_generate_variant:Nn \str_head:N { c }
-\cs_set:Npn \str_head:n #1
+\cs_new:Npn \str_head:n #1
   {
     \exp_after:wN \@@_head:w
     \tl_to_str:n {#1}
     { { } } ~ \q_stop
   }
-\cs_set:Npn \@@_head:w #1 ~ %
+\cs_new:Npn \@@_head:w #1 ~ %
   { \use_i_delimit_by_q_stop:nw #1 { ~ } }
 \cs_new:Npn \str_head_ignore_spaces:n #1
   {
@@ -1370,13 +1357,13 @@
 %    \begin{macrocode}
 \cs_new:Npn \str_tail:N { \exp_args:No \str_tail:n }
 \cs_generate_variant:Nn \str_tail:N { c }
-\cs_set:Npn \str_tail:n #1
+\cs_new:Npn \str_tail:n #1
   {
     \exp_after:wN \@@_tail_auxi:w
     \reverse_if:N \if_charcode:w
         \scan_stop: \tl_to_str:n {#1} X X \q_stop
   }
-\cs_set:Npn \@@_tail_auxi:w #1 X #2 \q_stop { \fi: #1 }
+\cs_new:Npn \@@_tail_auxi:w #1 X #2 \q_stop { \fi: #1 }
 \cs_new:Npn \str_tail_ignore_spaces:n #1
   {
     \exp_after:wN \@@_tail_auxii:w
@@ -1472,9 +1459,9 @@
               { \utex_char:D \use:c { __str_lookup_ #1 :N } #2 ~ }
           }
       }
-    \cs_set_protected:Npn \@@_lookup_lower:N #1 { \tex_lccode:D `#1 }
-    \cs_set_protected:Npn \@@_lookup_upper:N #1 { \tex_uccode:D `#1 }
-    \cs_set_eq:NN \@@_lookup_fold:N \@@_lookup_lower:N
+    \cs_new_protected:Npn \@@_lookup_lower:N #1 { \tex_lccode:D `#1 }
+    \cs_new_protected:Npn \@@_lookup_upper:N #1 { \tex_uccode:D `#1 }
+    \cs_new_eq:NN \@@_lookup_fold:N \@@_lookup_lower:N
   }
   {
     \cs_new:Npn \@@_change_case_char_aux:nN #1#2

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
-%% File: l3sys.dtx Copyright (C) 2015 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% File: l3sys.dtx Copyright (C) 2015-2017 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3sys.dtx 6087 2015-09-25 10:29:53Z joseph $
+\GetIdInfo$Id: l3sys.dtx 6811 2017-01-01 08:50:54Z joseph $
   {L3 Experimental system/runtime functions}
 %</driver|package>
 %<*driver>
@@ -312,40 +299,7 @@
 % \end{variable}
 % \end{macro}
 %
-% \subsection{Deprecated functions}
-%
-% Deprecated 2015-09-07 for removal after 2016-12-31. The older logic supported
-% only three engines so that has to be allowed for.
 %    \begin{macrocode}
-\prg_new_eq_conditional:NNn \luatex_if_engine: \sys_if_engine_luatex:
-  { T , F , TF , p }
-\prg_new_eq_conditional:NNn \xetex_if_engine:  \sys_if_engine_xetex:
-  { T , F , TF , p }
-\bool_if:nTF
-  {
-    \sys_if_engine_luatex_p: ||
-    \sys_if_engine_xetex_p:
-  }
-  {
-    \cs_new_eq:NN \pdftex_if_engine:T  \use_none:n
-    \cs_new_eq:NN \pdftex_if_engine:F  \use:n
-    \cs_new_eq:NN \pdftex_if_engine:TF \use_ii:nn
-    \cs_new_eq:NN \pdftex_if_engine_p: \c_false_bool
-  }
-  {
-    \cs_new_eq:NN \pdftex_if_engine:T  \use:n
-    \cs_new_eq:NN \pdftex_if_engine:F  \use_none:n
-    \cs_new_eq:NN \pdftex_if_engine:TF \use_i:nn
-    \cs_new_eq:NN \pdftex_if_engine_p: \c_true_bool
-  }
-%    \end{macrocode}
-%
-% Deprecated 2015-09-19 for removal after 2016-12-31. 
-%    \begin{macrocode}
-\cs_set_eq:NN \c_job_name_tl \c_sys_jobname_str
-%    \end{macrocode}
-%
-%    \begin{macrocode}
 %</initex|package>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3tl.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3tl.dtx 6692 2016-08-19 22:29:47Z bruno $
+\GetIdInfo$Id: l3tl.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Token lists}
 %</driver|package>
 %<*driver>
@@ -1457,7 +1444,7 @@
         \group_begin:
           \exp_args:No \etex_everyeof:D { \c_@@_rescan_marker_tl \exp_not:N }
           \int_compare:nNnT \tex_endlinechar:D = { 32 }
-            { \tex_endlinechar:D \c_minus_one }
+            { \tex_endlinechar:D - \c_one }
           \tex_newlinechar:D \tex_endlinechar:D
           #3 \scan_stop:
           \exp_args:No \@@_set_rescan:n { \tl_to_str:n {#4} }
@@ -1582,7 +1569,7 @@
     }
   \cs_new_protected:Npn \@@_set_rescan_single_aux:nn #1#2
     {
-      \tex_endlinechar:D \c_minus_one
+      \tex_endlinechar:D - \c_one
       \use:x
         {
           \exp_not:N \use:n
@@ -2860,7 +2847,7 @@
 % \subsection{Using a single item}
 %
 % \begin{macro}{\tl_item:nn, \tl_item:Nn, \tl_item:cn}
-% \begin{macro}[aux]{\@@_item:nn}
+% \begin{macro}[aux]{\@@_item_aux:nn, \@@_item:nn}
 %   The idea here is to find the offset of the item from the left, then use
 %   a loop to grab the correct item. If the resulting offset is too large,
 %   then \cs{quark_if_recursion_tail_stop:n} terminates the loop, and returns
@@ -2869,18 +2856,17 @@
 \cs_new:Npn \tl_item:nn #1#2
   {
     \exp_args:Nf \@@_item:nn
-      {
-        \int_eval:n
-          {
-            \int_compare:nNnT {#2} < \c_zero
-              { \tl_count:n {#1} + \c_one + }
-            #2
-          }
-      }
+      { \exp_args:Nf \@@_item_aux:nn { \int_eval:n {#2} } {#1} }
     #1
     \q_recursion_tail
     \__prg_break_point:
   }
+\cs_new:Npn \@@_item_aux:nn #1#2
+  {
+    \int_compare:nNnTF {#1} < \c_zero
+      { \int_eval:n { \tl_count:n {#2} + \c_one + #1 } }
+      {#1}
+  }
 \cs_new:Npn \@@_item:nn #1#2
   {
     \__quark_if_recursion_tail_break:nN {#2} \__prg_break:

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,43 +1,30 @@
 % \iffalse meta-comment
 %
 %% File: l3token.dtx Copyright (C) 2005-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3kernel bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver>
 \documentclass[full]{l3doc}
 %</driver>
 %<*driver|package>
-\GetIdInfo$Id: l3token.dtx 6695 2016-09-01 15:38:50Z bruno $
+\GetIdInfo$Id: l3token.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental token manipulation}
 %</driver|package>
 %<*driver>
@@ -128,7 +115,7 @@
 %
 % \begin{function}[added = 2015-11-12]
 %   {
-%     \char_set_active_eq:nN,  \char_set_active_eq:nc
+%     \char_set_active_eq:nN,  \char_set_active_eq:nc,
 %     \char_gset_active_eq:nN, \char_gset_active_eq:nc
 %   }
 %   \begin{syntax}
@@ -197,7 +184,7 @@
 %   \begin{verbatim}
 %     \char_set_catcode_other:N \%
 %   \end{verbatim}
-%   The assignment is local. 
+%   The assignment is local.
 % \end{function}
 %
 % \begin{function}[updated = 2015-11-11]
@@ -237,7 +224,7 @@
 %   The first \meta{integer expression}
 %   is the character code and the second is the category code to apply.
 %   The setting applies within the current \TeX{} group. In general, the
-%   symbolic functions \cs{char_set_catcode_\meta{type}} should be preferred,
+%   symbolic functions \cs[no-index]{char_set_catcode_\meta{type}} should be preferred,
 %   but there are cases where these lower-level functions may be useful.
 % \end{function}
 %
@@ -1036,10 +1023,15 @@
 %     identical to the command that was used to select the current font
 %     (such as \tn{tenrm}) but it differs from it in shape.
 %   \item A \enquote{frozen} |\relax|, which differs from the primitive in
-%     both shape and meaning, is inserted when the closing \tn{fi} of a
+%     shape (but has the same meaning), is inserted when the closing \tn{fi} of a
 %     conditional is encountered before the conditional is evaluated.
-%   \item An |\endtemplate| (which expands to |\outer endtemplate:|)
-%     can be enountered when peeking ahead at the next token.
+%   \item Expanding \tn{noexpand} \meta{token} (when the \meta{token} is
+%     expandable) results in an internal token, displayed (temporarily)
+%     as \cs{notexpanded: \meta{token}}, whose shape coincides with the
+%     \meta{token} and whose meaning differs from \tn{relax}.
+%   \item An |\outer endtemplate:| (expanding to another internal token,
+%     |end of alignment template|) can be encountered when peeking ahead
+%     at the next token.
 %   \item Tricky programming might access a frozen |\endwrite|.
 %   \item Some frozen tokens can only be accessed in interactive
 %     sessions: |\cr|, |\right|, |\endgroup|, |\fi|, |\inaccessible|.
@@ -1347,7 +1339,7 @@
 \seq_set_split:Nnn \l_char_special_seq { }
   { \  \" \# \$ \% \& \\ \^ \_ \{ \} \~ }
 \seq_new:N \l_char_active_seq
-\seq_set_split:Nnn \l_char_special_seq { }
+\seq_set_split:Nnn \l_char_active_seq { }
   { \" \$ \& \^ \_ \~ }
 %    \end{macrocode}
 % \end{variable}
@@ -1372,7 +1364,6 @@
       \cs_new_protected:cpn { #1 :nN } ##1
         {
           \group_begin:
-            \char_set_catcode_active:n { ##1 }
             \char_set_lccode:nn { `\^^@ } { ##1 }
           \tex_lowercase:D { \group_end: #2 ^^@ }
         }
@@ -2110,7 +2101,7 @@
 %   and \tn{hyphen}, whose meaning is at most two characters.
 %   This leaves a string terminated by some |:|, and \cs{q_stop}.
 %
-%   The meaning of each one of the five \tn{...mark} primitives
+%   The meaning of each one of the five \tn[no-index]{...mark} primitives
 %   has the form \meta{letters}|:|\meta{user material}. In other words,
 %   the first non-letter is a colon. We remove everything after the first
 %   colon.

Modified: trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,44 +1,30 @@
 % \iffalse meta-comment
 %
-%% File: l3keys2e.dtx (C) Copyright 2009,2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3packages bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
+%% File: l3keys2e.dtx (C) Copyright 2009,2011-2017 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3packages bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/11/21]
-%<package>\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+%<package>\@ifpackagelater{expl3}{2017/01/28}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{l3keys2e}{Support package l3kernel too old}
@@ -52,8 +38,8 @@
 %<package>  }
 \def\ExplFileName{l3keys2e}
 \def\ExplFileDescription{LaTeX2e option processing using LaTeX3 keys}
-\def\ExplFileDate{2016/11/21}
-\def\ExplFileVersion{6760}
+\def\ExplFileDate{2017/01/28}
+\def\ExplFileVersion{6834}
 %</driver|package>
 %<*driver>
 \documentclass[full]{l3doc}
@@ -103,7 +89,7 @@
 % option which simply stores a value would be created using:
 % \begin{verbatim}
 %  \keys_define:nn { module }
-%    { option .set:N = \l_module_variable_tl }
+%    { option .tl_set:N = \l_module_variable_tl }
 % \end{verbatim}
 % On its own, this will not make the key an option for the package or
 % class containing the definition. The second stage is therefore to

Modified: trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.ins	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.ins	2017-01-29 22:34:57 UTC (rev 43088)
@@ -21,13 +21,18 @@
 
 \preamble
 
-EXPERIMENTAL CODE
+Copyright (C) 2009-2016 The LaTeX3 Project
 
-Do not distribute this file without also distributing the
-source files specified above.
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
 
-Do not distribute a modified version of this file.
+   http://www.latex-project.org/lppl.txt
 
+This file is part of the "l3packages bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
 \endpreamble
 % stop docstrip adding \endinput
 \postamble

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,45 +1,31 @@
 % \iffalse meta-comment
 %
 %% File: xfrac.dtx Copyright (C) 2004, 2008-2010 Morten Hoegholm
-%%                           (C) 2011,2012,2014-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3packages bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
+%%                           (C) 2011,2012,2014-2017 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
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3packages bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/11/21]
-%<package>\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+%<package>\@ifpackagelater{expl3}{2017/01/28}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{xfrac}{Support package l3kernel too old}
@@ -54,8 +40,8 @@
 \RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate}
 \def\ExplFileName{xfrac}
 \def\ExplFileDescription{L3 Experimental split-level fractions}
-\def\ExplFileDate{2016/11/21}
-\def\ExplFileVersion{6760}
+\def\ExplFileDate{2017/01/28}
+\def\ExplFileVersion{6834}
 %</driver|package>
 %<*driver>
 \documentclass[full]{l3doc}
@@ -929,7 +915,6 @@
           }
         \@@_math:n
           { % THIS IS JUST WRONG!
-            \scan_align_safe_stop:
             \mode_if_math:TF
               { \tex_mskip:D \l_@@_slash_right_muskip }
               { \tex_hskip:D \l_@@_slash_right_sep_dim }

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.ins	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.ins	2017-01-29 22:34:57 UTC (rev 43088)
@@ -22,13 +22,18 @@
 
 \preamble
 
-EXPERIMENTAL CODE
+Copyright (C) 2011-2016 The LaTeX3 Project
 
-Do not distribute this file without also distributing the
-source files specified above.
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
 
-Do not distribute a modified version of this file.
+   http://www.latex-project.org/lppl.txt
 
+This file is part of the "l3packages bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
 \endpreamble
 % stop docstrip adding \endinput
 \postamble

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -5,44 +5,30 @@
 %%                  (C) Copyright 2004-2008 Frank Mittelbach,
 %%                      The LaTeX3 Project
 %%                  (C) Copyright 2009-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3packages bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3packages bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/11/21]
-%<package>\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+%<package>\@ifpackagelater{expl3}{2017/01/28}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{xparse}{Support package l3kernel too old}
@@ -56,8 +42,8 @@
 %<package>  }
 \def\ExplFileName{xparse}
 \def\ExplFileDescription{L3 Experimental document command parser}
-\def\ExplFileDate{2016/11/21}
-\def\ExplFileVersion{6760}
+\def\ExplFileDate{2017/01/28}
+\def\ExplFileVersion{6834}
 %</driver|package>
 %<*driver>
 \documentclass[full]{l3doc}

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.ins	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xparse/xparse.ins	2017-01-29 22:34:57 UTC (rev 43088)
@@ -21,13 +21,18 @@
 
 \preamble
 
-EXPERIMENTAL CODE
+Copyright (C) 2009-2016 The LaTeX3 Project
 
-Do not distribute this file without also distributing the
-source files specified above.
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
 
-Do not distribute a modified version of this file.
+   http://www.latex-project.org/lppl.txt
 
+This file is part of the "l3packages bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
 \endpreamble
 % stop docstrip adding \endinput
 \postamble

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx	2017-01-29 22:34:57 UTC (rev 43088)
@@ -5,44 +5,30 @@
 %%                     (C) Copyright 2004-2010 Frank Mittelbach,
 %%                         The LaTeX3 Project
 %%                     (C) Copyright 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3packages bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 %
+% It may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License (LPPL), either version 1.3c of this
+% license or (at your option) any later version.  The latest version
+% of this license is in the file
+%
+%    http://www.latex-project.org/lppl.txt
+%
+% This file is part of the "l3packages bundle" (The Work in LPPL)
+% and all files in that bundle must be distributed together.
+%
+% -----------------------------------------------------------------------
+%
+% The development version of the bundle can be found at
+%
+%    https://github.com/latex3/latex3
+%
+% for those people who are interested.
+%
 %<*driver|package>
 % The version of expl3 required is tested as early as possible, as
 % some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2016/11/21]
-%<package>\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+%<package>\@ifpackagelater{expl3}{2017/01/28}
 %<package>  {}
 %<package>  {%
 %<package>    \PackageError{xtemplate}{Support package l3kernel too old}
@@ -56,8 +42,8 @@
 %<package>  }
 \def\ExplFileName{xtemplate}
 \def\ExplFileDescription{L3 Experimental prototype document functions}
-\def\ExplFileDate{2016/11/21}
-\def\ExplFileVersion{6760}
+\def\ExplFileDate{2017/01/28}
+\def\ExplFileVersion{6834}
 %</driver|package>
 %<*driver>
 \documentclass[full]{l3doc}

Modified: trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.ins	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.ins	2017-01-29 22:34:57 UTC (rev 43088)
@@ -1,6 +1,6 @@
 \iffalse meta-comment
 
-File xtemplate.ins Copyright (C) 2000-2012 The LaTeX3 Project
+File xtemplate.ins Copyright (C) 2000-2012,2016 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
@@ -12,8 +12,19 @@
 This file is part of the "l3packages bundle" (The Work in LPPL)
 and all files in that bundle must be distributed together.
 
-The released version of this bundle is available from CTAN.
+-----------------------------------------------------------------------
 
+The development version of the bundle can be found at
+
+   https://github.com/latex3/latex3
+
+for those people who are interested.
+
+-----------------------------------------------------------------------
+
+Any modification of this file should ensure that the copyright and
+license information is placed in the derived files.
+
 \fi
 
 \input l3docstrip.tex
@@ -21,13 +32,18 @@
 
 \preamble
 
-EXPERIMENTAL CODE
+Copyright (C) 2011-2016 The LaTeX3 Project
 
-Do not distribute this file without also distributing the
-source files specified above.
+It may be distributed and/or modified under the conditions of
+the LaTeX Project Public License (LPPL), either version 1.3c of
+this license or (at your option) any later version.  The latest
+version of this license is in the file:
 
-Do not distribute a modified version of this file.
+   http://www.latex-project.org/lppl.txt
 
+This file is part of the "l3packages bundle" (The Work in LPPL)
+and all files in that bundle must be distributed together.
+
 \endpreamble
 % stop docstrip adding \endinput
 \postamble

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3sort/l3sort.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3sort/l3sort.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3sort/l3sort.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,48 +6,21 @@
 %%
 %% l3sort.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2012-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File l3sort.dtx (C) Copyright 2012,2014-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\RequirePackage{expl3}[2016/11/21]
-\@ifpackagelater{expl3}{2016/11/21}
+%% 
+%% File l3sort.dtx (C) Copyright 2012,2014-2016 The LaTeX3 Project
+\RequirePackage{expl3}[2017/01/28]
+\@ifpackagelater{expl3}{2017/01/28}
   {}
   {%
     \PackageError{l3sort}{Support package l3kernel too old}
@@ -59,13 +32,15 @@
       }%
     \endinput
   }
-\GetIdInfo$Id: l3sort.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3sort.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental sorting functions}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
-\int_const:Nn \c__sort_max_length_int
-  { \sys_if_engine_luatex:TF { 49152 } { 24576 } }
 \int_new:N \l__sort_length_int
+\int_new:N \l__sort_min_int
+\int_new:N \l__sort_top_int
+\int_new:N \l__sort_max_int
+\int_new:N \l__sort_true_max_int
 \int_new:N \l__sort_block_int
 \int_new:N \l__sort_begin_int
 \int_new:N \l__sort_end_int
@@ -72,20 +47,95 @@
 \int_new:N \l__sort_A_int
 \int_new:N \l__sort_B_int
 \int_new:N \l__sort_C_int
+\cs_new_protected:Npn \__sort_shrink_range:
+  {
+    \int_set:Nn \l__sort_A_int
+      { \l__sort_true_max_int - \l__sort_min_int + \c_one }
+    \int_set:Nn \l__sort_block_int { \c_max_register_int / \c_two }
+    \__sort_shrink_range_loop:
+    \int_set:Nn \l__sort_max_int
+      {
+        \int_compare:nNnTF
+          { \l__sort_block_int * \c_three / \c_two } > \l__sort_A_int
+          {
+            \l__sort_min_int
+            + ( \l__sort_A_int - \c_one ) / \c_two
+            + \l__sort_block_int / \c_four
+            - \c_one
+          }
+          { \l__sort_true_max_int - \l__sort_block_int / \c_two }
+      }
+  }
+\cs_new_protected:Npn \__sort_shrink_range_loop:
+  {
+    \if_int_compare:w \l__sort_A_int < \l__sort_block_int
+      \tex_divide:D \l__sort_block_int \c_two
+      \exp_after:wN \__sort_shrink_range_loop:
+    \fi:
+  }
+\cs_new_protected:Npn \__sort_compute_range:
+  {
+    \int_set:Nn \l__sort_min_int { \tex_count:D 15 + \c_one }
+    \int_set:Nn \l__sort_true_max_int { \c_max_register_int + \c_one }
+    \__sort_shrink_range:
+    \if_meaning:w \loctoks \tex_undefined:D \else:
+      \if_meaning:w \loctoks \scan_stop: \else:
+        \__sort_redefine_compute_range:
+        \__sort_compute_range:
+      \fi:
+    \fi:
+  }
+\cs_new_protected:Npn \__sort_redefine_compute_range:
+  {
+    \cs_if_exist:cTF { ver at elocalloc.sty }
+      {
+        \cs_gset_protected:Npn \__sort_compute_range:
+          {
+            \int_set:Nn \l__sort_min_int { \tex_count:D 265 }
+            \int_set_eq:NN \l__sort_true_max_int \e at alloc@top
+            \__sort_shrink_range:
+          }
+      }
+      {
+        \cs_gset_protected:Npn \__sort_compute_range:
+          {
+            \int_set:Nn \l__sort_min_int { \tex_count:D 265 }
+            \int_set:Nn \l__sort_true_max_int { \tex_count:D 275 }
+            \__sort_shrink_range:
+          }
+      }
+  }
+\cs_if_exist:NT \loctoks { \__sort_redefine_compute_range: }
+\tl_map_inline:nn { \lastallocatedtoks \c_syst_last_allocated_toks }
+  {
+    \cs_if_exist:NT #1
+      {
+        \cs_gset_protected:Npn \__sort_compute_range:
+          {
+            \int_set:Nn \l__sort_min_int { #1 + \c_one }
+            \int_set:Nn \l__sort_true_max_int { \c_max_register_int + \c_one }
+            \__sort_shrink_range:
+          }
+      }
+  }
 \cs_new_protected:Npn \__sort_main:NNNnNn #1#2#3#4#5#6
   {
     \group_begin:
-      \l__sort_length_int \c_zero
+      \__sort_disable_toksdef:
+      \__sort_compute_range:
+      \int_set_eq:NN \l__sort_top_int \l__sort_min_int
       #2 #5
         {
-          \if_int_compare:w \l__sort_length_int = \c__sort_max_length_int
+          \if_int_compare:w \l__sort_top_int = \l__sort_max_int
             \__sort_too_long_error:NNw #3 #5
           \fi:
-          \tex_toks:D \l__sort_length_int {##1}
-          \tex_advance:D \l__sort_length_int \c_one
+          \tex_toks:D \l__sort_top_int {##1}
+          \tex_advance:D \l__sort_top_int \c_one
         }
-      \cs_set:Npn \sort_compare:nn ##1 ##2 { #6 }
-      \l__sort_block_int \c_one
+      \int_set:Nn \l__sort_length_int
+        { \l__sort_top_int - \l__sort_min_int }
+      \cs_set:Npn \__sort_compare:nn ##1 ##2 { #6 }
+      \int_set_eq:NN \l__sort_block_int \c_one
       \__sort_level:
       \use:x
         {
@@ -96,26 +146,26 @@
 \cs_new_protected:Npn \seq_sort:Nn
   {
     \__sort_main:NNNnNn \tl_set:Nn
-      \seq_map_inline:Nn \seq_map_break:
-      { \s__seq \__sort_toks:NNw \exp_not:N \__seq_item:n 0 ; }
+      \seq_map_inline:Nn \seq_map_break:n
+      { \s__seq \__sort_toks:NN \exp_not:N \__seq_item:n }
   }
 \cs_new_protected:Npn \seq_gsort:Nn
   {
     \__sort_main:NNNnNn \tl_gset:Nn
-      \seq_map_inline:Nn \seq_map_break:
-      { \s__seq \__sort_toks:NNw \exp_not:N \__seq_item:n 0 ; }
+      \seq_map_inline:Nn \seq_map_break:n
+      { \s__seq \__sort_toks:NN \exp_not:N \__seq_item:n }
   }
 \cs_new_protected:Npn \tl_sort:Nn
   {
     \__sort_main:NNNnNn \tl_set:Nn
-      \tl_map_inline:Nn \tl_map_break:
-      { \__sort_toks:NNw \prg_do_nothing: \prg_do_nothing: 0 ; }
+      \tl_map_inline:Nn \tl_map_break:n
+      { \__sort_toks:NN \prg_do_nothing: \prg_do_nothing: }
   }
 \cs_new_protected:Npn \tl_gsort:Nn
   {
     \__sort_main:NNNnNn \tl_gset:Nn
-      \tl_map_inline:Nn \tl_map_break:
-      { \__sort_toks:NNw \prg_do_nothing: \prg_do_nothing: 0 ; }
+      \tl_map_inline:Nn \tl_map_break:n
+      { \__sort_toks:NN \prg_do_nothing: \prg_do_nothing: }
   }
 \cs_new_protected:Npn \clist_sort:Nn
   { \__sort_clist:NNn \tl_set:Nn }
@@ -126,17 +176,19 @@
     \clist_if_empty:NF #2
       {
         \__sort_main:NNNnNn #1
-          \clist_map_inline:Nn \clist_map_break:
+          \clist_map_inline:Nn \clist_map_break:n
           {
             \exp_last_unbraced:Nf \use_none:n
-              { \__sort_toks:NNw \exp_args:No \__clist_wrap_item:n 0 ; }
+              { \__sort_toks:NN \exp_args:No \__clist_wrap_item:n }
           }
           #2 {#3}
       }
   }
+\cs_new:Npn \__sort_toks:NN #1#2
+  { \__sort_toks:NNw #1 #2 \l__sort_min_int ; }
 \cs_new:Npn \__sort_toks:NNw #1#2#3 ;
   {
-    \if_int_compare:w #3 < \l__sort_length_int
+    \if_int_compare:w #3 < \l__sort_top_int
       #1 #2 { \tex_the:D \tex_toks:D #3 }
       \exp_after:wN \__sort_toks:NNw \exp_after:wN #1 \exp_after:wN #2
       \__int_value:w \__int_eval:w #3 + \c_one \exp_after:wN ;
@@ -145,9 +197,9 @@
 \cs_new_protected:Npn \__sort_level:
   {
     \if_int_compare:w \l__sort_block_int < \l__sort_length_int
-      \l__sort_end_int \c_zero
+      \l__sort_end_int \l__sort_min_int
       \__sort_merge_blocks:
-      \tex_multiply:D \l__sort_block_int \c_two
+      \tex_advance:D \l__sort_block_int \l__sort_block_int
       \exp_after:wN \__sort_level:
     \fi:
   }
@@ -155,23 +207,23 @@
   {
     \l__sort_begin_int \l__sort_end_int
     \tex_advance:D \l__sort_end_int \l__sort_block_int
-    \if_int_compare:w \__int_eval:w \l__sort_end_int < \l__sort_length_int
+    \if_int_compare:w \l__sort_end_int < \l__sort_top_int
       \l__sort_A_int \l__sort_end_int
       \tex_advance:D \l__sort_end_int \l__sort_block_int
-      \if_int_compare:w \l__sort_end_int > \l__sort_length_int
-        \l__sort_end_int \l__sort_length_int
+      \if_int_compare:w \l__sort_end_int > \l__sort_top_int
+        \l__sort_end_int \l__sort_top_int
       \fi:
       \l__sort_B_int \l__sort_A_int
-      \l__sort_C_int \l__sort_length_int
-      \sort_copy_block:
-      \tex_advance:D \l__sort_A_int \c_minus_one
-      \tex_advance:D \l__sort_B_int \c_minus_one
-      \tex_advance:D \l__sort_C_int \c_minus_one
-      \__sort_merge_blocks_aux:
+      \l__sort_C_int \l__sort_top_int
+      \__sort_copy_block:
+      \tex_advance:D \l__sort_A_int - \c_one
+      \tex_advance:D \l__sort_B_int - \c_one
+      \tex_advance:D \l__sort_C_int - \c_one
+      \exp_after:wN \__sort_merge_blocks_aux:
       \exp_after:wN \__sort_merge_blocks:
     \fi:
   }
-\cs_new_protected:Npn \sort_copy_block:
+\cs_new_protected:Npn \__sort_copy_block:
   {
     \tex_toks:D \l__sort_C_int \tex_toks:D \l__sort_B_int
     \tex_advance:D \l__sort_C_int \c_one
@@ -179,29 +231,48 @@
     \if_int_compare:w \l__sort_B_int = \l__sort_end_int
       \use_i:nn
     \fi:
-    \sort_copy_block:
+    \__sort_copy_block:
   }
 \cs_new_protected:Npn \__sort_merge_blocks_aux:
   {
-    \exp_after:wN \sort_compare:nn \exp_after:wN
+    \exp_after:wN \__sort_compare:nn \exp_after:wN
       { \tex_the:D \tex_toks:D \exp_after:wN \l__sort_A_int \exp_after:wN }
       \exp_after:wN { \tex_the:D \tex_toks:D \l__sort_C_int }
+    \prg_do_nothing:
+    \__sort_return_mark:N
+    \__sort_return_mark:N
+    \__sort_return_none_error:
   }
-\cs_new_protected:Npn \sort_ordered:
+\cs_new_protected:Npn \sort_ordered: #1 \__sort_return_mark:N
+  { #1 \__sort_return_mark:N \__sort_return_two_error:w \__sort_ordered: }
+\cs_new_protected:Npn \sort_reversed: #1 \__sort_return_mark:N
+  { #1 \__sort_return_mark:N \__sort_return_two_error:w \__sort_return_reversed: }
+\cs_new_protected:Npn \__sort_return_mark:N #1 { }
+\cs_new_protected:Npn \__sort_return_none_error:
   {
+    \__msg_kernel_error:nnxx { sort } { return-none }
+      { \tex_the:D \tex_toks:D \l__sort_A_int }
+      { \tex_the:D \tex_toks:D \l__sort_C_int }
+    \__sort_ordered:
+  }
+\cs_new_protected:Npn \__sort_return_two_error:w
+    #1 \__sort_return_none_error:
+  { \__msg_kernel_error:nn { sort } { return-two } }
+\cs_new_protected:Npn \__sort_ordered:
+  {
     \tex_toks:D \l__sort_B_int \tex_toks:D \l__sort_C_int
-    \tex_advance:D \l__sort_B_int \c_minus_one
-    \tex_advance:D \l__sort_C_int \c_minus_one
-    \if_int_compare:w \l__sort_C_int < \l__sort_length_int
+    \tex_advance:D \l__sort_B_int - \c_one
+    \tex_advance:D \l__sort_C_int - \c_one
+    \if_int_compare:w \l__sort_C_int < \l__sort_top_int
       \use_i:nn
     \fi:
     \__sort_merge_blocks_aux:
   }
-\cs_new_protected:Npn \sort_reversed:
+\cs_new_protected:Npn \__sort_return_reversed:
   {
     \tex_toks:D \l__sort_B_int \tex_toks:D \l__sort_A_int
-    \tex_advance:D \l__sort_B_int \c_minus_one
-    \tex_advance:D \l__sort_A_int \c_minus_one
+    \tex_advance:D \l__sort_B_int - \c_one
+    \tex_advance:D \l__sort_A_int - \c_one
     \if_int_compare:w \l__sort_A_int < \l__sort_begin_int
       \__sort_merge_blocks_end: \use_i:nn
     \fi:
@@ -210,8 +281,8 @@
 \cs_new_protected:Npn \__sort_merge_blocks_end:
   {
     \tex_toks:D \l__sort_B_int \tex_toks:D \l__sort_C_int
-    \tex_advance:D \l__sort_B_int \c_minus_one
-    \tex_advance:D \l__sort_C_int \c_minus_one
+    \tex_advance:D \l__sort_B_int - \c_one
+    \tex_advance:D \l__sort_C_int - \c_one
     \if_int_compare:w \l__sort_B_int < \l__sort_begin_int
       \use_i:nn
     \fi:
@@ -298,19 +369,61 @@
       }
     #6 \q_stop
   }
+\cs_new_protected:Npn \__sort_error:
+  {
+    \cs_set_eq:NN \__sort_merge_blocks_aux: \prg_do_nothing:
+    \cs_set_eq:NN \__sort_merge_blocks: \prg_do_nothing:
+    \cs_set_protected:Npn \__sort_level: \use:x ##1 { \group_end: }
+  }
+\cs_new_protected:Npn \__sort_disable_toksdef:
+  { \cs_set_eq:NN \toksdef \__sort_disabled_toksdef:n }
+\cs_new_protected:Npn \__sort_disabled_toksdef:n #1
+  {
+    \__msg_kernel_error:nnx { sort } { toksdef }
+      { \token_to_str:N #1 }
+    \__sort_error:
+    \tex_toksdef:D #1
+  }
+\__msg_kernel_new:nnnn { sort } { toksdef }
+  { Allocation~of~\iow_char:N\\toks~registers~impossible~while~sorting. }
+  {
+    The~comparison~code~used~for~sorting~a~list~has~attempted~to~
+    define~#1~as~a~new~\iow_char:N\\toks~register~using~\iow_char:N\\newtoks~
+    or~a~similar~command.~The~list~will~not~be~sorted.
+  }
 \cs_new_protected:Npn \__sort_too_long_error:NNw #1#2 \fi:
   {
     \fi:
-    \__msg_kernel_error:nnx { sort } { too-large } { \token_to_str:N #2 }
-    #1
+    \__msg_kernel_error:nnxxx { sort } { too-large }
+      { \token_to_str:N #2 }
+      { \int_eval:n { \l__sort_true_max_int - \l__sort_min_int } }
+      { \int_eval:n { \l__sort_top_int - \l__sort_min_int } }
+    #1 \__sort_error:
   }
 \__msg_kernel_new:nnnn { sort } { too-large }
   { The~list~#1~is~too~long~to~be~sorted~by~TeX. }
   {
-    TeX~has~\int_eval:n { \c_max_register_int + 1 }~registers~available:~
-    this~only~allows~to~sorts~with~up~to~\int_use:N \c__sort_max_length_int
-    \ items.~All~extra~items~will~be~ignored.
+    TeX~has~#2~toks~registers~still~available:~
+    this~only~allows~to~sort~with~up~to~#3~
+    items.~All~extra~items~will~be~deleted.
   }
+\__msg_kernel_new:nnnn { sort } { return-none }
+  { The~comparison~code~did~not~return. }
+  {
+    When~sorting~a~list,~the~code~to~compare~items~#1~and~#2~
+    did~not~call~
+    \iow_char:N\\sort_ordered: ~nor~
+    \iow_char:N\\sort_reversed: .~
+    Exactly~one~of~these~should~be~called.
+  }
+\__msg_kernel_new:nnnn { sort } { return-two }
+  { The~comparison~code~returned~multiple~times. }
+  {
+    When~sorting~a~list,~the~code~to~compare~items~called~
+    \iow_char:N\\sort_ordered: ~or~
+    \iow_char:N\\sort_reversed: ~multiple~times.~
+    Exactly~one~of~these~should~be~called.
+  }
 %% 
 %%
 %% End of file `l3sort.sty'.

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,21 @@
 %%
 %% l3flag.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3flag.dtx Copyright (C) 2011-2012,2014-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\RequirePackage{expl3}[2016/11/21]
-\@ifpackagelater{expl3}{2016/11/21}
+%% 
+%% File: l3flag.dtx Copyright (C) 2011-2012,2014-2016 The LaTeX3 Project
+\RequirePackage{expl3}[2017/01/28]
+\@ifpackagelater{expl3}{2017/01/28}
   {}
   {%
     \PackageError{l3flag}{Support package l3kernel too old}
@@ -58,7 +32,7 @@
       }%
     \endinput
   }
-\GetIdInfo$Id: l3flag.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3flag.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental flags}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,21 @@
 %%
 %% l3regex.dtx  (with options: `package,trace')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3regex.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\RequirePackage{expl3}[2016/11/21]
-\@ifpackagelater{expl3}{2016/11/21}
+%% 
+%% File: l3regex.dtx Copyright (C) 2011-2016 The LaTeX3 Project
+\RequirePackage{expl3}[2017/01/28]
+\@ifpackagelater{expl3}{2017/01/28}
   {}
   {%
     \PackageError{l3regex}{Support package l3kernel too old}
@@ -58,7 +32,7 @@
       }%
     \endinput
   }
-\GetIdInfo$Id: l3regex.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3regex.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental regular expressions}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -1703,7 +1677,7 @@
   }
 \cs_new_protected:Npn \__regex_group_submatches:nNN #1#2#3
   {
-    \if_int_compare:w #1 > \c_minus_one
+    \if_int_compare:w #1 > - \c_one
       \__regex_toks_put_left:Nx #2 { \__regex_action_submatch:n { #1 < } }
       \__regex_toks_put_left:Nx #3 { \__regex_action_submatch:n { #1 > } }
     \fi:
@@ -2509,7 +2483,7 @@
         }
       \prop_map_inline:Nn \l__regex_success_submatches_prop
         {
-          \if_int_compare:w ##1 \c_minus_one
+          \if_int_compare:w ##1 - \c_one
             \exp_after:wN \__regex_extract_e:wn \__int_value:w
           \else:
             \exp_after:wN \__regex_extract_b:wn \__int_value:w

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,21 @@
 %%
 %% l3regex.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3regex.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\RequirePackage{expl3}[2016/11/21]
-\@ifpackagelater{expl3}{2016/11/21}
+%% 
+%% File: l3regex.dtx Copyright (C) 2011-2016 The LaTeX3 Project
+\RequirePackage{expl3}[2017/01/28]
+\@ifpackagelater{expl3}{2017/01/28}
   {}
   {%
     \PackageError{l3regex}{Support package l3kernel too old}
@@ -58,7 +32,7 @@
       }%
     \endinput
   }
-\GetIdInfo$Id: l3regex.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3regex.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental regular expressions}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -1683,7 +1657,7 @@
   }
 \cs_new_protected:Npn \__regex_group_submatches:nNN #1#2#3
   {
-    \if_int_compare:w #1 > \c_minus_one
+    \if_int_compare:w #1 > - \c_one
       \__regex_toks_put_left:Nx #2 { \__regex_action_submatch:n { #1 < } }
       \__regex_toks_put_left:Nx #3 { \__regex_action_submatch:n { #1 > } }
     \fi:
@@ -2482,7 +2456,7 @@
         }
       \prop_map_inline:Nn \l__regex_success_submatches_prop
         {
-          \if_int_compare:w ##1 \c_minus_one
+          \if_int_compare:w ##1 - \c_one
             \exp_after:wN \__regex_extract_e:wn \__int_value:w
           \else:
             \exp_after:wN \__regex_extract_b:wn \__int_value:w

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,21 @@
 %%
 %% l3str-convert.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \RequirePackage{expl3}
-\GetIdInfo$Id: l3str-convert.dtx 6699 2016-09-07 16:03:15Z bruno $
+\GetIdInfo$Id: l3str-convert.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental string encoding conversions}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88591')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso88591 }
   {
   }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885910')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso885910 }
   {
     { A1 } { 0104 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885911')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso885911 }
   {
     { A1 } { 0E01 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885913')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso885913 }
   {
     { A1 } { 201D }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885914')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso885914 }
   {
     { A1 } { 1E02 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885915')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso885915 }
   {
     { A4 } { 20AC }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso885916')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso885916 }
   {
     { A1 } { 0104 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88592')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso88592 }
   {
     { A1 } { 0104 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88593')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso88593 }
   {
     { A1 } { 0126 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88594')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso88594 }
   {
     { A1 } { 0104 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88595')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso88595 }
   {
     { A1 } { 0401 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88596')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso88596 }
   {
     { AC } { 060C }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88597')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso88597 }
   {
     { A1 } { 2018 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88598')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso88598 }
   {
     { AA } { 00D7 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `iso88599')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \__str_declare_eight_bit_encoding:nnn { iso88599 }
   {
     { D0 } { 011E }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `utf16')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \group_begin:
   \char_set_catcode_other:N \^^fe
   \char_set_catcode_other:N \^^ff

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `utf32')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \group_begin:
   \char_set_catcode_other:N \^^00
   \char_set_catcode_other:N \^^fe

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,50 +6,24 @@
 %%
 %% l3str-convert.dtx  (with options: `utf8')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \cs_new_protected:cpn { __str_convert_encode_utf8: }
   { \__str_convert_gmap_internal:N \__str_encode_utf_viii_char:n }
 \cs_new:Npn \__str_encode_utf_viii_char:n #1
   {
-    \__str_encode_utf_viii_loop:wwnnw #1 ; \c_minus_one + \c_zero * ;
+    \__str_encode_utf_viii_loop:wwnnw #1 ; - \c_one + \c_zero * ;
       { 128 } { \c_zero }
       {  32 } {     192 }
       {  16 } {     224 }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `hex')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \cs_new_protected:Npn \__str_convert_unescape_hex:
   {
     \group_begin:

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `name')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \cs_set_protected:Npn \__str_tmp:w #1#2#3
   {
     \cs_new_protected:cpn { __str_convert_unescape_#2: }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `string')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \group_begin:
   \char_set_lccode:nn {`\*} {`\\}
   \char_set_catcode_other:N \^^J

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3str-convert.dtx  (with options: `url')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-convert.dtx Copyright (C) 2013-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-convert.dtx Copyright (C) 2013-2016 The LaTeX3 Project
 \cs_set_protected:Npn \__str_tmp:w #1#2#3
   {
     \cs_new_protected:cpn { __str_convert_unescape_#2: }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,21 @@
 %%
 %% l3str-format.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3str-format.dtx Copyright (C) 2012-2013,2015 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3str-format.dtx Copyright (C) 2012-2013,2015,2016 The LaTeX3 Project
 \RequirePackage{expl3}
-\GetIdInfo$Id: l3str-format.dtx 6589 2016-06-13 11:11:55Z joseph $
+\GetIdInfo$Id: l3str-format.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental string formatting}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,21 @@
 %%
 %% l3tl-analysis.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3tl-analysis.dtx Copyright (C) 2011-2012,2015,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3tl-analysis.dtx Copyright (C) 2011-2012,2015,2016 The LaTeX3 Project
 \RequirePackage{expl3}
-\GetIdInfo$Id: l3tl-analysis.dtx 6589 2016-06-13 11:11:55Z joseph $
+\GetIdInfo$Id: l3tl-analysis.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental token lists analysis}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -93,7 +67,7 @@
   }
 \cs_new_protected:Npn \__tl_analysis_setup:n #1
   {
-    \int_set_eq:NN \tex_escapechar:D \c_minus_one
+    \int_set:Nn \tex_escapechar:D { - \c_one }
     \exp_after:wN \__tl_analysis_disable_loop:N
       \tl_to_str:n {#1} { ~ } { ? ~ \__prg_break: }
     \__prg_break_point:
@@ -128,7 +102,7 @@
           \c_one
         \else:
           \if_catcode:w \exp_not:N \l__tl_analysis_token \c_group_end_token
-            \c_minus_one
+            - \c_one
           \else:
             \c_two
           \fi:
@@ -199,7 +173,7 @@
       = \l__tl_analysis_normal_int sp plus \l__tl_analysis_type_int sp \scan_stop:
     \int_incr:N \l__tl_analysis_index_int
     \int_zero:N \l__tl_analysis_normal_int
-    \if_int_compare:w \l__tl_analysis_nesting_int = \c_minus_one
+    \if_int_compare:w \l__tl_analysis_nesting_int = - \c_one
       \cs_set_eq:NN \__tl_analysis_a_loop:w \scan_stop:
     \fi:
   }
@@ -277,7 +251,7 @@
     \exp_not:n { \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: }
     \exp_not:N \__int_value:w `#1 \s__tl
    \exp_not:N \exp_after:wN \exp_not:N \__tl_analysis_b_normals:ww
-     \exp_not:N \__int_value:w \exp_not:N \__int_eval:w \c_minus_one +
+     \exp_not:N \__int_value:w \exp_not:N \__int_eval:w - \c_one +
   }
 \cs_new:Npn \__tl_analysis_b_cs:Nww #1
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-build.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,21 @@
 %%
 %% l3tl-build.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3tl-build.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\RequirePackage{expl3}[2016/11/21]
-\@ifpackagelater{expl3}{2016/11/21}
+%% 
+%% File: l3tl-build.dtx Copyright (C) 2011-2016 The LaTeX3 Project
+\RequirePackage{expl3}[2017/01/28]
+\@ifpackagelater{expl3}{2017/01/28}
   {}
   {%
     \PackageError{l3tl-build}{Support package l3kernel too old}
@@ -58,7 +32,7 @@
       }%
     \endinput
   }
-\GetIdInfo$Id: l3tl-build.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3tl-build.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental token list construction}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,67 +6,40 @@
 %%
 %% xcoffins.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2010-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: xcoffins.dtx Copyright(C) 2010-2012,2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
+%% 
+%% File: xcoffins.dtx Copyright(C) 2010-2012,2014,2016,2017 The LaTeX3 Project
 \RequirePackage{xparse}
-\GetIdInfo$Id: xcoffins.dtx 4728 2014-05-04 13:25:37Z joseph $
+\GetIdInfo$Id: xcoffins.dtx 6833 2017-01-28 20:01:31Z joseph $
   {L3 Experimental design-level coffins}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
 \keys_define:nn { coffin }
   {
-    coffin1-hpole     .tl_set:N        = \l__coffin_A_hpole_tl          ,
-    coffin1-hpole     .value_required:                                 ,
-    coffin1-vpole     .tl_set:N        = \l__coffin_A_vpole_tl          ,
-    coffin1-vpole     .value_required:                                 ,
-    coffin2-hpole     .tl_set:N        = \l__coffin_B_hpole_tl          ,
-    coffin2-hpole     .value_required:                                 ,
-    coffin2-vpole     .tl_set:N        = \l__coffin_B_vpole_tl          ,
-    coffin2-vpole     .value_required:                                 ,
-    grow-bounding-box .bool_set:N      = \l__coffin_bound_box_grow_bool ,
-    grow-bounding-box .default:n       = true                          ,
-    hoffset           .dim_set:N       = \l__coffin_hoffset_dim         ,
-    hoffset           .value_required:                                 ,
-    voffset           .dim_set:N       = \l__coffin_voffset_dim         ,
-    voffset           .value_required:
+    coffin1-hpole     .tl_set:N         = \l__coffin_A_hpole_tl          ,
+    coffin1-hpole     .value_required:n = true                      ,
+    coffin1-vpole     .tl_set:N         = \l__coffin_A_vpole_tl          ,
+    coffin1-vpole     .value_required:n = true                      ,
+    coffin2-hpole     .tl_set:N         = \l__coffin_B_hpole_tl          ,
+    coffin2-hpole     .value_required:n = true                      ,
+    coffin2-vpole     .tl_set:N         = \l__coffin_B_vpole_tl          ,
+    coffin2-vpole     .value_required:n = true                      ,
+    grow-bounding-box .bool_set:N       = \l__coffin_bound_box_grow_bool ,
+    grow-bounding-box .default:n        = true                      ,
+    hoffset           .dim_set:N        = \l__coffin_hoffset_dim         ,
+    hoffset           .value_required:n = true                      ,
+    voffset           .dim_set:N        = \l__coffin_voffset_dim         ,
+    voffset           .value_required:n = true
   }
 \keys_set:nn { coffin }
   {

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,49 +6,22 @@
 %%
 %% l3galley.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2010-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
+%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%% 
 %% File: l3galley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
 %%                              (C) 2010-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\RequirePackage{expl3}[2016/11/21]
-\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+\@ifpackagelater{expl3}{2017/01/28}
   {}
   {%
     \PackageError{l3galley}{Support package l3kernel too old}
@@ -60,7 +33,7 @@
       }%
     \endinput
   }
-\GetIdInfo$Id: l3galley.dtx 6760 2016-11-21 20:35:31Z joseph $
+\GetIdInfo$Id: l3galley.dtx 6829 2017-01-28 08:52:51Z joseph $
   {L3 Experimental galley code}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -642,11 +615,8 @@
       {
         \seq_gset_eq:Nc \g__galley_tmpa_seq { g__galley_cutout_ #1 _seq }
         \seq_gset_eq:Nc \g__galley_tmpb_seq { l__galley_parshape_ #1 _indent_seq }
-        \tl_set:Nx \l__galley_tmp_tl
-          {
-            \seq_item:Nn \g__galley_tmpb_seq
-              { \seq_count:N \g__galley_tmpb_seq }
-          }
+        \seq_get_right:NNF \g__galley_tmpb_seq \l__galley_tmp_tl
+          { \tl_clear:N \l__galley_tmp_tl }
         \tl_if_empty:NT \l__galley_tmp_tl
          { \tl_set:Nn \l__galley_tmp_tl { 0pt } }
         \int_set:Nn \l__galley_tmp_int
@@ -667,8 +637,8 @@
   }
 \cs_new_protected:Npn \__galley_parshape_set_cutouts:N #1
   {
-    \tl_set:Nx \l__galley_tmp_tl
-      { \seq_item:Nn #1 { \seq_count:N #1 } }
+    \seq_get_right:NNF #1 \l__galley_tmp_tl
+      { \tl_clear:N \l__galley_tmp_tl }
     \tl_if_empty:NT \l__galley_tmp_tl
       { \tl_set:Nn \l__galley_tmp_tl { 0pt } }
     \prg_replicate:nn { \int_abs:n \l__galley_tmp_int }
@@ -934,7 +904,7 @@
   {
     \mode_if_vertical:T
       {
-        \int_compare:nNnT \@dbltopnum = \c_minus_one
+        \int_compare:nNnT \@dbltopnum = { - \c_one }
           {
             \dim_compare:nNnT \tex_pagetotal:D < \topskip
               { \tex_hbox:D { } }

Modified: trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,49 +6,22 @@
 %%
 %% xgalley.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2010-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: xgalley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
-%%                             (C) 2010-2012,2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3experimental bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
+%% 
+%% File: xgalley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
+%%                             (C) 2010-2012,2014,2106 The LaTeX3 Project
 \RequirePackage{xparse}
-\GetIdInfo$Id: xgalley.dtx 5375 2014-08-25 10:17:29Z joseph $
+\GetIdInfo$Id: xgalley.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental galley}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2017-01-29 22:34:57 UTC (rev 43088)
@@ -42,49 +42,23 @@
 %% l3candidates.dtx  (with options: `package')
 %% l3luatex.dtx  (with options: `package,tex')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: expl3.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: expl3.dtx Copyright (C) 1990-2016 The LaTeX3 Project
 \def\ExplFileName{expl3}%
 \def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2016/11/21}%
-\def\ExplFileVersion{6760}%
+\def\ExplFileDate{2017/01/28}%
+\def\ExplFileVersion{6834}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -143,37 +117,6 @@
       (code)%
   }%
 %% File: l3bootstrap.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
 \begingroup
   \csname protected\endcsname\gdef\GetIdInfo
     {%
@@ -243,7 +186,7 @@
         }%
     }%
 \endgroup
-\GetIdInfo$Id: l3bootstrap.dtx 6596 2016-06-13 21:29:58Z joseph $
+\GetIdInfo$Id: l3bootstrap.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Bootstrap code}%
 \begingroup
   \expandafter\ifx\csname directlua\endcsname\relax
@@ -419,38 +362,7 @@
     \bool_set_true:N \l__kernel_expl_bool
   }
 %% File: l3names.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3names.dtx 6722 2016-10-13 10:22:35Z joseph $
+\GetIdInfo$Id: l3names.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Namespace for primitives}
 \let \tex_global:D \global
 \let \tex_let:D    \let
@@ -1451,38 +1363,7 @@
   \tex_let:D \tex_right:D  \normalright
 \tex_fi:D
 %% File: l3basics.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3basics.dtx 6696 2016-09-01 16:09:52Z bruno $
+\GetIdInfo$Id: l3basics.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Basic definitions}
 \tex_let:D \if_true:           \tex_iftrue:D
 \tex_let:D \if_false:          \tex_iffalse:D
@@ -1533,8 +1414,6 @@
     { \tl_to_str:n {undefined} }
   }
 \tex_let:D \token_to_meaning:c = \cs_meaning:c
-\tex_let:D \c_minus_one \m at ne
-\tex_chardef:D \c_sixteen = 16 ~
 \tex_chardef:D \c_zero    = 0 ~
 \etex_ifdefined:D \luatex_luatexversion:D
   \tex_chardef:D \c_max_register_int = 65 535 ~
@@ -1885,9 +1764,9 @@
 \cs_set:Npn \cs_if_exist_use:c #1
   { \cs_if_exist:cTF {#1} { \use:c {#1} } { } }
 \cs_set_protected:Npn \iow_log:x
-  { \tex_immediate:D \tex_write:D \c_minus_one }
+  { \tex_immediate:D \tex_write:D -1 }
 \cs_set_protected:Npn \iow_term:x
-  { \tex_immediate:D \tex_write:D \c_sixteen }
+  { \tex_immediate:D \tex_write:D 16 }
 \tex_ifodd:D \l at expl@log at functions@bool
   \cs_set_protected:Npn \__chk_log:x { \iow_log:x }
   \cs_set_protected:Npn \__chk_suspend_log:
@@ -2073,7 +1952,7 @@
     \if_meaning:w \c_true_bool #3
       \tl_count:n {#2}
     \else:
-      \c_minus_one
+      -1
     \fi:
   }
 \cs_new:Npn \__cs_count_signature:c
@@ -2226,38 +2105,7 @@
 \cs_new:Npn \__prg_break: #1 \__prg_break_point: { }
 \cs_new:Npn \__prg_break:n #1#2 \__prg_break_point: {#1}
 %% File: l3expan.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3expan.dtx 6684 2016-08-19 15:21:49Z bruno $
+\GetIdInfo$Id: l3expan.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Argument expansion}
 \cs_new:Npn \__exp_arg_next:nnn #1#2#3 { #2 \::: { #3 {#1} } }
 \cs_new:Npn \__exp_arg_next:Nnn #1#2#3 { #2 \::: { #3 #1 } }
@@ -2706,38 +2554,7 @@
     \__cs_generate_internal_variant_loop:n
   }
 %% File: l3tl.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3tl.dtx 6692 2016-08-19 22:29:47Z bruno $
+\GetIdInfo$Id: l3tl.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Token lists}
 \cs_new_protected:Npn \tl_new:N #1
   {
@@ -2928,7 +2745,7 @@
         \group_begin:
           \exp_args:No \etex_everyeof:D { \c__tl_rescan_marker_tl \exp_not:N }
           \int_compare:nNnT \tex_endlinechar:D = { 32 }
-            { \tex_endlinechar:D \c_minus_one }
+            { \tex_endlinechar:D - \c_one }
           \tex_newlinechar:D \tex_endlinechar:D
           #3 \scan_stop:
           \exp_args:No \__tl_set_rescan:n { \tl_to_str:n {#4} }
@@ -2985,7 +2802,7 @@
     }
   \cs_new_protected:Npn \__tl_set_rescan_single_aux:nn #1#2
     {
-      \tex_endlinechar:D \c_minus_one
+      \tex_endlinechar:D - \c_one
       \use:x
         {
           \exp_not:N \use:n
@@ -3585,18 +3402,17 @@
 \cs_new:Npn \tl_item:nn #1#2
   {
     \exp_args:Nf \__tl_item:nn
-      {
-        \int_eval:n
-          {
-            \int_compare:nNnT {#2} < \c_zero
-              { \tl_count:n {#1} + \c_one + }
-            #2
-          }
-      }
+      { \exp_args:Nf \__tl_item_aux:nn { \int_eval:n {#2} } {#1} }
     #1
     \q_recursion_tail
     \__prg_break_point:
   }
+\cs_new:Npn \__tl_item_aux:nn #1#2
+  {
+    \int_compare:nNnTF {#1} < \c_zero
+      { \int_eval:n { \tl_count:n {#2} + \c_one + #1 } }
+      {#1}
+  }
 \cs_new:Npn \__tl_item:nn #1#2
   {
     \__quark_if_recursion_tail_break:nN {#2} \__prg_break:
@@ -3623,38 +3439,7 @@
 \cs_new_protected:Npn \tl_to_uppercase:n #1
   { \tex_uppercase:D {#1} }
 %% File: l3str.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3str.dtx 6692 2016-08-19 22:29:47Z bruno $
+\GetIdInfo$Id: l3str.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Strings}
 \group_begin:
   \cs_set_protected:Npn \__str_tmp:n #1
@@ -4041,13 +3826,13 @@
   }
 \cs_new:Npn \str_head:N { \exp_args:No \str_head:n }
 \cs_generate_variant:Nn \str_head:N { c }
-\cs_set:Npn \str_head:n #1
+\cs_new:Npn \str_head:n #1
   {
     \exp_after:wN \__str_head:w
     \tl_to_str:n {#1}
     { { } } ~ \q_stop
   }
-\cs_set:Npn \__str_head:w #1 ~ %
+\cs_new:Npn \__str_head:w #1 ~ %
   { \use_i_delimit_by_q_stop:nw #1 { ~ } }
 \cs_new:Npn \str_head_ignore_spaces:n #1
   {
@@ -4056,13 +3841,13 @@
   }
 \cs_new:Npn \str_tail:N { \exp_args:No \str_tail:n }
 \cs_generate_variant:Nn \str_tail:N { c }
-\cs_set:Npn \str_tail:n #1
+\cs_new:Npn \str_tail:n #1
   {
     \exp_after:wN \__str_tail_auxi:w
     \reverse_if:N \if_charcode:w
         \scan_stop: \tl_to_str:n {#1} X X \q_stop
   }
-\cs_set:Npn \__str_tail_auxi:w #1 X #2 \q_stop { \fi: #1 }
+\cs_new:Npn \__str_tail_auxi:w #1 X #2 \q_stop { \fi: #1 }
 \cs_new:Npn \str_tail_ignore_spaces:n #1
   {
     \exp_after:wN \__str_tail_auxii:w
@@ -4125,9 +3910,9 @@
               { \utex_char:D \use:c { __str_lookup_ #1 :N } #2 ~ }
           }
       }
-    \cs_set_protected:Npn \__str_lookup_lower:N #1 { \tex_lccode:D `#1 }
-    \cs_set_protected:Npn \__str_lookup_upper:N #1 { \tex_uccode:D `#1 }
-    \cs_set_eq:NN \__str_lookup_fold:N \__str_lookup_lower:N
+    \cs_new_protected:Npn \__str_lookup_lower:N #1 { \tex_lccode:D `#1 }
+    \cs_new_protected:Npn \__str_lookup_upper:N #1 { \tex_uccode:D `#1 }
+    \cs_new_eq:NN \__str_lookup_fold:N \__str_lookup_lower:N
   }
   {
     \cs_new:Npn \__str_change_case_char_aux:nN #1#2
@@ -4280,38 +4065,7 @@
     }
 \group_end:
 %% File: l3seq.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3seq.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3seq.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Sequences and stacks}
 \cs_new:Npn \__seq_item:n
   {
@@ -4669,18 +4423,17 @@
 \cs_new:Npn \__seq_item:wNn \s__seq #1 \q_stop #2#3
   {
     \exp_args:Nf \__seq_item:nnn
-      {
-        \int_eval:n
-          {
-            \int_compare:nNnT {#3} < \c_zero
-              { \seq_count:N #2 + \c_one + }
-            #3
-          }
-      }
+      { \exp_args:Nf \__seq_item:nN { \int_eval:n {#3} } #2 }
     #1
     { ? \__prg_break: } { }
     \__prg_break_point:
   }
+\cs_new:Npn \__seq_item:nN #1#2
+  {
+    \int_compare:nNnTF {#1} < \c_zero
+      { \int_eval:n { \seq_count:N #2 + \c_one + #1 } }
+      {#1}
+  }
 \cs_new:Npn \__seq_item:nnn #1#2#3
   {
     \use_none:n #2
@@ -4841,38 +4594,7 @@
 \seq_new:N \g_tmpa_seq
 \seq_new:N \g_tmpb_seq
 %% File: l3int.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3int.dtx 6700 2016-09-07 22:16:49Z bruno $
+\GetIdInfo$Id: l3int.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Integers}
 \cs_new_eq:NN \__int_value:w      \tex_number:D
 \cs_new_eq:NN \__int_eval:w       \etex_numexpr:D
@@ -5020,7 +4742,7 @@
 \cs_new_protected:Npn \int_incr:N #1
   { \tex_advance:D #1 \c_one }
 \cs_new_protected:Npn \int_decr:N #1
-  { \tex_advance:D #1 \c_minus_one }
+  { \tex_advance:D #1 - \c_one }
 \cs_new_protected:Npn \int_gincr:N
   { \tex_global:D \int_incr:N }
 \cs_new_protected:Npn \int_gdecr:N
@@ -5651,6 +5373,8 @@
 \int_const:Nn \c_thirteen { 13 }
 \int_const:Nn \c_fourteen { 14 }
 \int_const:Nn \c_fifteen  { 15 }
+\int_const:Nn \c_sixteen  { 16 }
+\cs_new_eq:NN \c_minus_one \m at ne
 \int_const:Nn \c_thirty_two { 32 }
 \int_const:Nn \c_two_hundred_fifty_five { 255 }
 \int_const:Nn \c_two_hundred_fifty_six  { 256 }
@@ -5672,39 +5396,8 @@
 \int_new:N \l_tmpb_int
 \int_new:N \g_tmpa_int
 \int_new:N \g_tmpb_int
-%% File: l3quark.dtx Copyright (C) 1990-2015 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3quark.dtx 6685 2016-08-19 16:26:52Z bruno $
+%% File: l3quark.dtx Copyright (C) 1990-2016 The LaTeX3 Project
+\GetIdInfo$Id: l3quark.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Quarks}
 \cs_new_protected:Npn \quark_new:N #1 { \tl_const:Nn #1 {#1} }
 \quark_new:N \q_nil
@@ -5812,39 +5505,8 @@
 \__scan_new:N \s__stop
 \cs_new:Npn \__use_none_delimit_by_s__stop:w #1 \s__stop { }
 \__scan_new:N \s__seq
-%% File: l3prg.dtx Copyright (C) 2005-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3prg.dtx 6679 2016-08-18 20:54:06Z bruno $
+%% File: l3prg.dtx Copyright (C) 2005-2017 The LaTeX3 Project
+\GetIdInfo$Id: l3prg.dtx 6811 2017-01-01 08:50:54Z joseph $
   {L3 Control structures}
 \cs_new_eq:NN \if_bool:N      \tex_ifodd:D
 \cs_new_eq:NN \if_predicate:w \tex_ifodd:D
@@ -6136,42 +5798,10 @@
 \cs_new:Npn \group_align_safe_end:
   { \if_int_compare:w `{ = \c_zero } \fi: }
 \int_new:N \g__prg_map_int
-\cs_new_protected:Npn \scan_align_safe_stop: { }
 %% File: l3clist.dtx Copyright (C) 2004-2011 Frank Mittelbach,
 %%                                 The LaTeX3 project
 %%                             (C) 2012-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3clist.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3clist.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Comma separated lists}
 \cs_new_eq:NN \c_empty_clist \c_empty_tl
 \tl_new:N \l__clist_internal_clist
@@ -6633,27 +6263,28 @@
 \cs_generate_variant:Nn \clist_use:Nn { c }
 \cs_new:Npn \clist_item:Nn #1#2
   {
-    \exp_args:Nfo \__clist_item:nnNn
+    \__clist_item:ffoN
       { \clist_count:N #1 }
+      { \int_eval:n {#2} }
       #1
       \__clist_item_N_loop:nw
-      {#2}
   }
-\cs_new:Npn \__clist_item:nnNn #1#2#3#4
+\cs_new:Npn \__clist_item:nnnN #1#2#3#4
   {
-    \int_compare:nNnTF {#4} < \c_zero
+    \int_compare:nNnTF {#2} < \c_zero
       {
-        \int_compare:nNnTF {#4} < { - #1 }
+        \int_compare:nNnTF {#2} < { - #1 }
           { \use_none_delimit_by_q_stop:w }
-          { \exp_args:Nf #3 { \int_eval:n { #4 + \c_one + #1 } } }
+          { \exp_args:Nf #4 { \int_eval:n { #2 + \c_one + #1 } } }
       }
       {
-        \int_compare:nNnTF {#4} > {#1}
+        \int_compare:nNnTF {#2} > {#1}
           { \use_none_delimit_by_q_stop:w }
-          { #3 {#4} }
+          { #4 {#2} }
       }
-    { } , #2 , \q_stop
+    { } , #3 , \q_stop
   }
+\cs_generate_variant:Nn \__clist_item:nnnN { ffo, ff }
 \cs_new:Npn \__clist_item_N_loop:nw #1 #2,
   {
     \int_compare:nNnTF {#1} = \c_zero
@@ -6663,11 +6294,11 @@
 \cs_generate_variant:Nn \clist_item:Nn { c }
 \cs_new:Npn \clist_item:nn #1#2
   {
-    \exp_args:Nf \__clist_item:nnNn
+    \__clist_item:ffnN
       { \clist_count:n {#1} }
+      { \int_eval:n {#2} }
       {#1}
       \__clist_item_n:nw
-      {#2}
   }
 \cs_new:Npn \__clist_item_n:nw #1
   { \__clist_item_n_loop:nw {#1} \prg_do_nothing: }
@@ -6710,38 +6341,7 @@
 \clist_new:N \g_tmpa_clist
 \clist_new:N \g_tmpb_clist
 %% File: l3token.dtx Copyright (C) 2005-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3token.dtx 6695 2016-09-01 15:38:50Z bruno $
+\GetIdInfo$Id: l3token.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental token manipulation}
 \cs_new_protected:Npn \char_set_catcode:nn #1#2
   {
@@ -6856,7 +6456,7 @@
 \seq_set_split:Nnn \l_char_special_seq { }
   { \  \" \# \$ \% \& \\ \^ \_ \{ \} \~ }
 \seq_new:N \l_char_active_seq
-\seq_set_split:Nnn \l_char_special_seq { }
+\seq_set_split:Nnn \l_char_active_seq { }
   { \" \$ \& \^ \_ \~ }
 \group_begin:
   \char_set_catcode_active:N \^^@
@@ -6865,7 +6465,6 @@
       \cs_new_protected:cpn { #1 :nN } ##1
         {
           \group_begin:
-            \char_set_catcode_active:n { ##1 }
             \char_set_lccode:nn { `\^^@ } { ##1 }
           \tex_lowercase:D { \group_end: #2 ^^@ }
         }
@@ -7478,38 +7077,7 @@
       { \scan_stop: }
   }
 %% File: l3prop.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3prop.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3prop.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Property lists}
 \__scan_new:N \s__prop
 \cs_new:Npn \__prop_pair:wn #1 \s__prop #2
@@ -7781,38 +7349,7 @@
   }
 \cs_generate_variant:Nn \prop_show:N { c }
 %% File: l3msg.dtx Copyright (C) 2009-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3msg.dtx 6691 2016-08-19 22:14:26Z bruno $
+\GetIdInfo$Id: l3msg.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Messages}
 \tl_new:N \l__msg_internal_tl
 \tl_const:Nn \c__msg_text_prefix_tl      { msg~text~>~ }
@@ -7951,7 +7488,7 @@
           }
         \__iow_with:Nnn \tex_newlinechar:D { `\^^J }
           {
-            \__iow_with:Nnn \tex_errorcontextlines:D \c_minus_one
+            \__iow_with:Nnn \tex_errorcontextlines:D { - \c_one }
               {
                 \group_begin:
                   \cs_set_protected:Npn &
@@ -8589,7 +8126,7 @@
       {
         \__iow_with:Nnn \tex_newlinechar:D { 10 }
           {
-            \__iow_with:Nnn \tex_errorcontextlines:D \c_minus_one
+            \__iow_with:Nnn \tex_errorcontextlines:D { - \c_one }
               {
                 \etex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN
                   { \exp_after:wN \l__msg_internal_tl }
@@ -8613,38 +8150,7 @@
     \ \ => \ \ \tl_to_str:n {#2}
   }
 %% File: l3file.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3file.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3file.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 File and I/O operations}
 \tl_new:N \g_file_current_name_tl
 \cs_if_exist:NT \@currname
@@ -8660,7 +8166,10 @@
   {
     \group_begin:
       \seq_map_inline:Nn \l_char_active_seq
-        { \char_set:active:Npx ##1 { \cs_to_str:N ##1 } }
+        {
+          \tl_set:Nx \l__file_internal_tl { \iow_char:N ##1 }
+          \char_set_active_eq:NN ##1 \l__file_internal_tl
+        }
       \tl_set:Nx \l__file_internal_name_tl {#1}
       \tl_set:Nx \l__file_internal_name_tl
         { \tl_to_str:N \l__file_internal_name_tl }
@@ -8874,7 +8383,7 @@
   }
 \cs_new_protected:Npn \ior_close:N #1
   {
-    \int_compare:nT { \c_minus_one < #1 < \c_sixteen }
+    \int_compare:nT { - \c_one < #1 < \c_sixteen }
       {
         \tex_closein:D #1
         \prop_gremove:NV \g__ior_streams_prop #1
@@ -8912,11 +8421,11 @@
   }
 \cs_new_protected:Npn \ior_get:NN #1#2
   { \tex_read:D #1 to #2 }
-\cs_new_protected:Npn \ior_get_str:NN #1#2
+\cs_new_protected:Npn \ior_str_get:NN #1#2
   {
     \use:x
       {
-        \int_set_eq:NN \tex_endlinechar:D \c_minus_one
+        \int_set:Nn \tex_endlinechar:D { - \c_one }
         \exp_not:n { \etex_readline:D #1 to #2 }
         \int_set:Nn \tex_endlinechar:D { \int_use:N \tex_endlinechar:D }
       }
@@ -8968,13 +8477,13 @@
   }
 \cs_new_protected:Npn \iow_close:N #1
   {
-    \int_compare:nT { \c_minus_one < #1 < \c_sixteen }
+    \int_compare:nT { - \c_one < #1 < \c_sixteen }
       {
         \tex_immediate:D \tex_closeout:D #1
         \prop_gremove:NV \g__iow_streams_prop #1
         \seq_if_in:NVF \g__iow_streams_seq #1
           { \seq_gpush:NV \g__iow_streams_seq #1 }
-        \cs_gset_eq:NN #1 \c_term_ior
+        \cs_gset_eq:NN #1 \c_term_iow
       }
   }
 \cs_generate_variant:Nn \iow_close:N { c }
@@ -9025,7 +8534,7 @@
 \bool_new:N \l__iow_line_start_bool
 \tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\  } { 12 } }
 \group_begin:
-  \int_set_eq:NN \tex_escapechar:D \c_minus_one
+  \int_set:Nn \tex_escapechar:D { - \c_one }
   \tl_const:Nx \c__iow_wrap_marker_tl
     { \tl_to_str:n { \^^I \^^O \^^W \^^_ \^^W \^^R \^^A \^^P } }
 \group_end:
@@ -9056,7 +8565,7 @@
 \cs_new_protected:Npn \iow_wrap:nnnN #1#2#3#4
   {
     \group_begin:
-      \int_set_eq:NN \tex_escapechar:D \c_minus_one
+      \int_set:Nn \tex_escapechar:D { - \c_one }
       \cs_set:Npx \{ { \token_to_str:N \{ }
       \cs_set:Npx \# { \token_to_str:N \# }
       \cs_set:Npx \} { \token_to_str:N \} }
@@ -9207,40 +8716,10 @@
   }
 \__msg_kernel_new:nnn { kernel } { indent-outside-wrapping-code }
   { Only~\iow_wrap:nnnN~(arg~1)~allows~\iow_indent:n }
+\cs_new_eq:NN \ior_get_str:NN \ior_str_get:NN
 %% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project
 %%                            (C) 2012-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3skip.dtx 6692 2016-08-19 22:29:47Z bruno $
+\GetIdInfo$Id: l3skip.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Dimensions and skips}
 \cs_new_eq:NN \if_dim:w      \tex_ifdim:D
 \cs_new_eq:NN \__dim_eval:w      \etex_dimexpr:D
@@ -9299,7 +8778,7 @@
   }
 \cs_new:Npn \__dim_abs:N #1
   { \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: }
-\cs_set:Npn \dim_max:nn #1#2
+\cs_new:Npn \dim_max:nn #1#2
   {
     \dim_use:N \__dim_eval:w \exp_after:wN \__dim_maxmin:wwN
       \dim_use:N \__dim_eval:w #1 \exp_after:wN ;
@@ -9307,7 +8786,7 @@
       >
     \__dim_eval_end:
   }
-\cs_set:Npn \dim_min:nn #1#2
+\cs_new:Npn \dim_min:nn #1#2
   {
     \dim_use:N \__dim_eval:w \exp_after:wN \__dim_maxmin:wwN
       \dim_use:N \__dim_eval:w #1 \exp_after:wN ;
@@ -9397,7 +8876,7 @@
       { \__dim_case:nw {#1} }
   }
 \cs_new_eq:NN \__dim_case_end:nw \__prg_case_end:nw
-\cs_set:Npn \dim_while_do:nn #1#2
+\cs_new:Npn \dim_while_do:nn #1#2
   {
     \dim_compare:nT {#1}
       {
@@ -9405,7 +8884,7 @@
         \dim_while_do:nn {#1} {#2}
       }
   }
-\cs_set:Npn \dim_until_do:nn #1#2
+\cs_new:Npn \dim_until_do:nn #1#2
   {
     \dim_compare:nF {#1}
       {
@@ -9413,19 +8892,19 @@
         \dim_until_do:nn {#1} {#2}
       }
   }
-\cs_set:Npn \dim_do_while:nn #1#2
+\cs_new:Npn \dim_do_while:nn #1#2
   {
     #2
     \dim_compare:nT {#1}
       { \dim_do_while:nn {#1} {#2} }
   }
-\cs_set:Npn \dim_do_until:nn #1#2
+\cs_new:Npn \dim_do_until:nn #1#2
   {
     #2
     \dim_compare:nF {#1}
       { \dim_do_until:nn {#1} {#2} }
   }
-\cs_set:Npn \dim_while_do:nNnn #1#2#3#4
+\cs_new:Npn \dim_while_do:nNnn #1#2#3#4
   {
     \dim_compare:nNnT {#1} #2 {#3}
       {
@@ -9433,7 +8912,7 @@
         \dim_while_do:nNnn {#1} #2 {#3} {#4}
       }
   }
-\cs_set:Npn \dim_until_do:nNnn #1#2#3#4
+\cs_new:Npn \dim_until_do:nNnn #1#2#3#4
   {
   \dim_compare:nNnF {#1} #2 {#3}
     {
@@ -9441,13 +8920,13 @@
       \dim_until_do:nNnn {#1} #2 {#3} {#4}
     }
   }
-\cs_set:Npn \dim_do_while:nNnn #1#2#3#4
+\cs_new:Npn \dim_do_while:nNnn #1#2#3#4
   {
     #4
     \dim_compare:nNnT {#1} #2 {#3}
       { \dim_do_while:nNnn {#1} #2 {#3} {#4} }
   }
-\cs_set:Npn \dim_do_until:nNnn #1#2#3#4
+\cs_new:Npn \dim_do_until:nNnn #1#2#3#4
   {
     #4
     \dim_compare:nNnF {#1} #2 {#3}
@@ -9646,39 +9125,8 @@
 \muskip_new:N \l_tmpb_muskip
 \muskip_new:N \g_tmpa_muskip
 \muskip_new:N \g_tmpb_muskip
-%% File: l3keys.dtx Copyright (C) 2006-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3keys.dtx 6711 2016-09-21 07:04:35Z joseph $
+%% File: l3keys.dtx Copyright (C) 2006-2017 The LaTeX3 Project
+\GetIdInfo$Id: l3keys.dtx 6811 2017-01-01 08:50:54Z joseph $
   {L3 Key-value interfaces}
 \tl_new:N \l__keyval_key_tl
 \tl_new:N \l__keyval_value_tl
@@ -9812,7 +9260,8 @@
 \tl_const:Nn \c__keys_code_root_tl     { key~code~>~ }
 \tl_const:Nn \c__keys_default_root_tl  { key~default~>~ }
 \tl_const:Nn \c__keys_groups_root_tl   { key~groups~>~ }
-\tl_const:Nn \c__keys_info_root_tl     { key~info~>~ }
+\tl_const:Nn \c__keys_inherit_root_tl  { key~inherit~>~ }
+\tl_const:Nn \c__keys_type_root_tl     { key~type~>~ }
 \tl_const:Nn \c__keys_validate_root_tl { key~validate~>~ }
 \tl_const:Nn \c__keys_props_root_tl { key~prop~>~ }
 \int_new:N \l_keys_choice_int
@@ -9877,7 +9326,12 @@
       {
         \str_if_eq:nnTF {#3} { . }
           {
-            \tl_set:Nx \l_keys_path_tl { \l__keys_module_tl / #1 }
+            \tl_set:Nx \l_keys_path_tl
+              {
+                \tl_if_empty:NF \l__keys_module_tl
+                  { \l__keys_module_tl  / }
+                #1
+              }
             \tl_set:Nn \l__keys_property_tl { . #2 }
           }
           {
@@ -9919,20 +9373,6 @@
       ##1 \c_colon_str ##2 \exp_not:N \q_stop
   }
   { \tl_if_empty:nTF {#2} }
-\cs_new_protected:Npn \__keys_ensure_exist:n #1
-  {
-    \prop_if_exist:cF { \c__keys_info_root_tl #1 }
-      {
-        \prop_set_eq:cN { \c__keys_info_root_tl #1 } \c_empty_prop
-      }
-
-    \cs_if_exist:cF { \c__keys_code_root_tl #1 }
-      {
-        \__chk_log:x { Defining~key~#1~ \msg_line_context: }
-        \cs_set_protected:cpn { \c__keys_code_root_tl #1 } ##1 { }
-      }
-  }
-\cs_generate_variant:Nn \__keys_ensure_exist:n { V }
 \cs_new_protected:Npn \__keys_bool_set:Nn #1#2
   {
     \bool_if_exist:NF #1 { \bool_new:N #1 }
@@ -9971,12 +9411,12 @@
   { \__keys_choice_make:N \__keys_multichoice_find:n }
 \cs_new_protected:Npn \__keys_choice_make:N #1
   {
-    \prop_if_exist:cTF
-      { \c__keys_info_root_tl \__keys_parent:o \l_keys_path_tl }
+    \cs_if_exist:cTF
+      { \c__keys_type_root_tl \__keys_parent:o \l_keys_path_tl }
       {
-        \prop_get:cnNTF
-          { \c__keys_info_root_tl \__keys_parent:o \l_keys_path_tl }
-          { choice } \l_keys_value_tl
+        \str_if_eq_x:nnTF
+          { \exp_not:v { \c__keys_type_root_tl \__keys_parent:o \l_keys_path_tl } }
+          { choice }
           {
             \__msg_kernel_error:nnxx { kernel } { nested-choice-key }
               { \l_keys_path_tl } { \__keys_parent:o \l_keys_path_tl }
@@ -9987,9 +9427,8 @@
   }
 \cs_new_protected:Npn \__keys_choice_make_aux:N #1
   {
+    \cs_set_nopar:cpn { \c__keys_type_root_tl \l_keys_path_tl } { choice }
     \__keys_cmd_set:nn { \l_keys_path_tl } { #1 {##1} }
-    \prop_put:cnn { \c__keys_info_root_tl \l_keys_path_tl } { choice }
-      { true }
     \__keys_cmd_set:nn { \l_keys_path_tl / unknown }
       {
         \__msg_kernel_error:nnxx { kernel } { key-choice-unknown }
@@ -9996,17 +9435,6 @@
           { \l_keys_path_tl } {##1}
       }
   }
-\cs_new:Npn \__keys_parent:n #1
-  { \__keys_parent:wn #1 / / \q_stop { } }
-\cs_generate_variant:Nn \__keys_parent:n { o }
-\cs_new:Npn \__keys_parent:wn #1 / #2 / #3 \q_stop #4
-  {
-    \tl_if_blank:nTF {#2}
-      { \use_none:n #4 }
-      {
-        \__keys_parent:wn #2 / #3 \q_stop { #4 / #1 }
-      }
-  }
 \cs_new_protected:Npn \__keys_choices_make:nn
   { \__keys_choices_make:Nnn \__keys_choice_make: }
 \cs_new_protected:Npn \__keys_multichoices_make:nn
@@ -10029,7 +9457,8 @@
   }
 \cs_new_protected:Npn \__keys_cmd_set:nn #1#2
   {
-    \__keys_ensure_exist:V \l_keys_path_tl
+    \cs_if_exist:cF { \c__keys_code_root_tl #1 }
+      { \__chk_log:x { Defining~key~#1~\msg_line_context: } }
     \cs_set_protected:cpn { \c__keys_code_root_tl #1 } ##1 {#2}
   }
 \cs_generate_variant:Nn \__keys_cmd_set:nn { nx , Vn , Vo }
@@ -10049,18 +9478,22 @@
   }
 \cs_new_protected:Npn \__keys_groups_set:n #1
   {
-    \__keys_ensure_exist:V \l_keys_path_tl
     \clist_set:Nn \l__keys_groups_clist {#1}
     \clist_if_empty:NTF \l__keys_groups_clist
       {
-        \prop_remove:cn { \c__keys_info_root_tl \l_keys_path_tl }
-          { groups }
+        \cs_set_eq:cN { \c__keys_groups_root_tl \l_keys_path_tl }
+          \tex_undefined:D
       }
       {
-        \prop_put:cnV { \c__keys_info_root_tl \l_keys_path_tl }
-          { groups } \l__keys_groups_clist
+        \clist_set_eq:cN { \c__keys_groups_root_tl \l_keys_path_tl }
+          \l__keys_groups_clist
       }
   }
+\cs_new_protected:Npn \__keys_inherit:n #1
+  {
+    \__keys_undefine:
+    \cs_set_nopar:cpn { \c__keys_inherit_root_tl \l_keys_path_tl } {#1}
+  }
 \cs_new_protected:Npn \__keys_initialise:n #1
   {
     \cs_if_exist_use:cT { \c__keys_code_root_tl \l_keys_path_tl } { {#1} }
@@ -10078,7 +9511,7 @@
 \cs_new_protected:Npn \__keys_undefine:
   {
     \clist_map_inline:nn
-      { code , default , groups , info , validate }
+      { code , default , groups , inherit , type , validate }
       {
         \cs_set_eq:cN
           { \tl_use:c { c__keys_ ##1 _root_tl } \l_keys_path_tl }
@@ -10204,6 +9637,8 @@
   { \__keys_variable_set:cnnN {#1} { fp } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .groups:n } #1
   { \__keys_groups_set:n {#1} }
+\cs_new_protected:cpn { \c__keys_props_root_tl .inherit:n } #1
+  { \__keys_inherit:n {#1} }
 \cs_new_protected:cpn { \c__keys_props_root_tl .initial:n } #1
   { \__keys_initialise:n {#1} }
 \cs_new_protected:cpn { \c__keys_props_root_tl .initial:V } #1
@@ -10333,7 +9768,12 @@
   }
 \cs_new_protected:Npn \__keys_set_aux:nnn #1#2#3
   {
-    \tl_set:Nx \l_keys_path_tl { #1 / \__keys_remove_spaces:n {#2} }
+    \tl_set:Nx \l_keys_path_tl
+      {
+        \tl_if_blank:nF {#1}
+          { #1 / }
+        \__keys_remove_spaces:n {#2}
+      }
     \tl_clear:N \l__keys_module_tl
     \exp_after:wN \__keys_find_key_module:w \l_keys_path_tl / \q_stop
     \__keys_value_or_default:n {#3}
@@ -10358,16 +9798,11 @@
   }
 \cs_new_protected:Npn \__keys_set_selective:
   {
-    \prop_if_exist:cTF { \c__keys_info_root_tl \l_keys_path_tl }
+    \cs_if_exist:cTF { \c__keys_groups_root_tl \l_keys_path_tl }
       {
-        \prop_get:cnNTF { \c__keys_info_root_tl \l_keys_path_tl }
-          { groups } \l__keys_groups_clist
-          { \__keys_check_groups: }
-          {
-            \bool_if:NTF \l__keys_filtered_bool
-              { \__keys_execute: }
-              { \__keys_store_unused: }
-          }
+        \clist_set_eq:Nc \l__keys_groups_clist
+          { \c__keys_groups_root_tl \l_keys_path_tl }
+        \__keys_check_groups:
       }
       {
         \bool_if:NTF \l__keys_filtered_bool
@@ -10430,23 +9865,41 @@
     \bool_if:NTF \l__keys_only_known_bool
       { \__keys_store_unused: }
       {
-        \cs_if_exist:cTF { \c__keys_code_root_tl \l__keys_module_tl / unknown }
+        \cs_if_exist:cTF
+          { \c__keys_inherit_root_tl \__keys_parent:o \l_keys_path_tl }
           {
-            \cs:w \c__keys_code_root_tl \l__keys_module_tl / unknown \exp_after:wN
-              \cs_end: \exp_after:wN { \l_keys_value_tl }
+            \clist_map_inline:cn
+              { \c__keys_inherit_root_tl \__keys_parent:o \l_keys_path_tl }
+              {
+                \cs_if_exist:cT
+                  { \c__keys_code_root_tl ##1 / \l_keys_key_tl }
+                  {
+                    \cs:w \c__keys_code_root_tl ##1 / \l_keys_key_tl
+                      \exp_after:wN \cs_end: \exp_after:wN
+                      { \l_keys_value_tl }
+                    \clist_map_break:
+                  }
+              }
           }
           {
-            \__msg_kernel_error:nnxx { kernel } { key-unknown }
-              { \l_keys_path_tl } { \l__keys_module_tl }
+            \cs_if_exist:cTF { \c__keys_code_root_tl \l__keys_module_tl / unknown }
+              {
+                \cs:w \c__keys_code_root_tl \l__keys_module_tl / unknown
+                  \exp_after:wN \cs_end: \exp_after:wN { \l_keys_value_tl }
+              }
+              {
+                \__msg_kernel_error:nnxx { kernel } { key-unknown }
+                  { \l_keys_path_tl } { \l__keys_module_tl }
+              }
           }
-      }
+       }
   }
 \cs_new:Npn \__keys_execute:nn #1#2
   {
     \cs_if_exist:cTF { \c__keys_code_root_tl #1 }
       {
-        \exp_args:Nc \exp_args:No { \c__keys_code_root_tl #1 }
-          \l_keys_value_tl
+        \cs:w \c__keys_code_root_tl #1 \exp_after:wN \cs_end:
+          \exp_after:wN { \l_keys_value_tl }
       }
       {#2}
   }
@@ -10466,6 +9919,17 @@
   }
 \cs_new:Npn \__keys_multichoice_find:n #1
   { \clist_map_function:nN {#1} \__keys_choice_find:n }
+\cs_new:Npn \__keys_parent:n #1
+  { \__keys_parent:w #1 / / \q_stop { } }
+\cs_generate_variant:Nn \__keys_parent:n { o }
+\cs_new:Npn \__keys_parent:w #1 / #2 / #3 \q_stop #4
+  {
+    \tl_if_blank:nTF {#2}
+      { \use_none:n #4 }
+      {
+        \__keys_parent:w #2 / #3 \q_stop { #4 / #1 }
+      }
+  }
 \cs_new:Npn \__keys_remove_spaces:n #1
   {
     \exp_after:wN \__keys_remove_spaces:w \tl_to_str:n {#1}
@@ -10494,9 +9958,8 @@
       {
         \__msg_show_pre:nnxxxx { LaTeX / kernel } { show-key }
           { \__keys_remove_spaces:n { #1 / #2 } } { t } { } { }
-        \exp_args:Ncc \__keys_show:NN
+        \exp_args:Nc \__keys_show:N
           { \c__keys_code_root_tl \__keys_remove_spaces:n { #1 / #2 } }
-          { \c__keys_info_root_tl \__keys_remove_spaces:n { #1 / #2 } }
       }
       {
         \__msg_show_pre:nnxxxx { LaTeX / kernel } { show-key }
@@ -10504,7 +9967,7 @@
         \__msg_show_wrap:n { }
       }
   }
-\cs_new_protected:Npn \__keys_show:NN #1#2
+\cs_new_protected:Npn \__keys_show:N #1
   {
     \use:x
       {
@@ -10512,8 +9975,6 @@
           {
             \exp_not:N \__msg_show_item_unbraced:nn { code }
               { \token_get_replacement_spec:N #1 }
-            \exp_not:n
-              { \prop_map_function:NN #2 \__msg_show_item_unbraced:nn }
           }
       }
   }
@@ -10586,78 +10047,10 @@
       { has~the~properties: }
       { is~undefined. }
   }
-\cs_new_protected:cpn { \c__keys_props_root_tl .value_forbidden: }
-  { \__keys_value_requirement:nn { forbidden } { true } }
-\cs_new_protected:cpn { \c__keys_props_root_tl .value_required: }
-  { \__keys_value_requirement:nn { required } { true } }
 %% File: l3fp.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\GetIdInfo$Id: l3fp.dtx 6761 2016-11-21 21:48:43Z joseph $
+\GetIdInfo$Id: l3fp.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Floating points}
 %% File: l3fp-aux.dtx Copyright(C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 \cs_new:Npn \__fp_use_none_stop_f:n #1 { \exp_stop_f: }
 \cs_new:Npn \__fp_use_s:n #1 { #1; }
 \cs_new:Npn \__fp_use_s:nn #1#2 { #1#2; }
@@ -10962,40 +10355,7 @@
     '\token_to_str:N \fp_to_scientific:N',~or~other~
     conversion~functions.
   }
-%%
 %% File: l3fp-traps.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 \cs_new_protected:Npn \fp_flag_off:n #1
   { \cs_set_eq:cN { l__fp_ #1 _flag_token } \tex_undefined:D }
 \cs_new:Npn \fp_flag_on:n #1
@@ -11176,38 +10536,6 @@
 \__msg_kernel_new:nnn { kernel } { fp-invalid-ii }
   { Invalid~operation~ (#1) #3 (#2) }
 %% File: l3fp-round.dtx Copyright(C) 2011-2012,2014-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 \cs_new:Npn \__fp_round_return_one:
   { \exp_after:wN \c_one \exp:w }
 \cs_new:Npn \__fp_round_to_ninf:NNN #1 #2 #3
@@ -11463,38 +10791,21 @@
     \__fp_sanitize:Nw #1#2; {1000}{0000}{0000}{0000};
   }
 %% File: l3fp-parse.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
+\int_const:Nn \c__fp_prec_funcii_int { 16 }
+\int_const:Nn \c__fp_prec_func_int   { 15 }
+\int_const:Nn \c__fp_prec_hatii_int  { 14 }
+\int_const:Nn \c__fp_prec_hat_int    { 13 }
+\int_const:Nn \c__fp_prec_not_int    { 12 }
+\int_const:Nn \c__fp_prec_times_int  { 10 }
+\int_const:Nn \c__fp_prec_plus_int   { 9 }
+\int_const:Nn \c__fp_prec_comp_int   { 7 }
+\int_const:Nn \c__fp_prec_and_int    { 6 }
+\int_const:Nn \c__fp_prec_or_int     { 5 }
+\int_const:Nn \c__fp_prec_quest_int  { 4 }
+\int_const:Nn \c__fp_prec_colon_int  { 3 }
+\int_const:Nn \c__fp_prec_comma_int  { 2 }
+\int_const:Nn \c__fp_prec_paren_int  { 1 }
+\int_const:Nn \c__fp_prec_end_int    { 0 }
 \cs_new:Npn \__fp_parse_expand:w #1 { \exp_end_continue_f:w #1 }
 \cs_new:Npn \__fp_parse_return_semicolon:w
     #1 \fi: \__fp_parse_expand:w { \fi: ; #1 }
@@ -12097,8 +11408,8 @@
         \__fp_parse_expand:w
       }
   }
-\__fp_tmp:w - \c_twelve \__fp_set_sign_o:w 2
-\__fp_tmp:w ! \c_twelve \__fp_not_o:w ?
+\__fp_tmp:w - \c__fp_prec_not_int \__fp_set_sign_o:w 2
+\__fp_tmp:w ! \c__fp_prec_not_int \__fp_not_o:w ?
 \cs_new:cpn { __fp_parse_prefix_.:Nw } #1
   {
     \exp_after:wN \__fp_parse_infix_after_operand:NwN
@@ -12115,10 +11426,10 @@
       \exp_after:wN \__fp_parse_lparen_after:NwN
       \exp_after:wN #1
       \exp:w
-      \if_int_compare:w #1 = \c_sixteen
-        \__fp_parse_operand:Nw \c_one
+      \if_int_compare:w #1 = \c__fp_prec_funcii_int
+        \__fp_parse_operand:Nw \c__fp_prec_comma_int
       \else:
-        \__fp_parse_operand:Nw \c_zero
+        \__fp_parse_operand:Nw \c__fp_prec_paren_int
       \fi:
       \__fp_parse_expand:w
     }
@@ -12138,23 +11449,9 @@
         }
     }
 \group_end:
-\cs_new:cpn { __fp_parse_prefix_,:Nw } #1
-  {
-    \if_int_compare:w #1 = \c_one
-      \exp_after:wN \__fp_parse_one:Nw
-      \exp_after:wN #1
-    \else:
-      \__msg_kernel_expandable_error:nnn
-        { kernel } { fp-missing-number } { , }
-      \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w
-      \exp_after:wN \__fp_parse_infix:NN
-      \exp_after:wN #1
-      \exp_after:wN ,
-    \fi:
-  }
 \cs_new:cpn { __fp_parse_prefix_):Nw } #1
   {
-    \if_int_compare:w #1 = \c_one
+    \if_int_compare:w #1 = \c__fp_prec_comma_int
     \else:
       \__msg_kernel_expandable_error:nnn
         { kernel } { fp-missing-number } { ) }
@@ -12209,7 +11506,7 @@
     \exp_after:wN #2
     \cs:w __fp_#1_o:w \exp_after:wN \cs_end:
     \exp:w
-    \__fp_parse_operand:Nw \c_fifteen \__fp_parse_expand:w
+    \__fp_parse_operand:Nw \c__fp_prec_func_int \__fp_parse_expand:w
   }
 \cs_new:Npn \__fp_parse_function:NNN #1#2#3
   {
@@ -12218,7 +11515,7 @@
     \exp_after:wN #2
     \exp_after:wN #1
     \exp:w
-    \__fp_parse_operand:Nw \c_sixteen \__fp_parse_expand:w
+    \__fp_parse_operand:Nw \c__fp_prec_funcii_int \__fp_parse_expand:w
   }
 \cs_new:Npn \__fp_parse_word_acot:N
   { \__fp_parse_function:NNN \__fp_acot_o:Nw \use_i:nn }
@@ -12285,7 +11582,7 @@
     \exp:w
       \exp_after:wN \__fp_parse_after:ww
       \exp:w
-        \__fp_parse_operand:Nw \c_minus_one
+        \__fp_parse_operand:Nw \c__fp_prec_end_int
         \__fp_parse_expand:w #1
         \s__fp_mark \__fp_parse_infix_end:N
       \s__fp_stop
@@ -12377,7 +11674,7 @@
   \char_set_catcode_letter:N \)
   \cs_new:Npn \__fp_parse_infix_):N #1
     {
-      \if_int_compare:w #1 < \c_zero
+      \if_int_compare:w #1 < \c__fp_prec_paren_int
         \__msg_kernel_expandable_error:nnn { kernel } { fp-extra } { ) }
         \exp_after:wN \__fp_parse_infix:NN
         \exp_after:wN #1
@@ -12393,29 +11690,39 @@
   \char_set_catcode_letter:N \,
   \cs_new:Npn \__fp_parse_infix_,:N #1
     {
-      \if_int_compare:w #1 > \c_one
+      \if_int_compare:w #1 > \c__fp_prec_comma_int
         \exp_after:wN @
         \exp_after:wN \use_none:n
         \exp_after:wN \__fp_parse_infix_,:N
       \else:
-        \if_int_compare:w #1 = \c_one
-          \exp_after:wN \__fp_parse_infix_comma:w
-          \exp:w
-        \else:
-          \exp_after:wN \__fp_parse_infix_comma_gobble:w
-          \exp:w
+        \if_int_compare:w #1 < \c__fp_prec_comma_int
+          \__fp_parse_infix_comma_error:w
         \fi:
-        \__fp_parse_operand:Nw \c_one
+        \exp_after:wN \__fp_parse_infix_comma:w
+        \exp:w \__fp_parse_operand:Nw \c__fp_prec_comma_int
         \exp_after:wN \__fp_parse_expand:w
       \fi:
     }
   \cs_new:Npn \__fp_parse_infix_comma:w #1 @
     { #1 @ \use_none:n }
-  \cs_new:Npn \__fp_parse_infix_comma_gobble:w #1 @
+  \cs_new:Npn \__fp_parse_infix_comma_error:w #1 \exp:w
     {
+      \fi:
       \__msg_kernel_expandable_error:nn { kernel } { fp-extra-comma }
-      @ \use_none:n
+      \exp_after:wN @
+      \exp_after:wN \__fp_parse_apply_binary:NwNwN
+      \exp_after:wN ,
+      \exp:w
     }
+  \cs_new:Npn \__fp_,_o:ww #1
+    {
+      \if_meaning:w \s__fp #1
+        \exp_after:wN \__fp_use_i_until_s:nw
+        \exp_after:wN \__fp_,_o:ww
+      \fi:
+      \exp_after:wN \c_nan_fp
+      #1
+    }
 \group_end:
 \group_begin:
   \cs_set:Npn \+ { }
@@ -12442,23 +11749,23 @@
           \fi:
         }
     }
-  \__fp_tmp:w \__fp_parse_infix_^:N   ^ \c_fifteen \c_fourteen
-  \__fp_tmp:w \__fp_parse_infix_/:N   / \c_ten     \c_ten
-  \__fp_tmp:w \__fp_parse_infix_mul:N * \c_ten     \c_ten
-  \__fp_tmp:w \__fp_parse_infix_-:N   - \c_nine    \c_nine
-  \__fp_tmp:w \__fp_parse_infix_+:N   + \c_nine    \c_nine
-  \__fp_tmp:w \__fp_parse_infix_and:N & \c_five    \c_five
-  \__fp_tmp:w \__fp_parse_infix_or:N  | \c_four    \c_four
+  \__fp_tmp:w \__fp_parse_infix_^:N   ^ \c__fp_prec_hatii_int \c__fp_prec_hat_int
+  \__fp_tmp:w \__fp_parse_infix_/:N   / \c__fp_prec_times_int \c__fp_prec_times_int
+  \__fp_tmp:w \__fp_parse_infix_mul:N * \c__fp_prec_times_int \c__fp_prec_times_int
+  \__fp_tmp:w \__fp_parse_infix_-:N   - \c__fp_prec_plus_int  \c__fp_prec_plus_int
+  \__fp_tmp:w \__fp_parse_infix_+:N   + \c__fp_prec_plus_int  \c__fp_prec_plus_int
+  \__fp_tmp:w \__fp_parse_infix_and:N & \c__fp_prec_and_int   \c__fp_prec_and_int
+  \__fp_tmp:w \__fp_parse_infix_or:N  | \c__fp_prec_or_int    \c__fp_prec_or_int
 \group_end:
 \cs_new:cpn { __fp_parse_infix_(:N } #1
   { \__fp_parse_infix_juxtapose:N #1 ( }
 \cs_new:Npn \__fp_parse_infix_juxtapose:N #1
   {
-    \if_int_compare:w #1 < \c_ten
+    \if_int_compare:w #1 < \c__fp_prec_times_int
       \exp_after:wN @
       \exp_after:wN \__fp_parse_apply_juxtapose:NwwN
       \exp:w
-      \__fp_parse_operand:Nw \c_ten
+      \__fp_parse_operand:Nw \c__fp_prec_times_int
       \exp_after:wN \__fp_parse_expand:w
     \else:
       \exp_after:wN @
@@ -12523,11 +11830,11 @@
   \char_set_catcode_letter:N \?
   \cs_new:Npn \__fp_parse_infix_?:N #1
     {
-      \if_int_compare:w #1 < \c_three
+      \if_int_compare:w #1 < \c__fp_prec_quest_int
         \exp_after:wN @
         \exp_after:wN \__fp_ternary:NwwN
         \exp:w
-        \__fp_parse_operand:Nw \c_three
+        \__fp_parse_operand:Nw \c__fp_prec_quest_int
         \exp_after:wN \__fp_parse_expand:w
       \else:
         \exp_after:wN @
@@ -12537,13 +11844,13 @@
     }
   \cs_new:Npn \__fp_parse_infix_::N #1
     {
-      \if_int_compare:w #1 < \c_three
+      \if_int_compare:w #1 < \c__fp_prec_quest_int
         \__msg_kernel_expandable_error:nnnn
           { kernel } { fp-missing } { ? } { ~for~?: }
         \exp_after:wN @
         \exp_after:wN \__fp_ternary_auxii:NwwN
         \exp:w
-        \__fp_parse_operand:Nw \c_two
+        \__fp_parse_operand:Nw \c__fp_prec_colon_int
         \exp_after:wN \__fp_parse_expand:w
       \else:
         \exp_after:wN @
@@ -12584,7 +11891,7 @@
   }
 \cs_new:Npn \__fp_parse_compare:NNNNNNN #1
   {
-    \if_int_compare:w #1 < \c_seven
+    \if_int_compare:w #1 < \c__fp_prec_comp_int
       \exp_after:wN \__fp_parse_compare_auxi:NNNNNNN
       \exp_after:wN \__fp_parse_excl_error:
     \else:
@@ -12597,7 +11904,7 @@
   {
     \if_case:w
           \if_catcode:w \scan_stop: \exp_not:N #7
-            \c_minus_one
+            \c_four
           \else:
             \__int_eval:w `#7 - `< \__int_eval_end:
           \fi:
@@ -12630,7 +11937,7 @@
     \exp_after:wN #3
     \exp_after:wN #4
     \exp:w
-    \__fp_parse_operand:Nw \c_seven \__fp_parse_expand:w #5
+    \__fp_parse_operand:Nw \c__fp_prec_comp_int \__fp_parse_expand:w #5
   }
 \cs_new:Npn \__fp_parse_apply_compare:NwNNNNNwN
     #1 #2@ #3 #4#5#6#7 #8@ #9
@@ -12676,7 +11983,7 @@
     \exp_after:wN \__fp_function_apply:nw
     \exp_after:wN #1
     \exp:w
-      \__fp_parse_operand:Nw \c_sixteen \__fp_parse_expand:w
+      \__fp_parse_operand:Nw \c__fp_prec_funcii_int \__fp_parse_expand:w
   }
 \cs_new_protected:Npn \fp_new_function:Npn #1#2#
   {
@@ -12696,7 +12003,7 @@
             \__int_value:w #3 \exp_after:wN ; \exp_after:wN
           }
         \exp:w
-          \__fp_parse_operand:Nw \c_sixteen \__fp_parse_expand:w
+          \__fp_parse_operand:Nw \c__fp_prec_funcii_int \__fp_parse_expand:w
       }
     \cs_new:Npn #2 #4 {#5}
   }
@@ -12752,38 +12059,6 @@
       { Robust~command~#1 invalid~in~fp~expression! }
   }
 %% File: l3fp-logic.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 \prg_new_eq_conditional:NNn \fp_if_exist:N \cs_if_exist:N { TF , T , F , p }
 \prg_new_eq_conditional:NNn \fp_if_exist:c \cs_if_exist:c { TF , T , F , p }
 \prg_new_conditional:Npnn \fp_compare:n #1 { p , T , F , TF }
@@ -12922,36 +12197,47 @@
 \cs_new:Npn \fp_step_function:nnnN #1#2#3
   {
     \exp_after:wN \__fp_step:wwwN
-      \exp:w \exp_end_continue_f:w \__fp_parse_o:n {#1} :
-      \exp:w \exp_end_continue_f:w \__fp_parse_o:n {#2} :
-      \exp:w \exp_end_continue_f:w \__fp_parse:n {#3} :
+      \exp:w \exp_end_continue_f:w \__fp_parse_o:n {#1}
+      \exp:w \exp_end_continue_f:w \__fp_parse_o:n {#2}
+      \exp:w \exp_end_continue_f:w \__fp_parse:n {#3}
   }
 \cs_generate_variant:Nn \fp_step_function:nnnN { nnnc }
-\cs_new:Npn \__fp_step:wwwN #1 : #2 : #3 : #4
+\cs_new:Npn \__fp_step:wwwN #1 ; \s__fp \__fp_chk:w #2#3#4 ; #5; #6
   {
-    \fp_compare:nNnTF {#2} > 0
-      { \__fp_step:NfnnN > }
+    \token_if_eq_meaning:NNTF #2 1
       {
-        \fp_compare:nNnTF {#2} = 0
+        \token_if_eq_meaning:NNTF #3 0
+          { \__fp_step:NnnnnN > }
+          { \__fp_step:NnnnnN < }
+      }
+      {
+        \token_if_eq_meaning:NNTF #2 0
+          { \__msg_kernel_expandable_error:nnn { kernel } { zero-step } {#6} }
           {
-            \__msg_kernel_expandable_error:nnn { kernel } { zero-step } {#4}
-            \use_none:nnnn
+            \__fp_error:nnfn { bad-step } { }
+              { \fp_to_tl:n { \s__fp \__fp_chk:w #2#3#4 ; } } {#6}
           }
-          { \__fp_step:NfnnN < }
+        \use_none:nnnnn
       }
-      { \fp_eval:n {#1} } {#2} {#3} #4
+      { #1 ; } { \c_nan_fp } { \s__fp \__fp_chk:w #2#3#4 ; } { #5 ; } #6
   }
-
-\cs_new:Npn \__fp_step:NnnnN #1#2#3#4#5
+\cs_new:Npn \__fp_step:NnnnnN #1#2#3#4#5#6
   {
-    \fp_compare:nNnF {#2} #1 {#4}
+    \fp_compare:nNnTF {#2} = {#3}
       {
-        #5 {#2}
-        \__fp_step:NfnnN
-          #1 { \fp_eval:n { #2 + #3 } } {#3} {#4} #5
+        \__fp_error:nffn { tiny-step }
+          { \fp_to_tl:n {#3} } { \fp_to_tl:n {#4} } {#6}
       }
+      {
+        \fp_compare:nNnF {#2} #1 {#5}
+          {
+            \exp_args:Nf #6 { \__fp_to_decimal_dispatch:w #2 }
+            \__fp_step:NfnnnN
+              #1 { \__fp_parse:n { #2 + #4 } } {#2} {#4} {#5} #6
+          }
+      }
   }
-\cs_generate_variant:Nn \__fp_step:NnnnN { Nf }
+\cs_generate_variant:Nn \__fp_step:NnnnnN { Nf }
 \cs_new_protected:Npn \fp_step_inline:nnnn #1#2#3#4
   {
     \int_gincr:N \g__prg_map_int
@@ -12961,12 +12247,16 @@
       { __prg_map_ \int_use:N \g__prg_map_int :w }
     \__prg_break_point:Nn \scan_stop: { \int_gdecr:N \g__prg_map_int }
   }
+\__msg_kernel_new:nnn { kernel } { fp-bad-step }
+  { Invalid~step~size~#2~in~step~function~#3. }
+\__msg_kernel_new:nnn { kernel } { fp-tiny-step }
+  { Tiny~step~size~(#1+#2=#1)~in~step~function~#3. }
 \cs_new:Npn \__fp_minmax_o:Nw #1#2 @
   {
     \if_meaning:w 0 #1
-      \exp_after:wN \__fp_minmax_loop:Nww \exp_after:wN \c_one
+      \exp_after:wN \__fp_minmax_loop:Nww \exp_after:wN +
     \else:
-      \exp_after:wN \__fp_minmax_loop:Nww \exp_after:wN \c_minus_one
+      \exp_after:wN \__fp_minmax_loop:Nww \exp_after:wN -
     \fi:
     #2
     \s__fp \__fp_chk:w 2 #1 \s__fp_exact ;
@@ -12986,7 +12276,7 @@
           \__fp_compare_back:ww
             \s__fp \__fp_chk:w #4#5;
             \s__fp \__fp_chk:w #2#3;
-          = #1
+          = #1 \c_one
         \__fp_minmax_auxii:ww
       \else:
         \__fp_minmax_auxi:ww
@@ -13035,7 +12325,7 @@
       \__fp_exp_after_array_f:w #3 \s__fp_stop
       \exp_after:wN @
       \exp:w
-        \__fp_parse_operand:Nw \c_two
+        \__fp_parse_operand:Nw \c__fp_prec_colon_int
         \__fp_parse_expand:w
     \else:
       \__msg_kernel_expandable_error:nnnn
@@ -13079,38 +12369,6 @@
     #4 #1
   }
 %% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 \cs_new:Npn \__fp_basics_pack_low:NNNNNw #1 #2#3#4#5 #6;
   { + #1 - \c_one ; {#2#3#4#5} {#6} ; }
 \cs_new:Npn \__fp_basics_pack_high:NNNNNw #1 #2#3#4#5 #6;
@@ -13147,7 +12405,7 @@
         \if_int_compare:w #2 > #4 \exp_stop_f:
           \c_three
         \else:
-          \c_minus_one
+          \c_four
         \fi:
       \fi:
            \exp_after:wN \__fp_add_zeros_o:Nww \__int_value:w
@@ -13879,38 +13137,6 @@
     #4;
   }
 %% File: l3fp-extended.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 \tl_const:Nn \c__fp_one_fixed_tl
   { {10000} {0000} {0000} {0000} {0000} {0000} }
 \cs_new:Npn \__fp_fixed_continue:wn #1; #2 { #2 #1; }
@@ -13955,7 +13181,7 @@
   {
     \exp_after:wN \__fp_fixed_div_int_after:Nw
     \exp_after:wN #8
-    \__int_value:w \__int_eval:w \c_minus_one
+    \__int_value:w \__int_eval:w - \c_one
       \__fp_fixed_div_int:wnN
       #1; {#7} \__fp_fixed_div_int_auxi:wnn
       #2; {#7} \__fp_fixed_div_int_auxi:wnn
@@ -14348,38 +13574,6 @@
       \__int_value:w \__int_eval:w 1 #3#4 + \c_one ;
   }
 %% File: l3fp-expo.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 \tl_const:Nn \c__fp_ln_i_fixed_tl   { {0000}{0000}{0000}{0000}{0000}{0000} }
 \tl_const:Nn \c__fp_ln_ii_fixed_tl  { {6931}{4718}{0559}{9453}{0941}{7232} }
 \tl_const:Nn \c__fp_ln_iii_fixed_tl {{10986}{1228}{8668}{1096}{9139}{5245} }
@@ -15019,7 +14213,7 @@
 \cs_new:Npn \__fp_pow_neg_case:w \s__fp \__fp_chk:w #1#2#3;
   {
     \if_case:w #1 \exp_stop_f:
-           \c_minus_one
+           -\c_one
     \or:   \__fp_pow_neg_case_aux:nnnnn #3
     \else: \c_one
     \fi:
@@ -15028,7 +14222,7 @@
   {
     \if_int_compare:w #1 > \c_eight
       \if_int_compare:w #1 > \c_sixteen
-        \c_minus_one
+        -\c_one
       \else:
         \exp_after:wN \exp_after:wN
         \exp_after:wN \__fp_pow_neg_case_aux:NNNNNNNNw
@@ -15054,7 +14248,7 @@
       \if_int_odd:w #8 \exp_stop_f:
         \c_zero
       \else:
-        \c_minus_one
+        -\c_one
       \fi:
     \else:
       \c_one
@@ -15061,38 +14255,6 @@
     \fi:
   }
 %% File: l3fp-trig.dtx Copyright (C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 \cs_new:Npn \__fp_sin_o:w #1 \s__fp \__fp_chk:w #2#3#4; @
   {
     \if_case:w #2 \exp_stop_f:
@@ -15712,7 +14874,7 @@
   }
 \cs_new:Npn \__fp_atan_Taylor_loop:www #1; #2; #3;
   {
-    \if_int_compare:w #1 = \c_minus_one
+    \if_int_compare:w #1 = - \c_one
       \__fp_atan_Taylor_break:w
     \fi:
     \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl ; #1;
@@ -15871,38 +15033,6 @@
       }
   }
 %% File: l3fp-convert.dtx Copyright(C) 2011-2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 \cs_new:Npn \__fp_trim_zeros:w #1 ;
   {
     \__fp_trim_zeros_loop:w #1
@@ -16148,71 +15278,80 @@
     \exp_not:N \__fp_array_to_clist_loop:Nw
   }
 %% File: l3fp-random.dtx Copyright (C) 2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\cs_new:Npn \__fp_rand_o:Nw ? #1 @
+\cs_if_exist:NF \pdftex_uniformdeviate:D
   {
-    \tl_if_empty:nTF {#1}
-      { \__fp_rand_o: }
+    \__msg_kernel_new:nnn { kernel } { fp-no-random }
+      { Random~numbers~unavailable }
+    \cs_new:Npn \__fp_rand_o:Nw ? #1 @
       {
-        \__msg_kernel_expandable_error:nnnnn
-          { kernel } { fp-num-args } { rand() } { 0 } { 0 }
+        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
         \exp_after:wN \c_nan_fp
       }
+    \cs_new_eq:NN \__fp_randint_o:Nw \__fp_rand_o:Nw
   }
-\cs_if_exist:NTF \pdftex_uniformdeviate:D
+\cs_if_exist:NT \pdftex_uniformdeviate:D
   {
-    \cs_new:Npn \__fp_rand_o:
-      {
-        \__fp_parse_o:n
-          {
-            .
-            \exp_after:wN \use_none:n
-            \__int_value:w \__int_eval:w 1 0000 0000 +
-              \pdftex_uniformdeviate:D 1 0000 0000 \__int_eval_end:
-            \exp_after:wN \use_none:n
-            \__int_value:w \__int_eval:w 1 0000 0000 +
-              \pdftex_uniformdeviate:D 1 0000 0000 \__int_eval_end:
-          }
-      }
+\cs_new:Npn \__fp_rand_uniform:
+  { \pdftex_uniformdeviate:D \c__fp_rand_size_int }
+\int_const:Nn \c__fp_rand_size_int   { 268 435 456 }
+\int_const:Nn \c__fp_rand_four_int   { 268 430 000 }
+\int_const:Nn \c__fp_rand_eight_int  { 200 000 000 }
+\cs_new:Npn \__fp_rand_myriads:n #1
+  {
+    \__fp_rand_myriads_loop:nn #1
+      { ? \use_i_delimit_by_q_stop:nw \__fp_rand_myriads_last: }
+      { ? \use_none_delimit_by_q_stop:w } \q_stop
   }
+\cs_new:Npn \__fp_rand_myriads_loop:nn #1#2
   {
-    \cs_new:Npn \__fp_rand_o:
+    \use_none:n #2
+    \exp_after:wN \__fp_rand_myriads_get:w
+    \__int_value:w \__fp_rand_uniform: ; {#1}{#2}
+  }
+\cs_new:Npn \__fp_rand_myriads_get:w #1 ;
+  {
+    \if_int_compare:w #1 < \c__fp_rand_eight_int
+      \exp_after:wN \use_none:n
+      \__int_value:w \__int_eval:w
+        \c__fp_rand_eight_int + #1 \__int_eval_end:
+      \exp_after:wN \use_i:nnn
+    \else:
+      \if_int_compare:w #1 < \c__fp_rand_four_int
+        \exp_after:wN \use_none:nnnnn
+        \__int_value:w \__int_eval:w
+          \c__fp_rand_four_int + #1 \__int_eval_end:
+        \exp_after:wN \exp_after:wN \exp_after:wN \use_i:nn
+      \fi:
+    \fi:
+    \__fp_rand_myriads_loop:nn
+  }
+\cs_new:Npn \__fp_rand_myriads_last:
+  {
+    \exp_after:wN \__fp_rand_myriads_last:w
+    \__int_value:w \__fp_rand_uniform: ;
+  }
+\cs_new:Npn \__fp_rand_myriads_last:w #1 ;
+  {
+    \if_int_compare:w #1 < \c__fp_rand_four_int
+      \exp_after:wN \use_none:nnnnn
+      \__int_value:w \__int_eval:w
+        \c__fp_rand_four_int + #1 \__int_eval_end:
+    \else:
+      \exp_after:wN \__fp_rand_myriads_last:
+    \fi:
+  }
+\cs_new:Npn \__fp_rand_o:Nw ? #1 @
+  {
+    \tl_if_empty:nTF {#1}
+      { \__fp_rand_o: }
       {
-        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
+        \__msg_kernel_expandable_error:nnnnn
+          { kernel } { fp-num-args } { rand() } { 0 } { 0 }
         \exp_after:wN \c_nan_fp
       }
   }
+\cs_new:Npn \__fp_rand_o:
+  { \__fp_parse_o:n { . \__fp_rand_myriads:n { xxxx } } }
 \cs_new:Npn \__fp_randint_o:Nw ? #1 @
   {
     \if_case:w
@@ -16245,10 +15384,8 @@
         \__fp_randint_badarg:w #1;
         \__fp_randint_badarg:w #2;
         \fp_compare:nNnTF { #1; } > { #2; } { \c_one } { \c_zero }
-      \fp_compare:nNnTF { #1; + 2e9 } < { #2; }
-        { \__fp_randint_wide_e:nn }
-        { \__fp_randint_narrow_e:nn }
-        { #1; } { #2; }
+      \exp_after:wN \exp_after:wN \exp_after:wN \__fp_randint_e:wnn
+        \__fp_parse:n { #2; - #1; } { #1; } { #2; }
     \or:
       \__fp_invalid_operation_tl_o:ff
         { randint } { \__fp_array_to_clist:n { #1; #2; } }
@@ -16255,92 +15392,50 @@
       \exp:w
     \fi:
   }
-\cs_if_exist:NTF \pdftex_uniformdeviate:D
+\cs_new:Npn \__fp_randint_e:wnn #1;
   {
-    \cs_new:Npn \__fp_randint_narrow_e:nn #1#2
+    \exp_after:wN \__fp_randint_e:wwNnn
+    \__int_value:w \__fp_rand_uniform: \exp_after:wN ;
+    \exp:w \exp_end_continue_f:w
+      \fp_compare:nNnTF { #1 ; } < \c__fp_rand_size_int
+        { \fp_to_int:n { #1 ; + 1 } ; \__fp_randint_narrow_e:nnnn }
+        { \fp_to_int:n { floor(#1 ; * 1e-8 + 1) } ; \__fp_randint_wide_e:nnnn }
+  }
+\cs_new:Npn \__fp_randint_e:wwNnn #1 ; #2 ;
+  {
+    \exp_after:wN \__fp_randint_e:wwwNnn
+    \__int_value:w \int_mod:nn {#1} {#2} ; #1 ; #2 ;
+  }
+\cs_new:Npn \__fp_randint_e:wwwNnn #1 ; #2 ; #3 ; #4
+  {
+    \int_compare:nNnTF { #2 - #1 + #3 } > \c__fp_rand_size_int
       {
-        \__fp_parse_o:n
-          {
-            #1 +
-            \pdftex_uniformdeviate:D
-              \int_eval:n { \fp_to_int:n { #2 - #1 } + \c_one }
-          }
-        \exp:w
+        \exp_after:wN \__fp_randint_e:wwNnn
+          \__int_value:w \__fp_rand_uniform: ; #3 ; #4
       }
-    \cs_new:Npn \__fp_randint_wide_e:nn #1 #2
-      {
-        \exp_args:Nf \__fp_randint_wide_e:nnn
-          { \fp_to_int:n { ceil ( ( #2 - #1 + \c_six ) * 1e-8 ) } }
-          {#1} {#2}
-      }
-    \cs_new:Npn \__fp_randint_wide_e:nnn #1#2#3
-      {
-        \exp_args:Nf \__fp_randint_wide_e:nnnn
-          {
-            \__fp_parse:n
-              {
-                #2 +
-                \pdftex_uniformdeviate:D #1 e 8 +
-                \pdftex_uniformdeviate:D 1 0000 0000
-              }
-          }
-          {#1} {#2} {#3}
-      }
-    \cs_new:Npn \__fp_randint_wide_e:nnnn #1#2#3#4
-      {
-        \fp_compare:nNnTF {#1} > {#4}
-          { \__fp_randint_wide_e:nnn {#2} {#3} {#4} }
-          { \__fp_exp_after_o:w #1 \exp:w }
-      }
+      { #4 {#1} {#3} }
   }
+\cs_new:Npn \__fp_randint_narrow_e:nnnn #1#2#3#4
+  { \__fp_parse_o:n { #3 + #1 } \exp:w }
+\cs_new:Npn \__fp_randint_wide_e:nnnn #1#2#3#4
   {
-    \cs_new:Npn \__fp_randint_narrow_e:nn #1#2
+    \exp_after:wN \exp_after:wN
+    \exp_after:wN \__fp_randint_wide_e:wnnn
+      \__fp_parse:n { #3 + #1e8 + \__fp_rand_myriads:n { xx } }
+      {#2} {#3} {#4}
+  }
+\cs_new:Npn \__fp_randint_wide_e:wnnn #1 ; #2#3#4
+  {
+    \fp_compare:nNnTF { #1 ; } > {#4}
       {
-        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
-        \exp_after:wN \c_nan_fp \exp:w
+        \exp_after:wN \__fp_randint_e:wwNnn
+          \__int_value:w \__fp_rand_uniform: ; #2 ;
+          \__fp_randint_wide_e:nnnn {#3} {#4}
       }
-    \cs_new:Npn \__fp_randint_wide_e:nn #1#2
-      {
-        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
-        \exp_after:wN \c_nan_fp \exp:w
-      }
+      { \__fp_exp_after_o:w #1 ; \exp:w }
   }
-\__msg_kernel_new:nnn { kernel } { fp-no-random }
-  { Random~numbers~unavailable }
-%%
+  }
 %% File: l3fp-assign.dtx Copyright (C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
 \cs_new_protected:Npn \fp_new:N #1
   { \cs_new_eq:NN #1 \c_zero_fp }
 \cs_generate_variant:Nn \fp_new:N {c}
@@ -16394,38 +15489,7 @@
 \fp_new:N \g_tmpa_fp
 \fp_new:N \g_tmpb_fp
 %% File: l3box.dtx Copyright (C) 2005-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3box.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3box.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental boxes}
 \cs_new_protected:Npn \box_new:N #1
   {
@@ -16547,7 +15611,7 @@
       \int_set:Nn \tex_showboxbreadth:D {#3}
       \int_set:Nn \tex_showboxdepth:D   {#4}
       \int_set_eq:NN \tex_tracingonline:D #1
-      \int_set_eq:NN \tex_errorcontextlines:D \c_minus_one
+      \int_set:Nn \tex_errorcontextlines:D { - \c_one }
       \box_if_exist:NTF #2
         { \tex_showbox:D \use:n {#2} }
         {
@@ -16632,39 +15696,7 @@
 \cs_new_protected:Npn \vbox_set_split_to_ht:NNn #1#2#3
   { \tex_setbox:D #1 \tex_vsplit:D #2 to \__dim_eval:w #3 \__dim_eval_end: }
 %% File: l3coffins.dtx Copyright(C) 2010-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\GetIdInfo$Id: l3coffins.dtx 6685 2016-08-19 16:26:52Z bruno $
+\GetIdInfo$Id: l3coffins.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Coffin code layer}
 \box_new:N \l__coffin_internal_box
 \dim_new:N \l__coffin_internal_dim
@@ -17469,39 +16501,7 @@
     Poles~of~coffin~#1 :
   }
 %% File: l3color.dtx Copyright(C) 2011,2012,2014,2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\GetIdInfo$Id: l3color.dtx 6596 2016-06-13 21:29:58Z joseph $
+\GetIdInfo$Id: l3color.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental color support}
 \cs_new_eq:NN \color_group_begin: \group_begin:
 \cs_new_protected:Npn \color_group_end:
@@ -17525,39 +16525,8 @@
           }
       }
   }
-%% File: l3sys.dtx Copyright (C) 2015 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3sys.dtx 6087 2015-09-25 10:29:53Z joseph $
+%% File: l3sys.dtx Copyright (C) 2015-2017 The LaTeX3 Project
+\GetIdInfo$Id: l3sys.dtx 6811 2017-01-01 08:50:54Z joseph $
   {L3 Experimental system/runtime functions}
 \str_const:Nx \c_sys_jobname_str { \tex_jobname:D }
 \int_const:Nn \c_sys_minute_int
@@ -17647,62 +16616,8 @@
     \cs_new_eq:NN \sys_if_output_pdf_p: \c_false_bool
     \str_const:Nn \c_sys_output_str { dvi }
   }
-\prg_new_eq_conditional:NNn \luatex_if_engine: \sys_if_engine_luatex:
-  { T , F , TF , p }
-\prg_new_eq_conditional:NNn \xetex_if_engine:  \sys_if_engine_xetex:
-  { T , F , TF , p }
-\bool_if:nTF
-  {
-    \sys_if_engine_luatex_p: ||
-    \sys_if_engine_xetex_p:
-  }
-  {
-    \cs_new_eq:NN \pdftex_if_engine:T  \use_none:n
-    \cs_new_eq:NN \pdftex_if_engine:F  \use:n
-    \cs_new_eq:NN \pdftex_if_engine:TF \use_ii:nn
-    \cs_new_eq:NN \pdftex_if_engine_p: \c_false_bool
-  }
-  {
-    \cs_new_eq:NN \pdftex_if_engine:T  \use:n
-    \cs_new_eq:NN \pdftex_if_engine:F  \use_none:n
-    \cs_new_eq:NN \pdftex_if_engine:TF \use_i:nn
-    \cs_new_eq:NN \pdftex_if_engine_p: \c_true_bool
-  }
-\cs_set_eq:NN \c_job_name_tl \c_sys_jobname_str
 %% File: l3candidates.dtx Copyright (C) 2012-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\GetIdInfo$Id: l3candidates.dtx 6688 2016-08-19 19:21:48Z bruno $
+\GetIdInfo$Id: l3candidates.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Experimental additions to l3kernel}
 \cs_new_protected:Npn \cs_log:N
   { \__msg_log_next: \cs_show:N }
@@ -18103,6 +17018,19 @@
 \cs_new_protected:Npn \clist_log:n
   { \__msg_log_next: \clist_show:n }
 \cs_generate_variant:Nn \clist_log:N { c }
+\cs_new:Npn \clist_rand_item:n #1
+  { \exp_args:Nf \__clist_rand_item:nn { \clist_count:n {#1} } {#1} }
+\cs_new:Npn \__clist_rand_item:nn #1#2
+  {
+    \int_compare:nNnF {#1} = \c_zero
+      { \clist_item:nn {#2} { \int_rand:nn { 1 } {#1} } }
+  }
+\cs_new:Npn \clist_rand_item:N #1
+  {
+    \clist_if_empty:NF #1
+      { \clist_item:Nn #1 { \int_rand:nn { 1 } { \clist_count:N #1 } } }
+  }
+\cs_generate_variant:Nn \clist_rand_item:N { c }
 \fp_new:N \l__coffin_sin_fp
 \fp_new:N \l__coffin_cos_fp
 \prop_new:N \l__coffin_bounding_prop
@@ -18368,7 +17296,7 @@
 \cs_new_protected:Npn \ior_map_inline:Nn
   { \__ior_map_inline:NNn \ior_get:NN }
 \cs_new_protected:Npn \ior_str_map_inline:Nn
-  { \__ior_map_inline:NNn \ior_get_str:NN }
+  { \__ior_map_inline:NNn \ior_str_get:NN }
 \cs_new_protected:Npn \__ior_map_inline:NNn
   {
     \int_gincr:N \g__prg_map_int
@@ -18406,6 +17334,62 @@
 \cs_generate_variant:Nn \int_log:N { c }
 \cs_new_protected:Npn \int_log:n
   { \__msg_log_next: \int_show:n }
+\cs_if_exist:NTF \pdftex_uniformdeviate:D
+  {
+    \cs_new:Npn \int_rand:nn #1#2
+      {
+        \exp_after:wN \__int_rand:ww
+        \__int_value:w \__int_eval:w #1 \exp_after:wN ;
+        \__int_value:w \__int_eval:w #2 ;
+      }
+    \cs_new:Npn \__int_rand:ww #1; #2;
+      {
+        \int_compare:nNnTF {#1} > {#2}
+          {
+            \__msg_kernel_expandable_error:nnnn
+              { kernel } { backward-range } {#1} {#2}
+            \__int_rand:ww #2; #1;
+          }
+          {
+            \int_compare:nNnTF {#1} > \c_zero
+              { \int_compare:nNnTF { #2 - #1 } < \c__fp_rand_size_int }
+              { \int_compare:nNnTF {#2} < { #1 + \c__fp_rand_size_int } }
+                  {
+                    \exp_args:Nf \__int_rand_narrow:nn
+                      { \int_eval:n { #2 - #1 + \c_one } } {#1}
+                  }
+                  { \fp_to_int:n { randint(#1,#2) } }
+          }
+      }
+    \cs_new:Npn \__int_rand_narrow:nn
+      {
+        \exp_args:No \__int_rand_narrow:nnn
+          { \pdftex_uniformdeviate:D \c__fp_rand_size_int }
+      }
+    \cs_new:Npn \__int_rand_narrow:nnn #1#2
+      {
+        \exp_args:Nf \__int_rand_narrow:nnnn
+          { \int_mod:nn {#1} {#2} } {#1} {#2}
+      }
+    \cs_new:Npn \__int_rand_narrow:nnnn #1#2#3#4
+      {
+        \int_compare:nNnTF { #2 - #1 + #3 } > \c__fp_rand_size_int
+          { \__int_rand_narrow:nn {#3} {#4} }
+          { \int_eval:n { #4 + #1 } }
+      }
+  }
+  {
+    \cs_new:Npn \int_rand:nn #1#2
+      {
+        \__msg_kernel_expandable_error:nn { kernel } { fp-no-random }
+        \int_eval:n {#1}
+      }
+  }
+\cs_if_exist:NT \pdftex_uniformdeviate:D
+  {
+    \__msg_kernel_new:nnn { kernel } { backward-range }
+      { Bounds~ordered~backwards~in~\int_rand:nn {#1}~{#2}. }
+  }
 \cs_new_protected:Npn \keys_log:nn
   { \__msg_log_next: \keys_show:nn }
 \cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6
@@ -18498,6 +17482,29 @@
 \cs_new_protected:Npn \prop_log:N
   { \__msg_log_next: \prop_show:N }
 \cs_generate_variant:Nn \prop_log:N { c }
+\cs_new:Npn \prop_rand_key:N { \__prop_rand:NN \use_i:nnn }
+\cs_new:Npn \prop_rand_value:N { \__prop_rand:NN \use_none:n }
+\cs_new:Npn \prop_rand_key_value:N { \__prop_rand:NN \__prop_rand:nNn }
+\cs_new:Npn \__prop_rand:nNn #1#2#3 { \exp_not:n { {#1} {#3} } }
+\cs_new:Npn \__prop_rand:NN #1#2
+  {
+    \prop_if_empty:NTF #2 { }
+      {
+        \exp_after:wN \__prop_rand_item:Nw \exp_after:wN #1
+        \__int_value:w \int_rand:nn { 1 } { \prop_count:N #2 } #2
+        \q_stop
+      }
+  }
+\cs_new:Npn \__prop_rand_item:Nw #1#2 \s__prop \__prop_pair:wn #3 \s__prop #4
+  {
+    \int_compare:nNnF {#2} > \c_one
+      { \use_i_delimit_by_q_stop:nw { #1 {#3} \exp_not:n {#4} } }
+    \exp_after:wN \__prop_rand_item:Nw \exp_after:wN #1
+    \__int_value:w \int_eval:n { #2 - \c_one } \s__prop
+  }
+\cs_generate_variant:Nn \prop_rand_key:N { c }
+\cs_generate_variant:Nn \prop_rand_value:N { c }
+\cs_generate_variant:Nn \prop_rand_key_value:N { c }
 \cs_new:Npn \seq_mapthread_function:NNN #1#2#3
   { \exp_after:wN \__seq_mapthread_function:wNN #2 \q_stop #1 #3 }
 \cs_new:Npn \__seq_mapthread_function:wNN \s__seq #1 \q_stop #2#3
@@ -18544,6 +17551,12 @@
 \cs_new_protected:Npn \seq_log:N
   { \__msg_log_next: \seq_show:N }
 \cs_generate_variant:Nn \seq_log:N { c }
+\cs_new:Npn \seq_rand_item:N #1
+  {
+    \seq_if_empty:NF #1
+      { \seq_item:Nn #1 { \int_rand:nn { 1 } { \seq_count:N #1 } } }
+  }
+\cs_generate_variant:Nn \seq_rand_item:N { c }
 \cs_new:Npn \skip_split_finite_else_action:nnNN #1#2#3#4
   {
     \skip_if_finite:nTF {#1}
@@ -18641,7 +17654,7 @@
       }
   }
 \exp_args:Nno \use:nn
-  { \cs_set_protected:Npn \__tl_from_file_do:w #1 }
+  { \cs_new_protected:Npn \__tl_from_file_do:w #1 }
   { \c__tl_rescan_marker_tl }
   { \tl_set:No \l__tl_internal_a_tl {#1} }
 \cs_new_protected:Npn \tl_set_from_file_x:Nnn
@@ -19647,6 +18660,13 @@
 \cs_generate_variant:Nn \tl_log:N { c }
 \cs_new_protected:Npn \tl_log:n
   { \__msg_log_next: \tl_show:n }
+\cs_new:Npn \tl_rand_item:n #1
+  {
+    \tl_if_blank:nF {#1}
+      { \tl_item:nn {#1} { \int_rand:nn { 1 } { \tl_count:n {#1} } } }
+  }
+\cs_new:Npn \tl_rand_item:N { \exp_args:No \tl_rand_item:n }
+\cs_generate_variant:Nn \tl_rand_item:N { c }
 \group_begin:
   \cs_set_protected:Npn \__peek_tmp:w #1 \q_stop
     {
@@ -19686,38 +18706,7 @@
 \cs_new_protected:Npn \peek_N_type:F
   { \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: }
 %% File: l3luatex.dtx Copyright (C) 2010-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-\GetIdInfo$Id: l3luatex.dtx 6679 2016-08-18 20:54:06Z bruno $
+\GetIdInfo$Id: l3luatex.dtx 6805 2016-12-28 22:15:52Z joseph $
   {L3 Experimental LuaTeX-specific functions}
 \cs_new:Npn \lua_now_x:n #1 { \luatex_directlua:D {#1} }
 \cs_new:Npn \lua_now:n #1   { \lua_now_x:n { \exp_not:n {#1} } }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,49 +6,23 @@
 %%
 %% expl3.dtx  (with options: `generic,loader')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: expl3.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: expl3.dtx Copyright (C) 1990-2016 The LaTeX3 Project
 \def\ExplFileName{expl3}%
 \def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2016/11/21}%
-\def\ExplFileVersion{6760}%
+\def\ExplFileDate{2017/01/28}%
+\def\ExplFileVersion{6834}%
 \let\ExplLoaderFileVersion\ExplFileVersion
 \begingroup
   \def\tempa{LaTeX2e}%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.lua	2017-01-29 22:34:57 UTC (rev 43088)
@@ -14,37 +14,6 @@
 -- Do not distribute a modified version of this file.
 -- 
 -- File: l3luatex.dtx Copyright (C) 2010-2016 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
--- license or (at your option) any later version.  The latest version
--- of this license is in the file
---
---    http://www.latex-project.org/lppl.txt
---
--- This file is part of the "l3kernel bundle" (The Work in LPPL)
--- and all files in that bundle must be distributed together.
---
--- The released version of this bundle is available from CTAN.
---
--- -----------------------------------------------------------------------
---
--- The development version of the bundle can be found at
---
---    http://www.latex-project.org/svnroot/experimental/trunk/
---
--- for those people who are interested.
---
---%%%%%%%%%
--- NOTE: %%
---%%%%%%%%%
---
---   Snapshots taken from the repository represent work in progress and may
---   not work or may contain conflicting material!  We therefore ask
---   people _not_ to put them into distributions, archives, etc. without
---   prior consultation with the LaTeX3 Project.
---
--- -----------------------------------------------------------------------
 l3kernel = l3kernel or { }
 local tex_setcatcode    = tex.setcatcode
 local tex_sprint        = tex.sprint

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,49 +6,23 @@
 %%
 %% expl3.dtx  (with options: `package,loader')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: expl3.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: expl3.dtx Copyright (C) 1990-2016 The LaTeX3 Project
 \def\ExplFileName{expl3}%
 \def\ExplFileDescription{L3 programming layer}%
-\def\ExplFileDate{2016/11/21}%
-\def\ExplFileVersion{6760}%
+\def\ExplFileDate{2017/01/28}%
+\def\ExplFileVersion{6834}%
 \let\ExplLoaderFileVersion\ExplFileVersion
 \ProvidesPackage{\ExplFileName}
   [%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3basics,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3bootstrap,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3box.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3box.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3box,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3candidates,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3clist,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3coffins,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3color.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3color.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3color.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3color,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,51 +6,25 @@
 %%
 %% l3doc.dtx  (with options: `class')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3doc.dtx Copyright (C) 1990-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3doc.dtx Copyright (C) 1990-2016 The LaTeX3 project
 \let        \filenameOld        \ExplFileName
 \let        \filedateOld        \ExplFileDate
 \let     \fileversionOld        \ExplFileVersion
 \let \filedescriptionOld        \ExplFileDescription
 \RequirePackage{expl3,xparse,calc}
-\GetIdInfo$Id: l3doc.dtx 6701 2016-09-08 13:56:52Z qinglee $
+\GetIdInfo$Id: l3doc.dtx 6809 2017-01-01 06:33:13Z bruno $
           {L3 Experimental documentation class}
 \ProvidesExplClass
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -1927,8 +1901,8 @@
     \use:x
       {
         \__codedoc_special_index_module:nnnnN
-          { \quotechar #1 }
-          { \quotechar \bslash \quotechar #1 }
+          {#1}
+          { \bslash #1 }
           { }
           { }
           \c_false_bool
@@ -1948,6 +1922,7 @@
   }
 \cs_generate_variant:Nn \__codedoc_special_index:nn { o }
 \tl_new:N \l__codedoc_index_escaped_macro_tl
+\tl_new:N \l__codedoc_index_escaped_key_tl
 \cs_new_protected:Npn \__codedoc_special_index_module:nnnnN #1#2#3#4#5
   {
     \use:x
@@ -1973,6 +1948,8 @@
 \cs_generate_variant:Nn \__codedoc_special_index_module:nnnnN { ooo }
 \cs_new_protected:Npn \__codedoc_special_index_aux:nnnnnn #1#2#3#4#5#6
   {
+    \tl_set:Nn \l__codedoc_index_escaped_key_tl {#1}
+    \__codedoc_quote_special_char:N \l__codedoc_index_escaped_key_tl
     \__codedoc_special_index_set:Nn \l__codedoc_index_escaped_macro_tl {#2}
     \str_if_eq:onTF { \@currenvir } { macrocode }
       { \codeline at wrindex }
@@ -1987,7 +1964,7 @@
       {
         \tl_if_empty:nF { #3 #4 #5 }
           { #3 #5 \actualchar #4 #5 \levelchar }
-        #1
+        \l__codedoc_index_escaped_key_tl
         \actualchar
         {
           \token_to_str:N \verbatim at font \c_space_tl
@@ -2002,6 +1979,12 @@
     \tl_set:Nx #1 { \tl_to_str:n {#2} }
     \__codedoc_if_almost_str:nTF {#2}
       {
+        \tl_replace_all:Non #1 { \tl_to_str:n { __ } }
+          {
+            \verbatimchar
+            \token_to_str:N \_ \token_to_str:N \_
+            \token_to_str:N \verb * \verbatimchar
+          }
         \exp_args:Nx \tl_map_inline:nn
           { \tl_to_str:N \verbatimchar \token_to_str:N _ }
           {
@@ -2008,17 +1991,12 @@
             \tl_replace_all:Nnn #1 {##1}
               {
                 \verbatimchar \c__codedoc_backslash_tl ##1
-                \token_to_str:N \verb \quotechar * \verbatimchar
+                \token_to_str:N \verb * \verbatimchar
               }
           }
-        \tl_map_inline:nn { \actualchar \encapchar \levelchar }
-          {
-            \tl_replace_all:Nxn #1
-              { \tl_to_str:N ##1 } { \quotechar \tl_to_str:N ##1 }
-          }
         \tl_set:Nx #1
           {
-            \token_to_str:N \verb \quotechar * \verbatimchar
+            \token_to_str:N \verb * \verbatimchar
             #1 \verbatimchar
           }
       }
@@ -2028,7 +2006,16 @@
           { \c__codedoc_backslash_tl }
           { \token_to_str:N \bslash \c_space_tl }
       }
+    \__codedoc_quote_special_char:N #1
   }
+\cs_new_protected:Npn \__codedoc_quote_special_char:N #1
+  {
+    \tl_map_inline:nn { \quotechar \actualchar \encapchar \levelchar }
+      {
+        \tl_replace_all:Nxn #1
+          { \tl_to_str:N ##1 } { \quotechar \tl_to_str:N ##1 }
+      }
+  }
 \cs_new_protected:Npn \__codedoc_key_get:n #1
   {
     \__codedoc_key_get_base:nN {#1} \l__codedoc_index_macro_tl
@@ -2057,7 +2044,7 @@
     \tl_set:Nx \l__codedoc_index_key_tl
       { \tl_tail:N \l__codedoc_index_key_tl }
   }
-\cs_set:Npn \__codedoc_key_trim_module:n #1
+\cs_new_protected:Npn \__codedoc_key_trim_module:n #1
   {
     \cs_set:Npn \__codedoc_tmpa:w ##1 #1 ##2 \q_stop
       { \exp_not:n {##1} }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,46 +6,19 @@
 %%
 %% l3docstrip.dtx  (with options: `program')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File l3dosctrip.dtx Copyright (C) 2012 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
+%% 
+%% File l3dosctrip.dtx Copyright (C) 2012,2016 The LaTeX3 Project
 \def\ExplFileDate{2012/06/08}
 \def\ExplFileName{l3docstrip}
 \def\ExplFileVersion{3787}

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,20 @@
 %%
 %% l3drivers.dtx  (with options: `package,dvipdfmx')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3drivers.dtx Copyright(C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\GetIdInfo$Id: l3drivers.dtx 6644 2016-08-13 20:22:11Z bruno $
+%% 
+%% File: l3drivers.dtx Copyright(C) 2011-2016 The LaTeX3 Project
+\GetIdInfo$Id: l3drivers.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Experimental drivers}
 \ProvidesExplFile
   {l3dvidpfmx.def}{\ExplFileDate}{\ExplFileVersion}

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,20 @@
 %%
 %% l3drivers.dtx  (with options: `package,dvips')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3drivers.dtx Copyright(C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\GetIdInfo$Id: l3drivers.dtx 6644 2016-08-13 20:22:11Z bruno $
+%% 
+%% File: l3drivers.dtx Copyright(C) 2011-2016 The LaTeX3 Project
+\GetIdInfo$Id: l3drivers.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Experimental drivers}
 \ProvidesExplFile
   {l3dvips.def}{\ExplFileDate}{\ExplFileVersion}

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,20 @@
 %%
 %% l3drivers.dtx  (with options: `package,dvisvgm')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3drivers.dtx Copyright(C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\GetIdInfo$Id: l3drivers.dtx 6644 2016-08-13 20:22:11Z bruno $
+%% 
+%% File: l3drivers.dtx Copyright(C) 2011-2016 The LaTeX3 Project
+\GetIdInfo$Id: l3drivers.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Experimental drivers}
 \ProvidesExplFile
   {l3dvisvgm.def}{\ExplFileDate}{\ExplFileVersion}

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3expan,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3file.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3file.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3file.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3file,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3fp,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3int.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3int.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3int,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3keys,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3msg,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3names.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3names.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3names.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3names,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,20 @@
 %%
 %% l3drivers.dtx  (with options: `package,pdfmode')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3drivers.dtx Copyright(C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\GetIdInfo$Id: l3drivers.dtx 6644 2016-08-13 20:22:11Z bruno $
+%% 
+%% File: l3drivers.dtx Copyright(C) 2011-2016 The LaTeX3 Project
+\GetIdInfo$Id: l3drivers.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Experimental drivers}
 \ProvidesExplFile
   {l3pdfmode.def}{\ExplFileDate}{\ExplFileVersion}

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3prg,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3prop,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3quark,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3seq,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3skip,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3str.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3str.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3str.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3str,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3tl,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3token.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3token.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,45 +6,19 @@
 %%
 %% l3oldmodules.dtx  (with options: `l3token,oldmodules')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3oldmodules.dtx Copyright (C) 2014 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
+%% 
+%% File: l3oldmodules.dtx Copyright (C) 2014,2016 The LaTeX3 Project
 \def\ExplFileDate{2014/09/06}
 
 \def\old at liii@module at name

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,47 +6,20 @@
 %%
 %% l3drivers.dtx  (with options: `package,xdvipdfmx')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 1990-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3drivers.dtx Copyright(C) 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3kernel bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\GetIdInfo$Id: l3drivers.dtx 6644 2016-08-13 20:22:11Z bruno $
+%% 
+%% File: l3drivers.dtx Copyright(C) 2011-2016 The LaTeX3 Project
+\GetIdInfo$Id: l3drivers.dtx 6809 2017-01-01 06:33:13Z bruno $
   {L3 Experimental drivers}
 \ProvidesExplFile
   {l3xdvidpfmx.def}{\ExplFileDate}{\ExplFileVersion}

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,48 +6,21 @@
 %%
 %% l3keys2e.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2009-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: l3keys2e.dtx (C) Copyright 2009,2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3packages bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\RequirePackage{expl3}[2016/11/21]
-\@ifpackagelater{expl3}{2016/11/21}
+%% 
+%% File: l3keys2e.dtx (C) Copyright 2009,2011-2017 The LaTeX3 Project
+\RequirePackage{expl3}[2017/01/28]
+\@ifpackagelater{expl3}{2017/01/28}
   {}
   {%
     \PackageError{l3keys2e}{Support package l3kernel too old}
@@ -61,8 +34,8 @@
   }
 \def\ExplFileName{l3keys2e}
 \def\ExplFileDescription{LaTeX2e option processing using LaTeX3 keys}
-\def\ExplFileDate{2016/11/21}
-\def\ExplFileVersion{6760}
+\def\ExplFileDate{2017/01/28}
+\def\ExplFileVersion{6834}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
 \cs_generate_variant:Nn \clist_put_right:Nn { Nv }

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,49 +6,22 @@
 %%
 %% xfrac.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
-%% File: xfrac.dtx Copyright (C) 2004, 2008-2010 Morten Hoegholm
-%%                           (C) 2011,2012,2014-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
 %% This file is part of the "l3packages bundle" (The Work in LPPL)
 %% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\RequirePackage{expl3}[2016/11/21]
-\@ifpackagelater{expl3}{2016/11/21}
+%% 
+%% File: xfrac.dtx Copyright (C) 2004, 2008-2010 Morten Hoegholm
+%%                           (C) 2011,2012,2014-2017 The LaTeX3 Project
+\RequirePackage{expl3}[2017/01/28]
+\@ifpackagelater{expl3}{2017/01/28}
   {}
   {%
     \PackageError{xfrac}{Support package l3kernel too old}
@@ -63,8 +36,8 @@
 \RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate}
 \def\ExplFileName{xfrac}
 \def\ExplFileDescription{L3 Experimental split-level fractions}
-\def\ExplFileDate{2016/11/21}
-\def\ExplFileVersion{6760}
+\def\ExplFileDate{2017/01/28}
+\def\ExplFileVersion{6834}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
 \keys_define:nn { xfrac }
@@ -304,7 +277,6 @@
           }
         \__xfrac_math:n
           { % THIS IS JUST WRONG!
-            \scan_align_safe_stop:
             \mode_if_math:TF
               { \tex_mskip:D \l__xfrac_slash_right_muskip }
               { \tex_hskip:D \l__xfrac_slash_right_sep_dim }

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,52 +6,25 @@
 %%
 %% xparse.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2009-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
+%% This file is part of the "l3packages bundle" (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%% 
 %% File: xparse.dtx (C) Copyright 1999 Frank Mittelbach, Chris Rowley,
 %%                      David Carlisle
 %%                  (C) Copyright 2004-2008 Frank Mittelbach,
 %%                      The LaTeX3 Project
 %%                  (C) Copyright 2009-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3packages bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\RequirePackage{expl3}[2016/11/21]
-\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+\@ifpackagelater{expl3}{2017/01/28}
   {}
   {%
     \PackageError{xparse}{Support package l3kernel too old}
@@ -65,8 +38,8 @@
   }
 \def\ExplFileName{xparse}
 \def\ExplFileDescription{L3 Experimental document command parser}
-\def\ExplFileDate{2016/11/21}
-\def\ExplFileVersion{6760}
+\def\ExplFileDate{2017/01/28}
+\def\ExplFileVersion{6834}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
 \tl_const:Nx \c__xparse_no_value_tl

Modified: trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty	2017-01-29 22:34:04 UTC (rev 43087)
+++ trunk/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty	2017-01-29 22:34:57 UTC (rev 43088)
@@ -6,52 +6,25 @@
 %%
 %% xtemplate.dtx  (with options: `package')
 %% 
-%% EXPERIMENTAL CODE
+%% Copyright (C) 2011-2016 The LaTeX3 Project
 %% 
-%% Do not distribute this file without also distributing the
-%% source files specified above.
+%% It may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License (LPPL), either version 1.3c of
+%% this license or (at your option) any later version.  The latest
+%% version of this license is in the file:
 %% 
-%% Do not distribute a modified version of this file.
+%%    http://www.latex-project.org/lppl.txt
 %% 
+%% This file is part of the "l3packages bundle" (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%% 
 %% File: xtemplate.dtx (C) Copyright 1999 Frank Mittelbach, Chris Rowley,
 %%                         David Carlisle
 %%                     (C) Copyright 2004-2010 Frank Mittelbach,
 %%                         The LaTeX3 Project
 %%                     (C) Copyright 2011-2016 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
-%% license or (at your option) any later version.  The latest version
-%% of this license is in the file
-%%
-%%    http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3packages bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%%    http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%%   Snapshots taken from the repository represent work in progress and may
-%%   not work or may contain conflicting material!  We therefore ask
-%%   people _not_ to put them into distributions, archives, etc. without
-%%   prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%%
-\RequirePackage{expl3}[2016/11/21]
-\@ifpackagelater{expl3}{2016/11/21}
+\RequirePackage{expl3}[2017/01/28]
+\@ifpackagelater{expl3}{2017/01/28}
   {}
   {%
     \PackageError{xtemplate}{Support package l3kernel too old}
@@ -65,8 +38,8 @@
   }
 \def\ExplFileName{xtemplate}
 \def\ExplFileDescription{L3 Experimental prototype document functions}
-\def\ExplFileDate{2016/11/21}
-\def\ExplFileVersion{6760}
+\def\ExplFileDate{2017/01/28}
+\def\ExplFileVersion{6834}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
 \tl_const:Nn \c__xtemplate_code_root_tl      { template~code~>~ }



More information about the tex-live-commits mailing list