LuaLaTeX + luamplib + string

Christophe Poulain <[email protected]> Thu, 28 Mar 2024 23:51:54 +0100
Newsgroups gmane.comp.tex.metapost
Message-ID <CAPDkhNPwO1WA1VWpZ8gMcybtJbR2Tr2Xm0Lrvp2ejRwVpkL13w@mail.gmail.com>
--0000000000005f16830614c05fff
Content-Type: multipart/alternative; boundary="0000000000005f16800614c05ffd"

--0000000000005f16800614c05ffd
Content-Type: text/plain; charset="UTF-8"

Hi,

with this code, it seems a problem appear (see the pdf) (I work with TL2024
update). I join log and pdf.
I tired with luamplib 2.25.3 and 2.22, the problem is the same.

\documentclass{article}
\usepackage{luamplib}

\NewDocumentCommand\TestOne{m}{%
  \begin{mplibcode}
    beginfig(0);
    vardef tata(text t)=
    n:=0;
    for pr=t:
    n:=n+1;
    label.top(TEX(pr),5mm*(n,0));
    endfor;
    enddef;
    %
    tata(#1);
    endfig;
  \end{mplibcode}
}%

\begin{document}
\TestOne{"A","B"}

\TestOne{"E","C"}

\TestOne{"C","E"}

\TestOne{"A","D"}

\TestOne{"E","C"}
\end{document}

greetings.

--0000000000005f16800614c05ffd
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hi,</div><div><br></div><div>with this code, it seems=
 a problem appear (see the pdf) (I work with TL2024 update). I join log and=
 pdf.<br></div><div>I tired with luamplib 2.25.3 and 2.22, the problem is t=
he same. <br></div><div><br></div><div>\documentclass{article}<br>\usepacka=
ge{luamplib}<br><br>\NewDocumentCommand\TestOne{m}{%<br>=C2=A0 \begin{mplib=
code}<br>=C2=A0 =C2=A0 beginfig(0);<br>=C2=A0 =C2=A0 vardef tata(text t)=3D=
<br>=C2=A0 =C2=A0 n:=3D0;<br>=C2=A0 =C2=A0 for pr=3Dt:<br>=C2=A0 =C2=A0 n:=
=3Dn+1;<br>=C2=A0 =C2=A0 label.top(TEX(pr),5mm*(n,0));<br>=C2=A0 =C2=A0 end=
for;<br>=C2=A0 =C2=A0 enddef;<br>=C2=A0 =C2=A0 %<br>=C2=A0 =C2=A0 tata(#1);=
<br>=C2=A0 =C2=A0 endfig;<br>=C2=A0 \end{mplibcode}<br>}%<br><br>\begin{doc=
ument}<br>\TestOne{&quot;A&quot;,&quot;B&quot;}<br><br>\TestOne{&quot;E&quo=
t;,&quot;C&quot;}<br><br>\TestOne{&quot;C&quot;,&quot;E&quot;}<br><br>\Test=
One{&quot;A&quot;,&quot;D&quot;}<br><br>\TestOne{&quot;E&quot;,&quot;C&quot=
;}<br>\end{document}</div><div><br></div><div>greetings.<br></div></div>

--0000000000005f16800614c05ffd--

--0000000000005f16830614c05fff
Content-Type: text/x-tex; charset="US-ASCII"; name="BugLuamplib.tex"
Content-Disposition: attachment; filename="BugLuamplib.tex"
Content-Transfer-Encoding: base64
Content-ID: <f_lubtx49w0>
X-Attachment-Id: f_lubtx49w0

XGxpc3RmaWxlcwpcZG9jdW1lbnRjbGFzc3thcnRpY2xlfQpcdXNlcGFja2FnZXtsdWFtcGxpYn0K
ClxOZXdEb2N1bWVudENvbW1hbmRcVGVzdE9uZXttfXslCiAgXGJlZ2lue21wbGliY29kZX0KICAg
IGJlZ2luZmlnKDApOwogICAgdmFyZGVmIHRhdGEodGV4dCB0KT0KICAgIG46PTA7CiAgICBmb3Ig
cHI9dDoKICAgIG46PW4rMTsKICAgIGxhYmVsLnRvcChURVgocHIpLDVtbSoobiwwKSk7CiAgICBl
bmRmb3I7CiAgICBlbmRkZWY7CiAgICAlCiAgICB0YXRhKCMxKTsKICAgIGVuZGZpZzsKICBcZW5k
e21wbGliY29kZX0KfSUKClxiZWdpbntkb2N1bWVudH0KXFRlc3RPbmV7IkEiLCJCIn0KClxUZXN0
T25leyJFIiwiQyJ9CgpcVGVzdE9uZXsiQyIsIkUifQoKXFRlc3RPbmV7IkEiLCJEIn0KClxUZXN0
T25leyJFIiwiQyJ9ClxlbmR7ZG9jdW1lbnR9CgolIExvY2FsIFZhcmlhYmxlczoKJSBUZVgtZW5n
aW5lOiBsdWF0ZXgKJSBFbmQ6Cg==
--0000000000005f16830614c05fff
Content-Type: application/pdf; name="BugLuamplib.pdf"
Content-Disposition: attachment; filename="BugLuamplib.pdf"
Content-Transfer-Encoding: base64
Content-ID: <f_lubtx8s71>
X-Attachment-Id: f_lubtx8s71

JVBERi0xLjUKJczVwdTF2NDExgozIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5n
dGggMzQ5ID4+ICAgICAgICAKc3RyZWFtCnjaxZXLTsMwEEX3+Qr/QId5+DUSQqJSQWIXlB1ihQSr
LuD/F0xomgSqNKY0NJEiy76y5+Ta1+TQXnLEAiLkEnogDu5lW71XCIg2PPp+vLnDzsd701LbRKRd
Xz/YNqhvIHhJTOhk32XrUFfCal/DalTEuqmu7ig4BY0cvWtee/3Pkpute7q2CtY3z81DtWkmhTZt
fWY2cuwhU1vjkmzMRWz1sC6CeG/LE2hYztWUUclPkTNoTm4VlYHSLPhO3Yk7bqFD7m+6Uy3FY2Bm
afKaVc4NJll7R29LyAZDERjDn/3EGT9DilFpeieTsmFnK4ZKdnIrb9Ve/DHuQdhNewFL/5FtbCqJ
Ln5Ii6I3xgyWYWXp1Ilng3eY9HeOIujXM5O7waP92OXAeFMCNhG68cKhGyII+tJw6tTzsTtMW5+d
zSzV4MnC7/Js9cnrCtqZF3F2tIFDf4WH/gr/BLGw15QKZW5kc3RyZWFtCmVuZG9iago5IDAgb2Jq
Cjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTkgPj4gICAgICAgICAKc3RyZWFtCnja
Y2BgEFBQcmBgYFAAAAOXALMKZW5kc3RyZWFtCmVuZG9iagoxMCAwIG9iago8PCAvU3VidHlwZSAv
Q0lERm9udFR5cGUwQyAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDEwNjYgPj4gICAgICAg
CnN0cmVhbQp42nVUXUwcVRSe2Z+ZaqcrBRcDS2eu2GIt7l8RCMaqhVItPwvCVn5SE7fs7LLZYWcz
M5stqbRbK2Vhdrdl06KWKiUsGicUWtFGjbYmpramMcEHTH2QpoQ+aKhEX+6sd2PctQ0v6nk4995z
z8l3vu/hwzGdDsNxvGh3fXNzi6O8qbmN73MF7DZzG+sNcS4h91mvPq6WyhStlmDqFlylNSqjVYEO
lVHaeUqXqUWXS/TDfyL9FgzDzz6Sy3Obl6jS7EV3gNqae39IbcM2aDAcK8Jo7B72F07im/B8vPj/
UHdabLZn6vhgv+Dz9kpgp81W8XQu14BaC2hw9fj5sOj3AVfADRosoNkCHHw4W/WB7XwAHGR7XZwH
8B7gZDtBSGQFEXgFPhQUn7IAZ69PBGFe8IPsKbAc6xJZNwgF3KwApF4WvLS/3Qn28gEJNPl62IDI
ArMZAJFlQa8kBZ+1WqWQ18ILXqsn2yNauftNojU3Z97b4nCam/bV1Tva6y3SIQl4eAG4Wcnl40TL
v0iuFxy80Ofidrv5g+w+NxuQfFI/lg0TVortwCyYHWvTZqXLBomRORF1WBjHcBG/rXFqxuGMIf2m
rMAuRX0tjKddhUo/2TKQnIkwiEvr9e+cGE4eNh2ODg6cYFBP5tf+zp439o8UceTvCUhG9QrZJaSm
E7EzsTjzOXxMD2Xia2TWx4big0PFfe1ykObIxNwP8iUTehSeNqIQAXXwJ70h3ZmF/H4SfqzkQ2YJ
XlutXSv4LM3ARuNyzY9I+za9+v7CzcXiZevPqJDOaLgp4lY84mUyU6R3OPI8LXJqCVEgwaK7K78w
KA/eNjZ2VyMtjbbBEWImnvyChnlEwa3V2apXmSm0ZNzTUbOVRpuJA8PJGQZOw1ayQPfbp5aXGUPa
E1LSZgX/5g81+JE2bYYDxjNy8khEHjw2QqMnjoMahJscqPMCvAKvwo4LNyC+YkNlE8xAXI6+axqX
E+cZeIw8JycjQ0Py0eN01279nKfzq3ITakGVqAK9jnpgFbJDB6y+Bxm4IQt5SlbSuIJD+s6Xa/DI
mjbdAVeMsA2ZoB298N9sNQR8DtJwO2xlnixE2kMt3m46GG57pcxUdp+Ueon8h/ca8d1CaM8V5nLr
6cpdxYb0rqzO15U7CqzOApaswO4ULE8lUto0gGNGgUAWQapFL5pQ0QNtJu6Sq2P+KiYF3xOIygi3
g7bDtx5IaiSg+QMnYsaZFMHDkD5zfX3T8+ubLhIGNSor6kXlZhiHwUWtWl2o+El7dOwio14jp+S4
RDc2V8h+E0dOfCtPX2UyZ0lv9Kid9nNEYnZZnjfNL8vRWcaQs4481USVZR0Aq8y5QTA/NKnWnYOB
sdFJgm5wclbqIZnaqDy8sHEyFo/F47FkPJ64QVGpTxKj8dFEInFq9CS16W/wxuL/CmVuZHN0cmVh
bQplbmRvYmoKMTEgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzODcgPj4g
ICAgICAgIApzdHJlYW0KeNqFkkuLgzAUhff5FXcWhXZhjbadRSlCnyBMH7RlmK1Nrk6gJhJ10X8/
edQWhikjKH7ec29OTuy9HU7BnKsLBqMhhSPWqtUMg+U2q0ivt1KsLVE2O0SOvKvWUzhoxU7YQH+Z
rlIpmoERp5JdW46d6m/RAgshnxK7DvTP+BXM19vtfhd8bI+qzGREgyMW7TXTAbVtZ9FcjfwfJZgy
vCqDG/SJuhZKTiEaUkrNh7XkS1XaTdYkvBuFsLOeC8n13S1crHcSxcAFa+7knqw0adnm061usExl
rshsBqFZWdSNvjnfAxLuNUctZAH9VyaN6NRW1RWtIaAkSYBjbmabnHZZiRDaBFJuqqK5vYzi2XS+
VQix48hbZopjXWUMdSYLJDMTA01gtjFXQlDyX3Xquy65RyPoXt+7CvvOtJ0TLcwcSsdRYimOPcWe
5p5Gntaexo5GkaeJo4nvMx/9Ym669WVDfuTAWq1NCO4k3EbtFoXEx2FVqrJd7nan3P10lvYb8gO0
ie0GCmVuZHN0cmVhbQplbmRvYmoKMTQgMCBvYmoKPDwgL1Byb2R1Y2VyIChMdWFUZVgtMS4xOC4w
KSAvQ3JlYXRvciAoVGVYKSAvQ3JlYXRpb25EYXRlIChEOjIwMjQwMzI4MjM1MDQwKzAxJzAwJykg
L01vZERhdGUgKEQ6MjAyNDAzMjgyMzUwNDArMDEnMDAnKSAvVHJhcHBlZCAvRmFsc2UgL1BURVgu
RnVsbEJhbm5lciAoVGhpcyBpcyBMdWFIQlRlWCwgVmVyc2lvbiAxLjE4LjAgKFRlWCBMaXZlIDIw
MjQpKSA+PgplbmRvYmoKNiAwIG9iago8PCAvVHlwZSAvT2JqU3RtIC9OIDggL0ZpcnN0IDQ3IC9G
aWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggNDgyID4+ICAgICAgICAKc3RyZWFtCnjajVJda9tA
EHzvr9jHhOKcTjp9QQj4IyamdRKcNCmYPFykq3og64R0hvjfd1aK06RQ2hcxu9qdndnbkAKSlGeU
kowlZRSGkhQphXRIcZpRTGmCIKIsiD+dn5O4P7SGxK2u8J27xpvG9xSBZ0NiY3q37wrTg3RIrE1p
9cy90BZxQHEen4VpQpmSZ1lOT8zTgQBTuPziYpiwBCsNQMYQM/5BaeeKO+NBJW4XSwgxLx4UaNpS
mCKdxgHiSDEMMkAVMgxDhgnDRDHMAZNMAmZcEAfc9vTOHAtYmL7obOtdN8bXeoc/08v1+ub689f1
xu10I4PJxlT7WnNNraseaofi2Wh5oqKAJmGO/SmJDUvIhOdpX7DnIRRz3V4ZW/30kBSR4LH8c+gS
K69rW0ybqjZYg7jzZvdAOcq+v/aoSI4Tl7Y2EclgXPt8teBN5e+3+tsaiPbPfgg5CeLLpnClbSpM
LDHd+sPkisRM92as/7vtUW+pocDxIWz5bngqfN67b40FsYHVfyqBZM68Cvqf0X+8UjZaf8Qpv+3g
0GNjq+aHG84Jnbb33YFOpqV7NqckbrrSdOz75Oj7lCW1bW12/AoBH94H1Xz3PfHl7/kJSXyxJbs+
mv5QPNd4P1cdu96O/BdidvclCmVuZHN0cmVhbQplbmRvYmoKMTUgMCBvYmoKPDwgL1R5cGUgL1hS
ZWYgL0luZGV4IFsgMCAxNiBdIC9TaXplIDE2IC9XIFsgMSAyIDEgXSAvUm9vdCAxMyAwIFIgL0lu
Zm8gMTQgMCBSIC9JRCBbIDxBMkI3MjMxMjE3OUE2N0IyNkE4NUMyNTgzRTRFNjJGND4gPEEyQjcy
MzEyMTc5QTY3QjI2QTg1QzI1ODNFNEU2MkY0PiBdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5n
dGggNjAgPj4gICAgICAgICAKc3RyZWFtCnjaY2Bg+M/EwMYIxAyMDCIMQJoFiNkYOTNBbCYgZmZk
PMjAyKTCwMi2HSTGCsTsjBzdDIzcOxgAiAIE5AplbmRzdHJlYW0KZW5kb2JqCnN0YXJ0eHJlZgoz
MDAwCiUlRU9GCg==
--0000000000005f16830614c05fff
Content-Type: text/x-log; charset="US-ASCII"; name="BugLuamplib.log"
Content-Disposition: attachment; filename="BugLuamplib.log"
Content-Transfer-Encoding: base64
Content-ID: <f_lubtxdvw2>
X-Attachment-Id: f_lubtxdvw2

VGhpcyBpcyBMdWFIQlRlWCwgVmVyc2lvbiAxLjE4LjAgKFRlWCBMaXZlIDIwMjQpICAoZm9ybWF0
PWx1YWxhdGV4IDIwMjQuMy4yOCkgIDI4IE1BUiAyMDI0IDIzOjUwCiByZXN0cmljdGVkIHN5c3Rl
bSBjb21tYW5kcyBlbmFibGVkLgogZmlsZTpsaW5lOmVycm9yIHN0eWxlIG1lc3NhZ2VzIGVuYWJs
ZWQuCioqQnVnTHVhbXBsaWIudGV4CiguL0J1Z0x1YW1wbGliLnRleApMYVRlWDJlIDwyMDIzLTEx
LTAxPiBwYXRjaCBsZXZlbCAxCkwzIHByb2dyYW1taW5nIGxheWVyIDwyMDI0LTAzLTE0PgpMdWEg
bW9kdWxlOiBsdWFvdGZsb2FkIDIwMjQtMDItMTQgMy4yOCBMdWEgYmFzZWQgT3BlblR5cGUgZm9u
dCBzdXBwb3J0Ckx1YSBtb2R1bGU6IGx1YWxpYnMgMjAyMy0wNy0xMyAyLjc2IENvblRlWHQgTHVh
IHN0YW5kYXJkIGxpYnJhcmllcy4KTHVhIG1vZHVsZTogbHVhbGlicy1leHRlbmRlZCAyMDIzLTA3
LTEzIDIuNzYgQ29uVGVYdCBMdWEgbGlicmFyaWVzIC0tIGV4dGVuZGVkIGMKb2xsZWN0aW9uLgps
dWFvdGZsb2FkIHwgY29uZiA6IFJvb3QgY2FjaGUgZGlyZWN0b3J5IGlzICIvaG9tZS9jaHJpc3Rv
cGhlLy50ZXhsaXZlMjAyNC90ZXhtZgotdmFyL2x1YXRleC1jYWNoZS9nZW5lcmljL25hbWVzIi4K
bHVhb3RmbG9hZCB8IGluaXQgOiBMb2FkaW5nIGZvbnRsb2FkZXIgImZvbnRsb2FkZXItMjAyMy0x
Mi0yOC5sdWEiIGZyb20ga3BzZS1yZXMKb2x2ZWQgcGF0aCAiL3Vzci9sb2NhbC90ZXhsaXZlLzIw
MjQvdGV4bWYtZGlzdC90ZXgvbHVhdGV4L2x1YW90ZmxvYWQvZm9udGxvYWRlci0KMjAyMy0xMi0y
OC5sdWEiLgpMdWEtb25seSBhdHRyaWJ1dGUgbHVhb3RmbG9hZEBub2xpZ2F0dXJlID0gMQpsdWFv
dGZsb2FkIHwgaW5pdCA6IENvbnRleHQgT3BlblR5cGUgbG9hZGVyIHZlcnNpb24gMy4xMzQKSW5z
ZXJ0aW5nIGBsdWFvdGZsb2FkLm5vZGVfcHJvY2Vzc29yJyBpbiBgcHJlX2xpbmVicmVha19maWx0
ZXInLgpJbnNlcnRpbmcgYGx1YW90ZmxvYWQubm9kZV9wcm9jZXNzb3InIGluIGBocGFja19maWx0
ZXInLgpJbnNlcnRpbmcgYGx1YW90ZmxvYWQuZ2x5cGhfc3RyZWFtJyBpbiBgZ2x5cGhfc3RyZWFt
X3Byb3ZpZGVyJy4KSW5zZXJ0aW5nIGBsdWFvdGZsb2FkLmRlZmluZV9mb250JyBpbiBgZGVmaW5l
X2ZvbnQnLgpMdWEtb25seSBhdHRyaWJ1dGUgbHVhb3RmbG9hZF9jb2xvcl9hdHRyaWJ1dGUgPSAy
Cmx1YW90ZmxvYWQgfCBjb25mIDogUm9vdCBjYWNoZSBkaXJlY3RvcnkgaXMgIi9ob21lL2Nocmlz
dG9waGUvLnRleGxpdmUyMDI0L3RleG1mCi12YXIvbHVhdGV4LWNhY2hlL2dlbmVyaWMvbmFtZXMi
LgpJbnNlcnRpbmcgYGx1YW90ZmxvYWQuaGFyZi5zdHJpcF9wcmVmaXgnIGluIGBmaW5kX29wZW50
eXBlX2ZpbGUnLgpJbnNlcnRpbmcgYGx1YW90ZmxvYWQuaGFyZi5zdHJpcF9wcmVmaXgnIGluIGBm
aW5kX3RydWV0eXBlX2ZpbGUnLgpSZW1vdmluZyAgYGx1YW90ZmxvYWQuZ2x5cGhfc3RyZWFtJyBm
cm9tIGBnbHlwaF9zdHJlYW1fcHJvdmlkZXInLgpJbnNlcnRpbmcgYGx1YW90ZmxvYWQuaGFyZi5n
bHlwaHN0cmVhbScgaW4gYGdseXBoX3N0cmVhbV9wcm92aWRlcicuCkluc2VydGluZyBgbHVhb3Rm
bG9hZC5oYXJmLmZpbmFsaXplX3ZsaXN0JyBpbiBgcG9zdF9saW5lYnJlYWtfZmlsdGVyJy4KSW5z
ZXJ0aW5nIGBsdWFvdGZsb2FkLmhhcmYuZmluYWxpemVfaGxpc3QnIGluIGBocGFja19maWx0ZXIn
LgpJbnNlcnRpbmcgYGx1YW90ZmxvYWQuY2xlYW51cF9maWxlcycgaW4gYHdyYXB1cF9ydW4nLgpJ
bnNlcnRpbmcgYGx1YW90ZmxvYWQuaGFyZi5maW5hbGl6ZV91bmljb2RlJyBpbiBgZmluaXNoX3Bk
ZmZpbGUnLgpJbnNlcnRpbmcgYGx1YW90ZmxvYWQuZ2x5cGhpbmZvJyBpbiBgZ2x5cGhfaW5mbycu
Ckx1YS1vbmx5IGF0dHJpYnV0ZSBsdWFvdGZsb2FkLmxldHRlcnNwYWNlX2RvbmUgPSAzCkluc2Vy
dGluZyBgbHVhb3RmbG9hZC5hdXguc2V0X3NzY2FsZV9kaW1lbnMnIGluIGBsdWFvdGZsb2FkLnBh
dGNoX2ZvbnQnLgpJbnNlcnRpbmcgYGx1YW90ZmxvYWQuYXV4LnNldF9mb250X2luZGV4JyBpbiBg
bHVhb3RmbG9hZC5wYXRjaF9mb250Jy4KSW5zZXJ0aW5nIGBsdWFvdGZsb2FkLmF1eC5wYXRjaF9j
YW1icmlhX2RvbWgnIGluIGBsdWFvdGZsb2FkLnBhdGNoX2ZvbnQnLgpJbnNlcnRpbmcgYGx1YW90
ZmxvYWQuYXV4LmZpeHVwX2ZvbnRkYXRhJyBpbiBgbHVhb3RmbG9hZC5wYXRjaF9mb250X3Vuc2Fm
ZScuCkluc2VydGluZyBgbHVhb3RmbG9hZC5hdXguc2V0X2NhcGhlaWdodCcgaW4gYGx1YW90Zmxv
YWQucGF0Y2hfZm9udCcuCkluc2VydGluZyBgbHVhb3RmbG9hZC5hdXguc2V0X3hoZWlnaHQnIGlu
IGBsdWFvdGZsb2FkLnBhdGNoX2ZvbnQnLgpJbnNlcnRpbmcgYGx1YW90ZmxvYWQucmV3cml0ZV9m
b250bmFtZScgaW4gYGx1YW90ZmxvYWQucGF0Y2hfZm9udCcuCkluc2VydGluZyBgdHJhY2luZ3N0
YWNrbGV2ZWxzJyBpbiBgaW5wdXRfbGV2ZWxfc3RyaW5nJy4gKC91c3IvbG9jYWwvdGV4bGl2ZS8y
MDIKNC90ZXhtZi1kaXN0L3RleC9sYXRleC9iYXNlL2FydGljbGUuY2xzCkRvY3VtZW50IENsYXNz
OiBhcnRpY2xlIDIwMjMvMDUvMTcgdjEuNG4gU3RhbmRhcmQgTGFUZVggZG9jdW1lbnQgY2xhc3MK
KC91c3IvbG9jYWwvdGV4bGl2ZS8yMDI0L3RleG1mLWRpc3QvdGV4L2xhdGV4L2Jhc2Uvc2l6ZTEw
LmNsbwpGaWxlOiBzaXplMTAuY2xvIDIwMjMvMDUvMTcgdjEuNG4gU3RhbmRhcmQgTGFUZVggZmls
ZSAoc2l6ZSBvcHRpb24pCmx1YW90ZmxvYWQgfCBkYiA6IEZvbnQgbmFtZXMgZGF0YWJhc2UgbG9h
ZGVkIGZyb20gL2hvbWUvY2hyaXN0b3BoZS8udGV4bGl2ZTIwMjQvCnRleG1mLXZhci9sdWF0ZXgt
Y2FjaGUvZ2VuZXJpYy9uYW1lcy9sdWFvdGZsb2FkLW5hbWVzLmx1Yy5neikKXGNAcGFydD1cY291
bnQxODYKXGNAc2VjdGlvbj1cY291bnQxODcKXGNAc3Vic2VjdGlvbj1cY291bnQxODgKXGNAc3Vi
c3Vic2VjdGlvbj1cY291bnQxODkKXGNAcGFyYWdyYXBoPVxjb3VudDE5MApcY0BzdWJwYXJhZ3Jh
cGg9XGNvdW50MTkxClxjQGZpZ3VyZT1cY291bnQxOTIKXGNAdGFibGU9XGNvdW50MTkzClxhYm92
ZWNhcHRpb25za2lwPVxza2lwNDgKXGJlbG93Y2FwdGlvbnNraXA9XHNraXA0OQpcYmliaW5kZW50
PVxkaW1lbjEzOQopCigvdXNyL2xvY2FsL3RleGxpdmUvMjAyNC90ZXhtZi1kaXN0L3RleC9sdWF0
ZXgvbHVhbXBsaWIvbHVhbXBsaWIuc3R5ClBhY2thZ2U6IGx1YW1wbGliIDIwMjQvMDMvMjMgdjIu
MjcuMCBtcGxpYiBwYWNrYWdlIGZvciBMdWFUZVgKTHVhIG1vZHVsZTogbHVhbXBsaWIgMjAyNC8w
My8yMyAyLjI3LjAgTHVhIHBhY2thZ2UgdG8gdHlwZXNldCBNZXRhcG9zdCB3aXRoIEx1YVQKZVgn
cyBNUExpYi4KXGx1YW1wbGliY2N0YWJleHBsYXQ9XGNhdGNvZGV0YWJsZTE0ClxtcGxpYnRtcHRv
a3M9XHRva3MxNwpcbXBsaWJzY3JhdGNoYm94PVxib3g1MQopCigvdXNyL2xvY2FsL3RleGxpdmUv
MjAyNC90ZXhtZi1kaXN0L3RleC9sYXRleC9sM2JhY2tlbmQvbDNiYWNrZW5kLWx1YXRleC5kZWYK
RmlsZTogbDNiYWNrZW5kLWx1YXRleC5kZWYgMjAyNC0wMy0xNCBMMyBiYWNrZW5kIHN1cHBvcnQ6
IFBERiBvdXRwdXQgKEx1YVRlWCkKXGxfX2NvbG9yX2JhY2tlbmRfc3RhY2tfaW50PVxjb3VudDE5
NApJbnNlcnRpbmcgYGwzY29sb3InIGluIGBsdWFvdGZsb2FkLnBhcnNlX2NvbG9yJy4KXGxfX3Bk
Zl9pbnRlcm5hbF9ib3g9XGJveDUyCikKKC4vQnVnTHVhbXBsaWIuYXV4KQpcb3Blbm91dDEgPSBC
dWdMdWFtcGxpYi5hdXgKCkxhVGVYIEZvbnQgSW5mbzogICAgQ2hlY2tpbmcgZGVmYXVsdHMgZm9y
IE9NTC9jbW0vbS9pdCBvbiBpbnB1dCBsaW5lIDIxLgpMYVRlWCBGb250IEluZm86ICAgIC4uLiBv
a2F5IG9uIGlucHV0IGxpbmUgMjEuCkxhVGVYIEZvbnQgSW5mbzogICAgQ2hlY2tpbmcgZGVmYXVs
dHMgZm9yIE9NUy9jbXN5L20vbiBvbiBpbnB1dCBsaW5lIDIxLgpMYVRlWCBGb250IEluZm86ICAg
IC4uLiBva2F5IG9uIGlucHV0IGxpbmUgMjEuCkxhVGVYIEZvbnQgSW5mbzogICAgQ2hlY2tpbmcg
ZGVmYXVsdHMgZm9yIE9UMS9jbXIvbS9uIG9uIGlucHV0IGxpbmUgMjEuCkxhVGVYIEZvbnQgSW5m
bzogICAgLi4uIG9rYXkgb24gaW5wdXQgbGluZSAyMS4KTGFUZVggRm9udCBJbmZvOiAgICBDaGVj
a2luZyBkZWZhdWx0cyBmb3IgVDEvY21yL20vbiBvbiBpbnB1dCBsaW5lIDIxLgpMYVRlWCBGb250
IEluZm86ICAgIC4uLiBva2F5IG9uIGlucHV0IGxpbmUgMjEuCkxhVGVYIEZvbnQgSW5mbzogICAg
Q2hlY2tpbmcgZGVmYXVsdHMgZm9yIFRTMS9jbXIvbS9uIG9uIGlucHV0IGxpbmUgMjEuCkxhVGVY
IEZvbnQgSW5mbzogICAgVHJ5aW5nIHRvIGxvYWQgZm9udCBpbmZvcm1hdGlvbiBmb3IgVFMxK2Nt
ciBvbiBpbnB1dCBsaW5lIDIKMS4KCigvdXNyL2xvY2FsL3RleGxpdmUvMjAyNC90ZXhtZi1kaXN0
L3RleC9sYXRleC9iYXNlL3RzMWNtci5mZApGaWxlOiB0czFjbXIuZmQgMjAyMy8wNC8xMyB2Mi41
bSBTdGFuZGFyZCBMYVRlWCBmb250IGRlZmluaXRpb25zCikKTGFUZVggRm9udCBJbmZvOiAgICAu
Li4gb2theSBvbiBpbnB1dCBsaW5lIDIxLgpMYVRlWCBGb250IEluZm86ICAgIENoZWNraW5nIGRl
ZmF1bHRzIGZvciBUVS9sbXIvbS9uIG9uIGlucHV0IGxpbmUgMjEuCkxhVGVYIEZvbnQgSW5mbzog
ICAgLi4uIG9rYXkgb24gaW5wdXQgbGluZSAyMS4KTGFUZVggRm9udCBJbmZvOiAgICBDaGVja2lu
ZyBkZWZhdWx0cyBmb3IgT01YL2NtZXgvbS9uIG9uIGlucHV0IGxpbmUgMjEuCkxhVGVYIEZvbnQg
SW5mbzogICAgLi4uIG9rYXkgb24gaW5wdXQgbGluZSAyMS4KTGFUZVggRm9udCBJbmZvOiAgICBD
aGVja2luZyBkZWZhdWx0cyBmb3IgVS9jbXIvbS9uIG9uIGlucHV0IGxpbmUgMjEuCkxhVGVYIEZv
bnQgSW5mbzogICAgLi4uIG9rYXkgb24gaW5wdXQgbGluZSAyMS4KTW9kdWxlIGx1YW1wbGliIElu
Zm86IGZsdXNoaW5nIGZpZ3VyZSAxIG9uIGlucHV0IGxpbmUgMjIKTW9kdWxlIGx1YW1wbGliIElu
Zm86IGZsdXNoaW5nIGZpZ3VyZSAxIG9uIGlucHV0IGxpbmUgMjQKTW9kdWxlIGx1YW1wbGliIElu
Zm86IGZsdXNoaW5nIGZpZ3VyZSAxIG9uIGlucHV0IGxpbmUgMjYKTW9kdWxlIGx1YW1wbGliIElu
Zm86IGZsdXNoaW5nIGZpZ3VyZSAxIG9uIGlucHV0IGxpbmUgMjgKTW9kdWxlIGx1YW1wbGliIElu
Zm86IGZsdXNoaW5nIGZpZ3VyZSAxIG9uIGlucHV0IGxpbmUgMzAKIFsxCgp7L3Vzci9sb2NhbC90
ZXhsaXZlLzIwMjQvdGV4bWYtdmFyL2ZvbnRzL21hcC9wZGZ0ZXgvdXBkbWFwL3BkZnRleC5tYXB9
XSAoLi9CdWdMCnVhbXBsaWIuYXV4KQogKioqKioqKioqKioKTGFUZVgyZSA8MjAyMy0xMS0wMT4g
cGF0Y2ggbGV2ZWwgMQpMMyBwcm9ncmFtbWluZyBsYXllciA8MjAyNC0wMy0xND4KICoqKioqKioq
KioqCgoKICpGaWxlIExpc3QqCiBhcnRpY2xlLmNscyAgICAyMDIzLzA1LzE3IHYxLjRuIFN0YW5k
YXJkIExhVGVYIGRvY3VtZW50IGNsYXNzCiAgc2l6ZTEwLmNsbyAgICAyMDIzLzA1LzE3IHYxLjRu
IFN0YW5kYXJkIExhVGVYIGZpbGUgKHNpemUgb3B0aW9uKQpsdWFtcGxpYi5zdHkgICAgMjAyNC8w
My8yMyB2Mi4yNy4wIG1wbGliIHBhY2thZ2UgZm9yIEx1YVRlWApsM2JhY2tlbmQtbHVhdGV4LmRl
ZiAgICAyMDI0LTAzLTE0IEwzIGJhY2tlbmQgc3VwcG9ydDogUERGIG91dHB1dCAoTHVhVGVYKQog
IHRzMWNtci5mZCAgICAyMDIzLzA0LzEzIHYyLjVtIFN0YW5kYXJkIExhVGVYIGZvbnQgZGVmaW5p
dGlvbnMKICoqKioqKioqKioqCgopCgpIZXJlIGlzIGhvdyBtdWNoIG9mIEx1YVRlWCdzIG1lbW9y
eSB5b3UgdXNlZDoKIDUzOCBzdHJpbmdzIG91dCBvZiA0NzY0MzUKIDEwMDAwMCwxOTc3OTU4IHdv
cmRzIG9mIG5vZGUsdG9rZW4gbWVtb3J5IGFsbG9jYXRlZAogNDA2IHdvcmRzIG9mIG5vZGUgbWVt
b3J5IHN0aWxsIGluIHVzZToKICAgMyBobGlzdCwgMSB2bGlzdCwgMSBydWxlLCAyIGdsdWUsIDMg
a2VybiwgMSBnbHlwaCwgNCBhdHRyaWJ1dGUsIDQ4IGdsdWVfc3BlYywKIDQgYXR0cmlidXRlX2xp
c3QsIDEgd3JpdGUgbm9kZXMKICAgYXZhaWwgbGlzdHM6IDI6MTEyLDM6MTEyLDQ6MSw1OjIyLDY6
MTAsNzoxMzAsOToxMjQKIDIyNzIzIG11bHRpbGV0dGVyIGNvbnRyb2wgc2VxdWVuY2VzIG91dCBv
ZiA2NTUzNis2MDAwMDAKIDE1IGZvbnRzIHVzaW5nIDcyMzM2NyBieXRlcwogMzVpLDVuLDQ5cCwx
MzhiLDEyNXMgc3RhY2sgcG9zaXRpb25zIG91dCBvZiAxMDAwMGksMTAwMG4sMjAwMDBwLDIwMDAw
MGIsMjAwMDAwcwo8L3Vzci9sb2NhbC90ZXhsaXZlLzIwMjQvdGV4bWYtZGlzdC9mb250cy9vcGVu
dHlwZS9wdWJsaWMvbG0vbG1yb21hbjEwLXJlZ3VsYXIubwp0Zj4KT3V0cHV0IHdyaXR0ZW4gb24g
QnVnTHVhbXBsaWIucGRmICgxIHBhZ2UsIDMzMTYgYnl0ZXMpLgoKUERGIHN0YXRpc3RpY3M6IDE1
IFBERiBvYmplY3RzIG91dCBvZiAxMDAwIChtYXguIDgzODg2MDcpCiA4IGNvbXByZXNzZWQgb2Jq
ZWN0cyB3aXRoaW4gMSBvYmplY3Qgc3RyZWFtCiAwIG5hbWVkIGRlc3RpbmF0aW9ucyBvdXQgb2Yg
MTAwMCAobWF4LiAxMzEwNzIpCiAxIHdvcmRzIG9mIGV4dHJhIG1lbW9yeSBmb3IgUERGIG91dHB1
dCBvdXQgb2YgMTAwMDAgKG1heC4gMTAwMDAwMDAwKQoK
--0000000000005f16830614c05fff
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

--
http://tug.org/metapost/

--0000000000005f16830614c05fff--