[COMMIT] Reduce regexp usage, now CL-oriented non-regexp code available, core Lisp

Aidan Kehoe <[email protected]> Wed, 1 Apr 2015 14:30:03 +0100
Newsgroups gmane.emacs.xemacs.patches
Message-ID <[email protected]>
CkFQUFJPVkUgQ09NTUlUCgpOT1RFOiBUaGlzIHBhdGNoIGhhcyBiZWVuIGNvbW1pdHRlZC4KCiMg
SEcgY2hhbmdlc2V0IHBhdGNoCiMgVXNlciBBaWRhbiBLZWhvZSA8a2Vob2VhQHBhcmhhc2FyZC5u
ZXQ+CiMgRGF0ZSAxNDI3ODk0OTAwIC0zNjAwCiMgICAgICBXZWQgQXByIDAxIDE0OjI4OjIwIDIw
MTUgKzAxMDAKIyBOb2RlIElEIGJiZTQxNDY2MDNkYmRmYzhjNmU0YjUyOTlkN2RlYjZlOWVkMWE1
NjIKIyBQYXJlbnQgIDMxZGQyNzVmYTY4M2Y3MzUyZGY5Y2ZlMmZlNjQ2MjAzN2I1M2FhYTkKUmVk
dWNlIHJlZ2V4cCB1c2FnZSwgbm93IENMLW9yaWVudGVkIG5vbi1yZWdleHAgY29kZSBhdmFpbGFi
bGUsIGNvcmUgTGlzcAoKbGlzcC9DaGFuZ2VMb2cgYWRkaXRpb246CgoyMDE1LTA0LTAxICBBaWRh
biBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0PgoKCVdoZW4gY2FsbGluZyAjJ3N0cmluZy1t
YXRjaCB3aXRoIGEgUkVHRVhQIHdpdGhvdXQgcmVndWxhcgoJZXhwcmVzc2lvbiBzcGVjaWFsIGNo
YXJhY3RlcnMsIGNhbGwgIydzZWFyY2gsICMnbWlzbWF0Y2gsICMnZmluZCwKCWV0Yy4gaW5zdGVh
ZCwgbWFraW5nIG91ciBjb2RlIGxlc3MgbGlrZWx5IHRvIHNpZGUtZWZmZWN0IG90aGVyCglmdW5j
dGlvbnMnIG1hdGNoIGRhdGEgYW5kIGEgbGl0dGxlIGZhc3Rlci4KCgkqIGFwcm9wb3MuZWwgKGFw
cm9wb3MtY29tbWFuZCk6CgkqIGFwcm9wb3MuZWwgKGFwcm9wb3MpOgoJQ2FsbCAocG9zaXRpb24g
P1xuIC4uLikgcmF0aGVyIHRoYW4gKHN0cmluZy1tYXRjaCAiXG4iIC4uLikgaGVyZS4KCSogYnVm
Zi1tZW51LmVsOgoJKiBidWZmLW1lbnUuZWwgKGJ1ZmZlcnMtbWVudS1vbWl0LWludmlzaWJsZS1i
dWZmZXJzKToKCURvbid0IGZpcmUgdXAgdGhlIHJlZ2V4cCBlbmdpbmUganVzdCB0byBjaGVjayBp
ZiBhIHN0cmluZyBzdGFydHMKCXdpdGggYSBzcGFjZS4KCSogYnVmZi1tZW51LmVsIChzZWxlY3Qt
YnVmZmVycy10YWItYnVmZmVycy1ieS1tb2RlKToKCURvbid0IGZpcmUgdXAgdGhlIHJlZ2V4cCBl
bmdpbmUganVzdCB0byBjb21wYXJlIG1vZGUgYmFzZW5hbWVzLgoJKiBidWZmLW1lbnUuZWwgKGZv
cm1hdC1idWZmZXJzLXRhYi1saW5lKToKCSogYnVmZi1tZW51LmVsIChidWlsZC1idWZmZXJzLXRh
Yi1pbnRlcm5hbCk6IE1vdmVkIHRvIGJlaW5nIGEKCWxhYmVsIHdpdGhpbiB0aGUgZm9sbG93aW5n
LgoJKiBidWZmLW1lbnUuZWwgKGJ1ZmZlcnMtdGFiLWl0ZW1zKTogVXNlIHRoZSBsYWJlbC4KCSog
Ynl0ZWNvbXAuZWwgKGJ5dGUtY29tcGlsZS1sb2ctMSk6CglEb24ndCBmaXJlIHVwIHRoZSByZWdl
eHAgZW5naW5lIGp1c3QgdG8gbG9vayBmb3IgYSBuZXdsaW5lLgoJKiBjdXMtZWRpdC5lbCAoZ2V0
KToKCURpdHRvLgoJKiBjdXMtZWRpdC5lbCAoY3VzdG9tLXZhcmlhYmxlLXZhbHVlLWNyZWF0ZSk6
CglEaXR0bywgYnV0IGZvciBhIGNvbG9uLgoJKiBkZXNjci10ZXh0LmVsIChkZXNjcmliZS10ZXh0
LXNleHApOgoJRGl0dG8uCgkqIGRlc2NyLXRleHQuZWwgKGRlc2NyaWJlLWNoYXItdW5pY29kZS1k
YXRhKToKCVVzZSAjJ3NwbGl0LXN0cmluZy1ieS1jaGFyIGdpdmVuIHRoYXQgd2UncmUganVzdCBs
b29raW5nIGZvciBhCglzZW1pY29sb24uCgkqIGRlc2NyLXRleHQuZWwgKGRlc2NyaWJlLWNoYXIp
OgoJRG9uJ3QgZmlyZSB1cCB0aGUgcmVnZXhwIGVuZ2luZSBqdXN0IHRvIGxvb2sgZm9yIGEgbmV3
bGluZS4KCSogZGlzYXNzLmVsIChkaXNhc3NlbWJsZS1pbnRlcm5hbCk6CglEaXR0by4KCSogZmls
ZXMuZWwgKGZpbGUtbmFtZS1zYW5zLWV4dGVuc2lvbik6CglJbXBsZW1lbnQgdGhpcyB1c2luZyAj
J3Bvc2l0aW9uLgoJKiBmaWxlcy5lbCAoZmlsZS1uYW1lLWV4dGVuc2lvbik6CglDb3JyZWN0IHRo
aXMgZnVuY3Rpb24ncyBkb2NzdHJpbmcsIGltcGxlbWVudCBpdCBpbiB0ZXJtcyBvZgoJIydwb3Np
dGlvbi4KCSogZmlsZXMuZWwgKGluc2VydC1kaXJlY3RvcnkpOgoJRG9uJ3QgZmlyZSB1cCB0aGUg
cmVnZXhwIGVuZ2luZSB0byBzcGxpdCBhIHN0cmluZyBieSBzcGFjZTsgZG9uJ3QKCXJldmVyc2Ug
dGhlIGxpc3Qgb2Ygc3dpdGNoZXMsIHRoaXMgaXMgYWN0dWFsbHkgYSBsb25nc3RhbmQgYnVnIGFz
CglmYXIgYXMgSSBjYW4gc2VlLgoJKiBnbnVzZXJ2LmVsIChnbnVzZXJ2LXByb2Nlc3MtZmlsdGVy
KToKCVVzZSAjJ3Bvc2l0aW9uIGhlcmUsIGluc3RlYWQgb2YgY29uc2luZyBpbnNpZGUgIydzcGxp
dC1zdHJpbmcKCW5lZWRsZXNzbHkuCgkqIGd0ay1maWxlLWRpYWxvZy5lbCAoZ3RrLWZpbGUtZGlh
bG9nLXVwZGF0ZS1kcm9wZG93bik6CglVc2UgIydzcGxpdC1zdHJpbmctYnktY2hhciBoZXJlLCBk
b24ndCBmaXJlIHVwICMnc3BsaXQtc3RyaW5nIGZvcgoJZGlyZWN0b3J5LXNlcC1jaGFyLgoJKiBn
dGstZm9udC1tZW51LmVsIChoYWNrLWZvbnQtdHJ1ZW5hbWUpOgoJSW1wbGVtZW50IHRoaXMgbW9y
ZSBjaGVhcGx5IGluIHRlcm1zIG9mICMnZmluZCwKCSMnc3BsaXQtc3RyaW5nLWJ5LWNoYXIsICMn
ZXF1YWwsIHJhdGhlciB0aGFuICMnc3RyaW5nLW1hdGNoLAoJIydzcGxpdC1zdHJpbmcsICMnc3Ry
aW5nLWVxdWFsLgoJKiBoeXBlci1hcHJvcG9zLmVsIChoeXBlci1hcHJvcG9zLWdyb2stZnVuY3Rp
b25zKToKCSogaHlwZXItYXByb3Bvcy5lbCAoaHlwZXItYXByb3Bvcy1ncm9rLXZhcmlhYmxlcyk6
CglMb29rIGZvciBhIG5ld2xpbmUgdXNpbmcgIydwb3NpdGlvbiByYXRoZXIgdGhhbiAjJ3N0cmlu
Zy1tYXRjaCBpbgoJdGhlc2UgZnVuY3Rpb25zLgoJKiBpbmZvLmVsIChJbmZvLWluc2VydC1kaXIp
OgoJKiBpbmZvLmVsIChJbmZvLWluc2VydC1maWxlLWNvbnRlbnRzKToKCSogaW5mby5lbCAoSW5m
by1mb2xsb3ctcmVmZXJlbmNlKToKCSogaW5mby5lbCAoSW5mby1leHRyYWN0LW1lbnUtbm9kZS1u
YW1lKToKCSogaW5mby5lbCAoSW5mby1tZW51KToKCUxvb2sgZm9yIGZpeGVkIHN0cmluZ3MgdXNp
bmcgIydwb3NpdGlvbiBvciAjJ3NlYXJjaCBhcyBhcHByb3ByaWF0ZQoJaW4gdGhpcyBmaWxlLgoJ
KiBsZGFwLmVsIChsZGFwLWRlY29kZS1zdHJpbmcpOgoJKiBsZGFwLmVsIChsZGFwLWVuY29kZS1z
dHJpbmcpOgoJIydlbmNvZGUtY29kaW5nLXN0cmluZywgIydkZWNvZGUtY29kaW5nLXN0cmluZyBh
cmUgYWx3YXlzCglhdmFpbGFibGUsIGRvbid0IGNoZWNrIGlmIHRoZXkncmUgZmJvdW5kcC4KCSog
bGRhcC5lbCAobGRhcC1kZWNvZGUtYWRkcmVzcyk6CgkqIGxkYXAuZWwgKGxkYXAtZW5jb2RlLWFk
ZHJlc3MpOgoJVXNlICMnc3BsaXQtc3RyaW5nLWJ5LWNoYXIgaW4gdGhlc2UgZnVuY3Rpb25zLgoJ
KiBsaXNwLW1udC5lbCAobG0tY3JlYXRpb24tZGF0ZSk6CgkqIGxpc3AtbW50LmVsIChsbS1sYXN0
LW1vZGlmaWVkLWRhdGUpOgoJRG9uJ3QgZmlyZSB1cCB0aGUgcmVnZXhwIGVuZ2luZSBqdXN0IHRv
IGxvb2sgZm9yIHNwYWNlcyBpbiB0aGlzIGZpbGUuCgkqIG1lbnViYXItaXRlbXMuZWwgKGRlZmF1
bHQtbWVudWJhcik6CglVc2UgKG5vdCAobWlzbWF0Y2ggLi4uKSkgcmF0aGVyIHRoYW4gIydzdHJp
bmctbWF0Y2ggaGVyZSwgZm9yCglzaW1wbGUgcmVnZXhwLgoJVXNlIChzZWFyY2ggImJldGEiIC4u
LikgcmF0aGVyIHRoYW4gKHN0cmluZy1tYXRjaCAiYmV0YSIgLi4uKQoJKiBtZW51YmFyLWl0ZW1z
LmVsIChzb3J0LWJ1ZmZlcnMtbWVudS1hbHBoYWJldGljYWxseSk6CgkqIG1lbnViYXItaXRlbXMu
ZWwgKHNvcnQtYnVmZmVycy1tZW51LWJ5LW1vZGUtdGhlbi1hbHBoYWJldGljYWxseSk6CgkqIG1l
bnViYXItaXRlbXMuZWwgKGdyb3VwLWJ1ZmZlcnMtbWVudS1ieS1tb2RlLXRoZW4tYWxwaGFiZXRp
Y2FsbHkpOgoJRG9uJ3QgZmlyZSB1cCB0aGUgcmVnZXhwIGVuZ2luZSB0byBjaGVjayBpZiBhIHN0
cmluZyBzdGFydHMgd2l0aAoJYSBzcGFjZSBvciBhbiBhc3Rlcmlzay4KCVVzZSB0aGUgbW9yZSBm
aW5lLWdyYWluZWQgcmVzdWx0cyBvZiAjJ2NvbXBhcmUtc3RyaW5nczsgY29tcGFyZQoJY2FzZS1p
bnNlbnNpdGl2ZWx5IGZvciB0aGUgYnVmZmVyIG1lbnUuCgkqIG1lbnViYXItaXRlbXMuZWwgKGxp
c3QtYWxsLWJ1ZmZlcnMpOgoJKiBtZW51YmFyLWl0ZW1zLmVsICh0dXRvcmlhbHMtbWVudS1maWx0
ZXIpOgoJVXNlICMnZXF1YWwgcmF0aGVyIHRoYW4gIydzdHJpbmctZXF1YWwsIHdoaWNoLCBpbiB0
aGlzIGNvbnRleHQsCgloYXMgdGhlIGRyYXdiYWNrIG9mIG5vdCBoYXZpbmcgYSBieXRlY29kZSwg
YW5kIG5vIHJlZGVlbWluZwoJZmVhdHVyZXMuCgkqIG1pbmlidWYuZWw6CgkqIG1pbmlidWYuZWwg
KHVuLXN1YnN0aXR1dGUtaW4tZmlsZS1uYW1lKToKCVVzZSAjJ2NvdW50LCByYXRoZXIgdGhhbiBj
b3VudGluZyB0aGUgb2NjdXJlbmNlcyBvZiAkIHVzaW5nIHRoZQoJcmVnZXhwIGVuZ2luZS4KCSog
bWluaWJ1Zi5lbCAocmVhZC1maWxlLW5hbWUtaW50ZXJuYWwtMSk6CglEb24ndCBmaXJlIHVwIHRo
ZSByZWdleHAgZW5naW5lIHRvIHNlYXJjaCBmb3IgPz0uCgkqIG1vdXNlLmVsIChtb3VzZS1ldmFs
LXNleHApOgoJQ2hlY2sgZm9yIG5ld2xpbmUgd2l0aCAjJ2ZpbmQuCgkqIG1zdy1mb250LW1lbnUu
ZWwgKG1zd2luZG93cy1yZXNldC1kZXZpY2UtZm9udC1tZW51cyk6CglTcGxpdCBhIHN0cmluZyBi
eSBuZXdsaW5lIHdpdGggIydzcGxpdC1zdHJpbmctYnktY2hhci4KCSogbXVsZS9qYXBhbmVzZS5l
bDoKCSogbXVsZS9qYXBhbmVzZS5lbCAoIkphcGFuZXNlIik6CglVc2UgIydzZWFyY2ggcmF0aGVy
IHRoYW4gIydzdHJpbmctbWF0Y2g7IGNhbm9uY2FzZSBiZWZvcmUKCWNvbXBhcmluZzsgZml4IGEg
YnVnIEkgaGFkIGludHJvZHVjZWQgd2hlcmUgSSBoYWQgYmVlbiBtYWtpbmcgY2FzZQoJaW5zZW5z
aXRpdmUgY29tcGFyaXNvbnMgd2hlcmUgdGhlIGNhc2UgbWF0dGVyZWQuCgkqIG11bGUva29yZWEt
dXRpbC5lbCAoZGVmYXVsdC1rb3JlYW4ta2V5Ym9hcmQpOgoJTG9vayBmb3IgPzMgdXNpbmcgIydm
aW5kLCBub3QgIydzdHJpbmctbWFyY2guCgkqIG11bGUva29yZWEtdXRpbC5lbCAocXVhaWwtaGFu
Z3VsLXN3aXRjaC1oYW5qYSk6CglTZWFyY2ggZm9yIGEgZml4ZWQgc3RyaW5nIHVzaW5nICMnc2Vh
cmNoLgoJKiBtdWxlL211bGUtY21kcy5lbCAoc2V0LWxvY2FsZS1mb3ItbGFuZ3VhZ2UtZW52aXJv
bm1lbnQpOgoJIydwb3NpdGlvbiwgIydzdWJzdGl0dXRlIHJhdGhlciB0aGFuICMnc3RyaW5nLW1h
dGNoLAoJIydyZXBsYWNlLWluLXN0cmluZy4KCSogbmV3Y29tbWVudC5lbCAoY29tbWVudC1tYWtl
LWV4dHJhLWxpbmVzKToKCVVzZSAjJ3NlYXJjaCByYXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRjaCBm
b3IgYSBzaW1wbGUgc3RyaW5nLgoJKiBwYWNrYWdlLWdldC5lbCAocGFja2FnZS1nZXQtcmVtb3Rl
LWZpbGVuYW1lKToKCVVzZSAjJ3Bvc2l0aW9uIHdoZW4gbG9va2luZyBmb3IgP0AKCSogcHJvY2Vz
cy5lbCAoc2V0ZW52KToKCSogcHJvY2Vzcy5lbCAocmVhZC1lbnZ2YXItbmFtZSk6CglVc2UgIydw
b3NpdGlvbiB3aGVuIGxvb2tpbmcgZm9yID89LgoJKiByZXBsYWNlLmVsIChtYXAtcXVlcnktcmVw
bGFjZS1yZWdleHApOgoJVXNlICMnc3BsaXQtc3RyaW5nLWJ5LWNoYXIgaW5zdGVhZCBvZiB1c2lu
ZyBhbiBpbmxpbmUKCWltcGxlbWVudGF0aW9uIG9mIGl0LgoJKiBzZWxlY3QuZWwgKHNlbGVjdC1j
b252ZXJ0LWZyb20tY2YtdGV4dCk6CgkqIHNlbGVjdC5lbCAoc2VsZWN0LWNvbnZlcnQtZnJvbS1j
Zi11bmljb2RldGV4dCk6CglVc2UgIydwb3NpdGlvbiByYXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRj
aCBpbiB0aGVzZSBmdW5jdGlvbnMuCgkqIHNldHVwLXBhdGhzLmVsIChwYXRocy1lbWFjcy1kYXRh
LXJvb3QtcCk6CglVc2UgIydzZWFyY2ggd2hlbiBsb29raW5nIGZvciBzaW1wbGUgc3RyaW5nLgoJ
KiBzb3VuZC5lbCAobG9hZC1zb3VuZC1maWxlKToKCVVzZSAjJ3NwbGl0LXN0cmluZy1ieS1jaGFy
IHJhdGhlciB0aGFuIGFuIGlubGluZSByZWltcGxlbWVudGF0aW9uCglvZiBzYW1lLgoJKiBzdGFy
dHVwLmVsIChzcGxhc2gtc2NyZWVuLXdpbmRvdy1ib2R5KToKCSogc3RhcnR1cC5lbCAoc3BsYXNo
LXNjcmVlbi10dHktYm9keSk6CglTZWFyY2ggZm9yIHNpbXBsZSBzdHJpbmdzIHVzaW5nICMnc2Vh
cmNoLgoJKiB2ZXJzaW9uLmVsIChlbWFjcy12ZXJzaW9uKToKCURpdHRvLgoJKiB4LWZvbnQtbWVu
dS5lbCAoaGFjay1mb250LXRydWVuYW1lKToKCUltcGxlbWVudCB0aGlzIG1vcmUgY2hlYXBseSBp
biB0ZXJtcyBvZiAjJ2ZpbmQsCgkjJ3NwbGl0LXN0cmluZy1ieS1jaGFyLCAjJ2VxdWFsLCByYXRo
ZXIgdGhhbiAjJ3N0cmluZy1tYXRjaCwKCSMnc3BsaXQtc3RyaW5nLCAjJ3N0cmluZy1lcXVhbC4K
CSogeC1mb250LW1lbnUuZWwgKHgtcmVzZXQtZGV2aWNlLWZvbnQtbWVudXMtY29yZSk6CglVc2Ug
IydzcGxpdC1zdHJpbmctYnktY2hhciBoZXJlLgoJKiB4LWluaXQuZWwgKHgtaW5pdGlhbGl6ZS1r
ZXlib2FyZCk6CglTZWFyY2ggZm9yIGEgc2ltcGxlIHN0cmluZyB1c2luZyAjJ3NlYXJjaC4KCmRp
ZmYgLXIgMzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL0NoYW5nZUxvZwotLS0gYS9s
aXNwL0NoYW5nZUxvZwlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9D
aGFuZ2VMb2cJV2VkIEFwciAwMSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xLDMgKzEsMTQ4IEBA
CisyMDE1LTA0LTAxICBBaWRhbiBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0PgorCisJV2hl
biBjYWxsaW5nICMnc3RyaW5nLW1hdGNoIHdpdGggYSBSRUdFWFAgd2l0aG91dCByZWd1bGFyCisJ
ZXhwcmVzc2lvbiBzcGVjaWFsIGNoYXJhY3RlcnMsIGNhbGwgIydzZWFyY2gsICMnbWlzbWF0Y2gs
ICMnZmluZCwKKwlldGMuIGluc3RlYWQsIG1ha2luZyBvdXIgY29kZSBsZXNzIGxpa2VseSB0byBz
aWRlLWVmZmVjdCBvdGhlcgorCWZ1bmN0aW9ucycgbWF0Y2ggZGF0YSBhbmQgYSBsaXR0bGUgZmFz
dGVyLgorCisJKiBhcHJvcG9zLmVsIChhcHJvcG9zLWNvbW1hbmQpOgorCSogYXByb3Bvcy5lbCAo
YXByb3Bvcyk6CisJQ2FsbCAocG9zaXRpb24gP1xuIC4uLikgcmF0aGVyIHRoYW4gKHN0cmluZy1t
YXRjaCAiXG4iIC4uLikgaGVyZS4KKwkqIGJ1ZmYtbWVudS5lbDoKKwkqIGJ1ZmYtbWVudS5lbCAo
YnVmZmVycy1tZW51LW9taXQtaW52aXNpYmxlLWJ1ZmZlcnMpOgorCURvbid0IGZpcmUgdXAgdGhl
IHJlZ2V4cCBlbmdpbmUganVzdCB0byBjaGVjayBpZiBhIHN0cmluZyBzdGFydHMKKwl3aXRoIGEg
c3BhY2UuCisJKiBidWZmLW1lbnUuZWwgKHNlbGVjdC1idWZmZXJzLXRhYi1idWZmZXJzLWJ5LW1v
ZGUpOgorCURvbid0IGZpcmUgdXAgdGhlIHJlZ2V4cCBlbmdpbmUganVzdCB0byBjb21wYXJlIG1v
ZGUgYmFzZW5hbWVzLgorCSogYnVmZi1tZW51LmVsIChmb3JtYXQtYnVmZmVycy10YWItbGluZSk6
CisJKiBidWZmLW1lbnUuZWwgKGJ1aWxkLWJ1ZmZlcnMtdGFiLWludGVybmFsKTogTW92ZWQgdG8g
YmVpbmcgYQorCWxhYmVsIHdpdGhpbiB0aGUgZm9sbG93aW5nLgorCSogYnVmZi1tZW51LmVsIChi
dWZmZXJzLXRhYi1pdGVtcyk6IFVzZSB0aGUgbGFiZWwuCisJKiBieXRlY29tcC5lbCAoYnl0ZS1j
b21waWxlLWxvZy0xKToKKwlEb24ndCBmaXJlIHVwIHRoZSByZWdleHAgZW5naW5lIGp1c3QgdG8g
bG9vayBmb3IgYSBuZXdsaW5lLgorCSogY3VzLWVkaXQuZWwgKGdldCk6CisJRGl0dG8uCisJKiBj
dXMtZWRpdC5lbCAoY3VzdG9tLXZhcmlhYmxlLXZhbHVlLWNyZWF0ZSk6CisJRGl0dG8sIGJ1dCBm
b3IgYSBjb2xvbi4KKwkqIGRlc2NyLXRleHQuZWwgKGRlc2NyaWJlLXRleHQtc2V4cCk6CisJRGl0
dG8uCisJKiBkZXNjci10ZXh0LmVsIChkZXNjcmliZS1jaGFyLXVuaWNvZGUtZGF0YSk6CisJVXNl
ICMnc3BsaXQtc3RyaW5nLWJ5LWNoYXIgZ2l2ZW4gdGhhdCB3ZSdyZSBqdXN0IGxvb2tpbmcgZm9y
IGEKKwlzZW1pY29sb24uCisJKiBkZXNjci10ZXh0LmVsIChkZXNjcmliZS1jaGFyKToKKwlEb24n
dCBmaXJlIHVwIHRoZSByZWdleHAgZW5naW5lIGp1c3QgdG8gbG9vayBmb3IgYSBuZXdsaW5lLgor
CSogZGlzYXNzLmVsIChkaXNhc3NlbWJsZS1pbnRlcm5hbCk6CisJRGl0dG8uCisJKiBmaWxlcy5l
bCAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uKToKKwlJbXBsZW1lbnQgdGhpcyB1c2luZyAjJ3Bv
c2l0aW9uLgorCSogZmlsZXMuZWwgKGZpbGUtbmFtZS1leHRlbnNpb24pOgorCUNvcnJlY3QgdGhp
cyBmdW5jdGlvbidzIGRvY3N0cmluZywgaW1wbGVtZW50IGl0IGluIHRlcm1zIG9mCisJIydwb3Np
dGlvbi4KKwkqIGZpbGVzLmVsIChpbnNlcnQtZGlyZWN0b3J5KToKKwlEb24ndCBmaXJlIHVwIHRo
ZSByZWdleHAgZW5naW5lIHRvIHNwbGl0IGEgc3RyaW5nIGJ5IHNwYWNlOyBkb24ndAorCXJldmVy
c2UgdGhlIGxpc3Qgb2Ygc3dpdGNoZXMsIHRoaXMgaXMgYWN0dWFsbHkgYSBsb25nc3RhbmQgYnVn
IGFzCisJZmFyIGFzIEkgY2FuIHNlZS4KKwkqIGdudXNlcnYuZWwgKGdudXNlcnYtcHJvY2Vzcy1m
aWx0ZXIpOgorCVVzZSAjJ3Bvc2l0aW9uIGhlcmUsIGluc3RlYWQgb2YgY29uc2luZyBpbnNpZGUg
IydzcGxpdC1zdHJpbmcKKwluZWVkbGVzc2x5LgorCSogZ3RrLWZpbGUtZGlhbG9nLmVsIChndGst
ZmlsZS1kaWFsb2ctdXBkYXRlLWRyb3Bkb3duKToKKwlVc2UgIydzcGxpdC1zdHJpbmctYnktY2hh
ciBoZXJlLCBkb24ndCBmaXJlIHVwICMnc3BsaXQtc3RyaW5nIGZvcgorCWRpcmVjdG9yeS1zZXAt
Y2hhci4gCisJKiBndGstZm9udC1tZW51LmVsIChoYWNrLWZvbnQtdHJ1ZW5hbWUpOgorCUltcGxl
bWVudCB0aGlzIG1vcmUgY2hlYXBseSBpbiB0ZXJtcyBvZiAjJ2ZpbmQsCisJIydzcGxpdC1zdHJp
bmctYnktY2hhciwgIydlcXVhbCwgcmF0aGVyIHRoYW4gIydzdHJpbmctbWF0Y2gsCisJIydzcGxp
dC1zdHJpbmcsICMnc3RyaW5nLWVxdWFsLgorCSogaHlwZXItYXByb3Bvcy5lbCAoaHlwZXItYXBy
b3Bvcy1ncm9rLWZ1bmN0aW9ucyk6CisJKiBoeXBlci1hcHJvcG9zLmVsIChoeXBlci1hcHJvcG9z
LWdyb2stdmFyaWFibGVzKToKKwlMb29rIGZvciBhIG5ld2xpbmUgdXNpbmcgIydwb3NpdGlvbiBy
YXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRjaCBpbgorCXRoZXNlIGZ1bmN0aW9ucy4KKwkqIGluZm8u
ZWwgKEluZm8taW5zZXJ0LWRpcik6CisJKiBpbmZvLmVsIChJbmZvLWluc2VydC1maWxlLWNvbnRl
bnRzKToKKwkqIGluZm8uZWwgKEluZm8tZm9sbG93LXJlZmVyZW5jZSk6CisJKiBpbmZvLmVsIChJ
bmZvLWV4dHJhY3QtbWVudS1ub2RlLW5hbWUpOgorCSogaW5mby5lbCAoSW5mby1tZW51KToKKwlM
b29rIGZvciBmaXhlZCBzdHJpbmdzIHVzaW5nICMncG9zaXRpb24gb3IgIydzZWFyY2ggYXMgYXBw
cm9wcmlhdGUKKwlpbiB0aGlzIGZpbGUuCisJKiBsZGFwLmVsIChsZGFwLWRlY29kZS1zdHJpbmcp
OgorCSogbGRhcC5lbCAobGRhcC1lbmNvZGUtc3RyaW5nKToKKwkjJ2VuY29kZS1jb2Rpbmctc3Ry
aW5nLCAjJ2RlY29kZS1jb2Rpbmctc3RyaW5nIGFyZSBhbHdheXMKKwlhdmFpbGFibGUsIGRvbid0
IGNoZWNrIGlmIHRoZXkncmUgZmJvdW5kcC4KKwkqIGxkYXAuZWwgKGxkYXAtZGVjb2RlLWFkZHJl
c3MpOgorCSogbGRhcC5lbCAobGRhcC1lbmNvZGUtYWRkcmVzcyk6CisJVXNlICMnc3BsaXQtc3Ry
aW5nLWJ5LWNoYXIgaW4gdGhlc2UgZnVuY3Rpb25zLgorCSogbGlzcC1tbnQuZWwgKGxtLWNyZWF0
aW9uLWRhdGUpOgorCSogbGlzcC1tbnQuZWwgKGxtLWxhc3QtbW9kaWZpZWQtZGF0ZSk6CisJRG9u
J3QgZmlyZSB1cCB0aGUgcmVnZXhwIGVuZ2luZSBqdXN0IHRvIGxvb2sgZm9yIHNwYWNlcyBpbiB0
aGlzIGZpbGUuCisJKiBtZW51YmFyLWl0ZW1zLmVsIChkZWZhdWx0LW1lbnViYXIpOgorCVVzZSAo
bm90IChtaXNtYXRjaCAuLi4pKSByYXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRjaCBoZXJlLCBmb3IK
KwlzaW1wbGUgcmVnZXhwLgorCVVzZSAoc2VhcmNoICJiZXRhIiAuLi4pIHJhdGhlciB0aGFuIChz
dHJpbmctbWF0Y2ggImJldGEiIC4uLikKKwkqIG1lbnViYXItaXRlbXMuZWwgKHNvcnQtYnVmZmVy
cy1tZW51LWFscGhhYmV0aWNhbGx5KToKKwkqIG1lbnViYXItaXRlbXMuZWwgKHNvcnQtYnVmZmVy
cy1tZW51LWJ5LW1vZGUtdGhlbi1hbHBoYWJldGljYWxseSk6CisJKiBtZW51YmFyLWl0ZW1zLmVs
IChncm91cC1idWZmZXJzLW1lbnUtYnktbW9kZS10aGVuLWFscGhhYmV0aWNhbGx5KToKKwlEb24n
dCBmaXJlIHVwIHRoZSByZWdleHAgZW5naW5lIHRvIGNoZWNrIGlmIGEgc3RyaW5nIHN0YXJ0cyB3
aXRoCisJYSBzcGFjZSBvciBhbiBhc3Rlcmlzay4KKwlVc2UgdGhlIG1vcmUgZmluZS1ncmFpbmVk
IHJlc3VsdHMgb2YgIydjb21wYXJlLXN0cmluZ3M7IGNvbXBhcmUKKwljYXNlLWluc2Vuc2l0aXZl
bHkgZm9yIHRoZSBidWZmZXIgbWVudS4KKwkqIG1lbnViYXItaXRlbXMuZWwgKGxpc3QtYWxsLWJ1
ZmZlcnMpOgorCSogbWVudWJhci1pdGVtcy5lbCAodHV0b3JpYWxzLW1lbnUtZmlsdGVyKToKKwlV
c2UgIydlcXVhbCByYXRoZXIgdGhhbiAjJ3N0cmluZy1lcXVhbCwgd2hpY2gsIGluIHRoaXMgY29u
dGV4dCwKKwloYXMgdGhlIGRyYXdiYWNrIG9mIG5vdCBoYXZpbmcgYSBieXRlY29kZSwgYW5kIG5v
IHJlZGVlbWluZworCWZlYXR1cmVzLgorCSogbWluaWJ1Zi5lbDoKKwkqIG1pbmlidWYuZWwgKHVu
LXN1YnN0aXR1dGUtaW4tZmlsZS1uYW1lKToKKwlVc2UgIydjb3VudCwgcmF0aGVyIHRoYW4gY291
bnRpbmcgdGhlIG9jY3VyZW5jZXMgb2YgJCB1c2luZyB0aGUKKwlyZWdleHAgZW5naW5lLgorCSog
bWluaWJ1Zi5lbCAocmVhZC1maWxlLW5hbWUtaW50ZXJuYWwtMSk6CisJRG9uJ3QgZmlyZSB1cCB0
aGUgcmVnZXhwIGVuZ2luZSB0byBzZWFyY2ggZm9yID89LgorCSogbW91c2UuZWwgKG1vdXNlLWV2
YWwtc2V4cCk6CisJQ2hlY2sgZm9yIG5ld2xpbmUgd2l0aCAjJ2ZpbmQuCisJKiBtc3ctZm9udC1t
ZW51LmVsIChtc3dpbmRvd3MtcmVzZXQtZGV2aWNlLWZvbnQtbWVudXMpOgorCVNwbGl0IGEgc3Ry
aW5nIGJ5IG5ld2xpbmUgd2l0aCAjJ3NwbGl0LXN0cmluZy1ieS1jaGFyLgorCSogbXVsZS9qYXBh
bmVzZS5lbDoKKwkqIG11bGUvamFwYW5lc2UuZWwgKCJKYXBhbmVzZSIpOgorCVVzZSAjJ3NlYXJj
aCByYXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRjaDsgY2Fub25jYXNlIGJlZm9yZQorCWNvbXBhcmlu
ZzsgZml4IGEgYnVnIEkgaGFkIGludHJvZHVjZWQgd2hlcmUgSSBoYWQgYmVlbiBtYWtpbmcgY2Fz
ZQorCWluc2Vuc2l0aXZlIGNvbXBhcmlzb25zIHdoZXJlIHRoZSBjYXNlIG1hdHRlcmVkLgorCSog
bXVsZS9rb3JlYS11dGlsLmVsIChkZWZhdWx0LWtvcmVhbi1rZXlib2FyZCk6CisJTG9vayBmb3Ig
PzMgdXNpbmcgIydmaW5kLCBub3QgIydzdHJpbmctbWFyY2guCisJKiBtdWxlL2tvcmVhLXV0aWwu
ZWwgKHF1YWlsLWhhbmd1bC1zd2l0Y2gtaGFuamEpOgorCVNlYXJjaCBmb3IgYSBmaXhlZCBzdHJp
bmcgdXNpbmcgIydzZWFyY2guCisJKiBtdWxlL211bGUtY21kcy5lbCAoc2V0LWxvY2FsZS1mb3It
bGFuZ3VhZ2UtZW52aXJvbm1lbnQpOgorCSMncG9zaXRpb24sICMnc3Vic3RpdHV0ZSByYXRoZXIg
dGhhbiAjJ3N0cmluZy1tYXRjaCwKKwkjJ3JlcGxhY2UtaW4tc3RyaW5nLgorCSogbmV3Y29tbWVu
dC5lbCAoY29tbWVudC1tYWtlLWV4dHJhLWxpbmVzKToKKwlVc2UgIydzZWFyY2ggcmF0aGVyIHRo
YW4gIydzdHJpbmctbWF0Y2ggZm9yIGEgc2ltcGxlIHN0cmluZy4KKwkqIHBhY2thZ2UtZ2V0LmVs
IChwYWNrYWdlLWdldC1yZW1vdGUtZmlsZW5hbWUpOgorCVVzZSAjJ3Bvc2l0aW9uIHdoZW4gbG9v
a2luZyBmb3IgP0AKKwkqIHByb2Nlc3MuZWwgKHNldGVudik6CisJKiBwcm9jZXNzLmVsIChyZWFk
LWVudnZhci1uYW1lKToKKwlVc2UgIydwb3NpdGlvbiB3aGVuIGxvb2tpbmcgZm9yID89LgorCSog
cmVwbGFjZS5lbCAobWFwLXF1ZXJ5LXJlcGxhY2UtcmVnZXhwKToKKwlVc2UgIydzcGxpdC1zdHJp
bmctYnktY2hhciBpbnN0ZWFkIG9mIHVzaW5nIGFuIGlubGluZQorCWltcGxlbWVudGF0aW9uIG9m
IGl0LgorCSogc2VsZWN0LmVsIChzZWxlY3QtY29udmVydC1mcm9tLWNmLXRleHQpOgorCSogc2Vs
ZWN0LmVsIChzZWxlY3QtY29udmVydC1mcm9tLWNmLXVuaWNvZGV0ZXh0KToKKwlVc2UgIydwb3Np
dGlvbiByYXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRjaCBpbiB0aGVzZSBmdW5jdGlvbnMuCisJKiBz
ZXR1cC1wYXRocy5lbCAocGF0aHMtZW1hY3MtZGF0YS1yb290LXApOgorCVVzZSAjJ3NlYXJjaCB3
aGVuIGxvb2tpbmcgZm9yIHNpbXBsZSBzdHJpbmcuCisJKiBzb3VuZC5lbCAobG9hZC1zb3VuZC1m
aWxlKToKKwlVc2UgIydzcGxpdC1zdHJpbmctYnktY2hhciByYXRoZXIgdGhhbiBhbiBpbmxpbmUg
cmVpbXBsZW1lbnRhdGlvbgorCW9mIHNhbWUuCisJKiBzdGFydHVwLmVsIChzcGxhc2gtc2NyZWVu
LXdpbmRvdy1ib2R5KToKKwkqIHN0YXJ0dXAuZWwgKHNwbGFzaC1zY3JlZW4tdHR5LWJvZHkpOgor
CVNlYXJjaCBmb3Igc2ltcGxlIHN0cmluZ3MgdXNpbmcgIydzZWFyY2guCisJKiB2ZXJzaW9uLmVs
IChlbWFjcy12ZXJzaW9uKToKKwlEaXR0by4KKwkqIHgtZm9udC1tZW51LmVsIChoYWNrLWZvbnQt
dHJ1ZW5hbWUpOgorCUltcGxlbWVudCB0aGlzIG1vcmUgY2hlYXBseSBpbiB0ZXJtcyBvZiAjJ2Zp
bmQsCisJIydzcGxpdC1zdHJpbmctYnktY2hhciwgIydlcXVhbCwgcmF0aGVyIHRoYW4gIydzdHJp
bmctbWF0Y2gsCisJIydzcGxpdC1zdHJpbmcsICMnc3RyaW5nLWVxdWFsLgorCSogeC1mb250LW1l
bnUuZWwgKHgtcmVzZXQtZGV2aWNlLWZvbnQtbWVudXMtY29yZSk6CisJVXNlICMnc3BsaXQtc3Ry
aW5nLWJ5LWNoYXIgaGVyZS4KKwkqIHgtaW5pdC5lbCAoeC1pbml0aWFsaXplLWtleWJvYXJkKToK
KwlTZWFyY2ggZm9yIGEgc2ltcGxlIHN0cmluZyB1c2luZyAjJ3NlYXJjaC4KKwogMjAxNS0wMy0x
NiAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KIAogCSogdHR5LWluaXQuZWwg
KG1ha2UtZnJhbWUtYWZ0ZXItaW5pdC1lbnRyeS1wb2ludCk6CmRpZmYgLXIgMzFkZDI3NWZhNjgz
IC1yIGJiZTQxNDY2MDNkYiBsaXNwL2Fwcm9wb3MuZWwKLS0tIGEvbGlzcC9hcHJvcG9zLmVsCVR1
ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2Fwcm9wb3MuZWwJV2VkIEFw
ciAwMSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xNzcsNyArMTc3LDcgQEAKIAkJCQkJICAoZG9j
dW1lbnRhdGlvbiBzeW1ib2wgdCkKIAkJCQkJKHZvaWQtZnVuY3Rpb24gIihhbGlhc2VkIHRvIHVu
ZGVmaW5lZCBmdW5jdGlvbikiKQogCQkJCQkoZXJyb3IgIih1bmV4cGVjdGVkIGVycm9yIGZyb20g
YGRvY3VtZW50aW9uJykiKSkpKQotCQkJICAgIChzdWJzdHJpbmcgZG9jIDAgKHN0cmluZy1tYXRj
aCAiXG4iIGRvYykpCisJCQkgICAgKHN1YnNlcSBkb2MgMCAocG9zaXRpb24gP1xuIGRvYykpCiAJ
CQkgICIobm90IGRvY3VtZW50ZWQpIikpCiAJCSAgICAoYW5kIGRvLWFsbAogCQkJICh1c2VyLXZh
cmlhYmxlLXAgc3ltYm9sKQpAQCAtMTg4LDggKzE4OCw3IEBACiAJCQkJICAgICh2YXJpYWJsZS1v
YnNvbGV0ZW5lc3MtZG9jIHN5bWJvbCkKIAkJCQkgICAgKGRvY3VtZW50YXRpb24tcHJvcGVydHkK
IAkJCQkgICAgIHN5bWJvbCAndmFyaWFibGUtZG9jdW1lbnRhdGlvbiB0KSkpCi0JCQkgICAgIChz
dWJzdHJpbmcgZG9jIDAKLQkJCQkJICAgIChzdHJpbmctbWF0Y2ggIlxuIiBkb2MpKSkpKSkKKwkJ
CSAgICAgKHN1YnNlcSBkb2MgMCAocG9zaXRpb24gP1xuIGRvYykpKSkpKQogCSAoc2V0cSBwIChj
ZHIgcCkpKSkpCiAgICBuaWwpKQogCkBAIC0yMzAsNyArMjI5LDcgQEAKIAkJCQkJICAoZG9jdW1l
bnRhdGlvbiBzeW1ib2wgdCkKIAkJCQkJKHZvaWQtZnVuY3Rpb24gIihhbGlhc2VkIHRvIHVuZGVm
aW5lZCBmdW5jdGlvbikiKQogCQkJCQkoZXJyb3IgIih1bmV4cGVjdGVkIGVycm9yIGZyb20gYGRv
Y3VtZW50aW9uJykiKSkpKQotCQkJICAgIChzdWJzdHJpbmcgZG9jIDAgKHN0cmluZy1tYXRjaCAi
XG4iIGRvYykpCisJCQkgICAgKHN1YnNlcSBkb2MgMCAocG9zaXRpb24gP1xuIGRvYykpCiAJCQkg
ICIobm90IGRvY3VtZW50ZWQpIikpCiAJCSAgICAoaWYgKGJvdW5kcCBzeW1ib2wpCiAJCQkoaWYg
KHNldHEgZG9jCkBAIC0yNDAsOCArMjM5LDcgQEAKIAkJCQkgICAodmFyaWFibGUtb2Jzb2xldGVu
ZXNzLWRvYyBzeW1ib2wpCiAJCQkJICAgKGRvY3VtZW50YXRpb24tcHJvcGVydHkKIAkJCQkgICAg
c3ltYm9sICd2YXJpYWJsZS1kb2N1bWVudGF0aW9uIHQpKSkKLQkJCSAgICAoc3Vic3RyaW5nIGRv
YyAwCi0JCQkJICAgICAgIChzdHJpbmctbWF0Y2ggIlxuIiBkb2MpKQorCQkJICAgIChzdWJzZXEg
ZG9jIDAgKHBvc2l0aW9uID9cbiBkb2MpKQogCQkJICAiKG5vdCBkb2N1bWVudGVkKSIpKQogCQkg
ICAgKGlmIChzZXRxIGRvYyAoc3ltYm9sLXBsaXN0IHN5bWJvbCkpCiAJCQkoaWYgKGVxICgvIChs
ZW5ndGggZG9jKSAyKSAxKQpAQCAtMjUwLDE5ICsyNDgsMTYgQEAKIAkJICAgIChpZiAoZ2V0IHN5
bWJvbCAnd2lkZ2V0LXR5cGUpCiAJCQkoaWYgKHNldHEgZG9jIChkb2N1bWVudGF0aW9uLXByb3Bl
cnR5CiAJCQkJICAgICAgIHN5bWJvbCAnd2lkZ2V0LWRvY3VtZW50YXRpb24gdCkpCi0JCQkgICAg
KHN1YnN0cmluZyBkb2MgMAotCQkJCSAgICAgICAoc3RyaW5nLW1hdGNoICJcbiIgZG9jKSkKKwkJ
CSAgICAoc3Vic2VxIGRvYyAwIChwb3NpdGlvbiA/XG4gZG9jKSkKIAkJCSAgIihub3QgZG9jdW1l
bnRlZCkiKSkKIAkJICAgIChpZiAoZmluZC1mYWNlIHN5bWJvbCkKIAkJCShpZiAoc2V0cSBkb2Mg
KGZhY2UtZG9jLXN0cmluZyBzeW1ib2wpKQotCQkJICAgIChzdWJzdHJpbmcgZG9jIDAKLQkJCQkg
ICAgICAgKHN0cmluZy1tYXRjaCAiXG4iIGRvYykpCisJCQkgICAgKHN1YnNlcSBkb2MgMCAocG9z
aXRpb24gP1xuIGRvYykpCiAJCQkgICIobm90IGRvY3VtZW50ZWQpIikpCiAJCSAgICAod2hlbiAo
Z2V0IHN5bWJvbCAnY3VzdG9tLWdyb3VwKQogCQkgICAgICAoaWYgKHNldHEgZG9jIChkb2N1bWVu
dGF0aW9uLXByb3BlcnR5CiAJCQkJICAgICBzeW1ib2wgJ2dyb3VwLWRvY3VtZW50YXRpb24gdCkp
Ci0JCQkgIChzdWJzdHJpbmcgZG9jIDAKLQkJCQkgICAgIChzdHJpbmctbWF0Y2ggIlxuIiBkb2Mp
KQorCQkJICAoc3Vic2VxIGRvYyAwIChwb3NpdGlvbiA/XG4gZG9jKSkKIAkJCSIobm90IGRvY3Vt
ZW50ZWQpIikpKSkKIAkgKHNldHEgcCAoY2RyIHApKSkpKQogICAgbmlsKSkKZGlmZiAtciAzMWRk
Mjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvYnVmZi1tZW51LmVsCi0tLSBhL2xpc3AvYnVm
Zi1tZW51LmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2J1ZmYt
bWVudS5lbAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAKQEAgLTY0OSwxMCArNjQ5LDEw
IEBACiAJCQkgICAgIGZpbGVzLW9ubHkpKQogICAgIGJ1ZmZlcikpCiAKLShkZWZ1biBidWZmZXJz
LW1lbnUtb21pdC1pbnZpc2libGUtYnVmZmVycyAoYnVmKQorKGRlZnVuIGJ1ZmZlcnMtbWVudS1v
bWl0LWludmlzaWJsZS1idWZmZXJzIChidWZmZXIpCiAgICJGb3IgdXNlIGFzIGEgdmFsdWUgb2Yg
YGJ1ZmZlcnMtbWVudS1vbWl0LWZ1bmN0aW9uJy4KIE9taXRzIG5vcm1hbGx5IGludmlzaWJsZSBi
dWZmZXJzICh0aG9zZSB3aG9zZSBuYW1lIGJlZ2lucyB3aXRoIGEgc3BhY2UpLiIKLSAgKG5vdCAo
bnVsbCAoc3RyaW5nLW1hdGNoICJcXGAgIiAoYnVmZmVyLW5hbWUgYnVmKSkpKSkKKyAgKGVxbCA/
XCAgKGVsdCAoYnVmZmVyLW5hbWUgYnVmZmVyKSAwKSkpCiAKIDs7OyBUaGUgQnVmZmVycyB0YWIK
IApAQCAtNzg4LDE0ICs3ODgsMTQgQEAKIAkobW9kZTIgKHN5bWJvbC1uYW1lIChzeW1ib2wtdmFs
dWUtaW4tYnVmZmVyICdtYWpvci1tb2RlIAogCQkJCQkJICAgIGJ1ZmZlci10by1zZWxlY3QpKSkK
IAkobW9kZW5tMSAoc3ltYm9sLXZhbHVlLWluLWJ1ZmZlciAnbW9kZS1uYW1lIGJ1ZjEpKQotCSht
b2Rlbm0yIChzeW1ib2wtdmFsdWUtaW4tYnVmZmVyICdtb2RlLW5hbWUgYnVmZmVyLXRvLXNlbGVj
dCkpKQorCShtb2Rlbm0yIChzeW1ib2wtdmFsdWUtaW4tYnVmZmVyICdtb2RlLW5hbWUgYnVmZmVy
LXRvLXNlbGVjdCkpCisgICAgICAgIHBvc2l0aW9uIG1pc21hdGNoKQogICAgIChjb25kICgob3Ig
KGVxIG1vZGUxIG1vZGUyKQogCSAgICAgICAoZXEgbW9kZW5tMSBtb2Rlbm0yKQotCSAgICAgICAo
YW5kIChzdHJpbmctbWF0Y2ggIl5bXi1dKy0iIG1vZGUxKQotCQkgICAgKHN0cmluZy1tYXRjaAot
CQkgICAgIChjb25jYXQgIl4iIChyZWdleHAtcXVvdGUgCi0JCQkJICAoc3Vic3RyaW5nIG1vZGUx
IDAgKG1hdGNoLWVuZCAwKSkpKQotCQkgICAgIG1vZGUyKSkKKwkgICAgICAgKGFuZCAoc2V0cSBw
b3NpdGlvbiAocG9zaXRpb24gPy0gbW9kZTEpKSAoPiBwb3NpdGlvbiAwKQorICAgICAgICAgICAg
ICAgICAgICAocHJvZzIKKyAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG1pc21hdGNoICht
aXNtYXRjaCBtb2RlMSBtb2RlMiA6ZW5kMSBwb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAg
ICAgICAobm90IChvciAobnVsbCBtaXNtYXRjaCkgKGVxbCBtaXNtYXRjaCBwb3NpdGlvbikpKSkp
CiAJICAgICAgIChhbmQgYnVmZmVycy10YWItZ3JvdXBpbmctcmVnZXhwCiAJCSAgICAoZmluZC1p
ZiAjJyhsYW1iZGEgKHgpCiAJCQkJIChvcgpAQCAtODEwLDMwICs4MTAsMTYgQEAKIChkZWZ1biBm
b3JtYXQtYnVmZmVycy10YWItbGluZSAoYnVmZmVyKQogICAiRm9yIHVzZSBhcyBhIHZhbHVlIG9m
IGBidWZmZXJzLXRhYi1mb3JtYXQtYnVmZmVyLWxpbmUtZnVuY3Rpb24nLgogVGhpcyBqdXN0IHJl
dHVybnMgdGhlIGJ1ZmZlcidzIG5hbWUsIG9wdGlvbmFsbHkgdHJ1bmNhdGVkLiIKLSAgKGxldCAo
KGxlbiAoc3BlY2lmaWVyLWluc3RhbmNlIGJ1ZmZlcnMtdGFiLWRlZmF1bHQtYnVmZmVyLWxpbmUt
bGVuZ3RoKSkpCi0gICAgKGlmIChhbmQgKD4gbGVuIDApCi0JICAgICAoPiAobGVuZ3RoIChidWZm
ZXItbmFtZSBidWZmZXIpKSBsZW4pKQotCShpZiAoc3RyaW5nLW1hdGNoICIuKjwuPiQiIChidWZm
ZXItbmFtZSBidWZmZXIpKQotCSAgICAoY29uY2F0IChzdWJzdHJpbmcgKGJ1ZmZlci1uYW1lIGJ1
ZmZlcikgCi0JCQkgICAgICAgMCAoLSBsZW4gNikpICIuLi4iCi0JCQkgICAgICAgKHN1YnN0cmlu
ZyAoYnVmZmVyLW5hbWUgYnVmZmVyKSAtMykpCi0JICAoY29uY2F0IChzdWJzdHJpbmcgKGJ1ZmZl
ci1uYW1lIGJ1ZmZlcikKLQkJCSAgICAgMCAoLSBsZW4gMykpICIuLi4iKSkKLSAgICAgIChidWZm
ZXItbmFtZSBidWZmZXIpKSkpCi0KLShkZWZzdWJzdCBidWlsZC1idWZmZXJzLXRhYi1pbnRlcm5h
bCAoYnVmZmVycykKLSAgKGxldCAoKHNlbGVjdGVkIHQpKQotICAgIChtYXBjYXIKLSAgICAgIyco
bGFtYmRhIChidWZmZXIpCi0JIChwcm9nMQotCSAgICAgKHZlY3RvciAKLQkgICAgICAoZnVuY2Fs
bCBidWZmZXJzLXRhYi1mb3JtYXQtYnVmZmVyLWxpbmUtZnVuY3Rpb24KLQkJICAgICAgIGJ1ZmZl
cikKLQkgICAgICAobGlzdCBidWZmZXJzLXRhYi1zd2l0Y2gtdG8tYnVmZmVyLWZ1bmN0aW9uCi0J
CSAgICAoYnVmZmVyLW5hbWUgYnVmZmVyKSkKLQkgICAgICA6c2VsZWN0ZWQgc2VsZWN0ZWQpCi0J
ICAgKHdoZW4gc2VsZWN0ZWQgKHNldHEgc2VsZWN0ZWQgbmlsKSkpKQotICAgICBidWZmZXJzKSkp
CisgIChsZXQqICgobGVuIChzcGVjaWZpZXItaW5zdGFuY2UgYnVmZmVycy10YWItZGVmYXVsdC1i
dWZmZXItbGluZS1sZW5ndGgpKQorICAgICAgICAgKGJ1ZmZlci1uYW1lIChidWZmZXItbmFtZSBi
dWZmZXIpKQorICAgICAgICAgKGxlbjEgKGxlbmd0aCBidWZmZXItbmFtZSkpKQorICAgIChpZiAo
YW5kICg+IGxlbiAwKSAoPiBsZW4xIGxlbikpCisJKGlmIChhbmQgKD4gbGVuMSAzKSAoZXFsID88
IChhcmVmIGJ1ZmZlci1uYW1lICgtIGxlbjEgMykpKQorICAgICAgICAgICAgICAgICAoZXFsID8+
IChhcmVmIGJ1ZmZlci1uYW1lICgxLSBsZW4xKSkpKQorCSAgICAoY29uY2F0IChzdWJzZXEgYnVm
ZmVyLW5hbWUgMCAoLSBsZW4gNikpCisgICAgICAgICAgICAgICAgICAgICIuLi4iIChzdWJzZXEg
YnVmZmVyLW5hbWUgLTMpKQorICAgICAgICAgIChjb25jYXQgKHN1YnNlcSBidWZmZXItbmFtZSAw
ICgtIGxlbiAzKSkgIi4uLiIpKQorICAgICAgYnVmZmVyLW5hbWUpKSkKIAogOzs7ICMjIyMgU0pU
IHdvdWxkIGxpa2UgdGhpcyBmdW5jdGlvbiB0byBoYXZlIGEgc29ydCBmdW5jdGlvbiBsaXN0LiBJ
CiA7OzsgZG9uJ3Qgc2VlIGhvdyB0aGlzIGNvdWxkIHdvcmsgZ2l2ZW4gdGhhdCBzb3J0aW5nIGlz
IG5vdApAQCAtODY4LDE2ICs4NTQsMTQgQEAKICAgICAgIDs7IGZpbHRlciBidWZmZXJzCiAgICAg
ICAod2hlbiBidWZmZXJzLXRhYi1maWx0ZXItZnVuY3Rpb25zCiAJKHNldHEgYnVmZmVycwotCSAg
ICAgIChkZWxldGUtaWYgCi0JICAgICAgICMnbnVsbCAKLQkgICAgICAgKG1hcGNhciAjJyhsYW1i
ZGEgKGJ1ZikKLQkJCSAgIChsZXQgKCh0bXAtYnVmIGJ1ZikpCi0JCQkgICAgIChtYXBjICMnKGxh
bWJkYSAoZnVuKQotCQkJCSAgICAgICAodW5sZXNzIChmdW5jYWxsIGZ1biBidWYgZmlyc3QtYnVm
KQotCQkJCQkgKHNldHEgdG1wLWJ1ZiBuaWwpKSkKLQkJCQkgICBidWZmZXJzLXRhYi1maWx0ZXIt
ZnVuY3Rpb25zKQotCQkJICAgICB0bXAtYnVmKSkKLQkJICAgICAgIGJ1ZmZlcnMpKSkpCisgICAg
ICAgICAgICAgIChtYXBjYW4gIycobGFtYmRhIChidWYpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIChsZXQgKCh0bXAtYnVmIGJ1ZikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h
cGMgIycobGFtYmRhIChmdW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh1bmxlc3MgKGZ1bmNhbGwgZnVuIGJ1ZiBmaXJzdC1idWYpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHNldHEgdG1wLWJ1ZiBuaWwpKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBidWZmZXJzLXRhYi1maWx0ZXItZnVuY3Rpb25zKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChhbmQgdG1wLWJ1ZiAobGlzdCB0bXAtYnVmKSkpKQorICAg
ICAgICAgICAgICAgICAgICAgIGJ1ZmZlcnMpKSkKICAgICAgIDs7IG1heWJlIHNob3J0ZW4gbGlz
dCBvZiBidWZmZXJzCiAgICAgICAoYW5kIChpbnRlZ2VycCBidWZmZXJzLXRhYi1tYXgtc2l6ZSkK
IAkgICAoPiBidWZmZXJzLXRhYi1tYXgtc2l6ZSAxKQpAQCAtODg2LDkgKzg3MCwyMyBAQAogICAg
ICAgOzsgc29ydCBidWZmZXJzIGluIGdyb3VwIChkZWZhdWx0IGlzIG1vc3QtcmVjZW50bHktc2Vs
ZWN0ZWQpCiAgICAgICAod2hlbiBidWZmZXJzLXRhYi1zb3J0LWZ1bmN0aW9uCiAJKHNldHEgYnVm
ZmVycyAoZnVuY2FsbCBidWZmZXJzLXRhYi1zb3J0LWZ1bmN0aW9uIGJ1ZmZlcnMpKSkKLSAgICAg
IDs7IGNvbnZlcnQgbGlzdCBvZiBidWZmZXJzIHRvIGxpc3Qgb2Ygc3RydWN0dXJlcyB1c2VkIGJ5
IHRhYiB3aWRnZXQKLSAgICAgIChzZXRxIGJ1ZmZlcnMgKGJ1aWxkLWJ1ZmZlcnMtdGFiLWludGVy
bmFsIGJ1ZmZlcnMpKQotICAgICAgYnVmZmVycykpKQorICAgICAgKGxhYmVscworICAgICAgICAg
ICgoYnVpbGQtYnVmZmVycy10YWItaW50ZXJuYWwgKGJ1ZmZlcnMpCisgICAgICAgICAgICAgKGxl
dCAoKHNlbGVjdGVkIHQpKQorICAgICAgICAgICAgICAgKG1hcGNhcgorICAgICAgICAgICAgICAg
ICMnKGxhbWJkYSAoYnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAocHJvZzEKKyAgICAgICAg
ICAgICAgICAgICAgICAgICh2ZWN0b3IgCisgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNh
bGwgYnVmZmVycy10YWItZm9ybWF0LWJ1ZmZlci1saW5lLWZ1bmN0aW9uCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgIChs
aXN0IGJ1ZmZlcnMtdGFiLXN3aXRjaC10by1idWZmZXItZnVuY3Rpb24KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYnVmZmVyLW5hbWUgYnVmZmVyKSkKKzpzZWxlY3RlZCBzZWxlY3Rl
ZCkKKyAgICAgICAgICAgICAgICAgICAgICAod2hlbiBzZWxlY3RlZCAoc2V0cSBzZWxlY3RlZCBu
aWwpKSkpCisgICAgICAgICAgICAgICAgYnVmZmVycykpKSkKKyAgICAgICAgOzsgY29udmVydCBs
aXN0IG9mIGJ1ZmZlcnMgdG8gbGlzdCBvZiBzdHJ1Y3R1cmVzIHVzZWQgYnkgdGFiIHdpZGdldAor
ICAgICAgICAoc2V0cSBidWZmZXJzIChidWlsZC1idWZmZXJzLXRhYi1pbnRlcm5hbCBidWZmZXJz
KSkKKyAgICAgICAgYnVmZmVycykpKSkKIAogKHByb3ZpZGUgJ2J1ZmYtbWVudSkKIApkaWZmIC1y
IDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9ieXRlY29tcC5lbAotLS0gYS9saXNw
L2J5dGVjb21wLmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2J5
dGVjb21wLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtMTI0Myw3ICsxMjQz
LDcgQEAKIAkgIChpbnNlcnQgKGN1cnJlbnQtdGltZS1zdHJpbmcpICJcbiIpKQogCSh3aGVuIHdo
aWxlLWNvbXBpbGluZy1tc2cgKGluc2VydCB3aGlsZS1jb21waWxpbmctbXNnICJcbiIpKQogCShp
bnNlcnQgIiAgIiBzdHJpbmcgIlxuIikKLQkod2hlbiAoYW5kIGZpbGwgKG5vdCAoc3RyaW5nLW1h
dGNoICJcbiIgc3RyaW5nKSkpCisJKHdoZW4gKGFuZCBmaWxsIChub3QgKGZpbmQgP1xuIHN0cmlu
ZykpKQogCSAgKGxldCAoKGZpbGwtcHJlZml4ICIgICAgICIpCiAJCShmaWxsLWNvbHVtbiA3OCkp
CiAJICAgIChmaWxsLXBhcmFncmFwaCBuaWwpKSkpKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBi
YmU0MTQ2NjAzZGIgbGlzcC9jdXMtZWRpdC5lbAotLS0gYS9saXNwL2N1cy1lZGl0LmVsCVR1ZSBN
YXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2N1cy1lZGl0LmVsCVdlZCBBcHIg
MDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtMTM0MCw3ICsxMzQwLDcgQEAKIAkgICAgOmN1c3Rv
bS1zaG93IChsYW1iZGEgKHdpZGdldCB2YWx1ZSkKIAkJCSAgIDs7IFRoaXMgdXNlZCB0byBjYWxs
IHBwLXRvLXN0cmluZwogCQkJICAgKGxldCAoKHBwICh3aWRnZXQtcHJldHR5cHJpbnQtdG8tc3Ry
aW5nIHZhbHVlKSkpCi0JCQkgICAgIChjb25kICgoc3RyaW5nLW1hdGNoICJcbiIgcHApCisJCQkg
ICAgIChjb25kICgoZmluZCA/XG4gcHApCiAJCQkJICAgIG5pbCkKIAkJCQkgICAoKD4gKGxlbmd0
aCBwcCkgNDApCiAJCQkJICAgIG5pbCkKQEAgLTIxMTksMTEgKzIxMTksMTEgQEAKIAkgICh0CiAJ
ICAgOzsgRWRpdCBtb2RlLgogCSAgIChsZXQqICgoZm9ybWF0ICh3aWRnZXQtZ2V0IHR5cGUgOmZv
cm1hdCkpCi0JCSAgdGFnLWZvcm1hdCB2YWx1ZS1mb3JtYXQpCi0JICAgICAod2hpbGUgKG5vdCAo
c3RyaW5nLW1hdGNoICI6IiBmb3JtYXQpKQorCQkgIHRhZy1mb3JtYXQgdmFsdWUtZm9ybWF0IHBv
c2l0aW9uKQorICAgICAgICAgICAgICh3aGlsZSAobm90IChzZXRxIHBvc2l0aW9uIChwb3NpdGlv
biA/OiBmb3JtYXQpKSkKIAkgICAgICAgKHNldHEgZm9ybWF0IChzaWduYWwgJ2Vycm9yIChsaXN0
ICJCYWQgZm9ybWF0IiBmb3JtYXQpKSkpCi0JICAgICAoc2V0cSB0YWctZm9ybWF0IChzdWJzdHJp
bmcgZm9ybWF0IDAgKG1hdGNoLWVuZCAwKSkpCi0JICAgICAoc2V0cSB2YWx1ZS1mb3JtYXQgKHN1
YnN0cmluZyBmb3JtYXQgKG1hdGNoLWVuZCAwKSkpCisJICAgICAoc2V0cSB0YWctZm9ybWF0IChz
dWJzZXEgZm9ybWF0IDAgKDErIHBvc2l0aW9uKSkKKyAgICAgICAgICAgICAgICAgICB2YWx1ZS1m
b3JtYXQgKHN1YnNlcSBmb3JtYXQgKDErIHBvc2l0aW9uKSkpCiAJICAgICAocHVzaCAod2lkZ2V0
LWNyZWF0ZS1jaGlsZC1hbmQtY29udmVydAogCQkgICAgd2lkZ2V0ICdpdGVtCiAJCSAgICA6Zm9y
bWF0IHRhZy1mb3JtYXQKZGlmZiAtciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3Av
ZGVzY3ItdGV4dC5lbAotLS0gYS9saXNwL2Rlc2NyLXRleHQuZWwJVHVlIE1hciAzMSAxODo0Mjoy
MSAyMDE1ICswMTAwCisrKyBiL2xpc3AvZGVzY3ItdGV4dC5lbAlXZWQgQXByIDAxIDE0OjI4OjIw
IDIwMTUgKzAxMDAKQEAgLTc2MCwxMCArNzYwLDEwIEBACiAJCSAgIGxhc3QgKDw9IGNoYXIgbGFz
dCkpCiAJICAgICAgKHNldHEgZm91bmQgdCkpKQogCShpZiBmb3VuZAotCSAgICAobGV0ICgoZmll
bGRzIChjZHIgKG5zdWJzdCBuaWwgIiIgKHNwbGl0LXN0cmluZworCSAgICAobGV0ICgoZmllbGRz
IChjZHIgKG5zdWJzdCBuaWwgIiIgKHNwbGl0LXN0cmluZy1ieS1jaGFyCiAJCQkJCSAgICAgICAo
YnVmZmVyLXN1YnN0cmluZwogCQkJCQkJKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKQotCQkJCQkJ
KGxpbmUtZW5kLXBvc2l0aW9uKSkgIjsiKQorCQkJCQkJKGxpbmUtZW5kLXBvc2l0aW9uKSkgP1w7
KQogCQkJCSAgICAgICA6dGVzdCAnZXF1YWwpKSkpCiAJICAgICAgOzsgVGhlIGxlbmd0aCBkZXBl
bmRzIG9uIHdoZXRoZXIgdGhlIGxhc3QgZmllbGQgd2FzIGVtcHR5LgogCSAgICAgICh1bmxlc3Mg
KG9yIChlcWwgMTMgKGxlbmd0aCBmaWVsZHMpKQpAQCAtMTIzNSw4ICsxMjM1LDcgQEAKICAgICAg
ICAgICAgICAgICAgKGlmIChjb25zcCBjbG0pCiAgICAgICAgICAgICAgICAgICAgICAocHJvZ24g
KGluc2VydCAiICIpIChldmFsIGNsbSkpCiAgICAgICAgICAgICAgICAgICAgKHdoZW4gKD49ICgr
IChjdXJyZW50LWNvbHVtbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIChz
dHJpbmctbWF0Y2ggIlxuIiBjbG0pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoc3RyaW5nLXdpZHRoIGNsbSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChv
ciAocG9zaXRpb24gP1xuIGNsbSkgKHN0cmluZy13aWR0aCBjbG0pKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93
LXdpZHRoKSkKICAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgIlxuIikKZGlmZiAtciAzMWRk
Mjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvZGlzYXNzLmVsCi0tLSBhL2xpc3AvZGlzYXNz
LmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2Rpc2Fzcy5lbAlX
ZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAKQEAgLTExNyw5ICsxMTcsMTAgQEAKIAkgIChw
cm9nbiAoYW5kIChjb25zcCBvYmopIChzZXRxIG9iaiAoY2RyIG9iaikpKQogCQkgKGluZGVudC10
byBpbmRlbnQpCiAJCSAocHJpbmMgIiAgZG9jOiAgIiAoY3VycmVudC1idWZmZXIpKQotCQkgKGxl
dCAoKGZyb2JiZWQgbmlsKSkKLQkJICAgKGlmIChzdHJpbmctbWF0Y2ggIlxuIiBkb2MpCi0JCSAg
ICAgICAoc2V0cSBkb2MgKHN1YnN0cmluZyBkb2MgMCAobWF0Y2gtYmVnaW5uaW5nIDApKQorCQkg
KGxldCAoKGZyb2JiZWQgbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAocG9zaXRpb24gKHBv
c2l0aW9uID9cbiBkb2MpKSkKKwkJICAgKGlmIHBvc2l0aW9uCisJCSAgICAgICAoc2V0cSBkb2Mg
KHN1YnNlcSBkb2MgMCBwb3NpdGlvbikKIAkJCSAgICAgZnJvYmJlZCB0KSkKIAkJICAgKGlmICg+
IChsZW5ndGggZG9jKSA3MCkKIAkJICAgICAgIChzZXRxIGRvYyAoc3Vic3RyaW5nIGRvYyAwIDY1
KSBmcm9iYmVkIHQpKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9m
aWxlcy5lbAotLS0gYS9saXNwL2ZpbGVzLmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEw
MAorKysgYi9saXNwL2ZpbGVzLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAt
MjQ4NywzMSArMjQ4NywyOSBAQAogKGRlZnVuIGZpbGUtbmFtZS1zYW5zLWV4dGVuc2lvbiAoZmls
ZW5hbWUpCiAgICJSZXR1cm4gRklMRU5BTUUgc2FucyBmaW5hbCBcImV4dGVuc2lvblwiLgogVGhl
IGV4dGVuc2lvbiwgaW4gYSBmaWxlIG5hbWUsIGlzIHRoZSBwYXJ0IHRoYXQgZm9sbG93cyB0aGUg
bGFzdCBgLicuIgotICAoc2F2ZS1tYXRjaC1kYXRhCi0gICAgKGxldCAoKGZpbGUgKGZpbGUtbmFt
ZS1zYW5zLXZlcnNpb25zIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IGZpbGVuYW1lKSkpCi0JICBk
aXJlY3RvcnkpCi0gICAgICAoaWYgKHN0cmluZy1tYXRjaCAiXFwuW14uXSpcXCciIGZpbGUpCi0J
ICAoaWYgKHNldHEgZGlyZWN0b3J5IChmaWxlLW5hbWUtZGlyZWN0b3J5IGZpbGVuYW1lKSkKLQkg
ICAgICAoZXhwYW5kLWZpbGUtbmFtZSAoc3Vic3RyaW5nIGZpbGUgMCAobWF0Y2gtYmVnaW5uaW5n
IDApKQotCQkJCWRpcmVjdG9yeSkKLQkgICAgKHN1YnN0cmluZyBmaWxlIDAgKG1hdGNoLWJlZ2lu
bmluZyAwKSkpCi0JZmlsZW5hbWUpKSkpCisgIChsZXQqICgoZmlsZSAoZmlsZS1uYW1lLXNhbnMt
dmVyc2lvbnMgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgZmlsZW5hbWUpKSkKKyAgICAgICAgIChw
b3NpdGlvbiAocG9zaXRpb24gPy4gZmlsZSA6ZnJvbS1lbmQgdCkpCisgICAgICAgICAoZGlyZWN0
b3J5IChhbmQgcG9zaXRpb24gKGZpbGUtbmFtZS1kaXJlY3RvcnkgZmlsZW5hbWUpKSkpCisgICAg
KGlmIHBvc2l0aW9uCisgICAgICAgIChpZiBkaXJlY3RvcnkKKyAgICAgICAgICAgIChleHBhbmQt
ZmlsZS1uYW1lIChzdWJzZXEgZmlsZSAwIHBvc2l0aW9uKSBkaXJlY3RvcnkpCisgICAgICAgICAg
KHN1YnNlcSBmaWxlIDAgcG9zaXRpb24pKQorICAgICAgZmlsZW5hbWUpKSkKIAogKGRlZnVuIGZp
bGUtbmFtZS1leHRlbnNpb24gKGZpbGVuYW1lICZvcHRpb25hbCBwZXJpb2QpCiAgICJSZXR1cm4g
RklMRU5BTUUncyBmaW5hbCBcImV4dGVuc2lvblwiLgogVGhlIGV4dGVuc2lvbiwgaW4gYSBmaWxl
IG5hbWUsIGlzIHRoZSBwYXJ0IHRoYXQgZm9sbG93cyB0aGUgbGFzdCBgLicuCiBSZXR1cm4gbmls
IGZvciBleHRlbnNpb25sZXNzIGZpbGUgbmFtZXMgc3VjaCBhcyBgZm9vJy4KLVJldHVybiB0aGUg
ZW1wdHkgc3RyaW5nIGZvciBmaWxlIG5hbWVzIHN1Y2ggYXMgYGZvbycuCitSZXR1cm4gdGhlIGVt
cHR5IHN0cmluZyBmb3IgZmlsZSBuYW1lcyBzdWNoIGFzIGBmb28uJwogCiBJZiBQRVJJT0QgaXMg
bm9uLW5pbCwgdGhlbiB0aGUgcmV0dXJuZWQgdmFsdWUgaW5jbHVkZXMgdGhlIHBlcmlvZAogdGhh
dCBkZWxpbWl0cyB0aGUgZXh0ZW5zaW9uLCBhbmQgaWYgRklMRU5BTUUgaGFzIG5vIGV4dGVuc2lv
biwKIHRoZSB2YWx1ZSBpcyBcIlwiLiIKLSAgKHNhdmUtbWF0Y2gtZGF0YQotICAgIChsZXQgKChm
aWxlIChmaWxlLW5hbWUtc2Fucy12ZXJzaW9ucyAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBmaWxl
bmFtZSkpKSkKLSAgICAgIChpZiAoc3RyaW5nLW1hdGNoICJcXC5bXi5dKlxcJyIgZmlsZSkKLSAg
ICAgICAgICAoc3Vic3RyaW5nIGZpbGUgKCsgKG1hdGNoLWJlZ2lubmluZyAwKSAoaWYgcGVyaW9k
IDAgMSkpKQotICAgICAgICAoaWYgcGVyaW9kCi0gICAgICAgICAgICAiIikpKSkpCisgIChsZXQq
ICgoZmlsZSAoZmlsZS1uYW1lLXNhbnMtdmVyc2lvbnMgKGZpbGUtbmFtZS1ub25kaXJlY3Rvcnkg
ZmlsZW5hbWUpKSkKKyAgICAgICAgIChwb3NpdGlvbiAocG9zaXRpb24gPy4gZmlsZSA6ZnJvbS1l
bmQgdCkpKQorICAgIChpZiAoYW5kIHBvc2l0aW9uIChub3QgKGVxbCBwb3NpdGlvbiAwKSkpCisg
ICAgICAgIChzdWJzZXEgZmlsZSAoKyBwb3NpdGlvbiAoaWYgcGVyaW9kIDAgMSkpKQorICAgICAg
KGlmIHBlcmlvZCAiIikpKSkKIAogKGRlZmN1c3RvbSBtYWtlLWJhY2t1cC1maWxlLW5hbWUtZnVu
Y3Rpb24gbmlsCiAgICJBIGZ1bmN0aW9uIHRvIHVzZSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGBt
YWtlLWJhY2t1cC1maWxlLW5hbWUnLgpAQCAtNDI0NywyNSArNDI0NSwxMyBAQAogCQk7OyBkaXJl
Y3RvcnkgaWYgRklMRSBpcyBhIHN5bWJvbGljIGxpbmsuCiAJCShhcHBseSAnY2FsbC1wcm9jZXNz
CiAJCSAgICAgICBpbnNlcnQtZGlyZWN0b3J5LXByb2dyYW0gbmlsIHQgbmlsCi0JCSAgICAgICAo
bGV0IChsaXN0KQotCQkJIChpZiAobGlzdHAgc3dpdGNoZXMpCi0JCQkgICAgIChzZXRxIGxpc3Qg
c3dpdGNoZXMpCi0JCQkgICAoaWYgKG5vdCAoZXF1YWwgc3dpdGNoZXMgIiIpKQotCQkJICAgICAg
IChsZXQgKChzd2l0Y2hlcyBzd2l0Y2hlcykpCi0JCQkJIDs7IFNwbGl0IHRoZSBzd2l0Y2hlcyBh
dCBhbnkgc3BhY2VzCi0JCQkJIDs7IHNvIHdlIGNhbiBwYXNzIHNlcGFyYXRlIG9wdGlvbnMgYXMg
c2VwYXJhdGUgYXJncy4KLQkJCQkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIiAiIHN3aXRjaGVzKQot
CQkJCSAgIChzZXRxIGxpc3QgKGNvbnMgKHN1YnN0cmluZyBzd2l0Y2hlcyAwIChtYXRjaC1iZWdp
bm5pbmcgMCkpCi0JCQkJCQkgICAgbGlzdCkKLQkJCQkJIHN3aXRjaGVzIChzdWJzdHJpbmcgc3dp
dGNoZXMgKG1hdGNoLWVuZCAwKSkpKQotCQkJCSAoc2V0cSBsaXN0IChjb25zIHN3aXRjaGVzIGxp
c3QpKSkpKQotCQkJIChhcHBlbmQgbGlzdAotCQkJCSAobGlzdAotCQkJCSAgKGlmIGZ1bGwtZGly
ZWN0b3J5LXAKLQkJCQkgICAgICAoY29uY2F0IChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5IGZpbGUp
Ci0JCQkJCSAgICAgIDs7IyMjIyBVbml4LXNwZWNpZmljCi0JCQkJCSAgICAgICIuIikKLQkJCQkg
ICAgZmlsZSkpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGlmIChsaXN0
cCBzd2l0Y2hlcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoZXMK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzcGxpdC1zdHJpbmctYnktY2hhciBz
d2l0Y2hlcyA/XCApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBmdWxsLWRpcmVjdG9yeS1wCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IChmaWxlLW5hbWUtYXMtZGlyZWN0
b3J5IGZpbGUpICIuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlKSkp
KSkpKQogCiAJICA7OyBJZiB3ZSBnb3QgIi8vRElSRUQvLyIgaW4gdGhlIG91dHB1dCwgaXQgbWVh
bnMgd2UgZ290IGEgcmVhbAogCSAgOzsgZGlyZWN0b3J5IGxpc3RpbmcsIGV2ZW4gaWYgYGxzJyBy
ZXR1cm5lZCBub256ZXJvLgpAQCAtNDI5NCw3ICs0MjgwLDcgQEAKIAkJICAgICAoYnVmZmVyLXN0
cmluZykpKSkKIAkgICAgICAoaWYgKHN0cmluZy1tYXRjaCAibHMgKC4qdXRpbHMpIFxcKFswLTku
XSpcXCkkIiB2ZXJzaW9uLW91dCkKIAkJICAobGV0KiAoKHZlcnNpb24gKG1hdGNoLXN0cmluZyAx
IHZlcnNpb24tb3V0KSkKLQkJCSAoc3BsaXQgKHNwbGl0LXN0cmluZyB2ZXJzaW9uICJbLl0iKSkK
KwkJCSAoc3BsaXQgKHNwbGl0LXN0cmluZy1ieS1jaGFyIHZlcnNpb24gPy4pKQogCQkJIChudW1i
ZXJzIChtYXBjYXIgJ3N0cmluZy10by1pbnQgc3BsaXQpKQogCQkJIChtaW4gJyg1IDIgMSkpCiAJ
CQkgY29tcGFyaXNvbikKZGlmZiAtciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3Av
Z251c2Vydi5lbAotLS0gYS9saXNwL2dudXNlcnYuZWwJVHVlIE1hciAzMSAxODo0MjoyMSAyMDE1
ICswMTAwCisrKyBiL2xpc3AvZ251c2Vydi5lbAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAx
MDAKQEAgLTM2OCw3ICszNjgsOCBAQAogCQkgICAgIChzaWduYWwgJ3F1aXQgbmlsKSkpCiAJICAg
ICAoc2V0cSBnbnVzZXJ2LXN0cmluZyAiIikpKQogCSAgKHQKLQkgICAobGV0ICgocmVzcG9uc2Ug
KGNhciAoc3BsaXQtc3RyaW5nIGdudXNlcnYtc3RyaW5nICJcQy1kIikpKSkKKwkgICAobGV0ICgo
cmVzcG9uc2UgKHN1YnNlcSBnbnVzZXJ2LXN0cmluZyAwCisJCQkJICAgKHBvc2l0aW9uID9cQy1k
IGdudXNlcnYtc3RyaW5nKSkpKQogCSAgICAgKHNldHEgZ251c2Vydi1zdHJpbmcgIiIpCiAJICAg
ICAoZXJyb3IgIiVzOiBpbnZhbGlkIHJlc3BvbnNlIGZyb20gZ251c2VydiIgcmVzcG9uc2UpKSkp
KSkKIApkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9ndGstZmlsZS1k
aWFsb2cuZWwKLS0tIGEvbGlzcC9ndGstZmlsZS1kaWFsb2cuZWwJVHVlIE1hciAzMSAxODo0Mjoy
MSAyMDE1ICswMTAwCisrKyBiL2xpc3AvZ3RrLWZpbGUtZGlhbG9nLmVsCVdlZCBBcHIgMDEgMTQ6
Mjg6MjAgMjAxNSArMDEwMApAQCAtMTAzLDEyICsxMDMsOSBAQAogCiAoZGVmdW4gZ3RrLWZpbGUt
ZGlhbG9nLXVwZGF0ZS1kcm9wZG93biAoZGlhbG9nIGRpcikKICAgKGxldCAoKGNvbWJvLWJveCAo
Z2V0IGRpYWxvZyAneC1maWxlLWRpYWxvZy1zZWxlY3QtbGlzdCkpCi0JKGNvbXBvbmVudHMgKHJl
dmVyc2UKLQkJICAgICAoZGVsZXRlICIiCi0JCQkgICAgIChzcGxpdC1zdHJpbmcgZGlyCi0JCQkJ
CSAgIChjb25jYXQgIlsiIChjaGFyLXRvLXN0cmluZyBkaXJlY3Rvcnktc2VwLWNoYXIpICJdIikp
KSkpCisJKGNvbXBvbmVudHMgKG5yZXZlcnNlCisJCSAgICAgKGRlbGV0ZSAiIiAoc3BsaXQtc3Ry
aW5nLWJ5LWNoYXIgZGlyIGRpcmVjdG9yeS1zZXAtY2hhcikpKSkKIAkoZW50cmllcyBuaWwpKQot
CiAgICAgKHdoaWxlIGNvbXBvbmVudHMKICAgICAgIChwdXNoIChjb25jYXQgIi8iIChtYXBjb25j
YXQgJ2lkZW50aXR5IChyZXZlcnNlIGNvbXBvbmVudHMpCiAJCQkJICAgKGNoYXItdG8tc3RyaW5n
IGRpcmVjdG9yeS1zZXAtY2hhcikpKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAz
ZGIgbGlzcC9ndGstZm9udC1tZW51LmVsCi0tLSBhL2xpc3AvZ3RrLWZvbnQtbWVudS5lbAlUdWUg
TWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9ndGstZm9udC1tZW51LmVsCVdl
ZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtNjIsMTcgKzYyLDE3IEBACiAoZGVmdW4g
aGFjay1mb250LXRydWVuYW1lIChmbikKICAgOzsgIyMjIyBUaGlzIGlzIGR1cGxpY2F0ZWQgZnJv
bSB4LWZvbnQtbWVudS5lbC4KICAgIkZpbHRlciB0aGUgb3V0cHV0IG9mIGBmb250LWluc3RhbmNl
LXRydWVuYW1lJyB0byBkZWFsIHdpdGggZm9udCBzZXRzLiIKLSAgKGlmIChzdHJpbmctbWF0Y2gg
IiwiIChmb250LWluc3RhbmNlLXRydWVuYW1lIGZuKSkKLSAgICAgIChsZXQgKChmcG50IChudGgg
OCAoc3BsaXQtc3RyaW5nIChmb250LWluc3RhbmNlLW5hbWUgZm4pICItIikpKQotCSAgICAoZmxp
c3QgKHNwbGl0LXN0cmluZyAoZm9udC1pbnN0YW5jZS10cnVlbmFtZSBmbikgIiwiKSkKLQkgICAg
cmV0KQotCSh3aGlsZSBmbGlzdAotCSAgKGlmIChzdHJpbmctZXF1YWwgZnBudCAobnRoIDggKHNw
bGl0LXN0cmluZyAoY2FyIGZsaXN0KSAiLSIpKSkKLQkgICAgICAocHJvZ24gKHNldHEgcmV0IChj
YXIgZmxpc3QpKSAoc2V0cSBmbGlzdCBuaWwpKQotCSAgICAoc2V0cSBmbGlzdCAoY2RyIGZsaXN0
KSkKLQkgICAgKSkKLQlyZXQpCi0gICAgKGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUgZm4pKSkKKyAg
KGxldCAoKGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUgKGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUgZm4p
KSkKKyAgICAoaWYgKGZpbmQgPywgZm9udC1pbnN0YW5jZS10cnVlbmFtZSkKKyAgICAgICAgKGxl
dCAoKGZwbnQgKG50aCA4IChzcGxpdC1zdHJpbmctYnktY2hhciAoZm9udC1pbnN0YW5jZS1uYW1l
IGZuKSA/LSkpKQorICAgICAgICAgICAgICAoZmxpc3QgKHNwbGl0LXN0cmluZy1ieS1jaGFyIGZv
bnQtaW5zdGFuY2UtdHJ1ZW5hbWUgPywpKQorICAgICAgICAgICAgICByZXQpCisgICAgICAgICAg
KHdoaWxlIGZsaXN0CisgICAgICAgICAgICAoaWYgKGVxdWFsIGZwbnQgKG50aCA4IChzcGxpdC1z
dHJpbmcgKGNhciBmbGlzdCkgIi0iKSkpCisgICAgICAgICAgICAgICAgKHByb2duIChzZXRxIHJl
dCAoY2FyIGZsaXN0KSkgKHNldHEgZmxpc3QgbmlsKSkKKyAgICAgICAgICAgICAgKHNldHEgZmxp
c3QgKGNkciBmbGlzdCkpKSkKKyAgICAgICAgICByZXQpCisgICAgICBmb250LWluc3RhbmNlLXRy
dWVuYW1lKSkpCiAKIChkZWZ2YXIgZ3RrLWZvbnQtcmVnZXhwLWFzY2lpIG5pbAogICAiVGhpcyBp
cyB1c2VkIHRvIGZpbHRlciBvdXQgZm9udCBmYW1pbGllcyB0aGF0IGNhbid0IGRpc3BsYXkgQVND
SUkgdGV4dC4KZGlmZiAtciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvaHlwZXIt
YXByb3Bvcy5lbAotLS0gYS9saXNwL2h5cGVyLWFwcm9wb3MuZWwJVHVlIE1hciAzMSAxODo0Mjoy
MSAyMDE1ICswMTAwCisrKyBiL2xpc3AvaHlwZXItYXByb3Bvcy5lbAlXZWQgQXByIDAxIDE0OjI4
OjIwIDIwMTUgKzAxMDAKQEAgLTM1MCwxNiArMzUwLDEzIEBACiAJCSAgKHN0cmluZy1tYXRjaAog
CQkgICAiXFxgKFteXG5cdCApXStbXHQgXSpcXChbXlxuKV0rXFwpPylcXCg6W1x0IF0qXFx8XG4/
XFwnXFwpIgogCQkgICBkb2MpKQotCQkgKHNldHEgZG9jIChzdWJzdHJpbmcgZG9jIChtYXRjaC1l
bmQgMCkKLQkJCQkgICAgICAoc3RyaW5nLW1hdGNoICJcbiIgZG9jKSkpKQorCQkgKHNldHEgZG9j
IChzdWJzZXEgZG9jIChtYXRjaC1lbmQgMCkgKHBvc2l0aW9uID9cbiBkb2MpKSkpCiAJICAgICA7
OyBTa2lwIGVycmFudCBuZXdsaW5lcyBhdCBiZWdpbm5pbmcgb2YgZG9jCiAJICAgICAoaWYgKGFu
ZCBkb2MKIAkJICAgICAgKHN0cmluZy1tYXRjaCAiXFxgXG4rIiBkb2MpKQogCQkgKHNldHEgZG9j
IChzdWJzdHJpbmcgZG9jIChtYXRjaC1lbmQgMCkpKSkKIAkgICAgIChpbnNlcnQtZmFjZSAoaWYg
ZG9jCi0JCQkgICAgICAoY29uY2F0ICIgLSAiCi0JCQkJICAgICAgKHN1YnN0cmluZyBkb2MgMAot
CQkJCQkJIChzdHJpbmctbWF0Y2ggIlxuIiBkb2MpKSkKKwkJCSAgICAgIChjb25jYXQgIiAtICIg
KHN1YnNlcSBkb2MgMCAocG9zaXRpb24gP1xuIGRvYykpKQogCQkJICAgICIgLSBOb3QgZG9jdW1l
bnRlZC4iKQogCQkJICAnaHlwZXItYXByb3Bvcy1kb2N1bWVudGF0aW9uKSkpCiAgICAgICAoaW5z
ZXJ0ID9cbikpKSkKQEAgLTM4Myw5ICszODAsOCBAQAogCQkgICAgICAoc3RyaW5nLW1hdGNoICJc
XGBcbisiIGRvYykpCiAJCSAoc2V0cSBkb2MgKHN1YnN0cmluZyBkb2MgKG1hdGNoLWVuZCAwKSkp
KQogCSAgICAgKGluc2VydC1mYWNlIChpZiBkb2MKLQkJCSAgICAgIChjb25jYXQgIiAtICIgKHN1
YnN0cmluZwotCQkJCQkgICAgIGRvYyAoaWYgdXNlcnAgMSAwKQotCQkJCQkgICAgIChzdHJpbmct
bWF0Y2ggIlxuIiBkb2MpKSkKKwkJCSAgICAgIChjb25jYXQgIiAtICIgKHN1YnNlcSBkb2MgKGlm
IHVzZXJwIDEgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAocG9zaXRpb24gP1xuIGRvYykpKQogCQkJICAgICIgLSBOb3QgZG9jdW1lbnRlZC4i
KQogCQkJICAnaHlwZXItYXByb3Bvcy1kb2N1bWVudGF0aW9uKSkpCiAgICAgICAoaW5zZXJ0ID9c
bikpKSkKZGlmZiAtciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvaW5mby5lbAot
LS0gYS9saXNwL2luZm8uZWwJVHVlIE1hciAzMSAxODo0MjoyMSAyMDE1ICswMTAwCisrKyBiL2xp
c3AvaW5mby5lbAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAKQEAgLTkxMywxMiArOTEz
LDEzIEBACiAJCQkgIChtZXNzYWdlICJDb21wb3NpbmcgbWFpbiBJbmZvIGRpcmVjdG9yeS4uLiIp
KQogCQkgICAgICAoc2V0LWJ1ZmZlciAob3IgYnVmCiAJCQkJICAgICAgKGdlbmVyYXRlLW5ldy1i
dWZmZXIKLQkJCQkgICAgICAgKGlmIChzdHJpbmctbWF0Y2ggImxvY2FsZGlyIiBmaWxlKQorCQkJ
CSAgICAgICAoaWYgKHNlYXJjaCAibG9jYWxkaXIiIGZpbGUKKzp0ZXN0ICMnZXF1YWxwKQogCQkJ
CQkgICAibG9jYWxkaXIiCiAJCQkJCSAiaW5mbyBkaXIiKSkpKQogCQkgICAgICAoaWYgKG5vdCBi
dWYpCiAJCQkgIChpbnNlcnQtZmlsZS1jb250ZW50cyBmaWxlKSkKLQkJICAgICAgKGlmIChzdHJp
bmctbWF0Y2ggImxvY2FsZGlyIiAoYnVmZmVyLW5hbWUpKQorCQkgICAgICAoaWYgKHNlYXJjaCAi
bG9jYWxkaXIiIChidWZmZXItbmFtZSkgOnRlc3QgIydlcXVhbHApCiAJCQkgIChzZXRxIGxidWZm
ZXJzIChjb25zIChjdXJyZW50LWJ1ZmZlcikgbGJ1ZmZlcnMpKQogCQkJKHNldHEgYnVmZmVycyAo
Y29ucyAoY3VycmVudC1idWZmZXIpIGJ1ZmZlcnMpKSkKIAkJICAgICAgKGlmIGF0dHJzCkBAIC05
NTQsNyArOTU1LDcgQEAKICAgICAgICh3aGlsZSBvdGhlcnMKIAkobGV0ICgob3RoZXIgKGNhciBv
dGhlcnMpKQogCSAgICAgIChpbmZvLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSkKLQkgIChpZiAo
c3RyaW5nLW1hdGNoICJsb2NhbGRpciIgKGJ1ZmZlci1uYW1lIG90aGVyKSkKKwkgIChpZiAoc2Vh
cmNoICJsb2NhbGRpciIgKGJ1ZmZlci1uYW1lIG90aGVyKSkKIAkgICAgICAoc2F2ZS1leGN1cnNp
b24KIAkJKHNldC1idWZmZXIgaW5mby1idWZmZXIpCiAJCShnb3RvLWNoYXIgKHBvaW50LW1heCkp
CkBAIC0xNTI3LDcgKzE1MjgsNyBAQAogCQkJICkpKQogICAgICAgKHNldHEgc3VmZiAoY2RyIHN1
ZmYpKSkKICAgICAoaWYgKHN0cmluZ3AgKGNkciAoY2FyIHN1ZmYpKSkKLQkobGV0ICgoY29tbWFu
ZCAoaWYgKHN0cmluZy1tYXRjaCAiJXMiIChjZHIgKGNhciBzdWZmKSkpCisJKGxldCAoKGNvbW1h
bmQgKGlmIChzZWFyY2ggIiVzIiAoY2RyIChjYXIgc3VmZikpKQogCQkJICAgKGZvcm1hdCAoY2Ry
IChjYXIgc3VmZikpIGZpbGUpCiAJCQkgKGNvbmNhdCAoY2RyIChjYXIgc3VmZikpICIgPCAiIGZp
bGUpKSkpCiAJICAobWVzc2FnZSAiJXMuLi4iIGNvbW1hbmQpCkBAIC0xOTU4LDkgKzE5NTksOSBA
QAogCSAgICAgICAobGlzdCBkZWZhdWx0KQogCSAgICAgKGxpc3QgaXRlbSkpKQogICAgICAgIChl
cnJvciAiTm8gY3Jvc3MtcmVmZXJlbmNlcyBpbiB0aGlzIG5vZGUiKSkpKQotICAobGV0ICh0YXJn
ZXQgaSAoc3RyIChjb25jYXQgIlxcKiIgSW5mby1mb290bm90ZS10YWcgIiAiCi0JCQkgICAgICAo
cmVnZXhwLXF1b3RlIGZvb3Rub3RlbmFtZSkpKSkKLSAgICAod2hpbGUgKHNldHEgaSAoc3RyaW5n
LW1hdGNoICIgIiBzdHIgaSkpCisgIChsZXQgKHRhcmdldCAoaSAwKSAoc3RyIChjb25jYXQgIlxc
KiIgSW5mby1mb290bm90ZS10YWcgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHJlZ2V4cC1xdW90ZSBmb290bm90ZW5hbWUpKSkpCisgICAgKHdoaWxlIChzZXRxIGkgKHBv
c2l0aW9uID9cICBzdHIgOnN0YXJ0IGkpKQogICAgICAgKHNldHEgc3RyIChjb25jYXQgKHN1YnN0
cmluZyBzdHIgMCBpKSAiXFwoWyBcdFxuXStcXCkiCiAJCQkoc3Vic3RyaW5nIHN0ciAoMSsgaSkp
KSkKICAgICAgIChzZXRxIGkgKCsgaSAxMCkpKQpAQCAtMjAyOSw4ICsyMDMwLDcgQEAKIAogKGRl
ZnVuIEluZm8tZXh0cmFjdC1tZW51LW5vZGUtbmFtZSAoJm9wdGlvbmFsIGVycm1lc3NhZ2UgbXVs
dGktbGluZSkKICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4iKQotICAobGV0ICgoc3RhcnQg
KHBvaW50KSkKLQlzdHIgaSkKKyAgKGxldCAoKHN0YXJ0IChwb2ludCkpIHN0cikKICAgICAoc2tp
cC1jaGFycy1mb3J3YXJkICJeOiIpCiAgICAgKGZvcndhcmQtY2hhciAxKQogICAgIChzZXRxIHN0
cgpAQCAtMjA1MCw5ICsyMDUwLDcgQEAKIAkJICAgICA7OyBTa2lwcyBzZXF1ZW50aWFsIGRvdHMu
CiAJCSAgICAgIl1cXHxcXC4rW14gXHRcbildXFwpK1xcKSIpKQogCSAgICAobWF0Y2gtc3RyaW5n
IDEpKSkKLSAgICAod2hpbGUgKHNldHEgaSAoc3RyaW5nLW1hdGNoICJcbiIgc3RyIGkpKQotICAg
ICAgKGFzZXQgc3RyIGkgP1wgKSkKLSAgICBzdHIpKQorICAgIChzdWJzdGl0dXRlID9cICA/XG4g
c3RyKSkpCiAKIChkZWZ1biBJbmZvLW1lbnUgKG1lbnUtaXRlbSkKICAgIkdvIHRvIG5vZGUgZm9y
IG1lbnUgaXRlbSBuYW1lZCAob3IgYWJicmV2aWF0ZWQpIE5BTUUuCmRpZmYgLXIgMzFkZDI3NWZh
NjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL2xkYXAuZWwKLS0tIGEvbGlzcC9sZGFwLmVsCVR1ZSBN
YXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2xkYXAuZWwJV2VkIEFwciAwMSAx
NDoyODoyMCAyMDE1ICswMTAwCkBAIC00MDMsMjMgKzQwMywxNiBAQAogICAgICAgKGVycm9yICJJ
bnZhbGlkIGNvdW50cnkgc3RyaW5nOiAlcyIgc3RyKSkpCiAKIChkZWZ1biBsZGFwLWRlY29kZS1z
dHJpbmcgKHN0cikKLSAgKGlmIChmYm91bmRwICdkZWNvZGUtY29kaW5nLXN0cmluZykKLSAgICAg
IChkZWNvZGUtY29kaW5nLXN0cmluZyBzdHIgbGRhcC1jb2Rpbmctc3lzdGVtKSkpCisgIChkZWNv
ZGUtY29kaW5nLXN0cmluZyBzdHIgbGRhcC1jb2Rpbmctc3lzdGVtKSkKIAogKGRlZnVuIGxkYXAt
ZW5jb2RlLXN0cmluZyAoc3RyKQotICAgKGlmIChmYm91bmRwICdlbmNvZGUtY29kaW5nLXN0cmlu
ZykKLSAgICAgICAoZW5jb2RlLWNvZGluZy1zdHJpbmcgc3RyIGxkYXAtY29kaW5nLXN5c3RlbSkp
KQorICAoZW5jb2RlLWNvZGluZy1zdHJpbmcgc3RyIGxkYXAtY29kaW5nLXN5c3RlbSkpCiAKIChk
ZWZ1biBsZGFwLWRlY29kZS1hZGRyZXNzIChzdHIpCi0gIChtYXBjb25jYXQgJ2xkYXAtZGVjb2Rl
LXN0cmluZwotCSAgICAgKHNwbGl0LXN0cmluZyBzdHIgIlxcJCIpCi0JICAgICAiXG4iKSkKKyAg
KG1hcGNvbmNhdCAnbGRhcC1kZWNvZGUtc3RyaW5nIChzcGxpdC1zdHJpbmctYnktY2hhciBzdHIg
PyQpICJcbiIpKQogCiAoZGVmdW4gbGRhcC1lbmNvZGUtYWRkcmVzcyAoc3RyKQotICAobWFwY29u
Y2F0ICdsZGFwLWVuY29kZS1zdHJpbmcKLQkgICAgIChzcGxpdC1zdHJpbmcgc3RyICJcbiIpCi0J
ICAgICAiJCIpKQotCisgIChtYXBjb25jYXQgJ2xkYXAtZW5jb2RlLXN0cmluZyAoc3BsaXQtc3Ry
aW5nLWJ5LWNoYXIgc3RyID9cbikgIiQiKSkKIAogOzsgTERBUCBwcm90b2NvbCBmdW5jdGlvbnMK
IApkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9saXNwLW1udC5lbAot
LS0gYS9saXNwL2xpc3AtbW50LmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysg
Yi9saXNwL2xpc3AtbW50LmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtMzA2
LDExICszMDYsOSBAQAogCShvciAobG0taGVhZGVyICJjcmVhdGVkIikKIAkgICAgKGxldCAoKGRh
dGUtYW5kLXRpbWUgKGxtLWhlYWRlciAiT1JJRy1EQVRFIikpKQogCSAgICAgIChpZiBkYXRlLWFu
ZC10aW1lCi0JCSAgKHN1YnN0cmluZyBkYXRlLWFuZC10aW1lIDAKLQkJCSAgICAgKHN0cmluZy1t
YXRjaCAiICIgZGF0ZS1hbmQtdGltZSkpKSkpCisJCSAgKHN1YnNlcSBkYXRlLWFuZC10aW1lIDAg
KHBvc2l0aW9uID9cICBkYXRlLWFuZC10aW1lKSkpKSkKICAgICAgIChpZiBmaWxlCi0JICAoa2ls
bC1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCi0gICAgICApKSkKKwkgIChraWxsLWJ1ZmZlciAo
Y3VycmVudC1idWZmZXIpKSkpKSkKIAogKGRlZnVuIGxtLWxhc3QtbW9kaWZpZWQtZGF0ZSAoJm9w
dGlvbmFsIGZpbGUpCiAgICJSZXR1cm4gdGhlIG1vZGlmeS1kYXRlIGdpdmVuIGluIGZpbGUgRklM
RSwgb3IgY3VycmVudCBidWZmZXIgaWYgRklMRSBpcyBuaWwuIgpAQCAtMzMzLDExICszMzEsOSBA
QAogCSAgOzsgWEVtYWNzIGNoYW5nZSAoSW5mb2RvY2sgY2hhbmdlPyAtc2IpCiAJICAobGV0ICgo
ZGF0ZS1hbmQtdGltZSAobG0taGVhZGVyICJMQVNULU1PRCIpKSkKIAkgICAgKGlmIGRhdGUtYW5k
LXRpbWUKLQkJKHN1YnN0cmluZyBkYXRlLWFuZC10aW1lIDAKLQkJCSAgIChzdHJpbmctbWF0Y2gg
IiAiIGRhdGUtYW5kLXRpbWUpKSkpKQorCQkoc3Vic2VxIGRhdGUtYW5kLXRpbWUgMCAocG9zaXRp
b24gP1wgIGRhdGUtYW5kLXRpbWUpKSkpKQogICAgICAgKGlmIGZpbGUKLQkgIChraWxsLWJ1ZmZl
ciAoY3VycmVudC1idWZmZXIpKSkKLSAgICAgICkpKQorCSAgKGtpbGwtYnVmZmVyIChjdXJyZW50
LWJ1ZmZlcikpKSkpKQogCiAoZGVmdW4gbG0tdmVyc2lvbiAoJm9wdGlvbmFsIGZpbGUpCiAgICJS
ZXR1cm4gdGhlIHZlcnNpb24gbGlzdGVkIGluIGZpbGUgRklMRSwgb3IgY3VycmVudCBidWZmZXIg
aWYgRklMRSBpcyBuaWwuCmRpZmYgLXIgMzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNw
L21lbnViYXItaXRlbXMuZWwKLS0tIGEvbGlzcC9tZW51YmFyLWl0ZW1zLmVsCVR1ZSBNYXIgMzEg
MTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL21lbnViYXItaXRlbXMuZWwJV2VkIEFwciAw
MSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xNDM5LDExICsxNDM5LDEzIEBACiAgICAgIFsiRWRp
dCBJJV9uaXQgRmlsZSIKICAgICAgIDs7ICMjIyMgdGhlcmUgc2hvdWxkIGJlIHNvbWV0aGluZyB0
aGF0IGhvbGRzIHRoZSBuYW1lIHRoYXQgdGhlIGluaXQKICAgICAgIDs7IGZpbGUgc2hvdWxkIGJl
IGNyZWF0ZWQgYXMsIHdoZW4gaXQncyBub3QgcHJlc2VudC4KLSAgICAgIChsZXQgKChlbC1maWxl
IChvciB1c2VyLWluaXQtZmlsZSAifi8ueGVtYWNzL2luaXQuZWwiKSkKLSAgICAgICAgICAgIGVs
LWZpbGUtZGlyZWN0b3J5KQotCShpZiAoc3RyaW5nLW1hdGNoICJcXC5lbGMkIiBlbC1maWxlKQor
ICAgICAgKGxldCogKChlbC1maWxlIChvciB1c2VyLWluaXQtZmlsZSAifi8ueGVtYWNzL2luaXQu
ZWwiKSkKKyAgICAgICAgICAgICAocG9zaXRpb24gKHBvc2l0aW9uID8uIGVsLWZpbGUgOmZyb20t
ZW5kIHQpKQorICAgICAgICAgICAgIGVsLWZpbGUtZGlyZWN0b3J5KQorCShpZiAobm90IChtaXNt
YXRjaCBlbC1maWxlICIuZWxjIgorOnN0YXJ0MSAob3IgcG9zaXRpb24gKGxlbmd0aCBlbC1maWxl
KSkpKQogCSAgICAoc2V0cSBlbC1maWxlCi0JCSAgKHN1YnN0cmluZyB1c2VyLWluaXQtZmlsZSAw
ICgxLSAobGVuZ3RoIGVsLWZpbGUpKSkpKQorCQkgIChzdWJzZXEgdXNlci1pbml0LWZpbGUgMCAt
MSkpKQogICAgICAgICAodW5sZXNzIChmaWxlLWRpcmVjdG9yeS1wCiAgICAgICAgICAgICAgICAg
IChzZXRxIGVsLWZpbGUtZGlyZWN0b3J5IChmaWxlLW5hbWUtZGlyZWN0b3J5IGVsLWZpbGUpKSkK
ICAgICAgICAgICAobWVzc2FnZSAiQ3JlYXRpbmcgJXMuLi4gIiBlbC1maWxlLWRpcmVjdG9yeSkK
QEAgLTE0NzksNyArMTQ4MSw3IEBACiAgICAgICBbIiVfSG9tZSBQYWdlICh3d3cueGVtYWNzLm9y
ZykiIHhlbWFjcy13d3ctcGFnZQogICAgICAgIDphY3RpdmUgKGZib3VuZHAgJ2Jyb3dzZS11cmwp
XSkKICAgICAgWyJCJV9ldGEgSW5mbyIgZGVzY3JpYmUtYmV0YQotOmluY2x1ZGVkIChzdHJpbmct
bWF0Y2ggImJldGEiIGVtYWNzLXZlcnNpb24pXQorOmluY2x1ZGVkIChzZWFyY2ggImJldGEiIGVt
YWNzLXZlcnNpb24pXQogICAgICAiLS0tLS0iCiAgICAgICgiJV9JbmZvIChPbmxpbmUgRG9jcyki
CiAgICAgICBbIiVfSW5mbyBDb250ZW50cyIgKEluZm8tZ290by1ub2RlICIoZGlyKSIpXQpAQCAt
MTcxMSwxMCArMTcxMywxMiBAQAogd2l0aCBhIHN0YXIgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4i
CiAgIChsZXQqICgobmFtMSAoYnVmZmVyLW5hbWUgYnVmMSkpCiAJIChuYW0yIChidWZmZXItbmFt
ZSBidWYyKSkKLQkgKGludjFwIChub3QgKG51bGwgKHN0cmluZy1tYXRjaCAiXFxgICIgbmFtMSkp
KSkKLQkgKGludjJwIChub3QgKG51bGwgKHN0cmluZy1tYXRjaCAiXFxgICIgbmFtMikpKSkKLQkg
KHN0YXIxcCAobm90IChudWxsIChzdHJpbmctbWF0Y2ggIlxcYCoiIG5hbTEpKSkpCi0JIChzdGFy
MnAgKG5vdCAobnVsbCAoc3RyaW5nLW1hdGNoICJcXGAqIiBuYW0yKSkpKSkKKyAgICAgICAgIChs
ZW4xIChsZW5ndGggbmFtMSkpCisgICAgICAgICAobGVuMiAobGVuZ3RoIG5hbTIpKQorCSAoaW52
MXAgKGVxbCA/XCAoYW5kICg+IGxlbjEgMCkgKGFyZWYgbmFtMSAwKSkpKQorCSAoaW52MnAgKGVx
bCA/XCAoYW5kICg+IGxlbjIgMCkgKGFyZWYgbmFtMiAwKSkpKQorCSAoc3RhcjFwIChlcWwgPyog
KGFuZCAoPiBsZW4xIDApIChhcmVmIG5hbTEgMCkpKSkKKyAgICAgICAgIChzdGFyMnAgKGVxbCA/
KiAoYW5kICg+IGxlbjIgMCkgKGFyZWYgbmFtMiAwKSkpKSkKICAgICAoY29uZCAoKG5vdCAoZXEg
aW52MXAgaW52MnApKQogCSAgIChub3QgaW52MXApKQogCSAgKChub3QgKGVxIHN0YXIxcCBzdGFy
MnApKQpAQCAtMTcyOCwyMyArMTczMiwzNyBAQAogYmVnaW5uaW5nIHdpdGggYSBzdGFyIGF0IHRo
ZSBlbmQgb2YgdGhlIGxpc3QuIgogICAobGV0KiAoKG5hbTEgKGJ1ZmZlci1uYW1lIGJ1ZjEpKQog
CSAobmFtMiAoYnVmZmVyLW5hbWUgYnVmMikpCi0JIChpbnYxcCAobm90IChudWxsIChzdHJpbmct
bWF0Y2ggIlxcYCAiIG5hbTEpKSkpCi0JIChpbnYycCAobm90IChudWxsIChzdHJpbmctbWF0Y2gg
IlxcYCAiIG5hbTIpKSkpCi0JIChzdGFyMXAgKG5vdCAobnVsbCAoc3RyaW5nLW1hdGNoICJcXGAq
IiBuYW0xKSkpKQotCSAoc3RhcjJwIChub3QgKG51bGwgKHN0cmluZy1tYXRjaCAiXFxgKiIgbmFt
MikpKSkKLQkgKG1vZGUxIChzeW1ib2wtdmFsdWUtaW4tYnVmZmVyICdtYWpvci1tb2RlIGJ1ZjEp
KQotCSAobW9kZTIgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIgJ21ham9yLW1vZGUgYnVmMikpKQor
CSAoZmlyc3QxIChlbHQgbmFtMSAwKSkKKwkgKGZpcnN0MiAoZWx0IG5hbTIgMCkpCisJIChpbnYx
cCAoZXFsID9cICBmaXJzdDEpKQorCSAoaW52MnAgKGVxbCA/XCAgZmlyc3QyKSkKKwkgKHN0YXIx
cCAoZXFsID8qIGZpcnN0MSkpCisgICAgICAgICAoc3RhcjJwIChlcWwgPyogZmlyc3QyKSkKKwkg
Y29tcGFyZS1zdHJpbmdzKQogICAgIChjb25kICgobm90IChlcSBpbnYxcCBpbnYycCkpCiAJICAg
KG5vdCBpbnYxcCkpCiAJICAoKG5vdCAoZXEgc3RhcjFwIHN0YXIycCkpCiAJICAgKG5vdCBzdGFy
MXApKQotCSAgKChhbmQgc3RhcjFwIHN0YXIycCAoc3RyaW5nLWxlc3NwIG5hbTEgbmFtMikpKQot
CSAgKChzdHJpbmctbGVzc3AgbW9kZTEgbW9kZTIpCi0JICAgdCkKLQkgICgoc3RyaW5nLWxlc3Nw
IG1vZGUyIG1vZGUxKQotCSAgIG5pbCkKLQkgICh0Ci0JICAgKHN0cmluZy1sZXNzcCBuYW0xIG5h
bTIpKSkpKQorCSAgKChhbmQgc3RhcjFwIHN0YXIycCAocHJvZzIgCisJCQkJICAoc2V0cSBjb21w
YXJlLXN0cmluZ3MKKwkJCQkJKGNvbXBhcmUtc3RyaW5ncyBuYW0xIDAgbmlsCisJCQkJCQkJIG5h
bTIgMCBuaWwgdCkpCisJCQkJICAoYW5kIChmaXhudW1wIGNvbXBhcmUtc3RyaW5ncykKKwkJCQkg
ICAgICAgKG1pbnVzcCBjb21wYXJlLXN0cmluZ3MpKSkpKQorCSAgKChlcSAoc2V0cSBjb21wYXJl
LXN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgIChjb21wYXJlLXN0cmluZ3MgKHN5bWJvbC1u
YW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sLXZhbHVl
LWluLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWpv
ci1tb2RlIGJ1ZjEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIG5p
bAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sLW5hbWUKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzeW1ib2wtdmFsdWUtaW4tYnVm
ZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21ham9yLW1vZGUg
YnVmMikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgbmlsIHQpKQor
CSAgICAgICB0KQorCSAgIChzZXRxIGNvbXBhcmUtc3RyaW5ncyAoY29tcGFyZS1zdHJpbmdzIG5h
bTEgMCBuaWwKKwkJCQkJCSAgbmFtMiAwIG5pbCB0KSkKKwkgICAoYW5kIChmaXhudW1wIGNvbXBh
cmUtc3RyaW5ncykgKG1pbnVzcCBjb21wYXJlLXN0cmluZ3MpKSkKKwkgICh0IChtaW51c3AgY29t
cGFyZS1zdHJpbmdzKSkpKSkKIAogOzsgdGhpcyB2ZXJzaW9uIGlzIHRvbyBzbG93IG9uIHNvbWUg
bWFjaGluZXMuCiA7OyAodmludGFnZSAxOTkwLCB0aGF0IGlzKQpAQCAtMTc3MiwxNCArMTc5MCwx
OCBAQAogVGhpcyBncm91cHMgYnVmZmVycyBieSBtYWpvciBtb2RlLiAgSXQgb25seSByZWFsbHkg
bWFrZXMgc2Vuc2UgaWYKIGBidWZmZXJzLW1lbnUtc29ydGluZy1mdW5jdGlvbicgaXMKIGBzb3J0
LWJ1ZmZlcnMtbWVudS1ieS1tb2RlLXRoZW4tYWxwaGFiZXRpY2FsbHknLiIKLSAgKGNvbmQgKChz
dHJpbmctbWF0Y2ggIlxcYCoiIChidWZmZXItbmFtZSBidWYxKSkKLQkgKGFuZCAobnVsbCBidWYy
KSAiKk1pc2MqIikpCi0JKChvciAobnVsbCBidWYyKQotCSAgICAgKHN0cmluZy1tYXRjaCAiXFxg
KiIgKGJ1ZmZlci1uYW1lIGJ1ZjIpKQotCSAgICAgKG5vdCAoZXEgKHN5bWJvbC12YWx1ZS1pbi1i
dWZmZXIgJ21ham9yLW1vZGUgYnVmMSkKLQkJICAgICAgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIg
J21ham9yLW1vZGUgYnVmMikpKSkKLQkgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIgJ21vZGUtbmFt
ZSBidWYxKSkKLQkodCBuaWwpKSkKKyAgKGxldCogKChuYW0xIChidWZmZXItbmFtZSBidWYxKSkK
KwkgKG5hbTIgKGJ1ZmZlci1uYW1lIGJ1ZjIpKQorICAgICAgICAgKGxlbjEgKGxlbmd0aCBuYW0x
KSkKKyAgICAgICAgIChsZW4yIChsZW5ndGggbmFtMikpKQorICAgIChjb25kICgoZXFsID8qIChh
bmQgKD4gbGVuMSAwKSAoYXJlZiBuYW0xIDApKSkKKyAgICAgICAgICAgKGFuZCAobnVsbCBidWYy
KSAiKk1pc2MqIikpCisgICAgICAgICAgKChvciAobnVsbCBidWYyKQorICAgICAgICAgICAgICAg
KGVxbCA/KiAoYW5kICg+IGxlbjIgMCkgKGFyZWYgbmFtMiAwKSkpCisgICAgICAgICAgICAgICAo
bm90IChlcSAoc3ltYm9sLXZhbHVlLWluLWJ1ZmZlciAnbWFqb3ItbW9kZSBidWYxKQorICAgICAg
ICAgICAgICAgICAgICAgICAgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIgJ21ham9yLW1vZGUgYnVm
MikpKSkKKyAgICAgICAgICAgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIgJ21vZGUtbmFtZSBidWYx
KSkKKyAgICAgICAgICAodCBuaWwpKSkpCiAKIChkZWZ1biBidWZmZXItbWVudS1zYXZlLWJ1ZmZl
ciAoYnVmZmVyKQogICAoc2F2ZS1leGN1cnNpb24KQEAgLTE5MDIsNyArMTkyNCw3IEBACiAoZGVm
dW4gbGlzdC1hbGwtYnVmZmVycyAoKQogICAiRGlzcGxheSBhIGxpc3Qgb2YgYnVmZmVycy4gIENh
bGxzIGBsaXN0LWFsbC1idWZmZXJzLWZ1bmN0aW9uJy4iCiAgIChpbnRlcmFjdGl2ZSkKLSAgKGZ1
bmNhbGwgKGlmIChmYm91bmRwIGxpc3QtYWxsLWJ1ZmZlcnMtZnVuY3Rpb24pCisgIChmdW5jYWxs
IChpZiAoZnVuY3Rpb25wIGxpc3QtYWxsLWJ1ZmZlcnMtZnVuY3Rpb24pCiAJICAgICAgIGxpc3Qt
YWxsLWJ1ZmZlcnMtZnVuY3Rpb24KIAkgICAgICdsaXN0LWJ1ZmZlcnMpKSkKIApAQCAtMTkyNiwx
MCArMTk0OCwxMCBAQAogCShtYXBjYW4gIycobGFtYmRhIChsYW5nKQogCQkgICAgKGxldCAoKHR1
dCAoYXNzcSAndHV0b3JpYWwgbGFuZykpKQogCQkgICAgICAoYW5kIHR1dAotCQkJICAgKG5vdCAo
c3RyaW5nPSAoY2FyIGxhbmcpICJBU0NJSSIpKQorCQkJICAgKG5vdCAoZXF1YWwgKGNhciBsYW5n
KSAiQVNDSUkiKSkKIAkJCSAgIDs7IHNraXAgY3VycmVudCBsYW5ndWFnZSwgc2luY2Ugd2UgYWxy
ZWFkeQogCQkJICAgOzsgaW5jbHVkZWQgaXQgZmlyc3QKLQkJCSAgIChub3QgKHN0cmluZz0gKGNh
ciBsYW5nKQorCQkJICAgKG5vdCAoZXF1YWwgKGNhciBsYW5nKQogCQkJCQkgY3VycmVudC1sYW5n
dWFnZS1lbnZpcm9ubWVudCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBIYWNraXNo
IGFwcHJvYWNoOyBpZiBhIGxhbmd1YWdlIGVudmlyb25tZW50CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA7OyBkb2Vzbid0IGhhdmUgYXNzb2NpYXRlZCBsb2NhbGUgaW5mb3JtYXRpb24sCmRp
ZmYgLXIgMzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL21pbmlidWYuZWwKLS0tIGEv
bGlzcC9taW5pYnVmLmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNw
L21pbmlidWYuZWwJV2VkIEFwciAwMSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xNDgzLDE1ICsx
NDgzLDExIEBACiAKIDs7IFF1b3RlICIkIiBhcyAiJCQiIHRvIGdldCBpdCBwYXN0IHN1YnN0aXR1
dGUtaW4tZmlsZS1uYW1lCiAoZGVmdW4gdW4tc3Vic3RpdHV0ZS1pbi1maWxlLW5hbWUgKHN0cmlu
ZykKLSAgKGxldCAoKHJlZ2V4cCAiXFwkIikKKyAgKGxldCAoKG4gKGNvdW50ID8kIHN0cmluZykp
CiAgICAgICAgIChvbGVuIChsZW5ndGggc3RyaW5nKSkKLSAgICAgICAgbmV3Ci0gICAgICAgIG4g
byBjaCkKLSAgICAoaWYgKG5vdCAoc3RyaW5nLW1hdGNoIHJlZ2V4cCBzdHJpbmcpKQorICAgICAg
ICBuZXcgbyBjaCkKKyAgICAoaWYgKGVxbCBuIDApCiAJc3RyaW5nCi0gICAgICAoc2V0cSBuIDEp
Ci0gICAgICAod2hpbGUgKHN0cmluZy1tYXRjaCByZWdleHAgc3RyaW5nIChtYXRjaC1lbmQgMCkp
Ci0JKHNldHEgbiAoMSsgbikpKQogICAgICAgKHNldHEgbmV3IChtYWtlLXN0cmluZyAoKyBvbGVu
IG4pID8kKSkKICAgICAgIChzZXRxIG4gMCBvIDApCiAgICAgICAod2hpbGUgKDwgbyBvbGVuKQpA
QCAtMTUwMyw3ICsxNDk5LDYgQEAKIAkgICAgKHNldHEgbiAoMSsgbikpKSkKICAgICAgIG5ldykp
KQogCi0KIDs7IFdyYXBwZXIgZm9yIGBkaXJlY3RvcnktZmlsZXMnIGZvciB1c2UgaW4gZ2VuZXJh
dGluZyBjb21wbGV0aW9uIGxpc3RzLgogOzsgR2VuZXJhdGVzIG91dHB1dCBpbiB0aGUgc2FtZSBm
b3JtYXQgYXMgYGZpbGUtbmFtZS1hbGwtY29tcGxldGlvbnMnLgogOzsKQEAgLTE3NzUsOSArMTc3
MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCkpKSkKICAg
ICAgICAgICAgICAoaGVhZCAoc3Vic3RyaW5nIHN0cmluZyAwICgxLSBzdGFydCkpKQogICAgICAg
ICAgICAgIChhbGlzdCAjJyhsYW1iZGEgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIChtYXBj
YXIgIycobGFtYmRhICh4KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv
bnMgKHN1YnN0cmluZyB4IDAgKHN0cmluZy1tYXRjaCAiPSIgeCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwpKQorICAgICAgICAgICAgICAgICAgICAgICAg
KG1hcGNhciAjJyhsYW1iZGEgKHgpIChzdWJzZXEgeCAwIChwb3NpdGlvbiA/PSB4KSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MtZW52aXJvbm1lbnQpKSkpCiAKIAko
Y29uZCAoKGVxIGFjdGlvbiAnbGFtYmRhKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2
NjAzZGIgbGlzcC9tb3VzZS5lbAotLS0gYS9saXNwL21vdXNlLmVsCVR1ZSBNYXIgMzEgMTg6NDI6
MjEgMjAxNSArMDEwMAorKysgYi9saXNwL21vdXNlLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAx
NSArMDEwMApAQCAtMjc0LDcgKzI3NCw3IEBACiAgICAgOzsgIyMjIyAtLSBuZWVkIGJldHRlciB0
ZXN0CiAgICAgKGlmIChhbmQgKG5vdCBmb3JjZS13aW5kb3cpCiAJICAgICAoPD0gKGxlbmd0aCBy
ZXN1bHQtc3RyKSAod2luZG93LXdpZHRoIChzZWxlY3RlZC13aW5kb3cpKSkKLSAgICAgICAgICAg
ICAobm90IChzdHJpbmctbWF0Y2ggIlxuIiByZXN1bHQtc3RyKSkpCisgICAgICAgICAgICAgKG5v
dCAoZmluZCA/XG4gcmVzdWx0LXN0cikpKQogCShtZXNzYWdlICIlcyIgcmVzdWx0LXN0cikKICAg
ICAgICh3aXRoLW91dHB1dC10by10ZW1wLWJ1ZmZlciAiKk1vdXNlLUV2YWwqIgogICAgICAgICAo
bG9vcApkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9tc3ctZm9udC1t
ZW51LmVsCi0tLSBhL2xpc3AvbXN3LWZvbnQtbWVudS5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIw
MTUgKzAxMDAKKysrIGIvbGlzcC9tc3ctZm9udC1tZW51LmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAg
MjAxNSArMDEwMApAQCAtNzcsNyArNzcsNyBAQAogCWRldi1jYWNoZSBjYWNoZSBmYW1pbGllcyBz
aXplcyB3ZWlnaHRzKQogICAgIChkb2xpc3QgKG5hbWUgKGNvbmQgKChudWxsIGRlYnVnKQk7IGRl
YnVnZ2luZyBrbHVkZ2UKIAkJCSAoZm9udC1saXN0ICI6Ojo6IiBkZXZpY2UpKQotCQkJKChzdHJp
bmdwIGRlYnVnKSAoc3BsaXQtc3RyaW5nIGRlYnVnICJcbiIpKQorCQkJKChzdHJpbmdwIGRlYnVn
KSAoc3BsaXQtc3RyaW5nLWJ5LWNoYXIgZGVidWcgP1xuKSkKIAkJCSh0IGRlYnVnKSkpCiAgICAg
ICAod2hlbiAoYW5kIChzdHJpbmctbWF0Y2ggbXN3aW5kb3dzLWZvbnQtcmVnZXhwLWFzY2lpIG5h
bWUpCiAJCSAoc3RyaW5nLW1hdGNoIG1zd2luZG93cy1mb250LXJlZ2V4cCBuYW1lKSkKZGlmZiAt
ciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvbXVsZS9qYXBhbmVzZS5lbAotLS0g
YS9saXNwL211bGUvamFwYW5lc2UuZWwJVHVlIE1hciAzMSAxODo0MjoyMSAyMDE1ICswMTAwCisr
KyBiL2xpc3AvbXVsZS9qYXBhbmVzZS5lbAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAK
QEAgLTQ0NCwzNiArNDQ0LDQzIEBACiAgICAgICAgICAgICAgICAgICAgJ25hdGl2ZS1jb2Rpbmct
c3lzdGVtCiAgICAgICAgICAgICAgICAgICAgOzsgZmlyc3QsIHNlZSBpZiBhbiBleHBsaWNpdCBl
bmNvZGluZyB3YXMgZ2l2ZW4uCiAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAobG9jYWxlKQot
ICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkpCi0gICAgICAg
ICAgICAgICAgICAgICAgIChjb25kCi0gICAgICAgICAgICAgICAgICAgICAgICA7OyBtYW55IHVu
aXggdmVyc2lvbnMKLSAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLW1hdGNoICJcXC5l
dWMiIGxvY2FsZSkgJ2V1Yy1qcCkKLSAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLW1h
dGNoICJcXC5zamlzIiBsb2NhbGUpICdzaGlmdC1qaXMpCisgICAgICAgICAgICAgICAgICAgICAo
b3IKKyAgICAgICAgICAgICAgICAgICAgICAobGV0ICgobG9jYWxlIChjYW5vbmNhc2UgbG9jYWxl
KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICA7OyBtYW55IHVuaXggdmVyc2lvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKChz
ZWFyY2ggIi5ldWMiIGxvY2FsZSkgJ2V1Yy1qcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
KChzZWFyY2ggIi5zamlzIiBsb2NhbGUpICdzaGlmdC1qaXMpCiAKLSAgICAgICAgICAgICAgICAg
ICAgICAgIDs7IFgxMVI2IChDSktWIHAuIDQ3MSkKLSAgICAgICAgICAgICAgICAgICAgICAgICgo
c3RyaW5nLW1hdGNoICJcXC5qaXM3IiBsb2NhbGUpICdqaXM3KQotICAgICAgICAgICAgICAgICAg
ICAgICAgKChzdHJpbmctbWF0Y2ggIlxcLmppczgiIGxvY2FsZSkgJ2ppczgpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFwubXNjb2RlIiBsb2NhbGUpICdzaGlmdC1q
aXMpCi0gICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFwucGppcyIgbG9j
YWxlKSAnaXNvLTIwMjItanApCi0gICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRj
aCAiXFwudWppcyIgbG9jYWxlKSAnZXVjLWpwKQorICAgICAgICAgICAgICAgICAgICAgICAgICA7
OyBYMTFSNiAoQ0pLViBwLiA0NzEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICgoc2VhcmNo
ICIuamlzNyIgbG9jYWxlKSAnamlzNykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKChzZWFy
Y2ggIi5qaXM4IiBsb2NhbGUpICdqaXM4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAoKHNl
YXJjaCAiLm1zY29kZSIgbG9jYWxlKSAnc2hpZnQtamlzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAoKHNlYXJjaCAiLnBqaXMiIGxvY2FsZSkgJ2lzby0yMDIyLWpwKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAoKHNlYXJjaCAiLnVqaXMiIGxvY2FsZSkgJ2V1Yy1qcCkKIAotICAgICAg
ICAgICAgICAgICAgICAgICAgOzsgb3RoZXIgbmFtZXMgaW4gWDExUjYgbG9jYWxlLmFsaWFzCi0g
ICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFwuYWplYyIgbG9jYWxlKSAn
ZXVjLWpwKQotICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctbWF0Y2ggIi1ldWMiIGxv
Y2FsZSkgJ2V1Yy1qcCkKLSAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLW1hdGNoICJc
XC5pc28tMjAyMi1qcCIgbG9jYWxlKSAnaXNvLTIwMjItanApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAoKHN0cmluZy1tYXRjaCAiXFwuamlzIiBsb2NhbGUpICdqaXM3KSA7OyBvciBqdXN0IGpp
cz8KLQotICAgICAgICAgICAgICAgICAgICAgICAgOzsgYWl4IChDSktWIHAuIDQ2NSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICgoYW5kIChlcSBzeXN0ZW0tdHlwZSAnYWl4KQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCAiXkphX0pQIiBsb2NhbGUpKSAnc2hp
ZnQtamlzKQotICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQgKGVxIHN5c3RlbS10eXBlICdh
aXgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoICJeamFfSlAi
IGxvY2FsZSkpICdldWMtanApCi0KLSAgICAgICAgICAgICAgICAgICAgICAgOzsgb3RoZXIgWDEx
UjYgbG9jYWxlLmFsaWFzCi0gICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLW1hdGNoICJe
SnBfSlAiIGxvY2FsZSkgJ2V1Yy1qcCkKLSAgICAgICAgICAgICAgICAgICAgICAgKChhbmQgKGVx
IHN5c3RlbS10eXBlICdocHV4KSAoZXEgbG9jYWxlICJqYXBhbmVzZSIpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgJ3NoaWZ0LWppcykKLSAgICAgICAgICAgICAgICAgICAgICAgOzsgZmFsbGJh
Y2sKLSAgICAgICAgICAgICAgICAgICAgICAgKHQgJ2V1Yy1qcCkpKSkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIDs7IG90aGVyIG5hbWVzIGluIFgxMVI2IGxvY2FsZS5hbGlhcworICAgICAg
ICAgICAgICAgICAgICAgICAgICAoKHNlYXJjaCAiLmFqZWMiIGxvY2FsZSkgJ2V1Yy1qcCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKChzZWFyY2ggIi1ldWMiIGxvY2FsZSkgJ2V1Yy1qcCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKChzZWFyY2ggIi5pc28tMjAyMi1qcCIgbG9jYWxl
KSAnaXNvLTIwMjItanApCisgICAgICAgICAgICAgICAgICAgICAgICAgICgoc2VhcmNoICIuamlz
IiBsb2NhbGUpICdqaXM3KSkpIDs7IG9yIGp1c3QgamlzPworICAgICAgICAgICAgICAgICAgICAg
IDs7IGFpeCAoQ0pLViBwLiA0NjUpCisgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIHN5
c3RlbS10eXBlICdhaXgpCisgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICA7OyBDYXNlIHNlbnNpdGl2ZSEKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKChub3QgKG1pc21hdGNoICJKYV9KUCIgbG9jYWxlCis6ZW5kMiAobGVuZ3RoICJKYV9K
UCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGlmdC1qaXMpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICgobm90IChtaXNtYXRjaCAiamFfSlAiIGxvY2FsZQorOmVuZDIgKGxl
bmd0aCAiamFfSlAiKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXVjLWpwKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIDs7IG90
aGVyIFgxMVI2IGxvY2FsZS5hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgKChub3QgKG1p
c21hdGNoICJKcF9KUCIgbG9jYWxlIDplbmQyIChsZW5ndGggIkpwX0pQIikpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICdldWMtanApCisgICAgICAgICAgICAgICAgICAgICAgICAoKGFuZCAo
ZXEgc3lzdGVtLXR5cGUgJ2hwdXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1
YWxwIGxvY2FsZSAiamFwYW5lc2UiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnc2hpZnQt
amlzKQorICAgICAgICAgICAgICAgICAgICAgICAgOzsgZmFsbGJhY2sKKyAgICAgICAgICAgICAg
ICAgICAgICAgICh0ICdldWMtanApKSkpKQogCiA7OzsgamFwYW5lc2UuZWwgZW5kcyBoZXJlCmRp
ZmYgLXIgMzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL211bGUva29yZWEtdXRpbC5l
bAotLS0gYS9saXNwL211bGUva29yZWEtdXRpbC5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUg
KzAxMDAKKysrIGIvbGlzcC9tdWxlL2tvcmVhLXV0aWwuZWwJV2VkIEFwciAwMSAxNDoyODoyMCAy
MDE1ICswMTAwCkBAIC0zMSw3ICszMSw3IEBACiAKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdmFyIGRl
ZmF1bHQta29yZWFuLWtleWJvYXJkCi0gIChpZiAoc3RyaW5nLW1hdGNoICIzIiAob3IgKGdldGVu
diAiSEFOR1VMX0tFWUJPQVJEX1RZUEUiKSAiIikpCisgIChpZiAoZmluZCA/MyAoZ2V0ZW52ICJI
QU5HVUxfS0VZQk9BUkRfVFlQRSIpKQogICAgICAgIjMiCiAgICAgIiIpCiAgICIqVGhlIGtpbmQg
b2YgS29yZWFuIGtleWJvYXJkIGZvciBLb3JlYW4gaW5wdXQgbWV0aG9kLgpAQCAtNjAsNyArNjAs
NyBAQAogICAiU3dpdGggdG8vZnJvbSBLb3JlYW4gaGFuamEgcGFja2FnZS4iCiAgIChpbnRlcmFj
dGl2ZSAiaSIpCiAgIChhbmQgY3VycmVudC1pbnB1dC1tZXRob2QKLSAgICAgICAoaWYgKHN0cmlu
Zy1tYXRjaCAia29yZWFuLWhhbmphIiBjdXJyZW50LWlucHV0LW1ldGhvZCkKKyAgICAgICAoaWYg
KHNlYXJjaCAia29yZWFuLWhhbmphIiBjdXJyZW50LWlucHV0LW1ldGhvZCA6dGVzdCAjJ2VxdWFs
cCkKIAkgICAoYWN0aXZhdGUtaW5wdXQtbWV0aG9kIChjb25jYXQgImtvcmVhbi1oYW5ndWwiCiAJ
CQkJCSAgZGVmYXVsdC1rb3JlYW4ta2V5Ym9hcmQpKQogCSAoYWN0aXZhdGUtaW5wdXQtbWV0aG9k
IChjb25jYXQgImtvcmVhbi1oYW5qYSIKZGlmZiAtciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYw
M2RiIGxpc3AvbXVsZS9tdWxlLWNtZHMuZWwKLS0tIGEvbGlzcC9tdWxlL211bGUtY21kcy5lbAlU
dWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9tdWxlL211bGUtY21kcy5l
bAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAKQEAgLTEyODUsOSArMTI4NSwxMCBAQAog
CQkgOzsgYXNzdW1lIGl0J3MgREVGQVVMVCBvciBORVVUUkFMIChvciBzb21ldGhpbmcgZWxzZQog
CQkgOzsgd2l0aG91dCB0aGUgbGFuZ3VhZ2UgaW4gaXQ/KSBhbmQgcHJlcGVuZCB0aGUKIAkJIDs7
IGxhbmd1YWdlLgotCQkgKGlmIChzdHJpbmctbWF0Y2ggIl8iIChjZHIgbXMtbG9jYWxlKSkKLQkJ
ICAgICAocmVwbGFjZS1pbi1zdHJpbmcKLQkJICAgICAgKHJlcGxhY2UtbWF0Y2ggIi0iIG5pbCBu
aWwgKGNkciBtcy1sb2NhbGUpKSAiXyIgIiAiKQorCQkgKGlmIChzZXRxIHBvc2l0aW9uIChwb3Np
dGlvbiA/XyAoY2RyIG1zLWxvY2FsZSkpKQorICAgICAgICAgICAgICAgICAgICAgKHN1YnN0aXR1
dGUgP1wgID9fCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSA/
LSA/XyAoY2RyIG1zLWxvY2FsZSkKKzplbmQgKDErIHBvc2l0aW9uKSkpCiAJCSAgIChmb3JtYXQg
IiVzLSVzIiAoY2FyIG1zLWxvY2FsZSkgKGNkciBtcy1sb2NhbGUpKSkpCiAJCTs7ID8/Pz8gaHVo
ID8/Pz8gaWYgZmFpbHVyZSwganVzdCB0cnkgdGhlIGxhbmd1YWdlCiAJCTs7IG5hbWUuCmRpZmYg
LXIgMzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL25ld2NvbW1lbnQuZWwKLS0tIGEv
bGlzcC9uZXdjb21tZW50LmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9s
aXNwL25ld2NvbW1lbnQuZWwJV2VkIEFwciAwMSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC03MzYs
NyArNzM2LDcgQEAKIAkJCQkgICAgICAgKG1hdGNoLWJlZ2lubmluZyAwKSBsY3MgMykpIGMpKSkK
IAkoc2V0cSBjcyAocmVwbGFjZS1tYXRjaCBmaWxsIHQgdCBzKSkKIAkod2hlbiAoYW5kIChub3Qg
KHN0cmluZy1tYXRjaCBjb21tZW50LXN0YXJ0LXNraXAgY3MpKQotCQkgICAoc3RyaW5nLW1hdGNo
ICJhPW0iIHMpKQorCQkgICAoc2VhcmNoICJhPW0iIHMpKQogCSAgOzsgVGhlIHdoaXRlc3BhY2Ug
YXJvdW5kIENTIGNhbm5vdCBiZSBpZ25vcmVkOiBwdXQgaXQgYmFjay4KIAkgIChzZXRxIHJlICJh
PW0iKQogCSAgKHNldHEgZmlsbCAobWFrZS1zdHJpbmcgKC0gd2lkdGggbGNzKSBjKSkKZGlmZiAt
ciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvcGFja2FnZS1nZXQuZWwKLS0tIGEv
bGlzcC9wYWNrYWdlLWdldC5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIv
bGlzcC9wYWNrYWdlLWdldC5lbAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAKQEAgLTEy
MjIsNyArMTIyMiw3IEBACiAgICAgKGxldCAoKGRpciAoY2FkciBzZWFyY2gpKSkKICAgICAgIChj
b25jYXQgKHdoZW4gKGNhciBzZWFyY2gpCiAJCShjb25jYXQKLQkJIChpZiAoc3RyaW5nLW1hdGNo
ICJAIiAoY2FyIHNlYXJjaCkpCisJCSAoaWYgKHBvc2l0aW9uID9AIChjYXIgc2VhcmNoKSkKIAkJ
ICAgICAiLyIKIAkJICAgIi9hbm9ueW1vdXNAIikKIAkJIChjYXIgc2VhcmNoKSAiOiIpKQpkaWZm
IC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9wcm9jZXNzLmVsCi0tLSBhL2xp
c3AvcHJvY2Vzcy5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9w
cm9jZXNzLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtNjM3LDEwICs2Mzcs
OCBAQAogT3B0aW9uYWwgc2Vjb25kIGFyZyBNVVNUTUFUQ0gsIGlmIG5vbi1uaWwsIG1lYW5zIHJl
cXVpcmUgZXhpc3RpbmcgZW52dmFyIG5hbWUuCiBJZiBpdCBpcyBhbHNvIG5vdCB0LCBSRVQgZG9l
cyBub3QgZXhpdCBpZiBpdCBkb2VzIG5vbi1udWxsIGNvbXBsZXRpb24uIgogICAoY29tcGxldGlu
Zy1yZWFkIHByb21wdAotCQkgICAobWFwY2FyIChmdW5jdGlvbgotCQkJICAgIChsYW1iZGEgKGVu
dmVudHJ5KQotCQkJICAgICAgKGxpc3QgKHN1YnN0cmluZyBlbnZlbnRyeSAwCi0JCQkJCSAgICAg
ICAoc3RyaW5nLW1hdGNoICI9IiBlbnZlbnRyeSkpKSkpCisJCSAgIChtYXBjYXIgIycobGFtYmRh
ICh2YXJpYWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIHZh
cmlhYmxlIDAgKHBvc2l0aW9uID89IHZhcmlhYmxlKSkpCiAJCQkgICBwcm9jZXNzLWVudmlyb25t
ZW50KQogCQkgICBuaWwgbXVzdG1hdGNoIG5pbCAncmVhZC1lbnZ2YXItbmFtZS1oaXN0b3J5KSkK
IApAQCAtNzIxLDcgKzcxOSw3IEBACiAKICAgOzsgQnV0IHRoZW4gcmlnaHQgbm93IG91ciBmaW5k
LWNvZGluZy1zeXN0ZW1zIGFuYWxvZ3VlIGlzIGluIHBhY2thZ2VzLgogCi0gIChpZiAoc3RyaW5n
LW1hdGNoICI9IiB2YXJpYWJsZSkKKyAgKGlmIChwb3NpdGlvbiA/PSB2YXJpYWJsZSkKICAgICAg
IChlcnJvciAiRW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZSBgJXMnIGNvbnRhaW5zIGA9JyIgdmFy
aWFibGUpCiAgICAgKGxldCAoKHBhdHRlcm4gKGNvbmNhdCAiXFxgIiAocmVnZXhwLXF1b3RlIChj
b25jYXQgdmFyaWFibGUgIj0iKSkpKQogCSAgKGNhc2UtZm9sZC1zZWFyY2ggbmlsKQpkaWZmIC1y
IDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9yZXBsYWNlLmVsCi0tLSBhL2xpc3Av
cmVwbGFjZS5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9yZXBs
YWNlLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtMTQ4LDIwICsxNDgsMTAg
QEAKIAkgICAgICAgbmlsIG5pbCBuaWwKIAkgICAgICAgJ3F1ZXJ5LXJlcGxhY2UtaGlzdG9yeSkp
CiAgICAgIChsaXN0IGZyb20gdG8gY3VycmVudC1wcmVmaXgtYXJnKSkpCi0gIChsZXQgKHJlcGxh
Y2VtZW50cykKLSAgICAoaWYgKGxpc3RwIHRvLXN0cmluZ3MpCi0JKHNldHEgcmVwbGFjZW1lbnRz
IHRvLXN0cmluZ3MpCi0gICAgICAod2hpbGUgKG5vdCAoZXFsIChsZW5ndGggdG8tc3RyaW5ncykg
MCkpCi0JKGlmIChzdHJpbmctbWF0Y2ggIiAiIHRvLXN0cmluZ3MpCi0JICAgIChzZXRxIHJlcGxh
Y2VtZW50cwotCQkgIChhcHBlbmQgcmVwbGFjZW1lbnRzCi0JCQkgIChsaXN0IChzdWJzdHJpbmcg
dG8tc3RyaW5ncyAwCi0JCQkJCSAgIChzdHJpbmctbWF0Y2ggIiAiIHRvLXN0cmluZ3MpKSkpCi0J
CSAgdG8tc3RyaW5ncyAoc3Vic3RyaW5nIHRvLXN0cmluZ3MKLQkJCQkgICAgICAgKDErIChzdHJp
bmctbWF0Y2ggIiAiIHRvLXN0cmluZ3MpKSkpCi0JICAoc2V0cSByZXBsYWNlbWVudHMgKGFwcGVu
ZCByZXBsYWNlbWVudHMgKGxpc3QgdG8tc3RyaW5ncykpCi0JCXRvLXN0cmluZ3MgIiIpKSkpCi0g
ICAgKHBlcmZvcm0tcmVwbGFjZSByZWdleHAgcmVwbGFjZW1lbnRzIHQgdCBuaWwgYXJnKSkpCisg
IChwZXJmb3JtLXJlcGxhY2UgcmVnZXhwIChpZiAobGlzdHAgdG8tc3RyaW5ncykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRvLXN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc3BsaXQtc3RyaW5nLWJ5LWNoYXIgdG8tc3RyaW5ncyA/XCApKQorICAgICAgICAgICAg
ICAgICAgIHQgdCBuaWwgYXJnKSkKIAogKGRlZnVuIHJlcGxhY2Utc3RyaW5nIChmcm9tLXN0cmlu
ZyB0by1zdHJpbmcgJm9wdGlvbmFsIGRlbGltaXRlZCkKICAgIlJlcGxhY2Ugb2NjdXJyZW5jZXMg
b2YgRlJPTS1TVFJJTkcgd2l0aCBUTy1TVFJJTkcuCmRpZmYgLXIgMzFkZDI3NWZhNjgzIC1yIGJi
ZTQxNDY2MDNkYiBsaXNwL3NlbGVjdC5lbAotLS0gYS9saXNwL3NlbGVjdC5lbAlUdWUgTWFyIDMx
IDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9zZWxlY3QuZWwJV2VkIEFwciAwMSAxNDoy
ODoyMCAyMDE1ICswMTAwCkBAIC03ODIsMTggKzc4MiwxNiBAQAogOzs7IENGX3h4eCBjb252ZXJz
aW9ucwogKGRlZnVuIHNlbGVjdC1jb252ZXJ0LWZyb20tY2YtdGV4dCAoc2VsZWN0aW9uIHR5cGUg
dmFsdWUpCiAgIChpZiAoZmluZC1jb2Rpbmctc3lzdGVtICdtc3dpbmRvd3MtbXVsdGlieXRlKQot
ICAgICAgKGxldCAoKHZhbHVlIChkZWNvZGUtY29kaW5nLXN0cmluZyB2YWx1ZSAnbXN3aW5kb3dz
LW11bHRpYnl0ZSkpKQotCShyZXBsYWNlLWluLXN0cmluZyAoaWYgKHN0cmluZy1tYXRjaCAiXDAi
IHZhbHVlKQotCQkJICAgICAgIChzdWJzdHJpbmcgdmFsdWUgMCAobWF0Y2gtYmVnaW5uaW5nIDAp
KQotCQkJICAgICB2YWx1ZSkKKyAgICAgIChsZXQqICgodmFsdWUgKGRlY29kZS1jb2Rpbmctc3Ry
aW5nIHZhbHVlICdtc3dpbmRvd3MtbXVsdGlieXRlKSkKKyAgICAgICAgICAgICAocG9zaXRpb24g
KHBvc2l0aW9uID9ceDAwIHZhbHVlKSkpCisJKHJlcGxhY2UtaW4tc3RyaW5nIChzdWJzZXEgdmFs
dWUgMCBwb3NpdGlvbikKIAkJCSAgICJcXChcclxuXFx8XG5cclxcKSIgIlxuIiB0KSkpKQogCiAo
ZGVmdW4gc2VsZWN0LWNvbnZlcnQtZnJvbS1jZi11bmljb2RldGV4dCAoc2VsZWN0aW9uIHR5cGUg
dmFsdWUpCiAgIChpZiAoZmluZC1jb2Rpbmctc3lzdGVtICdtc3dpbmRvd3MtdW5pY29kZSkKLSAg
ICAgIChsZXQgKCh2YWx1ZSAoZGVjb2RlLWNvZGluZy1zdHJpbmcgdmFsdWUgJ21zd2luZG93cy11
bmljb2RlKSkpCi0JKHJlcGxhY2UtaW4tc3RyaW5nIChpZiAoc3RyaW5nLW1hdGNoICJcMCIgdmFs
dWUpCi0JCQkgICAgICAgKHN1YnN0cmluZyB2YWx1ZSAwIChtYXRjaC1iZWdpbm5pbmcgMCkpCi0J
CQkgICAgIHZhbHVlKQorICAgICAgKGxldCogKCh2YWx1ZSAoZGVjb2RlLWNvZGluZy1zdHJpbmcg
dmFsdWUgJ21zd2luZG93cy11bmljb2RlKSkKKyAgICAgICAgICAgICAocG9zaXRpb24gKHBvc2l0
aW9uID9ceDAwIHZhbHVlKSkpCisJKHJlcGxhY2UtaW4tc3RyaW5nIChzdWJzZXEgdmFsdWUgMCBw
b3NpdGlvbikKIAkJCSAgICJcXChcclxuXFx8XG5cclxcKSIgIlxuIiB0KSkpKQogCiAoZGVmdW4g
c2VsZWN0LWNvbnZlcnQtdG8tY2YtdGV4dCAoc2VsZWN0aW9uIHR5cGUgdmFsdWUpCmRpZmYgLXIg
MzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL3NldHVwLXBhdGhzLmVsCi0tLSBhL2xp
c3Avc2V0dXAtcGF0aHMuZWwJVHVlIE1hciAzMSAxODo0MjoyMSAyMDE1ICswMTAwCisrKyBiL2xp
c3Avc2V0dXAtcGF0aHMuZWwJV2VkIEFwciAwMSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xMDcs
NyArMTA3LDcgQEAKIAogICAgOzsgc2VhcmNoaW5nIGZvciBhIHBhY2thZ2UgZGlyZWN0b3J5CiAg
ICAoYW5kCi0gICAgKHN0cmluZy1tYXRjaCAid2luMzIiIHN5c3RlbS1jb25maWd1cmF0aW9uKQor
ICAgIChzZWFyY2ggIndpbjMyIiBzeXN0ZW0tY29uZmlndXJhdGlvbikKICAgICAocGF0aHMtZmls
ZS1yZWFkYWJsZS1kaXJlY3RvcnktcCAocGF0aHMtY29uc3RydWN0LXBhdGggKGxpc3QgZGlyZWN0
b3J5CiAJCQkJCQkJCSAieGVtYWNzLXBhY2thZ2VzIikpKSkpKQogCmRpZmYgLXIgMzFkZDI3NWZh
NjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL3NvdW5kLmVsCi0tLSBhL2xpc3Avc291bmQuZWwJVHVl
IE1hciAzMSAxODo0MjoyMSAyMDE1ICswMTAwCisrKyBiL2xpc3Avc291bmQuZWwJV2VkIEFwciAw
MSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xNTksNyArMTU5LDcgQEAKIAkJICAgICAgKGlmIChm
aWxlLW5hbWUtYWJzb2x1dGUtcCBmaWxlbmFtZSkKIAkJCSAgKGxpc3QgKGZpbGUtbmFtZS1kaXJl
Y3RvcnkgZmlsZW5hbWUpKQogCQkJZGVmYXVsdC1zb3VuZC1kaXJlY3RvcnktbGlzdCkKLQkJICAg
ICAgKHNwbGl0LXN0cmluZyBzb3VuZC1leHRlbnNpb24tbGlzdCAiOiIpKSkKKwkJICAgICAgKHNw
bGl0LXN0cmluZy1ieS1jaGFyIHNvdW5kLWV4dGVuc2lvbi1saXN0ID86KSkpCiAJYnVmIGRhdGEp
CiAgICAgKHVubGVzcyBmaWxlCiAgICAgICAoZXJyb3IgIkNvdWxkbid0IGxvYWQgc291bmQgZmls
ZSAlcyIgZmlsZW5hbWUpKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlz
cC9zdGFydHVwLmVsCi0tLSBhL2xpc3Avc3RhcnR1cC5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIw
MTUgKzAxMDAKKysrIGIvbGlzcC9zdGFydHVwLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSAr
MDEwMApAQCAtMTMwMSw3ICsxMzAxLDcgQEAKICAgYCgKICAgICAgKGZhY2UgKGJsdWUgYm9sZCB1
bmRlcmxpbmUpCiAJICAgIlVzZWZ1bCBIZWxwLW1lbnUgZW50cmllczpcblxuIikKLSAgICAgLEAo
aWYgKHN0cmluZy1tYXRjaCAiYmV0YSIgZW1hY3MtdmVyc2lvbikKKyAgICAgLEAoaWYgKHNlYXJj
aCAiYmV0YSIgZW1hY3MtdmVyc2lvbikKIAkgICBgKChmYWNlIGJvbGQgIkJldGEgSW5mbzoiKQog
CSAgICAgKGZhY2UgKHJlZCBib2xkKQogCQkgICAiICAgICAgICAgICAgICAgICAgICAgIFRoaXMg
aXMgYW4gRXhwZXJpbWVudGFsIHZlcnNpb24gb2YgWEVtYWNzLlxuIikpCkBAIC0xMzQ5LDcgKzEz
NDksNyBAQAogKGRlZnVuIHNwbGFzaC1zY3JlZW4tdHR5LWJvZHkgKCkKICAgYCgKICAgICAoZmFj
ZSBpdGFsaWMgIltgQy0nIG1lYW5zIHRoZSBjb250cm9sIGtleSwgYE0tJyBtZWFucyB0aGUgbWV0
YSBrZXldXG5cbiIpCi0gICAgICxAKGlmIChzdHJpbmctbWF0Y2ggImJldGEiIGVtYWNzLXZlcnNp
b24pCisgICAgICxAKGlmIChzZWFyY2ggImJldGEiIGVtYWNzLXZlcnNpb24pCiAJICAgYCgoa2V5
IGRlc2NyaWJlLWJldGEpCiAJICAgICAiOiAiIChmYWNlIChyZWQgYm9sZCkKIAkJCSJUaGlzIGlz
IGFuIEV4cGVyaW1lbnRhbCB2ZXJzaW9uIG9mIFhFbWFjcy5cbiIpKQpkaWZmIC1yIDMxZGQyNzVm
YTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC92ZXJzaW9uLmVsCi0tLSBhL2xpc3AvdmVyc2lvbi5l
bAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC92ZXJzaW9uLmVsCVdl
ZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtODksNyArODksNyBAQAogICAgIChsZXQg
KCh2ZXJzaW9uLXN0cmluZwogCSAgIChmb3JtYXQKIAkgICAgIlhFbWFjcyAlcyAlcyglcyVzKSBv
ZiAlcyAlcyBvbiAlcyIKLQkgICAgKHN1YnN0cmluZyBlbWFjcy12ZXJzaW9uIDAgKHN0cmluZy1t
YXRjaCAiIFhFbWFjcyIgZW1hY3MtdmVyc2lvbikpCisJICAgIChzdWJzZXEgZW1hY3MtdmVyc2lv
biAwIChzZWFyY2ggIiBYRW1hY3MiIGVtYWNzLXZlcnNpb24pKQogICAgICAgICAgICAgIltMdWNp
ZF0gIgogCSAgICBzeXN0ZW0tY29uZmlndXJhdGlvbgogCSAgICAoY29uZCAoKG9yIChhbmQgKGZi
b3VuZHAgJ2ZlYXR1cmVwKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlz
cC94LWZvbnQtbWVudS5lbAotLS0gYS9saXNwL3gtZm9udC1tZW51LmVsCVR1ZSBNYXIgMzEgMTg6
NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL3gtZm9udC1tZW51LmVsCVdlZCBBcHIgMDEgMTQ6
Mjg6MjAgMjAxNSArMDEwMApAQCAtODUsMTcgKzg1LDE3IEBACiAgIDs7ICMjIyMgSXMgdGhpcyB1
c2VmdWwgaWYgbm90IGNvbmZpZ3VyZSdkIC0td2l0aC14ZnM/CiAgIDs7ICMjIyMgVGhpcyBpcyBk
dXBsaWNhdGVkIGluIGd0ay1mb250LW1lbnUuZWwuCiAgICJGaWx0ZXIgdGhlIG91dHB1dCBvZiBg
Zm9udC1pbnN0YW5jZS10cnVlbmFtZScgdG8gZGVhbCB3aXRoIGZvbnQgc2V0cy4iCi0gIChpZiAo
c3RyaW5nLW1hdGNoICIsIiAoZm9udC1pbnN0YW5jZS10cnVlbmFtZSBmbikpCi0gICAgICAobGV0
ICgoZnBudCAobnRoIDggKHNwbGl0LXN0cmluZyAoZm9udC1pbnN0YW5jZS1uYW1lIGZuKSAiLSIp
KSkKLQkgICAgKGZsaXN0IChzcGxpdC1zdHJpbmcgKGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUgZm4p
ICIsIikpCi0JICAgIHJldCkKLQkod2hpbGUgZmxpc3QKLQkgIChpZiAoc3RyaW5nLWVxdWFsIGZw
bnQgKG50aCA4IChzcGxpdC1zdHJpbmcgKGNhciBmbGlzdCkgIi0iKSkpCi0JICAgICAgKHByb2du
IChzZXRxIHJldCAoY2FyIGZsaXN0KSkgKHNldHEgZmxpc3QgbmlsKSkKLQkgICAgKHNldHEgZmxp
c3QgKGNkciBmbGlzdCkpCi0JICAgICkpCi0JcmV0KQotICAgIChmb250LWluc3RhbmNlLXRydWVu
YW1lIGZuKSkpCisgIChsZXQgKChmb250LWluc3RhbmNlLXRydWVuYW1lIChmb250LWluc3RhbmNl
LXRydWVuYW1lIGZuKSkpCisgICAgKGlmIChmaW5kID8sIGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUp
CisgICAgICAgIChsZXQgKChmcG50IChudGggOCAoc3BsaXQtc3RyaW5nLWJ5LWNoYXIgKGZvbnQt
aW5zdGFuY2UtbmFtZSBmbikgPy0pKSkKKyAgICAgICAgICAgICAgKGZsaXN0IChzcGxpdC1zdHJp
bmctYnktY2hhciBmb250LWluc3RhbmNlLXRydWVuYW1lID8sKSkKKyAgICAgICAgICAgICAgcmV0
KQorICAgICAgICAgICh3aGlsZSBmbGlzdAorICAgICAgICAgICAgKGlmIChlcXVhbCBmcG50IChu
dGggOCAoc3BsaXQtc3RyaW5nLWJ5LWNoYXIgKGNhciBmbGlzdCkgPy0pKSkKKyAgICAgICAgICAg
ICAgICAocHJvZ24gKHNldHEgcmV0IChjYXIgZmxpc3QpKSAoc2V0cSBmbGlzdCBuaWwpKQorICAg
ICAgICAgICAgICAoc2V0cSBmbGlzdCAoY2RyIGZsaXN0KSkpKQorICAgICAgICAgIHJldCkKKyAg
ICAgIGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUpKSkKIAogKGRlZnZhciB4LWZvbnQtcmVnZXhwLWFz
Y2lpIG5pbAogICAiVGhpcyBpcyB1c2VkIHRvIGZpbHRlciBvdXQgZm9udCBmYW1pbGllcyB0aGF0
IGNhbid0IGRpc3BsYXkgQVNDSUkgdGV4dC4KQEAgLTE4Nyw3ICsxODcsNyBAQAogICAgIChkb2xp
c3QgKG5hbWUgKGNvbmQgKChudWxsIGRlYnVnKQk7IGRlYnVnZ2luZyBrbHVkZ2UKIAkJCSAoZm9u
dC1saXN0ICIqLSotKi0qLSotKi0qLSotKi0qLSotKi0qLSoiIGRldmljZQogCQkJCSAgICAgZm9u
dC1tZW51LW1heC1udW1iZXIpKQotCQkJKChzdHJpbmdwIGRlYnVnKSAoc3BsaXQtc3RyaW5nIGRl
YnVnICJcbiIpKQorCQkJKChzdHJpbmdwIGRlYnVnKSAoc3BsaXQtc3RyaW5nLWJ5LWNoYXIgZGVi
dWcgP1xuKSkKIAkJCSh0IGRlYnVnKSkpCiAgICAgICAod2hlbiAoYW5kIChzdHJpbmctbWF0Y2gg
eC1mb250LXJlZ2V4cC1hc2NpaSBuYW1lKQogCQkgKHN0cmluZy1tYXRjaCB4LWZvbnQtcmVnZXhw
IG5hbWUpKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC94LWluaXQu
ZWwKLS0tIGEvbGlzcC94LWluaXQuZWwJVHVlIE1hciAzMSAxODo0MjoyMSAyMDE1ICswMTAwCisr
KyBiL2xpc3AveC1pbml0LmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtMTQ3
LDcgKzE0Nyw3IEBACiAgIDs7IEFQSXMgdG8gaWRlbnRpZnkgdGhlIGtleWJvYXJkIC0gdGhvc2Ug
b25seSB3b3JrIG9uIHRoZSBjb25zb2xlLgogICA7OyB4a2V5Y2FwcyBoYXMgdGhlIHNhbWUgcHJv
YmxlbSB3aGVuIHJ1bm5pbmcgYHJlbW90ZWx5Jy4KICAgKGxldCAoKHZlbmRvciAoeC1zZXJ2ZXIt
dmVuZG9yIGRldmljZSkpKQotICAgIChjb25kICgob3IgKHN0cmluZy1tYXRjaCAiU3VuIE1pY3Jv
c3lzdGVtcyIgdmVuZG9yKQorICAgIChjb25kICgob3IgKHNlYXJjaCAiU3VuIE1pY3Jvc3lzdGVt
cyIgdmVuZG9yKQogCSAgICAgICA7OyBNSVQgbG9zaW5nbHkgZmFpbHMgdG8gdGVsbCB1cyB3aGF0
IGhhcmR3YXJlIHRoZSBYIHNlcnZlcgogCSAgICAgICA7OyBpcyBtYW5hZ2luZywgc28gYXNzdW1l
IGFsbCBNSVQgZGlzcGxheXMgYXJlIFN1bnMuLi4gIEhBIEhBIQogCSAgICAgICAoc3RyaW5nLWVx
dWFsICJNSVQgWCBDb25zb3J0aXVtIiB2ZW5kb3IpCgoKLS0gCuKAmFRyYW1hZG9sIGlzIGZ1cnRo
ZXIgZmVkIHRvIGNhdHRsZSBb4oCmXSB3aGVuIHdvcmtpbmcgdGhlbSBb4oCmXSAoYXMgZHJhZnQK
YW5pbWFscykgc28gdGhhdCB0aGUgYW5pbWFscyBkbyBub3QgZ2V0IHRpcmVkIHF1aWNrbHkuIOKA
puKAmQoJ4oCUIEFuZ2V3YW5kdGUgQ2hlbWllLCBTZXB0IDIwMTQsIGRlc2NyaWJpbmcgdGhlIHNv
Y2lhbCBjb250ZXh0IG9mCgkoc3ludGhldGljKSB0cmFtYWRvbCBoYXZpbmcgYmVlbiBmb3VuZCBp
biBDYW1lcm9vbiB0cmVlIHJvb3RzLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KWEVtYWNzLVBhdGNoZXMgbWFpbGluZyBsaXN0ClhFbWFjcy1QYXRjaGVz
QHhlbWFjcy5vcmcKaHR0cDovL2xpc3RzLnhlbWFjcy5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW1h
Y3MtcGF0Y2hlcwo=