From peter@pjstirling.plus.com Fri Mar 22 23:16:00 2013
From: Peter Stirling
To: drakma-devel@common-lisp.net
Subject: Re: [drakma-devel] Error while trying to POST some JSON data
Date: Sat, 23 Mar 2013 05:59:17 +0000
Message-ID: <514D44B5.5040501@pjstirling.plus.com>
In-Reply-To:
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===============0524317004149404394=="
--===============0524317004149404394==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Hi,
When run on drakma 1.3 the attached program signals:
FORM-DATA makes only sense with POST requests.
[Condition of type DRAKMA:PARAMETER-ERROR]
Restarts:
0: [ABORT] Abort compilation.
1: [*ABORT] Return to SLIME's top level.
2: [ABORT] Abort thread (#)
Backtrace:
0: (DRAKMA:PARAMETER-ERROR "FORM-DATA makes only sense with POST=20
requests.")
1: (DRAKMA:HTTP-REQUEST # :METHOD :GET :REDIRECT 4 :STREAM=20
NIL :ADDITIONAL-HEADERS NIL :PARAMETERS (("theusername" . #1=3D"dummy")=20
("thepassword" . #1#)) :P..
2: ((LABELS DRAKMA::FINISH-REQUEST :IN DRAKMA:HTTP-REQUEST) #(45 45=20
45 45 45 45 45 45 45 45 45 45 54 109 108 70 48 57 66 116 83 122 49 79=20
110 73 48 54 71 78 50 50 99 113 69 57 106 66 79 105 56 76 50 111 ..
3: (DRAKMA:HTTP-REQUEST #=20
:COOKIE-JAR # :METHOD=20
:POST :FORM-DATA T :PARAMETERS (("theusername" . #1=3D"dummy") ("t..
4: (POST-REQUEST)
On drakma 1.2.9 you get the output:
127.0.0.1 - [2013-03-23 05:47:08] "POST /login.php HTTP/1.1" 302 349 "-"=20
"Drakma/1.2.9 (SBCL 1.1.5.15-0892423; Linux; 3.5.0-26-generic;=20
http://weitz.de/drakma/)"
reply is 302 Moved=20
TemporarilyMoved Temporarily
The document=20
has moved here
Hunchentoot 1.2.14 (SBCL 1.1.5.15-0892423) at=20
localhost:8181
On 22/03/13 16:21, Hans H=C3=BCbner wrote:
> Drakma's behavior with respect to redirects has recently changed so=20
> that it is standard compliant. I would like to keep it that way, but=20
> if this is a hurdle that can't be worked around, I am open to=20
> suggestions to change it again.
>
> -Hans
>
>
> On Fri, Mar 22, 2013 at 5:55 PM, > wrote:
>
> On Fri, Mar 22, 2013 at 12:57:15PM +0000, Peter Stirling wrote:
> > I was getting this error too, I reverted to the previous version
> of cl+ssl
> > in quicklisp by putting it in the local-projects directory.
> >
> > I've been meaning to report another problem I've had with the
> new version
> > of drakma, it seems that when I POST login details to a site
> that I'm using
> > it replies with a redirect,
>
> How is the site redirecting? What's the HTTP status code they use?
>
> > and then drakma tries to POST the login details
> > to the redirected page rather than accessing it with a GET. I'll
> try and
> > make a test case sometime this weekend.
>
> Depending on the status code, that's actually valid behaviour.
> (see:
> http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2)
>
> HTH Ralf Mattes
>
> > On 21/03/13 21:41, Peter Kuchta wrote:
> >> Hi everybody,
> >>
> >> I'm trying to POST some JSON data to a web service:
> >>
> >> (ql:quickload :st-json)
> >> (ql:quickload :cl-json)
> >> (ql:quickload :drakma)
> >>
> >> (defvar *rc* (merge-pathnames (user-homedir-pathname)
> ".apirc"))
> >>
> >> (defvar *user*
> >> (with-open-file (s *rc*)
> >> (st-json:read-json s)))
> >>
> >> (defvar api-url (st-json:getjso "url" *user*))
> >> (defvar api-key (st-json:getjso "key" *user*))
> >> (defvar api-email (st-json:getjso "email" *user*))
> >>
> >> (setf drakma:*header-stream* *standard-output*)
> >>
> >> (defvar *req* '(("dataset" . "tigge")
> >> ("step" . "24")
> >> ("date" . "20071001")
> >> ("time" . "00")
> >> ("origin" . "all")))
> >>
> >> (format t "json:~S~%" (json:encode-json-to-string *req*))
> >>
> >> (defun retrieve (api request)
> >> (let* ((cookie-jar (make-instance 'drakma:cookie-jar))
> >> (extra-headers (list (cons "From" api-email)
> >> (cons "X-API-KEY" api-key)))
> >> (url (concatenate 'string api-url api
> "/requests"))
> >> (stream (drakma:http-request url
> >> :additional-headers extra-headers
> >> :accept "application/json"
> >> :method :post
> >> :content-type "application/json"
> >> :external-format-out :utf-8
> >> :external-format-in :utf-8
> >> :redirect 100
> >> :cookie-jar cookie-jar
> >> :content (json:encode-json-to-string
> >> request)
> >> :want-stream t)))
> >> (st-json:read-json stream)))
> >>
> >> (retrieve "/datasets/tigge" *req*)
> >>
> >> Unfortunately, I get an error, although the data seems to be
> encoded OK to
> >> JSON and the headers generated by drakma too, I think. Apparently
> >> something is wrong with the :content (the list of integers in
> the errors
> >> message is just the list of ASCII codes of the JSON encoded data).
> >>
> >>
> json:"{\"dataset\":\"tigge\",\"step\":\"24\",\"number\":\"all\",\"levty=
pe\":\"sl\",\"date\":\"20071001\",\"time\":\"00\",\"origin\":\"all\",\"type\"=
:\"pf\",\"param\":\"tp\",\"area\":\"70\\/-130\\/30\\/-60\",\"grid\":\"2\\/2\"=
,\"target\":\"data.grib\"}"
> >>
> >> POST /v1/datasets/tigge/requests HTTP/1.1
> >> Host: api.service.int
>
> >> User-Agent: Drakma/1.3.0 (SBCL 1.1.5; Darwin; 12.2.0;
> >> http://weitz.de/drakma/)
> >> Accept: application/json
> >> Connection: close
> >> From: me(a)gmail.com
> >
> >> X-API-KEY: 19a0edb6d8d8dda1e6a3b21223e4f86a
> >> Content-Type: application/json
> >> Content-Length: 193
> >>
> >>
> >> debugger invoked on a SIMPLE-TYPE-ERROR:
> >> The value of CL+SSL::THING is #(123 34 100 97 116 97 115
> 101 116 34
> >> 58 34
> >> ...), which is not of type
> (SIMPLE-ARRAY
> >> (UNSIGNED-BYTE 8)
> >> (*)).
> >>
> >> Any idea what's wrong with this code? Many thanks in advance.
> >>
> >> Best regards,
> >> Piotr
> >>
> >>
> >> _______________________________________________
> >> drakma-devel mailing list
> >> drakma-devel(a)common-lisp.net
> >> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel
> >
>
> > _______________________________________________
> > drakma-devel mailing list
> > drakma-devel(a)common-lisp.net
> > http://lists.common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel
>
>
> _______________________________________________
> drakma-devel mailing list
> drakma-devel(a)common-lisp.net
> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel
>
>
>
>
> _______________________________________________
> drakma-devel mailing list
> drakma-devel(a)common-lisp.net
> http://lists.common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel
--===============0524317004149404394==
Content-Type: text/html
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="attachment.html"
MIME-Version: 1.0
PGh0bWw+CiAgPGhlYWQ+CiAgICA8bWV0YSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNP
LTg4NTktMSIKICAgICAgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIj4KICA8L2hlYWQ+CiAgPGJv
ZHkgdGV4dD0iIzAwMDAwMCIgYmdjb2xvcj0iI0ZGRkZGRiI+CiAgICA8ZGl2IGNsYXNzPSJtb3ot
Y2l0ZS1wcmVmaXgiPkhpLDxicj4KICAgICAgPGJyPgogICAgICBXaGVuIHJ1biBvbiBkcmFrbWEg
MS4zIHRoZSBhdHRhY2hlZCBwcm9ncmFtIHNpZ25hbHM6PGJyPgogICAgICA8YnI+CiAgICAgIEZP
Uk0tREFUQSBtYWtlcyBvbmx5IHNlbnNlIHdpdGggUE9TVCByZXF1ZXN0cy48YnI+CiAgICAgICZu
YnNwOyZuYnNwOyBbQ29uZGl0aW9uIG9mIHR5cGUgRFJBS01BOlBBUkFNRVRFUi1FUlJPUl08YnI+
CiAgICAgIDxicj4KICAgICAgUmVzdGFydHM6PGJyPgogICAgICAmbmJzcDswOiBbQUJPUlRdIEFi
b3J0IGNvbXBpbGF0aW9uLjxicj4KICAgICAgJm5ic3A7MTogWypBQk9SVF0gUmV0dXJuIHRvIFNM
SU1FJ3MgdG9wIGxldmVsLjxicj4KICAgICAgJm5ic3A7MjogW0FCT1JUXSBBYm9ydCB0aHJlYWQg
KCMmbHQ7VEhSRUFEICJ3b3JrZXIiIFJVTk5JTkcKICAgICAgezEwMDREODg4QTN9Jmd0Oyk8YnI+
CiAgICAgIDxicj4KICAgICAgQmFja3RyYWNlOjxicj4KICAgICAgJm5ic3A7IDA6IChEUkFLTUE6
UEFSQU1FVEVSLUVSUk9SICJGT1JNLURBVEEgbWFrZXMgb25seSBzZW5zZSB3aXRoIFBPU1QKICAg
ICAgcmVxdWVzdHMuIik8YnI+CiAgICAgICZuYnNwOyAxOiAoRFJBS01BOkhUVFAtUkVRVUVTVCAj
Jmx0O1BVUkk6VVJJCiAgICAgIDxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9
Imh0dHA6Ly9sb2NhbGhvc3Q6ODE4MS9jb29raWUtY2hlY2sucGhwIj5odHRwOi8vbG9jYWxob3N0
OjgxODEvY29va2llLWNoZWNrLnBocDwvYT4mZ3Q7IDpNRVRIT0QgOkdFVCA6UkVESVJFQ1QKICAg
ICAgNCA6U1RSRUFNIE5JTCA6QURESVRJT05BTC1IRUFERVJTIE5JTCA6UEFSQU1FVEVSUyAoKCJ0
aGV1c2VybmFtZSIKICAgICAgLiAjMT0iZHVtbXkiKSAoInRoZXBhc3N3b3JkIiAuICMxIykpIDpQ
Li48YnI+CiAgICAgICZuYnNwOyAyOiAoKExBQkVMUyBEUkFLTUE6OkZJTklTSC1SRVFVRVNUIDpJ
TiBEUkFLTUE6SFRUUC1SRVFVRVNUKSAjKDQ1CiAgICAgIDQ1IDQ1IDQ1IDQ1IDQ1IDQ1IDQ1IDQ1
IDQ1IDQ1IDQ1IDU0IDEwOSAxMDggNzAgNDggNTcgNjYgMTE2IDgzIDEyMgogICAgICA0OSA3OSAx
MTAgNzMgNDggNTQgNzEgNzggNTAgNTAgOTkgMTEzIDY5IDU3IDEwNiA2NiA3OSAxMDUgNTYgNzYg
NTAKICAgICAgMTExIC4uPGJyPgogICAgICAmbmJzcDsgMzogKERSQUtNQTpIVFRQLVJFUVVFU1Qg
IyZsdDtQVVJJOlVSSQogICAgICA8YSBjbGFzcz0ibW96LXR4dC1saW5rLWZyZWV0ZXh0IiBocmVm
PSJodHRwOi8vbG9jYWxob3N0OjgxODEvbG9naW4ucGhwIj5odHRwOi8vbG9jYWxob3N0OjgxODEv
bG9naW4ucGhwPC9hPiZndDsgOkNPT0tJRS1KQVIKICAgICAgIyZsdDtEUkFLTUE6Q09PS0lFLUpB
UiAod2l0aCAwIGNvb2tpZXMpIHsxMDA0RTI2NTYzfSZndDsgOk1FVEhPRAogICAgICA6UE9TVCA6
Rk9STS1EQVRBIFQgOlBBUkFNRVRFUlMgKCgidGhldXNlcm5hbWUiIC4gIzE9ImR1bW15IikgKCJ0
Li48YnI+CiAgICAgICZuYnNwOyA0OiAoUE9TVC1SRVFVRVNUKTxicj4KICAgICAgPGJyPgogICAg
ICBPbiBkcmFrbWEgMS4yLjkgeW91IGdldCB0aGUgb3V0cHV0Ojxicj4KICAgICAgPGJyPgogICAg
ICAxMjcuMC4wLjEgLSBbMjAxMy0wMy0yMyAwNTo0NzowOF0gIlBPU1QgL2xvZ2luLnBocCBIVFRQ
LzEuMSIgMzAyCiAgICAgIDM0OSAiLSIgIkRyYWttYS8xLjIuOSAoU0JDTCAxLjEuNS4xNS0wODky
NDIzOyBMaW51eDsKICAgICAgMy41LjAtMjYtZ2VuZXJpYzsgPGEgY2xhc3M9Im1vei10eHQtbGlu
ay1mcmVldGV4dCIgaHJlZj0iaHR0cDovL3dlaXR6LmRlL2RyYWttYS8iPmh0dHA6Ly93ZWl0ei5k
ZS9kcmFrbWEvPC9hPikiPGJyPgogICAgICByZXBseSBpcyAmbHQ7aHRtbCZndDsmbHQ7aGVhZCZn
dDsmbHQ7dGl0bGUmZ3Q7MzAyIE1vdmVkCiAgICAgIFRlbXBvcmFyaWx5Jmx0Oy90aXRsZSZndDsm
bHQ7L2hlYWQmZ3Q7Jmx0O2JvZHkmZ3Q7Jmx0O2gxJmd0O01vdmVkCiAgICAgIFRlbXBvcmFyaWx5
Jmx0Oy9oMSZndDtUaGUgZG9jdW1lbnQgaGFzIG1vdmVkICZsdDthCiAgICAgIGhyZWY9JzxhIGNs
YXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODE4MS9j
b29raWUtY2hlY2sucGhwIj5odHRwOi8vbG9jYWxob3N0OjgxODEvY29va2llLWNoZWNrLnBocDwv
YT4nJmd0O2hlcmUmbHQ7L2EmZ3Q7Jmx0O3AmZ3Q7Jmx0O2hyJmd0OyZsdDthZGRyZXNzJmd0OyZs
dDthCiAgICAgIGhyZWY9JzxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0
dHA6Ly93ZWl0ei5kZS9odW5jaGVudG9vdC8iPmh0dHA6Ly93ZWl0ei5kZS9odW5jaGVudG9vdC88
L2E+JyZndDtIdW5jaGVudG9vdAogICAgICAxLjIuMTQmbHQ7L2EmZ3Q7ICZsdDthIGhyZWY9Jzxh
IGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0dHA6Ly93d3cuc2JjbC5vcmcv
Ij5odHRwOi8vd3d3LnNiY2wub3JnLzwvYT4nJmd0OyhTQkNMCiAgICAgIDEuMS41LjE1LTA4OTI0
MjMpJmx0Oy9hJmd0OyBhdAogICAgICBsb2NhbGhvc3Q6ODE4MSZsdDsvYWRkcmVzcyZndDsmbHQ7
L3AmZ3Q7Jmx0Oy9ib2R5Jmd0OyZsdDsvaHRtbCZndDs8YnI+CiAgICAgIDxicj4KICAgICAgPGJy
PgogICAgICBPbiAyMi8wMy8xMyAxNjoyMSwgSGFucyBIJnV1bWw7Ym5lciB3cm90ZTo8YnI+CiAg
ICA8L2Rpdj4KICAgIDxibG9ja3F1b3RlCmNpdGU9Im1pZDpDQUJqMGJ3Sj1OblRxUU5jSzYramky
Rj1LalgrS2F0SGpTZk5iRz1NenNVeVMtYzRGTndAbWFpbC5nbWFpbC5jb20iCiAgICAgIHR5cGU9
ImNpdGUiPgogICAgICA8ZGl2IGRpcj0ibHRyIj5EcmFrbWEncyBiZWhhdmlvciB3aXRoIHJlc3Bl
Y3QgdG8gcmVkaXJlY3RzIGhhcwogICAgICAgIHJlY2VudGx5IGNoYW5nZWQgc28gdGhhdCBpdCBp
cyBzdGFuZGFyZCBjb21wbGlhbnQuICZuYnNwO0kgd291bGQgbGlrZQogICAgICAgIHRvIGtlZXAg
aXQgdGhhdCB3YXksIGJ1dCBpZiB0aGlzIGlzIGEgaHVyZGxlIHRoYXQgY2FuJ3QgYmUKICAgICAg
ICB3b3JrZWQgYXJvdW5kLCBJIGFtIG9wZW4gdG8gc3VnZ2VzdGlvbnMgdG8gY2hhbmdlIGl0IGFn
YWluLgogICAgICAgIDxkaXY+CiAgICAgICAgICA8YnI+CiAgICAgICAgPC9kaXY+CiAgICAgICAg
PGRpdiBzdHlsZT0iIj4tSGFuczwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0i
Z21haWxfZXh0cmEiPjxicj4KICAgICAgICA8YnI+CiAgICAgICAgPGRpdiBjbGFzcz0iZ21haWxf
cXVvdGUiPk9uIEZyaSwgTWFyIDIyLCAyMDEzIGF0IDU6NTUgUE0sIDxzcGFuCiAgICAgICAgICAg
IGRpcj0ibHRyIj4mbHQ7PGEgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIgogICAgICAgICAgICAgIGhy
ZWY9Im1haWx0bzpybUBzZWlkLW9ubGluZS5kZSIgdGFyZ2V0PSJfYmxhbmsiPnJtQHNlaWQtb25s
aW5lLmRlPC9hPiZndDs8L3NwYW4+CiAgICAgICAgICB3cm90ZTo8YnI+CiAgICAgICAgICA8Ymxv
Y2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAKICAgICAgICAg
ICAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij4KICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iaW0iPk9uIEZyaSwgTWFyIDIyLCAyMDEzIGF0IDEyOjU3OjE1
UE0gKzAwMDAsCiAgICAgICAgICAgICAgUGV0ZXIgU3Rpcmxpbmcgd3JvdGU6PGJyPgogICAgICAg
ICAgICAgICZndDsgSSB3YXMgZ2V0dGluZyB0aGlzIGVycm9yIHRvbywgSSByZXZlcnRlZCB0byB0
aGUKICAgICAgICAgICAgICBwcmV2aW91cyB2ZXJzaW9uIG9mIGNsK3NzbDxicj4KICAgICAgICAg
ICAgICAmZ3Q7IGluIHF1aWNrbGlzcCBieSBwdXR0aW5nIGl0IGluIHRoZSBsb2NhbC1wcm9qZWN0
cwogICAgICAgICAgICAgIGRpcmVjdG9yeS48YnI+CiAgICAgICAgICAgICAgJmd0Ozxicj4KICAg
ICAgICAgICAgICAmZ3Q7IEkndmUgYmVlbiBtZWFuaW5nIHRvIHJlcG9ydCBhbm90aGVyIHByb2Js
ZW0gSSd2ZSBoYWQKICAgICAgICAgICAgICB3aXRoIHRoZSBuZXcgdmVyc2lvbjxicj4KICAgICAg
ICAgICAgICAmZ3Q7IG9mIGRyYWttYSwgaXQgc2VlbXMgdGhhdCB3aGVuIEkgUE9TVCBsb2dpbiBk
ZXRhaWxzIHRvCiAgICAgICAgICAgICAgYSBzaXRlIHRoYXQgSSdtIHVzaW5nPGJyPgogICAgICAg
ICAgICAgICZndDsgaXQgcmVwbGllcyB3aXRoIGEgcmVkaXJlY3QsPGJyPgogICAgICAgICAgICAg
IDxicj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIEhvdyBpcyB0aGUgc2l0ZSByZWRp
cmVjdGluZz8gV2hhdCdzIHRoZSBIVFRQIHN0YXR1cyBjb2RlCiAgICAgICAgICAgIHRoZXkgdXNl
Pzxicj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW0iPjxicj4KICAgICAgICAgICAgICAmZ3Q7
IGFuZCB0aGVuIGRyYWttYSB0cmllcyB0byBQT1NUIHRoZSBsb2dpbiBkZXRhaWxzPGJyPgogICAg
ICAgICAgICAgICZndDsgdG8gdGhlIHJlZGlyZWN0ZWQgcGFnZSByYXRoZXIgdGhhbiBhY2Nlc3Np
bmcgaXQgd2l0aAogICAgICAgICAgICAgIGEgR0VULiBJJ2xsIHRyeSBhbmQ8YnI+CiAgICAgICAg
ICAgICAgJmd0OyBtYWtlIGEgdGVzdCBjYXNlIHNvbWV0aW1lIHRoaXMgd2Vla2VuZC48YnI+CiAg
ICAgICAgICAgICAgPGJyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgRGVwZW5kaW5n
IG9uIHRoZSBzdGF0dXMgY29kZSwgdGhhdCdzIGFjdHVhbGx5IHZhbGlkCiAgICAgICAgICAgIGJl
aGF2aW91ci48YnI+CiAgICAgICAgICAgIChzZWU6IDxhIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSIK
ICAgICAgICAgICAgICBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9y
ZmMyNjE2LXNlYzEwLmh0bWwjc2VjMTAuMy4yIgogICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5r
Ij5odHRwOi8vd3d3LnczLm9yZy9Qcm90b2NvbHMvcmZjMjYxNi9yZmMyNjE2LXNlYzEwLmh0bWwj
c2VjMTAuMy4yPC9hPik8YnI+CiAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgJm5ic3A7SFRI
IFJhbGYgTWF0dGVzPGJyPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xh
c3M9Img1Ij48YnI+CiAgICAgICAgICAgICAgICAmZ3Q7IE9uIDIxLzAzLzEzIDIxOjQxLCBQZXRl
ciBLdWNodGEgd3JvdGU6PGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgSGkgZXZlcnlib2R5
LDxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7PGJyPgogICAgICAgICAgICAgICAgJmd0OyZn
dDsgSSdtIHRyeWluZyB0byBQT1NUIHNvbWUgSlNPTiBkYXRhIHRvIGEgd2ViCiAgICAgICAgICAg
ICAgICBzZXJ2aWNlOjxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7PGJyPgogICAgICAgICAg
ICAgICAgJmd0OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IChxbDpxdWlja2xvYWQg
OnN0LWpzb24pPGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7IChxbDpxdWlja2xvYWQgOmNsLWpzb24pPGJyPgogICAgICAgICAgICAgICAgJmd0
OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IChxbDpxdWlja2xvYWQgOmRyYWttYSk8
YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0Ozxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoZGVmdmFyICpyYyogKG1lcmdlLXBhdGhuYW1l
cwogICAgICAgICAgICAgICAgKHVzZXItaG9tZWRpci1wYXRobmFtZSkgIi5hcGlyYyIpKTxicj4K
ICAgICAgICAgICAgICAgICZndDsmZ3Q7PGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IChkZWZ2YXIgKnVzZXIqPGJyPgogICAgICAgICAgICAg
ICAgJmd0OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAod2l0aC1vcGVu
LWZpbGUgKHMgKnJjKik8YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoc3QtanNvbjpyZWFkLWpzb24gcykpKTxicj4K
ICAgICAgICAgICAgICAgICZndDsmZ3Q7PGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IChkZWZ2YXIgYXBpLXVybCAoc3QtanNvbjpnZXRqc28g
InVybCIKICAgICAgICAgICAgICAgICp1c2VyKikpPGJyPgogICAgICAgICAgICAgICAgJmd0OyZn
dDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IChkZWZ2YXIgYXBpLWtleSAoc3QtanNvbjpn
ZXRqc28gImtleSIKICAgICAgICAgICAgICAgICp1c2VyKikpPGJyPgogICAgICAgICAgICAgICAg
Jmd0OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IChkZWZ2YXIgYXBpLWVtYWlsIChz
dC1qc29uOmdldGpzbwogICAgICAgICAgICAgICAgImVtYWlsIiAqdXNlciopKTxicj4KICAgICAg
ICAgICAgICAgICZndDsmZ3Q7PGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7IChzZXRmIGRyYWttYToqaGVhZGVyLXN0cmVhbSoKICAgICAgICAg
ICAgICAgICpzdGFuZGFyZC1vdXRwdXQqKTxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7PGJy
PgogICAgICAgICAgICAgICAgJmd0OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IChk
ZWZ2YXIgKnJlcSogJygoImRhdGFzZXQiIC4gInRpZ2dlIik8YnI+CiAgICAgICAgICAgICAgICAm
Z3Q7Jmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAoInN0ZXAiICZuYnNwOyAmbmJzcDsuICIyNCIpPGJyPgogICAgICAgICAg
ICAgICAgJmd0OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgKCJkYXRlIiAmbmJzcDsgJm5ic3A7LiAiMjAwNzEwMDEiKTxi
cj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICgidGltZSIgJm5ic3A7ICZuYnNwOy4g
IjAwIik8YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoIm9yaWdpbiIgJm5ic3A7
LiAiYWxsIikpKTxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7PGJyPgogICAgICAgICAgICAg
ICAgJmd0OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IChmb3JtYXQgdCAianNvbjp+
U34lIgogICAgICAgICAgICAgICAgKGpzb246ZW5jb2RlLWpzb24tdG8tc3RyaW5nICpyZXEqKSk8
YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0Ozxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoZGVmdW4gcmV0cmlldmUgKGFwaSByZXF1ZXN0
KTxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgKGxldCogKChjb29raWUtamFyIChtYWtlLWluc3RhbmNlCiAgICAgICAgICAgICAg
ICAnZHJha21hOmNvb2tpZS1qYXIpKTxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
KGV4dHJhLWhlYWRlcnMgKGxpc3QgKGNvbnMKICAgICAgICAgICAgICAgICJGcm9tIiBhcGktZW1h
aWwpPGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IChjb25z
CiAgICAgICAgICAgICAgICAiWC1BUEktS0VZIiBhcGkta2V5KSkpPGJyPgogICAgICAgICAgICAg
ICAgJmd0OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsodXJsIChjb25jYXRlbmF0ZSAnc3RyaW5nCiAgICAgICAgICAgICAg
ICBhcGktdXJsIGFwaSAiL3JlcXVlc3RzIikpPGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsoc3RyZWFtIChkcmFrbWE6aHR0cC1yZXF1ZXN0CiAgICAgICAgICAgICAgICB1cmw8YnI+
CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOwogICAgICAgICAgICAgICAgJm5ic3A7OmFkZGl0aW9uYWwtaGVhZGVy
cyBleHRyYS1oZWFkZXJzPGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OmFjY2VwdAogICAgICAg
ICAgICAgICAgImFwcGxpY2F0aW9uL2pzb24iPGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Om1l
dGhvZCA6cG9zdDxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzpjb250ZW50LXR5cGUKICAgICAg
ICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7CiAgICAgICAg
ICAgICAgICAmbmJzcDs6ZXh0ZXJuYWwtZm9ybWF0LW91dCA6dXRmLTg8YnI+CiAgICAgICAgICAg
ICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOwogICAgICAgICAgICAgICAgJm5ic3A7OmV4dGVybmFsLWZvcm1hdC1pbiA6dXRmLTg8YnI+
CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6cmVkaXJlY3QgMTAwPGJyPgogICAgICAgICAgICAgICAg
Jmd0OyZndDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7OmNvb2tpZS1qYXIKICAgICAgICAgICAgICAgIGNvb2tpZS1qYXI8YnI+CiAgICAgICAg
ICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDs6Y29udGVudAogICAgICAgICAgICAgICAgKGpzb246ZW5jb2RlLWpzb24t
dG8tc3RyaW5nPGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgcmVxdWVzdCk8YnI+CiAgICAg
ICAgICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDs6d2FudC1zdHJlYW0KICAgICAgICAgICAgICAgIHQpKSk8YnI+CiAg
ICAgICAgICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
ICZuYnNwOyAmbmJzcDsgKHN0LWpzb246cmVhZC1qc29uIHN0cmVhbSkpKTxicj4KICAgICAgICAg
ICAgICAgICZndDsmZ3Q7PGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsocmV0cmlldmUgIi9kYXRhc2V0cy90aWdnZSIgKnJlcSopPGJyPgogICAgICAgICAg
ICAgICAgJmd0OyZndDs8YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyBVbmZvcnR1bmF0ZWx5
LCBJIGdldCBhbiBlcnJvciwgYWx0aG91Z2ggdGhlCiAgICAgICAgICAgICAgICBkYXRhIHNlZW1z
IHRvIGJlIGVuY29kZWQgT0sgdG88YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyBKU09OIGFu
ZCB0aGUgaGVhZGVycyBnZW5lcmF0ZWQgYnkgZHJha21hIHRvbywgSQogICAgICAgICAgICAgICAg
dGhpbmsuIEFwcGFyZW50bHk8YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyBzb21ldGhpbmcg
aXMgd3Jvbmcgd2l0aCB0aGUgOmNvbnRlbnQgKHRoZSBsaXN0CiAgICAgICAgICAgICAgICBvZiBp
bnRlZ2VycyBpbiB0aGUgZXJyb3JzPGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgbWVzc2Fn
ZSBpcyBqdXN0IHRoZSBsaXN0IG9mIEFTQ0lJIGNvZGVzIG9mIHRoZQogICAgICAgICAgICAgICAg
SlNPTiBlbmNvZGVkIGRhdGEpLjxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7PGJyPgogICAg
ICAgICAgICAgICAgJmd0OyZndDsKanNvbjoie1wiZGF0YXNldFwiOlwidGlnZ2VcIixcInN0ZXBc
IjpcIjI0XCIsXCJudW1iZXJcIjpcImFsbFwiLFwibGV2dHlwZVwiOlwic2xcIixcImRhdGVcIjpc
IjIwMDcxMDAxXCIsXCJ0aW1lXCI6XCIwMFwiLFwib3JpZ2luXCI6XCJhbGxcIixcInR5cGVcIjpc
InBmXCIsXCJwYXJhbVwiOlwidHBcIixcImFyZWFcIjpcIjcwXFwvLTEzMFxcLzMwXFwvLTYwXCIs
XCJncmlkXCI6XCIyXFwvMlwiLFwidGFyZ2V0XCI6XCJkYXRhLmdyaWJcIn0iPGJyPgogICAgICAg
ICAgICAgICAgJmd0OyZndDs8YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5i
c3A7IFBPU1QgL3YxL2RhdGFzZXRzL3RpZ2dlL3JlcXVlc3RzIEhUVFAvMS4xPGJyPgogICAgICAg
ICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgJmd0OyZndDsgJm5i
c3A7ICZuYnNwOyBIb3N0OiA8YSBtb3otZG8tbm90LXNlbmQ9InRydWUiCiAgICAgICAgICAgICAg
aHJlZj0iaHR0cDovL2FwaS5zZXJ2aWNlLmludCIgdGFyZ2V0PSJfYmxhbmsiPmFwaS5zZXJ2aWNl
LmludDwvYT4KICAgICAgICAgICAgJmx0OzxhIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSIgaHJlZj0i
aHR0cDovL2FwaS5zZXJ2aWNlLmludCIKICAgICAgICAgICAgICB0YXJnZXQ9Il9ibGFuayI+aHR0
cDovL2FwaS5zZXJ2aWNlLmludDwvYT4mZ3Q7PGJyPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJp
bSI+Jmd0OyZndDsgJm5ic3A7ICZuYnNwOyBVc2VyLUFnZW50OiBEcmFrbWEvMS4zLjAgKFNCQ0wK
ICAgICAgICAgICAgICAxLjEuNTsgRGFyd2luOyAxMi4yLjA7PGJyPgogICAgICAgICAgICAgICZn
dDsmZ3Q7IDxhIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSIKICAgICAgICAgICAgICAgIGhyZWY9Imh0
dHA6Ly93ZWl0ei5kZS9kcmFrbWEvIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3dlaXR6LmRlL2Ry
YWttYS88L2E+KTxicj4KICAgICAgICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5ic3A7IEFjY2Vw
dDogYXBwbGljYXRpb24vanNvbjxicj4KICAgICAgICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5i
c3A7IENvbm5lY3Rpb246IGNsb3NlPGJyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAg
Jmd0OyZndDsgJm5ic3A7ICZuYnNwOyBGcm9tOiA8YSBtb3otZG8tbm90LXNlbmQ9InRydWUiCiAg
ICAgICAgICAgICAgaHJlZj0ibWFpbHRvOm1lQGdtYWlsLmNvbSI+bWVAZ21haWwuY29tPC9hPiAm
bHQ7bWFpbHRvOjxhCiAgICAgICAgICAgICAgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIiBocmVmPSJt
YWlsdG86bWVAZ21haWwuY29tIj5tZUBnbWFpbC5jb208L2E+Jmd0Ozxicj4KICAgICAgICAgICAg
PGRpdiBjbGFzcz0iSE9FblpiIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoNSI+Jmd0OyZn
dDsgJm5ic3A7ICZuYnNwOyBYLUFQSS1LRVk6CiAgICAgICAgICAgICAgICAxOWEwZWRiNmQ4ZDhk
ZGExZTZhM2IyMTIyM2U0Zjg2YTxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7ICZuYnNwOyAm
bmJzcDsgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uPGJyPgogICAgICAgICAgICAgICAg
Jmd0OyZndDsgJm5ic3A7ICZuYnNwOyBDb250ZW50LUxlbmd0aDogMTkzPGJyPgogICAgICAgICAg
ICAgICAgJmd0OyZndDs8YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0Ozxicj4KICAgICAgICAg
ICAgICAgICZndDsmZ3Q7ICZuYnNwOyAmbmJzcDsgZGVidWdnZXIgaW52b2tlZCBvbiBhIFNJTVBM
RS1UWVBFLUVSUk9SOjxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7IFRoZSB2YWx1ZSBvZiBDTCtTU0w6OlRISU5HIGlzICMoMTIzIDM0CiAgICAgICAgICAg
ICAgICAxMDAgOTcgMTE2IDk3IDExNSAxMDEgMTE2IDM0PGJyPgogICAgICAgICAgICAgICAgJmd0
OyZndDsgNTggMzQ8YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyAmbmJzcDsgJm5ic3A7ICZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IC4uLiksIHdoaWNo
CiAgICAgICAgICAgICAgICBpcyBub3Qgb2YgdHlwZSAoU0lNUExFLUFSUkFZPGJyPgogICAgICAg
ICAgICAgICAgJmd0OyZndDsgJm5ic3A7ICZuYnNwOyAoVU5TSUdORUQtQllURSA4KTxicj4KICAg
ICAgICAgICAgICAgICZndDsmZ3Q7ICZuYnNwOyAmbmJzcDsgKCopKS48YnI+CiAgICAgICAgICAg
ICAgICAmZ3Q7Jmd0Ozxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7IEFueSBpZGVhIHdoYXQn
cyB3cm9uZyB3aXRoIHRoaXMgY29kZT8gTWFueQogICAgICAgICAgICAgICAgdGhhbmtzIGluIGFk
dmFuY2UuPGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDs8YnI+CiAgICAgICAgICAgICAgICAm
Z3Q7Jmd0OyBCZXN0IHJlZ2FyZHMsPGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgUGlvdHI8
YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0Ozxicj4KICAgICAgICAgICAgICAgICZndDsmZ3Q7
PGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX188YnI+CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyBkcmFrbWEt
ZGV2ZWwgbWFpbGluZyBsaXN0PGJyPgogICAgICAgICAgICAgICAgJmd0OyZndDsgPGEgbW96LWRv
LW5vdC1zZW5kPSJ0cnVlIgogICAgICAgICAgICAgICAgICBocmVmPSJtYWlsdG86ZHJha21hLWRl
dmVsQGNvbW1vbi1saXNwLm5ldCI+ZHJha21hLWRldmVsQGNvbW1vbi1saXNwLm5ldDwvYT48YnI+
CiAgICAgICAgICAgICAgICAmZ3Q7Jmd0OyA8YSBtb3otZG8tbm90LXNlbmQ9InRydWUiCmhyZWY9
Imh0dHA6Ly9saXN0cy5jb21tb24tbGlzcC5uZXQvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2Ry
YWttYS1kZXZlbCIKICAgICAgICAgICAgICAgICAgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9saXN0
cy5jb21tb24tbGlzcC5uZXQvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2RyYWttYS1kZXZlbDwv
YT48YnI+CiAgICAgICAgICAgICAgICAmZ3Q7PGJyPgogICAgICAgICAgICAgICAgPGJyPgogICAg
ICAgICAgICAgICAgJmd0OyBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXzxicj4KICAgICAgICAgICAgICAgICZndDsgZHJha21hLWRldmVsIG1haWxpbmcgbGlz
dDxicj4KICAgICAgICAgICAgICAgICZndDsgPGEgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIgogICAg
ICAgICAgICAgICAgICBocmVmPSJtYWlsdG86ZHJha21hLWRldmVsQGNvbW1vbi1saXNwLm5ldCI+
ZHJha21hLWRldmVsQGNvbW1vbi1saXNwLm5ldDwvYT48YnI+CiAgICAgICAgICAgICAgICAmZ3Q7
IDxhIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSIKaHJlZj0iaHR0cDovL2xpc3RzLmNvbW1vbi1saXNw
Lm5ldC9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vZHJha21hLWRldmVsIgogICAgICAgICAgICAg
ICAgICB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL2xpc3RzLmNvbW1vbi1saXNwLm5ldC9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vZHJha21hLWRldmVsPC9hPjxicj4KICAgICAgICAgICAgICAgIDxi
cj4KICAgICAgICAgICAgICAgIDxicj4KICAgICAgICAgICAgICAgIF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPgogICAgICAgICAgICAgICAgZHJha21h
LWRldmVsIG1haWxpbmcgbGlzdDxicj4KICAgICAgICAgICAgICAgIDxhIG1vei1kby1ub3Qtc2Vu
ZD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgaHJlZj0ibWFpbHRvOmRyYWttYS1kZXZlbEBjb21t
b24tbGlzcC5uZXQiPmRyYWttYS1kZXZlbEBjb21tb24tbGlzcC5uZXQ8L2E+PGJyPgogICAgICAg
ICAgICAgICAgPGEgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIgpocmVmPSJodHRwOi8vbGlzdHMuY29t
bW9uLWxpc3AubmV0L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9kcmFrbWEtZGV2ZWwiCiAgICAg
ICAgICAgICAgICAgIHRhcmdldD0iX2JsYW5rIj5odHRwOi8vbGlzdHMuY29tbW9uLWxpc3AubmV0
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9kcmFrbWEtZGV2ZWw8L2E+PGJyPgogICAgICAgICAg
ICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvYmxvY2txdW90ZT4KICAg
ICAgICA8L2Rpdj4KICAgICAgICA8YnI+CiAgICAgIDwvZGl2PgogICAgICA8YnI+CiAgICAgIDxm
aWVsZHNldCBjbGFzcz0ibWltZUF0dGFjaG1lbnRIZWFkZXIiPjwvZmllbGRzZXQ+CiAgICAgIDxi
cj4KICAgICAgPHByZSB3cmFwPSIiPl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCmRyYWttYS1kZXZlbCBtYWlsaW5nIGxpc3QKPGEgY2xhc3M9Im1vei10eHQt
bGluay1hYmJyZXZpYXRlZCIgaHJlZj0ibWFpbHRvOmRyYWttYS1kZXZlbEBjb21tb24tbGlzcC5u
ZXQiPmRyYWttYS1kZXZlbEBjb21tb24tbGlzcC5uZXQ8L2E+CjxhIGNsYXNzPSJtb3otdHh0LWxp
bmstZnJlZXRleHQiIGhyZWY9Imh0dHA6Ly9saXN0cy5jb21tb24tbGlzcC5uZXQvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL2RyYWttYS1kZXZlbCI+aHR0cDovL2xpc3RzLmNvbW1vbi1saXNwLm5l
dC9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vZHJha21hLWRldmVsPC9hPgo8L3ByZT4KICAgIDwv
YmxvY2txdW90ZT4KICAgIDxicj4KICA8L2JvZHk+CjwvaHRtbD4K
--===============0524317004149404394==
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="drakma-bug.lisp"
MIME-Version: 1.0
KGV2YWwtd2hlbiAoOmNvbXBpbGUtdG9wbGV2ZWwgOmxvYWQtdG9wbGV2ZWwgOmV4ZWN1dGUpCiAg
KHFsOnF1aWNrbG9hZCAnKCM6ZHJha21hICM6aHVuY2hlbnRvb3QpKSkKCihkZWZwYWNrYWdlICM6
ZHJha21hLWJ1ZwogICg6dXNlICM6Y2wpKQoKKGluLXBhY2thZ2UgIzpkcmFrbWEtYnVnKQoKKGRl
ZnZhciAqYWNjZXB0b3IqIChtYWtlLWluc3RhbmNlICdodW5jaGVudG9vdDplYXN5LWFjY2VwdG9y
CgkJCQkgIDpwb3J0IDgxODEpKQoKKGh1bmNoZW50b290OnN0YXJ0ICphY2NlcHRvciopCgooaHVu
Y2hlbnRvb3Q6ZGVmaW5lLWVhc3ktaGFuZGxlciAobG9naW4gOnVyaSAiL2xvZ2luLnBocCIpCiAg
ICAodGhlcGFzc3dvcmQKICAgICB0aGV1c2VybmFtZSkKICAoZGVjbGFyZSAoaWdub3JlIHRoZXBh
c3N3b3JkIHRoZXVzZXJuYW1lKSkKICAoaHVuY2hlbnRvb3Q6cmVkaXJlY3QgIi9jb29raWUtY2hl
Y2sucGhwIgoJCQk6Y29kZSBodW5jaGVudG9vdDoraHR0cC1tb3ZlZC10ZW1wb3JhcmlseSspKQoK
KGh1bmNoZW50b290OmRlZmluZS1lYXN5LWhhbmRsZXIgKGNvb2tpZS1jaGVjayA6dXJpICIvY29v
a2llLWNoZWNrLnBocCIpCiAgICAoKQogICJTdWNjZXNzIikKCihkZWZ1biBwb3N0LXJlcXVlc3Qg
KCkKICAobGV0KiAoKGNvb2tpZS1qYXIgKG1ha2UtaW5zdGFuY2UgJ2RyYWttYTpjb29raWUtamFy
KSkKCSAocmVwbHkgKGRyYWttYTpodHRwLXJlcXVlc3QgImh0dHA6Ly9sb2NhbGhvc3Q6ODE4MS9s
b2dpbi5waHAiCgkJCQkgICAgIDpjb29raWUtamFyIGNvb2tpZS1qYXIKCQkJCSAgICAgOm1ldGhv
ZCA6cG9zdAoJCQkJICAgICA6Zm9ybS1kYXRhIHQKCQkJCSAgICAgOnBhcmFtZXRlcnMgJygoInRo
ZXVzZXJuYW1lIiAuICJkdW1teSIpCgkJCQkJCSAgICgidGhlcGFzc3dvcmQiIC4gImR1bW15Iikp
KSkpCiAgICAoZm9ybWF0IHQgInJlcGx5IGlzIH5hfiUiIHJlcGx5KSkpCgoocG9zdC1yZXF1ZXN0
KQ==
--===============0524317004149404394==--