RE: [picocontainer-dev] JSON Pico container

Serban Iordache <[email protected]> Sat, 14 Dec 2013 03:50:39 +0100
Newsgroups gmane.comp.java.picocontainer.devel
Message-ID <[email protected]>
--_24a6fc76-7365-4295-b763-95af1c0d3635_
Content-Type: multipart/alternative;
	boundary="_2c76a827-96c8-43c4-954d-830f48770a95_"

--_2c76a827-96c8-43c4-954d-830f48770a95_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I've just sent the pull request for PicoContainer 3.0.
Attached is the patch for PicoContainer 2.x.
Serban
Date: Fri=2C 13 Dec 2013 14:10:01 -0500
From: [email protected]
To: dev-qxt/[email protected]
Subject: Re: [picocontainer-dev] JSON Pico container

If you've got JUnit tests that shows it in use=2C feel free to donate it - =
we're more than happy to facilitate other people's use-cases.
As it happens we're on the cusp of releasing PicoContainer 3=2C but you may=
 have a strong preference for doing this for PicoContainer 2.0=2C and we're=
 happy with cooperating with that agenda too.  Patch-files for Pico2 (imper=
fect Subversion world).  A Github fork (and pull request) for PicoContainer=
 3=2C if your happy with an implicit delay on release.=0A=

- Paul
 		 	   		  =

--_2c76a827-96c8-43c4-954d-830f48770a95_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<style><!--
.hmmessage P
{
margin:0px=3B
padding:0px
}
body.hmmessage
{
font-size: 12pt=3B
font-family:Calibri
}
--></style></head>
<body class=3D'hmmessage'><div dir=3D'ltr'><pre><pre><font face=3D"Calibri=
=2C sans-serif"><span style=3D"line-height: 21px=3B white-space: normal=3B"=
>I've just sent the pull request for PicoContainer 3.0.</span></font></pre>=
<pre><font face=3D"Calibri=2C sans-serif"><span style=3D"line-height: 21px=
=3B white-space: normal=3B"><br></span></font></pre><pre><font face=3D"Cali=
bri=2C sans-serif"><span style=3D"line-height: 21px=3B white-space: normal=
=3B">Attached is the patch for PicoContainer 2.x.</span></font></pre><pre s=
tyle=3D"color: rgb(68=2C 68=2C 68)=3B font-family: Calibri=2C sans-serif=3B=
 font-size: 15px=3B line-height: 21px=3B white-space: normal=3B"><br></pre>=
</pre><pre style=3D"line-height: 21px=3B white-space: normal=3B color: rgb(=
68=2C 68=2C 68)=3B font-size: 15px=3B"><span style=3D"color: rgb(0=2C 0=2C =
0)=3B font-family: Calibri=2C sans-serif=3B font-size: 12pt=3B">Serban</spa=
n></pre><pre style=3D"line-height: 21px=3B white-space: normal=3B color: rg=
b(68=2C 68=2C 68)=3B font-size: 15px=3B"><span style=3D"color: rgb(0=2C 0=
=2C 0)=3B font-family: Calibri=2C sans-serif=3B font-size: 12pt=3B"><br></s=
pan></pre><div><div><hr id=3D"stopSpelling">Date: Fri=2C 13 Dec 2013 14:10:=
01 -0500<br>From: [email protected]<br>To: dev-qxt/[email protected]<br=
>Subject: Re: [picocontainer-dev] JSON Pico container<br><br><div dir=3D"lt=
r">If you've got JUnit tests that shows it in use=2C feel free to donate it=
 - we're more than happy to facilitate other people's use-cases.<div><br></=
div><div>As it happens we're on the cusp of releasing PicoContainer 3=2C bu=
t you may have a strong preference for doing this for PicoContainer 2.0=2C =
and we're happy with cooperating with that agenda too. &nbsp=3BPatch-files =
for Pico2 (imperfect Subversion world). &nbsp=3BA Github fork (and pull req=
uest) for PicoContainer 3=2C if your happy with an implicit delay on releas=
e.</div>=0A=
<div><br></div><div>- Paul</div></div><div class=3D"ecxgmail_extra"><br></d=
iv></div></div> 		 	   		  </div></body>
</html>=

--_2c76a827-96c8-43c4-954d-830f48770a95_--

--_24a6fc76-7365-4295-b763-95af1c0d3635_
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="jsonpico.patch"

SW5kZXg6IHBpY28vZ2Vtcy9wb20ueG1sDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gcGljby9nZW1zL3BvbS54
bWwJKHJldmlzaW9uIDU4MzQpDQorKysgcGljby9nZW1zL3BvbS54bWwJKHdvcmtpbmcgY29weSkN
CkBAIC02NCw2ICs2NCwxMSBAQA0KICAgICAgIDx2ZXJzaW9uPjIuMS4xPC92ZXJzaW9uPgogICAg
ICAgPG9wdGlvbmFsPnRydWU8L29wdGlvbmFsPgogICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8IS0t
IEZvciBKc29uUGljb0NvbnRhaW5lciAtLT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91
cElkPmNvbS5nb29nbGUuY29kZS5nc29uPC9ncm91cElkPjxhcnRpZmFjdElkPmdzb248L2FydGlm
YWN0SWQ+PHZlcnNpb24+Mi4yLjQ8L3ZlcnNpb24+CisgICAgICA8b3B0aW9uYWw+dHJ1ZTwvb3B0
aW9uYWw+CisgICAgPC9kZXBlbmRlbmN5PgogICAgIDwhLS0gRm9yIHRlc3QgLS0+CiAgICAgPGRl
cGVuZGVuY3k+CiAgICAgICA8Z3JvdXBJZD4ke3BvbS5ncm91cElkfTwvZ3JvdXBJZD4KSW5kZXg6
IHBpY28vZ2Vtcy9zcmMvamF2YS9vcmcvcGljb2NvbnRhaW5lci9nZW1zL2NvbnRhaW5lcnMvSnNv
blBpY29Db250YWluZXIuamF2YQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHBpY28vZ2Vtcy9zcmMvamF2YS9v
cmcvcGljb2NvbnRhaW5lci9nZW1zL2NvbnRhaW5lcnMvSnNvblBpY29Db250YWluZXIuamF2YQko
cmV2aXNpb24gMCkNCisrKyBwaWNvL2dlbXMvc3JjL2phdmEvb3JnL3BpY29jb250YWluZXIvZ2Vt
cy9jb250YWluZXJzL0pzb25QaWNvQ29udGFpbmVyLmphdmEJKHdvcmtpbmcgY29weSkNCkBAIC0w
LDAgKzEsMjE3IEBADQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogQ29weXJpZ2h0IChDKSAy
MDAzLTIwMTEgUGljb0NvbnRhaW5lciBDb21taXR0ZXJzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAg
ICAqDQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqDQorICogVGhlIHNvZnR3YXJlIGluIHRoaXMgcGFj
a2FnZSBpcyBwdWJsaXNoZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBCU0QgICAgICAqDQorICog
c3R5bGUgbGljZW5zZSBhIGNvcHkgb2Ygd2hpY2ggaGFzIGJlZW4gaW5jbHVkZWQgd2l0aCB0aGlz
IGRpc3RyaWJ1dGlvbiBpbiAqDQorICogdGhlIExJQ0VOU0UudHh0IGZpbGUuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3BhY2thZ2Ugb3JnLnBpY29jb250
YWluZXIuZ2Vtcy5jb250YWluZXJzOw0KKw0KK2ltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4
Y2VwdGlvbjsNCitpbXBvcnQgamF2YS5pby5GaWxlUmVhZGVyOw0KK2ltcG9ydCBqYXZhLmlvLlJl
YWRlcjsNCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsNCitpbXBvcnQgamF2YS51dGlsLkxp
c3Q7DQorDQoraW1wb3J0IGNvbS5nb29nbGUuZ3Nvbi5Hc29uOw0KK2ltcG9ydCBvcmcucGljb2Nv
bnRhaW5lci5EZWZhdWx0UGljb0NvbnRhaW5lcjsNCitpbXBvcnQgb3JnLnBpY29jb250YWluZXIu
TXV0YWJsZVBpY29Db250YWluZXI7DQoraW1wb3J0IG9yZy5waWNvY29udGFpbmVyLlBhcmFtZXRl
cjsNCitpbXBvcnQgb3JnLnBpY29jb250YWluZXIuUGljb0V4Y2VwdGlvbjsNCitpbXBvcnQgb3Jn
LnBpY29jb250YWluZXIuY29udGFpbmVycy5BYnN0cmFjdERlbGVnYXRpbmdNdXRhYmxlUGljb0Nv
bnRhaW5lcjsNCitpbXBvcnQgb3JnLnBpY29jb250YWluZXIucGFyYW1ldGVycy5Db21wb25lbnRQ
YXJhbWV0ZXI7DQoraW1wb3J0IG9yZy5waWNvY29udGFpbmVyLnBhcmFtZXRlcnMuQ29uc3RhbnRQ
YXJhbWV0ZXI7DQoraW1wb3J0IG9yZy5waWNvY29udGFpbmVyLnBhcmFtZXRlcnMuRGVmYXVsdENv
bnN0cnVjdG9yUGFyYW1ldGVyOw0KK2ltcG9ydCBvcmcucGljb2NvbnRhaW5lci5wYXJhbWV0ZXJz
Lk51bGxQYXJhbWV0ZXI7DQorDQorLyoqDQorICogQSBtdXRhYmxlIGNvbnRhaW5lciB0aGF0IHBv
cHVsYXRlcyBpdHNlbGYgYnkgbWVhbnMgb2YgYSBjb25maWd1cmF0aW9uIGZpbGUgaW4gSlNPTiBm
b3JtYXQuDQorICoNCisgKiA8cC8+PGI+VXNhZ2UgZXhhbXBsZTwvYj4NCisgKiA8YnIvPkNvbnNp
ZGVyIHRoZSBmb2xsb3dpbmcgY29kZSBmcmFnbWVudDoNCisgKiA8cHJlPg0KKyAqIHB1YmxpYyBj
bGFzcyBCYW5uZXIgZXh0ZW5kcyBKRnJhbWUgew0KKyAqICAgcHVibGljIEJhbm5lcihKVGV4dENv
bXBvbmVudCB0ZXh0Q29tcCwgU3RyaW5nIHRleHQsIGludCBzaXplLCBib29sZWFuIGJvbGQpIHsN
CisgKiAgICAgdGV4dENvbXAuc2V0VGV4dCh0ZXh0KTsNCisgKiAgICAgdGV4dENvbXAuc2V0Rm9u
dChuZXcgRm9udCgiQXJpYWwiLCAoYm9sZCA/IEZvbnQuQk9MRCA6IEZvbnQuUExBSU4pLCBzaXpl
KSk7DQorICogICAgIGFkZCh0ZXh0Q29tcCk7DQorICogICAgIHNldERlZmF1bHRDbG9zZU9wZXJh
dGlvbihXaW5kb3dDb25zdGFudHMuRElTUE9TRV9PTl9DTE9TRSk7DQorICogICAgIHBhY2soKTsN
CisgKiAgIH0NCisgKg0KKyAqICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJn
cykgew0KKyAqICAgICBNdXRhYmxlUGljb0NvbnRhaW5lciBwaWNvID0gbmV3IERlZmF1bHRQaWNv
Q29udGFpbmVyKCk7DQorICogICAgIHBpY28uYWRkQ29tcG9uZW50KCJ0ZXh0Q29tcCIsIEpUZXh0
QXJlYS5jbGFzcywgRGVmYXVsdENvbnN0cnVjdG9yUGFyYW1ldGVyLklOU1RBTkNFKTsNCisgKiAg
ICAgcGljby5hZGRDb21wb25lbnQoImJhbm5lciIsIEJhbm5lci5jbGFzcywNCisgKiAgICAgICAg
IG5ldyBDb21wb25lbnRQYXJhbWV0ZXIoInRleHRDb21wIiksDQorICogICAgICAgICBuZXcgQ29u
c3RhbnRQYXJhbWV0ZXIoIkhlbGxvLCB3b3JsZCEiKSwNCisgKiAgICAgICAgIG5ldyBDb21wb25l
bnRQYXJhbWV0ZXIoInNpemUiKSwNCisgKiAgICAgICAgIG5ldyBDb21wb25lbnRQYXJhbWV0ZXIo
ImJvbGQiKSk7DQorICogICAgIHBpY28uYWRkQ29uZmlnKCJzaXplIiwgMzYpOw0KKyAqICAgICBw
aWNvLmFkZENvbmZpZygiYm9sZCIsIHRydWUpOw0KKyAqDQorICogICAgIEJhbm5lciBiYW5uZXIg
PSAoQmFubmVyKXBpY28uZ2V0Q29tcG9uZW50KCJiYW5uZXIiKTsNCisgKiAgICAgYmFubmVyLnNl
dFZpc2libGUodHJ1ZSk7DQorICogICB9DQorICogfQ0KKyAqIDwvcHJlPg0KKyAqDQorICogSW4g
dGhlIG1haW4gbWV0aG9kIGFib3ZlLCB0aGUgcGljbyBjb250YWluZXIgaXMgcG9wdWxhdGVkIHBy
b2dyYW1tYXRpY2FsbHkuIFVzaW5nIHtAbGluayBKc29uUGljb0NvbnRhaW5lcn0sIHRoaXMgY2Fu
IGJlIGRvbmUgYnkgbWVhbnMgb2YgYSBKU09OIGNvbmZpZ3VyYXRpb24gZmlsZS4NCisgKiA8YnI+
Q29udGVudCBvZiB0aGUgZmlsZSA8Yj5iYW5uZXIuanNvbjwvYj46PHByZT4NCisgKiBbDQorICog
ICB7a2V5OiB0ZXh0Q29tcCwgaW1wbDogamF2YXguc3dpbmcuSlRleHRBcmVhLCBwYXJhbWV0ZXJz
OiBbe31dfSwNCisgKiAgIHtrZXk6IGJhbm5lciwgaW1wbDogY29tLnBpY29jb250YWluZXIuZ2Vt
cy5jb250YWluZXJzLkJhbm5lciwgcGFyYW1ldGVyczogW3trZXk6IHRleHRDb21wfSwge3ZhbHVl
OiAiSGVsbG8sIHdvcmxkIn0sIHtrZXk6IHNpemV9LCB7a2V5OiBib2xkfV19LA0KKyAqICAge2tl
eTogc2l6ZSwgdmFsdWU6IDM2LCB0eXBlOiBpbnR9LA0KKyAqICAge2tleTogYm9sZCwgdmFsdWU6
IHRydWUsIHR5cGU6IGJvb2xlYW59DQorICogXQ0KKyAqIDwvcHJlPg0KKyAqDQorICogTm93LCB0
aGUgbWFpbiBtZXRob2QgY2FuIGJlIHJld3JpdHRlbiBhczoNCisgKg0KKyAqIDxwcmU+DQorICog
ICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7DQorICogICAgIE11dGFi
bGVQaWNvQ29udGFpbmVyIHBpY28gPSBuZXcgSnNvblBpY29Db250YWluZXIoImJhbm5lci5qc29u
Iik7DQorICoNCisgKiAgICAgQmFubmVyIGJhbm5lciA9IChCYW5uZXIpcGljby5nZXRDb21wb25l
bnQoImJhbm5lciIpOw0KKyAqICAgICBiYW5uZXIuc2V0VmlzaWJsZSh0cnVlKTsNCisgKiAgIH0N
CisgKiA8L3ByZT4NCisgKg0KKyAqIEBhdXRob3IgU2VyYmFuIElvcmRhY2hlDQorICovDQorcHVi
bGljIGNsYXNzIEpzb25QaWNvQ29udGFpbmVyIGV4dGVuZHMgQWJzdHJhY3REZWxlZ2F0aW5nTXV0
YWJsZVBpY29Db250YWluZXIgew0KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZl
cnNpb25VSUQgPSAxTDsNCisNCisJcHJpdmF0ZSBzdGF0aWMgY2xhc3MgS2V5T3JWYWx1ZSB7DQor
CQlTdHJpbmcga2V5Ow0KKwkJU3RyaW5nIHZhbHVlOw0KKwkJU3RyaW5nIHR5cGU7DQorDQorCQlA
T3ZlcnJpZGUNCisJCXB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7DQorCQkJcmV0dXJuICIoa2V5
OiAiICsga2V5ICsgIiwgdmFsdWU6ICIgKyB2YWx1ZSArICIsIHR5cGU6ICIgKyB0eXBlICsgIiki
Ow0KKwkJfQ0KKwl9DQorDQorCXByaXZhdGUgc3RhdGljIGNsYXNzIENvbXBvbmVudCB7DQorCQlT
dHJpbmcga2V5Ow0KKwkJU3RyaW5nIHZhbHVlOw0KKwkJU3RyaW5nIHR5cGU7DQorCQlTdHJpbmcg
aW1wbDsNCisJCUxpc3Q8S2V5T3JWYWx1ZT4gcGFyYW1ldGVyczsNCisNCisJCUBPdmVycmlkZQ0K
KwkJcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsNCisJCQlyZXR1cm4gIntrZXk6ICIgKyBrZXkg
KyAiLCB2YWx1ZTogIiArIHZhbHVlICsgIiwgdHlwZTogIiArIHR5cGUgKyAiLCBpbXBsOiAiICsg
aW1wbCArICIsIHBhcmFtZXRlcnM6ICIgKyBwYXJhbWV0ZXJzICsgIn0iOw0KKwkJfQ0KKwl9DQor
DQorCXByaXZhdGUgc3RhdGljIGNsYXNzIENvbmZpZyBleHRlbmRzIEFycmF5TGlzdDxDb21wb25l
bnQ+IHsNCisJCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDFM
Ow0KKwl9DQorDQorCS8qKg0KKwkgKiBDb252ZW5pZW5jZSBjb25zdHJ1Y3RvciB0aGF0IGNyZWF0
ZXMgYSBKU09OIGNvbnRhaW5lciB3aXRoIG5vIHBhcmVudCBhbmQgcG9wdWxhdGVzIGl0IHdpdGgg
ZGF0YSBmcm9tIGEgZmlsZQ0KKwkgKg0KKwkgKiBAcGFyYW0ganNvbkZpbGVOYW1lIC0gdGhlIHBh
dGggdG8gdGhlIGZpbGUgY29udGFpbmluZyB0aGUganNvbiBjb25maWd1cmF0aW9uDQorCSAqIEB0
aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uDQorCSAqLw0KKwlwdWJsaWMgSnNvblBpY29Db250
YWluZXIoU3RyaW5nIGpzb25GaWxlTmFtZSkgdGhyb3dzIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7
DQorCQl0aGlzKG5ldyBGaWxlUmVhZGVyKGpzb25GaWxlTmFtZSksIG51bGwpOw0KKwl9DQorDQor
CS8qKg0KKwkgKiBDcmVhdGVzIGEgSlNPTiBjb250YWluZXIgd2l0aCBubyBwYXJlbnQgYW5kIHBv
cHVsYXRlcyBpdCB3aXRoIGRhdGEgZnJvbSBhIGZpbGUNCisJICoNCisJICogQHBhcmFtIGpzb25S
ZWFkZXINCisJICogQHBhcmFtIHBhcmVudA0KKwkgKi8NCisJcHVibGljIEpzb25QaWNvQ29udGFp
bmVyKFJlYWRlciBqc29uUmVhZGVyLCBNdXRhYmxlUGljb0NvbnRhaW5lciBwYXJlbnQpIHsNCisJ
CXN1cGVyKG5ldyBEZWZhdWx0UGljb0NvbnRhaW5lcihwYXJlbnQpKTsNCisNCisJCU11dGFibGVQ
aWNvQ29udGFpbmVyIHBpY28gPSBnZXREZWxlZ2F0ZSgpOw0KKwkJR3NvbiBnc29uID0gbmV3IEdz
b24oKTsNCisJCUNvbmZpZyBjb25maWc7DQorCQl0cnkgew0KKwkJCWNvbmZpZyA9IGdzb24uZnJv
bUpzb24oanNvblJlYWRlciwgQ29uZmlnLmNsYXNzKTsNCisJCQlmb3IoQ29tcG9uZW50IGNvbXAg
OiBjb25maWcpIHsNCisJCQkJaWYoY29tcCA9PSBudWxsKSBjb250aW51ZTsNCisJCQkJaWYoY29t
cC52YWx1ZSA9PSBudWxsKSB7DQorCQkJCQlpZihjb21wLmltcGwgPT0gbnVsbCkgdGhyb3cgbmV3
IFBpY29Kc29uRXhjZXB0aW9uKCJFaXRoZXIgdmFsdWUgb3IgaW1wbCBtdXN0IGJlIHNldCBpbjog
IiArIGNvbXApOw0KKwkJCQkJQ2xhc3M8Pz4gaW1wbENsYXNzID0gQ2xhc3MuZm9yTmFtZShjb21w
LmltcGwpOw0KKwkJCQkJUGFyYW1ldGVyW10gcGFyYW1ldGVycyA9IG51bGw7DQorCQkJCQlpZihj
b21wLnBhcmFtZXRlcnMgIT0gbnVsbCAmJiAhY29tcC5wYXJhbWV0ZXJzLmlzRW1wdHkoKSkgew0K
KwkJCQkJCWludCBzaXplID0gY29tcC5wYXJhbWV0ZXJzLnNpemUoKTsNCisJCQkJCQlwYXJhbWV0
ZXJzID0gbmV3IFBhcmFtZXRlcltzaXplXTsNCisJCQkJCQlmb3IoaW50IGk9MDsgaTxzaXplOyBp
KyspIHsNCisJCQkJCQkJcGFyYW1ldGVyc1tpXSA9IGdldFBhcmFtZXRlcihjb21wLnBhcmFtZXRl
cnMuZ2V0KGkpKTsNCisJCQkJCQl9DQorCQkJCQl9DQorCQkJCQlpZihjb21wLmtleSA9PSBudWxs
KSB7DQorCQkJCQkJaWYocGFyYW1ldGVycyAhPSBudWxsKSB0aHJvdyBuZXcgUGljb0pzb25FeGNl
cHRpb24oIk5vIHBhcmFtZXRlcnMgYXJlIGFsbG93ZWQgd2hlbiBrZXk9bnVsbCBpbjogIiArIGNv
bXApOw0KKwkJCQkJCXBpY28uYWRkQ29tcG9uZW50KGltcGxDbGFzcyk7DQorCQkJCQl9IGVsc2Ug
ew0KKwkJCQkJCXBpY28uYWRkQ29tcG9uZW50KGNvbXAua2V5LCBpbXBsQ2xhc3MsIHBhcmFtZXRl
cnMpOw0KKwkJCQkJfQ0KKwkJCQl9IGVsc2Ugew0KKwkJCQkJaWYoY29tcC5pbXBsICE9IG51bGwp
IHRocm93IG5ldyBQaWNvSnNvbkV4Y2VwdGlvbigiSXQgaXMgbm90IGFsbG93ZWQgdG8gc2V0IGJv
dGggdmFsdWUgYW5kIGltcGwgaW46ICIgKyBjb21wKTsNCisJCQkJCWlmKGNvbXAua2V5ID09IG51
bGwpIHRocm93IG5ldyBQaWNvSnNvbkV4Y2VwdGlvbigia2V5IG11c3QgYmUgc2V0IGluOiAiICsg
Y29tcCk7DQorCQkJCQlPYmplY3QgdmFsdWUgPSBnZXRWYWx1ZShjb21wLnZhbHVlLCBjb21wLnR5
cGUpOw0KKwkJCQkJcGljby5hZGRDb25maWcoY29tcC5rZXksIHZhbHVlKTsNCisJCQkJfQ0KKwkJ
CX0NCisJCX0gY2F0Y2goRXhjZXB0aW9uIGUpIHsNCisJCQlpZihlIGluc3RhbmNlb2YgUGljb0V4
Y2VwdGlvbikgdGhyb3cgKFBpY29FeGNlcHRpb24pZTsNCisJCQllbHNlIHRocm93IG5ldyBQaWNv
SnNvbkV4Y2VwdGlvbihlKTsNCisJCX0NCisJfQ0KKw0KKwlwdWJsaWMgSnNvblBpY29Db250YWlu
ZXIoUmVhZGVyIGpzb25SZWFkZXIpIHsNCisJCXRoaXMoanNvblJlYWRlciwgbnVsbCk7DQorCX0N
CisNCisJQE92ZXJyaWRlDQorICAgIHB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIHMpIHsNCisg
ICAgICAgICgoRGVmYXVsdFBpY29Db250YWluZXIpZ2V0RGVsZWdhdGUoKSkuc2V0TmFtZShzKTsN
CisgICAgfQ0KKw0KKwlwcml2YXRlIHN0YXRpYyBQYXJhbWV0ZXIgZ2V0UGFyYW1ldGVyKEtleU9y
VmFsdWUga2V5T3JWYWx1ZSkgew0KKwkJaWYoa2V5T3JWYWx1ZSA9PSBudWxsKSByZXR1cm4gTnVs
bFBhcmFtZXRlci5JTlNUQU5DRTsNCisJCWlmKGtleU9yVmFsdWUua2V5ID09IG51bGwgJiYga2V5
T3JWYWx1ZS52YWx1ZSA9PSBudWxsICYmIGtleU9yVmFsdWUudHlwZSA9PSBudWxsKSByZXR1cm4g
RGVmYXVsdENvbnN0cnVjdG9yUGFyYW1ldGVyLklOU1RBTkNFOw0KKwkJaWYoa2V5T3JWYWx1ZS5r
ZXkgPT0gbnVsbCkgew0KKwkJCWlmKGtleU9yVmFsdWUudmFsdWUgPT0gbnVsbCkgdGhyb3cgbmV3
IFBpY29Kc29uRXhjZXB0aW9uKCJFaXRoZXIgdmFsdWUgb3Iga2V5IG11c3QgYmUgc2V0IGluOiAi
ICsga2V5T3JWYWx1ZSk7DQorCQkJT2JqZWN0IHZhbHVlID0gZ2V0VmFsdWUoa2V5T3JWYWx1ZS52
YWx1ZSwga2V5T3JWYWx1ZS50eXBlKTsNCisJCQlpZigiY2xhc3MiLmVxdWFscyhrZXlPclZhbHVl
LnR5cGUpKSByZXR1cm4gbmV3IENvbXBvbmVudFBhcmFtZXRlcih2YWx1ZSk7DQorCQkJZWxzZSBy
ZXR1cm4gbmV3IENvbnN0YW50UGFyYW1ldGVyKHZhbHVlKTsNCisNCisJCX0gZWxzZSB7DQorCQkJ
aWYoa2V5T3JWYWx1ZS52YWx1ZSAhPSBudWxsKSB0aHJvdyBuZXcgUGljb0pzb25FeGNlcHRpb24o
Ikl0IGlzIG5vdCBhbGxvd2VkIHRvIHNldCBib3RoIHZhbHVlIGFuZCBrZXkgaW46ICIgKyBrZXlP
clZhbHVlKTsNCisJCQlyZXR1cm4gbmV3IENvbXBvbmVudFBhcmFtZXRlcihrZXlPclZhbHVlLmtl
eSk7DQorCQl9DQorCX0NCisNCisJcHJpdmF0ZSBzdGF0aWMgT2JqZWN0IGdldFZhbHVlKFN0cmlu
ZyB2YWx1ZUFzU3RyaW5nLCBTdHJpbmcgdHlwZSkgew0KKwkJaWYodHlwZSA9PSBudWxsKSB0eXBl
ID0gInN0cmluZyI7DQorCQlpZigic3RyaW5nIi5lcXVhbHModHlwZSkpIHJldHVybiB2YWx1ZUFz
U3RyaW5nOw0KKwkJaWYoImludCIuZXF1YWxzKHR5cGUpKSByZXR1cm4gSW50ZWdlci52YWx1ZU9m
KHZhbHVlQXNTdHJpbmcpOw0KKwkJaWYoImxvbmciLmVxdWFscyh0eXBlKSkgcmV0dXJuIExvbmcu
dmFsdWVPZih2YWx1ZUFzU3RyaW5nKTsNCisJCWlmKCJmbG9hdCIuZXF1YWxzKHR5cGUpKSByZXR1
cm4gRmxvYXQudmFsdWVPZih2YWx1ZUFzU3RyaW5nKTsNCisJCWlmKCJkb3VibGUiLmVxdWFscyh0
eXBlKSkgcmV0dXJuIERvdWJsZS52YWx1ZU9mKHZhbHVlQXNTdHJpbmcpOw0KKwkJaWYoImJvb2xl
YW4iLmVxdWFscyh0eXBlKSkgcmV0dXJuIEJvb2xlYW4udmFsdWVPZih2YWx1ZUFzU3RyaW5nKTsN
CisJCWlmKCJjbGFzcyIuZXF1YWxzKHR5cGUpKSB7DQorCQkJdHJ5IHsNCisJCQkJcmV0dXJuIENs
YXNzLmZvck5hbWUodmFsdWVBc1N0cmluZyk7DQorCQkJfSBjYXRjaChDbGFzc05vdEZvdW5kRXhj
ZXB0aW9uIGUpIHsNCisJCQkJdGhyb3cgbmV3IFBpY29Kc29uRXhjZXB0aW9uKGUpOw0KKwkJCX0N
CisJCX0NCisJCXRocm93IG5ldyBQaWNvSnNvbkV4Y2VwdGlvbigiVW5zdXBwb3J0ZWQgdHlwZTog
IiArIHR5cGUgKyAiIGZvciB2YWx1ZTogIiArIHZhbHVlQXNTdHJpbmcpOw0KKwl9DQorDQorDQor
ICAgIEBPdmVycmlkZQ0KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgew0KKyAgICAgICAg
cmV0dXJuICJbSnNvbl06IiArIGdldERlbGVnYXRlKCkudG9TdHJpbmcoKTsNCisgICAgfQ0KK30N
CkluZGV4OiBwaWNvL2dlbXMvc3JjL2phdmEvb3JnL3BpY29jb250YWluZXIvZ2Vtcy9jb250YWlu
ZXJzL1BpY29Kc29uRXhjZXB0aW9uLmphdmENCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBwaWNvL2dlbXMvc3Jj
L2phdmEvb3JnL3BpY29jb250YWluZXIvZ2Vtcy9jb250YWluZXJzL1BpY29Kc29uRXhjZXB0aW9u
LmphdmEJKHJldmlzaW9uIDApDQorKysgcGljby9nZW1zL3NyYy9qYXZhL29yZy9waWNvY29udGFp
bmVyL2dlbXMvY29udGFpbmVycy9QaWNvSnNvbkV4Y2VwdGlvbi5qYXZhCSh3b3JraW5nIGNvcHkp
DQpAQCAtMCwwICsxLDIzIEBADQorcGFja2FnZSBvcmcucGljb2NvbnRhaW5lci5nZW1zLmNvbnRh
aW5lcnM7DQorDQoraW1wb3J0IG9yZy5waWNvY29udGFpbmVyLlBpY29FeGNlcHRpb247DQorDQor
cHVibGljIGNsYXNzIFBpY29Kc29uRXhjZXB0aW9uIGV4dGVuZHMgUGljb0V4Y2VwdGlvbiB7DQor
CXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDFMOw0KKw0KKwlw
dWJsaWMgUGljb0pzb25FeGNlcHRpb24oKSB7DQorCQlzdXBlcigpOw0KKwl9DQorDQorCXB1Ymxp
YyBQaWNvSnNvbkV4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSwgVGhyb3dhYmxlIGNhdXNlKSB7DQor
CQlzdXBlcihtZXNzYWdlLCBjYXVzZSk7DQorCX0NCisNCisJcHVibGljIFBpY29Kc29uRXhjZXB0
aW9uKFN0cmluZyBtZXNzYWdlKSB7DQorCQlzdXBlcihtZXNzYWdlKTsNCisJfQ0KKw0KKwlwdWJs
aWMgUGljb0pzb25FeGNlcHRpb24oVGhyb3dhYmxlIGNhdXNlKSB7DQorCQlzdXBlcihjYXVzZSk7
DQorCX0NCit9DQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCkluZGV4OiBwaWNvL2dlbXMv
c3JjL3Rlc3Qvb3JnL3BpY29jb250YWluZXIvZ2Vtcy9jb250YWluZXJzL0Fic1Byb2Nlc3Nvci5q
YXZhDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09DQotLS0gcGljby9nZW1zL3NyYy90ZXN0L29yZy9waWNvY29udGFpbmVy
L2dlbXMvY29udGFpbmVycy9BYnNQcm9jZXNzb3IuamF2YQkocmV2aXNpb24gMCkNCisrKyBwaWNv
L2dlbXMvc3JjL3Rlc3Qvb3JnL3BpY29jb250YWluZXIvZ2Vtcy9jb250YWluZXJzL0Fic1Byb2Nl
c3Nvci5qYXZhCSh3b3JraW5nIGNvcHkpDQpAQCAtMCwwICsxLDI2IEBADQorcGFja2FnZSBvcmcu
cGljb2NvbnRhaW5lci5nZW1zLmNvbnRhaW5lcnM7DQorDQorcHVibGljIGNsYXNzIEFic1Byb2Nl
c3NvciBpbXBsZW1lbnRzIFByb2Nlc3NvciB7DQorCXByaXZhdGUgZmluYWwgUHJvY2Vzc29yIGRl
bGVnYXRlOw0KKw0KKwlwdWJsaWMgQWJzUHJvY2Vzc29yKFByb2Nlc3NvciBkZWxlZ2F0ZSkgew0K
KwkJdGhpcy5kZWxlZ2F0ZSA9IGRlbGVnYXRlOw0KKwl9DQorDQorCXB1YmxpYyB2b2lkIHN0YXJ0
UHJvY2Vzc2luZygpIHsNCisJCWRlbGVnYXRlLnN0YXJ0UHJvY2Vzc2luZygpOw0KKwl9DQorDQor
CXB1YmxpYyB2b2lkIHByb2Nlc3NFbGVtZW50KGludCBlbGVtZW50KSB7DQorCQlkZWxlZ2F0ZS5w
cm9jZXNzRWxlbWVudChNYXRoLmFicyhlbGVtZW50KSk7DQorCX0NCisNCisJcHVibGljIHZvaWQg
dGVybWluYXRlUHJvY2Vzc2luZygpIHsNCisJCWRlbGVnYXRlLnRlcm1pbmF0ZVByb2Nlc3Npbmco
KTsNCisJfQ0KKw0KKwlwdWJsaWMgaW50IGdldFJlc3VsdCgpIHsNCisJCXJldHVybiBkZWxlZ2F0
ZS5nZXRSZXN1bHQoKTsNCisJfQ0KKw0KK30NCkluZGV4OiBwaWNvL2dlbXMvc3JjL3Rlc3Qvb3Jn
L3BpY29jb250YWluZXIvZ2Vtcy9jb250YWluZXJzL2NmZzEuanNvbg0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IHBpY28vZ2Vtcy9zcmMvdGVzdC9vcmcvcGljb2NvbnRhaW5lci9nZW1zL2NvbnRhaW5lcnMvY2Zn
MS5qc29uCShyZXZpc2lvbiAwKQ0KKysrIHBpY28vZ2Vtcy9zcmMvdGVzdC9vcmcvcGljb2NvbnRh
aW5lci9nZW1zL2NvbnRhaW5lcnMvY2ZnMS5qc29uCSh3b3JraW5nIGNvcHkpDQpAQCAtMCwwICsx
LDQgQEANCitbDQorCXtpbXBsOiBvcmcucGljb2NvbnRhaW5lci5nZW1zLmNvbnRhaW5lcnMuU3Vt
UHJvY2Vzc29yfSwNCisJe2tleTogaGFuZGxlciwgaW1wbDogb3JnLnBpY29jb250YWluZXIuZ2Vt
cy5jb250YWluZXJzLlNlcmllc0hhbmRsZXJ9LA0KK10NCkluZGV4OiBwaWNvL2dlbXMvc3JjL3Rl
c3Qvb3JnL3BpY29jb250YWluZXIvZ2Vtcy9jb250YWluZXJzL2NmZzIuanNvbg0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIHBpY28vZ2Vtcy9zcmMvdGVzdC9vcmcvcGljb2NvbnRhaW5lci9nZW1zL2NvbnRhaW5l
cnMvY2ZnMi5qc29uCShyZXZpc2lvbiAwKQ0KKysrIHBpY28vZ2Vtcy9zcmMvdGVzdC9vcmcvcGlj
b2NvbnRhaW5lci9nZW1zL2NvbnRhaW5lcnMvY2ZnMi5qc29uCSh3b3JraW5nIGNvcHkpDQpAQCAt
MCwwICsxLDQgQEANCitbDQorCXtrZXk6IHByb2Nlc3NvciwgaW1wbDogb3JnLnBpY29jb250YWlu
ZXIuZ2Vtcy5jb250YWluZXJzLlN1bVByb2Nlc3Nvcn0sDQorCXtrZXk6IGhhbmRsZXIsIGltcGw6
IG9yZy5waWNvY29udGFpbmVyLmdlbXMuY29udGFpbmVycy5TZXJpZXNIYW5kbGVyLCBwYXJhbWV0
ZXJzOiBbe2tleTogcHJvY2Vzc29yfSwge3ZhbHVlOiAyLCB0eXBlOiBpbnR9XX0sDQorXQ0KSW5k
ZXg6IHBpY28vZ2Vtcy9zcmMvdGVzdC9vcmcvcGljb2NvbnRhaW5lci9nZW1zL2NvbnRhaW5lcnMv
Y2ZnMy5qc29uDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0gcGljby9nZW1zL3NyYy90ZXN0L29yZy9waWNvY29u
dGFpbmVyL2dlbXMvY29udGFpbmVycy9jZmczLmpzb24JKHJldmlzaW9uIDApDQorKysgcGljby9n
ZW1zL3NyYy90ZXN0L29yZy9waWNvY29udGFpbmVyL2dlbXMvY29udGFpbmVycy9jZmczLmpzb24J
KHdvcmtpbmcgY29weSkNCkBAIC0wLDAgKzEsNSBAQA0KK1sNCisJe2ltcGw6IG9yZy5waWNvY29u
dGFpbmVyLmdlbXMuY29udGFpbmVycy5TdW1Qcm9jZXNzb3J9LA0KKwl7a2V5OiBoYW5kbGVyLCBp
bXBsOiBvcmcucGljb2NvbnRhaW5lci5nZW1zLmNvbnRhaW5lcnMuU2VyaWVzSGFuZGxlciwgcGFy
YW1ldGVyczogW3t2YWx1ZTogb3JnLnBpY29jb250YWluZXIuZ2Vtcy5jb250YWluZXJzLlN1bVBy
b2Nlc3NvciwgdHlwZTogY2xhc3N9LCB7a2V5OiBtdWx0aXBsaWVyfV19LA0KKwl7a2V5OiBtdWx0
aXBsaWVyLCB2YWx1ZTogMywgdHlwZTogaW50fSwNCitdDQpJbmRleDogcGljby9nZW1zL3NyYy90
ZXN0L29yZy9waWNvY29udGFpbmVyL2dlbXMvY29udGFpbmVycy9jZmc0Lmpzb24NCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCi0tLSBwaWNvL2dlbXMvc3JjL3Rlc3Qvb3JnL3BpY29jb250YWluZXIvZ2Vtcy9jb250YWlu
ZXJzL2NmZzQuanNvbgkocmV2aXNpb24gMCkNCisrKyBwaWNvL2dlbXMvc3JjL3Rlc3Qvb3JnL3Bp
Y29jb250YWluZXIvZ2Vtcy9jb250YWluZXJzL2NmZzQuanNvbgkod29ya2luZyBjb3B5KQ0KQEAg
LTAsMCArMSw2IEBADQorWw0KKwl7a2V5OiBiYXNlUHJvY2Vzc29yLCBpbXBsOiBvcmcucGljb2Nv
bnRhaW5lci5nZW1zLmNvbnRhaW5lcnMuU3VtUHJvY2Vzc29yfSwNCisJe2tleTogcHJvY2Vzc29y
LCBpbXBsOiBvcmcucGljb2NvbnRhaW5lci5nZW1zLmNvbnRhaW5lcnMuQWJzUHJvY2Vzc29yLCBw
YXJhbWV0ZXJzOiBbe2tleTogYmFzZVByb2Nlc3Nvcn1dfSwNCisJe2tleTogaGFuZGxlciwgaW1w
bDogb3JnLnBpY29jb250YWluZXIuZ2Vtcy5jb250YWluZXJzLlNlcmllc0hhbmRsZXIsIHBhcmFt
ZXRlcnM6IFt7a2V5OiBwcm9jZXNzb3J9LCB7a2V5OiBtdWx0aXBsaWVyfV19LA0KKwl7a2V5OiBt
dWx0aXBsaWVyLCB2YWx1ZTogNCwgdHlwZTogaW50fSwNCitdDQpJbmRleDogcGljby9nZW1zL3Ny
Yy90ZXN0L29yZy9waWNvY29udGFpbmVyL2dlbXMvY29udGFpbmVycy9Kc29uUGljb0NvbnRhaW5l
clRlc3QuamF2YQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHBpY28vZ2Vtcy9zcmMvdGVzdC9vcmcvcGljb2Nv
bnRhaW5lci9nZW1zL2NvbnRhaW5lcnMvSnNvblBpY29Db250YWluZXJUZXN0LmphdmEJKHJldmlz
aW9uIDApDQorKysgcGljby9nZW1zL3NyYy90ZXN0L29yZy9waWNvY29udGFpbmVyL2dlbXMvY29u
dGFpbmVycy9Kc29uUGljb0NvbnRhaW5lclRlc3QuamF2YQkod29ya2luZyBjb3B5KQ0KQEAgLTAs
MCArMSwyOCBAQA0KK3BhY2thZ2Ugb3JnLnBpY29jb250YWluZXIuZ2Vtcy5jb250YWluZXJzOw0K
Kw0KK2ltcG9ydCBzdGF0aWMgb3JnLmp1bml0LkFzc2VydC5hc3NlcnRFcXVhbHM7DQorDQoraW1w
b3J0IGphdmEuaW8uSW5wdXRTdHJlYW1SZWFkZXI7DQorDQoraW1wb3J0IG9yZy5qdW5pdC5UZXN0
Ow0KKw0KK2ltcG9ydCBvcmcucGljb2NvbnRhaW5lci5NdXRhYmxlUGljb0NvbnRhaW5lcjsNCisN
CitwdWJsaWMgY2xhc3MgSnNvblBpY29Db250YWluZXJUZXN0IHsNCisJcHVibGljIGludCBnZXRS
ZXN1bHQoU3RyaW5nIGpzb25GaWxlTmFtZSkgew0KKwkJSW5wdXRTdHJlYW1SZWFkZXIgcmVhZGVy
ID0gbmV3IElucHV0U3RyZWFtUmVhZGVyKEpzb25QaWNvQ29udGFpbmVyVGVzdC5jbGFzcy5nZXRS
ZXNvdXJjZUFzU3RyZWFtKGpzb25GaWxlTmFtZSkpOw0KKwkJTXV0YWJsZVBpY29Db250YWluZXIg
cGljbyA9IG5ldyBKc29uUGljb0NvbnRhaW5lcihyZWFkZXIpOw0KKwkJU2VyaWVzSGFuZGxlciBo
YW5kbGVyID0gKFNlcmllc0hhbmRsZXIpcGljby5nZXRDb21wb25lbnQoImhhbmRsZXIiKTsNCisJ
CWlmKGhhbmRsZXIgPT0gbnVsbCkgdGhyb3cgbmV3IFBpY29Kc29uRXhjZXB0aW9uKCJoYW5kbGVy
IGlzIG51bGwuIik7DQorCQloYW5kbGVyLmhhbmRsZVNlcmllcygxLCAtMiwgMywgLTQsIDUpOw0K
KwkJcmV0dXJuIGhhbmRsZXIuZ2V0UmVzdWx0KCk7DQorCX0NCisNCisJQFRlc3QgcHVibGljIHZv
aWQgdGVzdDEoKSB7IGFzc2VydEVxdWFscygzLCBnZXRSZXN1bHQoImNmZzEuanNvbiIpKTsgfQ0K
Kw0KKwlAVGVzdCBwdWJsaWMgdm9pZCB0ZXN0MigpIHsgYXNzZXJ0RXF1YWxzKDYsIGdldFJlc3Vs
dCgiY2ZnMi5qc29uIikpOyB9DQorDQorCUBUZXN0IHB1YmxpYyB2b2lkIHRlc3QzKCkgeyBhc3Nl
cnRFcXVhbHMoOSwgZ2V0UmVzdWx0KCJjZmczLmpzb24iKSk7IH0NCisNCisJQFRlc3QgcHVibGlj
IHZvaWQgdGVzdDQoKSB7IGFzc2VydEVxdWFscyg2MCwgZ2V0UmVzdWx0KCJjZmc0Lmpzb24iKSk7
IH0NCit9DQpJbmRleDogcGljby9nZW1zL3NyYy90ZXN0L29yZy9waWNvY29udGFpbmVyL2dlbXMv
Y29udGFpbmVycy9Qcm9jZXNzb3IuamF2YQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIHBpY28vZ2Vtcy9zcmMv
dGVzdC9vcmcvcGljb2NvbnRhaW5lci9nZW1zL2NvbnRhaW5lcnMvUHJvY2Vzc29yLmphdmEJKHJl
dmlzaW9uIDApDQorKysgcGljby9nZW1zL3NyYy90ZXN0L29yZy9waWNvY29udGFpbmVyL2dlbXMv
Y29udGFpbmVycy9Qcm9jZXNzb3IuamF2YQkod29ya2luZyBjb3B5KQ0KQEAgLTAsMCArMSw4IEBA
DQorcGFja2FnZSBvcmcucGljb2NvbnRhaW5lci5nZW1zLmNvbnRhaW5lcnM7DQorDQorcHVibGlj
IGludGVyZmFjZSBQcm9jZXNzb3Igew0KKwl2b2lkIHN0YXJ0UHJvY2Vzc2luZygpOw0KKwl2b2lk
IHByb2Nlc3NFbGVtZW50KGludCBlbGVtZW50KTsNCisJdm9pZCB0ZXJtaW5hdGVQcm9jZXNzaW5n
KCk7DQorCWludCBnZXRSZXN1bHQoKTsNCit9DQpJbmRleDogcGljby9nZW1zL3NyYy90ZXN0L29y
Zy9waWNvY29udGFpbmVyL2dlbXMvY29udGFpbmVycy9TZXJpZXNIYW5kbGVyLmphdmENCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBwaWNvL2dlbXMvc3JjL3Rlc3Qvb3JnL3BpY29jb250YWluZXIvZ2Vtcy9jb250
YWluZXJzL1Nlcmllc0hhbmRsZXIuamF2YQkocmV2aXNpb24gMCkNCisrKyBwaWNvL2dlbXMvc3Jj
L3Rlc3Qvb3JnL3BpY29jb250YWluZXIvZ2Vtcy9jb250YWluZXJzL1Nlcmllc0hhbmRsZXIuamF2
YQkod29ya2luZyBjb3B5KQ0KQEAgLTAsMCArMSwyNyBAQA0KK3BhY2thZ2Ugb3JnLnBpY29jb250
YWluZXIuZ2Vtcy5jb250YWluZXJzOw0KKw0KK3B1YmxpYyBjbGFzcyBTZXJpZXNIYW5kbGVyIHsN
CisJcHJpdmF0ZSBmaW5hbCBQcm9jZXNzb3IgcHJvY2Vzc29yOw0KKwlwcml2YXRlIGZpbmFsIGlu
dCBtdWx0aXBsaWVyOw0KKw0KKwlwdWJsaWMgU2VyaWVzSGFuZGxlcihQcm9jZXNzb3IgcHJvY2Vz
c29yKSB7DQorCQl0aGlzKHByb2Nlc3NvciwgMSk7DQorCX0NCisNCisJcHVibGljIFNlcmllc0hh
bmRsZXIoUHJvY2Vzc29yIHByb2Nlc3NvciwgaW50IG11bHRpcGxpZXIpIHsNCisJCXRoaXMucHJv
Y2Vzc29yID0gcHJvY2Vzc29yOw0KKwkJdGhpcy5tdWx0aXBsaWVyID0gbXVsdGlwbGllcjsNCisJ
fQ0KKw0KKwlwdWJsaWMgdm9pZCBoYW5kbGVTZXJpZXMoaW50Li4uIGVsZW1lbnRzKSB7DQorCQlw
cm9jZXNzb3Iuc3RhcnRQcm9jZXNzaW5nKCk7DQorCQlmb3IoaW50IGVsZW1lbnQgOiBlbGVtZW50
cykgew0KKwkJCXByb2Nlc3Nvci5wcm9jZXNzRWxlbWVudChlbGVtZW50KTsNCisJCX0NCisJCXBy
b2Nlc3Nvci50ZXJtaW5hdGVQcm9jZXNzaW5nKCk7DQorCX0NCisNCisJcHVibGljIGludCBnZXRS
ZXN1bHQoKSB7DQorCQlyZXR1cm4gbXVsdGlwbGllciAqIHByb2Nlc3Nvci5nZXRSZXN1bHQoKTsN
CisJfQ0KK30NCkluZGV4OiBwaWNvL2dlbXMvc3JjL3Rlc3Qvb3JnL3BpY29jb250YWluZXIvZ2Vt
cy9jb250YWluZXJzL1N1bVByb2Nlc3Nvci5qYXZhDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gcGljby9nZW1z
L3NyYy90ZXN0L29yZy9waWNvY29udGFpbmVyL2dlbXMvY29udGFpbmVycy9TdW1Qcm9jZXNzb3Iu
amF2YQkocmV2aXNpb24gMCkNCisrKyBwaWNvL2dlbXMvc3JjL3Rlc3Qvb3JnL3BpY29jb250YWlu
ZXIvZ2Vtcy9jb250YWluZXJzL1N1bVByb2Nlc3Nvci5qYXZhCSh3b3JraW5nIGNvcHkpDQpAQCAt
MCwwICsxLDIyIEBADQorcGFja2FnZSBvcmcucGljb2NvbnRhaW5lci5nZW1zLmNvbnRhaW5lcnM7
DQorDQorcHVibGljIGNsYXNzIFN1bVByb2Nlc3NvciBpbXBsZW1lbnRzIFByb2Nlc3NvciB7DQor
CXByaXZhdGUgaW50IHJlc3VsdDsNCisNCisJcHVibGljIHZvaWQgc3RhcnRQcm9jZXNzaW5nKCkg
ew0KKwkJcmVzdWx0ID0gMDsNCisJfQ0KKw0KKwlwdWJsaWMgdm9pZCBwcm9jZXNzRWxlbWVudChp
bnQgZWxlbWVudCkgew0KKwkJcmVzdWx0ICs9IGVsZW1lbnQ7DQorCX0NCisNCisJcHVibGljIGlu
dCBnZXRSZXN1bHQoKSB7DQorCQlyZXR1cm4gcmVzdWx0Ow0KKwl9DQorDQorCXB1YmxpYyB2b2lk
IHRlcm1pbmF0ZVByb2Nlc3NpbmcoKSB7DQorCQkvLyBFbXB0eSBpbXBsZW1lbnRhdGlvbg0KKwl9
DQorDQorfQ0K


--_24a6fc76-7365-4295-b763-95af1c0d3635_
Content-Type: text/plain; charset=us-ascii


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email

--_24a6fc76-7365-4295-b763-95af1c0d3635_--