summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
Diffstat (limited to 'Master')
l---------Master/bin/aarch64-linux/markdown2tex1
l---------Master/bin/amd64-freebsd/markdown2tex1
l---------Master/bin/amd64-netbsd/markdown2tex1
l---------Master/bin/armhf-linux/markdown2tex1
l---------Master/bin/i386-freebsd/markdown2tex1
l---------Master/bin/i386-linux/markdown2tex1
l---------Master/bin/i386-netbsd/markdown2tex1
l---------Master/bin/i386-solaris/markdown2tex1
l---------Master/bin/universal-darwin/markdown2tex1
-rwxr-xr-xMaster/bin/windows/markdown2tex.exebin0 -> 6144 bytes
l---------Master/bin/x86_64-cygwin/markdown2tex1
l---------Master/bin/x86_64-darwinlegacy/markdown2tex1
l---------Master/bin/x86_64-linux/markdown2tex1
l---------Master/bin/x86_64-linuxmusl/markdown2tex1
l---------Master/bin/x86_64-solaris/markdown2tex1
-rw-r--r--Master/texmf-dist/doc/generic/markdown/CHANGES.md151
-rw-r--r--Master/texmf-dist/doc/generic/markdown/README.md10
-rw-r--r--Master/texmf-dist/doc/generic/markdown/VERSION2
-rw-r--r--Master/texmf-dist/doc/generic/markdown/markdown.html300
-rw-r--r--Master/texmf-dist/doc/generic/markdown/markdown.pdfbin1250427 -> 1371989 bytes
-rw-r--r--Master/texmf-dist/scripts/markdown/markdown-cli.lua6
-rwxr-xr-xMaster/texmf-dist/scripts/markdown/markdown2tex.lua288
-rw-r--r--Master/texmf-dist/source/generic/markdown/docstrip.cfg4
-rw-r--r--Master/texmf-dist/source/generic/markdown/markdown.dtx1353
-rw-r--r--Master/texmf-dist/source/generic/markdown/markdown.ins1
-rw-r--r--Master/texmf-dist/tex/context/third/markdown/t-markdown.tex10
-rw-r--r--Master/texmf-dist/tex/context/third/markdown/t-markdownthemewitiko_markdown_defaults.tex4
-rw-r--r--Master/texmf-dist/tex/generic/markdown/markdown.tex217
-rw-r--r--Master/texmf-dist/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex283
-rw-r--r--Master/texmf-dist/tex/latex/markdown/markdown.sty17
-rw-r--r--Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_markdown_defaults.sty180
-rw-r--r--Master/texmf-dist/tex/luatex/markdown/markdown-parser.lua12
-rw-r--r--Master/texmf-dist/tex/luatex/markdown/markdown-unicode-data.lua14
-rw-r--r--Master/texmf-dist/tex/luatex/markdown/markdown.lua4
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
-rw-r--r--Master/tlpkg/tlpsrc/markdown.tlpsrc47
36 files changed, 2366 insertions, 552 deletions
diff --git a/Master/bin/aarch64-linux/markdown2tex b/Master/bin/aarch64-linux/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/aarch64-linux/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/amd64-freebsd/markdown2tex b/Master/bin/amd64-freebsd/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/amd64-freebsd/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/amd64-netbsd/markdown2tex b/Master/bin/amd64-netbsd/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/amd64-netbsd/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/armhf-linux/markdown2tex b/Master/bin/armhf-linux/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/armhf-linux/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/i386-freebsd/markdown2tex b/Master/bin/i386-freebsd/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/i386-freebsd/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/i386-linux/markdown2tex b/Master/bin/i386-linux/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/i386-linux/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/i386-netbsd/markdown2tex b/Master/bin/i386-netbsd/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/i386-netbsd/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/i386-solaris/markdown2tex b/Master/bin/i386-solaris/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/i386-solaris/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/universal-darwin/markdown2tex b/Master/bin/universal-darwin/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/universal-darwin/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/windows/markdown2tex.exe b/Master/bin/windows/markdown2tex.exe
new file mode 100755
index 00000000000..3332231b08c
--- /dev/null
+++ b/Master/bin/windows/markdown2tex.exe
Binary files differ
diff --git a/Master/bin/x86_64-cygwin/markdown2tex b/Master/bin/x86_64-cygwin/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/x86_64-cygwin/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/x86_64-darwinlegacy/markdown2tex b/Master/bin/x86_64-darwinlegacy/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/x86_64-darwinlegacy/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/x86_64-linux/markdown2tex b/Master/bin/x86_64-linux/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/x86_64-linux/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/x86_64-linuxmusl/markdown2tex b/Master/bin/x86_64-linuxmusl/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/x86_64-linuxmusl/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/bin/x86_64-solaris/markdown2tex b/Master/bin/x86_64-solaris/markdown2tex
new file mode 120000
index 00000000000..a206f0c761c
--- /dev/null
+++ b/Master/bin/x86_64-solaris/markdown2tex
@@ -0,0 +1 @@
+../../texmf-dist/scripts/markdown/markdown2tex.lua \ No newline at end of file
diff --git a/Master/texmf-dist/doc/generic/markdown/CHANGES.md b/Master/texmf-dist/doc/generic/markdown/CHANGES.md
index 6c429e24ace..8e6f507c9f6 100644
--- a/Master/texmf-dist/doc/generic/markdown/CHANGES.md
+++ b/Master/texmf-dist/doc/generic/markdown/CHANGES.md
@@ -1,6 +1,155 @@
# Changes
-## 3.9.1
+## 3.10.0
+
+Development:
+
+- Add a built-in theme `witiko/diagrams@v2` for drawing different types of
+ diagrams. (#448, #514, #531, #542, [matrix.org][matrix-542], a9cadc41,
+ 578e64d6, 22efe7f4, a3c2d93b, originally suggested by @anubane)
+
+ [matrix-542]: https://matrix.to/#/!UeAwznpYwwsinVTetR:matrix.org/$CpfhKJT8DAkzH7Rx6ynV1BKFKbfMUtxkpNzqftvLGec?via=matrix.org&via=im.f3l.de
+
+ Here is an example LaTeX document using the new theme:
+
+ ```` tex
+ \documentclass{article}
+ \usepackage[import=witiko/diagrams@v2, relativeReferences]{markdown}
+ \begin{document}
+ \begin{markdown}
+ ``` dot {caption="An example directed graph" width=12cm #dot}
+ digraph tree {
+ margin = 0;
+ rankdir = "LR";
+
+ latex -> pmml;
+ latex -> cmml;
+ pmml -> slt;
+ cmml -> opt;
+ cmml -> prefix;
+ cmml -> infix;
+ pmml -> mterms [style=dashed];
+ cmml -> mterms;
+
+ latex [label = "LaTeX"];
+ pmml [label = "Presentation MathML"];
+ cmml [label = "Content MathML"];
+ slt [label = "Symbol Layout Tree"];
+ opt [label = "Operator Tree"];
+ prefix [label = "Prefix"];
+ infix [label = "Infix"];
+ mterms [label = "M-Terms"];
+ }
+ ```
+
+ ``` mermaid {caption="An example mindmap" width=9cm #mermaid}
+ mindmap
+ root )base-idea(
+ sub<br/>idea 1
+ ((?))
+ sub<br/>idea 2
+ ((?))
+ sub<br/>idea 3
+ ((?))
+ sub<br/>idea 4
+ ((?))
+ ```
+
+ ``` plantuml {caption="An example UML sequence diagram" width=7cm #plantuml}
+ @startuml
+ ' Define participants (actors)
+ participant "Client" as C
+ participant "Server" as S
+ participant "Database" as DB
+
+ ' Diagram title
+ title Simple Request-Response Flow
+
+ ' Messages
+ C -> S: Send Request
+ note over S: Process request
+
+ alt Request is valid
+ S -> DB: Query Data
+ DB -> S: Return Data
+ S -> C: Respond with Data
+ else Request is invalid
+ S -> C: Return Error
+ end
+ @enduml
+ ```
+
+ See the diagrams in figures <#dot>, <#mermaid>, and <#plantuml>.
+ \end{markdown}
+ \end{document}
+ ````````
+
+ You may use the expl3 prop `\g_markdown_diagrams_infostrings_prop` to
+ register other types of diagrams.
+
+- Add option `jekyllDataKeyValue` for routing YAML metadata to expl3 key–values.
+ (#77, #517, [matrix.org][matrix-517], #539, [matrix.org][matrix-539],
+ f57a8c45, originally suggested by @TeXhackse)
+
+ While the primary intended users of this new option are package authors,
+ writers can also use this feature to configure various (La)TeX packages
+ from YAML:
+
+ ``` tex
+ \documentclass{article}
+ \usepackage{chemformula, lua-widow-control, phonenumbers}
+ \usepackage[raw_attribute, tex_math_dollars]{markdown}
+ \begin{document}
+ \begin{markdown}[jekyll_data, jekyll_data_key_value]
+
+ ---
+ chemformula:
+ decimal-marker: $\cdot$
+ lua-widow-control:
+ draft: true
+ showcolours: true
+ phonenumbers:
+ area-code: place
+ area-code-sep: space
+ country: UK
+ ---
+
+ Phone number: `\phonenumber{02079460345}`{=tex}
+
+ Chemical reaction: `\ch{A + B -> 3.14159}`{=tex}
+
+ \end{markdown}
+ \end{document}
+ ```
+
+ This won't work for every package but many packages use expl3 key–values
+ internally for their configuration. If you are curious if your favorite
+ package does, look for `\keys_define` in its source code.
+
+ For more examples, see #517.
+
+ [matrix-517]: https://matrix.to/#/!UeAwznpYwwsinVTetR:matrix.org/$WzqBd_p3KB766wqbFBLbn3o9DmBJCJfPAOsC5w--gW4?via=matrix.org&via=im.f3l.de
+ [matrix-539]: https://matrix.to/#/!UeAwznpYwwsinVTetR:matrix.org/$VZbdWB2EpHeg290MGsYsbUEwMoN68zT8tbIRUKRJ1wc?via=matrix.org&via=im.f3l.de
+
+Fixes:
+
+- Allow using the options `linkAttributes` and `notes` together. (#543, #544)
+
+
+Distribution:
+
+- Alias the command `markdown-cli` as `markdown2tex`.
+ (#545, #546, [tex-live@tug.org][tex-live-2025-01-051051])
+
+ [tex-live-2025-01-051051]: https://tug.org/pipermail/tex-live/2025-January/051051.html
+
+Docker:
+
+- Produce Docker image `witiko/markdown:latest-minimal` with a minimum
+ installation of the Markdown package for TeX based on the Docker image
+ `texlive/texlive:latest-minimal`. (61a3aa2b)
+
+## 3.9.1 (2024-12-17)
Development:
diff --git a/Master/texmf-dist/doc/generic/markdown/README.md b/Master/texmf-dist/doc/generic/markdown/README.md
index 27f21be426c..6d9a786fc8c 100644
--- a/Master/texmf-dist/doc/generic/markdown/README.md
+++ b/Master/texmf-dist/doc/generic/markdown/README.md
@@ -140,7 +140,7 @@ For further information, consult one of the following:
- [Using Markdown in LaTeX documents][overleaf-6].
4. Journal articles published by [TUGboat][]:
- [Using Markdown Inside TeX Documents][tb119],
- - [Markdown 2.7.0: Towards Lightweight mMrkup in TeX][tb124],
+ - [Markdown 2.7.0: Towards Lightweight markup in TeX][tb124],
- [Making Markdown into a Microwave Meal][tb129],
- [Markdown 2.10.0: LaTeX Themes & Snippets, Two Flavors of Comments, and LuaMetaTeX][tb131],
- [Markdown 2.15.0: What's New?][tb133],
@@ -236,7 +236,7 @@ Acknowledgements
| [<img width="150" src="https://www.fi.muni.cz/images/fi-logo.png">][fimu] | I gratefully acknowledge the funding from the [Faculty of Informatics][fimu] at the [Masaryk University][mu] in Brno, Czech Republic, for the development of the Markdown package in projects [MUNI/33/12/2015][], [MUNI/33/1784/2020][], [MUNI/33/0776/2021][], [MUNI/33/1654/2022][], and [MUNI/33/1658/2022][]. |
| [<img width="150" src="https://cdn.overleaf.com/img/ol-brand/overleaf_og_logo.png">][overleaf] | Extensive user documentation for the Markdown package was kindly written by [Lian Tze Lim][liantze] and published by [Overleaf][]. |
| [<img width="150" src="https://pbs.twimg.com/profile_images/1004769879319334912/6Bh1UthD.jpg">][omedym] | Support for content slicing (Lua options [`shiftHeadings`][option-shift-headings] and [`slice`][option-slice]) and pipe tables (Lua options [`pipeTables`][option-pipe-tables] and [`tableCaptions`][option-table-captions]) was graciously sponsored by [David Vins][dvins] and [Omedym][]. |
-| [<img width="150" src="https://www.istqb.org/static/istqb-logo-1b043e800a580724ad223567f9ea57c0.png">][istqb] | Fixes for issues [#359][issue-359], [#368][issue-368], [#401][issue-401], [#424][issue-424], [#440][issue-440], [#468][issue-468], [#474][issue-474], and [#487][issue-487] were graciously sponsored by the [International Software Testing Qualifications Board (ISTQB)][istqb]. |
+| [<img width="150" src="https://www.guava.blue/wp-content/uploads/2021/01/ISTQB-logo-600x545.png">][istqb] | Fixes for issues [#359][issue-359], [#368][issue-368], [#401][issue-401], [#424][issue-424], [#440][issue-440], [#468][issue-468], [#474][issue-474], and [#487][issue-487] were graciously sponsored by the [International Software Testing Qualifications Board (ISTQB)][istqb]. |
[dvins]: https://github.com/dvins "David Vins"
[fimu]: https://www.fi.muni.cz/index.html.en "Faculty of Informatics, Masaryk University"
@@ -348,7 +348,7 @@ BibTeX file that is included in your TeX distribution like this:
Notes to Distributors
---------------------
-The file `markdown-cli.lua` should be installed in the TDS directory
+The file `markdown2tex.lua` should be installed in the TDS directory
`scripts/markdown`. Furthermore, it should be made executable and either
-symlinked to system directories as `markdown-cli` on Unix or have a wrapper
-`markdown-cli.exe` installed on Windows.
+symlinked to system directories as `markdown2tex` on Unix or have a wrapper
+`markdown2tex.exe` installed on Windows.
diff --git a/Master/texmf-dist/doc/generic/markdown/VERSION b/Master/texmf-dist/doc/generic/markdown/VERSION
index d140c4eb2b7..218ee6d55a8 100644
--- a/Master/texmf-dist/doc/generic/markdown/VERSION
+++ b/Master/texmf-dist/doc/generic/markdown/VERSION
@@ -1 +1 @@
-3.9.1-0-g92254dfb (2024-12-17)
+3.10.0-0-g626df6ad (2025-01-27)
diff --git a/Master/texmf-dist/doc/generic/markdown/markdown.html b/Master/texmf-dist/doc/generic/markdown/markdown.html
index 31b45fef336..3b67c6a3f3f 100644
--- a/Master/texmf-dist/doc/generic/markdown/markdown.html
+++ b/Master/texmf-dist/doc/generic/markdown/markdown.html
@@ -93,7 +93,7 @@
<header id="title-block-header">
<h1 class="title">Markdown Package User Manual</h1>
<p class="author">Vít Starý Novotný, Andrej Genčur</p>
-<p class="date">3.9.1-0-g92254dfb 2024-12-17</p>
+<p class="date">3.10.0-0-g626df6ad 2025-01-27</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
@@ -222,12 +222,12 @@ class="tex">T<sub>e</sub>X</span> distribution, you will need to install
it.</p>
<p>From <a href="https://github.com/witiko/markdown/releases"
title="Releases - witiko/markdown">Releases</a>, download <a
-href="https://github.com/witiko/markdown/releases/download/3.9.1/markdown.zip"
-title="Release 3.9.1 - witiko/markdown">an archive
+href="https://github.com/witiko/markdown/releases/download/3.10.0/markdown.zip"
+title="Release 3.10.0 - witiko/markdown">an archive
<code>markdown.zip</code> for this version of the Markdown package
-(3.9.1)</a> or a different version that you wish to install. Then, unzip
-the archive. If you downloaded an archive for a different version of the
-Markdown package, you should now locate a file named
+(3.10.0)</a> or a different version that you wish to install. Then,
+unzip the archive. If you downloaded an archive for a different version
+of the Markdown package, you should now locate a file named
<code>markdown.html</code> with the user manual for that version, open
it, and follow the installation steps in it rather than the steps from
this manual.</p>
@@ -242,7 +242,8 @@ files:</p>
<ul>
<li><code>markdown.lua</code>, <code>markdown-parser.lua</code>, and
<code>markdown-unicode-data.lua</code>: The Lua module</li>
-<li><code>markdown-cli.lua</code>: The Lua command-line interface</li>
+<li><code>markdown-cli.lua</code> and <code>markdown2tex.lua</code>: The
+Lua command-line interface</li>
<li><code>markdown.tex</code>: The plain <span
class="tex">T<sub>e</sub>X</span> macro package</li>
<li><code>markdown.sty</code>: The <span
@@ -264,6 +265,7 @@ generally where the individual files should be placed:</p>
<li><code>⟨TEXMF⟩/tex/luatex/markdown/markdown-parser.lua</code></li>
<li><code>⟨TEXMF⟩/tex/luatex/markdown/markdown-unicode-data.lua</code></li>
<li><code>⟨TEXMF⟩/scripts/markdown/markdown-cli.lua</code></li>
+<li><code>⟨TEXMF⟩/scripts/markdown/markdown2tex.lua</code></li>
<li><code>⟨TEXMF⟩/tex/generic/markdown/markdown.tex</code></li>
<li><code>⟨TEXMF⟩/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex</code></li>
<li><code>⟨TEXMF⟩/tex/latex/markdown/markdown.sty</code></li>
@@ -289,6 +291,7 @@ them together. This way your document can be portably typeset on legacy
<li><code>./markdown-parser.lua</code></li>
<li><code>./markdown-unicode-data.lua</code></li>
<li><code>./markdown-cli.lua</code></li>
+<li><code>./markdown2tex.lua</code></li>
<li><code>./markdown/markdown.tex</code></li>
<li><code>./markdown.sty</code></li>
<li><code>./t-markdown.tex</code></li>
@@ -352,12 +355,12 @@ Interface</h4>
<code>hello.md</code> with the following content:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
-<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> hello.md hello.tex</span>
+<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> hello.md hello.tex</span>
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the text “Hello <em>world</em>!” Invoking pdfTeX should have the
same effect:</p>
-<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> hello.md hello.tex</span>
+<div class="sourceCode" id="cb9"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> hello.md hello.tex</span>
<span id="cb9-2"><a href="#cb9-2" aria-hidden="true" tabindex="-1"></a><span class="ex">pdftex</span> document.tex</span></code></pre></div>
<h3 data-number="1.3.2" id="using-plain-tex"><span
class="header-section-number">1.3.2</span> Using Plain <span
@@ -661,8 +664,8 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb34-1"><a href=
class="sourceCode md"><code class="sourceCode markdown"><span id="cb35-1"><a href="#cb35-1" aria-hidden="true" tabindex="-1"></a>$\sqrt{-1}$ *equals* $i$.</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb36"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> example.md nomath.tex</span>
-<span id="cb36-2"><a href="#cb36-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> tex_math_dollars=true <span class="at">--</span> example.md math.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> example.md nomath.tex</span>
+<span id="cb36-2"><a href="#cb36-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> tex_math_dollars=true <span class="at">--</span> example.md math.tex</span>
<span id="cb36-3"><a href="#cb36-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -673,8 +676,8 @@ contain the following text:</p>
</blockquote>
<p>Invoking pdfTeX should have the same effect:</p>
<div class="sourceCode" id="cb37"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb37-1"><a href="#cb37-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> example.md nomath.tex</span>
-<span id="cb37-2"><a href="#cb37-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> tex_math_dollars=true <span class="at">--</span> example.md math.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb37-1"><a href="#cb37-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> example.md nomath.tex</span>
+<span id="cb37-2"><a href="#cb37-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> tex_math_dollars=true <span class="at">--</span> example.md math.tex</span>
<span id="cb37-3"><a href="#cb37-3" aria-hidden="true" tabindex="-1"></a><span class="ex">pdftex</span> document.tex</span></code></pre></div>
<h3 data-number="2.1.2" id="plain-tex"><span
class="header-section-number">2.1.2</span> Plain <span
@@ -867,7 +870,7 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb46-1"><a hre
<p>Next, invoke LuaTeX from the terminal with the
<code><strong>eagerCache</strong></code> option disabled:</p>
<div class="sourceCode" id="cb47"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb47-1"><a href="#cb47-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> eagerCache=false <span class="at">--</span> hello.md hello.tex</span></code></pre></div>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb47-1"><a href="#cb47-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> eagerCache=false <span class="at">--</span> hello.md hello.tex</span></code></pre></div>
<p>A <span class="tex">T<sub>e</sub>X</span> document named
<code>hello.tex</code> should be produced and contain the following
code:</p>
@@ -877,7 +880,7 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb48-1"><a href=
<p>Invoke LuaTeX from the terminal again, this time with the
<code><strong>eagerCache</strong></code> option enabled:</p>
<div class="sourceCode" id="cb49"><pre
-class="sourceCode tex"><code class="sourceCode latex"><span id="cb49-1"><a href="#cb49-1" aria-hidden="true" tabindex="-1"></a>markdown-cli eagerCache=true -- hello.md hello.tex</span></code></pre></div>
+class="sourceCode tex"><code class="sourceCode latex"><span id="cb49-1"><a href="#cb49-1" aria-hidden="true" tabindex="-1"></a>markdown2tex eagerCache=true -- hello.md hello.tex</span></code></pre></div>
<p>A <span class="tex">T<sub>e</sub>X</span> document named
<code>hello.tex</code> should be produced and contain the following
code:</p>
@@ -1114,7 +1117,7 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb56-1"><a href=
class="sourceCode md"><code class="sourceCode markdown"><span id="cb57-1"><a href="#cb57-1" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb58"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb58-1"><a href="#cb58-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> cacheDir=cache <span class="at">--</span> hello.md hello.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb58-1"><a href="#cb58-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> cacheDir=cache <span class="at">--</span> hello.md hello.tex</span>
<span id="cb58-2"><a href="#cb58-2" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the text “Hello <em>world</em>!” A directory named
@@ -1424,7 +1427,7 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb81-1"><a href=
class="sourceCode md"><code class="sourceCode markdown"><span id="cb82-1"><a href="#cb82-1" aria-hidden="true" tabindex="-1"></a>Hello *world*!</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb83"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb83-1"><a href="#cb83-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> finalizeCache=true frozenCacheFileName=cache.tex <span class="at">--</span> hello.md hello.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb83-1"><a href="#cb83-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> finalizeCache=true frozenCacheFileName=cache.tex <span class="at">--</span> hello.md hello.tex</span>
<span id="cb83-2"><a href="#cb83-2" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the text “Hello <em>world</em>!” A frozen cache will also be
@@ -1664,8 +1667,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb100-1"><a hr
<span id="cb100-2"><a href="#cb100-2" aria-hidden="true" tabindex="-1"></a><span class="at">&gt; A quote?</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb101"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb101-1"><a href="#cb101-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb101-2"><a href="#cb101-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> blankBeforeBlockquote=true <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb101-1"><a href="#cb101-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb101-2"><a href="#cb101-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> blankBeforeBlockquote=true <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb101-3"><a href="#cb101-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -1854,8 +1857,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb112-1"><a hr
<span id="cb112-4"><a href="#cb112-4" aria-hidden="true" tabindex="-1"></a><span class="in">```</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb113"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb113-1"><a href="#cb113-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> fencedCode=true <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb113-2"><a href="#cb113-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> fencedCode=true blankBeforeCodeFence=true <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb113-1"><a href="#cb113-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> fencedCode=true <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb113-2"><a href="#cb113-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> fencedCode=true blankBeforeCodeFence=true <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb113-3"><a href="#cb113-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -2104,8 +2107,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb129-1"><a hr
<span id="cb129-3"><a href="#cb129-3" aria-hidden="true" tabindex="-1"></a><span class="fu">==========</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb130"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb130-1"><a href="#cb130-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb130-2"><a href="#cb130-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> blankBeforeHeading=true <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb130-1"><a href="#cb130-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb130-2"><a href="#cb130-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> blankBeforeHeading=true <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb130-3"><a href="#cb130-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -2287,8 +2290,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb140-1"><a hr
<span id="cb140-2"><a href="#cb140-2" aria-hidden="true" tabindex="-1"></a><span class="ss">- </span>a list?</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb141"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb141-1"><a href="#cb141-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb141-2"><a href="#cb141-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> blankBeforeList=true <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb141-1"><a href="#cb141-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb141-2"><a href="#cb141-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> blankBeforeList=true <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb141-3"><a href="#cb141-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -2549,8 +2552,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb154-1"><a hr
<span id="cb154-3"><a href="#cb154-3" aria-hidden="true" tabindex="-1"></a><span class="at">&gt; or two block quotes?</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb155"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb155-1"><a href="#cb155-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> breakableBlockquotes=false <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb155-2"><a href="#cb155-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb155-1"><a href="#cb155-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> breakableBlockquotes=false <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb155-2"><a href="#cb155-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb155-3"><a href="#cb155-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -2909,8 +2912,8 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb173-1"><a href
class="sourceCode md"><code class="sourceCode markdown"><span id="cb174-1"><a href="#cb174-1" aria-hidden="true" tabindex="-1"></a>``Is this a code span?&#39;&#39; ``Or a quote?&#39;&#39;</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb175"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb175-1"><a href="#cb175-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> codeSpans=false <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb175-2"><a href="#cb175-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb175-1"><a href="#cb175-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> codeSpans=false <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb175-2"><a href="#cb175-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb175-3"><a href="#cb175-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -4504,8 +4507,8 @@ class="sourceCode html"><code class="sourceCode html"><span id="cb269-1"><a href
<span id="cb269-6"><a href="#cb269-6" aria-hidden="true" tabindex="-1"></a>_Is there <span class="kw">&lt;?</span> HTML instruction <span class="kw">?&gt;</span> support?_</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb270"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb270-1"><a href="#cb270-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> html=false <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb270-2"><a href="#cb270-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb270-1"><a href="#cb270-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> html=false <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb270-2"><a href="#cb270-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb270-3"><a href="#cb270-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -4774,8 +4777,8 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb282-1"><a href
class="sourceCode md"><code class="sourceCode markdown"><span id="cb283-1"><a href="#cb283-1" aria-hidden="true" tabindex="-1"></a>$\sqrt{-1}$ *equals* $i$.</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb284"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb284-1"><a href="#cb284-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb284-2"><a href="#cb284-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> hybrid=true <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb284-1"><a href="#cb284-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb284-2"><a href="#cb284-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> hybrid=true <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb284-3"><a href="#cb284-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -6153,8 +6156,8 @@ class="sourceCode tex"><code class="sourceCode latex"><span id="cb358-1"><a href
class="sourceCode md"><code class="sourceCode markdown"><span id="cb359-1"><a href="#cb359-1" aria-hidden="true" tabindex="-1"></a>Are these just three regular dots, a victorian ellipsis, or ... ?</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb360"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb360-1"><a href="#cb360-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb360-2"><a href="#cb360-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> smartEllipses=true <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb360-1"><a href="#cb360-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb360-2"><a href="#cb360-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> smartEllipses=true <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb360-3"><a href="#cb360-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -7208,8 +7211,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb419-1"><a hr
<span id="cb419-3"><a href="#cb419-3" aria-hidden="true" tabindex="-1"></a>$$\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx$$</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb420"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb420-1"><a href="#cb420-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb420-2"><a href="#cb420-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> texMathDollars=true <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb420-1"><a href="#cb420-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb420-2"><a href="#cb420-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> texMathDollars=true <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb420-3"><a href="#cb420-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -7384,8 +7387,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb431-1"><a hr
<span id="cb431-3"><a href="#cb431-3" aria-hidden="true" tabindex="-1"></a><span class="sc">\\</span><span class="co">[</span><span class="ot">\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx\\]</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb432"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb432-1"><a href="#cb432-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb432-2"><a href="#cb432-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> texMathDoubleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb432-1"><a href="#cb432-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb432-2"><a href="#cb432-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> texMathDoubleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb432-3"><a href="#cb432-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -7560,8 +7563,8 @@ class="sourceCode md"><code class="sourceCode markdown"><span id="cb443-1"><a hr
<span id="cb443-3"><a href="#cb443-3" aria-hidden="true" tabindex="-1"></a><span class="sc">\[</span>\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^{-i2\pi \xi x} dx<span class="sc">\]</span></span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb444"><pre
-class="sourceCode sh"><code class="sourceCode bash"><span id="cb444-1"><a href="#cb444-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> <span class="at">--</span> content.md optionfalse.tex</span>
-<span id="cb444-2"><a href="#cb444-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown-cli</span> texMathSingleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span>
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb444-1"><a href="#cb444-1" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> <span class="at">--</span> content.md optionfalse.tex</span>
+<span id="cb444-2"><a href="#cb444-2" aria-hidden="true" tabindex="-1"></a><span class="ex">markdown2tex</span> texMathSingleBackslash=true <span class="at">--</span> content.md optiontrue.tex</span>
<span id="cb444-3"><a href="#cb444-3" aria-hidden="true" tabindex="-1"></a><span class="ex">luatex</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
contain the following text:</p>
@@ -8070,20 +8073,25 @@ low-level programming.</p>
<p>Built-in plain <span class="tex">T<sub>e</sub>X</span> themes
provided with the Markdown package include:</p>
<dl>
-<dt><code><strong>witiko/diagrams@v1</strong></code></dt>
-<dd>
-<p>A theme that typesets fenced code blocks with the <code>dot …</code>
-infostring as images of directed graphs rendered by the Graphviz tools.
-The right tail of the infostring is used as the image title. The theme
-requires a Unix-like operating system with GNU Diffutils and Graphviz
-installed. The theme also requires shell access unless the
+<dt><code><strong>witiko/diagrams</strong></code></dt>
+<dd>
+<p>A theme that typesets fenced code blocks with the infostrings
+<code>dot</code>, <code>mermaid</code>, and <code>plantuml</code> as
+figures with diagrams produced with the command <code>dot</code> from
+Graphviz tools, the command <code>mmdc</code> from the npm package
+<code>@mermaid-js/mermaid-cli</code>, and the command
+<code>plantuml</code> from the package PlantUML, respectively. The
+key-value attribute <code>caption</code> can be used to specify the
+caption of the figure. The remaining attributes are treated as image
+attributes.</p>
+<p>The theme requires a Unix-like operating system with GNU Diffutils,
+Graphviz, the npm package <code>@mermaid-js/mermaid-cli</code>, and
+PlantUML installed. All these packages are already included in the
+Docker image <code>witiko/markdown</code>; consult
+<code>Dockerfile</code> to see how they are installed. The theme also
+requires shell access unless the
<code><strong>frozenCache</strong></code> plain <span
class="tex">T<sub>e</sub>X</span> option is enabled.</p>
-<p>The above example loads version <code>v1</code> of the theme, which
-is an alias for an earlier theme named <code>witiko/dot</code>. Future
-versions of the theme may have backwards-incompatible syntax and
-behavior. Therefore, you are encouraged to always specify the version
-<code>v1</code> to keep your documents from suddenly breaking.</p>
</dd>
</dl>
<h5 class="unnumbered" id="latex-example-54"><span
@@ -8092,54 +8100,79 @@ class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
<code>document.tex</code> with the following content:</p>
<div class="sourceCode" id="cb472"><pre
class="sourceCode tex"><code class="sourceCode latex"><span id="cb472-1"><a href="#cb472-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
-<span id="cb472-2"><a href="#cb472-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[import=witiko/diagrams@v1]{<span class="ex">markdown</span>}</span>
-<span id="cb472-3"><a href="#cb472-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\setkeys</span>{Gin}{</span>
-<span id="cb472-4"><a href="#cb472-4" aria-hidden="true" tabindex="-1"></a> width=<span class="fu">\columnwidth</span>,</span>
-<span id="cb472-5"><a href="#cb472-5" aria-hidden="true" tabindex="-1"></a> height=0.65<span class="fu">\paperheight</span>,</span>
-<span id="cb472-6"><a href="#cb472-6" aria-hidden="true" tabindex="-1"></a> keepaspectratio}</span>
-<span id="cb472-7"><a href="#cb472-7" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
-<span id="cb472-8"><a href="#cb472-8" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
-<span id="cb472-9"><a href="#cb472-9" aria-hidden="true" tabindex="-1"></a>``` dot Various formats of mathemathical formulae</span>
-<span id="cb472-10"><a href="#cb472-10" aria-hidden="true" tabindex="-1"></a>digraph tree {</span>
-<span id="cb472-11"><a href="#cb472-11" aria-hidden="true" tabindex="-1"></a> margin = 0;</span>
-<span id="cb472-12"><a href="#cb472-12" aria-hidden="true" tabindex="-1"></a> rankdir = &quot;LR&quot;;</span>
-<span id="cb472-13"><a href="#cb472-13" aria-hidden="true" tabindex="-1"></a></span>
-<span id="cb472-14"><a href="#cb472-14" aria-hidden="true" tabindex="-1"></a> latex -&gt; pmml;</span>
-<span id="cb472-15"><a href="#cb472-15" aria-hidden="true" tabindex="-1"></a> latex -&gt; cmml;</span>
-<span id="cb472-16"><a href="#cb472-16" aria-hidden="true" tabindex="-1"></a> pmml -&gt; slt;</span>
-<span id="cb472-17"><a href="#cb472-17" aria-hidden="true" tabindex="-1"></a> cmml -&gt; opt;</span>
-<span id="cb472-18"><a href="#cb472-18" aria-hidden="true" tabindex="-1"></a> cmml -&gt; prefix;</span>
-<span id="cb472-19"><a href="#cb472-19" aria-hidden="true" tabindex="-1"></a> cmml -&gt; infix;</span>
-<span id="cb472-20"><a href="#cb472-20" aria-hidden="true" tabindex="-1"></a> pmml -&gt; mterms [style=dashed];</span>
-<span id="cb472-21"><a href="#cb472-21" aria-hidden="true" tabindex="-1"></a> cmml -&gt; mterms;</span>
-<span id="cb472-22"><a href="#cb472-22" aria-hidden="true" tabindex="-1"></a></span>
-<span id="cb472-23"><a href="#cb472-23" aria-hidden="true" tabindex="-1"></a> latex [label = &quot;LaTeX&quot;];</span>
-<span id="cb472-24"><a href="#cb472-24" aria-hidden="true" tabindex="-1"></a> pmml [label = &quot;Presentation MathML&quot;];</span>
-<span id="cb472-25"><a href="#cb472-25" aria-hidden="true" tabindex="-1"></a> cmml [label = &quot;Content MathML&quot;];</span>
-<span id="cb472-26"><a href="#cb472-26" aria-hidden="true" tabindex="-1"></a> slt [label = &quot;Symbol Layout Tree&quot;];</span>
-<span id="cb472-27"><a href="#cb472-27" aria-hidden="true" tabindex="-1"></a> opt [label = &quot;Operator Tree&quot;];</span>
-<span id="cb472-28"><a href="#cb472-28" aria-hidden="true" tabindex="-1"></a> prefix [label = &quot;Prefix&quot;];</span>
-<span id="cb472-29"><a href="#cb472-29" aria-hidden="true" tabindex="-1"></a> infix [label = &quot;Infix&quot;];</span>
-<span id="cb472-30"><a href="#cb472-30" aria-hidden="true" tabindex="-1"></a> mterms [label = &quot;M-Terms&quot;];</span>
-<span id="cb472-31"><a href="#cb472-31" aria-hidden="true" tabindex="-1"></a>}</span>
-<span id="cb472-32"><a href="#cb472-32" aria-hidden="true" tabindex="-1"></a>```</span>
-<span id="cb472-33"><a href="#cb472-33" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
-<span id="cb472-34"><a href="#cb472-34" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<span id="cb472-2"><a href="#cb472-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>[import=witiko/diagrams@v2, relativeReferences]{<span class="ex">markdown</span>}</span>
+<span id="cb472-3"><a href="#cb472-3" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb472-4"><a href="#cb472-4" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">markdown</span>}</span>
+<span id="cb472-5"><a href="#cb472-5" aria-hidden="true" tabindex="-1"></a>``` dot {caption=&quot;An example directed graph&quot; width=12cm #dot}</span>
+<span id="cb472-6"><a href="#cb472-6" aria-hidden="true" tabindex="-1"></a>digraph tree {</span>
+<span id="cb472-7"><a href="#cb472-7" aria-hidden="true" tabindex="-1"></a> margin = 0;</span>
+<span id="cb472-8"><a href="#cb472-8" aria-hidden="true" tabindex="-1"></a> rankdir = &quot;LR&quot;;</span>
+<span id="cb472-9"><a href="#cb472-9" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb472-10"><a href="#cb472-10" aria-hidden="true" tabindex="-1"></a> latex -&gt; pmml;</span>
+<span id="cb472-11"><a href="#cb472-11" aria-hidden="true" tabindex="-1"></a> latex -&gt; cmml;</span>
+<span id="cb472-12"><a href="#cb472-12" aria-hidden="true" tabindex="-1"></a> pmml -&gt; slt;</span>
+<span id="cb472-13"><a href="#cb472-13" aria-hidden="true" tabindex="-1"></a> cmml -&gt; opt;</span>
+<span id="cb472-14"><a href="#cb472-14" aria-hidden="true" tabindex="-1"></a> cmml -&gt; prefix;</span>
+<span id="cb472-15"><a href="#cb472-15" aria-hidden="true" tabindex="-1"></a> cmml -&gt; infix;</span>
+<span id="cb472-16"><a href="#cb472-16" aria-hidden="true" tabindex="-1"></a> pmml -&gt; mterms [style=dashed];</span>
+<span id="cb472-17"><a href="#cb472-17" aria-hidden="true" tabindex="-1"></a> cmml -&gt; mterms;</span>
+<span id="cb472-18"><a href="#cb472-18" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb472-19"><a href="#cb472-19" aria-hidden="true" tabindex="-1"></a> latex [label = &quot;LaTeX&quot;];</span>
+<span id="cb472-20"><a href="#cb472-20" aria-hidden="true" tabindex="-1"></a> pmml [label = &quot;Presentation MathML&quot;];</span>
+<span id="cb472-21"><a href="#cb472-21" aria-hidden="true" tabindex="-1"></a> cmml [label = &quot;Content MathML&quot;];</span>
+<span id="cb472-22"><a href="#cb472-22" aria-hidden="true" tabindex="-1"></a> slt [label = &quot;Symbol Layout Tree&quot;];</span>
+<span id="cb472-23"><a href="#cb472-23" aria-hidden="true" tabindex="-1"></a> opt [label = &quot;Operator Tree&quot;];</span>
+<span id="cb472-24"><a href="#cb472-24" aria-hidden="true" tabindex="-1"></a> prefix [label = &quot;Prefix&quot;];</span>
+<span id="cb472-25"><a href="#cb472-25" aria-hidden="true" tabindex="-1"></a> infix [label = &quot;Infix&quot;];</span>
+<span id="cb472-26"><a href="#cb472-26" aria-hidden="true" tabindex="-1"></a> mterms [label = &quot;M-Terms&quot;];</span>
+<span id="cb472-27"><a href="#cb472-27" aria-hidden="true" tabindex="-1"></a>}</span>
+<span id="cb472-28"><a href="#cb472-28" aria-hidden="true" tabindex="-1"></a>```</span>
+<span id="cb472-29"><a href="#cb472-29" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb472-30"><a href="#cb472-30" aria-hidden="true" tabindex="-1"></a>``` mermaid {caption=&quot;An example mindmap&quot; width=9cm #mermaid}</span>
+<span id="cb472-31"><a href="#cb472-31" aria-hidden="true" tabindex="-1"></a>mindmap</span>
+<span id="cb472-32"><a href="#cb472-32" aria-hidden="true" tabindex="-1"></a> root )base-idea(</span>
+<span id="cb472-33"><a href="#cb472-33" aria-hidden="true" tabindex="-1"></a> sub&lt;br/&gt;idea 1</span>
+<span id="cb472-34"><a href="#cb472-34" aria-hidden="true" tabindex="-1"></a> ((?))</span>
+<span id="cb472-35"><a href="#cb472-35" aria-hidden="true" tabindex="-1"></a> sub&lt;br/&gt;idea 2</span>
+<span id="cb472-36"><a href="#cb472-36" aria-hidden="true" tabindex="-1"></a> ((?))</span>
+<span id="cb472-37"><a href="#cb472-37" aria-hidden="true" tabindex="-1"></a> sub&lt;br/&gt;idea 3</span>
+<span id="cb472-38"><a href="#cb472-38" aria-hidden="true" tabindex="-1"></a> ((?))</span>
+<span id="cb472-39"><a href="#cb472-39" aria-hidden="true" tabindex="-1"></a> sub&lt;br/&gt;idea 4</span>
+<span id="cb472-40"><a href="#cb472-40" aria-hidden="true" tabindex="-1"></a> ((?))</span>
+<span id="cb472-41"><a href="#cb472-41" aria-hidden="true" tabindex="-1"></a>```</span>
+<span id="cb472-42"><a href="#cb472-42" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb472-43"><a href="#cb472-43" aria-hidden="true" tabindex="-1"></a>``` plantuml {caption=&quot;An example UML sequence diagram&quot; width=7cm #plantuml}</span>
+<span id="cb472-44"><a href="#cb472-44" aria-hidden="true" tabindex="-1"></a>@startuml</span>
+<span id="cb472-45"><a href="#cb472-45" aria-hidden="true" tabindex="-1"></a>&#39; Define participants (actors)</span>
+<span id="cb472-46"><a href="#cb472-46" aria-hidden="true" tabindex="-1"></a>participant &quot;Client&quot; as C</span>
+<span id="cb472-47"><a href="#cb472-47" aria-hidden="true" tabindex="-1"></a>participant &quot;Server&quot; as S</span>
+<span id="cb472-48"><a href="#cb472-48" aria-hidden="true" tabindex="-1"></a>participant &quot;Database&quot; as DB</span>
+<span id="cb472-49"><a href="#cb472-49" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb472-50"><a href="#cb472-50" aria-hidden="true" tabindex="-1"></a>&#39; Diagram title</span>
+<span id="cb472-51"><a href="#cb472-51" aria-hidden="true" tabindex="-1"></a>title Simple Request-Response Flow</span>
+<span id="cb472-52"><a href="#cb472-52" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb472-53"><a href="#cb472-53" aria-hidden="true" tabindex="-1"></a>&#39; Messages</span>
+<span id="cb472-54"><a href="#cb472-54" aria-hidden="true" tabindex="-1"></a>C -&gt; S: Send Request</span>
+<span id="cb472-55"><a href="#cb472-55" aria-hidden="true" tabindex="-1"></a>note over S: Process request</span>
+<span id="cb472-56"><a href="#cb472-56" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb472-57"><a href="#cb472-57" aria-hidden="true" tabindex="-1"></a>alt Request is valid</span>
+<span id="cb472-58"><a href="#cb472-58" aria-hidden="true" tabindex="-1"></a> S -&gt; DB: Query Data</span>
+<span id="cb472-59"><a href="#cb472-59" aria-hidden="true" tabindex="-1"></a> DB -&gt; S: Return Data</span>
+<span id="cb472-60"><a href="#cb472-60" aria-hidden="true" tabindex="-1"></a> S -&gt; C: Respond with Data</span>
+<span id="cb472-61"><a href="#cb472-61" aria-hidden="true" tabindex="-1"></a>else Request is invalid</span>
+<span id="cb472-62"><a href="#cb472-62" aria-hidden="true" tabindex="-1"></a> S -&gt; C: Return Error</span>
+<span id="cb472-63"><a href="#cb472-63" aria-hidden="true" tabindex="-1"></a>end</span>
+<span id="cb472-64"><a href="#cb472-64" aria-hidden="true" tabindex="-1"></a>@enduml</span>
+<span id="cb472-65"><a href="#cb472-65" aria-hidden="true" tabindex="-1"></a>```</span>
+<span id="cb472-66"><a href="#cb472-66" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb472-67"><a href="#cb472-67" aria-hidden="true" tabindex="-1"></a>See the diagrams in figures &lt;#dot&gt;, &lt;#mermaid&gt;, and &lt;#plantuml&gt;.</span>
+<span id="cb472-68"><a href="#cb472-68" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">markdown</span>}</span>
+<span id="cb472-69"><a href="#cb472-69" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
<p>Next, invoke LuaTeX from the terminal:</p>
<div class="sourceCode" id="cb473"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb473-1"><a href="#cb473-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> <span class="at">--shell-escape</span> document.tex</span></code></pre></div>
<p>A PDF document named <code>document.pdf</code> should be produced and
-contain a drawing of a directed graph similar to Figure 1 from the
-following conference article:</p>
-<blockquote>
-<p>NOVOTNÝ, Vít, Petr SOJKA, Michal ŠTEFÁNIK and Dávid LUPTÁK. Three is
-Better than One: Ensembling Math Information Retrieval Systems. <em>CEUR
-Workshop Proceedings</em>. Thessaloniki, Greece: M. Jeusfeld c/o
-Redaktion Sun SITE, Informatik V, RWTH Aachen., 2020, vol. 2020, No
-2696, p. 1-30. ISSN 1613-0073. <a
-href="http://ceur-ws.org/Vol-2696/paper_235.pdf"
-class="uri">http://ceur-ws.org/Vol-2696/paper_235.pdf</a></p>
-</blockquote>
+contain three diagrams.</p>
<dl>
<dt><code><strong>witiko/graphicx/http</strong></code></dt>
<dd>
@@ -8354,7 +8387,7 @@ class="header-section-number">2.2.3.2</span> Themes</h4>
<p>In <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>, we expand
on the concept of <a href="#themes">themes</a> by allowing a theme to be
a full-blown <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>
-package. Specifically, the key-values <code>theme</code>=⟨<em>theme
+package. Specifically, the key–values <code>theme</code>=⟨<em>theme
name</em>⟩ and <code>import</code>=⟨<em>theme name</em>⟩ load a <span
class="latex">L<sup>a</sup>T<sub>e</sub>X</span> package named
<code>markdowntheme</code>⟨<em>munged theme name</em>⟩<code>.sty</code>
@@ -8405,7 +8438,7 @@ class="header-section-number">2.2.4.1</span> Themes</h4>
<p>In Con<span class="tex">T<sub>e</sub>X</span>t, we expand on the
concept of <a href="#themes">themes</a> by allowing a theme to be a
full-blown Con<span class="tex">T<sub>e</sub>X</span>t module.
-Specifically, the key-values <code>theme</code>=⟨<em>theme name</em>⟩
+Specifically, the key–values <code>theme</code>=⟨<em>theme name</em>⟩
and <code>import</code>=⟨<em>theme name</em>⟩ load a Con<span
class="tex">T<sub>e</sub>X</span>t module named
<code>t-markdowntheme</code>⟨<em>munged theme
@@ -12670,10 +12703,10 @@ contain the following text:</p>
<h4 data-number="2.3.2.1" id="expl3yamlmetadata"><span
class="header-section-number">2.3.2.1</span> YAML Metadata Renderer
Prototypes</h4>
-<p>By default, the renderer prototypes for YAML metadata provide a
-high-level interface that can be programmed using the
-<code>markdown/jekyllData</code> key–values from the l3keys module of
-the <span class="latex">L<sup>a</sup>T<sub>e</sub>X</span>3 kernel.</p>
+<p>For simple <abbr>YAML</abbr> metadata, a simple high-level interface
+is provided that can be programmed by setting the expl3 key–values <span
+class="citation" data-cites="latex25">[@latex25]</span> for the module
+<code>markdown/jekyllData</code>.</p>
<h5 class="unnumbered" id="plain-tex-example-48">Plain <span
class="tex">T<sub>e</sub>X</span> Example</h5>
<p>Using a text editor, create a text document named
@@ -12775,6 +12808,67 @@ contain the following text:</p>
<blockquote>
<p>Jane Doe is 99 years old.</p>
</blockquote>
+<h5 class="unnumbered" id="latex-example-102"><span
+class="latex">L<sup>a</sup>T<sub>e</sub>X</span> Example</h5>
+<p>Using a text editor, create a text document named
+<code>document.tex</code> with the following content:</p>
+<div class="sourceCode" id="cb685"><pre
+class="sourceCode tex"><code class="sourceCode latex"><span id="cb685-1"><a href="#cb685-1" aria-hidden="true" tabindex="-1"></a><span class="bu">\documentclass</span>{<span class="ex">article</span>}</span>
+<span id="cb685-2"><a href="#cb685-2" aria-hidden="true" tabindex="-1"></a><span class="bu">\usepackage</span>{<span class="ex">markdown</span>}</span>
+<span id="cb685-3"><a href="#cb685-3" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span>
+<span id="cb685-4"><a href="#cb685-4" aria-hidden="true" tabindex="-1"></a><span class="fu">\str</span>_new:N <span class="fu">\g</span>_markdown_example_title_str</span>
+<span id="cb685-5"><a href="#cb685-5" aria-hidden="true" tabindex="-1"></a><span class="fu">\seq</span>_new:N <span class="fu">\g</span>_markdown_example_authors_seq</span>
+<span id="cb685-6"><a href="#cb685-6" aria-hidden="true" tabindex="-1"></a><span class="fu">\keys</span>_define:nn</span>
+<span id="cb685-7"><a href="#cb685-7" aria-hidden="true" tabindex="-1"></a> { markdown / example / module }</span>
+<span id="cb685-8"><a href="#cb685-8" aria-hidden="true" tabindex="-1"></a> { <span class="co">% Define a key--value that processes YAML metadata.</span></span>
+<span id="cb685-9"><a href="#cb685-9" aria-hidden="true" tabindex="-1"></a> title / programmaticString .str_gset:N = <span class="fu">\g</span>_markdown_example_title_str, <span class="co">% Store the raw title in a variable.</span></span>
+<span id="cb685-10"><a href="#cb685-10" aria-hidden="true" tabindex="-1"></a> title .code:n = { <span class="fu">\title</span> { #1 } }, <span class="co">% Set the title. This is the same as writing `title / typographicString`.</span></span>
+<span id="cb685-11"><a href="#cb685-11" aria-hidden="true" tabindex="-1"></a> authors / unknown .code:n = { <span class="co">% Store a variable-length list of authors in an array variable.</span></span>
+<span id="cb685-12"><a href="#cb685-12" aria-hidden="true" tabindex="-1"></a> <span class="fu">\seq</span>_put_right:Nn</span>
+<span id="cb685-13"><a href="#cb685-13" aria-hidden="true" tabindex="-1"></a> <span class="fu">\g</span>_markdown_example_authors_seq</span>
+<span id="cb685-14"><a href="#cb685-14" aria-hidden="true" tabindex="-1"></a> { #1 }</span>
+<span id="cb685-15"><a href="#cb685-15" aria-hidden="true" tabindex="-1"></a> },</span>
+<span id="cb685-16"><a href="#cb685-16" aria-hidden="true" tabindex="-1"></a> }</span>
+<span id="cb685-17"><a href="#cb685-17" aria-hidden="true" tabindex="-1"></a><span class="fu">\markdownSetupSnippet</span></span>
+<span id="cb685-18"><a href="#cb685-18" aria-hidden="true" tabindex="-1"></a> { metadata }</span>
+<span id="cb685-19"><a href="#cb685-19" aria-hidden="true" tabindex="-1"></a> { <span class="co">% Define a snippet that routes YAML metadata to the above key key–value.</span></span>
+<span id="cb685-20"><a href="#cb685-20" aria-hidden="true" tabindex="-1"></a> jekyllDataKeyValue = markdown / example / module,</span>
+<span id="cb685-21"><a href="#cb685-21" aria-hidden="true" tabindex="-1"></a> renderers = {</span>
+<span id="cb685-22"><a href="#cb685-22" aria-hidden="true" tabindex="-1"></a> jekyllDataEnd = { <span class="co">% At the end of the YAML metadata, ...</span></span>
+<span id="cb685-23"><a href="#cb685-23" aria-hidden="true" tabindex="-1"></a> <span class="fu">\clist</span>_set_from_seq:NN <span class="co">% ... set the list of authors and</span></span>
+<span id="cb685-24"><a href="#cb685-24" aria-hidden="true" tabindex="-1"></a> <span class="fu">\l</span>_tmpa_clist</span>
+<span id="cb685-25"><a href="#cb685-25" aria-hidden="true" tabindex="-1"></a> <span class="fu">\g</span>_markdown_example_authors_seq</span>
+<span id="cb685-26"><a href="#cb685-26" aria-hidden="true" tabindex="-1"></a> <span class="fu">\exp</span>_args:Nx</span>
+<span id="cb685-27"><a href="#cb685-27" aria-hidden="true" tabindex="-1"></a> <span class="fu">\author</span></span>
+<span id="cb685-28"><a href="#cb685-28" aria-hidden="true" tabindex="-1"></a> { <span class="fu">\clist</span>_use:Nn <span class="fu">\l</span>_tmpa_clist { ,~ } }</span>
+<span id="cb685-29"><a href="#cb685-29" aria-hidden="true" tabindex="-1"></a> <span class="fu">\AtBeginDocument</span> { <span class="fu">\maketitle</span> } <span class="co">% ... typeset the title page.</span></span>
+<span id="cb685-30"><a href="#cb685-30" aria-hidden="true" tabindex="-1"></a> },</span>
+<span id="cb685-31"><a href="#cb685-31" aria-hidden="true" tabindex="-1"></a> }</span>
+<span id="cb685-32"><a href="#cb685-32" aria-hidden="true" tabindex="-1"></a> }</span>
+<span id="cb685-33"><a href="#cb685-33" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span>
+<span id="cb685-34"><a href="#cb685-34" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">yaml</span>}[snippet=metadata]</span>
+<span id="cb685-35"><a href="#cb685-35" aria-hidden="true" tabindex="-1"></a>title: Some title that includes _markup_</span>
+<span id="cb685-36"><a href="#cb685-36" aria-hidden="true" tabindex="-1"></a>authors: [Jane Doe, John Moe]</span>
+<span id="cb685-37"><a href="#cb685-37" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">yaml</span>}</span>
+<span id="cb685-38"><a href="#cb685-38" aria-hidden="true" tabindex="-1"></a><span class="kw">\begin</span>{<span class="ex">document</span>}</span>
+<span id="cb685-39"><a href="#cb685-39" aria-hidden="true" tabindex="-1"></a>The raw title of the document is:</span>
+<span id="cb685-40"><a href="#cb685-40" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOn</span></span>
+<span id="cb685-41"><a href="#cb685-41" aria-hidden="true" tabindex="-1"></a><span class="fu">\str</span>_use:N <span class="fu">\g</span>_markdown_example_title_str</span>
+<span id="cb685-42"><a href="#cb685-42" aria-hidden="true" tabindex="-1"></a><span class="fu">\ExplSyntaxOff</span></span>
+<span id="cb685-43"><a href="#cb685-43" aria-hidden="true" tabindex="-1"></a><span class="kw">\end</span>{<span class="ex">document</span>}</span></code></pre></div>
+<p>Next, invoke LuaTeX from the terminal:</p>
+<div class="sourceCode" id="cb686"><pre
+class="sourceCode sh"><code class="sourceCode bash"><span id="cb686-1"><a href="#cb686-1" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> document.tex</span></code></pre></div>
+<p>A PDF document named <code>document.pdf</code> should be produced and
+contain the following text:</p>
+<blockquote>
+<h3 id="some-title-that-includes-markup">Some title that includes
+<em>markup</em></h3>
+<h5 id="jane-doe-john-moe">Jane Doe, John Moe</h5>
+<h5 id="current-date"><em>⟨Current date⟩</em></h5>
+<p>The raw title of the document is: Some title that includes
+_markup_</p>
+</blockquote>
<section id="footnotes" class="footnotes footnotes-end-of-document"
role="doc-endnotes">
<hr />
diff --git a/Master/texmf-dist/doc/generic/markdown/markdown.pdf b/Master/texmf-dist/doc/generic/markdown/markdown.pdf
index 2dffbddaebd..e2c439b0ce5 100644
--- a/Master/texmf-dist/doc/generic/markdown/markdown.pdf
+++ b/Master/texmf-dist/doc/generic/markdown/markdown.pdf
Binary files differ
diff --git a/Master/texmf-dist/scripts/markdown/markdown-cli.lua b/Master/texmf-dist/scripts/markdown/markdown-cli.lua
index ee079726afd..d45924ca693 100644
--- a/Master/texmf-dist/scripts/markdown/markdown-cli.lua
+++ b/Master/texmf-dist/scripts/markdown/markdown-cli.lua
@@ -21,7 +21,7 @@
-- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--
--- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
--
-- This work may be distributed and/or modified under the
-- conditions of the LaTeX Project Public License, either version 1.3
@@ -59,7 +59,7 @@
-- those in the standard .ins files.
--
local metadata = {
- version = "3.9.1-0-g92254dfb",
+ version = "3.10.0-0-g626df6ad",
comment = "A module for the conversion from markdown "
.. "to plain TeX",
author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, "
@@ -150,7 +150,7 @@ Report bugs to: witiko@mail.muni.cz
Markdown package home page: <https://github.com/witiko/markdown>]]
local VERSION_STRING = [[
-markdown-cli.lua (Markdown) ]] .. metadata.version .. [[
+markdown-cli (Markdown) ]] .. metadata.version .. [[
Copyright (C) ]] .. table.concat(metadata.copyright,
"\nCopyright (C) ") .. [[
diff --git a/Master/texmf-dist/scripts/markdown/markdown2tex.lua b/Master/texmf-dist/scripts/markdown/markdown2tex.lua
new file mode 100755
index 00000000000..d45924ca693
--- /dev/null
+++ b/Master/texmf-dist/scripts/markdown/markdown2tex.lua
@@ -0,0 +1,288 @@
+#!/usr/bin/env texlua
+--
+-- Copyright (C) 2009-2016 John MacFarlane, Hans Hagen
+--
+-- Permission is hereby granted, free of charge, to any person obtaining
+-- a copy of this software and associated documentation files (the
+-- "Software"), to deal in the Software without restriction, including
+-- without limitation the rights to use, copy, modify, merge, publish,
+-- distribute, sublicense, and/or sell copies of the Software, and to
+-- permit persons to whom the Software is furnished to do so, subject to
+-- the following conditions:
+--
+-- The above copyright notice and this permission notice shall be
+-- included in all copies or substantial portions of the Software.
+--
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+-- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+-- MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND NONINFRINGEMENT.
+-- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+-- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+-- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+-- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+--
+-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
+--
+-- This work may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License, either version 1.3
+-- of this license or (at your option) any later version.
+-- The latest version of this license is in
+--
+-- http://www.latex-project.org/lppl.txt
+--
+-- and version 1.3 or later is part of all distributions of LaTeX
+-- version 2005/12/01 or later.
+--
+-- This work has the LPPL maintenance status `maintained'.
+-- The Current Maintainer of this work is Vít Starý Novotný.
+--
+-- Send bug reports, requests for additions and questions
+-- either to the GitHub issue tracker at
+--
+-- https://github.com/witiko/markdown/issues
+--
+-- or to the e-mail address <witiko@mail.muni.cz>.
+--
+-- MODIFICATION ADVICE:
+--
+-- If you want to customize this file, it is best to make a copy of
+-- the source file(s) from which it was produced. Use a different
+-- name for your copy(ies) and modify the copy(ies); this will ensure
+-- that your modifications do not get overwritten when you install a
+-- new release of the standard system. You should also ensure that
+-- your modified source file does not generate any modified file with
+-- the same name as a standard file.
+--
+-- You will also need to produce your own, suitably named, .ins file to
+-- control the generation of files from your source file; this file
+-- should contain your own preambles for the files it generates, not
+-- those in the standard .ins files.
+--
+local metadata = {
+ version = "3.10.0-0-g626df6ad",
+ comment = "A module for the conversion from markdown "
+ .. "to plain TeX",
+ author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, "
+ .. "Andrej Genčur",
+ copyright = {"2009-2016 John MacFarlane, Hans Hagen",
+ "2016-2024 Vít Starý Novotný, Andrej Genčur"},
+ license = "LPPL 1.3c"
+}
+
+local defaultOptions = {}
+defaultOptions.eagerCache = true
+defaultOptions.experimental = false
+defaultOptions.singletonCache = true
+defaultOptions.unicodeNormalization = true
+defaultOptions.unicodeNormalizationForm = "nfc"
+defaultOptions.cacheDir = "."
+defaultOptions.contentBlocksLanguageMap = "markdown-languages.json"
+defaultOptions.debugExtensionsFileName = "debug-extensions.json"
+defaultOptions.frozenCacheFileName = "frozenCache.tex"
+defaultOptions.autoIdentifiers = false
+defaultOptions.blankBeforeBlockquote = false
+defaultOptions.blankBeforeCodeFence = false
+defaultOptions.blankBeforeDivFence = false
+defaultOptions.blankBeforeHeading = false
+defaultOptions.blankBeforeList = false
+defaultOptions.bracketedSpans = false
+defaultOptions.breakableBlockquotes = true
+defaultOptions.citationNbsps = true
+defaultOptions.citations = false
+defaultOptions.codeSpans = true
+defaultOptions.contentBlocks = false
+defaultOptions.contentLevel = "block"
+defaultOptions.debugExtensions = false
+defaultOptions.definitionLists = false
+defaultOptions.ensureJekyllData = false
+defaultOptions.expectJekyllData = false
+defaultOptions.extensions = {}
+defaultOptions.fancyLists = false
+defaultOptions.fencedCode = true
+defaultOptions.fencedCodeAttributes = false
+defaultOptions.fencedDivs = false
+defaultOptions.finalizeCache = false
+defaultOptions.frozenCacheCounter = 0
+defaultOptions.gfmAutoIdentifiers = false
+defaultOptions.hashEnumerators = false
+defaultOptions.headerAttributes = false
+defaultOptions.html = true
+defaultOptions.hybrid = false
+defaultOptions.inlineCodeAttributes = false
+defaultOptions.inlineNotes = false
+defaultOptions.jekyllData = false
+defaultOptions.linkAttributes = false
+defaultOptions.lineBlocks = false
+defaultOptions.mark = false
+defaultOptions.notes = false
+defaultOptions.pipeTables = false
+defaultOptions.preserveTabs = true
+defaultOptions.rawAttribute = false
+defaultOptions.relativeReferences = false
+defaultOptions.shiftHeadings = 0
+defaultOptions.slice = "^ $"
+defaultOptions.smartEllipses = false
+defaultOptions.startNumber = true
+defaultOptions.strikeThrough = false
+defaultOptions.stripIndent = false
+defaultOptions.subscripts = false
+defaultOptions.superscripts = false
+defaultOptions.tableAttributes = false
+defaultOptions.tableCaptions = false
+defaultOptions.taskLists = false
+defaultOptions.texComments = false
+defaultOptions.texMathDollars = false
+defaultOptions.texMathDoubleBackslash = false
+defaultOptions.texMathSingleBackslash = false
+defaultOptions.tightLists = true
+defaultOptions.underscores = true
+
+local HELP_STRING = [[
+Usage: texlua ]] .. arg[0] .. [[ [OPTIONS] -- [INPUT_FILE] [OUTPUT_FILE]
+where OPTIONS are documented in the Lua interface section of the
+technical Markdown package documentation.
+
+When OUTPUT_FILE is unspecified, the result of the conversion will be
+written to the standard output. When INPUT_FILE is also unspecified, the
+result of the conversion will be read from the standard input.
+
+Report bugs to: witiko@mail.muni.cz
+Markdown package home page: <https://github.com/witiko/markdown>]]
+
+local VERSION_STRING = [[
+markdown-cli (Markdown) ]] .. metadata.version .. [[
+
+Copyright (C) ]] .. table.concat(metadata.copyright,
+ "\nCopyright (C) ") .. [[
+
+License: ]] .. metadata.license
+
+local function warn(s)
+ io.stderr:write("Warning: " .. s .. "\n")
+end
+
+local function error(s)
+ io.stderr:write("Error: " .. s .. "\n")
+ os.exit(1)
+end
+local function camel_case(option_name)
+ local cased_option_name = option_name:gsub("_(%l)", function(match)
+ return match:sub(2, 2):upper()
+ end)
+ return cased_option_name
+end
+
+local function snake_case(option_name)
+ local cased_option_name = option_name:gsub("%l%u", function(match)
+ return match:sub(1, 1) .. "_" .. match:sub(2, 2):lower()
+ end)
+ return cased_option_name
+end
+
+local cases = {camel_case, snake_case}
+local various_case_options = {}
+for option_name, _ in pairs(defaultOptions) do
+ for _, case in ipairs(cases) do
+ various_case_options[case(option_name)] = option_name
+ end
+end
+
+local process_options = true
+local options = {}
+local input_filename
+local output_filename
+for i = 1, #arg do
+ if process_options then
+ if arg[i] == "--" then
+ process_options = false
+ goto continue
+ elseif arg[i]:match("=") then
+ local key, value = arg[i]:match("(.-)=(.*)")
+ if defaultOptions[key] == nil and
+ various_case_options[key] ~= nil then
+ key = various_case_options[key]
+ end
+ local default_type = type(defaultOptions[key])
+ if default_type == "boolean" then
+ options[key] = (value == "true")
+ elseif default_type == "number" then
+ options[key] = tonumber(value)
+ elseif default_type == "table" then
+ options[key] = {}
+ for item in value:gmatch("[^ ,]+") do
+ table.insert(options[key], item)
+ end
+ else
+ if default_type ~= "string" then
+ if default_type == "nil" then
+ warn('Option "' .. key .. '" not recognized.')
+ else
+ warn('Option "' .. key .. '" type not recognized, ' ..
+ 'please file a report to the package maintainer.')
+ end
+ warn('Parsing the ' .. 'value "' .. value ..'" of option "' ..
+ key .. '" as a string.')
+ end
+ options[key] = value
+ end
+ goto continue
+ elseif arg[i] == "--help" or arg[i] == "-h" then
+ print(HELP_STRING)
+ os.exit()
+ elseif arg[i] == "--version" or arg[i] == "-v" then
+ print(VERSION_STRING)
+ os.exit()
+ end
+ end
+ if input_filename == nil then
+ input_filename = arg[i]
+ elseif output_filename == nil then
+ output_filename = arg[i]
+ else
+ error('Unexpected argument: "' .. arg[i] .. '".')
+ end
+ ::continue::
+end
+
+local input
+if input_filename then
+ local input_file = assert(io.open(input_filename, "r"),
+ [[Could not open file "]] .. input_filename .. [[" for reading]])
+ input = assert(input_file:read("*a"))
+ assert(input_file:close())
+else
+ input = assert(io.read("*a"))
+end
+
+local lfs = require("lfs")
+if options.cacheDir and not lfs.isdir(options.cacheDir) then
+ assert(lfs.mkdir(options["cacheDir"]))
+end
+local kpse
+(function()
+ local should_initialize = package.loaded.kpse == nil
+ or tex.initialize ~= nil
+ kpse = require("kpse")
+ if should_initialize then
+ kpse.set_program_name("luatex")
+ end
+end)()
+local md = require("markdown")
+if metadata.version ~= md.metadata.version then
+ warn("markdown-cli.lua " .. metadata.version .. " used with " ..
+ "markdown.lua " .. md.metadata.version .. ".")
+end
+local convert = md.new(options)
+local output = convert(input)
+
+if output_filename then
+ local output_file = assert(io.open(output_filename, "w"),
+ [[Could not open file "]] .. output_filename .. [[" for writing]])
+ assert(output_file:write(output))
+ assert(output_file:close())
+else
+ assert(io.write(output))
+end
+if options.cacheDir then
+ lfs.rmdir(options.cacheDir)
+end
diff --git a/Master/texmf-dist/source/generic/markdown/docstrip.cfg b/Master/texmf-dist/source/generic/markdown/docstrip.cfg
index 44429e7b974..c655e6a06dc 100644
--- a/Master/texmf-dist/source/generic/markdown/docstrip.cfg
+++ b/Master/texmf-dist/source/generic/markdown/docstrip.cfg
@@ -22,7 +22,7 @@
-- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE^^J%
-- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.^^J%
--^^J%
--- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur^^J%
+-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur^^J%
--^^J%
-- This work may be distributed and/or modified under the^^J%
-- conditions of the LaTeX Project Public License, either version 1.3^^J%
@@ -62,7 +62,7 @@
\let\luapostamble\empty
\declarepreamble\texpreamble
-Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3c
diff --git a/Master/texmf-dist/source/generic/markdown/markdown.dtx b/Master/texmf-dist/source/generic/markdown/markdown.dtx
index 0b00b28b3a7..e13c91809f4 100644
--- a/Master/texmf-dist/source/generic/markdown/markdown.dtx
+++ b/Master/texmf-dist/source/generic/markdown/markdown.dtx
@@ -84,13 +84,14 @@
hybrid,
inlineNotes,
jekyllData,
+ linkAttributes,
relativeReferences,
stripPercentSigns,
underscores = false,
]{markdown}
\markdownSetup{
import = {
- witiko/diagrams@v1,
+ witiko/diagrams@v2,
witiko/graphicx/http,
witiko/markdown/techdoc = {
options as lua-options
@@ -688,6 +689,14 @@ abbr {
url = {https://tex.stackexchange.com/q/716362/70941},
urldate = {2024-04-28},
}
+@online{starynovotny25,
+ author = {Starý Novotný, Vít},
+ title = {Routing YAML metadata to expl3 key–values},
+ titleaddon = {Markdown Enhancement Proposal},
+ url = {https://github.com/witiko/markdown/discussions/517},
+ date = {2024-10-14},
+ urldate = {2025-01-06},
+}
@book{tantau21,
author = {Till Tantau and Joseph Wright and Vedran Miletić},
title = {The Beamer class},
@@ -809,6 +818,13 @@ abbr {
date = {2024-06-01},
url = {https://mirrors.ctan.org/macros/latex/required/latex-lab/documentmetadata-support-code.pdf},
urldate = {2024-10-21}}
+@online{latex25,
+ author = {{\LaTeX{} Project}},
+ title = {l3kernel},
+ subtitle = {\LaTeX3 programming conventions},
+ date = {2024-12-25},
+ url = {https://ctan.org/pkg/l3kernel},
+ urldate = {2025-01-06}}
%</techdoc-bibliography>
%<@@=markdown>
%<*themes-witiko-markdown-techdoc>
@@ -831,36 +847,47 @@ abbr {
},
},
}
-\yamlSetup{
- jekyllDataRenderers = {
- /authors/* = {%
- \expandafter\gdef
- \expandafter\ltd@title@author
- \expandafter{\ltd@title@author, #1}%
+\ExplSyntaxOn
+\keys_define:nn
+ { markdown / techdoc }
+ {
+ authors / unknown .code:n = {
+ \tl_gput_right:Nn
+ \ltd@title@author
+ { ,~#1 }
},
- title = {%
- \gdef\ltd@title@title{#1}%
- \gdef\ltd@title@subtitle{}%
- \hypersetup{pdftitle={#1}}%
+ title .code:n = {
+ \tl_gset:Nn
+ \ltd@title@title
+ { #1 }
+ \tl_gset:Nn
+ \ltd@title@subtitle
+ { }
+ \hypersetup
+ { pdftitle = { #1 } }
},
- date = {\gdef\ltd@title@date{#1}},
- email = {\gdef\ltd@title@email{#1}},
- revision = {\gdef\ltd@title@revision{#1}},
- url = {\gdef\ltd@title@url{#1}},
+ date .tl_gset:N = \ltd@title@date,
+ email .tl_gset:N = \ltd@title@email,
+ revision .tl_gset:N = \ltd@title@revision,
+ url .tl_gset:N = \ltd@title@url,
}
-}
-\ExplSyntaxOn
-\markdownSetup{
- rendererPrototypes = {
- headerAttributeContextEnd = {
- \seq_map_inline:Nn
- \g_@@_header_identifiers_seq
- { \label { sec:##1 } }
- \seq_gclear:N
- \g_@@_header_identifiers_seq
+\cs_generate_variant:Nn
+ \cs_gset:Npn
+ { NpV }
+\yamlSetup
+ { jekyllDataKeyValue = markdown / techdoc }
+\markdownSetup
+ {
+ rendererPrototypes = {
+ headerAttributeContextEnd = {
+ \seq_map_inline:Nn
+ \g_@@_header_identifiers_seq
+ { \label { sec:##1 } }
+ \seq_gclear:N
+ \g_@@_header_identifiers_seq
+ },
},
- },
-}
+ }
\ExplSyntaxOff
\renewcommand\markdownLaTeXRendererDirectOrIndirectLink[4]{%
#1\footnote{See \url{#3}.}}
@@ -1013,7 +1040,7 @@ make base
Either of the two abovelisted approaches should produce the following files:
* `markdown.lua`, `markdown-parser.lua`, and `markdown-unicode-data.lua`: The Lua module
-* `markdown-cli.lua`: The Lua command-line interface
+* `markdown-cli.lua` and `markdown2tex.lua`: The Lua command-line interface
* `markdown.tex`: The plain \TeX{} macro package
* `markdown.sty`: The \LaTeX{} package
* `markdownthemewitiko_markdown_defaults.tex`,
@@ -1032,6 +1059,7 @@ placed:
* `⟨TEXMF⟩/tex/luatex/markdown/markdown-parser.lua`
* `⟨TEXMF⟩/tex/luatex/markdown/markdown-unicode-data.lua`
* `⟨TEXMF⟩/scripts/markdown/markdown-cli.lua`
+* `⟨TEXMF⟩/scripts/markdown/markdown2tex.lua`
* `⟨TEXMF⟩/tex/generic/markdown/markdown.tex`
* `⟨TEXMF⟩/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex`
* `⟨TEXMF⟩/tex/latex/markdown/markdown.sty`
@@ -1056,6 +1084,7 @@ This is where the individual files should be placed:
* `./markdown-parser.lua`
* `./markdown-unicode-data.lua`
* `./markdown-cli.lua`
+* `./markdown2tex.lua`
* `./markdown/markdown.tex`
* `./markdown.sty`
* `./t-markdown.tex`
@@ -1220,8 +1249,8 @@ hard lua-tinyyaml
%
% \pkg{expl3}
%
-%: A package that enables the expl3 language from the \LaTeX3 kernel in
-% \TeX{} Live${}\leq{}2019$. It is used to implement reflection
+%: A package that enables the expl3 language [@latex25] from the \LaTeX3
+% kernel in \TeX{} Live${}\leq{}2019$. It is used to implement reflection
% capabilities that allow us to enumerate and inspect high-level concepts
% such as options, renderers, and renderer prototypes.
%
@@ -1347,7 +1376,7 @@ soft url
% \pkg{graphicx}
%
%: A package that provides the `\includegraphics` macro for the typesetting
-% of images. Furthermore, it also provides a key-value interface that is
+% of images. Furthermore, it also provides a key--value interface that is
% used in the default renderer prototypes for image attribute contexts.
%
% \end{markdown}
@@ -1628,14 +1657,14 @@ Hello *world*!
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli -- hello.md hello.tex
+markdown2tex -- hello.md hello.tex
luatex document.tex
``````
A PDF document named `document.pdf` should be produced and contain the text “Hello
*world*!” Invoking pdfTeX should have the same effect:
``` sh
-markdown-cli -- hello.md hello.tex
+markdown2tex -- hello.md hello.tex
pdftex document.tex
``````
@@ -2104,8 +2133,8 @@ $\sqrt{-1}$ *equals* $i$.
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli -- example.md nomath.tex
-markdown-cli tex_math_dollars=true -- example.md math.tex
+markdown2tex -- example.md nomath.tex
+markdown2tex tex_math_dollars=true -- example.md math.tex
luatex document.tex
``````
@@ -2120,8 +2149,8 @@ following text:
Invoking pdfTeX should have the same effect:
``` sh
-markdown-cli -- example.md nomath.tex
-markdown-cli tex_math_dollars=true -- example.md math.tex
+markdown2tex -- example.md nomath.tex
+markdown2tex tex_math_dollars=true -- example.md math.tex
pdftex document.tex
``````
@@ -2416,7 +2445,7 @@ interfaces and all the way up to the \LaTeX{} and \Hologo{ConTeXt} interfaces.
\l_tmpa_tl
\tl_set:Nx
#2
- { \the \cs:w \l_tmpa_tl \cs_end: }
+ { \the \cs:w \l_tmpa_tl \cs_end: } % noqa: W200
}
{
\@@_option_tl_to_csname:nN
@@ -2576,7 +2605,7 @@ Hello *world*!
Next, invoke LuaTeX from the terminal with the \Opt{eagerCache} option
disabled:
``` sh
-markdown-cli eagerCache=false -- hello.md hello.tex
+markdown2tex eagerCache=false -- hello.md hello.tex
```````
A \TeX{} document named `hello.tex` should be produced and contain the
@@ -2591,7 +2620,7 @@ Invoke LuaTeX from the terminal again, this time with the \Opt{eagerCache}
option enabled:
``` tex
-markdown-cli eagerCache=true -- hello.md hello.tex
+markdown2tex eagerCache=true -- hello.md hello.tex
```
A \TeX{} document named `hello.tex` should be produced and contain the
@@ -2944,7 +2973,7 @@ Hello *world*!
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli cacheDir=cache -- hello.md hello.tex
+markdown2tex cacheDir=cache -- hello.md hello.tex
luatex document.tex
```````
@@ -3318,7 +3347,7 @@ Hello *world*!
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli finalizeCache=true frozenCacheFileName=cache.tex -- hello.md hello.tex
+markdown2tex finalizeCache=true frozenCacheFileName=cache.tex -- hello.md hello.tex
luatex document.tex
```````
@@ -3623,8 +3652,8 @@ A paragraph.
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli -- content.md optionfalse.tex
-markdown-cli blankBeforeBlockquote=true -- content.md optiontrue.tex
+markdown2tex -- content.md optionfalse.tex
+markdown2tex blankBeforeBlockquote=true -- content.md optiontrue.tex
luatex document.tex
```````
@@ -3852,8 +3881,8 @@ A code fence?
```````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli fencedCode=true -- content.md optionfalse.tex
-markdown-cli fencedCode=true blankBeforeCodeFence=true -- content.md optiontrue.tex
+markdown2tex fencedCode=true -- content.md optionfalse.tex
+markdown2tex fencedCode=true blankBeforeCodeFence=true -- content.md optiontrue.tex
luatex document.tex
```````
@@ -4180,8 +4209,8 @@ A heading?
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli -- content.md optionfalse.tex
-markdown-cli blankBeforeHeading=true -- content.md optiontrue.tex
+markdown2tex -- content.md optionfalse.tex
+markdown2tex blankBeforeHeading=true -- content.md optiontrue.tex
luatex document.tex
```````
@@ -4410,8 +4439,8 @@ A paragraph.
```````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli -- content.md optionfalse.tex
-markdown-cli blankBeforeList=true -- content.md optiontrue.tex
+markdown2tex -- content.md optionfalse.tex
+markdown2tex blankBeforeList=true -- content.md optiontrue.tex
luatex document.tex
```````
@@ -4725,8 +4754,8 @@ following content:
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli breakableBlockquotes=false -- content.md optionfalse.tex
-markdown-cli -- content.md optiontrue.tex
+markdown2tex breakableBlockquotes=false -- content.md optionfalse.tex
+markdown2tex -- content.md optiontrue.tex
luatex document.tex
```````
@@ -5156,8 +5185,8 @@ following content:
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli codeSpans=false -- content.md optionfalse.tex
-markdown-cli -- content.md optiontrue.tex
+markdown2tex codeSpans=false -- content.md optionfalse.tex
+markdown2tex -- content.md optiontrue.tex
luatex document.tex
```````
@@ -7203,8 +7232,8 @@ _Is there <? HTML instruction ?> support?_
````````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli html=false -- content.md optionfalse.tex
-markdown-cli -- content.md optiontrue.tex
+markdown2tex html=false -- content.md optionfalse.tex
+markdown2tex -- content.md optiontrue.tex
luatex document.tex
```````
@@ -7511,8 +7540,8 @@ $\sqrt{-1}$ *equals* $i$.
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli -- content.md optionfalse.tex
-markdown-cli hybrid=true -- content.md optiontrue.tex
+markdown2tex -- content.md optionfalse.tex
+markdown2tex hybrid=true -- content.md optiontrue.tex
luatex document.tex
```````
@@ -9230,8 +9259,8 @@ Are these just three regular dots, a victorian ellipsis, or ... ?
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli -- content.md optionfalse.tex
-markdown-cli smartEllipses=true -- content.md optiontrue.tex
+markdown2tex -- content.md optionfalse.tex
+markdown2tex smartEllipses=true -- content.md optiontrue.tex
luatex document.tex
```````
@@ -10474,8 +10503,8 @@ $$\hat{f} \left ( \xi \right )= \int_{-\infty}^{\infty} f\left ( x \right ) e^
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli -- content.md optionfalse.tex
-markdown-cli texMathDollars=true -- content.md optiontrue.tex
+markdown2tex -- content.md optionfalse.tex
+markdown2tex texMathDollars=true -- content.md optiontrue.tex
luatex document.tex
```````
@@ -10679,8 +10708,8 @@ following content:
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli -- content.md optionfalse.tex
-markdown-cli texMathDoubleBackslash=true -- content.md optiontrue.tex
+markdown2tex -- content.md optionfalse.tex
+markdown2tex texMathDoubleBackslash=true -- content.md optiontrue.tex
luatex document.tex
```````
@@ -10884,8 +10913,8 @@ following content:
``````
Next, invoke LuaTeX from the terminal:
``` sh
-markdown-cli -- content.md optionfalse.tex
-markdown-cli texMathSingleBackslash=true -- content.md optiontrue.tex
+markdown2tex -- content.md optionfalse.tex
+markdown2tex texMathSingleBackslash=true -- content.md optiontrue.tex
luatex document.tex
```````
@@ -11340,7 +11369,7 @@ Report bugs to: witiko@mail.muni.cz
Markdown package home page: <https://github.com/witiko/markdown>]]
local VERSION_STRING = [[
-markdown-cli.lua (Markdown) ]] .. metadata.version .. [[
+markdown-cli (Markdown) ]] .. metadata.version .. [[
Copyright (C) ]] .. table.concat(metadata.copyright,
"\nCopyright (C) ") .. [[
@@ -11981,7 +12010,9 @@ you would include the following code in your plain \TeX{} document:
Option~#1~has~type~#2,~
but~a~boolean~was~expected.
}
-\let\markdownIfOption=\@@_if_option:nTF
+\let
+ \markdownIfOption
+ \@@_if_option:nTF
% \end{macrocode}
% \begin{markdown}
%
@@ -12312,16 +12343,16 @@ A PDF document named `document.pdf` should be produced and contain the text
%#### Generating Plain \TeX{} Option Macros and Key-Values
%
% We define the command \mdef{@@_define_option_commands_and_keyvals:} that
-% defines plain \TeX{} macros and the key-value interface
+% defines plain \TeX{} macros and the key--value interface
% of the \mref{markdownSetup} macro for the above plain \TeX{} options.
%
-% The command also defines macros and key-values that map
+% The command also defines macros and key--values that map
% directly to the options recognized by the Lua interface, such as
% \mdef{markdownOptionHybrid} for the \Opt{hybrid} Lua option (see Section
% <#sec:lua-options>), which are not processed by the plain \TeX{}
% implementation, only passed along to Lua.
%
-% Furthermore, the command also defines options and key-values
+% Furthermore, the command also defines options and key--values
% for subsequently loaded layers that correspond to higher-level \TeX{} formats
% such as \LaTeX{} and \Hologo{ConTeXt}.
%
@@ -12618,7 +12649,7 @@ A PDF document named `document.pdf` should be produced and contain the text
\l_tmpa_tl
\clist_set:NV
\l_tmpa_clist
- { \l_tmpa_tl, { ##1 } }
+ { \l_tmpa_tl , { ##1 } }
\@@_set_option_value:nV
{ #2 }
\l_tmpa_clist
@@ -12653,7 +12684,7 @@ A PDF document named `document.pdf` should be produced and contain the text
%
% If plain \TeX{} is the top layer, we use the
% \mref{@@_define_option_commands_and_keyvals:} macro to define plain \TeX{}
-% option macros and key-values immediately. Otherwise, we
+% option macros and key--values immediately. Otherwise, we
% postpone the definition until the upper layers have been loaded.
%
% \end{markdown}
@@ -12681,7 +12712,7 @@ User-defined themes for the Markdown package provide a domain-specific
interpretation of Markdown tokens. Themes allow the authors to achieve
a specific look and other high-level goals without low-level programming.
-% The key-values `theme`=\meta{theme name} and `import`=\meta{theme name},
+% The key--values `theme`=\meta{theme name} and `import`=\meta{theme name},
% optionally followed by `@`\meta{theme version}, load a \TeX{} document
% (further referred to as *a theme*) named `markdowntheme`\meta{munged theme
% name}`.tex`, where the *munged theme name* is the *theme name* after the
@@ -12951,21 +12982,22 @@ a specific look and other high-level goals without low-level programming.
Built-in plain \TeX{} themes provided with the Markdown package include:
-\pkg{witiko/diagrams@v1}
+\pkg{witiko/diagrams}
+
+: A theme that typesets fenced code blocks with the infostrings
+ `dot`, `mermaid`, and `plantuml` as figures with diagrams produced with
+ the command `dot` from Graphviz tools, the command `mmdc` from the npm
+ package `@mermaid-js/mermaid-cli`, and the command `plantuml` from the
+ package PlantUML, respectively. The key-value attribute `caption` can be
+ used to specify the caption of the figure. The remaining attributes are
+ treated as image attributes.
-: A theme that typesets fenced code blocks with the `dot …` infostring
- as images of directed graphs rendered by the Graphviz tools. The
- right tail of the infostring is used as the image title.
% ```` tex
% \documentclass{article}
-% \usepackage[import=witiko/diagrams@v1]{markdown}
-% \setkeys{Gin}{
-% width = \columnwidth,
-% height = 0.65\paperheight,
-% keepaspectratio}
+% \usepackage[import=witiko/diagrams@v2, relativeReferences]{markdown}
% \begin{document}
% \begin{markdown}
-% ``` dot Various formats of mathemathical formulae
+% ``` dot {caption="An example directed graph" width=12cm #dot}
% digraph tree {
% margin = 0;
% rankdir = "LR";
@@ -12989,12 +13021,54 @@ Built-in plain \TeX{} themes provided with the Markdown package include:
% mterms [label = "M-Terms"];
% }
% ```
+%
+% ``` mermaid {caption="An example mindmap" width=9cm #mermaid}
+% mindmap
+% root )base-idea(
+% sub<br/>idea 1
+% ((?))
+% sub<br/>idea 2
+% ((?))
+% sub<br/>idea 3
+% ((?))
+% sub<br/>idea 4
+% ((?))
+% ```
+%
+% ``` plantuml {caption="An example UML sequence diagram" width=7cm #plantuml}
+% @startuml
+% ' Define participants (actors)
+% participant "Client" as C
+% participant "Server" as S
+% participant "Database" as DB
+%
+% ' Diagram title
+% title Simple Request-Response Flow
+%
+% ' Messages
+% C -> S: Send Request
+% note over S: Process request
+%
+% alt Request is valid
+% S -> DB: Query Data
+% DB -> S: Return Data
+% S -> C: Respond with Data
+% else Request is invalid
+% S -> C: Return Error
+% end
+% @enduml
+% ```
+%
+% See the diagrams in figures <#dot>, <#mermaid>, and <#plantuml>.
% \end{markdown}
% \end{document}
% ````````
+%
% Typesetting the above document produces the output shown in
-% Figure <#fig:witiko/diagrams@v1>.
-% ``` dot Various formats of mathemathical formulae \label{fig:witiko/diagrams@v1}
+% figures <#fig:witiko-diagrams-dot>, <#fig:witiko-diagrams-mermaid>, and
+% <#fig:witiko-diagrams-plantuml>.
+%
+% ``` dot {caption="An example directed graph" #fig:witiko-diagrams-dot}
% digraph tree {
% margin = 0;
% rankdir = "LR";
@@ -13018,15 +13092,50 @@ Built-in plain \TeX{} themes provided with the Markdown package include:
% mterms [label = "M-Terms"];
% }
% ```
- The theme requires a Unix-like operating system with GNU Diffutils and
- Graphviz installed. The theme also requires shell access unless the
- \Opt{frozenCache} plain \TeX{} option is enabled.
+%
+% ``` mermaid {caption="An example mindmap" #fig:witiko-diagrams-mermaid}
+% mindmap
+% root )base-idea(
+% sub<br/>idea 1
+% ((?))
+% sub<br/>idea 2
+% ((?))
+% sub<br/>idea 3
+% ((?))
+% sub<br/>idea 4
+% ((?))
+% ```
+%
+% ``` plantuml {caption="An example UML sequence diagram" #fig:witiko-diagrams-plantuml}
+% @startuml
+% ' Define participants (actors)
+% participant "Client" as C
+% participant "Server" as S
+% participant "Database" as DB
+%
+% ' Diagram title
+% title Simple Request-Response Flow
+%
+% ' Messages
+% C -> S: Send Request
+% note over S: Process request
+%
+% alt Request is valid
+% S -> DB: Query Data
+% DB -> S: Return Data
+% S -> C: Respond with Data
+% else Request is invalid
+% S -> C: Return Error
+% end
+% @enduml
+% ```
- The above example loads version `v1` of the theme, which is an alias for
- an earlier theme named `witiko/dot`. Future versions of the theme may have
- backwards-incompatible syntax and behavior. Therefore, you are encouraged
- to always specify the version `v1` to keep your documents from suddenly
- breaking.
+ The theme requires a Unix-like operating system with GNU Diffutils,
+ Graphviz, the npm package `@mermaid-js/mermaid-cli`, and PlantUML
+ installed. All these packages are already included in the Docker image
+ `witiko/markdown`; consult `Dockerfile` to see how they are installed.
+ The theme also requires shell access unless the \Opt{frozenCache} plain
+ \TeX{} option is enabled.
% \markdownEnd
% \iffalse
@@ -13037,14 +13146,10 @@ Using a text editor, create a text document named `document.tex` with the
following content:
```` tex
\documentclass{article}
-\usepackage[import=witiko/diagrams@v1]{markdown}
-\setkeys{Gin}{
- width=\columnwidth,
- height=0.65\paperheight,
- keepaspectratio}
+\usepackage[import=witiko/diagrams@v2, relativeReferences]{markdown}
\begin{document}
\begin{markdown}
-``` dot Various formats of mathemathical formulae
+``` dot {caption="An example directed graph" width=12cm #dot}
digraph tree {
margin = 0;
rankdir = "LR";
@@ -13068,6 +13173,45 @@ digraph tree {
mterms [label = "M-Terms"];
}
```
+
+``` mermaid {caption="An example mindmap" width=9cm #mermaid}
+mindmap
+ root )base-idea(
+ sub<br/>idea 1
+ ((?))
+ sub<br/>idea 2
+ ((?))
+ sub<br/>idea 3
+ ((?))
+ sub<br/>idea 4
+ ((?))
+```
+
+``` plantuml {caption="An example UML sequence diagram" width=7cm #plantuml}
+@startuml
+' Define participants (actors)
+participant "Client" as C
+participant "Server" as S
+participant "Database" as DB
+
+' Diagram title
+title Simple Request-Response Flow
+
+' Messages
+C -> S: Send Request
+note over S: Process request
+
+alt Request is valid
+ S -> DB: Query Data
+ DB -> S: Return Data
+ S -> C: Respond with Data
+else Request is invalid
+ S -> C: Return Error
+end
+@enduml
+```
+
+See the diagrams in figures <#dot>, <#mermaid>, and <#plantuml>.
\end{markdown}
\end{document}
````````
@@ -13076,14 +13220,7 @@ Next, invoke LuaTeX from the terminal:
lualatex --shell-escape document.tex
``````
A PDF document named `document.pdf` should be produced and contain
-a drawing of a directed graph similar to Figure 1 from the following
-conference article:
-
-> NOVOTNÝ, Vít, Petr SOJKA, Michal ŠTEFÁNIK and Dávid LUPTÁK. Three is Better
-> than One: Ensembling Math Information Retrieval Systems. *CEUR Workshop
-> Proceedings*. Thessaloniki, Greece: M. Jeusfeld c/o Redaktion Sun SITE,
-> Informatik V, RWTH Aachen., 2020, vol. 2020, No 2696, p. 1-30. ISSN 1613-0073.
-> <http://ceur-ws.org/Vol-2696/paper_235.pdf>
+three diagrams.
% \fi
% \markdownBegin
@@ -13103,9 +13240,9 @@ conference article:
% \end{document}
% ```````
% Typesetting the above document produces the output shown in
-% Figure <#fig:witiko/graphicx/http>.
+% Figure <#fig:witiko-graphicx-http>.
% ![img](https://github.com/witiko/markdown/raw/main/markdown.png
-% "The banner of the Markdown package \label{fig:witiko/graphicx/http}")
+% "The banner of the Markdown package"){#fig:witiko-graphicx-http}
The theme requires the \pkg{catchfile} \LaTeX{} package and a Unix-like
operating system with GNU Coreutils `md5sum` and either GNU Wget or cURL
installed. The theme also requires shell access unless the
@@ -21190,7 +21327,7 @@ following text:
% We define the command \mdef{@@_define_renderers:} that defines plain \TeX{}
% macros for token renderers. Furthermore, the `\markdownSetup` macro also accepts
% the `renderers` and `unprotectedRenderers` keys. The value for these keys
-% must be a list of key-values, where the keys correspond to the markdown token
+% must be a list of key--values, where the keys correspond to the markdown token
% renderer macros and the values are new definitions of these token renderers.
%
% Whereas the key `renderers` defines protected functions, which are usually
@@ -21615,7 +21752,7 @@ following text:
% \begin{markdown}
%
% If plain \TeX{} is the top layer, we use the \mref{@@_define_renderers:}
-% macro to define plain \TeX{} token renderer macros and key-values
+% macro to define plain \TeX{} token renderer macros and key--values
% immediately. Otherwise, we postpone the definition until the upper layers
% have been loaded.
%
@@ -21751,9 +21888,9 @@ following text:
#### YAML Metadata Renderer Prototypes {#expl3yamlmetadata}
-By default, the renderer prototypes for YAML metadata provide a high-level
-interface that can be programmed using the `markdown/jekyllData` key--values
-from the l3keys module of the \LaTeX{}3 kernel.
+For simple \acro{YAML} metadata, a simple high-level interface is provided
+that can be programmed by setting the expl3 key--values [@latex25] for the
+module `markdown/jekyllData`.
% \end{markdown}
% \iffalse
@@ -21877,8 +22014,9 @@ following text:
% \end{macrocode}
% \begin{markdown}
%
-% The `jekyllDataRenderers` key can be used as a syntactic sugar for setting
-% the `markdown/jekyllData` key--values without using the expl3 language.
+% The option `jekyllDataRenderers`=\meta{key--values} can be used to set the
+% \meta{key--values} for the module `markdown/jekyllData` without using the
+% expl3 syntax.
%
% \end{markdown}
% \begin{macrocode}
@@ -21942,12 +22080,90 @@ following text:
% \end{macrocode}
% \begin{markdown}
%
+% For complex \acro{YAML} metadata, the option `jekyllDataKeyValue`=\meta{module}
+% [@starynovotny25] can be used to route the processing of all \acro{YAML}
+% metadata in the current \TeX{} group to the key--values from \meta{module}.
+%
+% \end{markdown}
+% \iffalse
+%</tex>
+%<*manual-tokens>
+
+##### \LaTeX{} Example {.unnumbered}
+
+Using a text editor, create a text document named `document.tex` with the
+following content:
+``` tex
+\documentclass{article}
+\usepackage{markdown}
+\ExplSyntaxOn
+\str_new:N \g_markdown_example_title_str
+\seq_new:N \g_markdown_example_authors_seq
+\keys_define:nn
+ { markdown / example / module }
+ { % Define a key--value that processes YAML metadata.
+ title / programmaticString .str_gset:N = \g_markdown_example_title_str, % Store the raw title in a variable.
+ title .code:n = { \title { #1 } }, % Set the title. This is the same as writing `title / typographicString`.
+ authors / unknown .code:n = { % Store a variable-length list of authors in an array variable.
+ \seq_put_right:Nn
+ \g_markdown_example_authors_seq
+ { #1 }
+ },
+ }
+\markdownSetupSnippet
+ { metadata }
+ { % Define a snippet that routes YAML metadata to the above key key–value.
+ jekyllDataKeyValue = markdown / example / module,
+ renderers = {
+ jekyllDataEnd = { % At the end of the YAML metadata, ...
+ \clist_set_from_seq:NN % ... set the list of authors and
+ \l_tmpa_clist
+ \g_markdown_example_authors_seq
+ \exp_args:Nx
+ \author
+ { \clist_use:Nn \l_tmpa_clist { ,~ } }
+ \AtBeginDocument { \maketitle } % ... typeset the title page.
+ },
+ }
+ }
+\ExplSyntaxOff
+% Process the YAML metadata.
+\begin{yaml}[snippet=metadata]
+title: Some title that includes _markup_
+authors: [Jane Doe, John Moe]
+\end{yaml}
+\begin{document}
+The raw title of the document is:
+\ExplSyntaxOn
+\str_use:N \g_markdown_example_title_str
+\ExplSyntaxOff
+\end{document}
+```````
+Next, invoke LuaTeX from the terminal:
+``` sh
+lualatex document.tex
+``````
+A PDF document named `document.pdf` should be produced and contain the
+following text:
+
+> ### Some title that includes _markup_
+> ##### Jane Doe, John Moe
+> ##### _⟨Current date⟩_
+>
+> The raw title of the document is:
+> Some title that includes \_markup\_
+
+%</manual-tokens>
+%<*tex>
+% \fi
+% \begin{markdown}
+%
%#### Generating Plain \TeX{} Token Renderer Prototype Macros and Key-Values {#plain-tex-renderer-prototypes}
%
% We define the command \mdef{@@_define_renderer_prototypes:} that defines plain \TeX{}
% macros for token renderer prototypes. Furthermore, the `\markdownSetup` macro also accepts
% the `rendererPrototypes` and `unprotectedRendererPrototypes` keys. The value
-% for these keys must be a list of key-values, where the keys correspond to the
+% for these keys must be a list of key--values, where the keys correspond to the
% markdown token renderer prototype macros and the values are new definitions
% of these token renderer prototypes.
%
@@ -22269,7 +22485,7 @@ following text:
% \begin{markdown}
%
% If plain \TeX{} is the top layer, we use the \mref{@@_define_renderer_prototypes:}
-% macro to define plain \TeX{} token renderer prototype macros and key-values
+% macro to define plain \TeX{} token renderer prototype macros and key--values
% immediately. Otherwise, we postpone the definition until the upper layers
% have been loaded.
%
@@ -22838,7 +23054,7 @@ document:
% If \LaTeX{} is the top layer, we use the
% \mref{@@_define_option_commands_and_keyvals:}, \mref{@@_define_renderers:},
% and \mref{@@_define_renderer_prototypes:} macro to define plain \TeX{}
-% option, token renderer, and token renderer prototype macros and key-values
+% option, token renderer, and token renderer prototype macros and key--values
% immediately. Otherwise, we postpone the definition until the upper layers
% have been loaded.
%
@@ -22886,7 +23102,7 @@ In \LaTeX{}, we expand on the concept of
[themes](#themes)
% \fi
by allowing a theme to be a full-blown \LaTeX{} package. Specifically, the
-key-values `theme`=\meta{theme name} and `import`=\meta{theme name} load a
+key--values `theme`=\meta{theme name} and `import`=\meta{theme name} load a
\LaTeX{} package named `markdowntheme`\meta{munged theme name}`.sty` if it
exists and a \TeX{} document named `markdowntheme`\meta{munged theme
name}`.tex` otherwise.
@@ -22991,7 +23207,8 @@ Built-in \LaTeX{} themes provided with the Markdown package include:
\c_@@_top_layer_tl
\c_@@_option_layer_latex_tl
{
- \ExplSyntaxOff
+ \use:c
+ { ExplSyntaxOff }
\AtEndOfPackage
{
\@@_if_option:nF
@@ -23009,7 +23226,8 @@ Built-in \LaTeX{} themes provided with the Markdown package include:
}
}
}
- \ExplSyntaxOn
+ \use:c
+ { ExplSyntaxOn }
}
\ExplSyntaxOff
% \end{macrocode}
@@ -23335,7 +23553,7 @@ following text:
% If \Hologo{ConTeXt} is the top layer, we use the
% \mref{@@_define_option_commands_and_keyvals:}, \mref{@@_define_renderers:},
% and \mref{@@_define_renderer_prototypes:} macro to define plain \TeX{}
-% option, token renderer, and token renderer prototype macros and key-values
+% option, token renderer, and token renderer prototype macros and key--values
% immediately. Otherwise, we postpone the definition until the upper layers
% have been loaded.
%
@@ -23368,7 +23586,7 @@ In \Hologo{ConTeXt}, we expand on the concept of
[themes](#themes)
% \fi
by allowing a theme to be a full-blown \Hologo{ConTeXt} module. Specifically,
-the key-values `theme`=\meta{theme name} and `import`=\meta{theme name} load a
+the key--values `theme`=\meta{theme name} and `import`=\meta{theme name} load a
\Hologo{ConTeXt} module named `t-markdowntheme`\meta{munged theme name}`.tex`
if it exists and a \TeX{} document named `markdowntheme`\meta{munged theme
name}`.tex` otherwise.
@@ -27423,7 +27641,7 @@ parsers.ascii_punctuation = S("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~")
end
print("M.punctuation = {}")
- print("local S = lpeg.S")
+ print("local P = lpeg.P")
print("-- luacheck: push no max line length")
for length, prefix_tree in pairs(prefix_trees) do
local subparsers = {}
@@ -27431,9 +27649,9 @@ parsers.ascii_punctuation = S("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~")
if type(node) == "string" then
local suffix
if node == "]" then
- suffix = "S('" .. node .. "')"
+ suffix = "P('" .. node .. "')"
else
- suffix = "S([[" .. node .. "]])"
+ suffix = "P([[" .. node .. "]])"
end
if subparsers[path] ~= nil then
subparsers[path] = subparsers[path] .. " + " .. suffix
@@ -27445,20 +27663,23 @@ parsers.ascii_punctuation = S("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~")
if #path > 0 then
local byte = path:sub(#path, #path)
local parent_path = path:sub(1, #path-1)
- if subparsers[path] ~= nil then
- local suffix
- if byte == "]" then
- suffix = "S('" .. byte .. "')"
- else
- suffix = "S([[" .. byte .. "]])"
- end
- suffix = suffix .. " * (" .. subparsers[path] .. ")"
- if subparsers[parent_path] ~= nil then
- subparsers[parent_path] = subparsers[parent_path]
- .. " + " .. suffix
- else
- subparsers[parent_path] = suffix
- end
+ local prefix
+ if byte == "]" then
+ prefix = "P('" .. byte .. "')"
+ else
+ prefix = "P([[" .. byte .. "]])"
+ end
+ local suffix
+ if subparsers[path]:find(" %+ ") then
+ suffix = prefix .. " * (" .. subparsers[path] .. ")"
+ else
+ suffix = prefix .. " * " .. subparsers[path]
+ end
+ if subparsers[parent_path] ~= nil then
+ subparsers[parent_path] = subparsers[parent_path]
+ .. " + " .. suffix
+ else
+ subparsers[parent_path] = suffix
end
else
print("M.punctuation[" .. length .. "] = " .. subparsers[path])
@@ -33589,9 +33810,13 @@ M.extensions.notes = function(notes, inline_notes)
* parsers.spnlc * indented_blocks(chunk)
/ register_note
- local Reference = NoteBlock + parsers.Reference
+ self.update_rule("Reference", function(previous_pattern)
+ if previous_pattern == nil then
+ previous_pattern = parsers.Reference
+ end
+ return NoteBlock + previous_pattern
+ end)
- self.update_rule("Reference", Reference)
self.insert_pattern("Inline before LinkAndEmph",
NoteRef, "NoteRef")
end
@@ -35059,7 +35284,7 @@ end
\prop_gput:Nnx
\g_@@_plain_tex_loaded_themes_linenos_prop
{ #1 }
- { \tex_the:D \tex_inputlineno:D }
+ { \tex_the:D \tex_inputlineno:D } % noqa: W200
\prop_gput:Nnn
\g_@@_plain_tex_loaded_themes_versions_prop
{ #1 }
@@ -35228,7 +35453,7 @@ end
%
% \end{markdown}
% \begin{macrocode}
- \markdownSetup{fencedCode}
+ \markdownSetup { fencedCode }
% \end{macrocode}
% \begin{markdown}
%
@@ -35317,7 +35542,8 @@ end
% \end{macrocode}
% \begin{markdown}
%
-% The `witiko/diagrams` loads the theme `witiko/dot`.
+% The theme `witiko/diagrams` loads either the theme `witiko/dot` for version
+% `v1` or the theme `witiko/diagrams/v2` for version `v2`.
%
% \end{markdown}
% \begin{macrocode}
@@ -35332,7 +35558,7 @@ end
{
\markdownWarning
{
- Write~"witiko/diagrams@v1"~to~pin~version~"v1"~of~the~
+ Write~"witiko/diagrams@v2"~to~pin~version~"v2"~of~the~
theme~"witiko/diagrams".~This~will~keep~your~documents~
from~suddenly~breaking~when~we~have~released~future~
versions~of~the~theme~with~backwards-incompatible~
@@ -35340,7 +35566,14 @@ end
}
\markdownSetup
{
- import = witiko/dot@silent,
+ import = witiko/diagrams/v2,
+ }
+ }
+ { v2 }
+ {
+ \markdownSetup
+ {
+ import = witiko/diagrams/v2,
}
}
{ v1 }
@@ -35371,6 +35604,260 @@ end
% \end{macrocode}
% \begin{markdown}
%
+% Next, we implement the theme `witiko/diagrams/v2`.
+%
+% \end{markdown}
+% \begin{macrocode}
+\prop_gput:Nnn
+ \g_@@_plain_tex_built_in_themes_prop
+ { witiko / diagrams / v2 }
+ {
+% \end{macrocode}
+% \begin{markdown}
+%
+% We enable the \Opt{fencedCode} and \Opt{fencedCodeAttributes} Lua
+% option.
+%
+% \end{markdown}
+% \begin{macrocode}
+ \@@_setup:n
+ {
+ fencedCode = true,
+ fencedCodeAttributes = true,
+ }
+% \end{macrocode}
+% \begin{markdown}
+%
+% Store the previous fenced code token renderer prototype.
+%
+% \end{markdown}
+% \begin{macrocode}
+ \cs_set_eq:NN
+ \@@_diagrams_previous_fenced_code:nnn
+ \markdownRendererInputFencedCodePrototype
+% \end{macrocode}
+% \begin{markdown}
+%
+% Store the caption of the diagram.
+%
+% \end{markdown}
+% \begin{macrocode}
+ \tl_new:N
+ \l_@@_diagrams_caption_tl
+ \@@_setup:n
+ {
+ rendererPrototypes = {
+% \end{macrocode}
+% \begin{markdown}
+%
+% Route attributes on fenced code blocks to the image attribute renderer
+% prototypes.
+%
+% \end{markdown}
+% \begin{macrocode}
+ fencedCodeAttributeContextBegin = {
+ \group_begin:
+ \markdownRendererImageAttributeContextBegin
+ \cs_set_eq:NN
+ \@@_diagrams_previous_key_value:nn
+ \markdownRendererAttributeKeyValuePrototype
+ \@@_setup:n
+ {
+ rendererPrototypes = {
+ attributeKeyValue = {
+ \str_if_eq:nnTF
+ { ##1 }
+ { caption }
+ {
+ \tl_set:Nn
+ \l_@@_diagrams_caption_tl
+ { ##2 }
+ }
+ {
+ \@@_diagrams_previous_key_value:nn
+ { ##1 }
+ { ##2 }
+ }
+ },
+ },
+ }
+ },
+ fencedCodeAttributeContextEnd = {
+ \markdownRendererImageAttributeContextEnd
+ \group_end:
+ },
+ },
+ }
+ \cs_new:Nn
+ \@@_diagrams_render_diagram:nnnn
+ {
+ \@@_if_option:nF
+ { frozenCache }
+ {
+ \sys_shell_now:n
+ {
+ if~!~test~-e~#2.source~
+ ||~!~diff~#1~#2.source;
+ then~
+ (#3);
+ cp~#1~#2.source;
+ fi
+ }
+ \exp_args:NNnV
+ \exp_last_unbraced:No
+ \markdownRendererImage
+ {
+ { #4 }
+ { #2 }
+ { #2 }
+ }
+ \l_@@_diagrams_caption_tl
+ }
+ }
+% \end{macrocode}
+% \begin{markdown}
+%
+% Use the prop \mdef{g_markdown_diagrams_infostrings_prop} to determine how the
+% code with a given infostring should be processed and routed to the token
+% renderer prototype(s) for images.
+%
+% \end{markdown}
+% \begin{macrocode}
+ \prop_new:N
+ \g_markdown_diagrams_infostrings_prop
+% \end{macrocode}
+% \begin{markdown}
+%
+% If we know a processing function for a given infostring, use it.
+%
+% \end{markdown}
+% \begin{macrocode}
+ \@@_setup:n
+ {
+ rendererPrototypes = {
+ inputFencedCode = {
+ \prop_get:NnNTF
+ \g_markdown_diagrams_infostrings_prop
+ { #2 }
+ \l_tmpa_tl
+ {
+ \cs_set:NV
+ \@@_diagrams_infostrings_current:n
+ \l_tmpa_tl
+ \@@_diagrams_infostrings_current:n
+ { #1 }
+ }
+% \end{macrocode}
+% \begin{markdown}
+%
+% Otherwise, use the previous fenced code token renderer prototype.
+%
+% \end{markdown}
+% \begin{macrocode}
+ {
+ \@@_diagrams_previous_fenced_code:nnn
+ { #1 }
+ { #2 }
+ { #3 }
+ }
+ },
+ },
+ }
+ \cs_generate_variant:Nn
+ \cs_set:Nn
+ { NV }
+% \end{macrocode}
+% \begin{markdown}
+%
+% Typeset fenced code with infostring `dot` using the command `dot` from
+% the package Graphviz.
+%
+% \end{markdown}
+% \begin{macrocode}
+ \cs_set:Nn
+ \@@_diagrams_infostrings_current:n
+ {
+ \@@_diagrams_render_diagram:nnnn
+ { #1 }
+ { #1.pdf }
+ { dot~-Tpdf~-o~#1.pdf~#1 }
+ { Graphviz~image }
+ }
+ \@@_tl_set_from_cs:NNn
+ \l_tmpa_tl
+ \@@_diagrams_infostrings_current:n
+ { 1 }
+ \prop_gput:NnV
+ \g_markdown_diagrams_infostrings_prop
+ { dot }
+ \l_tmpa_tl
+% \end{macrocode}
+% \begin{markdown}
+%
+% Typeset fenced code with infostring `mermaid` using the command `mmdc` from
+% the npm package `@mermaid-js/mermaid-cli`.
+%
+% \end{markdown}
+% \begin{macrocode}
+ \cs_set:Nn
+ \@@_diagrams_infostrings_current:n
+ {
+ \@@_diagrams_render_diagram:nnnn
+ { #1 }
+ { #1.pdf }
+ { mmdc~--pdfFit~-i~#1~-o~#1.pdf }
+ { Mermaid~image }
+ }
+ \@@_tl_set_from_cs:NNn
+ \l_tmpa_tl
+ \@@_diagrams_infostrings_current:n
+ { 1 }
+ \prop_gput:NnV
+ \g_markdown_diagrams_infostrings_prop
+ { mermaid }
+ \l_tmpa_tl
+% \end{macrocode}
+% \begin{markdown}
+%
+% Typeset fenced code with infostring `plantuml` using the command `plantuml`
+% from the package PlantUML.
+%
+% \end{markdown}
+% \begin{macrocode}
+ \regex_const:Nn
+ \c_@@_diagrams_filename_suffix_regex
+ { \.[^.]*$ }
+ \cs_set:Nn
+ \@@_diagrams_infostrings_current:n
+ {
+ \tl_set:Nn
+ \l_tmpa_tl
+ { #1 }
+ \regex_replace_once:NnN
+ \c_@@_diagrams_filename_suffix_regex
+ { .pdf }
+ \l_tmpa_tl
+ \@@_diagrams_render_diagram:nVnn
+ { #1 }
+ \l_tmpa_tl
+ { plantuml~-tpdf~#1 }
+ { PlantUML~image }
+ }
+ \cs_generate_variant:Nn
+ \@@_diagrams_render_diagram:nnnn
+ { nVnn }
+ \@@_tl_set_from_cs:NNn
+ \l_tmpa_tl
+ \@@_diagrams_infostrings_current:n
+ { 1 }
+ \prop_gput:NnV
+ \g_markdown_diagrams_infostrings_prop
+ { plantuml }
+ \l_tmpa_tl
+ }
+% \end{macrocode}
+% \begin{markdown}
+%
% We locally change the category code of percent signs, so that we
% can use them in the shell code:
%
@@ -35796,7 +36283,10 @@ end
% \end{macrocode}
% \begin{markdown}
%
-%#### YAML Metadata Renderer Prototypes
+%#### Simple YAML Metadata Renderer Prototypes
+% In this section, we implement the simple high-level interface for processing
+% simple \acro{YAML} metadata using the key--value `markdown/jekyllData`. See
+% also Section <#sec:expl3yamlmetadata>.
%
% To keep track of the current type of structure we inhabit when we are
% traversing a \acro{yaml} document, we will maintain the
@@ -35831,12 +36321,12 @@ end
% To keep track of our current place when we are traversing a \acro{yaml}
% document, we will maintain the
% \mdef{g_\@\@_jekyll_data_wildcard_absolute_address_seq} stack of keys using
-% the \mdef{markdown_jekyll_data_push_address_segment:n} macro.
+% the \mdef{\@\@_jekyll_data_push_address_segment:n} macro.
%
% \end{markdown}
% \begin{macrocode}
\seq_new:N \g_@@_jekyll_data_wildcard_absolute_address_seq
-\cs_new:Nn \markdown_jekyll_data_push_address_segment:n
+\cs_new:Nn \@@_jekyll_data_push_address_segment:n
{
\seq_if_empty:NF
\g_@@_jekyll_data_datatypes_seq
@@ -35901,23 +36391,23 @@ end
% ```
%
% We will construct \mref{g_\@\@_jekyll_data_wildcard_absolute_address_tl}
-% using the \mdef{markdown_jekyll_data_concatenate_address:NN} macro and
+% using the \mdef{\@\@_jekyll_data_concatenate_address:NN} macro and
% we will construct both token lists using the
-% \mdef{markdown_jekyll_data_update_address_tls:} macro.
+% \mdef{\@\@_jekyll_data_update_address_tls:} macro.
%
% \end{markdown}
% \begin{macrocode}
\tl_new:N \g_@@_jekyll_data_wildcard_absolute_address_tl
\tl_new:N \g_@@_jekyll_data_wildcard_relative_address_tl
-\cs_new:Nn \markdown_jekyll_data_concatenate_address:NN
+\cs_new:Nn \@@_jekyll_data_concatenate_address:NN
{
\seq_pop_left:NN #1 \l_tmpa_tl
\tl_set:Nx #2 { / \seq_use:Nn #1 { / } }
\seq_put_left:NV #1 \l_tmpa_tl
}
-\cs_new:Nn \markdown_jekyll_data_update_address_tls:
+\cs_new:Nn \@@_jekyll_data_update_address_tls:
{
- \markdown_jekyll_data_concatenate_address:NN
+ \@@_jekyll_data_concatenate_address:NN
\g_@@_jekyll_data_wildcard_absolute_address_seq
\g_@@_jekyll_data_wildcard_absolute_address_tl
\seq_get_right:NN
@@ -35928,21 +36418,21 @@ end
% \begin{markdown}
%
% To make sure that the stacks and token lists stay in sync, we will use the
-% \mdef{markdown_jekyll_data_push:nN} and \mdef{markdown_jekyll_data_pop:}
+% \mdef{\@\@_jekyll_data_push:nN} and \mdef{\@\@_jekyll_data_pop:}
% macros.
%
% \end{markdown}
% \begin{macrocode}
-\cs_new:Nn \markdown_jekyll_data_push:nN
+\cs_new:Nn \@@_jekyll_data_push:nN
{
- \markdown_jekyll_data_push_address_segment:n
+ \@@_jekyll_data_push_address_segment:n
{ #1 }
\seq_put_right:NV
\g_@@_jekyll_data_datatypes_seq
#2
- \markdown_jekyll_data_update_address_tls:
+ \@@_jekyll_data_update_address_tls:
}
-\cs_new:Nn \markdown_jekyll_data_pop:
+\cs_new:Nn \@@_jekyll_data_pop:
{
\seq_pop_right:NN
\g_@@_jekyll_data_wildcard_absolute_address_seq
@@ -35950,39 +36440,39 @@ end
\seq_pop_right:NN
\g_@@_jekyll_data_datatypes_seq
\l_tmpa_tl
- \markdown_jekyll_data_update_address_tls:
+ \@@_jekyll_data_update_address_tls:
}
% \end{macrocode}
% \begin{markdown}
%
% To set a single key--value, we will use the
-% \mdef{markdown_jekyll_data_set_keyval:Nn} macro, ignoring unknown keys.
+% \mdef{\@\@_jekyll_data_set_keyval_known:nn} macro, ignoring unknown keys.
% To set key--values for both absolute and relative wildcards, we will use the
-% \mdef{markdown_jekyll_data_set_keyvals:nn} macro.
+% \mdef{\@\@_jekyll_data_set_keyvals_known:nn} macro.
%
% \end{markdown}
% \begin{macrocode}
-\cs_new:Nn \markdown_jekyll_data_set_keyval:nn
+\cs_new:Nn \@@_jekyll_data_set_keyval_known:nn
{
\keys_set_known:nn
{ markdown/jekyllData }
{ { #1 } = { #2 } }
}
\cs_generate_variant:Nn
- \markdown_jekyll_data_set_keyval:nn
+ \@@_jekyll_data_set_keyval_known:nn
{ Vn }
-\cs_new:Nn \markdown_jekyll_data_set_keyvals:nn
+\cs_new:Nn \@@_jekyll_data_set_keyvals_known:nn
{
- \markdown_jekyll_data_push:nN
+ \@@_jekyll_data_push:nN
{ #1 }
\c_@@_jekyll_data_scalar_tl
- \markdown_jekyll_data_set_keyval:Vn
+ \@@_jekyll_data_set_keyval_known:Vn
\g_@@_jekyll_data_wildcard_absolute_address_tl
{ #2 }
- \markdown_jekyll_data_set_keyval:Vn
+ \@@_jekyll_data_set_keyval_known:Vn
\g_@@_jekyll_data_wildcard_relative_address_tl
{ #2 }
- \markdown_jekyll_data_pop:
+ \@@_jekyll_data_pop:
}
% \end{macrocode}
% \begin{markdown}
@@ -35993,29 +36483,29 @@ end
% \end{markdown}
% \begin{macrocode}
\def\markdownRendererJekyllDataSequenceBeginPrototype#1#2{
- \markdown_jekyll_data_push:nN
+ \@@_jekyll_data_push:nN
{ #1 }
\c_@@_jekyll_data_sequence_tl
}
\def\markdownRendererJekyllDataMappingBeginPrototype#1#2{
- \markdown_jekyll_data_push:nN
+ \@@_jekyll_data_push:nN
{ #1 }
\c_@@_jekyll_data_mapping_tl
}
\def\markdownRendererJekyllDataSequenceEndPrototype{
- \markdown_jekyll_data_pop:
+ \@@_jekyll_data_pop:
}
\def\markdownRendererJekyllDataMappingEndPrototype{
- \markdown_jekyll_data_pop:
+ \@@_jekyll_data_pop:
}
\def\markdownRendererJekyllDataBooleanPrototype#1#2{
- \markdown_jekyll_data_set_keyvals:nn
+ \@@_jekyll_data_set_keyvals_known:nn
{ #1 }
{ #2 }
}
\def\markdownRendererJekyllDataEmptyPrototype#1{}
\def\markdownRendererJekyllDataNumberPrototype#1#2{
- \markdown_jekyll_data_set_keyvals:nn
+ \@@_jekyll_data_set_keyvals_known:nn
{ #1 }
{ #2 }
}
@@ -36029,12 +36519,302 @@ end
% \begin{macrocode}
\def\markdownRendererJekyllDataProgrammaticStringPrototype#1#2{}
\def\markdownRendererJekyllDataTypographicStringPrototype#1#2{
- \markdown_jekyll_data_set_keyvals:nn
+ \@@_jekyll_data_set_keyvals_known:nn
{ #1 }
{ #2 }
}
\ExplSyntaxOff
% \end{macrocode}
+% \begin{markdown}
+%
+%#### Complex YAML Metadata Renderer Prototypes
+% In this section, we implement the high-level interface for routing complex
+% \acro{YAML} metadata to expl3 key--values using the option
+% `jekyllDataKeyValue`=\meta{module}. See also Section <#sec:expl3yamlmetadata>.
+%
+% \end{markdown}
+% \begin{macrocode}
+\ExplSyntaxOn
+\@@_with_various_cases:nn
+ { jekyllDataKeyValue }
+ {
+ \keys_define:nn
+ { markdown/options }
+ {
+ #1 .code:n = {
+ \@@_route_jekyll_data_to_key_values:n
+ { ##1 }
+ },
+% \end{macrocode}
+% \begin{markdown}
+%
+% When no \meta{module} has been provided, assume that the \acro{YAML} metadata
+% specify absolute paths to key--values.
+%
+% \end{markdown}
+% \begin{macrocode}
+ #1 .default:n = { },
+ }
+ }
+\seq_new:N
+ \l_@@_jekyll_data_current_position_seq
+\tl_new:N
+ \l_@@_jekyll_data_current_position_tl
+\cs_new:Nn
+ \@@_route_jekyll_data_to_key_values:n
+ {
+ \markdownSetup
+ {
+ renderers = {
+ jekyllData(Sequence|Mapping)Begin = {
+ \bool_lazy_and:nnTF
+ {
+ \seq_if_empty_p:N
+ \l_@@_jekyll_data_current_position_seq
+ }
+ {
+ \str_if_eq_p:nn
+ { ##1 }
+ { null }
+ }
+ {
+ \tl_if_empty:nF
+ { #1 }
+ {
+ \seq_put_right:Nn
+ \l_@@_jekyll_data_current_position_seq
+ { #1 }
+ }
+ }
+ {
+ \seq_put_right:Nn
+ \l_@@_jekyll_data_current_position_seq
+ { ##1 }
+ }
+ },
+ jekyllData(Sequence|Mapping)End = {
+ \seq_pop_right:NN
+ \l_@@_jekyll_data_current_position_seq
+ \l_tmpa_tl
+ },
+% \end{macrocode}
+% \begin{markdown}
+%
+% For every \acro{YAML} key `path.to.`\meta{key} with a value of type
+% \meta{non-string type}, set the key \meta{non-string type} of the key–value
+% \meta{module}`/path/to/`\meta{key} if it is known and the key \meta{key} of
+% the key–value \meta{module}`/path/to` otherwise. \meta{Non-string type} is
+% one of `boolean`, `number`, and `empty`.
+%
+% \end{markdown}
+% \begin{macrocode}
+ jekyllDataBoolean = {
+ \tl_set:Nx
+ \l_@@_jekyll_data_current_position_tl
+ {
+ \seq_use:Nn
+ \l_@@_jekyll_data_current_position_seq
+ { / }
+ }
+ \keys_if_exist:VnTF
+ \l_@@_jekyll_data_current_position_tl
+ { ##1 / boolean }
+ {
+ \@@_keys_set:xn
+ {
+ \tl_use:N
+ \l_@@_jekyll_data_current_position_tl
+ / ##1 / boolean
+ }
+ { ##2 }
+ }
+ {
+ \@@_keys_set:xn
+ {
+ \tl_use:N
+ \l_@@_jekyll_data_current_position_tl
+ / ##1
+ }
+ { ##2 }
+ }
+ },
+ jekyllDataNumber = {
+ \tl_set:Nx
+ \l_@@_jekyll_data_current_position_tl
+ {
+ \seq_use:Nn
+ \l_@@_jekyll_data_current_position_seq
+ { / }
+ }
+ \keys_if_exist:VnTF
+ \l_@@_jekyll_data_current_position_tl
+ { ##1 / number }
+ {
+ \@@_keys_set:xn
+ {
+ \tl_use:N
+ \l_@@_jekyll_data_current_position_tl
+ / ##1 / number
+ }
+ { ##2 }
+ }
+ {
+ \@@_keys_set:xn
+ {
+ \tl_use:N
+ \l_@@_jekyll_data_current_position_tl
+ / ##1
+ }
+ { ##2 }
+ }
+ },
+% \end{macrocode}
+% \begin{markdown}
+%
+% For the \meta{non-string type} of `empty`, no value is passed to the
+% key–value. Therefore, a default value should always be defined for nullable
+% keys using the key property `.default:n`.
+%
+% \end{markdown}
+% \begin{macrocode}
+ jekyllDataEmpty = {
+ \tl_set:Nx
+ \l_@@_jekyll_data_current_position_tl
+ {
+ \seq_use:Nn
+ \l_@@_jekyll_data_current_position_seq
+ { / }
+ }
+ \keys_if_exist:VnTF
+ \l_@@_jekyll_data_current_position_tl
+ { ##1 / empty }
+ {
+ \keys_set:xn
+ {
+ \tl_use:N
+ \l_@@_jekyll_data_current_position_tl
+ / ##1
+ }
+ { empty }
+ }
+ {
+ \keys_set:Vn
+ \l_@@_jekyll_data_current_position_tl
+ { ##1 }
+ }
+ },
+% \end{macrocode}
+% \begin{markdown}
+%
+% For every \acro{YAML} key `path.to.`\meta{key} with a value of type `string`,
+% set the keys `typographicString` and `programmaticString` of the key–value
+% \meta{module}`/path/to/`\meta{key} if they are known with the typographic and
+% programmatic strings of the value, respectively. Furthermore, set the key
+% \meta{key} of the key–value \meta{module}`/path/to` with the typographic
+% string of the value unless the key `typographicString` is known. If the key
+% `programmaticString` is known, only set the key \meta{key} if it is known. In
+% contrast, if neither `typographicString` nor `programmaticString` are known,
+% set \meta{key} normally, i.e. regardless of whether it is known or unknown.
+%
+% \end{markdown}
+% \begin{macrocode}
+ jekyllDataTypographicString = {
+ \tl_set:Nx
+ \l_@@_jekyll_data_current_position_tl
+ {
+ \seq_use:Nn
+ \l_@@_jekyll_data_current_position_seq
+ { / }
+ }
+ \keys_if_exist:VnTF
+ \l_@@_jekyll_data_current_position_tl
+ { ##1 / typographicString }
+ {
+ \@@_keys_set:xn
+ {
+ \tl_use:N
+ \l_@@_jekyll_data_current_position_tl
+ / ##1 / typographicString
+ }
+ { ##2 }
+ }
+ {
+ \keys_if_exist:VnTF
+ \l_@@_jekyll_data_current_position_tl
+ { ##1 / programmaticString }
+ {
+ \@@_keys_set_known:xn
+ {
+ \tl_use:N
+ \l_@@_jekyll_data_current_position_tl
+ / ##1
+ }
+ { ##2 }
+ }
+ {
+ \@@_keys_set:xn
+ {
+ \tl_use:N
+ \l_@@_jekyll_data_current_position_tl
+ / ##1
+ }
+ { ##2 }
+ }
+ }
+ },
+ jekyllDataProgrammaticString = {
+ \tl_set:Nx
+ \l_@@_jekyll_data_current_position_tl
+ {
+ \seq_use:Nn
+ \l_@@_jekyll_data_current_position_seq
+ { / }
+ }
+ \keys_if_exist:VnT
+ \l_@@_jekyll_data_current_position_tl
+ { ##1 / programmaticString }
+ {
+ \@@_keys_set:xn
+ {
+ \tl_use:N
+ \l_@@_jekyll_data_current_position_tl
+ / ##1 / programmaticString
+ }
+ { ##2 }
+ }
+ },
+ },
+ }
+ }
+\cs_new:Nn
+ \@@_keys_set:nn
+ {
+ \keys_set:nn
+ { }
+ { { #1 } = { #2 } }
+ }
+\cs_new:Nn
+ \@@_keys_set_known:nn
+ {
+ \keys_set_known:nn
+ { }
+ { { #1 } = { #2 } }
+ }
+\cs_generate_variant:Nn
+ \@@_keys_set:nn
+ { xn }
+\cs_generate_variant:Nn
+ \@@_keys_set_known:nn
+ { xn }
+\cs_generate_variant:Nn
+ \keys_set:nn
+ { xn, Vn }
+\prg_generate_conditional_variant:Nnn
+ \keys_if_exist:nn
+ { Vn }
+ { T, TF }
+\ExplSyntaxOff
+% \end{macrocode}
% \iffalse
%</themes-witiko-markdown-defaults-tex>
%<*tex>
@@ -36053,7 +36833,8 @@ end
\c_@@_top_layer_tl
\c_@@_option_layer_plain_tex_tl
{
- \ExplSyntaxOff
+ \use:c
+ { ExplSyntaxOff }
\@@_if_option:nF
{ noDefaults }
{
@@ -36068,7 +36849,8 @@ end
{ theme = witiko/markdown/defaults }
}
}
- \ExplSyntaxOn
+ \use:c
+ { ExplSyntaxOn }
}
\ExplSyntaxOff
% \end{macrocode}
@@ -36174,8 +36956,16 @@ end
\cs_generate_variant:Nn
\clist_map_inline:nn
{ Vn }
-\let\markdownPrepareLuaOptions=\@@_format_lua_options:
-\def\markdownLuaOptions{{ \g_@@_formatted_lua_options_tl }}
+\let
+ \markdownPrepareLuaOptions
+ \@@_format_lua_options:
+\def
+ \markdownLuaOptions
+ {
+ {
+ \g_@@_formatted_lua_options_tl
+ }
+ }
\sys_if_engine_luatex:TF
{
\cs_new:Nn
@@ -37040,7 +37830,8 @@ end
{ yaml }
{
\group_begin:
- \yamlSetup{jekyllData, expectJekyllData, ensureJekyllData}%
+ \yamlSetup
+ { jekyllData, expectJekyllData, ensureJekyllData }
\markdown
}
{ \yamlEnd }
@@ -37199,7 +37990,7 @@ end
\prop_gput:Nnx
\g_@@_latex_loaded_themes_linenos_prop
{ #1 }
- { \tex_the:D \tex_inputlineno:D }
+ { \tex_the:D \tex_inputlineno:D } % noqa: W200
\prop_gput:Nnn
\g_@@_latex_loaded_themes_versions_prop
{ #1 }
@@ -37304,7 +38095,7 @@ end
\c_backslash_str
\tl_put_right:Nn
\l_tmpa_tl
- { begin{document} }
+ { begin { document } }
\tl_set:Nn
\l_tmpb_tl
{ Load~Markdown~theme~#1~before~ }
@@ -37313,7 +38104,7 @@ end
\c_backslash_str
\tl_put_right:Nn
\l_tmpb_tl
- { begin{document} }
+ { begin { document } }
\msg_new:nnVV
{ markdown }
{ latex-theme-after-preamble }
@@ -37564,8 +38355,8 @@ end
\l_@@_latex_fancy_list_item_label_number_style_tl
\tl_new:N
\l_@@_latex_fancy_list_item_label_delimiter_style_tl
-\@ifpackageloaded{enumitem}{
- \markdownSetup{rendererPrototypes={
+\@ifpackageloaded { enumitem } {
+ \markdownSetup { rendererPrototypes = {
% \end{macrocode}
% \begin{markdown}
%
@@ -37643,7 +38434,7 @@ end
{ #1 }
]
},
- }}
+ } }
% \end{macrocode}
% \begin{markdown}
%
@@ -37653,8 +38444,9 @@ end
%
% \end{markdown}
% \begin{macrocode}
-}{\@ifpackageloaded{paralist}{
- \markdownSetup{rendererPrototypes={
+}
+{ \@ifpackageloaded { paralist } {
+ \markdownSetup { rendererPrototypes = {
% \end{macrocode}
% \begin{markdown}
%
@@ -37663,14 +38455,14 @@ end
%
% \end{markdown}
% \begin{macrocode}
- ulBeginTight = {%
+ ulBeginTight = {
\group_begin:
\pltopsep=\topsep
\plpartopsep=\partopsep
- \begin{compactitem}
+ \begin { compactitem }
},
ulEndTight = {
- \end{compactitem}
+ \end { compactitem }
\group_end:
},
fancyOlBegin = {
@@ -37681,10 +38473,10 @@ end
\tl_set:Nn
\l_@@_latex_fancy_list_item_label_delimiter_style_tl
{ #2 }
- \begin{enumerate}
+ \begin { enumerate }
},
fancyOlEnd = {
- \end{enumerate}
+ \end { enumerate }
\group_end:
},
% \end{macrocode}
@@ -37695,14 +38487,14 @@ end
%
% \end{markdown}
% \begin{macrocode}
- olBeginTight = {%
+ olBeginTight = {
\group_begin:
\plpartopsep=\partopsep
\pltopsep=\topsep
- \begin{compactenum}
+ \begin { compactenum }
},
olEndTight = {
- \end{compactenum}
+ \end { compactenum }
\group_end:
},
fancyOlBeginTight = {
@@ -37715,10 +38507,10 @@ end
{ #2 }
\plpartopsep=\partopsep
\pltopsep=\topsep
- \begin{compactenum}
+ \begin { compactenum }
},
fancyOlEndTight = {
- \end{compactenum}
+ \end { compactenum }
\group_end:
},
fancyOlItemWithNumber = {
@@ -37742,14 +38534,15 @@ end
\group_begin:
\plpartopsep=\partopsep
\pltopsep=\topsep
- \begin{compactdesc}
+ \begin { compactdesc }
},
dlEndTight = {
- \end{compactdesc}
+ \end { compactdesc }
\group_end:
}
- }}
-}{
+ } }
+}
+{
% \end{macrocode}
% \begin{markdown}
%
@@ -37775,7 +38568,7 @@ end
dlEndTight = \markdownRendererDlEnd,
},
}
-}}
+} }
\ExplSyntaxOff
\RequirePackage{amsmath}
% \end{macrocode}
@@ -37855,14 +38648,14 @@ end
{
{ csv }
{
- \begin{table}
- \begin{center}
- \csvautotabular{#3}
- \end{center}
+ \begin { table }
+ \begin { center }
+ \csvautotabular { #3 }
+ \end{ center }
\tl_if_empty:nF
{ #4 }
- { \caption{#4} }
- \end{table}
+ { \caption { #4 } }
+ \end { table }
}
{ html }
{
@@ -38074,7 +38867,7 @@ end
% \begin{macrocode}
\ltx@ifpackageloaded
{ listings }
- { \lstinputlisting[language=\l_tmpa_tl]{#1} }
+ { \lstinputlisting [ language = \l_tmpa_tl ] { #1 } }
% \end{macrocode}
% \begin{markdown}
%
@@ -38083,7 +38876,7 @@ end
%
% \end{markdown}
% \begin{macrocode}
- { \markdownRendererInputFencedCode{#1}{}{} }
+ { \markdownRendererInputFencedCode { #1 } { } { } }
}
}
}
@@ -38096,7 +38889,7 @@ end
% \end{markdown}
% \begin{macrocode}
\ExplSyntaxOn
-\def\markdownLATEXStrongEmphasis#1{%
+\def\markdownLATEXStrongEmphasis#1{
\str_if_in:NnTF
\f@series
{ b }
@@ -38487,12 +39280,13 @@ end
}
{
\markdownLaTeXRendererAutolink { #2 } { #3 }
- }{
+ }
+ {
\markdownLaTeXRendererDirectOrIndirectLink
{ #1 } { #2 } { #3 } { #4 }
}
}
-\def\markdownLaTeXRendererAutolink#1#2{%
+\def\markdownLaTeXRendererAutolink#1#2{
% \end{macrocode}
% \begin{markdown}
% If the URL begins with a hash sign, then we assume that it is a relative
@@ -38527,7 +39321,8 @@ end
\exp_args:NV
\ref
\l_tmpb_tl
- }{
+ }
+ {
\url { #2 }
}
}
@@ -38712,12 +39507,19 @@ end
% \begin{macrocode}
\ExplSyntaxOn
\keys_define:nn
- { markdown/jekyllData }
+ { markdown / jekyllData }
{
- author .code:n = { \author{#1} },
- date .code:n = { \date{#1} },
- title .code:n = { \title{#1} },
- }
+ author .code:n = {
+ \author
+ { #1 }
+ },
+ date .code:n = {
+ \date
+ { #1 }
+ },
+ title .code:n = {
+ \title
+ { #1 }
% \end{macrocode}
% \begin{markdown}
%
@@ -38729,13 +39531,11 @@ end
%
% \end{markdown}
% \begin{macrocode}
-\markdownSetup{
- rendererPrototypes = {
- jekyllDataEnd = {
- \AddToHook{begindocument/end}{\maketitle}
+ \AddToHook
+ { begindocument / end }
+ { \maketitle }
},
- },
-}
+ }
% \end{macrocode}
% \begin{markdown}
%
@@ -38843,19 +39643,28 @@ end
\markdownSetup {
rendererPrototypes = {
image = {
- \begin { figure }
- \begin { center }
- \includegraphics
- [ alt = { #1 } ]
- { #3 }
- \tl_if_empty:nF
- { #4 }
- { \caption { #4 } }
- \seq_map_inline:Nn
- \l_@@_image_identifiers_seq
- { \label { ##1 } }
- \end { center }
- \end { figure }
+ \tl_if_empty:nTF
+ { #4 }
+ {
+ \begin { center }
+ \includegraphics
+ [ alt = { #1 } ]
+ { #3 }
+ \end { center }
+ }
+ {
+ \begin { figure }
+ \begin { center }
+ \includegraphics
+ [ alt = { #1 } ]
+ { #3 }
+ \caption { #4 }
+ \seq_map_inline:Nn
+ \l_@@_image_identifiers_seq
+ { \label { ##1 } }
+ \end { center }
+ \end { figure }
+ }
},
}
}
@@ -38863,31 +39672,31 @@ end
{ linkAttributes }
{
\RequirePackage { graphicx }
- \markdownSetup {
- rendererPrototypes = {
- imageAttributeContextBegin = {
- \group_begin:
- \markdownSetup {
- rendererPrototypes = {
- attributeIdentifier = {
- \seq_put_right:Nn
- \l_@@_image_identifiers_seq
- { ##1 }
- },
- attributeKeyValue = {
- \setkeys
- { Gin }
- { { ##1 } = { ##2 } }
- },
- },
- }
- },
- imageAttributeContextEnd = {
- \group_end:
- },
- },
- }
}
+\markdownSetup {
+ rendererPrototypes = {
+ imageAttributeContextBegin = {
+ \group_begin:
+ \markdownSetup {
+ rendererPrototypes = {
+ attributeIdentifier = {
+ \seq_put_right:Nn
+ \l_@@_image_identifiers_seq
+ { ##1 }
+ },
+ attributeKeyValue = {
+ \setkeys
+ { Gin }
+ { { ##1 } = { ##2 } }
+ },
+ },
+ }
+ },
+ imageAttributeContextEnd = {
+ \group_end:
+ },
+ },
+}
\ExplSyntaxOff
% \end{macrocode}
% \begin{markdown}
@@ -39258,7 +40067,7 @@ end
\prop_gput:Nnx
\g_@@_context_loaded_themes_linenos_prop
{ #1 }
- { \tex_the:D \tex_inputlineno:D }
+ { \tex_the:D \tex_inputlineno:D } % noqa: W200
\prop_gput:Nnn
\g_@@_context_loaded_themes_versions_prop
{ #1 }
@@ -39488,7 +40297,7 @@ end
\seq_pop_left:NN
\l_tmpa_seq
\l_tmpa_tl
- \typefile[\l_tmpa_tl][]{#1}
+ \typefile[ \l_tmpa_tl ][] {#1}
}
}
\ExplSyntaxOff
@@ -39661,7 +40470,8 @@ end
\c_@@_top_layer_tl
\c_@@_option_layer_context_tl
{
- \ExplSyntaxOff
+ \use:c
+ { ExplSyntaxOff }
\@@_if_option:nF
{ noDefaults }
{
@@ -39676,7 +40486,8 @@ end
{ theme = witiko/markdown/defaults }
}
}
- \ExplSyntaxOn
+ \use:c
+ { ExplSyntaxOn }
}
\ExplSyntaxOff
\stopmodule
diff --git a/Master/texmf-dist/source/generic/markdown/markdown.ins b/Master/texmf-dist/source/generic/markdown/markdown.ins
index 3402d668ebe..f1f3be84836 100644
--- a/Master/texmf-dist/source/generic/markdown/markdown.ins
+++ b/Master/texmf-dist/source/generic/markdown/markdown.ins
@@ -5,6 +5,7 @@
\file{markdown.lua}{\from{markdown.dtx}{lua-loader}}
\file{markdown-parser.lua}{\from{markdown.dtx}{lua}}
\file{markdown-cli.lua}{\from{markdown.dtx}{lua-cli}}
+ \file{markdown2tex.lua}{\from{markdown.dtx}{lua-cli}}
\file{markdown-unicode-data-generator.lua}{\from{markdown.dtx}{lua-unicode-data-generator}}
\file{markdown-unicode-data.lua}{\from{markdown.dtx}{lua-unicode-data}}
\usepreamble\texpreamble
diff --git a/Master/texmf-dist/tex/context/third/markdown/t-markdown.tex b/Master/texmf-dist/tex/context/third/markdown/t-markdown.tex
index e79c9773795..67ca8d8d5c6 100644
--- a/Master/texmf-dist/tex/context/third/markdown/t-markdown.tex
+++ b/Master/texmf-dist/tex/context/third/markdown/t-markdown.tex
@@ -6,7 +6,7 @@
%%
%% markdown.dtx (with options: `context')
%%
-%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -210,7 +210,7 @@
\prop_gput:Nnx
\g__markdown_context_loaded_themes_linenos_prop
{ #1 }
- { \tex_the:D \tex_inputlineno:D }
+ { \tex_the:D \tex_inputlineno:D } % noqa: W200
\prop_gput:Nnn
\g__markdown_context_loaded_themes_versions_prop
{ #1 }
@@ -273,7 +273,8 @@
\c__markdown_top_layer_tl
\c__markdown_option_layer_context_tl
{
- \ExplSyntaxOff
+ \use:c
+ { ExplSyntaxOff }
\__markdown_if_option:nF
{ noDefaults }
{
@@ -288,7 +289,8 @@
{ theme = witiko/markdown/defaults }
}
}
- \ExplSyntaxOn
+ \use:c
+ { ExplSyntaxOn }
}
\ExplSyntaxOff
\stopmodule
diff --git a/Master/texmf-dist/tex/context/third/markdown/t-markdownthemewitiko_markdown_defaults.tex b/Master/texmf-dist/tex/context/third/markdown/t-markdownthemewitiko_markdown_defaults.tex
index dde11e86ae3..6bad0deb7ba 100644
--- a/Master/texmf-dist/tex/context/third/markdown/t-markdownthemewitiko_markdown_defaults.tex
+++ b/Master/texmf-dist/tex/context/third/markdown/t-markdownthemewitiko_markdown_defaults.tex
@@ -6,7 +6,7 @@
%%
%% markdown.dtx (with options: `themes-witiko-markdown-defaults-ctx')
%%
-%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -143,7 +143,7 @@
\seq_pop_left:NN
\l_tmpa_seq
\l_tmpa_tl
- \typefile[\l_tmpa_tl][]{#1}
+ \typefile[ \l_tmpa_tl ][] {#1}
}
}
\ExplSyntaxOff
diff --git a/Master/texmf-dist/tex/generic/markdown/markdown.tex b/Master/texmf-dist/tex/generic/markdown/markdown.tex
index d21561f37c1..97cd6e2c800 100644
--- a/Master/texmf-dist/tex/generic/markdown/markdown.tex
+++ b/Master/texmf-dist/tex/generic/markdown/markdown.tex
@@ -6,7 +6,7 @@
%%
%% markdown.dtx (with options: `tex')
%%
-%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -279,7 +279,7 @@
\l_tmpa_tl
\tl_set:Nx
#2
- { \the \cs:w \l_tmpa_tl \cs_end: }
+ { \the \cs:w \l_tmpa_tl \cs_end: } % noqa: W200
}
{
\__markdown_option_tl_to_csname:nN
@@ -619,8 +619,8 @@
{ boolean }
{ true }
\ExplSyntaxOff
-\def\markdownLastModified{2024-12-17}%
-\def\markdownVersion{3.9.1-0-g92254dfb}%
+\def\markdownLastModified{2025-01-27}%
+\def\markdownVersion{3.10.0-0-g626df6ad}%
\let\markdownBegin\relax
\let\markdownEnd\relax
\let\yamlBegin\relax
@@ -707,7 +707,9 @@
Option~#1~has~type~#2,~
but~a~boolean~was~expected.
}
-\let\markdownIfOption=\__markdown_if_option:nTF
+\let
+ \markdownIfOption
+ \__markdown_if_option:nTF
\__markdown_add_plain_tex_option:nnn
{ frozenCache }
{ boolean }
@@ -961,7 +963,7 @@
\l_tmpa_tl
\clist_set:NV
\l_tmpa_clist
- { \l_tmpa_tl, { ##1 } }
+ { \l_tmpa_tl , { ##1 } }
\__markdown_set_option_value:nV
{ #2 }
\l_tmpa_clist
@@ -3508,7 +3510,7 @@
\prop_gput:Nnx
\g__markdown_plain_tex_loaded_themes_linenos_prop
{ #1 }
- { \tex_the:D \tex_inputlineno:D }
+ { \tex_the:D \tex_inputlineno:D } % noqa: W200
\prop_gput:Nnn
\g__markdown_plain_tex_loaded_themes_versions_prop
{ #1 }
@@ -3623,7 +3625,7 @@
Consider~changing~the~name~to~"witiko/diagrams@v1".
}
}
- \markdownSetup{fencedCode}
+ \markdownSetup { fencedCode }
\cs_set_eq:NN
\__markdown_dot_previous_definition:nnn
\markdownRendererInputFencedCodePrototype
@@ -3688,7 +3690,7 @@
{
\markdownWarning
{
- Write~"witiko/diagrams@v1"~to~pin~version~"v1"~of~the~
+ Write~"witiko/diagrams@v2"~to~pin~version~"v2"~of~the~
theme~"witiko/diagrams".~This~will~keep~your~documents~
from~suddenly~breaking~when~we~have~released~future~
versions~of~the~theme~with~backwards-incompatible~
@@ -3696,7 +3698,14 @@
}
\markdownSetup
{
- import = witiko/dot@silent,
+ import = witiko/diagrams/v2,
+ }
+ }
+ { v2 }
+ {
+ \markdownSetup
+ {
+ import = witiko/diagrams/v2,
}
}
{ v1 }
@@ -3724,6 +3733,176 @@
{ unknown-theme-version }
{ Unknown~version~"#2"~of~theme~"#1"~has~been~requested. }
{ Known~versions~are:~#3 }
+\prop_gput:Nnn
+ \g__markdown_plain_tex_built_in_themes_prop
+ { witiko / diagrams / v2 }
+ {
+ \__markdown_setup:n
+ {
+ fencedCode = true,
+ fencedCodeAttributes = true,
+ }
+ \cs_set_eq:NN
+ \__markdown_diagrams_previous_fenced_code:nnn
+ \markdownRendererInputFencedCodePrototype
+ \tl_new:N
+ \l__markdown_diagrams_caption_tl
+ \__markdown_setup:n
+ {
+ rendererPrototypes = {
+ fencedCodeAttributeContextBegin = {
+ \group_begin:
+ \markdownRendererImageAttributeContextBegin
+ \cs_set_eq:NN
+ \__markdown_diagrams_previous_key_value:nn
+ \markdownRendererAttributeKeyValuePrototype
+ \__markdown_setup:n
+ {
+ rendererPrototypes = {
+ attributeKeyValue = {
+ \str_if_eq:nnTF
+ { ##1 }
+ { caption }
+ {
+ \tl_set:Nn
+ \l__markdown_diagrams_caption_tl
+ { ##2 }
+ }
+ {
+ \__markdown_diagrams_previous_key_value:nn
+ { ##1 }
+ { ##2 }
+ }
+ },
+ },
+ }
+ },
+ fencedCodeAttributeContextEnd = {
+ \markdownRendererImageAttributeContextEnd
+ \group_end:
+ },
+ },
+ }
+ \cs_new:Nn
+ \__markdown_diagrams_render_diagram:nnnn
+ {
+ \__markdown_if_option:nF
+ { frozenCache }
+ {
+ \sys_shell_now:n
+ {
+ if~!~test~-e~#2.source~
+ ||~!~diff~#1~#2.source;
+ then~
+ (#3);
+ cp~#1~#2.source;
+ fi
+ }
+ \exp_args:NNnV
+ \exp_last_unbraced:No
+ \markdownRendererImage
+ {
+ { #4 }
+ { #2 }
+ { #2 }
+ }
+ \l__markdown_diagrams_caption_tl
+ }
+ }
+ \prop_new:N
+ \g_markdown_diagrams_infostrings_prop
+ \__markdown_setup:n
+ {
+ rendererPrototypes = {
+ inputFencedCode = {
+ \prop_get:NnNTF
+ \g_markdown_diagrams_infostrings_prop
+ { #2 }
+ \l_tmpa_tl
+ {
+ \cs_set:NV
+ \__markdown_diagrams_infostrings_current:n
+ \l_tmpa_tl
+ \__markdown_diagrams_infostrings_current:n
+ { #1 }
+ }
+ {
+ \__markdown_diagrams_previous_fenced_code:nnn
+ { #1 }
+ { #2 }
+ { #3 }
+ }
+ },
+ },
+ }
+ \cs_generate_variant:Nn
+ \cs_set:Nn
+ { NV }
+ \cs_set:Nn
+ \__markdown_diagrams_infostrings_current:n
+ {
+ \__markdown_diagrams_render_diagram:nnnn
+ { #1 }
+ { #1.pdf }
+ { dot~-Tpdf~-o~#1.pdf~#1 }
+ { Graphviz~image }
+ }
+ \__markdown_tl_set_from_cs:NNn
+ \l_tmpa_tl
+ \__markdown_diagrams_infostrings_current:n
+ { 1 }
+ \prop_gput:NnV
+ \g_markdown_diagrams_infostrings_prop
+ { dot }
+ \l_tmpa_tl
+ \cs_set:Nn
+ \__markdown_diagrams_infostrings_current:n
+ {
+ \__markdown_diagrams_render_diagram:nnnn
+ { #1 }
+ { #1.pdf }
+ { mmdc~--pdfFit~-i~#1~-o~#1.pdf }
+ { Mermaid~image }
+ }
+ \__markdown_tl_set_from_cs:NNn
+ \l_tmpa_tl
+ \__markdown_diagrams_infostrings_current:n
+ { 1 }
+ \prop_gput:NnV
+ \g_markdown_diagrams_infostrings_prop
+ { mermaid }
+ \l_tmpa_tl
+ \regex_const:Nn
+ \c__markdown_diagrams_filename_suffix_regex
+ { \.[^.]*$ }
+ \cs_set:Nn
+ \__markdown_diagrams_infostrings_current:n
+ {
+ \tl_set:Nn
+ \l_tmpa_tl
+ { #1 }
+ \regex_replace_once:NnN
+ \c__markdown_diagrams_filename_suffix_regex
+ { .pdf }
+ \l_tmpa_tl
+ \__markdown_diagrams_render_diagram:nVnn
+ { #1 }
+ \l_tmpa_tl
+ { plantuml~-tpdf~#1 }
+ { PlantUML~image }
+ }
+ \cs_generate_variant:Nn
+ \__markdown_diagrams_render_diagram:nnnn
+ { nVnn }
+ \__markdown_tl_set_from_cs:NNn
+ \l_tmpa_tl
+ \__markdown_diagrams_infostrings_current:n
+ { 1 }
+ \prop_gput:NnV
+ \g_markdown_diagrams_infostrings_prop
+ { plantuml }
+ \l_tmpa_tl
+ }
\group_begin:
\char_set_catcode_other:N \%
\prop_gput:Nnn
@@ -3843,7 +4022,8 @@
\c__markdown_top_layer_tl
\c__markdown_option_layer_plain_tex_tl
{
- \ExplSyntaxOff
+ \use:c
+ { ExplSyntaxOff }
\__markdown_if_option:nF
{ noDefaults }
{
@@ -3858,7 +4038,8 @@
{ theme = witiko/markdown/defaults }
}
}
- \ExplSyntaxOn
+ \use:c
+ { ExplSyntaxOn }
}
\tl_new:N \g__markdown_formatted_lua_options_tl
\cs_new:Nn \__markdown_format_lua_options:
@@ -3951,8 +4132,16 @@
\cs_generate_variant:Nn
\clist_map_inline:nn
{ Vn }
-\let\markdownPrepareLuaOptions=\__markdown_format_lua_options:
-\def\markdownLuaOptions{{ \g__markdown_formatted_lua_options_tl }}
+\let
+ \markdownPrepareLuaOptions
+ \__markdown_format_lua_options:
+\def
+ \markdownLuaOptions
+ {
+ {
+ \g__markdown_formatted_lua_options_tl
+ }
+ }
\sys_if_engine_luatex:TF
{
\cs_new:Nn
diff --git a/Master/texmf-dist/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex b/Master/texmf-dist/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex
index 6ca36cac93f..af068b29eeb 100644
--- a/Master/texmf-dist/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex
+++ b/Master/texmf-dist/tex/generic/markdown/markdownthemewitiko_markdown_defaults.tex
@@ -6,7 +6,7 @@
%%
%% markdown.dtx (with options: `themes-witiko-markdown-defaults-tex')
%%
-%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -228,7 +228,7 @@
\tl_const:Nn \c__markdown_jekyll_data_mapping_tl { mapping }
\tl_const:Nn \c__markdown_jekyll_data_scalar_tl { scalar }
\seq_new:N \g__markdown_jekyll_data_wildcard_absolute_address_seq
-\cs_new:Nn \markdown_jekyll_data_push_address_segment:n
+\cs_new:Nn \__markdown_jekyll_data_push_address_segment:n
{
\seq_if_empty:NF
\g__markdown_jekyll_data_datatypes_seq
@@ -253,31 +253,31 @@
}
\tl_new:N \g__markdown_jekyll_data_wildcard_absolute_address_tl
\tl_new:N \g__markdown_jekyll_data_wildcard_relative_address_tl
-\cs_new:Nn \markdown_jekyll_data_concatenate_address:NN
+\cs_new:Nn \__markdown_jekyll_data_concatenate_address:NN
{
\seq_pop_left:NN #1 \l_tmpa_tl
\tl_set:Nx #2 { / \seq_use:Nn #1 { / } }
\seq_put_left:NV #1 \l_tmpa_tl
}
-\cs_new:Nn \markdown_jekyll_data_update_address_tls:
+\cs_new:Nn \__markdown_jekyll_data_update_address_tls:
{
- \markdown_jekyll_data_concatenate_address:NN
+ \__markdown_jekyll_data_concatenate_address:NN
\g__markdown_jekyll_data_wildcard_absolute_address_seq
\g__markdown_jekyll_data_wildcard_absolute_address_tl
\seq_get_right:NN
\g__markdown_jekyll_data_wildcard_absolute_address_seq
\g__markdown_jekyll_data_wildcard_relative_address_tl
}
-\cs_new:Nn \markdown_jekyll_data_push:nN
+\cs_new:Nn \__markdown_jekyll_data_push:nN
{
- \markdown_jekyll_data_push_address_segment:n
+ \__markdown_jekyll_data_push_address_segment:n
{ #1 }
\seq_put_right:NV
\g__markdown_jekyll_data_datatypes_seq
#2
- \markdown_jekyll_data_update_address_tls:
+ \__markdown_jekyll_data_update_address_tls:
}
-\cs_new:Nn \markdown_jekyll_data_pop:
+\cs_new:Nn \__markdown_jekyll_data_pop:
{
\seq_pop_right:NN
\g__markdown_jekyll_data_wildcard_absolute_address_seq
@@ -285,63 +285,298 @@
\seq_pop_right:NN
\g__markdown_jekyll_data_datatypes_seq
\l_tmpa_tl
- \markdown_jekyll_data_update_address_tls:
+ \__markdown_jekyll_data_update_address_tls:
}
-\cs_new:Nn \markdown_jekyll_data_set_keyval:nn
+\cs_new:Nn \__markdown_jekyll_data_set_keyval_known:nn
{
\keys_set_known:nn
{ markdown/jekyllData }
{ { #1 } = { #2 } }
}
\cs_generate_variant:Nn
- \markdown_jekyll_data_set_keyval:nn
+ \__markdown_jekyll_data_set_keyval_known:nn
{ Vn }
-\cs_new:Nn \markdown_jekyll_data_set_keyvals:nn
+\cs_new:Nn \__markdown_jekyll_data_set_keyvals_known:nn
{
- \markdown_jekyll_data_push:nN
+ \__markdown_jekyll_data_push:nN
{ #1 }
\c__markdown_jekyll_data_scalar_tl
- \markdown_jekyll_data_set_keyval:Vn
+ \__markdown_jekyll_data_set_keyval_known:Vn
\g__markdown_jekyll_data_wildcard_absolute_address_tl
{ #2 }
- \markdown_jekyll_data_set_keyval:Vn
+ \__markdown_jekyll_data_set_keyval_known:Vn
\g__markdown_jekyll_data_wildcard_relative_address_tl
{ #2 }
- \markdown_jekyll_data_pop:
+ \__markdown_jekyll_data_pop:
}
\def\markdownRendererJekyllDataSequenceBeginPrototype#1#2{
- \markdown_jekyll_data_push:nN
+ \__markdown_jekyll_data_push:nN
{ #1 }
\c__markdown_jekyll_data_sequence_tl
}
\def\markdownRendererJekyllDataMappingBeginPrototype#1#2{
- \markdown_jekyll_data_push:nN
+ \__markdown_jekyll_data_push:nN
{ #1 }
\c__markdown_jekyll_data_mapping_tl
}
\def\markdownRendererJekyllDataSequenceEndPrototype{
- \markdown_jekyll_data_pop:
+ \__markdown_jekyll_data_pop:
}
\def\markdownRendererJekyllDataMappingEndPrototype{
- \markdown_jekyll_data_pop:
+ \__markdown_jekyll_data_pop:
}
\def\markdownRendererJekyllDataBooleanPrototype#1#2{
- \markdown_jekyll_data_set_keyvals:nn
+ \__markdown_jekyll_data_set_keyvals_known:nn
{ #1 }
{ #2 }
}
\def\markdownRendererJekyllDataEmptyPrototype#1{}
\def\markdownRendererJekyllDataNumberPrototype#1#2{
- \markdown_jekyll_data_set_keyvals:nn
+ \__markdown_jekyll_data_set_keyvals_known:nn
{ #1 }
{ #2 }
}
\def\markdownRendererJekyllDataProgrammaticStringPrototype#1#2{}
\def\markdownRendererJekyllDataTypographicStringPrototype#1#2{
- \markdown_jekyll_data_set_keyvals:nn
+ \__markdown_jekyll_data_set_keyvals_known:nn
{ #1 }
{ #2 }
}
+\__markdown_with_various_cases:nn
+ { jekyllDataKeyValue }
+ {
+ \keys_define:nn
+ { markdown/options }
+ {
+ #1 .code:n = {
+ \__markdown_route_jekyll_data_to_key_values:n
+ { ##1 }
+ },
+ #1 .default:n = { },
+ }
+ }
+\seq_new:N
+ \l__markdown_jekyll_data_current_position_seq
+\tl_new:N
+ \l__markdown_jekyll_data_current_position_tl
+\cs_new:Nn
+ \__markdown_route_jekyll_data_to_key_values:n
+ {
+ \markdownSetup
+ {
+ renderers = {
+ jekyllData(Sequence|Mapping)Begin = {
+ \bool_lazy_and:nnTF
+ {
+ \seq_if_empty_p:N
+ \l__markdown_jekyll_data_current_position_seq
+ }
+ {
+ \str_if_eq_p:nn
+ { ##1 }
+ { null }
+ }
+ {
+ \tl_if_empty:nF
+ { #1 }
+ {
+ \seq_put_right:Nn
+ \l__markdown_jekyll_data_current_position_seq
+ { #1 }
+ }
+ }
+ {
+ \seq_put_right:Nn
+ \l__markdown_jekyll_data_current_position_seq
+ { ##1 }
+ }
+ },
+ jekyllData(Sequence|Mapping)End = {
+ \seq_pop_right:NN
+ \l__markdown_jekyll_data_current_position_seq
+ \l_tmpa_tl
+ },
+ jekyllDataBoolean = {
+ \tl_set:Nx
+ \l__markdown_jekyll_data_current_position_tl
+ {
+ \seq_use:Nn
+ \l__markdown_jekyll_data_current_position_seq
+ { / }
+ }
+ \keys_if_exist:VnTF
+ \l__markdown_jekyll_data_current_position_tl
+ { ##1 / boolean }
+ {
+ \__markdown_keys_set:xn
+ {
+ \tl_use:N
+ \l__markdown_jekyll_data_current_position_tl
+ / ##1 / boolean
+ }
+ { ##2 }
+ }
+ {
+ \__markdown_keys_set:xn
+ {
+ \tl_use:N
+ \l__markdown_jekyll_data_current_position_tl
+ / ##1
+ }
+ { ##2 }
+ }
+ },
+ jekyllDataNumber = {
+ \tl_set:Nx
+ \l__markdown_jekyll_data_current_position_tl
+ {
+ \seq_use:Nn
+ \l__markdown_jekyll_data_current_position_seq
+ { / }
+ }
+ \keys_if_exist:VnTF
+ \l__markdown_jekyll_data_current_position_tl
+ { ##1 / number }
+ {
+ \__markdown_keys_set:xn
+ {
+ \tl_use:N
+ \l__markdown_jekyll_data_current_position_tl
+ / ##1 / number
+ }
+ { ##2 }
+ }
+ {
+ \__markdown_keys_set:xn
+ {
+ \tl_use:N
+ \l__markdown_jekyll_data_current_position_tl
+ / ##1
+ }
+ { ##2 }
+ }
+ },
+ jekyllDataEmpty = {
+ \tl_set:Nx
+ \l__markdown_jekyll_data_current_position_tl
+ {
+ \seq_use:Nn
+ \l__markdown_jekyll_data_current_position_seq
+ { / }
+ }
+ \keys_if_exist:VnTF
+ \l__markdown_jekyll_data_current_position_tl
+ { ##1 / empty }
+ {
+ \keys_set:xn
+ {
+ \tl_use:N
+ \l__markdown_jekyll_data_current_position_tl
+ / ##1
+ }
+ { empty }
+ }
+ {
+ \keys_set:Vn
+ \l__markdown_jekyll_data_current_position_tl
+ { ##1 }
+ }
+ },
+ jekyllDataTypographicString = {
+ \tl_set:Nx
+ \l__markdown_jekyll_data_current_position_tl
+ {
+ \seq_use:Nn
+ \l__markdown_jekyll_data_current_position_seq
+ { / }
+ }
+ \keys_if_exist:VnTF
+ \l__markdown_jekyll_data_current_position_tl
+ { ##1 / typographicString }
+ {
+ \__markdown_keys_set:xn
+ {
+ \tl_use:N
+ \l__markdown_jekyll_data_current_position_tl
+ / ##1 / typographicString
+ }
+ { ##2 }
+ }
+ {
+ \keys_if_exist:VnTF
+ \l__markdown_jekyll_data_current_position_tl
+ { ##1 / programmaticString }
+ {
+ \__markdown_keys_set_known:xn
+ {
+ \tl_use:N
+ \l__markdown_jekyll_data_current_position_tl
+ / ##1
+ }
+ { ##2 }
+ }
+ {
+ \__markdown_keys_set:xn
+ {
+ \tl_use:N
+ \l__markdown_jekyll_data_current_position_tl
+ / ##1
+ }
+ { ##2 }
+ }
+ }
+ },
+ jekyllDataProgrammaticString = {
+ \tl_set:Nx
+ \l__markdown_jekyll_data_current_position_tl
+ {
+ \seq_use:Nn
+ \l__markdown_jekyll_data_current_position_seq
+ { / }
+ }
+ \keys_if_exist:VnT
+ \l__markdown_jekyll_data_current_position_tl
+ { ##1 / programmaticString }
+ {
+ \__markdown_keys_set:xn
+ {
+ \tl_use:N
+ \l__markdown_jekyll_data_current_position_tl
+ / ##1 / programmaticString
+ }
+ { ##2 }
+ }
+ },
+ },
+ }
+ }
+\cs_new:Nn
+ \__markdown_keys_set:nn
+ {
+ \keys_set:nn
+ { }
+ { { #1 } = { #2 } }
+ }
+\cs_new:Nn
+ \__markdown_keys_set_known:nn
+ {
+ \keys_set_known:nn
+ { }
+ { { #1 } = { #2 } }
+ }
+\cs_generate_variant:Nn
+ \__markdown_keys_set:nn
+ { xn }
+\cs_generate_variant:Nn
+ \__markdown_keys_set_known:nn
+ { xn }
+\cs_generate_variant:Nn
+ \keys_set:nn
+ { xn, Vn }
+\prg_generate_conditional_variant:Nnn
+ \keys_if_exist:nn
+ { Vn }
+ { T, TF }
\ExplSyntaxOff
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/markdown/markdown.sty b/Master/texmf-dist/tex/latex/markdown/markdown.sty
index f1ac1337c99..b755869d95a 100644
--- a/Master/texmf-dist/tex/latex/markdown/markdown.sty
+++ b/Master/texmf-dist/tex/latex/markdown/markdown.sty
@@ -6,7 +6,7 @@
%%
%% markdown.dtx (with options: `latex')
%%
-%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -85,7 +85,8 @@
\c__markdown_top_layer_tl
\c__markdown_option_layer_latex_tl
{
- \ExplSyntaxOff
+ \use:c
+ { ExplSyntaxOff }
\AtEndOfPackage
{
\__markdown_if_option:nF
@@ -103,7 +104,8 @@
}
}
}
- \ExplSyntaxOn
+ \use:c
+ { ExplSyntaxOn }
}
\ExplSyntaxOff
\def\markdownVersionSpace{ }%
@@ -193,7 +195,8 @@
{ yaml }
{
\group_begin:
- \yamlSetup{jekyllData, expectJekyllData, ensureJekyllData}%
+ \yamlSetup
+ { jekyllData, expectJekyllData, ensureJekyllData }
\markdown
}
{ \yamlEnd }
@@ -297,7 +300,7 @@
\prop_gput:Nnx
\g__markdown_latex_loaded_themes_linenos_prop
{ #1 }
- { \tex_the:D \tex_inputlineno:D }
+ { \tex_the:D \tex_inputlineno:D } % noqa: W200
\prop_gput:Nnn
\g__markdown_latex_loaded_themes_versions_prop
{ #1 }
@@ -386,7 +389,7 @@
\c_backslash_str
\tl_put_right:Nn
\l_tmpa_tl
- { begin{document} }
+ { begin { document } }
\tl_set:Nn
\l_tmpb_tl
{ Load~Markdown~theme~#1~before~ }
@@ -395,7 +398,7 @@
\c_backslash_str
\tl_put_right:Nn
\l_tmpb_tl
- { begin{document} }
+ { begin { document } }
\msg_new:nnVV
{ markdown }
{ latex-theme-after-preamble }
diff --git a/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_markdown_defaults.sty b/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_markdown_defaults.sty
index fc531d5e1e4..69726fdf195 100644
--- a/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_markdown_defaults.sty
+++ b/Master/texmf-dist/tex/latex/markdown/markdownthemewitiko_markdown_defaults.sty
@@ -6,7 +6,7 @@
%%
%% markdown.dtx (with options: `themes-witiko-markdown-defaults-latex')
%%
-%% Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+%% Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
@@ -190,8 +190,8 @@
\l__markdown_latex_fancy_list_item_label_number_style_tl
\tl_new:N
\l__markdown_latex_fancy_list_item_label_delimiter_style_tl
-\@ifpackageloaded{enumitem}{
- \markdownSetup{rendererPrototypes={
+\@ifpackageloaded { enumitem } {
+ \markdownSetup { rendererPrototypes = {
ulBeginTight = {
\begin
{ itemize }
@@ -255,17 +255,18 @@
{ #1 }
]
},
- }}
-}{\@ifpackageloaded{paralist}{
- \markdownSetup{rendererPrototypes={
- ulBeginTight = {%
+ } }
+}
+{ \@ifpackageloaded { paralist } {
+ \markdownSetup { rendererPrototypes = {
+ ulBeginTight = {
\group_begin:
\pltopsep=\topsep
\plpartopsep=\partopsep
- \begin{compactitem}
+ \begin { compactitem }
},
ulEndTight = {
- \end{compactitem}
+ \end { compactitem }
\group_end:
},
fancyOlBegin = {
@@ -276,20 +277,20 @@
\tl_set:Nn
\l__markdown_latex_fancy_list_item_label_delimiter_style_tl
{ #2 }
- \begin{enumerate}
+ \begin { enumerate }
},
fancyOlEnd = {
- \end{enumerate}
+ \end { enumerate }
\group_end:
},
- olBeginTight = {%
+ olBeginTight = {
\group_begin:
\plpartopsep=\partopsep
\pltopsep=\topsep
- \begin{compactenum}
+ \begin { compactenum }
},
olEndTight = {
- \end{compactenum}
+ \end { compactenum }
\group_end:
},
fancyOlBeginTight = {
@@ -302,10 +303,10 @@
{ #2 }
\plpartopsep=\partopsep
\pltopsep=\topsep
- \begin{compactenum}
+ \begin { compactenum }
},
fancyOlEndTight = {
- \end{compactenum}
+ \end { compactenum }
\group_end:
},
fancyOlItemWithNumber = {
@@ -321,14 +322,15 @@
\group_begin:
\plpartopsep=\partopsep
\pltopsep=\topsep
- \begin{compactdesc}
+ \begin { compactdesc }
},
dlEndTight = {
- \end{compactdesc}
+ \end { compactdesc }
\group_end:
}
- }}
-}{
+ } }
+}
+{
\markdownSetup
{
rendererPrototypes = {
@@ -344,7 +346,7 @@
dlEndTight = \markdownRendererDlEnd,
},
}
-}}
+} }
\ExplSyntaxOff
\RequirePackage{amsmath}
\@ifpackageloaded{unicode-math}{
@@ -386,14 +388,14 @@
{
{ csv }
{
- \begin{table}
- \begin{center}
- \csvautotabular{#3}
- \end{center}
+ \begin { table }
+ \begin { center }
+ \csvautotabular { #3 }
+ \end{ center }
\tl_if_empty:nF
{ #4 }
- { \caption{#4} }
- \end{table}
+ { \caption { #4 } }
+ \end { table }
}
{ html }
{
@@ -548,12 +550,12 @@
{
\ltx@ifpackageloaded
{ listings }
- { \lstinputlisting[language=\l_tmpa_tl]{#1} }
- { \markdownRendererInputFencedCode{#1}{}{} }
+ { \lstinputlisting [ language = \l_tmpa_tl ] { #1 } }
+ { \markdownRendererInputFencedCode { #1 } { } { } }
}
}
}
-\def\markdownLATEXStrongEmphasis#1{%
+\def\markdownLATEXStrongEmphasis#1{
\str_if_in:NnTF
\f@series
{ b }
@@ -887,12 +889,13 @@
}
{
\markdownLaTeXRendererAutolink { #2 } { #3 }
- }{
+ }
+ {
\markdownLaTeXRendererDirectOrIndirectLink
{ #1 } { #2 } { #3 } { #4 }
}
}
-\def\markdownLaTeXRendererAutolink#1#2{%
+\def\markdownLaTeXRendererAutolink#1#2{
\tl_set:Nn
\l_tmpa_tl
{ #2 }
@@ -921,7 +924,8 @@
\exp_args:NV
\ref
\l_tmpb_tl
- }{
+ }
+ {
\url { #2 }
}
}
@@ -1067,19 +1071,24 @@
\ExplSyntaxOn
\keys_define:nn
- { markdown/jekyllData }
+ { markdown / jekyllData }
{
- author .code:n = { \author{#1} },
- date .code:n = { \date{#1} },
- title .code:n = { \title{#1} },
- }
-\markdownSetup{
- rendererPrototypes = {
- jekyllDataEnd = {
- \AddToHook{begindocument/end}{\maketitle}
+ author .code:n = {
+ \author
+ { #1 }
},
- },
-}
+ date .code:n = {
+ \date
+ { #1 }
+ },
+ title .code:n = {
+ \title
+ { #1 }
+ \AddToHook
+ { begindocument / end }
+ { \maketitle }
+ },
+ }
\__markdown_if_option:nT
{ mark }
{
@@ -1151,19 +1160,28 @@
\markdownSetup {
rendererPrototypes = {
image = {
- \begin { figure }
- \begin { center }
- \includegraphics
- [ alt = { #1 } ]
- { #3 }
- \tl_if_empty:nF
- { #4 }
- { \caption { #4 } }
- \seq_map_inline:Nn
- \l__markdown_image_identifiers_seq
- { \label { ##1 } }
- \end { center }
- \end { figure }
+ \tl_if_empty:nTF
+ { #4 }
+ {
+ \begin { center }
+ \includegraphics
+ [ alt = { #1 } ]
+ { #3 }
+ \end { center }
+ }
+ {
+ \begin { figure }
+ \begin { center }
+ \includegraphics
+ [ alt = { #1 } ]
+ { #3 }
+ \caption { #4 }
+ \seq_map_inline:Nn
+ \l__markdown_image_identifiers_seq
+ { \label { ##1 } }
+ \end { center }
+ \end { figure }
+ }
},
}
}
@@ -1171,31 +1189,31 @@
{ linkAttributes }
{
\RequirePackage { graphicx }
- \markdownSetup {
- rendererPrototypes = {
- imageAttributeContextBegin = {
- \group_begin:
- \markdownSetup {
- rendererPrototypes = {
- attributeIdentifier = {
- \seq_put_right:Nn
- \l__markdown_image_identifiers_seq
- { ##1 }
- },
- attributeKeyValue = {
- \setkeys
- { Gin }
- { { ##1 } = { ##2 } }
- },
- },
- }
- },
- imageAttributeContextEnd = {
- \group_end:
- },
- },
- }
}
+\markdownSetup {
+ rendererPrototypes = {
+ imageAttributeContextBegin = {
+ \group_begin:
+ \markdownSetup {
+ rendererPrototypes = {
+ attributeIdentifier = {
+ \seq_put_right:Nn
+ \l__markdown_image_identifiers_seq
+ { ##1 }
+ },
+ attributeKeyValue = {
+ \setkeys
+ { Gin }
+ { { ##1 } = { ##2 } }
+ },
+ },
+ }
+ },
+ imageAttributeContextEnd = {
+ \group_end:
+ },
+ },
+}
\cs_new:Nn
\__markdown_luaxml_print_html:n
{
diff --git a/Master/texmf-dist/tex/luatex/markdown/markdown-parser.lua b/Master/texmf-dist/tex/luatex/markdown/markdown-parser.lua
index c5cdd8ee678..8ce14ef992f 100644
--- a/Master/texmf-dist/tex/luatex/markdown/markdown-parser.lua
+++ b/Master/texmf-dist/tex/luatex/markdown/markdown-parser.lua
@@ -20,7 +20,7 @@
-- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--
--- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
--
-- This work may be distributed and/or modified under the
-- conditions of the LaTeX Project Public License, either version 1.3
@@ -58,7 +58,7 @@
-- those in the standard .ins files.
--
local metadata = {
- version = "3.9.1-0-g92254dfb",
+ version = "3.10.0-0-g626df6ad",
comment = "A module for the conversion from markdown "
.. "to plain TeX",
author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, "
@@ -8104,9 +8104,13 @@ M.extensions.notes = function(notes, inline_notes)
* parsers.spnlc * indented_blocks(chunk)
/ register_note
- local Reference = NoteBlock + parsers.Reference
+ self.update_rule("Reference", function(previous_pattern)
+ if previous_pattern == nil then
+ previous_pattern = parsers.Reference
+ end
+ return NoteBlock + previous_pattern
+ end)
- self.update_rule("Reference", Reference)
self.insert_pattern("Inline before LinkAndEmph",
NoteRef, "NoteRef")
end
diff --git a/Master/texmf-dist/tex/luatex/markdown/markdown-unicode-data.lua b/Master/texmf-dist/tex/luatex/markdown/markdown-unicode-data.lua
index 81d80db0e5c..7aab0e30850 100644
--- a/Master/texmf-dist/tex/luatex/markdown/markdown-unicode-data.lua
+++ b/Master/texmf-dist/tex/luatex/markdown/markdown-unicode-data.lua
@@ -20,7 +20,7 @@
-- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--
--- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
--
-- This work may be distributed and/or modified under the
-- conditions of the LaTeX Project Public License, either version 1.3
@@ -58,7 +58,7 @@
-- those in the standard .ins files.
--
local metadata = {
- version = "3.9.1-0-g92254dfb",
+ version = "3.10.0-0-g626df6ad",
comment = "A module for the conversion from markdown "
.. "to plain TeX",
author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, "
@@ -71,11 +71,11 @@ local metadata = {
local lpeg = require("lpeg")
local M = {metadata = metadata}
M.punctuation = {}
-local S = lpeg.S
+local P = lpeg.P
-- luacheck: push no max line length
-M.punctuation[1] = S([[!]]) + S([["]]) + S([[#]]) + S([[$]]) + S([[%]]) + S([[&]]) + S([[']]) + S([[(]]) + S([[)]]) + S([[*]]) + S([[+]]) + S([[,]]) + S([[-]]) + S([[.]]) + S([[/]]) + S([[:]]) + S([[;]]) + S([[<]]) + S([[=]]) + S([[>]]) + S([[?]]) + S([[@]]) + S([[[]]) + S([[\]]) + S(']') + S([[^]]) + S([[_]]) + S([[`]]) + S([[{]]) + S([[|]]) + S([[}]]) + S([[~]])
-M.punctuation[2] = S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))
-M.punctuation[3] = S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])))
-M.punctuation[4] = S([[]]) * (S([[]]) * (S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]))) + S([[]]) * (S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]]) + S([[]])) + S([[]]) * (S([[]])) + S([[]]) * (S([[]]) + S([[]])) + S([[]]) * (S([[]]))))
+M.punctuation[1] = P([[!]]) + P([["]]) + P([[#]]) + P([[$]]) + P([[%]]) + P([[&]]) + P([[']]) + P([[(]]) + P([[)]]) + P([[*]]) + P([[+]]) + P([[,]]) + P([[-]]) + P([[.]]) + P([[/]]) + P([[:]]) + P([[;]]) + P([[<]]) + P([[=]]) + P([[>]]) + P([[?]]) + P([[@]]) + P([[[]]) + P([[\]]) + P(']') + P([[^]]) + P([[_]]) + P([[`]]) + P([[{]]) + P([[|]]) + P([[}]]) + P([[~]])
+M.punctuation[2] = P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))
+M.punctuation[3] = P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])))
+M.punctuation[4] = P([[]]) * (P([[]]) * (P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]])) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * P([[]]) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]])) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]))) + P([[]]) * (P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]])) + P([[]]) * P([[]]) + P([[]]) * (P([[]]) + P([[]]) + P([[]])) + P([[]]) * (P([[]]) + P([[]]))))
-- luacheck: pop
return M
diff --git a/Master/texmf-dist/tex/luatex/markdown/markdown.lua b/Master/texmf-dist/tex/luatex/markdown/markdown.lua
index 2ab9f2329b4..6efbf54a91e 100644
--- a/Master/texmf-dist/tex/luatex/markdown/markdown.lua
+++ b/Master/texmf-dist/tex/luatex/markdown/markdown.lua
@@ -20,7 +20,7 @@
-- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--
--- Copyright (C) 2016-2024 Vít Starý Novotný, Andrej Genčur
+-- Copyright (C) 2016-2025 Vít Starý Novotný, Andrej Genčur
--
-- This work may be distributed and/or modified under the
-- conditions of the LaTeX Project Public License, either version 1.3
@@ -58,7 +58,7 @@
-- those in the standard .ins files.
--
local metadata = {
- version = "3.9.1-0-g92254dfb",
+ version = "3.10.0-0-g626df6ad",
comment = "A module for the conversion from markdown "
.. "to plain TeX",
author = "John MacFarlane, Hans Hagen, Vít Starý Novotný, "
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index ae1847a221f..40c5591fa84 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -3900,6 +3900,7 @@ $standardttf = '\.ttf|\.TTC';
'm-tx' => 'm-tx.lua',
'make4ht' => 'make4ht$',
'makedtx' => '^makedtx\.pl$',
+ 'markdown' => '^markdown2tex\.lua$',
'match_parens' => '^match_parens$',
'mathspic' => '^mathspic\.pl$',
'memoize' => '\.p[ly]$',
diff --git a/Master/tlpkg/tlpsrc/markdown.tlpsrc b/Master/tlpkg/tlpsrc/markdown.tlpsrc
index 60ad525b418..5e364369ef4 100644
--- a/Master/tlpkg/tlpsrc/markdown.tlpsrc
+++ b/Master/tlpkg/tlpsrc/markdown.tlpsrc
@@ -1,21 +1,26 @@
-depend l3kernel
-depend lt3luabridge
-depend lua-uni-algos
-#soft amsfonts
-#soft amsmath
-#soft catchfile
-#soft csvsimple
-#soft epstopdf-pkg
-#soft etoolbox
-#soft fancyvrb
-#soft gobble
-#soft graphics
-#soft grffile
-#soft latex
-#soft ltxcmds
-#soft paralist
-#soft pgf
-#soft soul
-#soft tools
-#soft url
-#soft verse
+binpattern f bin/${ARCH}/markdown2tex
+
+hard l3kernel
+hard lt3luabridge
+hard lua-tinyyaml
+hard lua-uni-algos
+soft amsfonts
+soft amsmath
+soft csvsimple
+soft enumitem
+soft epstopdf
+soft epstopdf-pkg
+soft etoolbox
+soft fancyvrb
+soft graphics
+soft ltxcmds
+soft lua-ul
+soft luacolor
+soft luaxml
+soft paralist
+soft pgf
+soft soul
+soft tools
+soft url
+soft verse
+soft xcolor