[Logwatch-Devel] postfix and samba

Paweł Gołaszewski blues@ds.pg.gda.pl
Wed, 26 Nov 2003 15:20:58 +0100 (CET)


  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.

---1059782324-2135595585-1069680714=:29545
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-2
Content-Transfer-Encoding: 8BIT
Content-ID: <Pine.LNX.4.58L.0311241512022.29545@piorun.ds.pg.gda.pl>

On Wed, 26 Nov 2003, [ISO-8859-2] Paweł Gołaszewski wrote:
> Next patch - this patch replaces previous one (postfix_samba) too. Now
> there is a lot of things included. These work fine on my systems - next
> entries on the way (I'm still catching many unmatched).
> 
> One notice - every filter is written in other way. Kirk, you have to
> decide which one is The_Right_Way(TM)...

one more update - mainly in proftpd filters

-- 
pozdr.  Paweł Gołaszewski 
---------------------------------
worth to see: http://www.againsttcpa.com/
CPU not found - software emulation...
---1059782324-2135595585-1069680714=:29545
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="logwatch-misc.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.58L.0311261520580.25846@piorun.ds.pg.gda.pl>
Content-Description: 
Content-Disposition: attachment; filename="logwatch-misc.patch"

SW5kZXg6IHNjcmlwdHMvc2VydmljZXMvcG9zdGZpeA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KUkNTIGZpbGU6IC92YXIvY3ZzL2xvZ3dhdGNoL3Njcmlw
dHMvc2VydmljZXMvcG9zdGZpeCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
Mw0KZGlmZiAtdSAtcjEuMyBwb3N0Zml4DQotLS0gc2NyaXB0cy9zZXJ2aWNl
cy9wb3N0Zml4CTE4IE5vdiAyMDAzIDE0OjA0OjA1IC0wMDAwCTEuMw0KKysr
IHNjcmlwdHMvc2VydmljZXMvcG9zdGZpeAkyNiBOb3YgMjAwMyAxMzoxMDo1
NyAtMDAwMA0KQEAgLTUxLDUyICs0NSw3MCBAQA0KICRNc2dzU2VudCA9IDA7
DQogJEJ5dGVzVHJhbnNmZXJyZWQgPSAwOw0KICRGb3VySG91clJldHVybnMg
PSAwOw0KKyRSZXR1cm5lZFRvU2VuZGVyID0gMDsNCiANCiB3aGlsZSAoZGVm
aW5lZCgkVGhpc0xpbmUgPSA8U1RESU4+KSkgew0KLSAgICBpZiAoICggJFRo
aXNMaW5lID1+IG0vXmNvbm5lY3QvICkgb3IgDQotCSAoICRUaGlzTGluZSA9
fiBtL15kaXNjb25uZWN0LyApIG9yIA0KLQkgKCAkVGhpc0xpbmUgPX4gbS9e
cmVsb2FkIGNvbmZpZ3VyYXRpb24vICkgb3IgDQotCSAoICRUaGlzTGluZSA9
fiBtL15bYS16QS1aMC05XSs6IGNsaWVudC8gKSBvciANCi0JICggJFRoaXNM
aW5lID1+IG0vXlthLXpBLVowLTldKzogbWVzc2FnZS1pZC8gKSBvcg0KLQkg
KCAkVGhpc0xpbmUgPX4gbS9eW2EtekEtWjAtOV0rOiBza2lwcGVkLCBzdGls
bCBiZWluZyBkZWxpdmVyZWQvICkgb3INCi0JICggJFRoaXNMaW5lID1+IG0v
Xndhcm5pbmc6IFtcLjAtOV0rOiBhZGRyZXNzIG5vdCBsaXN0ZWQgZm9yIGhv
c3RuYW1lLyApIG9yDQotCSAoICRUaGlzTGluZSA9fiBtL15bYS16QS1aMC05
XSs6IHRvXD1cPC4qPiwgcmVsYXlcPS4qLCBkZWxheVw9WzAtOV0rLCBzdGF0
dXNcPVtzZW50fGRlZmVycmVkXS8gKSBvcg0KLQkgKCAkVGhpc0xpbmUgPX4g
bS9ed2FybmluZzogW1wuMC05XSs6IGhvc3RuYW1lIC4qIHZlcmlmaWNhdGlv
biBmYWlsZWQ6IEhvc3Qgbm90IGZvdW5kLyApIG9yDQotCSAoICRUaGlzTGlu
ZSA9fiBtL153YXJuaW5nOiBubyBNWCBob3N0IGZvciAuKiBoYXMgYSB2YWxp
ZCBBIHJlY29yZCQvICkgb3INCi0JICggJFRoaXNMaW5lID1+IG0vXndhcm5p
bmc6IG51bWVyaWMgZG9tYWluIG5hbWUgaW4gcmVzb3VyY2UgZGF0YSBvZiBN
WCByZWNvcmQgZm9yIC4qJC8gKSkgew0KLQkjIFdlIGRvbid0IGNhcmUgYWJv
dXQgdGhlc2UNCi0gICAgfQ0KLSAgICBlbHNpZiAoICgkQnl0ZXMpID0gKCRU
aGlzTGluZSA9fiAvXlthLXpBLVowLTldKzogZnJvbT0uKnNpemU9KFswLTld
KykuKiQvKSApIHsNCi0JJE1zZ3NTZW50Kys7DQotCSRCeXRlc1RyYW5zZmVy
cmVkICs9ICRCeXRlczsNCisJaWYgKCAoICRUaGlzTGluZSA9fiBtL15jb25u
ZWN0LyApIG9yIA0KKwkJKCAkVGhpc0xpbmUgPX4gbS9eZGlzY29ubmVjdC8g
KSBvciANCisJCSggJFRoaXNMaW5lID1+IG0vXnJlbG9hZCBjb25maWd1cmF0
aW9uLyApIG9yIA0KKwkJKCAkVGhpc0xpbmUgPX4gbS9eW2EtekEtWjAtOV0r
OiBjbGllbnQvICkgb3IgDQorCQkoICRUaGlzTGluZSA9fiBtL15bYS16QS1a
MC05XSs6IG1lc3NhZ2UtaWQvICkgb3INCisJCSggJFRoaXNMaW5lID1+IG0v
XlthLXpBLVowLTldKzogc2tpcHBlZCwgc3RpbGwgYmVpbmcgZGVsaXZlcmVk
LyApIG9yDQorCQkoICRUaGlzTGluZSA9fiBtL153YXJuaW5nOiBbXC4wLTld
KzogYWRkcmVzcyBub3QgbGlzdGVkIGZvciBob3N0bmFtZS8gKSBvcg0KKwkJ
KCAkVGhpc0xpbmUgPX4gbS9eW2EtekEtWjAtOV0rOiB0b1w9XDwuKj4sIHJl
bGF5XD0uKiwgZGVsYXlcPVswLTldKywgc3RhdHVzXD1bc2VudHxkZWZlcnJl
ZF0vICkgb3INCisJCSggJFRoaXNMaW5lID1+IG0vXndhcm5pbmc6IFtcLjAt
OV0rOiBob3N0bmFtZSAuKiB2ZXJpZmljYXRpb24gZmFpbGVkOiBIb3N0IG5v
dCBmb3VuZC8gKSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gbS9ed2FybmluZzog
bm8gTVggaG9zdCBmb3IgLiogaGFzIGEgdmFsaWQgQSByZWNvcmQkLyApIG9y
DQorCQkoICRUaGlzTGluZSA9fiBtL153YXJuaW5nOiBudW1lcmljIGRvbWFp
biBuYW1lIGluIHJlc291cmNlIGRhdGEgb2YgTVggcmVjb3JkIGZvciAuKiQv
ICkgb3INCisJCSggJFRoaXNMaW5lID1+IG0vXmRhZW1vbiBzdGFydGVkJC8g
KSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gbS9edGVybWluYXRpbmcgb24gc2ln
bmFsIDE1JC8gKQ0KKwkpIHsNCisJCSMgV2UgZG9uJ3QgY2FyZSBhYm91dCB0
aGVzZQ0KKwl9DQorCWVsc2lmICggKCRCeXRlcykgPSAoJFRoaXNMaW5lID1+
IC9eW2EtekEtWjAtOV0rOiBmcm9tPS4qc2l6ZT0oWzAtOV0rKS4qJC8pICkg
ew0KKwkJJE1zZ3NTZW50Kys7DQorCQkkQnl0ZXNUcmFuc2ZlcnJlZCArPSAk
Qnl0ZXM7DQogICAgIH0NCiAgICAgZWxzaWYgKCgkVXNlcikgPSAoJFRoaXNM
aW5lID1+IC9eW2EtekEtWjAtOV0rOiB0b1w9XDwoW14gXSopPiwgcmVsYXlc
PWxvY2FsLCBkZWxheVw9WzAtOV0rLCBzdGF0dXNcPWJvdW5jZWQgXCh1bmtu
b3duIHVzZXIvKSkgew0KLQkjIHVua25vd24gdXNlcg0KLSAgICAgICAgJFVu
a25vd25Vc2Vyc3skVXNlcn0rKzsNCisJCSMgdW5rbm93biB1c2VyDQorCQkk
VW5rbm93blVzZXJzeyRVc2VyfSsrOw0KICAgICB9DQogICAgIGVsc2lmICgo
JERlc3QsICRSZWxheSwgJE1zZykgPSAoJFRoaXNMaW5lID1+IC9eW2EtekEt
WjAtOV0rOiB0b1w9XDwoW14gXSopPiwgcmVsYXk9KFteIF0qKS4qLCBkZWxh
eVw9WzAtOV0rLCBzdGF0dXNcPWJvdW5jZWQgXCgoW14pXSopLyApKSB7DQot
CSMgdW5rbm93biB1c2VyDQotCSMkTXNnID0gIiBoZWxsbyAiDQotCSNwcmlu
dCAiYm91bmNlIG1lc3NhZ2UgZnJvbSAiIC4gJERlc3QgLiAiIG1zZyA6ICIg
LiAkUmVsYXkgLiAiXG4iOw0KLQlpZiAoJFJlbGF5ID1+IG0vXltub25lfGxv
Y2FsfGF2Y2hlY2tdLykgew0KLQkgICAgICAgICRUZW1wID0gIlRvICIgLiAk
RGVzdCAuICIgTXNnPVwiIiAuICRNc2cgLiAiXCIiOw0KLSAgICAgICAgCSRM
b2NhbEJvdW5jZXskVGVtcH0rKzsJCQkJDQotCX0gZWxzZSB7DQotCSAgICAg
ICAgJFRlbXAgPSAiVG8gIiAuICREZXN0IC4gIiBNc2c9XCIiIC4gJE1zZyAu
ICJcIiI7DQotICAgICAgICAJJEZvcmVpZ25Cb3VuY2V7JFRlbXB9Kys7DQot
CX0NCi0gICAgfQ0KLSAgICBlbHNpZiAoICgkUmVsYXksJERlc3QpID0gKCRU
aGlzTGluZSA9fiBtL15yZWplY3Q6IFJDUFQgZnJvbSAoW14gXSopOiA1NTQg
PChbXiBdKik+LiogUmVsYXkgYWNjZXNzIGRlbmllZC4qIHRvPShbXiBdKikv
KSApIHsNCi0gICAgCSMgcHJpbnQgInJlamVjdDogIiAuICRUaGlzTGluZSAu
ICJcbiI7DQotCSMgcHJpbnQgIlJlbGF5IDoiIC4gJFJlbGF5IC4gIiB0byAi
IC4gJERlc3QgLiAiXG4iOyAgDQotICAgICAgICAkVGVtcCA9ICJGcm9tICIg
LiAkUmVsYXkgLiAiIHRvICIgLiAkRGVzdDsNCi0gICAgICAgICRSZWxheURl
bmllZHskVGVtcH0rKzsNCisJCSMgdW5rbm93biB1c2VyDQorCQkjICRNc2cg
PSAiIGhlbGxvICINCisJCSMgcHJpbnQgImJvdW5jZSBtZXNzYWdlIGZyb20g
IiAuICREZXN0IC4gIiBtc2cgOiAiIC4gJFJlbGF5IC4gIlxuIjsNCisJCWlm
ICgkUmVsYXkgPX4gbS9eW25vbmV8bG9jYWx8YXZjaGVja10vKSB7DQorCQkJ
JFRlbXAgPSAiVG8gIiAuICREZXN0IC4gIiBNc2c9XCIiIC4gJE1zZyAuICJc
IiI7DQorCQkJJExvY2FsQm91bmNleyRUZW1wfSsrOwkJCQkNCisJCX0gZWxz
ZSB7DQorCQkJJFRlbXAgPSAiVG8gIiAuICREZXN0IC4gIiBNc2c9XCIiIC4g
JE1zZyAuICJcIiI7DQorCQkJJEZvcmVpZ25Cb3VuY2V7JFRlbXB9Kys7DQor
CQl9DQorCX0NCisJZWxzaWYgKCAoJFJlbGF5LCREZXN0KSA9ICgkVGhpc0xp
bmUgPX4gbS9ecmVqZWN0OiBSQ1BUIGZyb20gKFteIF0qKTogNTU0IDwoW14g
XSopPi4qIFJlbGF5IGFjY2VzcyBkZW5pZWQuKiB0bz0oW14gXSopLykgKSB7
DQorCQkjIHByaW50ICJyZWplY3Q6ICIgLiAkVGhpc0xpbmUgLiAiXG4iOw0K
KwkJIyBwcmludCAiUmVsYXkgOiIgLiAkUmVsYXkgLiAiIHRvICIgLiAkRGVz
dCAuICJcbiI7DQorCQkkVGVtcCA9ICJGcm9tICIgLiAkUmVsYXkgLiAiIHRv
ICIgLiAkRGVzdDsNCisJCSRSZWxheURlbmllZHskVGVtcH0rKzsNCiAgICAg
fQ0KICAgICBlbHNpZiAoICgkVXNlciwkRnJvbSkgPSAoJFRoaXNMaW5lID1+
IC9eW2EtekEtWjAtOV0rOiB1aWQ9KFteIF0qKSBmcm9tPVw8KFteIF0qKT4v
KSkgew0KIAkJI01lc3NhZ2VzIHNlbnQgYnkgdXNlcg0KIAkJJFRlbXAgPSAk
RnJvbSAuICIgKHVpZD0iIC4gJFVzZXIgLiAiKTogIjsNCiAJCSRTZW50Qnl7
JFRlbXB9Kys7DQogCX0NCisJZWxzaWYgKCAoJEZyb20pID0gKCRUaGlzTGlu
ZSA9fiAvXlthLXpBLVowLTldKzogZnJvbT08KFteIF0qKT4sIHN0YXR1cz1l
eHBpcmVkLCByZXR1cm5lZCB0byBzZW5kZXIkLykpIHsNCisJCSRSZXR1cm5l
ZFRvU2VuZGVyKys7DQorCX0NCisJZWxzaWYgKCAoJENvbW1hbmQsJEhvc3Qp
ID0gKCRUaGlzTGluZSA9fiAvXmxvc3QgY29ubmVjdGlvbiBhZnRlciAoW14g
XSopIGZyb20gKFteIF0qKSQvKSkgew0KKwkJIyBNYWtlIHNvbWUgYmV0dGVy
IHN1bW1hcnkgd2l0aCBob3N0cw0KKwkJJENvbm5lY3Rpb25Mb3N0eyRDb21t
YW5kfSsrOw0KKwl9DQorCWVsc2lmICggKCRDb21tYW5kLCRIb3N0KSA9ICgk
VGhpc0xpbmUgPX4gL150aW1lb3V0IGFmdGVyIChbXiBdKikgZnJvbSAoW14g
XSopJC8pKSB7DQorCQkjIE1ha2Ugc29tZSBiZXR0ZXIgc3VtbWFyeSB3aXRo
IGhvc3RzDQorCQkkQ29ubmVjdGlvbkxvc3R7JENvbW1hbmR9Kys7DQorCX0N
CisJZWxzaWYgKCAoJFJlamVjdGVkLHVuZGVmLHVuZGVmKSA9ICgkVGhpc0xp
bmUgPX4gL15eW2EtekEtWjAtOV0rOiByZWplY3Q6IGhlYWRlciAoLiopOyBm
cm9tPTwoW14gXSopPiB0bz08KFteIF0qKT46IE1lc3NhZ2UgY29udGVudCBy
ZWplY3RlZCQvKSkgew0KKwkJJEhlYWRlclJlamVjdHskUmVqZWN0ZWR9Kys7
DQorCX0NCiAjICAgIGVsc2lmICggKCRXYXJuaW5nKSAgPSAoJFRoaXNMaW5l
ID1+IC9eW2EtekEtWjAtOV0rOiBBdXRoZW50aWNhdGlvbi1XYXJuaW5nOiBb
XiBdKzogKFteIF0rIHNldCBzZW5kZXIgdG8gW14gXSsgdXNpbmcgLWYpLykg
KSB7DQogIyAgICAgICAgJEF1dGhXYXJuc3skV2FybmluZ30rKzsNCiAjICAg
IH0NCkBAIC0xMTYsMTcgKzEyOCwyMSBAQA0KIH0NCiANCiBpZiAoKEBPdGhl
ckxpc3QpIG9yDQotICAgICgkTXNnc1NlbnQgPiAwKSBvcg0KLSAgICAoJEZv
dXJIb3VyUmV0dXJucyA+IDApIG9yDQotICAgIChrZXlzICVVbmtub3duVXNl
cnMpIG9yDQotICAgIChrZXlzICVSZWxheURlbmllZCkgb3INCi0gICAgKGtl
eXMgJUZvcmVpZ25Cb3VuY2UpIG9yDQotICAgIChrZXlzICVMb2NhbEJvdW5j
ZSkgb3INCi0gICAgKGtleXMgJUF1dGhXYXJucykgb3INCi0gICAgKGtleXMg
JUZvcndhcmRFcnJvcnMpIG9yDQotCShrZXlzICVTZW50QnkpKSB7DQotICAg
IHByaW50ICJcblxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSBwb3N0Zml4IEJl
Z2luIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAiOw0KLQ0KKwkoJE1zZ3NT
ZW50ID4gMCkgb3INCisJKCRGb3VySG91clJldHVybnMgPiAwKSBvcg0KKwko
JFJldHVybmVkVG9TZW5kZXIgPjApIG9yDQorCShrZXlzICVVbmtub3duVXNl
cnMpIG9yDQorCShrZXlzICVSZWxheURlbmllZCkgb3INCisJKGtleXMgJSRI
ZWFkZXJSZWplY3QpIG9yDQorCShrZXlzICVGb3JlaWduQm91bmNlKSBvcg0K
Kwkoa2V5cyAlTG9jYWxCb3VuY2UpIG9yDQorCShrZXlzICVBdXRoV2FybnMp
IG9yDQorCShrZXlzICVGb3J3YXJkRXJyb3JzKSBvcg0KKwkoa2V5cyAlU2Vu
dEJ5KSBvcg0KKwkoa2V5cyAlQ29ubmVjdGlvbkxvc3QpDQorKSB7DQorCXBy
aW50ICJcblxuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSBwb3N0Zml4IEJlZ2lu
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAiOw0KKwkNCiAgICAgaWYoJE1z
Z3NTZW50ID4gMCkgew0KICAgICAgICAgcHJpbnQgIlxuXG4iIC4gJEJ5dGVz
VHJhbnNmZXJyZWQgLiAiIGJ5dGVzIHRyYW5zZmVycmVkIjsNCiAgICAgICAg
IHByaW50ICJcbiIgLiAkTXNnc1NlbnQgLiAiIG1lc3NhZ2VzIHNlbnQiOw0K
QEAgLTEzNiw2ICsxNTIsMTAgQEANCiAgICAgICAgIHByaW50ICJcblxuIiAu
ICRGb3VySG91clJldHVybnMgLiAiIG1lc3NhZ2VzIHJldHVybmVkIGFmdGVy
IDQgaG91cnMiOw0KICAgICB9DQogDQorCWlmICgkUmV0dXJuZWRUb1NlbmRl
ciA+MCkgew0KKwkJcHJpbnQgIlxuXG4iIC4gJFJldHVybmVkVG9TZW5kZXIg
LiAiIG1lc3NhZ2VzIGV4cGlyZWQgYW5kIHJldHVybmVkIHRvIHNlbmRlciI7
DQorCX0NCisNCiAJaWYgKGtleXMgJVNlbnRCeSkgew0KIAkJcHJpbnQgIlxu
XG5NZXNzYWdlcyBzZW50IGJ5OlxuIjsNCiAJCWZvcmVhY2ggJFRoaXNPbmUg
KGtleXMgJVNlbnRCeSkgew0KQEAgLTE1MSw0NSArMTcxLDU5IEBADQogCX0N
CiANCiAgICAgaWYgKGtleXMgJVJlbGF5RGVuaWVkKSB7DQotCXByaW50ICJc
blxuUmVsYXlpbmcgZGVuaWVkOlxuIjsNCi0JZm9yZWFjaCAkVGhpc09uZSAo
a2V5cyAlUmVsYXlEZW5pZWQpIHsNCi0JICAgIHByaW50ICIgICAgIiAuICRU
aGlzT25lIC4gIjogIiAuICRSZWxheURlbmllZHskVGhpc09uZX0gLiAiIFRp
bWVzKHMpXG4iOw0KLQl9DQorCQlwcmludCAiXG5cblJlbGF5aW5nIGRlbmll
ZDpcbiI7DQorCQlmb3JlYWNoICRUaGlzT25lIChrZXlzICVSZWxheURlbmll
ZCkgew0KKwkJCXByaW50ICIgICAgIiAuICRUaGlzT25lIC4gIjogIiAuICRS
ZWxheURlbmllZHskVGhpc09uZX0gLiAiIFRpbWVzKHMpXG4iOw0KKwkJfQ0K
ICAgICB9DQogDQogICAgIGlmIChrZXlzICVMb2NhbEJvdW5jZSkgew0KLQlw
cmludCAiXG5cbkxvY2FsIEJvdW5jZTpcbiI7DQotCWZvcmVhY2ggJFRoaXNP
bmUgKGtleXMgJUxvY2FsQm91bmNlKSB7DQotCSAgICBwcmludCAiICAgICIg
LiAkVGhpc09uZSAuICI6ICIgLiAkTG9jYWxCb3VuY2V7JFRoaXNPbmV9IC4g
IiBUaW1lcyhzKVxuIjsNCi0JfQ0KKwkJcHJpbnQgIlxuXG5Mb2NhbCBCb3Vu
Y2U6XG4iOw0KKwkJZm9yZWFjaCAkVGhpc09uZSAoa2V5cyAlTG9jYWxCb3Vu
Y2UpIHsNCisJCQlwcmludCAiICAgICIgLiAkVGhpc09uZSAuICI6ICIgLiAk
TG9jYWxCb3VuY2V7JFRoaXNPbmV9IC4gIiBUaW1lcyhzKVxuIjsNCisJCX0N
CiAgICAgfQ0KIA0KICAgICBpZiAoa2V5cyAlRm9yZWlnbkJvdW5jZSkgew0K
LQlwcmludCAiXG5cbkZvcmVpZ24gQm91bmNlOlxuIjsNCi0JZm9yZWFjaCAk
VGhpc09uZSAoa2V5cyAlRm9yZWlnbkJvdW5jZSkgew0KLQkgICAgcHJpbnQg
IiAgICAiIC4gJFRoaXNPbmUgLiAiOiAiIC4gJEZvcmVpZ25Cb3VuY2V7JFRo
aXNPbmV9IC4gIiBUaW1lcyhzKVxuIjsNCi0JfQ0KKwkJcHJpbnQgIlxuXG5G
b3JlaWduIEJvdW5jZTpcbiI7DQorCQlmb3JlYWNoICRUaGlzT25lIChrZXlz
ICVGb3JlaWduQm91bmNlKSB7DQorCQkJcHJpbnQgIiAgICAiIC4gJFRoaXNP
bmUgLiAiOiAiIC4gJEZvcmVpZ25Cb3VuY2V7JFRoaXNPbmV9IC4gIiBUaW1l
cyhzKVxuIjsNCisJCX0NCiAgICAgfQ0KIA0KLSAgICBpZiAoa2V5cyAlQXV0
aFdhcm5zKSB7DQotCXByaW50ICJcblxuQXV0aGVudGljYXRpb24gd2Fybmlu
Z3M6XG4iOw0KLQlmb3JlYWNoICRUaGlzT25lIChrZXlzICVBdXRoV2FybnMp
IHsNCi0JICAgIHByaW50ICIgICAgIiAuICRUaGlzT25lIC4gIjogIiAuICRB
dXRoV2FybnN7JFRoaXNPbmV9IC4gIiBUaW1lcyhzKVxuIjsNCisJaWYgKGtl
eXMgJUhlYWRlclJlamVjdCkgew0KKwkJcHJpbnQgIlxuXG5IZWFkZXIgY29u
dGVudCByZWplY3Q6XG4iOw0KKwkJZm9yZWFjaCAkVGhpc09uZSAoa2V5cyAl
SGVhZGVyUmVqZWN0KSB7DQorCQkJcHJpbnQgIiAgICAiIC4gJFRoaXNPbmUg
LiAiOiAiIC4gJEhlYWRlclJlamVjdHskVGhpc09uZX0gLiAiIFRpbWVzKHMp
XG4iOw0KKwkJfQ0KIAl9DQorDQorICAgIGlmIChrZXlzICVBdXRoV2FybnMp
IHsNCisJCXByaW50ICJcblxuQXV0aGVudGljYXRpb24gd2FybmluZ3M6XG4i
Ow0KKwkJZm9yZWFjaCAkVGhpc09uZSAoa2V5cyAlQXV0aFdhcm5zKSB7DQor
CQkJcHJpbnQgIiAgICAiIC4gJFRoaXNPbmUgLiAiOiAiIC4gJEF1dGhXYXJu
c3skVGhpc09uZX0gLiAiIFRpbWVzKHMpXG4iOw0KKwkJfQ0KICAgICB9DQog
DQogICAgIGlmIChrZXlzICVGb3J3YXJkRXJyb3JzKSB7DQotCXByaW50ICJc
blxuRm9yd2FyZGluZyBlcnJvcnM6XG4iOw0KLQlmb3JlYWNoICRUaGlzT25l
IChrZXlzICVGb3J3YXJkRXJyb3JzKSB7DQotCSAgICBwcmludCAiICAgICIg
LiAkVGhpc09uZSAuICI6ICIgLiAkRm9yd2FyZEVycm9yc3skVGhpc09uZX0g
LiAiIFRpbWVzKHMpXG4iOw0KKwkJcHJpbnQgIlxuXG5Gb3J3YXJkaW5nIGVy
cm9yczpcbiI7DQorCQlmb3JlYWNoICRUaGlzT25lIChrZXlzICVGb3J3YXJk
RXJyb3JzKSB7DQorCQkJcHJpbnQgIiAgICAiIC4gJFRoaXNPbmUgLiAiOiAi
IC4gJEZvcndhcmRFcnJvcnN7JFRoaXNPbmV9IC4gIiBUaW1lcyhzKVxuIjsN
CisJCX0NCiAJfQ0KLSAgICB9DQogDQorCWlmIChrZXlzICVDb25uZWN0aW9u
TG9zdCkgew0KKwkJcHJpbnQgIlxuXG5Db25uZWN0aW9ucyBsb3N0OlxuIjsN
CisJCWZvcmVhY2ggJFRoaXNPbmUgKGtleXMgJUNvbm5lY3Rpb25Mb3N0KSB7
DQorCQkJcHJpbnQgIiAgICBDb25uZWN0aW9uIGxvc3QgYWZ0ZXIgY29tbWFu
ZCAiIC4gJFRoaXNPbmUgLiAiOiAiIC4gJENvbm5lY3Rpb25Mb3N0eyRUaGlz
T25lfSAuICIgVGltZXMocylcbiI7DQorCQl9DQorCX0NCisJDQogICAgIGlm
ICgkI090aGVyTGlzdCA+PSAwKSB7DQotCXByaW50ICJcblxuKipVbm1hdGNo
ZWQgRW50cmllcyoqXG5cbiI7DQotCXByaW50IEBPdGhlckxpc3Q7DQotICAg
IH0NCi0NCisJCXByaW50ICJcblxuKipVbm1hdGNoZWQgRW50cmllcyoqXG5c
biI7DQorCQlwcmludCBAT3RoZXJMaXN0Ow0KKwl9DQorCQ0KICAgICBwcmlu
dCAiXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBwb3N0Zml4IEVuZCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIFxuIjsNCiANCiB9DQpJbmRleDogc2Ny
aXB0cy9zZXJ2aWNlcy9wcm9mdHBkLW1lc3NhZ2VzDQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09DQpSQ1MgZmlsZTogL3Zhci9jdnMvbG9nd2F0Y2gvc2NyaXB0
cy9zZXJ2aWNlcy9wcm9mdHBkLW1lc3NhZ2VzLHYNCnJldHJpZXZpbmcgcmV2
aXNpb24gMS4xMg0KZGlmZiAtdSAtcjEuMTIgcHJvZnRwZC1tZXNzYWdlcw0K
LS0tIHNjcmlwdHMvc2VydmljZXMvcHJvZnRwZC1tZXNzYWdlcwkzIE5vdiAy
MDAzIDA1OjA3OjI1IC0wMDAwCTEuMTINCisrKyBzY3JpcHRzL3NlcnZpY2Vz
L3Byb2Z0cGQtbWVzc2FnZXMJMjYgTm92IDIwMDMgMTM6MTA6NTggLTAwMDAN
CkBAIC0xNywxMTQgKzE3LDExOCBAQA0KICRJZ25vcmVVbm1hdGNoZWQgPSAk
RU5WeydmdHBkX2lnbm9yZV91bm1hdGNoZWQnfTsNCiANCiB3aGlsZSAoZGVm
aW5lZCgkVGhpc0xpbmUgPSA8U1RESU4+KSkgew0KLSAgIGlmICggKCAkVGhp
c0xpbmUgPX4gL15GVFAgc2Vzc2lvbiBjbG9zZWQuLyApIG9yDQotICAgICAg
ICAgKCAkVGhpc0xpbmUgPX4gL14oQU5PTllNT1VTICk/RlRQIGxvZ2luIGFz
IFwnLipcJyBmcm9tIFteIF0rIFxbLipcXSB0byAuKi8gKSBvcg0KLSAgICAg
ICAgICggJFRoaXNMaW5lID1+IC9eRlRQIG5vIHRyYW5zZmVyIHRpbWUgb3V0
LCBkaXNjb25uZWN0ZWRcLi8gKSBvcg0KLSAgICAgICAgICggJFRoaXNMaW5l
ID1+IC9QQU1cKC4qXCk6IEF1dGhlbnRpY2F0aW9uIGZhaWx1cmUvICkgb3IN
Ci0gICAgICAgICAoICRUaGlzTGluZSA9fiAvXmRhdGFfc2VuZGZpbGUvICkg
b3INCi0gICAgICAgICAoICRUaGlzTGluZSA9fiAvIC0gRlRQIHNlc3Npb24g
b3BlbmVkLyApIG9yDQotICAgICAgICAgKCAkVGhpc0xpbmUgPX4gLyAtIEZU
UCBzZXNzaW9uIGNsb3NlZC8gKSBvcg0KLSAgICAgICAgICggJFRoaXNMaW5l
ID1+IC8gLSBObyBjZXJ0aWZpY2F0ZSBmaWxlcyBmb3VuZC8gKSBvcg0KLSAg
ICAgICAgICggJFRoaXNMaW5lID1+IC9GVFAgbm8gdHJhbnNmZXIgdGltZW91
dCwgZGlzY29ubmVjdGVkXC4vICkgb3INCi0gICAgICAgICAoICRUaGlzTGlu
ZSA9fiAvRlRQIGxvZ2luIHRpbWVkIG91dCwgZGlzY29ubmVjdGVkXC4vICkg
ICApIHsNCi0gICAgICAjIFdlIGRvbid0IGNhcmUgYWJvdXQgdGhlc2UNCi0g
ICB9ICAgICAgICAJCQkgDQotICAgZWxzaWYgKCAoJEhvc3QsJElQLCRFbWFp
bCwpID0gKCAkVGhpc0xpbmUgPX4gL15GVFAgc2Vzc2lvbiBvcGVuZWQ6IGZ0
cFwvZnRwICguKilcWyguKilcXSAoLiopJC8gKSApIHsNCi0gICAgICAkVGVt
cCA9ICIgICAiIC4gJEhvc3QgLiAiICgiIC4gJElQIC4gIik6ICIgLiAkRW1h
aWwgLiAiIC0gIjsNCi0gICAgICAkQW5vbkxvZ2luc3skVGVtcH0rKzsNCi0g
ICB9DQotICAgZWxzaWYgKCAoJEhvc3QsICRJUCkgPSAoICRUaGlzTGluZSA9
fiAvXCgoLiopXFsoLiopXF1cKSAtIEFOT04gLis6IExvZ2luIHN1Y2Nlc3Nm
dWxcLi8gKSApIHsNCi0gICAgICAkVGVtcCA9ICIgICAiIC4gJEhvc3QgLiAi
ICgiIC4gJElQIC4gIikiOw0KLSAgICAgICRBbm9uTG9naW5zeyRUZW1wfSsr
Ow0KLSAgIH0NCi0gICBlbHNpZiAoICgkVXNlciwkSG9zdCwkSVApID0gKCAk
VGhpc0xpbmUgPX4gL15GVFAgc2Vzc2lvbiBvcGVuZWQ6ICguKlwvLiopICgu
KilcWyguKilcXSAoLiopJC8gKSApIHsNCi0gICAgICAkVGVtcCA9ICIgICAi
IC4gJEhvc3QgLiAgIjogIiAuICRVc2VyIC4gIiAtICI7DQotICAgICAgJFVz
ZXJMb2dpbnN7JFRlbXB9Kys7DQotICAgfQ0KLSAgIGVsc2lmICggKCRIb3N0
LCRJUCwkVXNlcikgPSAoICRUaGlzTGluZSA9fiAvXCgoLiopXFsoLiopXF1c
KSAtIFVTRVIgKC4rKTogTG9naW4gc3VjY2Vzc2Z1bC8gKSApIHsNCi0gICAg
ICAkVGVtcCA9ICIgICAiIC4gJEhvc3QgLiAiOiAiIC4gJFVzZXIgLiAiIC0g
IjsNCi0gICAgICAkVXNlckxvZ2luc3skVGVtcH0rKzsNCi0gICB9DQotICAg
ZWxzaWYgKCAoJFVzZXIpID0gKCAkVGhpc0xpbmUgPX4gL15mYWlsZWQgbG9n
aW4sIGNhblwndCBmaW5kIHVzZXIgXCcoLiopXCcgJC8gKSApIHsNCi0gICAg
ICAkVGVtcCA9ICIgICAiIC4gIlVua25vd24iIC4gIiAoIiAuICJVbmtub3du
LklQIiAuICIpOiAiIC4gJFVzZXIgLiAiIC0gIjsNCi0gICAgICAkQmFkVXNl
cnN7JFRlbXB9Kys7DQotICAgfQ0KLSAgIGVsc2lmICggKCRVc2VyLCRIb3N0
LCRJUCkgPSAoICRUaGlzTGluZSA9fiAvVVNFUiAoLiopOiBubyBzdWNoIHVz
ZXIgZm91bmQgZnJvbSAoLiopIFxbKC4qKVxdIHRvLyApICkgew0KLSAgICAg
ICRUZW1wID0gIiAgICIgLiAkSG9zdCAuICI6ICIgLiAkVXNlciAuICIgLSAi
Ow0KLSAgICAgICRCYWRVc2Vyc3skVGVtcH0rKzsNCi0gICB9DQotICAgZWxz
aWYgKCAoJEhvc3QsJElQLCRVc2VyKSA9ICggJFRoaXNMaW5lID1+IC9cKCgu
KilcWyguKilcXVwpIC0gbm8gc3VjaCB1c2VyICcoLiopJyQvICkgKSB7DQot
ICAgICAgJFRlbXAgPSAiICAgIiAuICRIb3N0IC4gIjogIiAuICRVc2VyIC4g
IiAtICI7DQotICAgICAgJEJhZFVzZXJzeyRUZW1wfSsrOw0KLSAgIH0NCi0g
ICBlbHNpZiAoICgkSG9zdCwkVXNlcikgPSAoICRUaGlzTGluZSA9fiAvXFso
LiopXF1cKSAtIFVTRVIgKC4qKSBcKExvZ2luIGZhaWxlZFwpOiBJbmNvcnJl
Y3QgcGFzc3dvcmQvICkgKSB7DQotICAgICAgJFRlbXAgPSAiICAgIiAuICRI
b3N0IC4gIjogIiAuICRVc2VyIC4gIiAtICI7DQotICAgICAgJEJhZFBhc3N3
ZHN7JFRlbXB9Kys7DQotICAgfQ0KLSAgIGVsc2lmICggKCRIb3N0LCRVc2Vy
KSA9ICggJFRoaXNMaW5lID1+IC9cWyguKilcXVwpIC0gVVNFUiAoLiopIFwo
TG9naW4gZmFpbGVkXCk6IEludmFsaWQgc2hlbGwvICkgKSB7DQotICAgICAg
JFRlbXAgPSAiICAgIiAuICRIb3N0IC4gIjogIiAuICRVc2VyIC4gIiAtICI7
DQotICAgICAgJEJhZFNoZWxseyRUZW1wfSsrOw0KLSAgIH0NCi0gICBlbHNp
ZiAoICgkSG9zdCwkUmVhc29uKSA9ICggJFRoaXNMaW5lID1+IC9cWyguKilc
XVwpIC0gUmVmdXNlZCBQT1JUIFtcZCxdKyBcKCguKilcKS8gKSApIHsNCi0g
ICAgICAkVGVtcCA9ICIgICAiIC4gJEhvc3QgLiAiOiAiIC4gJFJlYXNvbiAu
ICIgLSAiOw0KLSAgICAgICRSZWZ1c2VkUG9ydHN7JFRlbXB9Kys7DQotICAg
fQ0KLSAgIGVsc2Ugew0KLSAgICAgICMgUmVwb3J0IGFueSB1bm1hdGNoZWQg
ZW50cmllcy4uLg0KLSAgICAgIHB1c2ggQE90aGVyTGlzdCwkVGhpc0xpbmU7
DQorCWlmICggKCAkVGhpc0xpbmUgPX4gL15GVFAgc2Vzc2lvbiBjbG9zZWQu
LyApIG9yDQorCQkoICRUaGlzTGluZSA9fiAvXihBTk9OWU1PVVMgKT9GVFAg
bG9naW4gYXMgXCcuKlwnIGZyb20gW14gXSsgXFsuKlxdIHRvIC4qLyApIG9y
DQorCQkoICRUaGlzTGluZSA9fiAvXkZUUCBubyB0cmFuc2ZlciB0aW1lIG91
dCwgZGlzY29ubmVjdGVkXC4vICkgb3INCisJCSggJFRoaXNMaW5lID1+IC9Q
QU1cKC4qXCk6IEF1dGhlbnRpY2F0aW9uIGZhaWx1cmUvICkgb3INCisJCSgg
JFRoaXNMaW5lID1+IC9eZGF0YV9zZW5kZmlsZS8gKSBvcg0KKwkJKCAkVGhp
c0xpbmUgPX4gLyAtIEZUUCBzZXNzaW9uIG9wZW5lZC8gKSBvcg0KKwkJKCAk
VGhpc0xpbmUgPX4gLyAtIEZUUCBzZXNzaW9uIGNsb3NlZC8gKSBvcg0KKwkJ
KCAkVGhpc0xpbmUgPX4gLyAtIE5vIGNlcnRpZmljYXRlIGZpbGVzIGZvdW5k
LyApIG9yDQorCQkoICRUaGlzTGluZSA9fiAvRlRQIG5vIHRyYW5zZmVyIHRp
bWVvdXQsIGRpc2Nvbm5lY3RlZFwuLyApIG9yDQorCQkoICRUaGlzTGluZSA9
fiAvRlRQIGxvZ2luIHRpbWVkIG91dCwgZGlzY29ubmVjdGVkXC4vICkgICAp
IHsNCisJCSNXZSBkb24ndCBjYXJlIGFib3V0IHRoZXNlDQorCX0gZWxzaWYg
KCAoJEhvc3QsJElQLCRFbWFpbCwpID0gKCAkVGhpc0xpbmUgPX4gL15GVFAg
c2Vzc2lvbiBvcGVuZWQ6IGZ0cFwvZnRwICguKilcWyguKilcXSAoLiopJC8g
KSApIHsNCisJCSRUZW1wID0gIiAgICIgLiAkSG9zdCAuICIgKCIgLiAkSVAg
LiAiKTogIiAuICRFbWFpbCAuICIgLSAiOw0KKwkJJEFub25Mb2dpbnN7JFRl
bXB9Kys7DQorCX0gZWxzaWYgKCAoJEhvc3QsICRJUCkgPSAoICRUaGlzTGlu
ZSA9fiAvXCgoLiopXFsoLiopXF1cKSAtIEFOT04gLis6IExvZ2luIHN1Y2Nl
c3NmdWxcLi8gKSApIHsNCisJCSRUZW1wID0gIiAgICIgLiAkSG9zdCAuICIg
KCIgLiAkSVAgLiAiKSI7DQorCQkkQW5vbkxvZ2luc3skVGVtcH0rKzsNCisJ
fSBlbHNpZiAoICgkVXNlciwkSG9zdCwkSVApID0gKCAkVGhpc0xpbmUgPX4g
L15GVFAgc2Vzc2lvbiBvcGVuZWQ6ICguKlwvLiopICguKilcWyguKilcXSAo
LiopJC8gKSApIHsNCisJCSRUZW1wID0gIiAgICIgLiAkSG9zdCAuICAiOiAi
IC4gJFVzZXIgLiAiIC0gIjsNCisJCSRVc2VyTG9naW5zeyRUZW1wfSsrOw0K
Kwl9IGVsc2lmICggKCRIb3N0LCRJUCwkVXNlcikgPSAoICRUaGlzTGluZSA9
fiAvXCgoLiopXFsoLiopXF1cKSAtIFVTRVIgKC4rKTogTG9naW4gc3VjY2Vz
c2Z1bC8gKSApIHsNCisJCSRUZW1wID0gIiAgICIgLiAkSG9zdCAuICI6ICIg
LiAkVXNlciAuICIgLSAiOw0KKwkgICAkVXNlckxvZ2luc3skVGVtcH0rKzsN
CisgICB9IGVsc2lmICggKCRVc2VyKSA9ICggJFRoaXNMaW5lID1+IC9eZmFp
bGVkIGxvZ2luLCBjYW5cJ3QgZmluZCB1c2VyIFwnKC4qKVwnICQvICkgKSB7
DQorCSAgICRUZW1wID0gIiAgICIgLiAiVW5rbm93biIgLiAiICgiIC4gIlVu
a25vd24uSVAiIC4gIik6ICIgLiAkVXNlciAuICIgLSAiOw0KKwkgICAkQmFk
VXNlcnN7JFRlbXB9Kys7DQorICAgfSBlbHNpZiAoICgkVXNlciwkSG9zdCwk
SVApID0gKCAkVGhpc0xpbmUgPX4gL1VTRVIgKC4qKTogbm8gc3VjaCB1c2Vy
IGZvdW5kIGZyb20gKC4qKSBcWyguKilcXSB0by8gKSApIHsNCisJICAgJFRl
bXAgPSAiICAgIiAuICRIb3N0IC4gIjogIiAuICRVc2VyIC4gIiAtICI7DQor
CSAgICRCYWRVc2Vyc3skVGVtcH0rKzsNCisgICB9IGVsc2lmICggKCRIb3N0
LCRJcCwkVXNlcikgPSAoICRUaGlzTGluZSA9fiAvXCgoLiopXFsoLiopXF1c
KSAtIG5vIHN1Y2ggdXNlciAnKC4qKScuJC8gKSApIHsNCisJICAgIyRUZW1w
ID0gIiRIb3N0KCRJcCkiOw0KKwkgICAkQmFkVXNlcnN7JFVzZXJ9eyRIb3N0
fSsrOw0KKyAgIH0gZWxzaWYgKCAoJEhvc3QsJFVzZXIpID0gKCAkVGhpc0xp
bmUgPX4gL1xbKC4qKVxdXCkgLSBVU0VSICguKikgXChMb2dpbiBmYWlsZWRc
KTogSW5jb3JyZWN0IHBhc3N3b3JkLyApICkgew0KKwkgICAkVGVtcCA9ICIg
ICAiIC4gJEhvc3QgLiAiOiAiIC4gJFVzZXIgLiAiIC0gIjsNCisJICAgJEJh
ZFBhc3N3ZHN7JFRlbXB9Kys7DQorICAgfSBlbHNpZiAoICgkSG9zdCwkVXNl
cikgPSAoICRUaGlzTGluZSA9fiAvXFsoLiopXF1cKSAtIFVTRVIgKC4qKSBc
KExvZ2luIGZhaWxlZFwpOiBJbnZhbGlkIHNoZWxsLyApICkgew0KKwkgICAk
VGVtcCA9ICIgICAiIC4gJEhvc3QgLiAiOiAiIC4gJFVzZXIgLiAiIC0gIjsN
CisJICAgJEJhZFNoZWxseyRUZW1wfSsrOw0KKyAgIH0gZWxzaWYgKCAoJEhv
c3QsJElwKSA9ICggJFRoaXNMaW5lID1+IC9cKCguKilcWyguKilcXVwpIC0g
U0VDVVJJVFkgVklPTEFUSU9OOiByb290IGxvZ2luIGF0dGVtcHRlZC4vICkg
KSB7DQorCSAgICRSb290TG9naW5BdHRlbXB0eyRIb3N0fSsrOw0KKyAgIH1l
bHNpZiAoICgkSG9zdCwkUmVhc29uKSA9ICggJFRoaXNMaW5lID1+IC9cWygu
KilcXVwpIC0gUmVmdXNlZCBQT1JUIFtcZCxdKyBcKCguKilcKS8gKSApIHsN
CisJICAgJFRlbXAgPSAiICAgIiAuICRIb3N0IC4gIjogIiAuICRSZWFzb24g
LiAiIC0gIjsNCisJICAgJFJlZnVzZWRQb3J0c3skVGVtcH0rKzsNCisgICB9
IGVsc2Ugew0KKwkgICAjIFJlcG9ydCBhbnkgdW5tYXRjaGVkIGVudHJpZXMu
Li4NCisJICAgcHVzaCBAT3RoZXJMaXN0LCRUaGlzTGluZTsNCiAgICB9DQog
fQ0KIA0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMNCisNCiBpZiAoIChrZXlzICVBbm9uTG9naW5zKSBhbmQgKCRE
ZXRhaWwgPj0gNSkgKSB7DQotICAgcHJpbnQgIlxuQW5vbnltb3VzIEZUUCBM
b2dpbnM6XG4iOw0KLSAgIGZvcmVhY2ggJFRoaXNPbmUgKGtleXMgJUFub25M
b2dpbnMpIHsNCi0gICAgICBwcmludCAkVGhpc09uZSAuICRBbm9uTG9naW5z
eyRUaGlzT25lfSAuICIgVGltZShzKVxuIjsNCi0gICB9DQorCXByaW50ICJc
bkFub255bW91cyBGVFAgTG9naW5zOlxuIjsNCisJZm9yZWFjaCAkVGhpc09u
ZSAoc29ydCB7JGEgY21wICRifSBrZXlzICVBbm9uTG9naW5zKSB7DQorCQlw
cmludCAkVGhpc09uZSAuICRBbm9uTG9naW5zeyRUaGlzT25lfSAuICIgVGlt
ZShzKVxuIjsNCisJfQ0KIH0NCiANCiBpZiAoIChrZXlzICVEZWxldGVkRmls
ZXMpIGFuZCAoJERldGFpbCA+PSAxMCkgKSB7DQotICAgcHJpbnQgIlxuRmls
ZXMgZGVsZXRlZCB0aHJvdWdoIEZUUDpcbiI7DQotICAgZm9yZWFjaCAkVGhp
c09uZSAoa2V5cyAlRGVsZXRlZEZpbGVzKSB7DQotICAgICAgcHJpbnQgJFRo
aXNPbmU7DQotICAgICAgcHJpbnQgQHskRGVsZXRlZEZpbGVzeyRUaGlzT25l
fX07DQotICAgfQ0KKwlwcmludCAiXG5GaWxlcyBkZWxldGVkIHRocm91Z2gg
RlRQOlxuIjsNCisJZm9yZWFjaCAkVGhpc09uZSAoc29ydCB7JGEgY21wICRi
fSBrZXlzICVEZWxldGVkRmlsZXMpIHsNCisJCXByaW50ICRUaGlzT25lOw0K
KwkJcHJpbnQgQHskRGVsZXRlZEZpbGVzeyRUaGlzT25lfX07DQorCX0NCiB9
DQogDQogaWYgKGtleXMgJVVzZXJMb2dpbnMpIHsNCi0gICBwcmludCAiXG5V
c2VyIEZUUCBMb2dpbnM6XG4iOw0KLSAgIGZvcmVhY2ggJFRoaXNPbmUgKGtl
eXMgJVVzZXJMb2dpbnMpIHsNCi0gICAgICBwcmludCAkVGhpc09uZSAuICRV
c2VyTG9naW5zeyRUaGlzT25lfSAuICIgVGltZShzKVxuIjsNCi0gICB9DQor
CXByaW50ICJcblVzZXIgRlRQIExvZ2luczpcbiI7DQorCWZvcmVhY2ggJFRo
aXNPbmUgKHNvcnQgeyRhIGNtcCAkYn0ga2V5cyAlVXNlckxvZ2lucykgew0K
KwkJcHJpbnQgJFRoaXNPbmUgLiAkVXNlckxvZ2luc3skVGhpc09uZX0gLiAi
IFRpbWUocylcbiI7DQorCX0NCiB9DQogDQotaWYgKCAoIChrZXlzICVCYWRV
c2Vycykgb3IgKGtleXMgJUJhZFBhc3N3ZHMpICkgYW5kICgkRGV0YWlsID49
IDUpICkgew0KLSAgIHByaW50ICJcbkZhaWxlZCBGVFAgTG9naW5zOlxuIjsN
Ci0NCi0gICBpZiAoIChrZXlzICVCYWRVc2VycykgYW5kICgkRGV0YWlsID49
IDUpICkgew0KLSAgICAgIHByaW50ICJcbiAgSW52YWxpZCBVc2VybmFtZTpc
biI7DQotICAgICAgZm9yZWFjaCAkVGhpc09uZSAoa2V5cyAlQmFkVXNlcnMp
IHsNCi0gICAgICAgICBwcmludCAkVGhpc09uZSAuICRCYWRVc2Vyc3skVGhp
c09uZX0gLiAiIFRpbWUocylcbiI7DQotICAgICAgfQ0KLSAgIH0NCi0NCi0g
ICBpZiAoIChrZXlzICVCYWRQYXNzd2RzKSBhbmQgKCREZXRhaWwgPj0gNSkg
KSB7DQotICAgICAgcHJpbnQgIlxuICBJbmNvcnJlY3QgUGFzc3dvcmQ6XG4i
Ow0KLSAgICAgIGZvcmVhY2ggJFRoaXNPbmUgKGtleXMgJUJhZFBhc3N3ZHMp
IHsNCi0gICAgICAgICBwcmludCAkVGhpc09uZSAuICRCYWRQYXNzd2RzeyRU
aGlzT25lfSAuICIgVGltZShzKVxuIjsNCi0gICAgICB9DQotICAgfQ0KLSAg
IGlmICggKGtleXMgJUJhZFBhc3N3ZHMpIGFuZCAoJERldGFpbCA+PSA1KSAp
IHsNCi0gICAgICBwcmludCAiXG4gIEludmFsaWQgU2hlbGw6XG4iOw0KLSAg
ICAgIGZvcmVhY2ggJFRoaXNPbmUgKGtleXMgJUJhZFNoZWxsKSB7DQotICAg
ICAgICAgcHJpbnQgJFRoaXNPbmUgLiAkQmFkU2hlbGx7JFRoaXNPbmV9IC4g
IiBUaW1lKHMpXG4iOw0KLSAgICAgIH0NCi0gICB9DQoraWYgKGtleXMgJVJv
b3RMb2dpbkF0dGVtcHQpIHsNCisJcHJpbnQgIlxuU0VDVVJJVFkgVklPTEFU
SU9OISEhIVxuIjsNCisJcHJpbnQgIlJvb3QgbG9naW4gYXR0ZW1wdCBmcm9t
OlxuIjsNCisJZm9yZWFjaCAkSG9zdCAoc29ydCB7JGEgY21wICRifSBrZXlz
ICVSb290TG9naW5BdHRlbXB0KSB7DQorCQlwcmludCAiICAkSG9zdCA6ICRS
b290TG9naW5BdHRlbXB0eyRIb3N0fSBUaW1lKHMpXG4iOw0KKwl9DQorfQ0K
IA0KK2lmICggKCAoa2V5cyAlQmFkVXNlcnMpIG9yIChrZXlzICVCYWRQYXNz
d2RzKSApIGFuZCAoJERldGFpbCA+PSA1KSApIHsNCisJcHJpbnQgIlxuRmFp
bGVkIEZUUCBMb2dpbnM6XG4iOw0KKwkNCisJaWYgKCAoa2V5cyAlQmFkVXNl
cnMpIGFuZCAoJERldGFpbCA+PSA1KSApIHsNCisJCXByaW50ICJcbiAgSW52
YWxpZCBVc2VybmFtZTpcbiI7DQorCQlmb3JlYWNoICRVc2VyIChzb3J0IHsk
YSBjbXAgJGJ9IGtleXMgJUJhZFVzZXJzKSB7DQorCQkJcHJpbnQgIiAgICAk
VXNlcjpcbiI7DQorCQkJZm9yZWFjaCAkSG9zdCAoc29ydCB7JGEgY21wICRi
fSBrZXlzICV7JEJhZFVzZXJzeyRVc2VyfX0pIHsNCisJCQkJcHJpbnQgIiAg
ICAgICRIb3N0IDogJEJhZFVzZXJzeyRVc2VyfXskSG9zdH0gVGltZShzKVxu
IjsNCisJCQl9DQorCQl9DQorCX0NCisJDQorCWlmICggKGtleXMgJUJhZFBh
c3N3ZHMpIGFuZCAoJERldGFpbCA+PSA1KSApIHsNCisJCXByaW50ICJcbiAg
SW5jb3JyZWN0IFBhc3N3b3JkOlxuIjsNCisJCWZvcmVhY2ggJFRoaXNPbmUg
KHNvcnQgeyRhIGNtcCAkYn0ga2V5cyAlQmFkUGFzc3dkcykgew0KKwkJCXBy
aW50ICRUaGlzT25lIC4gJEJhZFBhc3N3ZHN7JFRoaXNPbmV9IC4gIiBUaW1l
KHMpXG4iOw0KKwkJfQ0KKwl9DQorCQ0KKwlpZiAoIChrZXlzICVCYWRQYXNz
d2RzKSBhbmQgKCREZXRhaWwgPj0gNSkgKSB7DQorCQlwcmludCAiXG4gIElu
dmFsaWQgU2hlbGw6XG4iOw0KKwkJZm9yZWFjaCAkVGhpc09uZSAoc29ydCB7
JGEgY21wICRifSBrZXlzICVCYWRTaGVsbCkgew0KKwkJCXByaW50ICRUaGlz
T25lIC4gJEJhZFNoZWxseyRUaGlzT25lfSAuICIgVGltZShzKVxuIjsNCisJ
CX0NCisJfQ0KIH0NCiANCiBpZiAoIChrZXlzICVSZWZ1c2VkUG9ydHMpIGFu
ZCAoJERldGFpbCA+PSA1KSApIHsNCiAgICBwcmludCAiXG5SZWZ1c2VkIFBP
UlRzOlxuIjsNCi0gICBmb3JlYWNoICRUaGlzT25lIChrZXlzICVSZWZ1c2Vk
UG9ydHMpIHsNCisgICBmb3JlYWNoICRUaGlzT25lIChzb3J0IHskYSBjbXAg
JGJ9IGtleXMgJVJlZnVzZWRQb3J0cykgew0KICAgICAgIHByaW50ICRUaGlz
T25lIC4gJFJlZnVzZWRQb3J0c3skVGhpc09uZX0gLiAiIFRpbWUocylcbiI7
DQogICAgfQ0KIH0NCkBAIC0xMzYsMyArMTQwLDQgQEANCiANCiBleGl0KDAp
Ow0KIA0KKyMgdmk6IHNoaWZ0d2lkdGg9NCB0YWJzdG9wPTQNCkluZGV4OiBz
Y3JpcHRzL3NlcnZpY2VzL3NhbWJhDQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
DQpSQ1MgZmlsZTogL3Zhci9jdnMvbG9nd2F0Y2gvc2NyaXB0cy9zZXJ2aWNl
cy9zYW1iYSx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTENCmRpZmYgLXUg
LXIxLjExIHNhbWJhDQotLS0gc2NyaXB0cy9zZXJ2aWNlcy9zYW1iYQkzIE5v
diAyMDAzIDA1OjA3OjI1IC0wMDAwCTEuMTENCisrKyBzY3JpcHRzL3NlcnZp
Y2VzL3NhbWJhCTI2IE5vdiAyMDAzIDEzOjEwOjU4IC0wMDAwDQpAQCAtMTMs
NTkgKzEzLDk2IEBADQogDQogJERlYnVnID0gJEVOVnsnTE9HV0FUQ0hfREVC
VUcnfTsNCiAkRGV0YWlsID0gJEVOVnsnTE9HV0FUQ0hfREVUQUlMX0xFVkVM
J30gfHwgMDsNCiskU29ja2V0UmVhZEVycm9yPTA7DQorJERiT3BlbkZhaWw9
MDsNCiskR2V0RG9tYWluTWFzdGVyU3RhdHVzRmFpbD0wOw0KIA0KIGlmICgg
JERlYnVnID49IDUgKSB7DQotICAgIHByaW50IFNUREVSUiAiXG5cbkRFQlVH
OiBJbnNpZGUgU2FtYmEgRmlsdGVyIFxuXG4iOw0KKwlwcmludCBTVERFUlIg
IlxuXG5ERUJVRzogSW5zaWRlIFNhbWJhIEZpbHRlciBcblxuIjsNCiB9DQog
DQogd2hpbGUgKGRlZmluZWQoJFRoaXNMaW5lID0gPFNURElOPikpIHsNCi0g
ICBjaG9tcCgkVGhpc0xpbmUpOw0KLSAgIGlmICggDQotICAgICAgICAgKCRU
aGlzTGluZSA9fiAvQ3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZC8pIG9yDQot
ICAgICAgICAgKCRUaGlzTGluZSA9fiAvdmVyc2lvbiAuKyBzdGFydGVkLykg
b3INCi0gICAgICAgICAoJFRoaXNMaW5lID1+IC9vcGxvY2tbXyBdYnJlYWsv
KSBvcg0KLSAgICAgICAgICgkVGhpc0xpbmUgPX4gL05vIHJvdXRlIHRvIGhv
c3QvKSBvcg0KLSAgICAgICAgICgkVGhpc0xpbmUgPX4gL1NJR1RFUk06IGdv
aW5nIGRvd24vKSBvcg0KLSAgICAgICAgICgkVGhpc0xpbmUgPX4gL3Jlc3Bv
bnNlIHBhY2tldCBpZCBcZCsgcmVjZWl2ZWQgd2l0aCBubyBtYXRjaGluZyBy
ZWNvcmQvKSBvcg0KLSAgICAgICAgICgkVGhpc0xpbmUgPX4gL21hdGNobmFt
ZS9pKSBvcg0KLSAgICAgICAgICMgSWdub3JlIGVudHJpZXMgaW4gc21ibW91
bnQgbG9nZmlsZQ0KLSAgICAgICAgICgkVGhpc0xpbmUgPX4gL3NtYm1vdW50
Lykgb3IgICANCi0gICAgICAgICAoJFRoaXNMaW5lID1+IC9iZWNvbWVfbG9j
YWxfbWFzdGVyLykgb3IgICANCi0gICAgICAgICAoJFRoaXNMaW5lID1+IC9i
ZWNvbWVfZG9tYWluX21hc3Rlci8pIG9yICAgDQotICAgICAgICAgKCRUaGlz
TGluZSA9fiAvYWRkX2RvbWFpbl9sb2dvbl9uYW1lcy8pIG9yICAgDQotICAg
ICAgICAgKCRUaGlzTGluZSA9fiAvYmVjb21lX2xvZ29uX3NlcnZlci8pIG9y
ICAgDQotICAgICAgICAgKCRUaGlzTGluZSA9fiAvc3RhcnRfYXN5bmNfZG5z
Lykgb3IgICANCi0gICAgICAgICAoJFRoaXNMaW5lID1+IC90aW1lb3V0IGNv
bm5lY3RpbmcgdG8vKSBvciAgIA0KLSAgICAgICAgICgkVGhpc0xpbmUgPX4g
L09wZXJhdGlvbiBub3QgcGVybWl0dGVkLykgb3INCi0gICAgICAgICAoJFRo
aXNMaW5lID1+IC9SZWNvcmQgZG9lcyBub3QgZXhpc3QvKSBvcg0KLSAgICAg
ICAgICgkVGhpc0xpbmUgPX4gL0Nvbm5lY3Rpb24gcmVzZXQgYnkgcGVlci8p
IG9yDQotICAgICAgICAgKCRUaGlzTGluZSA9fiAvTXVsdGlwbGUgLisgcmVz
cG9uc2VzIHJlY2VpdmVkIGZvciBhIHF1ZXJ5Lykgb3INCi0gICAgICAgICAo
JFRoaXNMaW5lID1+IC9Db25uZWN0aW9uIHRpbWVkIG91dC8pIG9yDQotICAg
ICAgICAgKCRUaGlzTGluZSA9fiAvY2xvc2VkIGNvbm5lY3Rpb24gdG8vKSBv
cg0KLSAgICAgICAgICgkVGhpc0xpbmUgPX4gL0dvdCBTSUdIVVAvKSBvcg0K
LSAgICAgICAgICgkVGhpc0xpbmUgPX4gL2N1cnJlbnQgbWFzdGVyIGJyb3dz
ZXIvKSBvcg0KLQkgKCRUaGlzTGluZSA9fiAvZGVidWdfbWVzc2FnZS8pDQot
ICAgICAgKSB7DQotICAgICAgIyBEb24ndCBjYXJlIGFib3V0IHRoZXNlLi4u
DQotICAgfSBlbHNpZiAoICgkSG9zdCwgJFNlcnZpY2UsICRVc2VyKSA9ICgg
JFRoaXNMaW5lID1+IC8oW14gXSsgXChbXiBdK1wpKSBjb25uZWN0IHRvIHNl
cnZpY2UgKFteIF0rKSBhcyB1c2VyIChbXiBdKykvICkgKSB7DQotICAgICAg
JENvbm5lY3R7JFNlcnZpY2V9eyRVc2VyfXskSG9zdH0rKzsNCi0gICB9IGVs
c2lmICggKCROb1NlcnZpY2UpID0gKCAkVGhpc0xpbmUgPX4gL2NvdWxkbid0
IGZpbmQgc2VydmljZSAoXFMrKSQvICkgKSB7DQotICAgICAgJE5vU2Vydnsk
Tm9TZXJ2aWNlfSsrOw0KLSAgIH0gZWxzaWYgKCRUaGlzTGluZSA9fiBzL0Rl
bmllZCBjb25uZWN0aW9uIGZyb21ccysoXFMrKSQvJDEvKSB7DQotICAgICAg
JERlbmllZHskVGhpc0xpbmV9Kys7DQotICAgfSBlbHNpZiAoKCRVc2VyKSA9
ICRUaGlzTGluZSA9fiAvcmVqZWN0ZWQgaW52YWxpZCB1c2VyIChbXiBdKykv
ICkgew0KLSAgICAgICRJbnZhbGlkVXNlcnskVXNlcn0rKzsNCi0gICB9IGVs
c2lmICgoJFVzZXIpID0gJFRoaXNMaW5lID1+IC9Db3VsZG4ndCBmaW5kIHVz
ZXIgJyhbXiBdKyknLykgew0KLSAgICAgICROb3RGb3VuZFVzZXJ7JFVzZXJ9
Kys7DQotICAgfSBlbHNpZiAoKCRVc2VyKSA9ICRUaGlzTGluZSA9fiAvUmVq
ZWN0aW5nIHVzZXIgJyhbXiBdKyknLykgew0KLSAgICAgICRSZWplY3RlZFVz
ZXJ7JFVzZXJ9Kys7DQotICAgfSBlbHNpZiAoICggJFRoaXNMaW5lID1+IC9e
XFtbXlxdXStcXSBsaWJcL3V0aWxfc29jay5jOnJlYWRfZGF0YVwoNDM2XCkv
ICkgKSB7DQotICAgICAgIyBUaGlzIGlzIGR1ZSB0byBhIG5hc3R5IGJ1ZyBp
biBzYW1iYSB3aGljaCBjYXVzZXMgaXQgdG8gZHJvcCBjb25uZWN0aW9ucyA6
LSgNCi0gICAgICAkU29ja2V0UmVhZEVycm9yKys7DQotICAgfSBlbHNlIHsN
Ci0gICAgICAjIFJlcG9ydCBhbnkgdW5tYXRjaGVkIGVudHJpZXMuLi4NCi0g
ICAgICAkT3RoZXJMaXN0eyRUaGlzTGluZX0rKzsNCi0gICB9DQorCWNob21w
KCRUaGlzTGluZSk7DQorCWlmICggDQorCQkoJFRoaXNMaW5lID1+IC9DdXJy
ZW50bHkgbm90IGltcGxlbWVudGVkLykgb3INCisJCSgkVGhpc0xpbmUgPX4g
L3ZlcnNpb24gLisgc3RhcnRlZC8pIG9yDQorCQkoJFRoaXNMaW5lID1+IC9v
cGxvY2tbXyBdYnJlYWsvKSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvTm8gcm91
dGUgdG8gaG9zdC8pIG9yDQorCQkoJFRoaXNMaW5lID1+IC9TSUdURVJNOiBn
b2luZyBkb3duLykgb3INCisJCSgkVGhpc0xpbmUgPX4gL3Jlc3BvbnNlIHBh
Y2tldCBpZCBcZCsgcmVjZWl2ZWQgd2l0aCBubyBtYXRjaGluZyByZWNvcmQv
KSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvbWF0Y2huYW1lL2kpIG9yDQorCQkj
IElnbm9yZSBlbnRyaWVzIGluIHNtYm1vdW50IGxvZ2ZpbGUNCisJCSgkVGhp
c0xpbmUgPX4gL3NtYm1vdW50Lykgb3INCisJCSgkVGhpc0xpbmUgPX4gL2Jl
Y29tZV9sb2NhbF9tYXN0ZXIvKSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvYmVj
b21lX2RvbWFpbl9tYXN0ZXIvKSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvYWRk
X2RvbWFpbl9sb2dvbl9uYW1lcy8pIG9yDQorCQkoJFRoaXNMaW5lID1+IC9i
ZWNvbWVfbG9nb25fc2VydmVyLykgb3INCisJCSgkVGhpc0xpbmUgPX4gL3N0
YXJ0X2FzeW5jX2Rucy8pIG9yDQorCQkoJFRoaXNMaW5lID1+IC90aW1lb3V0
IGNvbm5lY3RpbmcgdG8vKSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvT3BlcmF0
aW9uIG5vdCBwZXJtaXR0ZWQvKSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvUmVj
b3JkIGRvZXMgbm90IGV4aXN0Lykgb3INCisJCSgkVGhpc0xpbmUgPX4gL0Nv
bm5lY3Rpb24gcmVzZXQgYnkgcGVlci8pIG9yDQorCQkoJFRoaXNMaW5lID1+
IC9NdWx0aXBsZSAuKyByZXNwb25zZXMgcmVjZWl2ZWQgZm9yIGEgcXVlcnkv
KSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvQ29ubmVjdGlvbiB0aW1lZCBvdXQv
KSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvY2xvc2VkIGNvbm5lY3Rpb24gdG8v
KSBvcg0KKwkJKCRUaGlzTGluZSA9fiAvR290IFNJR0hVUC8pIG9yDQorCQko
JFRoaXNMaW5lID1+IC9jdXJyZW50IG1hc3RlciBicm93c2VyLykgb3INCisJ
CSgkVGhpc0xpbmUgPX4gL2RlYnVnX21lc3NhZ2UvKSBvcg0KKwkJKCRUaGlz
TGluZSA9fiAvPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09LykNCisJKSB7DQorCQkjRG9u
J3QgY2FyZSBhYm91dCB0aGVzZS4uLg0KKwl9IGVsc2lmICggKCRIb3N0LCAk
U2VydmljZSwgJFVzZXIpID0gKCAkVGhpc0xpbmUgPX4gLyhbXiBdKyBcKFte
IF0rXCkpIGNvbm5lY3QgdG8gc2VydmljZSAoW14gXSspIGFzIHVzZXIgKFte
IF0rKS8gKSApIHsNCisJCSRDb25uZWN0eyRTZXJ2aWNlfXskVXNlcn17JEhv
c3R9Kys7DQorCX0gZWxzaWYgKCAoJE5vU2VydmljZSkgPSAoICRUaGlzTGlu
ZSA9fiAvY291bGRuJ3QgZmluZCBzZXJ2aWNlIChcUyspLyApICkgew0KKwkJ
JE5vU2VydnskTm9TZXJ2aWNlfSsrOw0KKwl9IGVsc2lmICgkVGhpc0xpbmUg
PX4gcy9EZW5pZWQgY29ubmVjdGlvbiBmcm9tXHMrKFxTKykkLyQxLykgew0K
KwkJJERlbmllZHskVGhpc0xpbmV9Kys7DQorCX0gZWxzaWYgKCAoJElwLCRO
YW1lLCRHcm91cCwkU3VibmV0KSA9ICgkVGhpc0xpbmUgPX4gL0RlbmllZCBj
b25uZWN0aW9uIGZyb20gIFwoKFteIF0rKVwpICBTYW1iYSBuYW1lIHNlcnZl
ciAoW14gXSspIGlzIG5vdyBhIGxvY2FsIG1hc3RlciBicm93c2VyIGZvciB3
b3JrZ3JvdXAgKFteIF0rKSBvbiBzdWJuZXQgKFteIF0rKS8gKSApIHsNCisJ
CSREZW5pZWR7JElwfSsrOw0KKwkJJEJlTG9jYWxNYXN0ZXJ7JFN1Ym5ldH17
JEdyb3VwfXskTmFtZX0rKzsNCisJfSBlbHNpZiAoKCRVc2VyKSA9ICRUaGlz
TGluZSA9fiAvcmVqZWN0ZWQgaW52YWxpZCB1c2VyIChbXiBdKykvICkgew0K
KwkJJEludmFsaWRVc2VyeyRVc2VyfSsrOw0KKwl9IGVsc2lmICgoJFVzZXIp
ID0gJFRoaXNMaW5lID1+IC9Db3VsZG4ndCBmaW5kIHVzZXIgJyhbXiBdKykn
Lykgew0KKwkJJE5vdEZvdW5kVXNlcnskVXNlcn0rKzsNCisJfSBlbHNpZiAo
KCRVc2VyKSA9ICRUaGlzTGluZSA9fiAvUmVqZWN0aW5nIHVzZXIgJyhbXiBd
KyknLykgew0KKwkJJFJlamVjdGVkVXNlcnskVXNlcn0rKzsNCisJfSBlbHNp
ZiAoICggJFRoaXNMaW5lID1+IC9eXFtbXlxdXStcXSBsaWJcL3V0aWxfc29j
ay5jOnJlYWRfZGF0YVwoNDM2XCkvICkgKSB7DQorCQkjIFRoaXMgaXMgZHVl
IHRvIGEgbmFzdHkgYnVnIGluIHNhbWJhIHdoaWNoIGNhdXNlcyBpdCB0byBk
cm9wIGNvbm5lY3Rpb25zIDotKA0KKwkJJFNvY2tldFJlYWRFcnJvcisrOw0K
Kwl9IGVsc2lmICggKCAkVGhpc0xpbmUgPX4gL3VuYWJsZSB0byBvcGVuIHBh
c3NkYiBkYXRhYmFzZS4kLyApICkgew0KKwkJJERiT3BlbkZhaWwrKzsNCisJ
fSBlbHNpZiAoICgkU2VydmVyLCRJcCwkR3JvdXApID0gKCRUaGlzTGluZSA9
fiAvU2VydmVyIChbXiBdKykgYXQgSVAgKFteIF0rKSBpcyBhbm5vdW5jaW5n
IGl0c2VsZiBhcyBhIGxvY2FsIG1hc3RlciBicm93c2VyIGZvciB3b3JrZ3Jv
dXAgKFteIF0rKSBhbmQgd2UgdGhpbmsgd2UgYXJlIG1hc3Rlci4gRm9yY2lu
ZyBlbGVjdGlvbi4kLyApICkgew0KKwkJJFRlbXAgPSAkU2VydmVyIC4gIigi
IC4gJElwIC4gIikiOw0KKwkJJEZvcmNlRWxlY3Rpb257JEdyb3VwfXskVGVt
cH0rKzsNCisJfSBlbHNpZiAoICgkU2VydmVyLCRJcCx1bmRlZikgPSAoJFRo
aXNMaW5lID1+IC9wcm9jZXNzX25hbWVfcmVmcmVzaF9yZXF1ZXN0OiB1bmlj
YXN0IG5hbWUgcmVnaXN0cmF0aW9uIHJlcXVlc3QgcmVjZWl2ZWQgZm9yIG5h
bWUgKFteIF0rKSBmcm9tIElQIChbXiBdKykgb24gc3VibmV0IChbXiBdKyku
LyApICkgew0KKwkJJFRlbXAgPSAiJFNlcnZlciAoJElwKSI7DQorCQkkVW5p
Y2FzdFJlZ2lzdGVyeyRUZW1wfSsrOw0KKwl9IGVsc2lmICggKCRHcm91cCwk
U3VibmV0KSA9ICgkVGhpc0xpbmUgPX4gL3N0YW5kYXJkX2ZhaWxfcmVnaXN0
ZXI6IEZhaWxlZCB0byByZWdpc3RlclwvcmVmcmVzaCBuYW1lIChbXiBdKykg
b24gc3VibmV0IChbXiBdKykkLyApICkgew0KKwkJJEZhaWxlZFJlZ2lzdGVy
eyRTdWJuZXR9eyRHcm91cH0rKzsNCisJfSBlbHNpZiAoICgkSXAsJEdyb3Vw
LHVuZGVmKSA9ICgkVGhpc0xpbmUgPX4gL3JlZ2lzdGVyX25hbWVfcmVzcG9u
c2U6IHNlcnZlciBhdCBJUCAoW14gXSspIHJlamVjdGVkIG91ciBuYW1lIHJl
Z2lzdHJhdGlvbiBvZiAoW14gXSspIHdpdGggZXJyb3IgY29kZSAoW14gXSsp
XC4kLyApICkgew0KKwkJJFJlamVjdFJlZ2lzdGVyeyRHcm91cH17JElwfSsr
Ow0KKwl9IGVsc2lmICggKCRJcCkgPSAoJFRoaXNMaW5lID1+IC9nZXRfZG9t
YWluX21hc3Rlcl9uYW1lX25vZGVfc3RhdHVzX2ZhaWw6ICBEb2luZyBhIG5v
ZGUgc3RhdHVzIHJlcXVlc3QgdG8gdGhlIGRvbWFpbiBtYXN0ZXIgYnJvd3Nl
ciBhdCBJUCAoW14gXSspIGZhaWxlZFwuICBDYW5ub3QgZ2V0IHdvcmtncm91
cCBuYW1lXC4kLyApICkgew0KKwkJJENhbnRHZXRHcm91cHskSXB9Kys7DQor
CX0gZWxzaWYgKCAoJFNpZ25hbCx1bmRlZiwkVmVyc2lvbikgPSAoJFRoaXNM
aW5lID1+IC9JTlRFUk5BTCBFUlJPUjogU2lnbmFsIChbXiBdKykgaW4gcGlk
IChbXiBdKykgXCgoW14gXSspXCkgIFBsZWFzZSByZWFkIHRoZSBmaWxlIEJV
R1MudHh0IGluIHRoZSBkaXN0cmlidXRpb24kLyApICkgew0KKwkJJFRlbXAg
PSAiVmVyc2lvbiAkVmVyc2lvbiB3aXRoIHNpZ25hbCAkU2lnbmFsIjsNCisJ
CSRDcmFzaHskVGVtcH0rKzsNCisJfSBlbHNpZiAoICggJFRoaXNMaW5lID1+
IC9nZXRfZG9tYWluX21hc3Rlcl9uYW1lX25vZGVfc3RhdHVzX2ZhaWxcKChb
XiBdKylcKS8gKSApIHsNCisJCSRHZXREb21haW5NYXN0ZXJTdGF0dXNGYWls
Kys7DQorCX0gZWxzZSB7DQorCQkjIFJlcG9ydCBhbnkgdW5tYXRjaGVkIGVu
dHJpZXMuLi4NCisJCSRPdGhlckxpc3R7JFRoaXNMaW5lfSsrOw0KKwl9DQor
fQ0KKw0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjDQorIw0KKw0KK2lmICglQ3Jhc2gpIHsNCisJcHJpbnQgIlxuV0FSTklO
RyEhISEhIVxuIjsNCisJcHJpbnQgIlNlcnZlciBjcmFzaGVkOlxuIjsNCisJ
Zm9yZWFjaCAkRGVhZCAoc29ydCB7JGEgY21wICRifSBrZXlzICVDcmFzaCkg
ew0KKwkJcHJpbnQgIiAgICREZWFkIDogJENyYXNoeyREZWFkfSBUaW1lKHMp
XG4iOw0KKwl9DQogfQ0KIA0KIGlmICgoJERldGFpbCA+PSA1KSBhbmQgKGtl
eXMgJUNvbm5lY3QpKSB7DQpAQCAtODgsNiArMTI1LDQwIEBADQogICAgfQ0K
IH0NCiANCitpZiAoa2V5cyAlRm9yY2VFbGVjdGlvbikgew0KKwlwcmludCAi
XG5Gb3JjZWQgRWxlY3Rpb246XG4iOw0KKwlmb3JlYWNoICRHcm91cCAoc29y
dCB7JGEgY21wICRifSBrZXlzICVGb3JjZUVsZWN0aW9uKSB7DQorCQlwcmlu
dCAiICAgSW4gd29ya2dyb3VwICRHcm91cCB3aGVuIGFubm91bmNlZCBzZXJ2
ZXIgd2FzOlxuIjsNCisJCWZvcmVhY2ggJEhvc3QgKHNvcnQgeyRhIGNtcCAk
Yn0ga2V5cyAleyRGb3JjZUVsZWN0aW9ueyRHcm91cH19KSB7DQorCQkJcHJp
bnQgIiAgICAgICRIb3N0IDogJEZvcmNlRWxlY3Rpb257JEdyb3VwfXskSG9z
dH0gVGltZShzKVxuIjsNCisJCX0NCisJfQ0KK30NCisNCitpZiAoa2V5cyAl
QmVMb2NhbE1hc3Rlcikgew0KKwlwcmludCAiXG5DaGFuZ2VkIExvY2FsIE1h
c3RlciBCcm93c2VyOlxuIjsNCisJZm9yZWFjaCAkU3VibmV0IChzb3J0IHsk
YSBjbXAgJGJ9IGtleXMgJUJlTG9jYWxNYXN0ZXIpIHsNCisJCXByaW50ICIg
ICBPbiBzdWJuZXQgJFN1Ym5ldDpcbiI7DQorCQlmb3JlYWNoICRHcm91cCAo
c29ydCB7JGEgY21wICRifSBrZXlzICV7JEJlTG9jYWxNYXN0ZXJ7JFN1Ym5l
dH19KSB7DQorCQkJcHJpbnQgIiAgICAgIEZvciB3b3JrZ3JvdXAgJEdyb3Vw
OlxuIjsNCisJCQlmb3JlYWNoICROYW1lIChzb3J0IHskYSBjbXAgJGJ9IGtl
eXMgJXskQmVMb2NhbE1hc3RlcnskU3VibmV0fXskR3JvdXB9fSkgew0KKwkJ
CQlwcmludCAiICAgICAgICAgJE5hbWUgOiAkQmVMb2NhbE1hc3RlcnskU3Vi
bmV0fXskR3JvdXB9eyROYW1lfSBUaW1lKHMpXG4iOw0KKwkJCX0NCisJCX0N
CisJfQ0KK30NCisNCitpZiAoa2V5cyAlQ2FudEdldEdyb3VwKSB7DQorCXBy
aW50ICJcbkNhbm5vdCBnZXQgd29ya2dyb3VwIG5hbWUgZnJvbSBkb21haW4g
bmFtZSBicm93c2VyOlxuIjsNCisJZm9yZWFjaCAkSXAgKHNvcnQgeyRhIGNt
cCAkYn0ga2V5cyAlQ2FudEdldEdyb3VwKSB7DQorCQlwcmludCAiICAgJElw
IDogJENhbnRHZXRHcm91cHskSXB9IFRpbWUocylcbiI7DQorCX0NCit9DQor
DQoraWYgKCRHZXREb21haW5NYXN0ZXJTdGF0dXNGYWlsID4gMCkgew0KKwlw
cmludCAiXG5GYWlsZWQgdG8gZ2V0IERvbWFpbiBNYXN0ZXIgbm9kZSBuYW1l
OiAkR2V0RG9tYWluTWFzdGVyU3RhdHVzRmFpbCBUaW1lKHMpXG4iOw0KK30N
CisNCiBpZiAoKCREZXRhaWwgPj0gNSkgYW5kIChrZXlzICVOb1NlcnYpKSB7
DQogICAgcHJpbnQgIlxuQ291bGRuJ3QgZmluZCBzZXJ2aWNlczpcbiI7DQog
ICAgZm9yZWFjaCAkVGhpc09uZSAoc29ydCB7JGEgY21wICRifSBrZXlzICVO
b1NlcnYpIHsNCkBAIC05NSwxMSArMTY2LDM1IEBADQogICAgfQ0KIH0NCiAN
Ci1pZiAoa2V5cyAlT3RoZXJMaXN0KSB7DQotICAgcHJpbnQgIlxuKipVbm1h
dGNoZWQgRW50cmllcyoqXG4iOw0KLSAgIGZvcmVhY2ggJExpbmUgKHNvcnQg
eyRhIGNtcCAkYn0ga2V5cyAlT3RoZXJMaXN0KSB7DQotICAgICAgcHJpbnQg
IiRMaW5lIDogJE90aGVyTGlzdHskTGluZX0gVGltZShzKVxuIjsNCi0gICB9
DQoraWYgKCgkRGV0YWlsID49IDUpIGFuZCAoa2V5cyAlVW5pY2FzdFJlZ2lz
dGVyKSkgew0KKwlwcmludCAiXG5VbmljYXN0IG5hbWUgcmVnaXN0cmF0aW9u
IHJlcXVlc3RzOlxuIjsNCisJZm9yZWFjaCAkVGhpc09uZSAoc29ydCB7JGEg
Y21wICRifSBrZXlzICVVbmljYXN0UmVnaXN0ZXIpIHsNCisJCXByaW50ICIg
ICAkVGhpc09uZSA6ICRVbmljYXN0UmVnaXN0ZXJ7JFRoaXNPbmV9IFRpbWUo
cylcbiI7DQorCX0NCit9DQorDQoraWYgKGtleXMgJUZhaWxlZFJlZ2lzdGVy
KSB7DQorCXByaW50ICJcbkZhaWxlZCB0byByZWdpc3Rlci9yZWZyZXNoOlxu
IjsNCisJZm9yZWFjaCAkU3VibmV0IChzb3J0IHskYSBjbXAgJGJ9IGtleXMg
JUZhaWxlZFJlZ2lzdGVyKSB7DQorCQlwcmludCAiICAgT24gc3VibmV0ICRT
dWJuZXQ6XG4iOw0KKwkJZm9yZWFjaCAkR3JvdXAgKHNvcnQgeyRhIGNtcCAk
Yn0ga2V5cyAleyRGYWlsZWRSZWdpc3RlcnskU3VibmV0fX0pIHsNCisJCQlw
cmludCAiICAgICAgJEdyb3VwIDogJEZhaWxlZFJlZ2lzdGVyeyRTdWJuZXR9
eyRHcm91cH0gVGltZShzKVxuIjsNCisJCX0NCisJfQ0KK30NCisNCitpZiAo
a2V5cyAlUmVqZWN0UmVnaXN0ZXIpIHsNCisJcHJpbnQgIlxuUmVqZWN0ZWQg
b3VyIG5hbWUgcmVnaXN0cmF0aW9uOlxuIjsNCisJZm9yZWFjaCAkR3JvdXAg
KHNvcnQgeyRhIGNtcCAkYn0ga2V5cyAlUmVqZWN0UmVnaXN0ZXIpIHsNCisJ
CXByaW50ICIgICBOYW1lICRHcm91cCBhdCBJUDpcbiI7DQorCQlmb3JlYWNo
ICRJcCAoc29ydCB7JGEgY21wICRifSBrZXlzICV7JFJlamVjdFJlZ2lzdGVy
eyRHcm91cH19KSB7DQorCQkJcHJpbnQgIiAgICAgICRJcCA6ICRSZWplY3RS
ZWdpc3RlcnskR3JvdXB9eyRJcH0gVGltZShzKVxuIjsNCisJCX0NCisJfQ0K
K30NCisNCitpZiAoJERiT3BlbkZhaWwgPiAwKSB7DQorCXByaW50ICJcbkZh
aWxlZCB0byBvcGVuIHBhc3N3ZCBkYXRhYmFzZTogJERiT3BlbkZhaWwgVGlt
ZShzKVxuIjsNCiB9DQogDQogaWYgKGtleXMgJUludmFsaWRVc2VyKSB7DQpA
QCAtMTI0LDggKzIxOSwxNiBAQA0KIH0NCiANCiBpZiAoJFNvY2tldFJlYWRF
cnJvciA+IDApIHsNCi0gICBwcmludCAiXG5Tb2NrZXQgUmVhZCBFcnJvciAo
U2FtYmEgYnVnKTogJFNvY2tldFJlYWRFcnJvciBUaW1lKHMpXG4iOw0KKwlw
cmludCAiXG5Tb2NrZXQgUmVhZCBFcnJvciAoU2FtYmEgYnVnKTogJFNvY2tl
dFJlYWRFcnJvciBUaW1lKHMpXG4iOw0KK30NCisNCitpZiAoa2V5cyAlT3Ro
ZXJMaXN0KSB7DQorCXByaW50ICJcbioqVW5tYXRjaGVkIEVudHJpZXMqKlxu
IjsNCisJZm9yZWFjaCAkTGluZSAoc29ydCB7JGEgY21wICRifSBrZXlzICVP
dGhlckxpc3QpIHsNCisJCXByaW50ICIkTGluZSA6ICRPdGhlckxpc3R7JExp
bmV9IFRpbWUocylcbiI7DQorCX0NCiB9DQogDQogZXhpdCgwKTsNCiANCisj
IHZpOiBzaGlmdHdpZHRoPTQgdGFic3RvcD00DQpJbmRleDogc2NyaXB0cy9z
ZXJ2aWNlcy9zZWN1cmUNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBm
aWxlOiAvdmFyL2N2cy9sb2d3YXRjaC9zY3JpcHRzL3NlcnZpY2VzL3NlY3Vy
ZSx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzcNCmRpZmYgLXUgLXIxLjM3
IHNlY3VyZQ0KLS0tIHNjcmlwdHMvc2VydmljZXMvc2VjdXJlCTE4IE5vdiAy
MDAzIDE0OjA0OjA2IC0wMDAwCTEuMzcNCisrKyBzY3JpcHRzL3NlcnZpY2Vz
L3NlY3VyZQkyNiBOb3YgMjAwMyAxMzoxMDo1OSAtMDAwMA0KQEAgLTE5LDE0
ICsxOSwyNSBAQA0KIHVzZSBMb2d3YXRjaCAnOmlwJzsNCiANCiB3aGlsZSAo
ZGVmaW5lZCgkVGhpc0xpbmUgPSA8U1RESU4+KSkgew0KLSAgIGNob21wKCRU
aGlzTGluZSk7DQotICAgJFRoaXNMaW5lID1+IHMvXi4uLiAuLiAuLjouLjou
LiBbXiBdKyAvLzsNCi0gICBteSAkdGVtcCA9ICRUaGlzTGluZTsNCi0gICAk
dGVtcCA9fiBzL14oW15bXSspLiovJDEvOw0KLSAgIGlmICgkSWdub3JlID1+
IC9cYlxRJHRlbXBcRVxiL2kpIHsgbmV4dDsgfQ0KLSAgIGlmICggKCRIb3N0
LCRVc2VyKSA9ICgkVGhpc0xpbmUgPX4gL15sb2dpbjogRkFJTEVEIExPR0lO
IFxkKyBGUk9NIChbXiBdKykgRk9SIChbXixdKyksLyApICkgew0KLSAgICAg
ICRGYWlsZWRMb2dpbnMtPnskVXNlcn0tPnskSG9zdH0rKzsNCi0gICB9IGVs
c2lmICggKCRTZXJ2aWNlLCRJUCkgPSAoJFRoaXNMaW5lID1+IC9eKFteIF0r
KVxbXGQrXF06IGNvbm5lY3QoaW9uKT8gZnJvbSAiPyhcZCtcLlxkK1wuXGQr
XC5cZCspLiovKSApIHsNCisJY2hvbXAoJFRoaXNMaW5lKTsNCisJJFRoaXNM
aW5lID1+IHMvXi4uLiAuLiAuLjouLjouLiBbXiBdKyAvLzsNCisJbXkgJHRl
bXAgPSAkVGhpc0xpbmU7DQorCSR0ZW1wID1+IHMvXihbXltdKykuKi8kMS87
DQorCWlmICgkSWdub3JlID1+IC9cYlxRJHRlbXBcRVxiL2kpIHsgbmV4dDsg
fQ0KKwlpZiAoDQorCQkoICRUaGlzTGluZSA9fiBtL15bXiBdK1xbXGQrXF06
IGNvbm5lY3QgZnJvbSBsb2NhbGhvc3QkLyApIG9yDQorCQkoICRUaGlzTGlu
ZSA9fiAvXlwvdXNyXC9iaW5cL3N1ZG86Lykgb3INCisJCSggJFRoaXNMaW5l
ID1+IC9ec3VkbzovKSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gL15wYXNzd2Rc
W1xkK1xdOi8pIG9yDQorCQkoICRUaGlzTGluZSA9fiAvd2FybmluZzogY2Fu
LnQgZ2V0IGNsaWVudCBhZGRyZXNzOiBDb25uZWN0aW9uIHJlZnVzZWQvKSBv
cg0KKwkJKCAkVGhpc0xpbmUgPX4gL154aW5ldGRcW1xkK1xdOiBVU0VSSUQ6
IChbXiBdKykgKC4rKSQvICkgb3INCisJCSggJFRoaXNMaW5lID1+IC9eKHhp
bmV0ZHx4aW5ldGQtaXB2NilcW1xkK1xdOiBFWElUOiAoW14gXSspIHBpZD1c
ZCsvKQ0KKwkpDQorCXsNCisJCSMgSWdub3JlIHRoZXNlIGVudHJpZXMNCisJ
fSBlbHNpZiAoICgkSG9zdCwkVXNlcikgPSAoJFRoaXNMaW5lID1+IC9ebG9n
aW46IEZBSUxFRCBMT0dJTiBcZCsgRlJPTSAoW14gXSspIEZPUiAoW14sXSsp
LC8gKSApIHsNCisJCSRGYWlsZWRMb2dpbnMtPnskVXNlcn0tPnskSG9zdH0r
KzsNCisJfSBlbHNpZiAoICgkU2VydmljZSwkSVApID0gKCRUaGlzTGluZSA9
fiAvXihbXiBdKylcW1xkK1xdOiBjb25uZWN0KGlvbik/IGZyb20gIj8oXGQr
XC5cZCtcLlxkK1wuXGQrKS4qLykgKSB7DQogICAgICAgJE5hbWUgPSBMb29r
dXBJUCgkSVApOw0KICAgICAgIGlmICgkU3VtbWFyaXplID1+IC9cUSRTZXJ2
aWNlXEUvKSB7IA0KICAgICAgICAgICRDb25uZWN0aW9ucy0+eyRTZXJ2aWNl
fSsrOw0KQEAgLTUzLDEyICs2NCw4IEBADQogCQkgIH0NCiAJICB9IGVsc2lm
ICggKCREaXNwbGF5LCAkVXNlcikgPSAoJFRoaXNMaW5lID1+IC9eeHNjcmVl
bnNhdmVyXFtcZCtcXTogRkFJTEVEIExPR0lOIFxkIE9OIERJU1BMQVkgXCIo
W14gXSspXCIsIEZPUiBcIihbXiBdKylcIiQvKSApIHsNCiAJICAgICAgJEZh
aWxlZFNhdmVyLT57JFVzZXJ9LT57JERpc3BsYXl9Kys7DQotICAgfSBlbHNp
ZiAoICh1bmRlZiwgJFNlcnZpY2UpID0gKCRUaGlzTGluZSA9fiAvXih4aW5l
dGR8eGluZXRkLWlwdjYpXFtcZCtcXTogRVhJVDogKFteIF0rKSBwaWQ9XGQr
LykgKSB7DQotICAgICAgI2lnbm9yZS4uLg0KICAgIH0gZWxzaWYgKCAkVGhp
c0xpbmUgPX4gcy9eKFteIF0rKVxbXGQrXF06IHdhcm5pbmc6IGNhblwndCBn
ZXQgY2xpZW50IGFkZHJlc3M6IE5vIHJvdXRlIHRvIGhvc3QkLyQxLyApIHsN
CiAgICAgICAkTm9JUC0+eyRUaGlzTGluZX0rKzsNCi0gICB9IGVsc2lmICgg
JFRoaXNMaW5lID1+IG0vXlteIF0rXFtcZCtcXTogY29ubmVjdCBmcm9tIGxv
Y2FsaG9zdCQvICkgew0KLSAgICAgICNpZ25vcmUuLi4NCiAgICB9IGVsc2lm
ICggJFRoaXNMaW5lID1+IHMvXihbXiBdKylcW1xkK1xdOiB3YXJuaW5nOiBj
YW5cJ3QgZ2V0IGNsaWVudCBhZGRyZXNzOiBOZXR3b3JrIGlzIHVucmVhY2hh
YmxlJC8kMS8gKSB7DQogICAgICAgJE5vSVAtPnskVGhpc0xpbmV9Kys7DQog
ICAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiBzL14oW14gXSspXFtcZCtcXTog
d2FybmluZzogY2FuXCd0IGdldCBjbGllbnQgYWRkcmVzczogQ29ubmVjdGlv
biByZXNldCBieSBwZWVyJC8kMS8gKSB7DQpAQCAtNzEsOCArNzgsNiBAQA0K
ICAgICAgICRFcnJvcnskU2VydmljZX17JEVycn0rKzsNCiAgICB9IGVsc2lm
ICggKCRTZXJ2aWNlLCRFcnIpID0gKCRUaGlzTGluZSA9fiAvXihbXiBdKyk6
IChGQUlMRUQgTE9HSU4gU0VTU0lPTiBGUk9NIFteIF0rIEZPUiAsIC4qKSQv
ICkgKSB7DQogICAgICAgJEVycm9yeyRTZXJ2aWNlfXskRXJyfSsrOw0KLSAg
IH0gZWxzaWYgKCAkVGhpc0xpbmUgPX4gL3dhcm5pbmc6IGNhbi50IGdldCBj
bGllbnQgYWRkcmVzczogQ29ubmVjdGlvbiByZWZ1c2VkLykgew0KLSAgICAg
ICMgTm90aGluZw0KICAgIH0gZWxzaWYgKCAkVGhpc0xpbmUgPX4gL15sb2dp
bjogUk9PVCBMT0dJTiBPTiB0dHlbMC05XSsvKSB7DQogICAgICAgJFJvb3RM
b2dpblRUWSsrDQogICAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiBzL151c2Vy
ZGVsXFtcZCtcXTogZGVsZXRlIHVzZXIgYCguKyknLyQxLyApIHsNCkBAIC04
NSwzMyArOTAsMzAgQEANCiAgICAgICBwdXNoIEBEZWxldGVkR3JvdXBzLCAi
ICAgJFRoaXNMaW5lXG4iOw0KICAgIH0gZWxzaWYgKCAkVGhpc0xpbmUgPX4g
cy9eKHVzZXJhZGR8YWRkdXNlcilcW1xkK1xdOiBuZXcgZ3JvdXA6IG5hbWU9
KC4rKSwgZ2lkPShcZCspLiokLyQxICgkMikvICkgew0KICAgICAgIHB1c2gg
QE5ld0dyb3VwcywgIiAgICRUaGlzTGluZVxuIjsNCi0gICB9IGVsc2lmICgg
JFRoaXNMaW5lID1+IHMvXmdyb3VwYWRkXFtcZCtcXTogbmV3IGdyb3VwOiBu
YW1lPSguKyksIGdpZD0oXGQrKS4qJC8kMSAoJDIpLyApIHsNCi0gICAgICBw
dXNoIEBOZXdHcm91cHMsICIgICAkVGhpc0xpbmVcbiI7DQotICAgfSBlbHNp
ZiAoICRUaGlzTGluZSA9fiAvXnVzZXJkZWxcW1xkK1xdOiBkZWxldGUgYCgu
KiknIGZyb20gKHNoYWRvd3xncm91cCkgYCguKiknXHMqJC8gKSB7DQotICAg
ICBwdXNoIEBSZW1vdmVGcm9tR3JvdXAsICIgICAgdXNlciAkMSBmcm9tIGdy
b3VwICQzXG4iOw0KLSAgIH0gZWxzaWYgKCAkVGhpc0xpbmUgPX4gL154aW5l
dGRcW1xkK1xdOiBVU0VSSUQ6IChbXiBdKykgKC4rKSQvICkgew0KLSAgICAg
ICMgVGhpcyBpcyBhbiBpbmV0ZCBsb29rdXAuLi4gJDEgaXMgdGhlIHNlcnZp
Y2UgKGkuZS4gZnRwKSwgJDIgaXMgdGhlIHJlc3BvbnNlDQotICAgICAgIyBJ
IGRvbid0IHRoaW5rIHRoZXNlIGFyZSBpbXBvcnRhbnQgdG8gbG9nIGF0IHRo
aXMgdGltZQ0KLSAgIH0gZWxzaWYgKCAkVGhpc0xpbmUgPX4gL15zdWRvOiAo
W15cc10rKSA6IChjb21tYW5kIG5vdCBhbGxvd2VkKT8uKyA7IENPTU1BTkQ9
KC4qKSQvICkgew0KLSAgICAgICMgc3VkbyB1bmF1dGhvcml6ZWQgY29tbWFu
ZHMNCi0gICAgICAgIHB1c2ggQFN1ZG9MaXN0LCAiJDE6ICQzXG4iIHVubGVz
cyAoJDIgZXEgIiIpOw0KLSAgIH0gZWxzaWYgKCAkVGhpc0xpbmUgPX4gL15z
dWRvOi8pIHsNCi0gICAgICAjIElnbm9yZSBvdGhlciBzdWRvIGVudHJpZXMg
YXMgdGhleSBhcmUgaGFuZGxlZCBieSB0aGUgc3VkbyBmaWx0ZXINCi0gICB9
IGVsc2lmICggJFRoaXNMaW5lID1+IC9eXC91c3JcL2Jpblwvc3VkbzogKFte
XHNdKykgOiAoY29tbWFuZCBub3QgYWxsb3dlZCk/LisgOyBDT01NQU5EPSgu
KikkLyApIHsNCi0gICAgICAjIHN1ZG8gdW5hdXRob3JpemVkIGNvbW1hbmRz
DQotICAgICAgICBwdXNoIEBTdWRvTGlzdCwgIiQxOiAkM1xuIiB1bmxlc3Mg
KCQyIGVxICIiKTsNCi0gICB9IGVsc2lmICggJFRoaXNMaW5lID1+IC9eXC91
c3JcL2Jpblwvc3VkbzovKSB7DQotICAgICAgIyBJZ25vcmUgb3RoZXIgc3Vk
byBlbnRyaWVzIGFzIHRoZXkgYXJlIGhhbmRsZWQgYnkgdGhlIHN1ZG8gZmls
dGVyDQotICAgfSBlbHNpZiAoICgkc2VydmljZSwgJGZyb20pID0gKCRUaGlz
TGluZSA9fiAvXnhpbmV0ZFxbXGQrXF06IEZBSUw6ICguKykgKD86YWRkcmVz
c3xsaWJ3cmFwKSBmcm9tPShbXGQuXSspLykpIHsNCi0gICAgICAkUmVmdXNl
ZC0+eyRzZXJ2aWNlfS0+eyRmcm9tfSsrOw0KLSAgIH0gZWxzZSB7DQotICAg
ICAgIyBVbm1hdGNoZWQgZW50cmllcy4uLg0KLSAgICAgIHB1c2ggQE90aGVy
TGlzdCwgIiRUaGlzTGluZVxuIjsNCi0gICB9DQorICB9IGVsc2lmICggKCRV
c2VyLCRHcm91cCkgPX4gL3VzZXJhZGRcW1xkK1xdOiBhZGQgYChbXiBdKykn
IHRvIGdyb3VwIGAoW14gXSspJyQvICkgew0KKwkgICRBZGRUb0dyb3VweyRH
cm91cH17JFVzZXJ9Kys7DQorICB9IGVsc2lmICggJFRoaXNMaW5lID1+IHMv
Xmdyb3VwYWRkXFtcZCtcXTogbmV3IGdyb3VwOiBuYW1lPSguKyksIGdpZD0o
XGQrKS4qJC8kMSAoJDIpLyApIHsNCisJICBwdXNoIEBOZXdHcm91cHMsICIg
ICAkVGhpc0xpbmVcbiI7DQorICB9IGVsc2lmICggJFRoaXNMaW5lID1+IC9e
dXNlcmRlbFxbXGQrXF06IGRlbGV0ZSBgKC4qKScgZnJvbSAoc2hhZG93fGdy
b3VwKSBgKC4qKSdccyokLyApIHsNCisJICBwdXNoIEBSZW1vdmVGcm9tR3Jv
dXAsICIgICAgdXNlciAkMSBmcm9tIGdyb3VwICQzXG4iOw0KKwkgICMgVGhp
cyBpcyBhbiBpbmV0ZCBsb29rdXAuLi4gJDEgaXMgdGhlIHNlcnZpY2UgKGku
ZS4gZnRwKSwgJDIgaXMgdGhlIHJlc3BvbnNlDQorCSAgIyBJIGRvbid0IHRo
aW5rIHRoZXNlIGFyZSBpbXBvcnRhbnQgdG8gbG9nIGF0IHRoaXMgdGltZQ0K
KyAgfSBlbHNpZiAoICRUaGlzTGluZSA9fiAvXnN1ZG86IChbXlxzXSspIDog
KGNvbW1hbmQgbm90IGFsbG93ZWQpPy4rIDsgQ09NTUFORD0oLiopJC8gKSB7
DQorCSAgIyBzdWRvIHVuYXV0aG9yaXplZCBjb21tYW5kcw0KKwkgIHB1c2gg
QFN1ZG9MaXN0LCAiJDE6ICQzXG4iIHVubGVzcyAoJDIgZXEgIiIpOw0KKyAg
fSBlbHNpZiAoICRUaGlzTGluZSA9fiAvXlwvdXNyXC9iaW5cL3N1ZG86IChb
XlxzXSspIDogKGNvbW1hbmQgbm90IGFsbG93ZWQpPy4rIDsgQ09NTUFORD0o
LiopJC8gKSB7DQorCSAgIyBzdWRvIHVuYXV0aG9yaXplZCBjb21tYW5kcw0K
KwkgIHB1c2ggQFN1ZG9MaXN0LCAiJDE6ICQzXG4iIHVubGVzcyAoJDIgZXEg
IiIpOw0KKyAgfSBlbHNpZiAoICgkc2VydmljZSwgJGZyb20pID0gKCRUaGlz
TGluZSA9fiAvXnhpbmV0ZFxbXGQrXF06IEZBSUw6ICguKykgKD86YWRkcmVz
c3xsaWJ3cmFwKSBmcm9tPShbXGQuXSspLykpIHsNCisJICAkUmVmdXNlZC0+
eyRzZXJ2aWNlfS0+eyRmcm9tfSsrOw0KKyAgfSBlbHNlIHsNCisJICAjIFVu
bWF0Y2hlZCBlbnRyaWVzLi4uDQorCSAgcHVzaCBAT3RoZXJMaXN0LCAiJFRo
aXNMaW5lXG4iOw0KKyAgfQ0KIH0NCiANCiBpZiAoQE5ld1VzZXJzKSB7DQot
ICAgcHJpbnQgIlxuTmV3IFVzZXJzOlxuQE5ld1VzZXJzXG4iOw0KKwlwcmlu
dCAiXG5OZXcgVXNlcnM6XG5ATmV3VXNlcnNcbiI7DQogfQ0KIA0KIGlmIChA
RGVsZXRlZFVzZXJzKSB7DQpAQCAtMTI0LDYgKzEyNiwxNiBAQA0KIA0KIGlm
IChARGVsZXRlZEdyb3Vwcykgew0KICAgIHByaW50ICJcbkRlbGV0ZWQgR3Jv
dXBzOlxuQERlbGV0ZWRVc2Vyc1xuIjsNCit9DQorDQoraWYgKGtleXMgJUFk
ZFRvR3JvdXApIHsNCisJcHJpbnQgIlxuQWRkZWQgVXNlciB0byBncm91cDpc
biI7DQorCWZvcmVhY2ggJEdyb3VwIChzb3J0IHskYSBjbXAgJGJ9IGtleXMg
JUFkZFRvR3JvdXApIHsNCisJCXByaW50ICIgICBHcm91cCAkR3JvdXA6XG4i
Ow0KKwkJZm9yZWFjaCAkVXNlciAoc29ydCB7JGEgY21wICRifSBrZXlzICV7
JEFkZFRvR3JvdXB7JFVzZXJ9fSkgew0KKwkJCXByaW50ICIgICAgICAkVXNl
clxuIjsNCisJCX0NCisJfQ0KIH0NCiANCiBpZiAoQFJlbW92ZUZyb21Hcm91
cCkgew0KSW5kZXg6IHNjcmlwdHMvc2VydmljZXMvc2VuZG1haWwNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvdmFyL2N2cy9sb2d3YXRj
aC9zY3JpcHRzL3NlcnZpY2VzL3NlbmRtYWlsLHYNCnJldHJpZXZpbmcgcmV2
aXNpb24gMS4yOQ0KZGlmZiAtdSAtcjEuMjkgc2VuZG1haWwNCi0tLSBzY3Jp
cHRzL3NlcnZpY2VzL3NlbmRtYWlsCTcgTm92IDIwMDMgMTQ6MjY6NDIgLTAw
MDAJMS4yOQ0KKysrIHNjcmlwdHMvc2VydmljZXMvc2VuZG1haWwJMjYgTm92
IDIwMDMgMTM6MTE6MDAgLTAwMDANCkBAIC0xMDksNjkgKzEwOSw2OSBAQA0K
IG15ICRVbmtub3duVXNlcnNUaHJlc2hvbGQgPSAwOw0KIA0KIHdoaWxlIChk
ZWZpbmVkKCRUaGlzTGluZSA9IDxTVERJTj4pKSB7DQotICAgKCRRdWV1ZUlE
KSA9ICgkVGhpc0xpbmUgPX4gbS9eKFthLXpBLVowLTldKyk6IC8gKTsNCi0g
ICAkVGhpc0xpbmUgPX4gcy9eW2EtekEtWjAtOV0rOiAvLzsNCi0gICBpZiAo
ICAoICRUaGlzTGluZSA9fiBtL15hbGlhcyBkYXRhYmFzZSBbXiBdKiAoYXV0
byk/cmVidWlsdCBieS8gKSBvcg0KLSAgICAgICAgICggJFRoaXNMaW5lID1+
IG0vWzAtOV0qIGFsaWFzZXMsIGxvbmdlc3QgWzAtOV0qIGJ5dGVzLCBbMC05
XSogYnl0ZXMgdG90YWwvICkgb3IgDQotICAgICAgICAgKCAkVGhpc0xpbmUg
PX4gbS9ec3RhcnRpbmcgZGFlbW9uICguKik6LyApIG9yIA0KLSAgICAgICAg
ICggJFRoaXNMaW5lID1+IG0vcHJlbWF0dXJlIEVPTS8gKSBvciANCi0gICAg
ICAgICAoICRUaGlzTGluZSA9fiBtL3VuZXhwZWN0ZWQgY2xvc2Ugb24gY29u
bmVjdGlvbiBmcm9tLyApIG9yIA0KLSAgICAgICAgICggJFRoaXNMaW5lID1+
IG0vdGltZW91dCB3YWl0aW5nIGZvciBpbnB1dCBmcm9tLyApIG9yIA0KLSAg
ICAgICAgICggJFRoaXNMaW5lID1+IG0vbG9zdCBpbnB1dCBjaGFubmVsIGZy
b20vICkgb3IgDQotICAgICAgICAgKCAkVGhpc0xpbmUgPX4gbS9EU046IENh
bm5vdCBzZW5kIG1lc3NhZ2UgZm9yIFxkKyBkYXkvICkgb3IgDQotICAgICAg
ICAgKCAkVGhpc0xpbmUgPX4gbS86IFNlcnZpY2UgdW5hdmFpbGFibGUkLykg
b3IgDQotICAgICAgICAgKCAkVGhpc0xpbmUgPX4gbS9Ccm9rZW4gcGlwZXxD
b25uZWN0aW9uIChyZXNldHx0aW1lZCBvdXQpLyApIG9yDQotICAgICAgICAg
KCAkVGhpc0xpbmUgPX4gbS9YLVNwYW0vICkgb3INCi0gICAgICAgICAoICRU
aGlzTGluZSA9fiBtL01pbHRlciBtZXNzYWdlOiBib2R5IHJlcGxhY2VkLyAp
IG9yDQotICAgICAgICAgKCAkVGhpc0xpbmUgPX4gbS9NaWx0ZXI6IGRhdGEv
ICkgb3INCi0gICAgICAgICAoICRUaGlzTGluZSA9fiBtL01pbHRlciBjaGFu
Z2U6IGhlYWRlci8gKSBvcg0KLSAgICAgICAgICggJFRoaXNMaW5lID1+IG0v
TWlsdGVyIGRlbGV0ZTogaGVhZGVyLyApIG9yDQotICAgICAgICAgKCAkVGhp
c0xpbmUgPX4gbS9NaWx0ZXIgYWRkOiBoZWFkZXI6IFgtVmlydXMtU2Nhbm5l
ZDogYnkgYW1hdmlzLyApIG9yDQotICAgICAgICAgKCAkVGhpc0xpbmUgPX4g
bS9BVVRIPXNlcnZlciwgcmVsYXk9LyApIG9yDQotICAgICAgICAgKCAkVGhp
c0xpbmUgPX4gbS9kaXNjYXJkZWQvICkgb3INCi0gICAgICAgICAoICRUaGlz
TGluZSA9fiBtL2hlYWRlcnMgdG9vIGxhcmdlLyApIG9yDQotICAgICAgICAg
KCAkVGhpc0xpbmUgPX4gbS9eY2xvbmUgW2EtekEtWjAtOV0rLCBvd25lcj0v
ICkgKSB7DQotICAgICAgIyBXZSBkb24ndCBjYXJlIGFib3V0IHRoZXNlDQot
ICAgfSBlbHNpZiAoICgkRnJvbVVzZXIsICRGcm9tRG9tYWluLCAkQnl0ZXMs
ICROdW1SY3B0cywgJFJlbGF5SG9zdCkgPSAoJFRoaXNMaW5lID1+IC9eZnJv
bT1bXDxdPyhbXkBdKylbQF0/KFteXD4gXSspLipzaXplPShbMC05XSspLipu
cmNwdHM9KFswLTldKykuKnJlbGF5PShcW1swLTlcLl0rXF18W14gXSogXFtb
MC05XC5dK1xdfFteIF0rKS4qJC8pICkgew0KLSAgICAgIGlmICgkTnVtUmNw
dHMgPiAwKSB7DQotICAgICAgICAgJE1zZ3NTZW50Kys7DQotICAgICAgICAg
JFRvdGFsUmNwdHMgKz0gJE51bVJjcHRzOw0KLSAgICAgICAgICRCeXRlc1Ry
YW5zZmVycmVkICs9ICRCeXRlczsNCi0gICAgICAgICAkTWFpbEJvbWJlcnsk
UmVsYXlIb3N0fSArPSAkTnVtUmNwdHM7DQotICAgICAgICAgJE1haWxCb21i
ZXJDb25ueyRSZWxheUhvc3R9Kys7DQotDQotICAgICAgICAgaWYgKCRCeXRl
cyA8PSAxMDI0MCkgew0KLSAgICAgICAgICAgICRTaXplRGlzdFswXXsnTnVt
J30rKzsNCi0gICAgICAgICAgICAkU2l6ZURpc3RbMF17J0J5dGVzJ30gKz0g
JEJ5dGVzOw0KLSAgICAgICAgIH0gZWxzaWYgKCRCeXRlcyA8PSAyMDQ4MCkg
ew0KLSAgICAgICAgICAgICRTaXplRGlzdFsxXXsnTnVtJ30rKzsNCi0gICAg
ICAgICAgICAkU2l6ZURpc3RbMV17J0J5dGVzJ30gKz0gJEJ5dGVzOw0KLSAg
ICAgICAgIH0gZWxzaWYgKCRCeXRlcyA8PSA1MTIwMCkgew0KLSAgICAgICAg
ICAgICRTaXplRGlzdFsyXXsnTnVtJ30rKzsNCi0gICAgICAgICAgICAkU2l6
ZURpc3RbMl17J0J5dGVzJ30gKz0gJEJ5dGVzOw0KLSAgICAgICAgIH0gZWxz
aWYgKCRCeXRlcyA8PSAxMDI0MDApIHsNCi0gICAgICAgICAgICAkU2l6ZURp
c3RbM117J051bSd9Kys7DQotICAgICAgICAgICAgJFNpemVEaXN0WzNdeydC
eXRlcyd9ICs9ICRCeXRlczsNCi0gICAgICAgICB9IGVsc2lmICgkQnl0ZXMg
PD0gNTEyMDAwKSB7DQotICAgICAgICAgICAgJFNpemVEaXN0WzRdeydOdW0n
fSsrOw0KLSAgICAgICAgICAgICRTaXplRGlzdFs0XXsnQnl0ZXMnfSArPSAk
Qnl0ZXM7DQotICAgICAgICAgfSBlbHNpZiAoJEJ5dGVzIDw9IDEwNDg1NzYp
IHsNCi0gICAgICAgICAgICAkU2l6ZURpc3RbNV17J051bSd9Kys7DQotICAg
ICAgICAgICAgJFNpemVEaXN0WzVdeydCeXRlcyd9ICs9ICRCeXRlczsNCi0g
ICAgICAgICB9IGVsc2lmICgkQnl0ZXMgPD0gMjA5NzE1Mikgew0KLSAgICAg
ICAgICAgICRTaXplRGlzdFs2XXsnTnVtJ30rKzsNCi0gICAgICAgICAgICAk
U2l6ZURpc3RbNl17J0J5dGVzJ30gKz0gJEJ5dGVzOw0KLSAgICAgICAgIH0g
ZWxzaWYgKCRCeXRlcyA8PSA1MjQyODgwKSB7DQotICAgICAgICAgICAgJFNp
emVEaXN0WzddeydOdW0nfSsrOw0KLSAgICAgICAgICAgICRTaXplRGlzdFs3
XXsnQnl0ZXMnfSArPSAkQnl0ZXM7DQotICAgICAgICAgfSBlbHNpZiAoJEJ5
dGVzIDw9IDEwNDg1NzYwKSB7DQotICAgICAgICAgICAgJFNpemVEaXN0Wzhd
eydOdW0nfSsrOw0KLSAgICAgICAgICAgICRTaXplRGlzdFs4XXsnQnl0ZXMn
fSArPSAkQnl0ZXM7DQotICAgICAgICAgfSBlbHNlIHsNCi0gICAgICAgICAg
ICAkU2l6ZURpc3RbOV17J051bSd9Kys7DQotICAgICAgICAgICAgJFNpemVE
aXN0WzldeydCeXRlcyd9ICs9ICRCeXRlczsNCi0gICAgICAgICB9DQotICAg
ICAgfQ0KKwkoJFF1ZXVlSUQpID0gKCRUaGlzTGluZSA9fiBtL14oW2EtekEt
WjAtOV0rKTogLyApOw0KKwkkVGhpc0xpbmUgPX4gcy9eW2EtekEtWjAtOV0r
OiAvLzsNCisJaWYgKCAgKCAkVGhpc0xpbmUgPX4gbS9eYWxpYXMgZGF0YWJh
c2UgW14gXSogKGF1dG8pP3JlYnVpbHQgYnkvICkgb3INCisJCSggJFRoaXNM
aW5lID1+IG0vWzAtOV0qIGFsaWFzZXMsIGxvbmdlc3QgWzAtOV0qIGJ5dGVz
LCBbMC05XSogYnl0ZXMgdG90YWwvICkgb3IgDQorCQkoICRUaGlzTGluZSA9
fiBtL15zdGFydGluZyBkYWVtb24gKC4qKTovICkgb3IgDQorCQkoICRUaGlz
TGluZSA9fiBtL3ByZW1hdHVyZSBFT00vICkgb3IgDQorCQkoICRUaGlzTGlu
ZSA9fiBtL3VuZXhwZWN0ZWQgY2xvc2Ugb24gY29ubmVjdGlvbiBmcm9tLyAp
IG9yIA0KKwkJKCAkVGhpc0xpbmUgPX4gbS90aW1lb3V0IHdhaXRpbmcgZm9y
IGlucHV0IGZyb20vICkgb3IgDQorCQkoICRUaGlzTGluZSA9fiBtL2xvc3Qg
aW5wdXQgY2hhbm5lbCBmcm9tLyApIG9yIA0KKwkJKCAkVGhpc0xpbmUgPX4g
bS9EU046IENhbm5vdCBzZW5kIG1lc3NhZ2UgZm9yIFxkKyBkYXkvICkgb3Ig
DQorCQkoICRUaGlzTGluZSA9fiBtLzogU2VydmljZSB1bmF2YWlsYWJsZSQv
KSBvciANCisJCSggJFRoaXNMaW5lID1+IG0vQnJva2VuIHBpcGV8Q29ubmVj
dGlvbiAocmVzZXR8dGltZWQgb3V0KS8gKSBvcg0KKwkJKCAkVGhpc0xpbmUg
PX4gbS9YLVNwYW0vICkgb3INCisJCSggJFRoaXNMaW5lID1+IG0vTWlsdGVy
IG1lc3NhZ2U6IGJvZHkgcmVwbGFjZWQvICkgb3INCisJCSggJFRoaXNMaW5l
ID1+IG0vTWlsdGVyOiBkYXRhLyApIG9yDQorCQkoICRUaGlzTGluZSA9fiBt
L01pbHRlciBjaGFuZ2U6IGhlYWRlci8gKSBvcg0KKwkJKCAkVGhpc0xpbmUg
PX4gbS9NaWx0ZXIgZGVsZXRlOiBoZWFkZXIvICkgb3INCisJCSggJFRoaXNM
aW5lID1+IG0vTWlsdGVyIGFkZDogaGVhZGVyOiBYLVZpcnVzLVNjYW5uZWQ6
IGJ5IGFtYXZpcy8gKSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gbS9BVVRIPXNl
cnZlciwgcmVsYXk9LyApIG9yDQorCQkoICRUaGlzTGluZSA9fiBtL2Rpc2Nh
cmRlZC8gKSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gbS9oZWFkZXJzIHRvbyBs
YXJnZS8gKSBvcg0KKwkJKCAkVGhpc0xpbmUgPX4gbS9eY2xvbmUgW2EtekEt
WjAtOV0rLCBvd25lcj0vICkgKSB7DQorCQkjIFdlIGRvbid0IGNhcmUgYWJv
dXQgdGhlc2UNCisJfSBlbHNpZiAoICgkRnJvbVVzZXIsICRGcm9tRG9tYWlu
LCAkQnl0ZXMsICROdW1SY3B0cywgJFJlbGF5SG9zdCkgPSAoJFRoaXNMaW5l
ID1+IC9eZnJvbT1bXDxdPyhbXkBdKylbQF0/KFteXD4gXSspLipzaXplPShb
MC05XSspLipucmNwdHM9KFswLTldKykuKnJlbGF5PShcW1swLTlcLl0rXF18
W14gXSogXFtbMC05XC5dK1xdfFteIF0rKS4qJC8pICkgew0KKwkJaWYgKCRO
dW1SY3B0cyA+IDApIHsNCisJCQkkTXNnc1NlbnQrKzsNCisJCQkkVG90YWxS
Y3B0cyArPSAkTnVtUmNwdHM7DQorCQkJJEJ5dGVzVHJhbnNmZXJyZWQgKz0g
JEJ5dGVzOw0KKwkJCSRNYWlsQm9tYmVyeyRSZWxheUhvc3R9ICs9ICROdW1S
Y3B0czsNCisJCQkkTWFpbEJvbWJlckNvbm57JFJlbGF5SG9zdH0rKzsNCisJ
CQkNCisJCQlpZiAoJEJ5dGVzIDw9IDEwMjQwKSB7DQorCQkJCSRTaXplRGlz
dFswXXsnTnVtJ30rKzsNCisJCQkJJFNpemVEaXN0WzBdeydCeXRlcyd9ICs9
ICRCeXRlczsNCisJCQl9IGVsc2lmICgkQnl0ZXMgPD0gMjA0ODApIHsNCisJ
CQkJJFNpemVEaXN0WzFdeydOdW0nfSsrOw0KKwkJCQkkU2l6ZURpc3RbMV17
J0J5dGVzJ30gKz0gJEJ5dGVzOw0KKwkJCX0gZWxzaWYgKCRCeXRlcyA8PSA1
MTIwMCkgew0KKwkJCQkkU2l6ZURpc3RbMl17J051bSd9Kys7DQorCQkJCSRT
aXplRGlzdFsyXXsnQnl0ZXMnfSArPSAkQnl0ZXM7DQorCQkJfSBlbHNpZiAo
JEJ5dGVzIDw9IDEwMjQwMCkgew0KKwkJCQkkU2l6ZURpc3RbM117J051bSd9
Kys7DQorCQkJCSRTaXplRGlzdFszXXsnQnl0ZXMnfSArPSAkQnl0ZXM7DQor
CQkJfSBlbHNpZiAoJEJ5dGVzIDw9IDUxMjAwMCkgew0KKwkJCQkkU2l6ZURp
c3RbNF17J051bSd9Kys7DQorCQkJCSRTaXplRGlzdFs0XXsnQnl0ZXMnfSAr
PSAkQnl0ZXM7DQorCQkJfSBlbHNpZiAoJEJ5dGVzIDw9IDEwNDg1NzYpIHsN
CisJCQkJJFNpemVEaXN0WzVdeydOdW0nfSsrOw0KKwkJCQkkU2l6ZURpc3Rb
NV17J0J5dGVzJ30gKz0gJEJ5dGVzOw0KKwkJCX0gZWxzaWYgKCRCeXRlcyA8
PSAyMDk3MTUyKSB7DQorCQkJCSRTaXplRGlzdFs2XXsnTnVtJ30rKzsNCisJ
CQkJJFNpemVEaXN0WzZdeydCeXRlcyd9ICs9ICRCeXRlczsNCisJCQl9IGVs
c2lmICgkQnl0ZXMgPD0gNTI0Mjg4MCkgew0KKwkJCQkkU2l6ZURpc3RbN117
J051bSd9Kys7DQorCQkJCSRTaXplRGlzdFs3XXsnQnl0ZXMnfSArPSAkQnl0
ZXM7DQorCQkJfSBlbHNpZiAoJEJ5dGVzIDw9IDEwNDg1NzYwKSB7DQorCQkJ
CSRTaXplRGlzdFs4XXsnTnVtJ30rKzsNCisJCQkJJFNpemVEaXN0WzhdeydC
eXRlcyd9ICs9ICRCeXRlczsNCisJCQl9IGVsc2Ugew0KKwkJCQkkU2l6ZURp
c3RbOV17J051bSd9Kys7DQorCQkJCSRTaXplRGlzdFs5XXsnQnl0ZXMnfSAr
PSAkQnl0ZXM7DQorCQkJfQ0KKwkJfQ0KIA0KICAgICAgICMgQWRkIFRoZSBt
ZXNzYWdlIHRvIGEgaGFzaCBmb3IgbGF0ZXIgcGVyLWRvbWFpbiBhbmFseXNp
cy4NCiAgICAgICAkTXNnc3skUXVldWVJRH17IlJlbGF5In0gPSAkUmVsYXlI
b3N0Ow0KQEAgLTMwNSw3ICszMDUsNyBAQA0KICAgICNoMkdIdFN4MzA5MjY6
IFNZU0VSUihyb290KTogVG9vIG1hbnkgaG9wcyAyNiAoMjUgbWF4KTogZnJv
bSA8TUFJTEVSLURBRU1PTkBhdGJ1c2luZXNzLmNvbT4gdmlhIGxvY2FsaG9z
dCwgdG8gPHN1cGVyc3RvcmVAYnBzbWFpbGVyLmNvbT4NCiAgICB9IGVsc2lm
ICggKCRUZW1wKSAgPSAoJFRoaXNMaW5lID1+IC9eLio/VG9vIG1hbnkgaG9w
cyAoLiopLykgKSB7DQogICAgICAgICRUb29NYW55SG9wc3skVGVtcH0rKzsN
Ci0gICB9IGVsc2lmICggKCRXYXJuaW5nKSAgPSAoJFRoaXNMaW5lID1+IC9B
dXRoZW50aWNhdGlvbi1XYXJuaW5nOiBbXiBdKzogKFteIF0rIHNldCBzZW5k
ZXIgdG8gIFteIF0rIHVzaW5nIC1mfC4rIGRpZG5cJ3QgdXNlIEhFTE8gcHJv
dG9jb2x8W14gXSsgb3duZWQgcHJvY2VzcyBkb2luZyAtYnMpLykgKSB7DQor
ICAgfSBlbHNpZiAoICgkV2FybmluZykgID0gKCRUaGlzTGluZSA9fiAvQXV0
aGVudGljYXRpb24tV2FybmluZzogW14gXSs6IChbXiBdKyBzZXQgc2VuZGVy
IHRvICggfClbXiBdKyB1c2luZyAtZnwuKyBkaWRuXCd0IHVzZSBIRUxPIHBy
b3RvY29sfFteIF0rIG93bmVkIHByb2Nlc3MgZG9pbmcgLWJzKS8pICkgew0K
ICAgICAgICRBdXRoV2FybnN7JFdhcm5pbmd9Kys7DQogICAgfSBlbHNpZiAo
ICgkRm9yd2FyZCwkRXJyb3IpID0gKCRUaGlzTGluZSA9fiAvXmZvcndhcmQg
KFteIF0qKTogdHJhbnNpZW50IGVycm9yOiAoLiopJC8pICkgew0KICAgICAg
ICRUZW1wID0gJEZvcndhcmQgLiAiOiAiIC4gJEVycm9yOw0KQEAgLTMxOSw3
ICszMTksNyBAQA0KICAgIH0gZWxzaWYgKCAkVGhpc0xpbmUgPX4gbS8ocmV0
dXJuIHRvIHNlbmRlcnxzZW5kZXIgbm90aWZ5KTogQ2Fubm90IHNlbmQgbWVz
c2FnZSBmb3IgKFxkKSBkYXlzLyApIHsNCiAgICAgICAkTnVtRGF5cyA9ICQy
Ow0KICAgICAgICREYXlzUmV0dXJucysrOw0KLSAgIH0gZWxzaWYgKCAoICRO
T1FVRVVFICkgPSAoJFRoaXNMaW5lID1+IC9cWyhbMC05XStcLlswLTldK1wu
WzAtOV0rXC5bMC05XSspXF0gKFwobWF5IGJlIGZvcmdlZFwpIHwpZGlkIG5v
dCBpc3N1ZSBNQUlMXC9FWFBOXC9WUkZZXC9FVFJOIGR1cmluZyBjb25uZWN0
aW9uIHRvIE1UQS8pICkgew0KKyAgIH0gZWxzaWYgKCAoICROT1FVRVVFICkg
PSAoJFRoaXNMaW5lID1+IC9cWyhbMC05XStcLlswLTldK1wuWzAtOV0rXC5b
MC05XSspXF0gKFwobWF5IGJlIGZvcmdlZFwpIHwpZGlkIG5vdCBpc3N1ZSBN
QUlMXC9FWFBOXC9WUkZZXC9FVFJOIGR1cmluZyBjb25uZWN0aW9uIHRvIChN
VEF8RGFlbW9uMCkvKSApIHsNCiAgICAgICAkTm9xdWV1ZXJzeyROT1FVRVVF
fSsrOw0KICAgIH0gZWxzaWYgKCRUaGlzTGluZT1+IC9yZWxheT0oXFMrKSou
KlxbKFxkKy5cZCsuXGQrLlxkKylcXSwgcmVqZWN0PTQ0NCA0LjQuNCBcPChb
Xlw+XSspXD4uLi4gU29ycnkgKFxTKikvKSB7DQogICAgICAgY2hvbXAoJGhv
c3Q9JDIuIiAiLiAoZGVmaW5lZCgkMSkgPyAiKCIuJDEuIikiIDogIih1bnJl
c29sdmVkKSIpICk7DQpAQCAtMzY4LDEzICszNjgsMTUgQEANCiAgICAgICAk
UmV0dXJuUmVjZWlwdCsrOw0KICAgIH0gZWxzaWYgKCRUaGlzTGluZT1+IC9S
ZW1vdGUgcHJvdG9jb2wgZXJyb3IvKSB7DQogICAgICAgJFJlbW90ZVByb3Rv
Y29sRXJyb3IrKzsNCi0gICB9IGVsc2Ugew0KLSAgICAgICRUaGlzTGluZSA9
fiBzLy4qXDogKERTTlw6IC4qKS8kMS87ICAgDQotICAgICAgJFRoaXNMaW5l
ID1+IHMvLipcOiAocG9zdG1hc3RlciBub3RpZnlcOiAuKikvJDEvOw0KLSAg
ICAgIGNob21wKCRUaGlzTGluZSk7DQotICAgICAgIyBSZXBvcnQgYW55IHVu
bWF0Y2hlZCBlbnRyaWVzLi4uDQotICAgICAgJE90aGVyTGlzdHskVGhpc0xp
bmV9Kys7IA0KLSAgIH0NCisgIH0gZWxzaWYgKCAoJEhvc3QsJEF0dGFjaykg
PSAoJFRoaXNMaW5lID1+IC9QT1NTSUJMRSBBVFRBQ0sgZnJvbSAoW14gXSsp
OiAoW14gXSspJC8pICkgew0KKwkgICRBdHRhY2tBdHRlbXB0eyRIb3N0fXsk
QXR0YWNrfSsrOw0KKyAgfSBlbHNlIHsNCisJICAkVGhpc0xpbmUgPX4gcy8u
Klw6IChEU05cOiAuKikvJDEvOw0KKwkgICRUaGlzTGluZSA9fiBzLy4qXDog
KHBvc3RtYXN0ZXIgbm90aWZ5XDogLiopLyQxLzsNCisJICBjaG9tcCgkVGhp
c0xpbmUpOw0KKwkgICMgUmVwb3J0IGFueSB1bm1hdGNoZWQgZW50cmllcy4u
Lg0KKwkgICRPdGhlckxpc3R7JFRoaXNMaW5lfSsrOyANCisgIH0NCiB9DQog
DQogaWYgKCRNc2dzU2VudCA+IDApIHsNCkBAIC00MjAsNyArNDIyLDE4IEBA
DQogfQ0KIA0KIGlmKCRSZXR1cm5SZWNlaXB0ID4gMCkgew0KLSAgIHByaW50
ICJcblxuIiAuICRSZXR1cm5SZWNlaXB0IC4gIiBSZXR1cm4gUmVjZWlwdCdz
IjsNCisJcHJpbnQgIlxuXG4iIC4gJFJldHVyblJlY2VpcHQgLiAiIFJldHVy
biBSZWNlaXB0J3MiOw0KK30NCisNCitpZiAoa2V5cyAlQXR0YWNrQXR0ZW1w
dCkgew0KKwlwcmludCAiXG5XQVJOSU5HISEhIVxuIjsNCisJcHJpbnQgIlBv
c3NpYmxlIEF0dGFjazpcbiI7DQorCWZvcmVhY2ggJEhvc3QgKHNvcnQgeyRh
IGNtcCAkYn0ga2V5cyAlQXR0YWNrQXR0ZW1wdCkgew0KKwkJcHJpbnQgIiAg
IEF0dGVtcHQgZnJvbSAkSG9zdCB3aXRoOlxuIjsNCisJCWZvcmVhY2ggJEF0
dGFjayAoc29ydCB7JGEgY21wICRifSBrZXlzICV7JEF0dGFja0F0dGVtcHR7
JEhvc3R9fSkgew0KKwkJCXByaW50ICIgICAgICAkQXR0YWNrIDogJEF0dGFj
a0F0dGVtcHR7JEhvc3R9eyRBdHRhY2t9IFRpbWUocylcbiI7DQorCQl9DQor
CX0NCiB9DQogDQogaWYgKCgkRGV0YWlsID49IDEwKSBhbmQgKGtleXMgJUxv
Y2FsRG9tYWlucykpIHsNCkBAIC03MjksMyArNzQyLDQgQEANCiANCiBleGl0
KDApOw0KIA0KKyMgdmk6IHNoaWZ0d2lkdGg9NCB0YWJzdG9wPTQNCkluZGV4
OiBzY3JpcHRzL3NlcnZpY2VzL3NzaGQNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NClJDUyBmaWxlOiAvdmFyL2N2cy9sb2d3YXRjaC9zY3JpcHRzL3NlcnZp
Y2VzL3NzaGQsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjMwDQpkaWZmIC11
IC1yMS4zMCBzc2hkDQotLS0gc2NyaXB0cy9zZXJ2aWNlcy9zc2hkCTMgTm92
IDIwMDMgMTQ6MzA6NDAgLTAwMDAJMS4zMA0KKysrIHNjcmlwdHMvc2Vydmlj
ZXMvc3NoZAkyNiBOb3YgMjAwMyAxMzoxMTowMSAtMDAwMA0KQEAgLTE4LDMw
ICsxOCwzMCBAQA0KIA0KICMgQXZvaWQgIlVzZSBvZiB1bmluaXRpYWxpemVk
IHZhbHVlIiB3YXJuaW5nIG1lc3NhZ2VzLg0KIHN1YiBWYWx1ZU9yRGVmYXVs
dCB7DQotICAgbXkgKCR2YWx1ZSwgJGRlZmF1bHQpID0gQF87DQotICAgcmV0
dXJuICgkdmFsdWUgPyAkdmFsdWUgOiAkZGVmYXVsdCk7DQorCW15ICgkdmFs
dWUsICRkZWZhdWx0KSA9IEBfOw0KKwlyZXR1cm4gKCR2YWx1ZSA/ICR2YWx1
ZSA6ICRkZWZhdWx0KTsNCiB9DQogDQogIyBObyBzZW5zZSBpbiBydW5uaW5n
IGlmICdzc2hkJyBkb2Vzbid0IGV2ZW4gZXhpc3Qgb24gdGhpcyBzeXN0ZW0u
Li4NCiB1bmxlc3MgKCggLWYgIi91c3Ivc2Jpbi9zc2hkIiApIG9yICggLWYg
Ii91c3IvbG9jYWwvc2Jpbi9zc2hkIikpIHsNCi0gICBleGl0ICgwKTsNCisJ
ZXhpdCAoMCk7DQogfQ0KIA0KIG15ICRzZnRwUmVxdWVzdHMgPSAwOw0KIA0K
IGlmICggJERlYnVnID49IDUgKSB7DQotICAgcHJpbnQgU1RERVJSICJcblxu
REVCVUc6IEluc2lkZSBTU0hEIEZpbHRlciBcblxuIjsNCi0gICAkRGVidWdD
b3VudGVyID0gMTsNCisJcHJpbnQgU1RERVJSICJcblxuREVCVUc6IEluc2lk
ZSBTU0hEIEZpbHRlciBcblxuIjsNCisJJERlYnVnQ291bnRlciA9IDE7DQog
fQ0KIA0KIHdoaWxlIChkZWZpbmVkKCRUaGlzTGluZSA9IDxTVERJTj4pKSB7
DQotICAgaWYgKCAkRGVidWcgPj0gNSApIHsNCi0gICAgICBwcmludCBTVERF
UlIgIkRFQlVHKCREZWJ1Z0NvdW50ZXIpOiAkVGhpc0xpbmUiOw0KLSAgICAg
ICREZWJ1Z0NvdW50ZXIrKzsNCi0gICB9DQotICAgY2hvbXAoJFRoaXNMaW5l
KTsNCi0gICBpZiAoIA0KLSAgICAgICAgKCRUaGlzTGluZSA9fiBtL15jb25u
ZWN0IGZyb20gXGQrXC5cZCtcLlxkK1wuXGQrLykgb3IgDQorCWlmICggJERl
YnVnID49IDUgKSB7DQorCQlwcmludCBTVERFUlIgIkRFQlVHKCREZWJ1Z0Nv
dW50ZXIpOiAkVGhpc0xpbmUiOw0KKwkJJERlYnVnQ291bnRlcisrOw0KKwl9
DQorCWNob21wKCRUaGlzTGluZSk7DQorCWlmICggDQorCQkoJFRoaXNMaW5l
ID1+IG0vXmNvbm5lY3QgZnJvbSBcZCtcLlxkK1wuXGQrXC5cZCsvKSBvciAN
CiAgICAgICAgICgkVGhpc0xpbmUgPX4gbS9SZWFkIGZyb20gc29ja2V0IGZh
aWxlZC8pDQogICAgICAgKSB7DQogICAgICAgIyBJZ25vcmUgdGhlc2UNCkBA
IC01MCwxNiArNTAsMTYgQEANCiAgICAgICAgICBwcmludCBTVERFUlIgIkRF
QlVHOiBGb3VuZCAtJDIgbG9nZ2VkIGluIGZyb20gJDMgdXNpbmcgJDFcbiI7
DQogICAgICAgfQ0KICAgICAgIGlmICgkRGV0YWlsID49IDIwKSB7DQotCSAg
JFVzZXJzeyQyfXskM317JDF9Kys7DQotICAgICAgfSBlbHNlIHsNCi0JICAk
VXNlcnN7JDJ9eyQzfXsiKGFsbCkifSsrOw0KLSAgICAgIH0NCi0gICB9IGVs
c2lmICggJFRoaXNMaW5lID1+IG0vXkZhaWxlZCAoXFMrKSBmb3IgKFxTKykg
ZnJvbSAoW1xkLl0rKSBwb3J0IChcZCspLyApIHsgI29wZW5zc2gNCisJCSAg
JFVzZXJzeyQyfXskM317JDF9Kys7DQorCSAgfSBlbHNlIHsNCisJCSAgJFVz
ZXJzeyQyfXskM317IihhbGwpIn0rKzsNCisJICB9DQorICAgfSBlbHNpZiAo
ICRUaGlzTGluZSA9fiBtL15GYWlsZWQgKFxTKykgZm9yIChcUyspIGZyb20g
KFteIF0rKSBwb3J0IChcZCspLyApIHsgI29wZW5zc2gNCiAgICAgICBpZiAo
ICREZWJ1ZyA+PSA1ICkgew0KICAgICAgICAgIHByaW50IFNUREVSUiAiREVC
VUc6IEZvdW5kIC1GYWlsZWQgbG9naW4tIGxpbmVcbiI7DQogICAgICAgfQ0K
ICAgICAgICRCYWRMb2dpbnN7IiQyLyQxIGZyb20gJDMifSsrOw0KLSAgIH0g
ZWxzaWYgKCAkVGhpc0xpbmUgPX4gbS9eRmFpbGVkIChcUyspIGZvciBpbGxl
Z2FsIHVzZXIgKFxTKykgZnJvbSAoW1xkLl0rKSBwb3J0IChcZCspLyApIHsg
I29wZW5zc2gNCisgICB9IGVsc2lmICggJFRoaXNMaW5lID1+IG0vXkZhaWxl
ZCAoXFMrKSBmb3IgaWxsZWdhbCB1c2VyIChcUyspIGZyb20gKFteIF0rKSBw
b3J0IChcZCspLyApIHsgI29wZW5zc2gNCiAgICAgICAkQmFkTG9naW5zeyIk
Mi8kMSBmcm9tICQzIn0rKzsNCiAgICB9IGVsc2lmICggJFRoaXNMaW5lID1+
IG0vXklsbGVnYWwgdXNlciAoXFMrKSBmcm9tIChbXGQuXSspLyApIHsgI3Jl
ZGhhdCB0aGluZw0KICAgICAgICRJbGxlZ2FsVXNlcnN7IiQxL25vbmUgZnJv
bSAkMiJ9Kys7DQpAQCAtOTEsNyArOTEsNyBAQA0KICAgIH0gZWxzaWYgKCRU
aGlzTGluZSA9fiBtL15EaXNjb25uZWN0aW5nOiBDb21tYW5kIHRlcm1pbmF0
ZWQgb24gc2lnbmFsIFxkKy8pIHsNCiAgICAgICAjIG9wZW5zc2ggZW1pdHMg
dGhzZSwgYnV0IHRoZXkncmUgbm90IGtpbGxzLCBvZGRseS4NCiAgICB9DQot
ICAgZWxzaWYgKCAkVGhpc0xpbmUgPX4gbS9eKGxvZzogKT9TZXJ2ZXIgbGlz
dGVuaW5nIG9uKCBbXGRcLl0rKT8gcG9ydCBcZCsvICkgeyAjc3NoL29wZW5z
c2gNCisgICBlbHNpZiAoICRUaGlzTGluZSA9fiBtL14obG9nOiApP1NlcnZl
ciBsaXN0ZW5pbmcgb24oIFteIF0rKT8gcG9ydCBcZCsvICkgeyAjc3NoL29w
ZW5zc2gNCiAgICAgICAkU3RhcnRzKys7DQogICAgICAgaWYgKCAkRGVidWcg
Pj0gNSApIHsNCiAgICAgICAgICBwcmludCBTVERFUlIgIkRFQlVHOiBGb3Vu
ZCAtTGlzdGVuaW5nIG9uIHBvcnQgMjItIGxpbmVcbiI7DQpAQCAtMjQyLDMg
KzI0Miw0IEBADQogDQogZXhpdCgwKTsNCiANCisjIHZpOiBzaGlmdHdpZHRo
PTQgdGFic3RvcD00DQo=

---1059782324-2135595585-1069680714=:29545--