[Mailman-Developers] command handler patch (required)

Balazs Nagy julian7@kva.hu
Tue, 29 Sep 1998 11:56:15 +0200 (CEST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---456965764-757754089-907062975=:3222
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hiyas,

This patch obsoletes my earlier digest patch.  This diff fixes the digest
problem and adds five new email commands: enable, disable, edit, put,
setattr.  With this patch you get access for all of the admin settings in
www.  Please apply it.  It have to be the last required patch you're
applying.
-- 
   Linux Supporting Center -- Red Hat Qmail packages -- http://lsc.kva.hu
      PGP 0x1DE3631D / A8 B4 92 EE 1F 55 27 C8  86 64 9C 42 41 A4 BD B8

---456965764-757754089-907062975=:3222
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="mailman-cmdhandler.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.02.9809291156150.3222@krondor.kva.hu>
Content-Description: 
Content-Disposition: attachment; filename="mailman-cmdhandler.patch"

LS0tIG1haWxtYW4ub3JpZy9NYWlsbWFuL01haWxDb21tYW5kSGFuZGxlci5w
eQlNb24gU2VwICA3IDE2OjA0OjUzIDE5OTgNCisrKyBtYWlsbWFuL01haWxt
YW4vTWFpbENvbW1hbmRIYW5kbGVyLnB5CVR1ZSBTZXAgMjkgMTA6NDY6Mzgg
MTk5OA0KQEAgLTQ5LDcgKzQ5LDcgQEANCiAJCSAnaGlkZScgICA6DQogCQkg
ICAgJ0NvbmNlYWxzIHlvdXIgZW1haWwgZnJvbSB0aGUgbGlzdCBvZiBzdWJz
Y3JpYmVycycNCiAJICAgICAgIH0NCi1vcHRpb25faW5mbyA9IHsgJ2RpZ2Vz
dCcgOiAwLA0KK29wdGlvbl9pbmZvID0gew0KIAkJJ25vbWFpbCcgOiBtbV9j
ZmcuRGlzYWJsZURlbGl2ZXJ5LA0KIAkJJ25vcmN2JyAgOiBtbV9jZmcuRG9u
dFJlY2VpdmVPd25Qb3N0cywNCiAJCSdhY2snICAgIDogbW1fY2ZnLkFja25v
d2xlZ2VQb3N0cywNCkBAIC01OCw3ICs1OCwxMCBAQA0KIAkJfQ0KIA0KIGNs
YXNzIE1haWxDb21tYW5kSGFuZGxlcjoNCisNCiAgICAgZGVmIF9faW5pdF9f
KHNlbGYpOg0KKwlpbXBvcnQgdHlwZXMNCisJc2VsZi5lbmFibGVkID0gMA0K
IAlzZWxmLl9yZXNwb25zZV9idWZmZXIgPSAnJw0KIAlzZWxmLl9jbWRfZGlz
cGF0Y2ggPSB7DQogCSAgICAnc3Vic2NyaWJlJyA6IHNlbGYuUHJvY2Vzc1N1
YnNjcmliZUNtZCwNCkBAIC03MSw4ICs3NCwyNiBAQA0KIAkgICAgJ3NldCcg
OiBzZWxmLlByb2Nlc3NTZXRDbWQsDQogCSAgICAnb3B0aW9ucycgOiBzZWxm
LlByb2Nlc3NPcHRpb25zQ21kLA0KIAkgICAgJ3Bhc3N3b3JkJyA6IHNlbGYu
UHJvY2Vzc1Bhc3N3b3JkQ21kLA0KKwkgICAgJ2VuYWJsZScgOiBzZWxmLlBy
b2Nlc3NFbmFibGVDbWQsDQorCSAgICAnZGlzYWJsZScgOiBzZWxmLlByb2Nl
c3NEaXNhYmxlQ21kLA0KKwkgICAgJ2VkaXQnIDogc2VsZi5Qcm9jZXNzRWRp
dENtZCwNCisJICAgICdwdXQnIDogc2VsZi5Qcm9jZXNzUHV0Q21kLA0KKwkg
ICAgJ3NldGF0dHInOiBzZWxmLlByb2Nlc3NTZXRhdHRyQ21kLA0KIAkgICAg
fQ0KKwlzZWxmLl9jbWRfcG9vbGVkX2Rpc3BhdGNoID0gKA0KKwkgICAgJ3B1
dCcsDQorCSAgICApDQogICAgICAgICBzZWxmLl9fTm9NYWlsQ21kUmVzcG9u
c2UgPSAwDQorCXNlbGYuX0VkaXRGaWxlcyA9IHt9DQorCXNlbGYuX2NvbmZp
Z19pbmZvID0gc2VsZi5HZXRDb25maWdJbmZvKCkNCisJZm9yIGkgaW4gc2Vs
Zi5fY29uZmlnX2luZm8ua2V5cygpOg0KKwkgICAgZm9yIG8gaW4gc2VsZi5f
Y29uZmlnX2luZm9baV06DQorCQlpZiB0eXBlKG8pICE9IHR5cGVzLlN0cmlu
Z1R5cGU6DQorCQkgICAgaWYgbGVuKG8pID4gNToNCisJCQlhbGwgPSBvWzVd
DQorCQkgICAgZWxzZToNCisJCQlhbGwgPSAiIg0KKwkJICAgIHNlbGYuX0Vk
aXRGaWxlc1tvWzBdXSA9IFtvWzFdLCBpLCBvWzRdLCBhbGxdDQogDQogICAg
IGRlZiBBZGRUb1Jlc3BvbnNlKHNlbGYsIHRleHQpOg0KIAlzZWxmLl9yZXNw
b25zZV9idWZmZXIgPSBzZWxmLl9yZXNwb25zZV9idWZmZXIgKyB0ZXh0ICsg
IlxuIg0KQEAgLTEyMCwyMyArMTQxLDM2IEBADQogCQllbHNlOg0KIAkJICAg
IHNlbGYuQWRkRXJyb3IoIlN1YmplY3QgbGluZSBpZ25vcmVkOiAlcyIgJSBz
dWJqZWN0KQ0KICAgICAgICAgcHJvY2Vzc2VkID0ge30gICAgICAgICAgICAg
ICAgICAgICAgIyBGb3IgYXZvaWRpbmcgcmVkdW5kYW5jaWVzLg0KLSAgICAg
ICAgbWF4bGluZXMgPSBtbV9jZmcuREVGQVVMVF9NQUlMX0NPTU1BTkRTX01B
WF9MSU5FUw0KKyAgICAgICAgbWF4Y21kcyA9IG1tX2NmZy5ERUZBVUxUX01B
SUxfQ09NTUFORFNfTUFYX0xJTkVTDQorCWNtZGxpbmVzID0gMA0KKwljbWRt
b2RlID0gMA0KKwlwb29sID0gJycNCiAJZm9yIGxpbmVjb3VudCBpbiByYW5n
ZShsZW4obGluZXMpKToNCiAJICAgIGxpbmUgPSBzdHJpbmcuc3RyaXAobGlu
ZXNbbGluZWNvdW50XSkNCi0JICAgIGlmIG5vdCBsaW5lOg0KKwkgICAgaWYg
bm90IGxpbmUgYW5kIG5vdCBjbWRtb2RlOg0KIAkJY29udGludWUNCi0gICAg
ICAgICAgICBpZiBsaW5lY291bnQgPiBtYXhsaW5lczoNCisgICAgICAgICAg
ICBpZiBjbWRsaW5lcyA+IG1heGNtZHM6DQogICAgICAgICAgICAgICAgIHNl
bGYuQWRkVG9SZXNwb25zZSgiXG4iKQ0KICAgICAgICAgICAgICAgICBzZWxm
LkFkZEVycm9yKCJNYXhpbXVtIGNvbW1hbmQgbGluZXMgKCVkKSBlbmNvdW50
ZXJlZCwiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpZ25v
cmluZyB0aGUgcmVzdC4uLiIgJSBtYXhsaW5lcykNCiAgICAgICAgICAgICAg
ICAgc2VsZi5BZGRUb1Jlc3BvbnNlKCI8PDwgIiArIHN0cmluZy5qb2luKGxp
bmVzW2xpbmVjb3VudDpdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcbjw8PCAiKSkNCiAgICAg
ICAgICAgICAgICAgYnJlYWsNCisJICAgIGlmIGNtZG1vZGU6DQorCQlpZiBs
aW5lIGluIFsnLUVORC0nLCAnLWVuZC0nXToNCisJCSAgICBzZWxmLl9jbWRf
ZGlzcGF0Y2hbcG9vbGVkX2NtZF0ocG9vbGVkX2FyZ3MsIHBvb2wsIG1haWwp
DQorCQkgICAgcG9vbCA9ICcnDQorCQkgICAgY21kbW9kZSA9IDANCisJCSAg
ICBjb250aW51ZQ0KKwkJZWxzZToNCisJCSAgICBwb29sID0gcG9vbCArIGxp
bmVzW2xpbmVjb3VudF0gKyAiXG4iDQorCQkgICAgY29udGludWUNCisJICAg
IGNtZGxpbmVzID0gY21kbGluZXMgKyAxDQogCSAgICBzZWxmLkFkZFRvUmVz
cG9uc2UoIlxuPj4+PiAlcyIgJSBsaW5lKQ0KIAkgICAgYXJncyA9IHN0cmlu
Zy5zcGxpdChsaW5lKQ0KIAkgICAgY21kID0gc3RyaW5nLmxvd2VyKGFyZ3Nb
MF0pDQogCSAgICBhcmdzID0gYXJnc1sxOl0NCi0JICAgIGlmIGNtZCA9PSAn
ZW5kJzoNCisJICAgIGlmIGNtZCBpbiBbJ2VuZCcsICctLSddOg0KIAkJc2Vs
Zi5BZGRFcnJvcigiRW5kIG9mIGNvbW1hbmRzLiIpDQogCQlicmVhaw0KIAkg
ICAgaWYgbm90IHNlbGYuX2NtZF9kaXNwYXRjaC5oYXNfa2V5KGNtZCk6DQpA
QCAtMTU1LDkgKzE4OSwxOCBAQA0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhaw0KICAgICAgICAgICAgICAgICBpZiBub3QgaXNkdXA6DQog
ICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWRbY21kXS5hcHBlbmQoYXJn
cykNCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2NtZF9kaXNwYXRjaFtj
bWRdKGFyZ3MsIGxpbmUsIG1haWwpDQorCQkgICAgaWYgY21kIGluIHNlbGYu
X2NtZF9wb29sZWRfZGlzcGF0Y2g6DQorCQkJcG9vbGVkX2NtZCA9IGNtZA0K
KwkJCXBvb2xlZF9hcmdzID0gYXJncw0KKwkJCXBvb2xlZF9saW5lID0gbGlu
ZQ0KKwkJCWNtZG1vZGUgPSAxDQorCQkgICAgZWxzZToNCisgICAgICAgICAg
ICAgICAgCXNlbGYuX2NtZF9kaXNwYXRjaFtjbWRdKGFyZ3MsIGxpbmUsIG1h
aWwpDQorCWlmIGNtZG1vZGU6DQorCSAgICBzZWxmLl9jbWRfZGlzcGF0Y2hb
cG9vbGVkX2NtZF0ocG9vbGVkX2FyZ3MsIHBvb2wsIG1haWwpDQogICAgICAg
ICBpZiBub3Qgc2VsZi5fX05vTWFpbENtZFJlc3BvbnNlOg0KICAgICAgICAg
ICAgIHNlbGYuU2VuZE1haWxDbWRSZXNwb25zZShtYWlsKQ0KKwlzeXMuZXhp
dCgwKQ0KIA0KICAgICBkZWYgU2VuZE1haWxDbWRSZXNwb25zZShzZWxmLCBt
YWlsKToNCiAJc2VsZi5TZW5kVGV4dFRvVXNlcihzdWJqZWN0ID0gJ01haWxt
YW4gcmVzdWx0cyBmb3IgJXMnICUgDQpAQCAtMTY3LDYgKzIxMCwxMzQgQEAN
CiAJCQkgICAgdGV4dCA9IHNlbGYuX3Jlc3BvbnNlX2J1ZmZlcikNCiAJc2Vs
Zi5fcmVzcG9uc2VfYnVmZmVyID0gJycNCiANCisgICAgZGVmIFByb2Nlc3NF
bmFibGVDbWQoc2VsZiwgYXJncywgY21kbGluZSwgbWFpbCk6DQorCWlmIGxl
bihhcmdzKSA8PiAxOg0KKwkgICAgc2VsZi5BZGRFcnJvcigiVXNhZ2U6IGVu
YWJsZSA8YWRtaW4gcGFzc3dvcmQ+IikNCisJICAgIHNlbGYuZW5hYmxlZCA9
IDANCisJICAgIHJldHVybg0KKwl0cnk6DQorCSAgICBzZWxmLkNvbmZpcm1B
ZG1pblBhc3N3b3JkKGFyZ3NbMF0pDQorCWV4Y2VwdCBFcnJvcnMuTU1CYWRQ
YXNzd29yZEVycm9yOg0KKwkgICAgc2VsZi5BZGRFcnJvcigiSW5jb3JyZWN0
IGFkbWluIHBhc3N3b3JkIikNCisJICAgIHNlbGYuZW5hYmxlZCA9IDANCisJ
ICAgIHJldHVybg0KKwlzZWxmLmVuYWJsZWQgPSAxDQorCXNlbGYuQWRkVG9S
ZXNwb25zZSgiQWRtaW4gY29tbWFuZHMgZW5hYmxlZC4iKQ0KKw0KKyAgICBk
ZWYgUHJvY2Vzc0Rpc2FibGVDbWQoc2VsZiwgYXJncywgY21kbGluZSwgbWFp
bCk6DQorCXNlbGYuZW5hYmxlZCA9IDANCisJc2VsZi5BZGRUb1Jlc3BvbnNl
KCJBZG1pbiBjb21tYW5kcyBkaXNhYmxlZC4iKQ0KKw0KKyAgICBkZWYgZW5h
YmxlQ2hlY2soc2VsZik6DQorCWlmIG5vdCBzZWxmLmVuYWJsZWQ6DQorCSAg
ICBzZWxmLkFkZEVycm9yKCJFbmFibGUgYWRtaW4gY29tbWFuZHMgZmlyc3Qu
IikNCisJICAgIHJldHVybiAwDQorCXJldHVybiAxDQorDQorICAgIGRlZiBf
RWRpdEZpbGUoc2VsZiwgZm5hbWUpOg0KKwlpZiBzZWxmLl9FZGl0RmlsZXNb
Zm5hbWVdWzBdIGluIFttbV9jZmcuUmFkaW8sIG1tX2NmZy5Ub2dnbGVdOg0K
KwkgICAgaWYgZ2V0YXR0cihzZWxmLCBmbmFtZSk6DQorCQl0eHQgPSAib24i
DQorCSAgICBlbHNlOg0KKwkJdHh0ID0gIm9mZiINCisJICAgIHRleHQgPSAi
c2V0YXR0ciAlcyAlcyIgJSAoZm5hbWUsIHR4dCkNCisJZWxpZiBzZWxmLl9F
ZGl0RmlsZXNbZm5hbWVdWzBdID09IG1tX2NmZy5FbWFpbExpc3Q6DQorCSAg
ICB0ZXh0ID0gInB1dCAlc1xuJXNcbi1lbmQtIiAlIChmbmFtZSwgc3RyaW5n
LmpvaW4oZ2V0YXR0cihzZWxmLCBmbmFtZSksIlxuIikpDQorCWVsaWYgc2Vs
Zi5fRWRpdEZpbGVzW2ZuYW1lXVswXSBpbiBbbW1fY2ZnLkVtYWlsLCBtbV9j
ZmcuSG9zdF06DQorCSAgICB0ZXh0ID0gInNldGF0dHIgJXMgJXMiICUgKGZu
YW1lLCBnZXRhdHRyKHNlbGYsIGZuYW1lKSkNCisJZWxpZiBzZWxmLl9FZGl0
RmlsZXNbZm5hbWVdWzBdID09IG1tX2NmZy5TdHJpbmc6DQorCSAgICB0ZXh0
ID0gInNldGF0dHIgJXMgXCIlc1wiIiAlIChmbmFtZSwgZ2V0YXR0cihzZWxm
LCBmbmFtZSkpDQorCWVsaWYgc2VsZi5fRWRpdEZpbGVzW2ZuYW1lXVswXSA9
PSBtbV9jZmcuTnVtYmVyOg0KKwkgICAgdGV4dCA9ICJzZXRhdHRyICVzICVk
IiAlIChmbmFtZSwgZ2V0YXR0cihzZWxmLCBmbmFtZSkpDQorCWVsc2U6DQor
CSAgICB0ZXh0ID0gInB1dCAlc1xuJXMtZW5kLSIgJSAoZm5hbWUsIGdldGF0
dHIoc2VsZiwgZm5hbWUpKQ0KKwlyZXR1cm4gdGV4dA0KKw0KKyAgICBkZWYg
UHJvY2Vzc0VkaXRDbWQoc2VsZiwgYXJncywgY21kbGluZSwgbWFpbCk6DQor
CWlmIG5vdCBzZWxmLmVuYWJsZUNoZWNrKCk6DQorCSAgICBzZWxmLkFkZEVy
cm9yKCJBZG1pbiBjb21tYW5kcyBkaXNhYmxlZC4iKQ0KKwkgICAgcmV0dXJu
DQorCWlmIGxlbihhcmdzKSA8PiAxOg0KKwkgICAgc2VsZi5BZGRFcnJvcigi
VXNhZ2U6IGVkaXQgPHNldHRpbmc+fGFsbCIpDQorCSAgICByZXR1cm4NCisJ
aWYgc2VsZi5fRWRpdEZpbGVzLmhhc19rZXkoYXJnc1swXSk6DQorCSAgICBz
ZWxmLkFkZFRvUmVzcG9uc2Uoc2VsZi5fRWRpdEZpbGUoYXJnc1swXSkpDQor
CWVsaWYgYXJnc1swXSA9PSAnYWxsJzoNCisJICAgIGt5cyA9IHNlbGYuX0Vk
aXRGaWxlcy5rZXlzKCkNCisJICAgIGt5cy5zb3J0KCkNCisJICAgIGZvciBp
IGluIGt5czoNCisJCXNlbGYuQWRkVG9SZXNwb25zZShzZWxmLl9FZGl0Rmls
ZShpKSkNCisJZWxzZToNCisJICAgIHNlbGYuQWRkRXJyb3IoJ05vIHN1Y2gg
ZmlsZS4gIFlvdSBjYW4gY2hvb3NlIGZyb20nKQ0KKwkgICAgc2VsZi5BZGRF
cnJvcigiJXMiICUgc2VsZi5fRWRpdEZpbGVzLmtleXMoKSkNCisJICAgIA0K
KyAgICBkZWYgRW1haWxDaGVjayhhZGRyKToNCisJdHJ5Og0KKwkgICAgdmFs
aWQgPSBVdGlscy5WYWxpZEVtYWlsKGFkZHIpDQorCSAgICBpZiB2YWxpZDoN
CisJCXJldHVybiAxDQorCSAgICBlbHNlOg0KKwkJcmV0dXJuIDANCisJZXhj
ZXB0Og0KKwkgICAgcmV0dXJuIDANCisNCisgICAgZGVmIFByb2Nlc3NQdXRD
bWQoc2VsZiwgYXJncywgcG9vbCwgbWFpbCk6DQorCWlmIG5vdCBzZWxmLmVu
YWJsZUNoZWNrKCk6DQorCSAgICBzZWxmLkFkZEVycm9yKCJBZG1pbiBjb21t
YW5kcyBkaXNhYmxlZC4iKQ0KKwkgICAgcmV0dXJuDQorCWlmIGxlbihhcmdz
KSA8PiAxOg0KKwkgICAgc2VsZi5BZGRyRXJyb3IoIlVzYWdlOiBwdXQgPHNl
dHRpbmc+IikNCisJICAgIHJldHVybg0KKwlpZiBzZWxmLl9FZGl0RmlsZXMu
aGFzX2tleShhcmdzWzBdKToNCisJICAgIHR5cGUgPSBzZWxmLl9FZGl0Rmls
ZXNbYXJnc1swXV1bMF0NCisJICAgIGlmIHR5cGUgPT0gbW1fY2ZnLkVtYWls
TGlzdDoNCisJCXBvb2wgPSBmaWx0ZXIoRW1haWxDaGVjaywNCisJCQkgICAg
ICBtYXAoc3RyaW5nLnN0cmlwLCBzdHJpbmcuc3BsaXQocG9vbCwgJ1xuJykp
KQ0KKwkgICAgZWxpZiB0eXBlICE9IG1tX2NmZy5UZXh0Og0KKwkJc2VsZi5B
ZGRFcnJvcigiSW52YWxpZCB0eXBlIGZvciAlcy4iICUgYXJnc1swXSkNCisJ
CXJldHVybg0KKwkgICAgc2V0YXR0cihzZWxmLCBhcmdzWzBdLCBwb29sKQ0K
KwkgICAgc2VsZi5TYXZlKCkNCisJc2VsZi5BZGRUb1Jlc3BvbnNlKCdTdWNj
ZWVlZGVkLicpDQorDQorDQorICAgIGRlZiBQcm9jZXNzU2V0YXR0ckNtZChz
ZWxmLCBhcmdzLCBjbWRsaW5lLCBtYWlsKToNCisJaWYgbm90IHNlbGYuZW5h
YmxlQ2hlY2soKToNCisJICAgIHNlbGYuQWRkRXJyb3IoIkFkbWluIGNvbW1h
bmRzIGRpc2FibGVkLiIpDQorCSAgICByZXR1cm4NCisJaWYgbGVuKGFyZ3Mp
IDwgMToNCisJICAgIHNlbGYuQWRkRXJyb3IoIlVzYWdlOiBzZXRhdHRyIDxm
aWxlPiA8YXR0cmlidXRlPiIpDQorCSAgICByZXR1cm4NCisJaWYgc2VsZi5f
RWRpdEZpbGVzLmhhc19rZXkoYXJnc1swXSk6DQorCSAgICB0eXBlID0gc2Vs
Zi5fRWRpdEZpbGVzW2FyZ3NbMF1dWzBdDQorCSAgICB0cnk6DQorCQlyZXR2
ID0gcmUubWF0Y2goIl5ccypcUytccytcUytccytcIiguKlteXCJdKVwiPyQi
LA0KKwkJICAgIGNtZGxpbmUpLmdyb3VwKDEpDQorCSAgICBleGNlcHQgQXR0
cmlidXRlRXJyb3I6DQorCQlzZWxmLkFkZEVycm9yKCJJbnZhbGlkIHN0cmlu
ZyAlcy4iICUgY21kbGluZSkNCisJCXJldHVybg0KKwkgICAgaWYgdHlwZSAh
PSBtbV9jZmcuVGV4dDoNCisJCWlmIHR5cGUgaW4gW21tX2NmZy5SYWRpbywg
bW1fY2ZnLlRvZ2dsZV06DQorCQkgICAgaWYgcmV0diBpbiBbIm9uIiwgInll
cyIsICJ0cnVlIiwgIjEiLCAieWVwIl06DQorCQkJcmV0diA9IDENCisJCSAg
ICBlbHNlOg0KKwkJCXJldHYgPSAwDQorCQllbGlmIHR5cGUgPT0gbW1fY2Zn
LkVtYWlsOg0KKwkJICAgIHJldHYgPSBzdHJpbmcuc3RyaXAocmV0dikNCisJ
CSAgICBpZiBub3QgRW1haWxDaGVjayhyZXR2KToNCisJCQlzZWxmLkFkZEVy
cm9yKCJJbnZhbGlkIGVtYWlsIGFkZHJlc3MgJXMiICUgcmV0dikNCisJCQly
ZXR1cm4NCisJCWVsaWYgdHlwZSA9PSBtbV9jZmcuTnVtYmVyOg0KKwkJICAg
IHJldHYgPSBldmFsKHJldHYpDQorCQkgICAgaWYgY21kbGluZSA8IDA6DQor
CQkJc2VsZi5BZGRFcnJvcigiSW52YWxpZCBudW1iZXIgJWQiICUgcmV0dikN
CisJCQlyZXR1cm4NCisJICAgIHNldGF0dHIoc2VsZiwgYXJnc1swXSwgcmV0
dikNCisJICAgIHNlbGYuU2F2ZSgpDQorCSAgICBzZWxmLkFkZFRvUmVzcG9u
c2UoJyVzIHNldCB0byAlcy4nJShhcmdzWzBdLCByZXR2KSkNCisJZWxzZToN
CisJICAgIHNlbGYuQWRkRXJyb3IoIk5vIHN1Y2ggZmlsZTogJXMiICUgYXJn
c1swXSkNCisNCiAgICAgZGVmIFByb2Nlc3NQYXNzd29yZENtZChzZWxmLCBh
cmdzLCBjbWQsIG1haWwpOg0KIAlpZiBsZW4oYXJncykgPD4gMjoNCiAJICAg
IHNlbGYuQWRkRXJyb3IoIlVzYWdlOiBwYXNzd29yZCA8b2xkcHc+IDxuZXdw
dz4iKQ0KQEAgLTIyMSw2ICszOTIsMTIgQEANCiAJICAgIHMuQWRkRXJyb3Io
IlZhbGlkIG9wdGlvbnMgYXJlOiIpDQogCSAgICBmb3Igb3B0aW9uIGluIG9w
dGlvbnM6DQogCQlzLkFkZEVycm9yKCIlczogICVzIiAlIChvcHRpb24sIG9k
W29wdGlvbl0pKQ0KKw0KKwlzZW5kZXIgPSBzZWxmLkZpbmRVc2VyKG1haWwu
R2V0U2VuZGVyKCkpDQorCWlmIG5vdCBzZW5kZXI6DQorCSAgICBzZWxmLkFk
ZEVycm9yKCJZb3UgYXJlbid0IHN1YnNjcmliZWQuIikNCisJICAgIHJldHVy
bg0KKw0KIAlpZiBsZW4oYXJncykgPD4gMzoNCiAJICAgIFNob3dTZXRVc2Fn
ZSgpDQogCSAgICByZXR1cm4NCkBAIC0yMzMsMTAgKzQxMCw2IEBADQogCSAg
ICByZXR1cm4NCiAJaWYgb3B0aW9uX2luZm8uaGFzX2tleShhcmdzWzBdKToN
CiAJICAgIHRyeToNCi0JCXNlbmRlciA9IHNlbGYuRmluZFVzZXIobWFpbC5H
ZXRTZW5kZXIoKSkNCi0JCWlmIG5vdCBzZW5kZXI6DQotCQkgICAgc2VsZi5B
ZGRFcnJvcigiWW91IGFyZW4ndCBzdWJzY3JpYmVkLiIpDQotCQkgICAgcmV0
dXJuDQogCQlzZWxmLkNvbmZpcm1Vc2VyUGFzc3dvcmQoc2VuZGVyLCBhcmdz
WzJdKQ0KIAkJc2VsZi5TZXRVc2VyT3B0aW9uKHNlbmRlciwgb3B0aW9uX2lu
Zm9bYXJnc1swXV0sIHZhbHVlKQ0KIAkJc2VsZi5BZGRUb1Jlc3BvbnNlKCJT
dWNjZWVkZWQuIikNCkBAIC0yNDksNyArNDIyLDggQEANCiAJCXNlbGYuQWRk
RXJyb3IoIiVzIiAlIHN5cy5leGNfdHlwZSkNCiAJZWxpZiBhcmdzWzBdID09
ICdkaWdlc3QnOg0KIAkgICAgdHJ5Og0KLQkJc2VsZi5TZXRVc2VyRGlnZXN0
KG1haWwuR2V0U2VuZGVyKCksIGFyZ3NbMl0sIHZhbHVlKQ0KKwkJc2VsZi5D
b25maXJtVXNlclBhc3N3b3JkKHNlbmRlciwgYXJnc1syXSkNCisJCXNlbGYu
U2V0VXNlckRpZ2VzdChtYWlsLkdldFNlbmRlcigpLCB2YWx1ZSkNCiAJCXNl
bGYuQWRkVG9SZXNwb25zZSgiU3VjY2VlZGVkLiIpDQogCSAgICBleGNlcHQg
RXJyb3JzLk1NQWxyZWFkeURpZ2VzdGVkOg0KIAkJc2VsZi5BZGRFcnJvcigi
WW91IGFyZSBhbHJlYWR5IHJlY2VpdmluZyBkaWdlc3RzLiIpDQpAQCAtNTU3
LDExICs3MzEsNDUgQEANCiAgICAgICAgIHNlbGYuQWRkRXJyb3IodGV4dCkN
CiANCiAgICAgZGVmIFByb2Nlc3NIZWxwQ21kKHNlbGYsIGFyZ3MsIGNtZCwg
bWFpbCk6DQorCWlmIGxlbihhcmdzKSA+PSAxOg0KKwkgICAgaWYgYXJnc1sw
XSBpbiBbImVkaXQiLCAicHV0IiwgInNldGF0dHIiXToNCisJCXNlbGYuVHlw
ZXMgPSB7DQorCQkgICAgbW1fY2ZnLlJhZGlvOiAic2V0YXR0cjsgeWVzIG9y
IG5vIiwNCisJCSAgICBtbV9jZmcuVG9nZ2xlOiAic2V0YXR0cjsgeWVzIG9y
IG5vIiwNCisJCSAgICBtbV9jZmcuRW1haWw6ICJzZXRhdHRyOyBlbWFpbCIs
DQorCQkgICAgbW1fY2ZnLlN0cmluZzogInNldGF0dHI7IHN0cmluZyBsaW5l
IiwNCisJCSAgICBtbV9jZmcuSG9zdDogInNldGF0dHI7IGhvc3QgbmFtZSIs
DQorCQkgICAgbW1fY2ZnLk51bWJlcjogInNldGF0dHI7IG51bWJlciIsDQor
CQkgICAgbW1fY2ZnLlRleHQ6ICJwdXQ7IHN0cmluZyBsaW5lcyIsDQorCQkg
ICAgbW1fY2ZnLkVtYWlsTGlzdDogInB1dDsgbGlzdCBvZiBlbWFpbHMgKG9u
ZSBpbiBhIGxpbmUpIg0KKwkJICAgIH0NCisJCWlmIGxlbihhcmdzKSA+IDEg
YW5kIGFyZ3NbMV0gPT0gImFsbCI6DQorCQkgICAgYWxsID0gMQ0KKwkJZWxz
ZToNCisJCSAgICBhbGwgPSAwDQorCQl0ZXh0ID0gIkZpbGVzIGluICVzOiIg
JSBhcmdzWzBdDQorCQlreXMgPSBzZWxmLl9FZGl0RmlsZXMua2V5cygpDQor
CQlreXMuc29ydCgpDQorCQlmb3IgaSBpbiBreXM6DQorCQkgICAgdHlwZSA9
IHNlbGYuVHlwZXNbc2VsZi5fRWRpdEZpbGVzW2ldWzBdXQ0KKwkJICAgIHR4
dCA9IFV0aWxzLndyYXAoc2VsZi5fRWRpdEZpbGVzW2ldWzJdKQ0KKwkJICAg
IGlmIGFsbCBhbmQgc2VsZi5fRWRpdEZpbGVzW2ldWzNdICE9ICIiOg0KKwkJ
CXR4dCA9IHR4dCArICJcbiIgKyBVdGlscy53cmFwKHNlbGYuX0VkaXRGaWxl
c1tpXVszXSkNCisJCSAgICB0ZXh0ID0gdGV4dCArICJcblxuJXMgKGZyb20g
JXMpOlxuICBbJXNdXG4gICIgJSAoaSwNCisJCQkgICAgc2VsZi5fRWRpdEZp
bGVzW2ldWzFdLCB0eXBlKSArIHN0cmluZy5qb2luKA0KKwkJCSAgICBzdHJp
bmcuc3BsaXQodHh0LCAiXG4iKSwgIlxuICAiKQ0KKwkJc2VsZi5BZGRUb1Jl
c3BvbnNlKHRleHQpDQorCQlyZXR1cm4NCisJICAgIGlmIGFyZ3NbMF0gPT0g
J2FkbWluJzoNCisJCXR4dCA9ICdhZG1pbmhlbHAudHh0Jw0KKwkgICAgZWxz
ZToNCisJCXR4dCA9ICdoZWxwLnR4dCcNCiAgICAgICAgIHRleHQgPSBVdGls
cy5tYWtldGV4dCgNCi0gICAgICAgICAgICAnaGVscC50eHQnLA0KKyAgICAg
ICAgICAgIHR4dCwNCiAgICAgICAgICAgICB7J2xpc3RuYW1lJyAgICA6IHNl
bGYucmVhbF9uYW1lLA0KICAgICAgICAgICAgICAndmVyc2lvbicgICAgIDog
bW1fY2ZnLlZFUlNJT04sDQotICAgICAgICAgICAgICdsaXN0aW5mb191cmwn
OiBzZWxmLkdldEFic29sdXRlU2NyaXB0VVJMKCdsaXN0aW5mbycpLA0KKyAg
ICAgICAgICAgICAnbGlzdGluZm9fdXJsJzogc2VsZi5HZXRBYnNvbHV0ZVNj
cmlwdFVSTChtbV9jZmcuTElTVElORk9fQ0dJKSwNCisgICAgICAgICAgICAg
J2FkbWluX3VybCcgICA6IHNlbGYuR2V0QWJzb2x1dGVTY3JpcHRVUkwobW1f
Y2ZnLkFETUlOX0NHSSksDQogICAgICAgICAgICAgICdyZXF1ZXN0YWRkcicg
OiBzZWxmLkdldFJlcXVlc3RFbWFpbCgpLA0KICAgICAgICAgICAgICAnYWRt
aW5hZGRyJyAgIDogc2VsZi5HZXRBZG1pbkVtYWlsKCksDQogICAgICAgICAg
ICAgIH0pDQotLS0gbWFpbG1hbi5vcmlnL01haWxtYW4vTWFpbExpc3QucHkg
ICAgVHVlIFNlcCAyOSAxMTo1MjozOCAxOTk4DQorKysgbWFpbG1hbi9NYWls
bWFuL01haWxMaXN0LnB5IFR1ZSBTZXAgMjkgMTE6NTI6NDkgMTk5OA0KQEAg
LTUzLDggKzUzLDggQEANCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWU9
Tm9uZSwgbG9jaz0xKToNCiAgICAgICAgIGlmIG5hbWUgYW5kIG5hbWUgbm90
IGluIFV0aWxzLmxpc3RfbmFtZXMoKToNCiAgICAgICAgICAgICAgICByYWlz
ZSBFcnJvcnMuTU1Vbmtub3duTGlzdEVycm9yLCAnbGlzdCBub3QgZm91bmQ6
ICVzJyAlIG5hbWUNCi0gICAgICAgTWFpbENvbW1hbmRIYW5kbGVyLl9faW5p
dF9fKHNlbGYpDQogICAgICAgICBzZWxmLkluaXRUZW1wVmFycyhuYW1lLCBs
b2NrKQ0KKyAgICAgICBNYWlsQ29tbWFuZEhhbmRsZXIuX19pbml0X18oc2Vs
ZikNCiAgICAgICAgaWYgbmFtZToNCiAgICAgICAgICAgIHNlbGYuX2Z1bGxf
cGF0aCA9IG9zLnBhdGguam9pbihtbV9jZmcuTElTVF9EQVRBX0RJUiwgbmFt
ZSkNCiAgICAgICAgICAgIHNlbGYuTG9hZCgpDQotLS0gbWFpbG1hbi5vcmln
L3RlbXBsYXRlcy9hZG1pbmhlbHAudHh0CVR1ZSBTZXAgMjIgMTQ6NTI6NTMg
MTk5OA0KKysrIG1haWxtYW4vdGVtcGxhdGVzL2FkbWluaGVscC50eHQJVHVl
IFNlcCAyOSAxMDo0ODoxNCAxOTk4DQpAQCAtMCwwICsxLDYyIEBADQorQWRt
aW4gaGVscCBmb3IgJShsaXN0bmFtZSlzIG1haWxpbmcgbGlzdDoNCisNCitU
aGlzIGlzIGFkbWluaXN0cmF0aW9uIGVtYWlsIGNvbW1hbmQgaGVscCBmb3Ig
dmVyc2lvbiAlKHZlcnNpb24pcyBvZiB0aGUNCisiTWFpbG1hbiIgbGlzdCBt
YW5hZ2VyLiAgVGhlIGZvbGxvd2luZyBkZXNjcmliZXMgY29tbWFuZHMgeW91
IGNhbiBzZW5kIHRvDQorZ2V0IGluZm9ybWF0aW9uIGFib3V0IGFuZCBjb250
cm9sIHlvdXIgTWFpbG1hbiBsaXN0LiAgQSBjb21tYW5kIGNhbiBiZSBpbg0K
K3RoZSBzdWJqZWN0IGxpbmUgb3IgaW4gdGhlIGJvZHkgb2YgdGhlIG1lc3Nh
Z2UuDQorDQorVGhlIGJhc2ljcyBvZiBlbWFpbCBjb21tYW5kcyBhcmUgZGVz
Y3JpYmVkIGluIHRoZSBvcmRpbmFyeSBoZWxwLiAgWW91IGNhbg0KK3JldHJp
ZXZlIGl0IHdpdGggJ2hlbHAnIGNvbW1hbmQgd2l0aG91dCBhcmd1bWVudHMu
DQorDQorTm90ZSB0aGF0IG11Y2ggb2YgdGhlIGZvbGxvd2luZyBjYW4gYWxz
byBiZSBhY2NvbXBsaXNoZWQgdmlhIHRoZSB3ZWIsDQorYXQ6DQorDQorICAg
ICUoYWRtaW5fdXJsKXMNCisgICAgDQorQWRtaW5pc3RyYXRpb24gY29tbWFu
ZHMgc2hvdWxkIGJlIHNlbnQgdG8gdGhlICotcmVxdWVzdCBhZGRyZXNzIG9m
IHRoZQ0KK3BhcnRpY3VsYXIgbGlzdCwgZWcuIGZvciB0aGUgJ21haWxtYW4n
IGxpc3QsIHVzZSAnbWFpbG1hbi1yZXF1ZXN0QC4uLicuDQorDQorQWJvdXQg
dGhlIGRlc2NyaXB0aW9ucyAtIHdvcmRzIGluICI8PiJzIHNpZ25pZnkgUkVR
VUlSRUQgaXRlbXMgYW5kDQord29yZHMgaW4gIltdIiBkZW5vdGUgT1BUSU9O
QUwgaXRlbXMuICBEbyBub3QgaW5jbHVkZSB0aGUgIjw+InMgb3INCisiW10i
cyB3aGVuIHlvdSB1c2UgdGhlIGNvbW1hbmRzLg0KKw0KK1RoZSBmb2xsb3dp
bmcgY29tbWFuZHMgYXJlIGF2YWlsYWJsZSBmb3IgYWRtaW5pc3RyYXRpb246
DQorDQorICAgIGVuYWJsZSA8YWRtaW4gcGFzc3dvcmQ+DQorICAgICAgICBF
bmFibGUgdGhlIGFkbWluaXN0cmF0aW9uIGNvbW1hbmQgc2V0LiAgSXQgc2hv
dWxkIGJlIHRoZQ0KKyAgICAgICAgZmlyc3QgY29tbWFuZCB5b3UgZ2l2ZS4N
CisNCisgICAgZGlzYWJsZQ0KKyAgICAgICAgRGlzYWJsZSB0aGUgYWRtaW5p
c3RyYXRpb24gY29tbWFuZCBzZXQuICBJdCdzIGF1dG9tYXRpYyB3aGVuDQor
ICAgICAgICB0aGUgcGFyc2luZyBpcyBmaW5pc2hlZC4NCisNCisgICAgZWRp
dCA8c2V0dGluZz4NCisgICAgICAgICBvcg0KKyAgICBlZGl0IGFsbA0KKyAg
ICAgICAgUmV0cmlldmUgPHNldHRpbmc+IGZvciBlZGl0aW5nIG9yIHZpZXcg
dGhlIGNvbnRlbnRzLiAgWW91J2xsIGdldA0KKyAgICAgICAgdGhlIHN1aXRh
YmxlICdwdXQnIGNvbW1hbmQgd2l0aCBhIHRyYWlsaW5nICctZW5kLScgbGlu
ZSBvciBhDQorICAgICAgICAnc2V0YXR0cicgY29tbWFuZC4gICdlZGl0IGFs
bCcgd2lsbCBzZW5kIHlvdSBhbGwgb2Ygc2V0dGluZ3MuDQorICAgICAgICBT
ZWUgYWxzbyAnaGVscCA8Y21kPicuDQorDQorICAgIHB1dCA8c2V0dGluZz4N
CisgICAgICAgIFJlZnJlc2hlcyA8c2V0dGluZz4uICBUaGlzIGlzIGEgcG9v
bCBjb21tYW5kLiAgVGhpcyBtZWFucyB5b3UNCisgICAgICAgIGhhdmUgdG8g
d3JpdGUgdGhlIGNvbnRlbnRzIGFmdGVyICdwdXQnLiBUaGUgc2V0dGluZyBs
YXN0cyBhdCB0aGUNCisgICAgICAgIGZpcnN0ICctZW5kLScgbGluZS4gIFNl
ZSBhbHNvICdoZWxwIDxjbWQ+Jy4NCisNCisgICAgc2V0YXR0ciA8c2V0dGlu
Zz4gPGF0dHJpYnV0ZT4NCisgICAgICAgIFRoaXMgaXMgdGhlIHNhbWUgYXMg
J3B1dCcsIGJ1dCBmb3IgdGhlIHNpbmdsZSBsaW5lIHNldHRpbmdzLg0KKyAg
ICAgICAgWW91IGNhbiB1c2UgZG91YmxlIHF1b3RlcyAoIikgdG8gZW5jbG9z
ZSA8YXR0cmlidXRlPiwgYnV0IHlvdQ0KKyAgICAgICAgZG9uJ3QgaGF2ZSB0
byBlc2NhcGUgZG91YmxlIHF1b3RlcyB3aXRoaW4gPGF0dHJpYnV0ZT4uDQor
DQorICAgICAgICBGb3IgZXhhbXBsZToNCisgICAgICAgICAgICBzZXRhdHRy
IHN1YmplY3RfcHJlZml4ICJbTWFpbE1hbl0gIg0KKw0KKyAgICBoZWxwIDxj
bWQ+IFthbGxdDQorICAgICAgICBZb3UgY2FuIGdldCBoZWxwIG9uICdlZGl0
JywgJ3B1dCcgb3IgJ3NldGF0dHInIGNvbW1hbmRzLiAgSWYgeW91DQorICAg
ICAgICB3YW50IHRvIGdldCBpdCBpbiBkZXRhaWxzLCB1c2UgdGhlICdhbGwn
IG9wdGlvbi4gIFRoaXMgaGVscA0KKyAgICAgICAgc2hvd3MgeW91IHRoZSBh
Y2NlcHRhYmxlIGNvbnRlbnRzIG9mIGFuIG9wdGlvbiB0b28uDQorDQorICAg
IC1lbmQtDQorICAgICAgICBTdG9wIHByb2Nlc3NpbmcgcG9vbCBhbmQgcnVu
IHRoZSBwb29sIGNvbW1hbmQuDQorDQorQ29tbWFuZHMgc2hvdWxkIGJlIHNl
bnQgdG8gJShyZXF1ZXN0YWRkcilzLg0K
---456965764-757754089-907062975=:3222--