<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>71961</bug_id>
          
          <creation_ts>2011-11-09 15:29:26 -0800</creation_ts>
          <short_desc>Make the Port object have a Host</short_desc>
          <delta_ts>2011-11-09 17:55:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>71983</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>499412</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-09 15:29:26 -0800</bug_when>
    <thetext>Make the Port object have a Host</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499416</commentid>
    <comment_count>1</comment_count>
      <attachid>114379</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-09 15:34:07 -0800</bug_when>
    <thetext>Created attachment 114379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499418</commentid>
    <comment_count>2</comment_count>
      <attachid>114379</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-09 15:38:15 -0800</bug_when>
    <thetext>Comment on attachment 114379
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=114379&amp;action=review

&gt; Tools/Scripts/webkitpy/layout_tests/port/base.py:90
&gt; +                 port_name=None, options=None,

Separate lines?

&gt; Tools/Scripts/webkitpy/layout_tests/port/factory.py:126
&gt; +        host = host or self._host

I would have put this at the top of the function, but whatever.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499420</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-09 15:41:00 -0800</bug_when>
    <thetext>Committed r99773: &lt;http://trac.webkit.org/changeset/99773&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114379</attachid>
            <date>2011-11-09 15:34:07 -0800</date>
            <delta_ts>2011-11-09 15:38:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71961-20111109153405.patch</filename>
            <type>text/plain</type>
            <size>86557</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk3NTYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmOGRjZTY2YTE0YTE4NzFjNDdlNTFkOGJkZTM4OTllOWJl
OTI3NWExLi44NTFiOGY4YzMwMzA2MmEwN2I1ZjI1MDYwNDhmMzY1MWFiYjJkNzQ5IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkg
QEAKKzIwMTEtMTEtMDkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IE1ha2UgdGhlIFBvcnQgb2JqZWN0IGhhdmUgYSBIb3N0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaGFzIGJlZW4gYSBsb25nIHRpbWUgY29taW5n
LgorICAgICAgICBOb3cgdGhhdCBQb3J0IGhhcyBhIEhvc3Qgb2JqZWN0LCBpdCdzIHZlcnkgZWFz
eQorICAgICAgICB0byB3cml0ZSB1bml0dGVzdHMgd2hpY2ggdXNlIGEgcHJvcGVybHkgbW9ja2Vk
IFBvcnQuCisgICAgICAgIFNvb24gd2Ugd2lsbCByZW1vdmUgdGhlIGV4ZWN1dGl2ZSwgZmlsZXN5
c3RlbSBhbmQgdXNlcgorICAgICAgICBtZW1iZXJzIG9mIFBvcnQgYW5kIGdldCBldmVyeXRoaW5n
IHRocm91Z2ggdGhlIEhvc3QuCisKKyAgICAgICAgTm90ZSBob3cgaW4gbWFueSBjYWxsc2l0ZXMg
d2UncmUgYWN0dWFsbHkgcmVtb3ZpbmcKKyAgICAgICAgZXhwbGljaXQgbW9ja3MsIHNpbmNlIHdl
J3JlIG5vdyBhbHdheXMgZ29pbmcgdG8gZ2V0IHRoZQorICAgICAgICBjb3JyZWN0IEV4ZWN1dGl2
ZS9Vc2VyL0ZpbGVTeXN0ZW0gZnJvbSB0aGUKKyAgICAgICAgSG9zdCBhbmQgY2FsbHNpdGVzIGRv
bid0IG5lZWQgdG8gYmUgY2FyZWZ1bCB0byBwYXNzIGVhY2ggb25lLgorCisgICAgICAgIFRoaXMg
aXMgcHJlcC13b3JrIGZvciBhZGRpbmcgYSBuZXcgRW52aXJvbm1lbnQgbWVtYmVyIHRvCisgICAg
ICAgIEhvc3QgYW5kIG5lZWRpbmcgdG8gYmUgYWJsZSB0byBhY2Nlc3MgdGhlIEVudmlyb25tZW50
CisgICAgICAgIG1lbWJlciBmcm9tIFBvcnQgZnVuY3Rpb25zIHcvbyBuZWVkaW5nIHRvIHBhc3Mg
YW4gRW52aXJvbm1lbnQKKyAgICAgICAgb2JqZWN0IChvciBhcHByb3ByaWF0ZSBNb2NrKSBldmVy
eSBwbGFjZSB3ZSBjcmVhdGUgYSBQb3J0IG9iamVjdC4KKyAgICAgICAgTm93IHRoYXQgd2UgaGF2
ZSBhIHNpbmdsZSBIb3N0IG9iamVjdCB0byByZWFjaCBvdXQgdGhyb3VnaCwgaXRzCisgICAgICAg
IHNpbXBsZSB0byBhZGQgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IChsaWtlIEVudmlyb25tZW50
KSB3aGlsZQorICAgICAgICBrZWVwaW5nIG91ciB1bml0dGVzdHMgcHJvcGVybHkgbW9ja2VkLgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdC5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvY3JlZGVudGlhbHNfdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlcl91
bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9tYW5hZ2VyX3dvcmtlcl9icm9rZXIucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9hcHBsZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHVfdW5pdHRlc3Qu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV9saW51eC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3Qu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV93aW4ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV93aW5fdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9kcnlydW4ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9lZmwucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9mYWN0b3J5LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvZ29vZ2xlX2Nocm9tZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2dvb2dsZV9jaHJvbWVfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWNfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0X3VuaXR0ZXN0LnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0
Y2FzZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXRfdW5p
dHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90
ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2Vi
a2l0X3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvd2luLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2luX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvdG9fYmVfbW92ZWQvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNf
dW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvcmVi
YXNlbGluZXNlcnZlci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5OgorCiAyMDExLTExLTA5ICBQaGlsaXBwZSBO
b3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtEUlRdIHdpbmRv
dyBpbnRlcm5hbHMgb2JqZWN0IGlzIG5vdCByZXNldCBhZnRlciBlYWNoIHRlc3QKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3QucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9ob3N0LnB5CmluZGV4IDNkOGJmMzgwNzI3NGE0MGU5MzA5YjU3YTQ1
YWRhZWQ4N2I3YTQ3ZjkuLmNhZGE0ZjlmYTI3OTI4OWQ2YWY1OWMzMTFiNjI3MzVlZmRhYTU1MmIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2hvc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vaG9zdC5weQpAQCAtNjAsNiArNjAsNyBAQCBj
bGFzcyBIb3N0KG9iamVjdCk6CiAgICAgICAgICMgRklYTUU6IFVuZm9ydHVuYXRlbHkgUG9ydCBv
YmplY3RzIGFyZSBjdXJyZW50bHkgdGhlIGNlbnRyYWwtZGlzcGF0Y2ggb2JqZWN0cyBvZiB0aGUg
TlJXVCB3b3JsZC4KICAgICAgICAgIyBJbiBvcmRlciB0byBpbnN0YW50aWF0ZSBhIHBvcnQgY29y
cmVjdGx5LCB3ZSBoYXZlIHRvIHBhc3MgaXQgYXQgbGVhc3QgYW4gZXhlY3V0aXZlLCB1c2VyLCBz
Y20sIGFuZCBmaWxlc3lzdGVtCiAgICAgICAgICMgc28gZm9yIG5vdyB3ZSBqdXN0IHBhc3MgYWxv
bmcgdGhlIHdob2xlIEhvc3Qgb2JqZWN0LgorICAgICAgICAjIEZJWE1FOiBQb3J0RmFjdG9yeSBk
b2Vzbid0IGJlbG9uZyBvbiB0aGlzIEhvc3Qgb2JqZWN0IGlmIFBvcnQgaXMgZ29pbmcgdG8gaGF2
ZSBhIEhvc3QgKGNpcmN1bGFyIGRlcGVuZGVuY3kpLgogICAgICAgICBzZWxmLnBvcnRfZmFjdG9y
eSA9IFBvcnRGYWN0b3J5KHNlbGYpCiAKICAgICBkZWYgX2luaXRpYWxpemVfc2NtKHNlbGYsIHBh
dGNoX2RpcmVjdG9yaWVzPU5vbmUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2NyZWRlbnRpYWxzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vbmV0L2NyZWRlbnRpYWxzX3VuaXR0ZXN0LnB5CmluZGV4IDAwNzVkZDk2MDFh
MmM2M2Y4YmY5ZmQzMTYxNzQzMzMwYzRmNGQ5NWMuLjU5MDQ4NTkxZmE2OTAzMzM5MDc1NzM2MDgx
MmQ3YTc4MGQxZmY1OTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9jcmVkZW50aWFsc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvY3JlZGVudGlhbHNfdW5pdHRlc3QucHkKQEAgLTM3LDcgKzM3LDYgQEAgZnJv
bSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1
cmUKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCiBmcm9tIHdlYmtp
dHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUKLWZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS51c2VyX21vY2sgaW1wb3J0IE1vY2tVc2VyCiAKIAogIyBGSVhNRTog
T3RoZXIgdW5pdCB0ZXN0cyBwcm9iYWJseSB3YW50IHRoaXMgY2xhc3MuCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3Vu
aXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxl
cnMvbWFuYWdlcl91bml0dGVzdC5weQppbmRleCBlMWVlZDA4OGMxODU2NDIzNGE3ZjNiMDFhODU3
YTU1ZWNhNzM5ZGNhLi5iMTFjYmQ4ZTcwZDExOGI2MWQ0YjUxM2RiOTMxM2MxZmE5MmNkYjVlIDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9tYW5hZ2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfdW5pdHRlc3QucHkKQEAgLTQ3LDcgKzQ3LDYgQEAg
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnJlc3VsdF9zdW1tYXJ5IGltcG9ydCBS
ZXN1bHRTdW1tYXJ5CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy52aWV3cyBpbXBvcnQgcHJp
bnRpbmcKIGZyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMKIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBvcnQgTW9ja0V4ZWN1
dGl2ZQotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXJfbW9jayBpbXBvcnQgTW9ja1Vz
ZXIKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIAogCkBA
IC0xODgsNyArMTg3LDcgQEAgY2xhc3MgTWFuYWdlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
CiAgICAgICAgIG9wdGlvbnMsIGFyZ3MgPSBydW5fd2Via2l0X3Rlc3RzLnBhcnNlX2FyZ3MoWyct
LXBsYXRmb3JtPXRlc3QnLCAnLS1wcmludD1ub3RoaW5nJywgJ2h0dHAvdGVzdHMvcGFzc2VzJywg
J3Bhc3NlcyddKQogICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQotICAgICAgICBwb3J0ID0gaG9z
dC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZT1vcHRpb25zLnBsYXRmb3JtLCBvcHRpb25zPW9w
dGlvbnMsIHVzZXI9TW9ja1VzZXIoKSwgZXhlY3V0aXZlPU1vY2tFeGVjdXRpdmUoKSkKKyAgICAg
ICAgcG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWU9b3B0aW9ucy5wbGF0Zm9y
bSwgb3B0aW9ucz1vcHRpb25zKQogICAgICAgICBydW5fd2Via2l0X3Rlc3RzLl9zZXRfdXBfZGVy
aXZlZF9vcHRpb25zKHBvcnQsIG9wdGlvbnMpCiAgICAgICAgIHByaW50ZXIgPSBwcmludGluZy5Q
cmludGVyKHBvcnQsIG9wdGlvbnMsIFN0cmluZ0lPLlN0cmluZ0lPKCksIFN0cmluZ0lPLlN0cmlu
Z0lPKCksIGNvbmZpZ3VyZV9sb2dnaW5nPVRydWUpCiAgICAgICAgIG1hbmFnZXIgPSBMb2NrQ2hl
Y2tpbmdNYW5hZ2VyKHBvcnQsIG9wdGlvbnMsIHByaW50ZXIpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyX3dvcmtlcl9i
cm9rZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9tYW5hZ2VyX3dvcmtlcl9icm9rZXIucHkKaW5kZXggZThhNTExNGFiZTMxNDU0YWRmYjFmM2Y2
MzgxMDBjNDNmYzkwZjQzYS4uMWUzYTlhMzAxZjNmY2Q4MjZlZmM5ZDZmYjcwNjZmZmU0OTdhYzM0
YSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvbWFuYWdlcl93b3JrZXJfYnJva2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXJfd29ya2VyX2Jyb2tlci5weQpAQCAt
NTIsNyArNTIsNyBAQCB0cnk6CiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgbXVsdGlwcm9jZXNz
aW5nID0gTm9uZQogCi1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgaW1w
b3J0IFBvcnRGYWN0b3J5Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0ICAj
IEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgbmVlZGVkIQogZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMuY29udHJvbGxlcnMgaW1wb3J0IG1lc3NhZ2VfYnJva2VyCiBmcm9tIHdlYmtpdHB5Lmxh
eW91dF90ZXN0cy52aWV3cyBpbXBvcnQgcHJpbnRpbmcKIApAQCAtMjUyLDggKzI1MiwxMCBAQCBp
ZiBtdWx0aXByb2Nlc3Npbmc6CiAKICAgICAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgICAg
IG9wdGlvbnMgPSBzZWxmLl9vcHRpb25zCi0gICAgICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3Vs
ZCBnZXQgdGhlIFBvcnRGYWN0b3J5IGZyb20gdGhlIEhvc3QuCi0gICAgICAgICAgICBwb3J0X29i
aiA9IFBvcnRGYWN0b3J5KCkuZ2V0KHNlbGYuX3BsYXRmb3JtX25hbWUsIG9wdGlvbnMpCisgICAg
ICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBnZXQgdGhlIEhvc3QgZnJvbSB0aGUgb3duZXIg
b2YgdGhpcyBvYmplY3QKKyAgICAgICAgICAgICMgc28gdGhpcyBmdW5jdGlvbiBjYW4gYmUgcHJv
cGVybHkgbW9ja2VkIQorICAgICAgICAgICAgaG9zdCA9IEhvc3QoKQorICAgICAgICAgICAgcG9y
dF9vYmogPSBob3N0LnBvcnRfZmFjdG9yeS5nZXQoc2VsZi5fcGxhdGZvcm1fbmFtZSwgb3B0aW9u
cykKIAogICAgICAgICAgICAgIyBUaGUgdW5peCBtdWx0aXByb2Nlc3NpbmcgaW1wbGVtZW50YXRp
b24gY2xvbmVzIHRoZQogICAgICAgICAgICAgIyBsb2cgaGFuZGxlciBjb25maWd1cmF0aW9uIGlu
dG8gdGhlIGNoaWxkIHByb2Nlc3NlcywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYXBwbGUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9wb3J0L2FwcGxlLnB5CmluZGV4IDk0NzcxODRmMTVmYTYwOGFkYzdlMmFhZDg5
ZWViYTdiNzVlNTc5MTYuLmVmNjAzMzNhYThiYTgyMTZjZTUyYjEzZjA0MzQ5NGU5MTEwZjMzYmMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYXBw
bGUucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9hcHBs
ZS5weQpAQCAtNTYsOSArNTYsOSBAQCBjbGFzcyBBcHBsZVBvcnQoV2ViS2l0UG9ydCk6CiAgICAg
ICAgICMgaW5zdGVhZCBvZiB0aGUgaW5kaXZpZHVhbCBwb3J0IGNvbnN0cnVjdG9ycy4KICAgICAg
ICAgcmV0dXJuIHBvcnRfbmFtZVtsZW4oc2VsZi5wb3J0X25hbWUgKyAnLScpOl0KIAotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgb3NfdmVyc2lvbl9zdHJpbmc9Tm9uZSwg
Kiprd2FyZ3MpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0X25hbWU9Tm9uZSwg
b3NfdmVyc2lvbl9zdHJpbmc9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICBwb3J0X25hbWUgPSBw
b3J0X25hbWUgb3Igc2VsZi5wb3J0X25hbWUKLSAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhz
ZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKKyAgICAgICAgV2ViS2l0UG9ydC5f
X2luaXRfXyhzZWxmLCBob3N0LCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKIAogICAg
ICAgICAjIEZJWE1FOiBUaGlzIHNvcnQgb2YgcGFyc2luZyBiZWxvbmdzIGluIGZhY3RvcnkucHkh
CiAgICAgICAgIGlmIHBvcnRfbmFtZSA9PSAnJXMtd2syJyAlIHNlbGYucG9ydF9uYW1lOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5CmluZGV4
IDJlNDlhNjYwNzEyMzI2MDZjZGYyYmQ1YWM0YmU4NDZkMzViYzE5ZDUuLmU3NDRjZDBhMWMyYTMy
OGY1Y2ZkMjA2MTljNTgyMzA4YjhiNmM2MTIgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTQ3LDExICs0Nyw5IEBAIHRyeToKIGV4
Y2VwdCBJbXBvcnRFcnJvcjoKICAgICBtdWx0aXByb2Nlc3NpbmcgPSBOb25lCiAKLWZyb20gd2Vi
a2l0cHkuY29tbW9uIGltcG9ydCBzeXN0ZW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBp
bXBvcnQgbG9ndXRpbHMKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgcGF0aAot
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlLCBT
Y3JpcHRFcnJvcgotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXIgaW1wb3J0IFVzZXIK
K2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IFNjcmlwdEVycm9y
CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cyBpbXBvcnQgcmVhZF9jaGVja3N1bV9mcm9tX3Bu
ZwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfY29uZmlndXJhdGlvbiBp
bXBvcnQgVGVzdENvbmZpZ3VyYXRpb24KIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQg
aW1wb3J0IGNvbmZpZyBhcyBwb3J0X2NvbmZpZwpAQCAtNjcsNyArNjUsNyBAQCBfbG9nID0gbG9n
dXRpbHMuZ2V0X2xvZ2dlcihfX2ZpbGVfXykKIGNsYXNzIER1bW15T3B0aW9ucyhvYmplY3QpOgog
ICAgICIiIkZha2UgaW1wbGVtZW50YXRpb24gb2Ygb3B0cGFyc2UuVmFsdWVzLiBDbG9uZWQgZnJv
bSB3ZWJraXRweS50b29sLm1vY2t0b29sLk1vY2tPcHRpb25zLiIiIgogCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsICoqa3dhcmdzKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dh
cmdzKToKICAgICAgICAgIyBUaGUgY2FsbGVyIGNhbiBzZXQgb3B0aW9uIHZhbHVlcyB1c2luZyBr
ZXl3b3JkIGFyZ3VtZW50cy4gV2UgZG9uJ3QKICAgICAgICAgIyBzZXQgYW55IHZhbHVlcyBieSBk
ZWZhdWx0IGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyBob3cgdGhpcwogICAgICAgICAjIG9iamVjdCB3
aWxsIGJlIHVzZWQuIEdlbmVyYWxseSBzcGVha2luZyB1bml0IHRlc3RzIHNob3VsZApAQCAtODgs
NyArODYsOCBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAKICAgICBBTExfQlVJTERfVFlQRVMgPSAo
J2RlYnVnJywgJ3JlbGVhc2UnKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1O
b25lLCBvcHRpb25zPU5vbmUsCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsCisgICAgICAg
ICAgICAgICAgIHBvcnRfbmFtZT1Ob25lLCBvcHRpb25zPU5vbmUsCiAgICAgICAgICAgICAgICAg
IGV4ZWN1dGl2ZT1Ob25lLAogICAgICAgICAgICAgICAgICB1c2VyPU5vbmUsCiAgICAgICAgICAg
ICAgICAgIGZpbGVzeXN0ZW09Tm9uZSwKQEAgLTEwNyw5ICsxMDYsMTIgQEAgY2xhc3MgUG9ydChv
YmplY3QpOgogICAgICAgICAjIG9wdGlvbnMgZGVmaW5lZCBvbiBpdC4KICAgICAgICAgc2VsZi5v
cHRpb25zID0gb3B0aW9ucyBvciBEdW1teU9wdGlvbnMoKQogCi0gICAgICAgIHNlbGYuZXhlY3V0
aXZlID0gZXhlY3V0aXZlIG9yIEV4ZWN1dGl2ZSgpCi0gICAgICAgIHNlbGYudXNlciA9IHVzZXIg
b3IgVXNlcigpCi0gICAgICAgIHNlbGYuZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0gb3Igc3lzdGVt
LmZpbGVzeXN0ZW0uRmlsZVN5c3RlbSgpCisgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKKworICAg
ICAgICAjIEZJWE1FOiBSZW1vdmUgdGhlcyBhY2Nlc3NvcnMgb25jZSBhbGwgY2FsbGVycyBoYXZl
IG1vdmVkIHRvIHVzaW5nIHNlbGYuaG9zdC4KKyAgICAgICAgc2VsZi5leGVjdXRpdmUgPSBleGVj
dXRpdmUgb3Igc2VsZi5ob3N0LmV4ZWN1dGl2ZQorICAgICAgICBzZWxmLnVzZXIgPSB1c2VyIG9y
IHNlbGYuaG9zdC51c2VyCisgICAgICAgIHNlbGYuZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0gb3Ig
c2VsZi5ob3N0LmZpbGVzeXN0ZW0KICAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcgb3IgcG9y
dF9jb25maWcuQ29uZmlnKHNlbGYuZXhlY3V0aXZlLCBzZWxmLmZpbGVzeXN0ZW0pCiAKICAgICAg
ICAgIyBGSVhNRTogUmVtb3ZlIGFsbCBvZiB0aGUgb2xkICJwcm90ZWN0ZWQiIHZlcnNpb25zIHdo
ZW4gd2UgY2FuLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlX3VuaXR0ZXN0LnB5CmluZGV4IDA5MjhiNmU2Y2FjZWY1Mjg0NGU1ZTNl
YWFiYWZhOGVjNjcyZTU1M2QuLmNhYjA1ZmQzNWRkN2Q0YzQzYzQ3NjA5MjQ2MGM4ZGZjY2U2N2Zm
YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
YmFzZV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Jhc2VfdW5pdHRlc3QucHkKQEAgLTM5LDggKzM5LDcgQEAgZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLnBhdGggaW1wb3J0IGFic3BhdGhfdG9fdXJpCiBmcm9tIHdlYmtpdHB5LnRo
aXJkcGFydHkubW9jayBpbXBvcnQgTW9jawogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGlt
cG9ydCBNb2NrT3B0aW9ucwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9t
b2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0udXNl
cl9tb2NrIGltcG9ydCBNb2NrVXNlcgotCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sg
aW1wb3J0IE1vY2tIb3N0CiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0
IFBvcnQsIERyaXZlciwgRHJpdmVyT3V0cHV0CiAKQEAgLTUwLDkgKzQ5LDcgQEAgaW1wb3J0IGNv
bmZpZ19tb2NrCiAKIGNsYXNzIFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYg
bWFrZV9wb3J0KHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIGt3YXJncy5zZXRkZWZh
dWx0KCdmaWxlc3lzdGVtJywgTW9ja0ZpbGVTeXN0ZW0oKSkKLSAgICAgICAga3dhcmdzLnNldGRl
ZmF1bHQoJ3VzZXInLCBNb2NrVXNlcigpKQotICAgICAgICBrd2FyZ3Muc2V0ZGVmYXVsdCgnZXhl
Y3V0aXZlJywgTW9ja0V4ZWN1dGl2ZSgpKQorICAgICAgICBrd2FyZ3Muc2V0ZGVmYXVsdCgnaG9z
dCcsIE1vY2tIb3N0KCkpCiAgICAgICAgIHJldHVybiBQb3J0KCphcmdzLCAqKmt3YXJncykKIAog
ICAgIGRlZiB0ZXN0X2Zvcm1hdF93ZGlmZl9vdXRwdXRfYXNfaHRtbChzZWxmKToKQEAgLTI4NCw3
ICsyODEsNyBAQCBjbGFzcyBWaXJ0dWFsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG1ldGhvZCwgKmFyZ3MsICoq
a3dhcmdzKQogCiAgICAgZGVmIHRlc3RfdmlydHVhbF9tZXRob2RzKHNlbGYpOgotICAgICAgICBw
b3J0ID0gUG9ydCgpCisgICAgICAgIHBvcnQgPSBQb3J0KE1vY2tIb3N0KCkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0VmlydHVhbChwb3J0LmJhc2VsaW5lX3BhdGgpCiAgICAgICAgIHNlbGYuYXNzZXJ0
VmlydHVhbChwb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKQogICAgICAgICBzZWxmLmFzc2VydFZp
cnR1YWwocG9ydC5jaGVja19idWlsZCwgTm9uZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IDgwZTQ3ZjA4ZGYyODZl
OWM0NmNhMTYwZGUyZWJmM2Y2N2Y1NjM2Y2YuLjE5ZDhlOWVkZjNiZGRkNzM0MzM5OTRlMDk3YWNk
Njk1MjhlMDI4ZjAgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bS5weQpAQCAtODgsOCArODgsOCBAQCBjbGFzcyBDaHJvbWl1bVBv
cnQoUG9ydCk6CiAgICAgICAgICdsaW51eCc6IFsnbHVjaWQnXSwKICAgICB9CiAKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBQb3J0Ll9faW5pdF9fKHNlbGYsICoq
a3dhcmdzKQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCAqKmt3YXJncyk6CisgICAgICAg
IFBvcnQuX19pbml0X18oc2VsZiwgaG9zdCwgKiprd2FyZ3MpCiAgICAgICAgICMgQWxsIHN1Yi1j
bGFzc2VzIG92ZXJyaWRlIHRoaXMsIGJ1dCB3ZSBuZWVkIGFuIGluaXRpYWwgdmFsdWUgZm9yIHRl
c3RpbmcuCiAgICAgICAgIHNlbGYuX3ZlcnNpb24gPSAneHAnCiAgICAgICAgIHNlbGYuX2Nocm9t
aXVtX2Jhc2VfZGlyID0gTm9uZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdS5weQppbmRleCBhNmFjNGI3MTllODIzNzc4
Nzk2NDY3MTE4OGI5OTZiZjBmNDY2ZDQzLi5lODA1ZTY4NzAyM2Y3NmJjMThiY2ZjYmVlODdmODI3
ODExYzk4YmMyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX2dwdS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdS5weQpAQCAtMzMsNyArMzMsNyBAQCBpbXBvcnQgY2hy
b21pdW1fd2luCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCB0ZXN0X2Zp
bGVzCiAKIAotZGVmIGdldChwbGF0Zm9ybT1Ob25lLCBwb3J0X25hbWU9J2Nocm9taXVtLWdwdScs
ICoqa3dhcmdzKToKK2RlZiBnZXQoaG9zdCwgcGxhdGZvcm09Tm9uZSwgcG9ydF9uYW1lPSdjaHJv
bWl1bS1ncHUnLCAqKmt3YXJncyk6CiAgICAgIiIiU29tZSB0ZXN0cyBoYXZlIHNsaWdodGx5IGRp
ZmZlcmVudCByZXN1bHRzIHdoZW4gcnVuIHdoaWxlIHVzaW5nCiAgICAgaGFyZHdhcmUgYWNjZWxl
cmF0aW9uLiAgSW4gdGhvc2UgY2FzZXMsIHdlIHByZXBlbmQgYW4gYWRkaXRpb25hbCBkaXJlY3Rv
cnkKICAgICB0byB0aGUgYmFzZWxpbmUgcGF0aHMuIiIiCkBAIC00OSwxMyArNDksMTMgQEAgZGVm
IGdldChwbGF0Zm9ybT1Ob25lLCBwb3J0X25hbWU9J2Nocm9taXVtLWdwdScsICoqa3dhcmdzKToK
ICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vuc3VwcG9ydGVkIHBsYXRm
b3JtOiAlcycgJSBwbGF0Zm9ybSkKIAogICAgIGlmIHBvcnRfbmFtZS5zdGFydHN3aXRoKCdjaHJv
bWl1bS1ncHUtbGludXgnKToKLSAgICAgICAgcmV0dXJuIENocm9taXVtR3B1TGludXhQb3J0KHBv
cnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQorICAgICAgICByZXR1cm4gQ2hyb21pdW1HcHVM
aW51eFBvcnQoaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCiAgICAgaWYgcG9y
dF9uYW1lLnN0YXJ0c3dpdGgoJ2Nocm9taXVtLWdwdS1jZy1tYWMnKToKLSAgICAgICAgcmV0dXJu
IENocm9taXVtR3B1Q2dNYWNQb3J0KHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQorICAg
ICAgICByZXR1cm4gQ2hyb21pdW1HcHVDZ01hY1BvcnQoaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFt
ZSwgKiprd2FyZ3MpCiAgICAgaWYgcG9ydF9uYW1lLnN0YXJ0c3dpdGgoJ2Nocm9taXVtLWdwdS1t
YWMnKToKLSAgICAgICAgcmV0dXJuIENocm9taXVtR3B1TWFjUG9ydChwb3J0X25hbWU9cG9ydF9u
YW1lLCAqKmt3YXJncykKKyAgICAgICAgcmV0dXJuIENocm9taXVtR3B1TWFjUG9ydChob3N0LCBw
b3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKICAgICBpZiBwb3J0X25hbWUuc3RhcnRzd2l0
aCgnY2hyb21pdW0tZ3B1LXdpbicpOgotICAgICAgICByZXR1cm4gQ2hyb21pdW1HcHVXaW5Qb3J0
KHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQorICAgICAgICByZXR1cm4gQ2hyb21pdW1H
cHVXaW5Qb3J0KGhvc3QsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vuc3VwcG9ydGVkIHBvcnQ6ICVzJyAlIHBvcnRfbmFtZSkK
IAogCkBAIC05MCw4ICs5MCw4IEBAIGRlZiBfdGVzdHMocG9ydCwgcGF0aHMpOgogCiAKIGNsYXNz
IENocm9taXVtR3B1TGludXhQb3J0KGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPSdjaHJvbWl1bS1ncHUtbGludXgnLCAq
Kmt3YXJncyk6Ci0gICAgICAgIGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0Ll9faW5p
dF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBob3N0LCBwb3J0X25hbWU9J2Nocm9taXVtLWdwdS1saW51eCcsICoqa3dhcmdzKToK
KyAgICAgICAgY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQuX19pbml0X18oc2VsZiwg
aG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCiAgICAgICAgIF9zZXRfZ3B1X29w
dGlvbnMoc2VsZikKIAogICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKQEAgLTEw
NCw4ICsxMDQsOCBAQCBjbGFzcyBDaHJvbWl1bUdwdUxpbnV4UG9ydChjaHJvbWl1bV9saW51eC5D
aHJvbWl1bUxpbnV4UG9ydCk6CiAKIAogY2xhc3MgQ2hyb21pdW1HcHVDZ01hY1BvcnQoY2hyb21p
dW1fbWFjLkNocm9taXVtTWFjUG9ydCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFt
ZT0nY2hyb21pdW0tZ3B1LWNnLW1hYycsICoqa3dhcmdzKToKLSAgICAgICAgY2hyb21pdW1fbWFj
LkNocm9taXVtTWFjUG9ydC5fX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3
YXJncykKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lPSdjaHJvbWl1bS1n
cHUtY2ctbWFjJywgKiprd2FyZ3MpOgorICAgICAgICBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQ
b3J0Ll9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQog
ICAgICAgICBfc2V0X2dwdV9vcHRpb25zKHNlbGYsIGdyYXBoaWNzX3R5cGU9J2dwdS1jZycpCiAK
ICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CkBAIC0xMTcsOCArMTE3LDggQEAg
Y2xhc3MgQ2hyb21pdW1HcHVDZ01hY1BvcnQoY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydCk6
CiAKIAogY2xhc3MgQ2hyb21pdW1HcHVNYWNQb3J0KGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1Bv
cnQpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9J2Nocm9taXVtLWdwdS1tYWMn
LCAqKmt3YXJncyk6Ci0gICAgICAgIGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQuX19pbml0
X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGhvc3QsIHBvcnRfbmFtZT0nY2hyb21pdW0tZ3B1LW1hYycsICoqa3dhcmdzKToKKyAg
ICAgICAgY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydC5fX2luaXRfXyhzZWxmLCBob3N0LCBw
b3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKICAgICAgICAgX3NldF9ncHVfb3B0aW9ucyhz
ZWxmKQogCiAgICAgZGVmIGJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpOgpAQCAtMTMwLDggKzEz
MCw4IEBAIGNsYXNzIENocm9taXVtR3B1TWFjUG9ydChjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQ
b3J0KToKIAogCiBjbGFzcyBDaHJvbWl1bUdwdVdpblBvcnQoY2hyb21pdW1fd2luLkNocm9taXVt
V2luUG9ydCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT0nY2hyb21pdW0tZ3B1
LXdpbicsICoqa3dhcmdzKToKLSAgICAgICAgY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydC5f
X2luaXRfXyhzZWxmLCBwb3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lPSdjaHJvbWl1bS1ncHUtd2luJywgKiprd2FyZ3Mp
OgorICAgICAgICBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0Ll9faW5pdF9fKHNlbGYsIGhv
c3QsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogICAgICAgICBfc2V0X2dwdV9vcHRp
b25zKHNlbGYpCiAKICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dw
dV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5CmluZGV4IDcwMTVjNGE3MmQ4NzRkNjlhOTljZjQwZWRi
NzgxNTg4NGFhZjc4OTcuLjEzYTYxMzNiMjgwNTcyZDA3MDY3YmExZmIyOWIwNDJiMWJlODg0Mzcg
MTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fZ3B1X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5CkBAIC01OCwxNiArNTgsMTggQEAg
Y2xhc3MgQ2hyb21pdW1HcHVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5h
c3NlcnRfcG9ydF93b3JrcygnY2hyb21pdW0tZ3B1LXdpbicsICdjaHJvbWl1bS1ncHUnLCAnY3ln
d2luJykKIAogICAgIGRlZiBhc3NlcnRfcG9ydF93b3JrcyhzZWxmLCBwb3J0X25hbWUsIGlucHV0
X25hbWU9Tm9uZSwgcGxhdGZvcm09Tm9uZSk6CisgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgpCisg
ICAgICAgIGhvc3QuZmlsZXN5c3RlbSA9IEZpbGVTeXN0ZW0oKSAgIyBGSVhNRTogVGhpcyB0ZXN0
IHNob3VsZCBub3QgdXNlIGEgcmVhbCBmaWxlc3lzdGVtIQorCiAgICAgICAgICMgdGVzdCB0aGF0
IHdlIGdvdCB0aGUgcmlnaHQgcG9ydAogICAgICAgICBtb2NrX29wdGlvbnMgPSBNb2NrT3B0aW9u
cyhhY2NlbGVyYXRlZF9jb21wb3NpdGluZz1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhY2NlbGVyYXRlZF8yZF9jYW52YXM9Tm9uZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRlcl9uYW1lPSdmb28nLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZF9wcm9jZXNz
ZXM9Tm9uZSkKICAgICAgICAgaWYgaW5wdXRfbmFtZSBhbmQgcGxhdGZvcm06Ci0gICAgICAgICAg
ICBwb3J0ID0gY2hyb21pdW1fZ3B1LmdldChwbGF0Zm9ybT1wbGF0Zm9ybSwgcG9ydF9uYW1lPWlu
cHV0X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPW1v
Y2tfb3B0aW9ucykKKyAgICAgICAgICAgIHBvcnQgPSBjaHJvbWl1bV9ncHUuZ2V0KGhvc3QsIHBs
YXRmb3JtPXBsYXRmb3JtLCBwb3J0X25hbWU9aW5wdXRfbmFtZSwgb3B0aW9ucz1tb2NrX29wdGlv
bnMpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwb3J0ID0gY2hyb21pdW1fZ3B1LmdldChw
b3J0X25hbWU9cG9ydF9uYW1lLCBvcHRpb25zPW1vY2tfb3B0aW9ucykKKyAgICAgICAgICAgIHBv
cnQgPSBjaHJvbWl1bV9ncHUuZ2V0KGhvc3QsIHBvcnRfbmFtZT1wb3J0X25hbWUsIG9wdGlvbnM9
bW9ja19vcHRpb25zKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5fb3B0aW9ucy5hY2Nl
bGVyYXRlZF9jb21wb3NpdGluZykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuX29wdGlv
bnMuYWNjZWxlcmF0ZWRfMmRfY2FudmFzKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5f
b3B0aW9ucy5leHBlcmltZW50YWxfZnVsbHlfcGFyYWxsZWwpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9saW51eC5weQpp
bmRleCA1ODY5MzRkMjE0M2NiODk1MWRmYjFkNmU3NWNmMDdmNDM1ZGI4N2IxLi44OWJlNWRkZjQ5
MDk2MDE0Mzc4ZTQxYzhhMmE0MDJiMzg3YzA0NmQwIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2xpbnV4LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXgucHkKQEAg
LTI3LDEwICsyNyw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0iIiJDaHJv
bWl1bSBMaW51eCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUG9ydCBpbnRlcmZhY2UuIiIiCi0KIGlt
cG9ydCBsb2dnaW5nCi0KIGltcG9ydCBjaHJvbWl1bQogCiAKQEAgLTU4LDkgKzU1LDkgQEAgY2xh
c3MgQ2hyb21pdW1MaW51eFBvcnQoY2hyb21pdW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgXSwK
ICAgICB9CiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsICoqa3dhcmdz
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lPU5vbmUsICoqa3dhcmdz
KToKICAgICAgICAgcG9ydF9uYW1lID0gcG9ydF9uYW1lIG9yICdjaHJvbWl1bS1saW51eCcKLSAg
ICAgICAgY2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0
X25hbWUsICoqa3dhcmdzKQorICAgICAgICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuX19pbml0X18o
c2VsZiwgaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCiAgICAgICAgICMgV2Ug
cmUtc2V0IHRoZSBwb3J0IG5hbWUgb25jZSB0aGUgYmFzZSBvYmplY3QgaXMgZnVsbHkgaW5pdGlh
bGl6ZWQKICAgICAgICAgIyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGZpbmQgdGhlIERSVCBiaW5h
cnkgcHJvcGVybHkuCiAgICAgICAgIGlmIHBvcnRfbmFtZS5lbmRzd2l0aCgnLWxpbnV4Jyk6CmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtX2xpbnV4X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9saW51eF91bml0dGVzdC5weQppbmRleCBlMDU5ZGZkNTI1ODc3ZmNh
MTkwYWIxOWI0NjUwZTQ5YWZiYzA3ODFkLi4xMzFlZTJiMDllZWZiZDMxNjhiMTM1ZTZhYTE5YTI1
NzZiYTAwZmU4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtX2xpbnV4X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbGludXhfdW5pdHRlc3QucHkKQEAgLTI5
LDcgKzI5LDcgQEAKIGltcG9ydCB1bml0dGVzdAogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0
ZW0gaW1wb3J0IGV4ZWN1dGl2ZV9tb2NrCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1w
b3J0IGZpbGVzeXN0ZW1fbW9jaworZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9y
dCBNb2NrSG9zdAogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBjaHJv
bWl1bV9saW51eAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgcG9ydF90
ZXN0Y2FzZQpAQCAtNDMsMTQgKzQzLDEyIEBAIGNsYXNzIENocm9taXVtTGludXhQb3J0VGVzdChw
b3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAKICAgICBkZWYgYXNzZXJ0X2FyY2hpdGVjdHVy
ZShzZWxmLCBwb3J0X25hbWU9Tm9uZSwgZmlsZV9vdXRwdXQ9Tm9uZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleHBlY3RlZF9hcmNoaXRlY3R1cmU9Tm9uZSk6Ci0gICAgICAgIGZpbGVz
eXN0ZW0gPSBmaWxlc3lzdGVtX21vY2suTW9ja0ZpbGVTeXN0ZW0oKQotICAgICAgICBmaWxlc3lz
dGVtLmV4aXN0cyA9IGxhbWJkYSB4OiAnRHVtcFJlbmRlclRyZWUnIGluIHgKLSAgICAgICAgZXhl
Y3V0aXZlID0gTm9uZQorICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQorICAgICAgICBob3N0LmZp
bGVzeXN0ZW0uZXhpc3RzID0gbGFtYmRhIHg6ICdEdW1wUmVuZGVyVHJlZScgaW4geAogICAgICAg
ICBpZiBmaWxlX291dHB1dDoKLSAgICAgICAgICAgIGV4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZV9tb2Nr
Lk1vY2tFeGVjdXRpdmUyKGZpbGVfb3V0cHV0KQorICAgICAgICAgICAgaG9zdC5leGVjdXRpdmUg
PSBleGVjdXRpdmVfbW9jay5Nb2NrRXhlY3V0aXZlMihmaWxlX291dHB1dCkKIAotICAgICAgICBw
b3J0ID0gY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQocG9ydF9uYW1lPXBvcnRfbmFt
ZSwKLSAgICAgICAgICAgIGV4ZWN1dGl2ZT1leGVjdXRpdmUsIGZpbGVzeXN0ZW09ZmlsZXN5c3Rl
bSkKKyAgICAgICAgcG9ydCA9IGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KGhvc3Qs
IHBvcnRfbmFtZT1wb3J0X25hbWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYXJj
aGl0ZWN0dXJlKCksIGV4cGVjdGVkX2FyY2hpdGVjdHVyZSkKICAgICAgICAgaWYgZXhwZWN0ZWRf
YXJjaGl0ZWN0dXJlID09ICd4ODYnOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQu
YmFzZWxpbmVfcGF0aCgpLmVuZHN3aXRoKCdjaHJvbWl1bS1saW51eC14ODYnKSkKQEAgLTczLDMx
ICs3MSwyNCBAQCBjbGFzcyBDaHJvbWl1bUxpbnV4UG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0
VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2NoZWNrX2lsbGVnYWxfcG9ydF9uYW1lcyhzZWxmKToK
ICAgICAgICAgIyBGSVhNRTogQ2hlY2sgdGhhdCwgZm9yIG5vdywgdGhlc2UgYXJlIGlsbGVnYWwg
cG9ydCBuYW1lcy4KICAgICAgICAgIyBFdmVudHVhbGx5IHdlIHNob3VsZCBiZSBhYmxlIHRvIGRv
IHRoZSByaWdodCB0aGluZyBoZXJlLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRp
b25FcnJvciwgY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHBvcnRfbmFtZT0nY2hyb21pdW0teDg2LWxpbnV4JykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIGNocm9taXVtX2xpbnV4LkNocm9taXVtTGlu
dXhQb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0X25hbWU9J2Nocm9taXVtLWxp
bnV4LXg4Ni1ncHUnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwg
Y2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQsIE1vY2tIb3N0KCksIHBvcnRfbmFtZT0n
Y2hyb21pdW0teDg2LWxpbnV4JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9u
RXJyb3IsIGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0LCBNb2NrSG9zdCgpLCBwb3J0
X25hbWU9J2Nocm9taXVtLWxpbnV4LXg4Ni1ncHUnKQogCiAgICAgZGVmIHRlc3RfZGV0ZXJtaW5l
X2FyY2hpdGVjdHVyZV9mYWlscyhzZWxmKToKICAgICAgICAgIyBUZXN0IHRoYXQgd2UgZGVmYXVs
dCB0byAneDg2JyBpZiB0aGUgZHJpdmVyIGRvZXNuJ3QgZXhpc3QuCi0gICAgICAgIGZpbGVzeXN0
ZW0gPSBmaWxlc3lzdGVtX21vY2suTW9ja0ZpbGVTeXN0ZW0oKQotICAgICAgICBwb3J0ID0gY2hy
b21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQoZmlsZXN5c3RlbT1maWxlc3lzdGVtKQorICAg
ICAgICBwb3J0ID0gY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQoTW9ja0hvc3QoKSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5hcmNoaXRlY3R1cmUoKSwgJ3g4Nl82NCcp
CiAKICAgICAgICAgIyBUZXN0IHRoYXQgd2UgZGVmYXVsdCB0byAneDg2JyBvbiBhbiB1bmtub3du
IGFyY2hpdGVjdHVyZS4KLSAgICAgICAgZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW1fbW9jay5Nb2Nr
RmlsZVN5c3RlbSgpCi0gICAgICAgIGZpbGVzeXN0ZW0uZXhpc3RzID0gbGFtYmRhIHg6IFRydWUK
LSAgICAgICAgZXhlY3V0aXZlID0gZXhlY3V0aXZlX21vY2suTW9ja0V4ZWN1dGl2ZTIoJ3dpbjMy
JykKLSAgICAgICAgcG9ydCA9IGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KGZpbGVz
eXN0ZW09ZmlsZXN5c3RlbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGV4ZWN1dGl2ZT1leGVjdXRpdmUpCisgICAgICAgIGhvc3QgPSBNb2NrSG9zdCgp
CisgICAgICAgIGhvc3QuZmlsZXN5c3RlbS5leGlzdHMgPSBsYW1iZGEgeDogVHJ1ZQorICAgICAg
ICBob3N0LmV4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZV9tb2NrLk1vY2tFeGVjdXRpdmUyKCd3aW4zMicp
CisgICAgICAgIHBvcnQgPSBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydChob3N0KQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmFyY2hpdGVjdHVyZSgpLCAneDg2XzY0JykK
IAogICAgICAgICAjIFRlc3QgdGhhdCB3ZSByYWlzZSBlcnJvcnMgaWYgc29tZXRoaW5nIHdlaXJk
IGhhcHBlbnMuCi0gICAgICAgIGZpbGVzeXN0ZW0gPSBmaWxlc3lzdGVtX21vY2suTW9ja0ZpbGVT
eXN0ZW0oKQotICAgICAgICBmaWxlc3lzdGVtLmV4aXN0cyA9IGxhbWJkYSB4OiBUcnVlCi0gICAg
ICAgIGV4ZWN1dGl2ZSA9IGV4ZWN1dGl2ZV9tb2NrLk1vY2tFeGVjdXRpdmUyKGV4Y2VwdGlvbj1B
c3NlcnRpb25FcnJvcikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3Is
IGNocm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaWxlc3lzdGVtPWZpbGVzeXN0ZW0sIGV4ZWN1dGl2ZT1leGVjdXRpdmUpCisgICAgICAg
IGhvc3QuZXhlY3V0aXZlID0gZXhlY3V0aXZlX21vY2suTW9ja0V4ZWN1dGl2ZTIoZXhjZXB0aW9u
PUFzc2VydGlvbkVycm9yKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJv
ciwgY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51eFBvcnQsIGhvc3QpCiAKIAogaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkKaW5kZXggOTllNDQzN2RlYzJkNDU4Yjgx
MmEyODE3ZTkwMzY2NGFmZTMwOTA4NC4uMGJiMzEyNzY4MzhlMTI0Yzg5MWZiNjE1MTNkNDAzMTgz
MzJhOGVhNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9jaHJvbWl1bV9tYWMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV9tYWMucHkKQEAgLTEwOSwxMSArMTA5LDExIEBAIGNsYXNzIENo
cm9taXVtTWFjUG9ydChjaHJvbWl1bS5DaHJvbWl1bVBvcnQpOgogICAgICAgICBdLAogICAgIH0K
IAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgb3NfdmVyc2lvbl9zdHJp
bmc9Tm9uZSwgKiprd2FyZ3MpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0X25h
bWU9Tm9uZSwgb3NfdmVyc2lvbl9zdHJpbmc9Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICAjIFdl
J3JlIGEgbGl0dGxlIGdlbmVyaWMgaGVyZSBiZWNhdXNlIHRoaXMgY29kZSBpcyByZXVzZWQgYnkg
dGhlCiAgICAgICAgICMgJ2dvb2dsZS1jaHJvbWUnIHBvcnQgYXMgd2VsbCBhcyB0aGUgJ21vY2st
JyBhbmQgJ2RyeXJ1bi0nIHBvcnRzLgogICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgb3Ig
J2Nocm9taXVtLWNnLW1hYycKLSAgICAgICAgY2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9f
KHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQorICAgICAgICBjaHJvbWl1bS5D
aHJvbWl1bVBvcnQuX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKipr
d2FyZ3MpCiAgICAgICAgIGlmIHBvcnRfbmFtZS5lbmRzd2l0aCgnLW1hYycpOgogICAgICAgICAg
ICAgc2VsZi5fdmVyc2lvbiA9IG1hYy5vc192ZXJzaW9uKG9zX3ZlcnNpb25fc3RyaW5nLCBzZWxm
LlNVUFBPUlRFRF9PU19WRVJTSU9OUykKICAgICAgICAgICAgIHNlbGYuX25hbWUgPSBwb3J0X25h
bWUgKyAnLScgKyBzZWxmLl92ZXJzaW9uCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX21hY191bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5
CmluZGV4IDYwMDE4ODQxZjcwOWRjNWYxYzY3NWNjZDFkYWRlMWY2MmU1NWZjYmUuLjc0ZTlhMzg4
MjkwN2JlYjA1NjFjOTFkMmMxMjQyODM0YTQyOWYxYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFjX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fbWFj
X3VuaXR0ZXN0LnB5CkBAIC0yOSw2ICsyOSw3IEBACiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB3
ZWJraXRweS50aGlyZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKK2Zyb20gd2Via2l0cHkuY29tbW9u
Lmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
cG9ydCBpbXBvcnQgY2hyb21pdW1fbWFjCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0
IGltcG9ydCBwb3J0X3Rlc3RjYXNlCkBAIC0zNiwyMSArMzcsMjEgQEAgZnJvbSB3ZWJraXRweS5s
YXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgcG9ydF90ZXN0Y2FzZQogCiBjbGFzcyBDaHJvbWl1bU1h
Y1BvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICBkZWYgcG9ydF9tYWtl
cihzZWxmLCBwbGF0Zm9ybSk6CisgICAgICAgICMgRklYTUU6IFRoaXMgcGxhdGZvcm0gY2hlY2sg
c2hvdWxkIGJlIHJlbW92ZWQhCiAgICAgICAgIGlmIHBsYXRmb3JtICE9ICdkYXJ3aW4nOgogICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgcmV0dXJuIGNocm9taXVtX21hYy5DaHJvbWl1
bU1hY1BvcnQKIAogICAgIGRlZiB0ZXN0X2NoZWNrX3dkaWZmKHNlbGYpOgotICAgICAgICBwb3J0
ID0gY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydCgpCisgICAgICAgIHBvcnQgPSBjaHJvbWl1
bV9tYWMuQ2hyb21pdW1NYWNQb3J0KE1vY2tIb3N0KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShwb3J0LmNoZWNrX3dkaWZmKCkpCiAKICAgICBkZWYgYXNzZXJ0X25hbWUoc2VsZiwgcG9ydF9u
YW1lLCBvc192ZXJzaW9uX3N0cmluZywgZXhwZWN0ZWQpOgotICAgICAgICBwb3J0ID0gY2hyb21p
dW1fbWFjLkNocm9taXVtTWFjUG9ydChwb3J0X25hbWU9cG9ydF9uYW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvc192ZXJzaW9uX3N0cmluZz1vc192ZXJz
aW9uX3N0cmluZykKKyAgICAgICAgcG9ydCA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQo
TW9ja0hvc3QoKSwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgb3NfdmVyc2lvbl9zdHJpbmc9b3NfdmVy
c2lvbl9zdHJpbmcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkLCBwb3J0Lm5h
bWUoKSkKIAogICAgIGRlZiB0ZXN0X3ZlcnNpb25zKHNlbGYpOgotICAgICAgICBwb3J0ID0gY2hy
b21pdW1fbWFjLkNocm9taXVtTWFjUG9ydCgpCisgICAgICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMu
Q2hyb21pdW1NYWNQb3J0KE1vY2tIb3N0KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0
Lm5hbWUoKSBpbiAoJ2Nocm9taXVtLWNnLW1hYy1sZW9wYXJkJywgJ2Nocm9taXVtLWNnLW1hYy1z
bm93bGVvcGFyZCcsICdjaHJvbWl1bS1jZy1tYWMtbGlvbicsICdjaHJvbWl1bS1jZy1tYWMtZnV0
dXJlJykpCiAKICAgICAgICAgc2VsZi5hc3NlcnRfbmFtZShOb25lLCAnMTAuNS4zJywgJ2Nocm9t
aXVtLWNnLW1hYy1sZW9wYXJkJykKQEAgLTc1LDIyICs3NiwyMiBAQCBjbGFzcyBDaHJvbWl1bU1h
Y1BvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUsIE5vbmUsICcxMC40LjEn
LCAnc2hvdWxkLXJhaXNlLWFzc2VydGlvbi1zby10aGlzLXZhbHVlLWRvZXMtbm90LW1hdHRlcicp
CiAKICAgICBkZWYgdGVzdF9iYXNlbGluZV9wYXRoKHNlbGYpOgotICAgICAgICBwb3J0ID0gY2hy
b21pdW1fbWFjLkNocm9taXVtTWFjUG9ydChwb3J0X25hbWU9J2Nocm9taXVtLW1hYy1sZW9wYXJk
JykKKyAgICAgICAgcG9ydCA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQoTW9ja0hvc3Qo
KSwgcG9ydF9uYW1lPSdjaHJvbWl1bS1tYWMtbGVvcGFyZCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgn
Y2hyb21pdW0tbWFjLWxlb3BhcmQnKSkKIAotICAgICAgICBwb3J0ID0gY2hyb21pdW1fbWFjLkNo
cm9taXVtTWFjUG9ydChwb3J0X25hbWU9J2Nocm9taXVtLW1hYy1zbm93bGVvcGFyZCcpCisgICAg
ICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KE1vY2tIb3N0KCksIHBvcnRf
bmFtZT0nY2hyb21pdW0tbWFjLXNub3dsZW9wYXJkJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMocG9ydC5iYXNlbGluZV9wYXRoKCksIHBvcnQuX3dlYmtpdF9iYXNlbGluZV9wYXRoKCdjaHJv
bWl1bS1tYWMtc25vd2xlb3BhcmQnKSkKIAotICAgICAgICBwb3J0ID0gY2hyb21pdW1fbWFjLkNo
cm9taXVtTWFjUG9ydChwb3J0X25hbWU9J2Nocm9taXVtLW1hYy1saW9uJykKKyAgICAgICAgcG9y
dCA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQoTW9ja0hvc3QoKSwgcG9ydF9uYW1lPSdj
aHJvbWl1bS1tYWMtbGlvbicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxp
bmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgnY2hyb21pdW0tbWFjJykpCiAK
ICAgICBkZWYgdGVzdF9ncmFwaGljc190eXBlKHNlbGYpOgotICAgICAgICBwb3J0ID0gY2hyb21p
dW1fbWFjLkNocm9taXVtTWFjUG9ydChwb3J0X25hbWU9J2Nocm9taXVtLWNnLW1hYycpCisgICAg
ICAgIHBvcnQgPSBjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KE1vY2tIb3N0KCksIHBvcnRf
bmFtZT0nY2hyb21pdW0tY2ctbWFjJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ2NwdS1j
ZycsIHBvcnQuZ3JhcGhpY3NfdHlwZSgpKQotICAgICAgICBwb3J0ID0gY2hyb21pdW1fbWFjLkNo
cm9taXVtTWFjUG9ydChwb3J0X25hbWU9J2Nocm9taXVtLW1hYycpCisgICAgICAgIHBvcnQgPSBj
aHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KE1vY2tIb3N0KCksIHBvcnRfbmFtZT0nY2hyb21p
dW0tbWFjJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ2NwdScsIHBvcnQuZ3JhcGhpY3Nf
dHlwZSgpKQogICAgICAgICAjIEZvciBub3csIE1hYyBkZWZhdWx0cyB0byBjcHUtY2cgZ3JhcGhp
Y3MgdHlwZS4KLSAgICAgICAgcG9ydCA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQoKQor
ICAgICAgICBwb3J0ID0gY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydChNb2NrSG9zdCgpKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscygnY3B1LWNnJywgcG9ydC5ncmFwaGljc190eXBlKCkp
CiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fdW5pdHRlc3QucHkKaW5kZXggZGUwZTk4MjY4MjBlNDFkY2I5YjZm
OTk4NzA1YjMzYTFkOTUzMTgzNy4uZjBiMWY2MmZmNjdmNzliMzY2N2M3ZDgxZjY1MzZkOTQ0NzA5
ZmY0ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9jaHJvbWl1bV91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Nocm9taXVtX3VuaXR0ZXN0LnB5CkBAIC0zMiw3ICszMiw3IEBAIGltcG9y
dCBTdHJpbmdJTwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBsb2d0ZXN0aW5n
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tF
eGVjdXRpdmUsIE1vY2tFeGVjdXRpdmUyCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmls
ZXN5c3RlbV9tb2NrIGltcG9ydCBNb2NrRmlsZVN5c3RlbQotZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLnVzZXJfbW9jayBpbXBvcnQgTW9ja1VzZXIKK2Zyb20gd2Via2l0cHkuY29tbW9uLmhv
c3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5tb2NrIGlt
cG9ydCBNb2NrCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25z
CiAKQEAgLTEyMiw3ICsxMjIsNyBAQCBjbGFzcyBDaHJvbWl1bVBvcnRUZXN0KHBvcnRfdGVzdGNh
c2UuUG9ydFRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25z
KHNlbGYpOgogICAgICAgICAiIiJWYWxpZGF0ZSB0aGUgY29tcGxldGUgc2V0IG9mIGNvbmZpZ3Vy
YXRpb25zIHRoaXMgcG9ydCBrbm93cyBhYm91dC4iIiIKLSAgICAgICAgcG9ydCA9IGNocm9taXVt
LkNocm9taXVtUG9ydCgpCisgICAgICAgIHBvcnQgPSBjaHJvbWl1bS5DaHJvbWl1bVBvcnQoTW9j
a0hvc3QoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2V0KHBvcnQuYWxsX3Rlc3RfY29u
ZmlndXJhdGlvbnMoKSksIHNldChbCiAgICAgICAgICAgICBUZXN0Q29uZmlndXJhdGlvbignbGVv
cGFyZCcsICd4ODYnLCAnZGVidWcnLCAnY3B1JyksCiAgICAgICAgICAgICBUZXN0Q29uZmlndXJh
dGlvbignbGVvcGFyZCcsICd4ODYnLCAnZGVidWcnLCAnZ3B1JyksCkBAIC0xODQsOCArMTg0LDcg
QEAgY2xhc3MgQ2hyb21pdW1Qb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAK
ICAgICBjbGFzcyBUZXN0TWFjUG9ydChjaHJvbWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KToKICAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICAgICAgY2hyb21pdW1f
bWFjLkNocm9taXVtTWFjUG9ydC5fX2luaXRfXyhzZWxmLCBvcHRpb25zPW9wdGlvbnMsCi0gICAg
ICAgICAgICAgICAgZmlsZXN5c3RlbT1Nb2NrRmlsZVN5c3RlbSgpLCB1c2VyPU1vY2tVc2VyKCks
IGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZlKCkpCisgICAgICAgICAgICBjaHJvbWl1bV9tYWMuQ2hy
b21pdW1NYWNQb3J0Ll9faW5pdF9fKHNlbGYsIE1vY2tIb3N0KCksIG9wdGlvbnM9b3B0aW9ucykK
IAogICAgICAgICBkZWYgZGVmYXVsdF9jb25maWd1cmF0aW9uKHNlbGYpOgogICAgICAgICAgICAg
c2VsZi5kZWZhdWx0X2NvbmZpZ3VyYXRpb25fY2FsbGVkID0gVHJ1ZQpAQCAtMTkzLDggKzE5Miw3
IEBAIGNsYXNzIENocm9taXVtUG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgog
CiAgICAgY2xhc3MgVGVzdExpbnV4UG9ydChjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9y
dCk6CiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgICAgIGNo
cm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0Ll9faW5pdF9fKHNlbGYsIG9wdGlvbnM9b3B0
aW9ucywKLSAgICAgICAgICAgICAgICBmaWxlc3lzdGVtPU1vY2tGaWxlU3lzdGVtKCksIHVzZXI9
TW9ja1VzZXIoKSwgZXhlY3V0aXZlPU1vY2tFeGVjdXRpdmUoKSkKKyAgICAgICAgICAgIGNocm9t
aXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0Ll9faW5pdF9fKHNlbGYsIE1vY2tIb3N0KCksIG9w
dGlvbnM9b3B0aW9ucykKIAogICAgICAgICBkZWYgZGVmYXVsdF9jb25maWd1cmF0aW9uKHNlbGYp
OgogICAgICAgICAgICAgc2VsZi5kZWZhdWx0X2NvbmZpZ3VyYXRpb25fY2FsbGVkID0gVHJ1ZQpA
QCAtMjAyLDggKzIwMCw3IEBAIGNsYXNzIENocm9taXVtUG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Q
b3J0VGVzdENhc2UpOgogCiAgICAgY2xhc3MgVGVzdFdpblBvcnQoY2hyb21pdW1fd2luLkNocm9t
aXVtV2luUG9ydCk6CiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAg
ICAgICAgIGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQuX19pbml0X18oc2VsZiwgb3B0aW9u
cz1vcHRpb25zLAotICAgICAgICAgICAgICAgIGZpbGVzeXN0ZW09TW9ja0ZpbGVTeXN0ZW0oKSwg
dXNlcj1Nb2NrVXNlcigpLCBleGVjdXRpdmU9TW9ja0V4ZWN1dGl2ZSgpKQorICAgICAgICAgICAg
Y2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydC5fX2luaXRfXyhzZWxmLCBNb2NrSG9zdCgpLCBv
cHRpb25zPW9wdGlvbnMpCiAKICAgICAgICAgZGVmIGRlZmF1bHRfY29uZmlndXJhdGlvbihzZWxm
KToKICAgICAgICAgICAgIHNlbGYuZGVmYXVsdF9jb25maWd1cmF0aW9uX2NhbGxlZCA9IFRydWUK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9j
aHJvbWl1bV93aW4ucHkKaW5kZXggNTMyNWExMGVlZmNjYmM3MzdmNzQ5YTkxNWMxMzg2ZGNiN2Nh
MmRmZC4uNWM5NzFhNjJkNTllODQ4NjUxNzk4NmZlMmFkMGI0NmU2MWU1MTdkMSAxMDA3NTUKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW4u
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bV93aW4ucHkKQEAgLTg1LDExICs4NSwxMSBAQCBjbGFzcyBDaHJvbWl1bVdpblBvcnQoY2hyb21p
dW0uQ2hyb21pdW1Qb3J0KToKICAgICAgICAgXSwKICAgICB9CiAKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgcG9ydF9uYW1lPU5vbmUsIHdpbmRvd3NfdmVyc2lvbj1Ob25lLCAqKmt3YXJncyk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnRfbmFtZT1Ob25lLCB3aW5kb3dzX3ZlcnNp
b249Tm9uZSwgKiprd2FyZ3MpOgogICAgICAgICAjIFdlJ3JlIGEgbGl0dGxlIGdlbmVyaWMgaGVy
ZSBiZWNhdXNlIHRoaXMgY29kZSBpcyByZXVzZWQgYnkgdGhlCiAgICAgICAgICMgJ2dvb2dsZS1j
aHJvbWUnIHBvcnQgYXMgd2VsbCBhcyB0aGUgJ21vY2stJyBhbmQgJ2RyeXJ1bi0nIHBvcnRzLgog
ICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgb3IgJ2Nocm9taXVtLXdpbicKLSAgICAgICAg
Y2hyb21pdW0uQ2hyb21pdW1Qb3J0Ll9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1wb3J0X25hbWUs
ICoqa3dhcmdzKQorICAgICAgICBjaHJvbWl1bS5DaHJvbWl1bVBvcnQuX19pbml0X18oc2VsZiwg
aG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3MpCiAgICAgICAgIGlmIHBvcnRfbmFt
ZS5lbmRzd2l0aCgnLXdpbicpOgogICAgICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IG9zX3ZlcnNp
b24od2luZG93c192ZXJzaW9uKQogICAgICAgICAgICAgc2VsZi5fbmFtZSA9IHBvcnRfbmFtZSAr
ICctJyArIHNlbGYuX3ZlcnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fd2luX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkKaW5k
ZXggYjE1ZDU5M2QwY2MyYzQ2YmFiODVjMDA3MzZkODMwZjUyYWQwNjM3YS4uYTI1ZjM0MDJlNGI4
NWFmMGUyMDEzYTA2ODU4NjhkMTQ3OTNkOWZhYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV93aW5fdW5p
dHRlc3QucHkKQEAgLTMxLDggKzMxLDggQEAgaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgb3V0cHV0Y2FwdHVyZQorZnJvbSB3
ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAogZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KLWZyb20g
d2Via2l0cHkudG9vbCBpbXBvcnQgbW9ja3Rvb2wKIAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMucG9ydCBpbXBvcnQgY2hyb21pdW1fd2luCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5w
b3J0IGltcG9ydCBwb3J0X3Rlc3RjYXNlCkBAIC03MSw3ICs3MSw3IEBAIGNsYXNzIENocm9taXVt
V2luVGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIGlmIG5vdCBwb3J0
OgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgcG9ydC5fZXhlY3V0aXZlID0gbW9ja3Rv
b2wuTW9ja0V4ZWN1dGl2ZShzaG91bGRfbG9nPVRydWUpCisgICAgICAgIHBvcnQuX2V4ZWN1dGl2
ZSA9IE1vY2tFeGVjdXRpdmUoc2hvdWxkX2xvZz1UcnVlKQogICAgICAgICBzZWxmLl9wb3J0ID0g
cG9ydAogICAgICAgICBwb3J0LnBhdGhfZnJvbV9jaHJvbWl1bV9iYXNlID0gc2VsZi5fbW9ja19w
YXRoX2Zyb21fY2hyb21pdW1fYmFzZQogICAgICAgICBvdXRwdXQgPSBvdXRwdXRjYXB0dXJlLk91
dHB1dENhcHR1cmUoKQpAQCAtODUsNyArODUsNyBAQCBjbGFzcyBDaHJvbWl1bVdpblRlc3QocG9y
dF90ZXN0Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgICAgICBpZiBub3QgcG9ydDoKICAgICAgICAg
ICAgIHJldHVybgogCi0gICAgICAgIHBvcnQuX2V4ZWN1dGl2ZSA9IG1vY2t0b29sLk1vY2tFeGVj
dXRpdmUoc2hvdWxkX2xvZz1UcnVlKQorICAgICAgICBwb3J0Ll9leGVjdXRpdmUgPSBNb2NrRXhl
Y3V0aXZlKHNob3VsZF9sb2c9VHJ1ZSkKICAgICAgICAgcG9ydC5wYXRoX2Zyb21fY2hyb21pdW1f
YmFzZSA9IHNlbGYuX21vY2tfcGF0aF9mcm9tX2Nocm9taXVtX2Jhc2UKICAgICAgICAgc2VsZi5f
cG9ydCA9IHBvcnQKICAgICAgICAgc2V0dXBfbW91bnQgPSBzZWxmLl9tb2NrX3BhdGhfZnJvbV9j
aHJvbWl1bV9iYXNlKCJ0aGlyZF9wYXJ0eSIsICJjeWd3aW4iLCAic2V0dXBfbW91bnQuYmF0IikK
QEAgLTk0LDEyICs5NCwxMSBAQCBjbGFzcyBDaHJvbWl1bVdpblRlc3QocG9ydF90ZXN0Y2FzZS5Q
b3J0VGVzdENhc2UpOgogICAgICAgICBvdXRwdXQuYXNzZXJ0X291dHB1dHMoc2VsZiwgcG9ydC5z
ZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIp
CiAKICAgICBkZWYgYXNzZXJ0X25hbWUoc2VsZiwgcG9ydF9uYW1lLCB3aW5kb3dzX3ZlcnNpb24s
IGV4cGVjdGVkKToKLSAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQo
cG9ydF9uYW1lPXBvcnRfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2luZG93c192ZXJzaW9uPXdpbmRvd3NfdmVyc2lvbikKKyAgICAgICAgcG9ydCA9
IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQoTW9ja0hvc3QoKSwgcG9ydF9uYW1lPXBvcnRf
bmFtZSwgd2luZG93c192ZXJzaW9uPXdpbmRvd3NfdmVyc2lvbikKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoZXhwZWN0ZWQsIHBvcnQubmFtZSgpKQogCiAgICAgZGVmIHRlc3RfdmVyc2lvbnMo
c2VsZik6Ci0gICAgICAgIHBvcnQgPSBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KCkKKyAg
ICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQoTW9ja0hvc3QoKSkKICAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQubmFtZSgpIGluICgnY2hyb21pdW0td2luLXhwJywg
J2Nocm9taXVtLXdpbi12aXN0YScsICdjaHJvbWl1bS13aW4td2luNycpKQogCiAgICAgICAgIHNl
bGYuYXNzZXJ0X25hbWUoTm9uZSwgKDUsIDEpLCAnY2hyb21pdW0td2luLXhwJykKQEAgLTEyNiwy
MCArMTI1LDIyIEBAIGNsYXNzIENocm9taXVtV2luVGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0
Q2FzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBzZWxmLmFzc2VydF9u
YW1lLCBOb25lLCAoNywgMSksICdjaHJvbWl1bS13aW4teHAnKQogCiAgICAgZGVmIHRlc3RfYmFz
ZWxpbmVfcGF0aChzZWxmKToKLSAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdp
blBvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS13aW4teHAnKQorICAgICAgICBwb3J0ID0gY2hyb21p
dW1fd2luLkNocm9taXVtV2luUG9ydChNb2NrSG9zdCgpLCBwb3J0X25hbWU9J2Nocm9taXVtLXdp
bi14cCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBw
b3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCgnY2hyb21pdW0td2luLXhwJykpCiAKLSAgICAgICAg
cG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS13
aW4tdmlzdGEnKQorICAgICAgICBwb3J0ID0gY2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydChN
b2NrSG9zdCgpLCBwb3J0X25hbWU9J2Nocm9taXVtLXdpbi12aXN0YScpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHBvcnQuYmFzZWxpbmVfcGF0aCgpLCBwb3J0Ll93ZWJraXRfYmFzZWxpbmVf
cGF0aCgnY2hyb21pdW0td2luLXZpc3RhJykpCiAKLSAgICAgICAgcG9ydCA9IGNocm9taXVtX3dp
bi5DaHJvbWl1bVdpblBvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS13aW4td2luNycpCisgICAgICAg
IHBvcnQgPSBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KE1vY2tIb3N0KCksIHBvcnRfbmFt
ZT0nY2hyb21pdW0td2luLXdpbjcnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJh
c2VsaW5lX3BhdGgoKSwgcG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2Nocm9taXVtLXdpbicp
KQogCiAgICAgZGVmIHRlc3RfYnVpbGRfcGF0aChzZWxmKToKLSAgICAgICAgbW9jayA9IE1vY2tG
aWxlU3lzdGVtKGZpbGVzPXsKLSAgICAgICAgICAgICcvbW9jay1jaGVja291dC9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL2J1aWxkL1JlbGVhc2UvRHVtcFJlbmRlclRyZWUuZXhlJzogJ2V4ZSd9KQor
ICAgICAgICBob3N0ID0gTW9ja0hvc3QoKQorICAgICAgICBob3N0LmZpbGVzeXN0ZW0gPSBNb2Nr
RmlsZVN5c3RlbShmaWxlcz17CisgICAgICAgICAgICAnL21vY2stY2hlY2tvdXQvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9idWlsZC9SZWxlYXNlL0R1bXBSZW5kZXJUcmVlLmV4ZSc6ICdleGUnLAor
ICAgICAgICB9KQogCi0gICAgICAgIHBvcnQgPSBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0
KGZpbGVzeXN0ZW09bW9jaykKKyAgICAgICAgcG9ydCA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdp
blBvcnQoaG9zdCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICAnL21v
Y2stY2hlY2tvdXQvU291cmNlL1dlYktpdC9jaHJvbWl1bS9idWlsZC9SZWxlYXNlL0R1bXBSZW5k
ZXJUcmVlLmV4ZScsCiAgICAgICAgICAgICBwb3J0Ll9wYXRoX3RvX2RyaXZlcignUmVsZWFzZScp
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9k
cnlydW4ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1
bi5weQppbmRleCAwODUzNDc0NjYzYzIzMWZlZjE4MWNjNzljNTA2MTFkOTA0M2FmNjEzLi44ZjMz
NWUyMjFhNmE1YTVhZDhkMDAyNDI0ZWU3MjJhNzY5ZDJlNDI2IDEwMDY0NAotLS0gYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyeXJ1bi5weQpAQCAtNTcsMTUgKzU3
LDE0IEBAIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IERyaXZlciwgRHJp
dmVyT3V0cHV0LCBmYWN0b3J5CiBjbGFzcyBEcnlSdW5Qb3J0KG9iamVjdCk6CiAgICAgIiIiRHJ5
UnVuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBQb3J0IGludGVyZmFjZS4iIiIKIAotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsICoq
a3dhcmdzKToKICAgICAgICAgcGZ4ID0gJ2RyeXJ1bi0nCiAgICAgICAgIGlmICdwb3J0X25hbWUn
IGluIGt3YXJnczoKICAgICAgICAgICAgIGlmIGt3YXJnc1sncG9ydF9uYW1lJ10uc3RhcnRzd2l0
aChwZngpOgogICAgICAgICAgICAgICAgIGt3YXJnc1sncG9ydF9uYW1lJ10gPSBrd2FyZ3NbJ3Bv
cnRfbmFtZSddW2xlbihwZngpOl0KICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAg
a3dhcmdzWydwb3J0X25hbWUnXSA9IE5vbmUKLSAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQg
Z2V0IHRoZSBQb3J0RmFjdG9yeSBmcm9tIGEgSG9zdCBvYmplY3QuCi0gICAgICAgIHNlbGYuX19k
ZWxlZ2F0ZSA9IGZhY3RvcnkuUG9ydEZhY3RvcnkoKS5nZXQoKiprd2FyZ3MpCisgICAgICAgIHNl
bGYuX19kZWxlZ2F0ZSA9IGhvc3QucG9ydF9mYWN0b3J5LmdldCgqKmt3YXJncykKIAogICAgIGRl
ZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKICAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZi5f
X2RlbGVnYXRlLCBuYW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9lZmwucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2VmbC5weQppbmRleCAyN2QzNzNiZGRhMDI0NzE5ODQzMDkwYmI1NjE5OTdiZjA3ODky
YzIzLi42M2ZjNmEyZTJlNDYwMzdjODMzOWQ4MzUyMTkwMjNkMDhkZGIwZDE0IDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2VmbC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2VmbC5weQpAQCAtMzEsMjQg
KzMxLDI0IEBAIGltcG9ydCBzaWduYWwKIGltcG9ydCBzdWJwcm9jZXNzCiAKIGZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25m
aWd1cmF0aW9uCi1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBiYXNlLCBi
dWlsZGVycywgc2VydmVyX3Byb2Nlc3MsIHdlYmtpdAorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMucG9ydC53ZWJraXQgaW1wb3J0IFdlYktpdFBvcnQKIAogCiBfbG9nID0gbG9nZ2luZy5nZXRM
b2dnZXIoX19uYW1lX18pCiAKIAotY2xhc3MgRWZsUG9ydCh3ZWJraXQuV2ViS2l0UG9ydCk6Citj
bGFzcyBFZmxQb3J0KFdlYktpdFBvcnQpOgogICAgIHBvcnRfbmFtZSA9ICJlZmwiCiAKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICB3ZWJraXQuV2ViS2l0UG9ydC5f
X2luaXRfXyhzZWxmLCAqKmt3YXJncykKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgKipr
d2FyZ3MpOgorICAgICAgICBXZWJLaXRQb3J0Ll9faW5pdF9fKHNlbGYsIGhvc3QsICoqa3dhcmdz
KQogICAgICAgICBzZWxmLl92ZXJzaW9uID0gc2VsZi5wb3J0X25hbWUKIAogICAgIGRlZiBfcG9y
dF9mbGFnX2Zvcl9zY3JpcHRzKHNlbGYpOgogICAgICAgICByZXR1cm4gIi0tZWZsIgogCiAgICAg
ZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKLSAg
ICAgICAgcmV0dXJuIHdlYmtpdC5XZWJLaXRQb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihz
ZWxmLCBzZXJ2ZXJfbmFtZSkKKyAgICAgICAgcmV0dXJuIFdlYktpdFBvcnQuc2V0dXBfZW52aXJv
bl9mb3Jfc2VydmVyKHNlbGYsIHNlcnZlcl9uYW1lKQogCiAgICAgZGVmIF9nZW5lcmF0ZV9hbGxf
dGVzdF9jb25maWd1cmF0aW9ucyhzZWxmKToKICAgICAgICAgcmV0dXJuIFtUZXN0Q29uZmlndXJh
dGlvbih2ZXJzaW9uPXNlbGYuX3ZlcnNpb24sIGFyY2hpdGVjdHVyZT0neDg2JywgYnVpbGRfdHlw
ZT1idWlsZF90eXBlLCBncmFwaGljc190eXBlPSdjcHUnKSBmb3IgYnVpbGRfdHlwZSBpbiBzZWxm
LkFMTF9CVUlMRF9UWVBFU10KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvZmFjdG9yeS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvZmFjdG9yeS5weQppbmRleCAyOWQ1ZGE5ZGNhMjU0YTkyOGRlOTRkODE1MmE2
ZGY4NDZiZjgwNWUzLi45YTVlZTU2ZTMwNjMxNGFkODFjZDg5Y2YzZWE5ZDFhOWZlNWQ2Mzk3IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2ZhY3Rv
cnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9mYWN0
b3J5LnB5CkBAIC0zMiw4ICszMiw2IEBACiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKIAotZnJvbSAu
dGVzdCBpbXBvcnQgdW5pdF90ZXN0X2ZpbGVzeXN0ZW0KLQogZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMucG9ydCBpbXBvcnQgYnVpbGRlcnMKIAogCkBAIC03NSw3ICs3Myw3IEBAIGNsYXNzIFBv
cnRGYWN0b3J5KG9iamVjdCk6CiAgICAgICAgICAgICBkaWN0aW9uYXJ5W2tleV0gPSBkZWZhdWx0
CiAgICAgICAgIHJldHVybiBkaWN0aW9uYXJ5W2tleV0KIAotICAgIGRlZiBfZ2V0X2t3YXJncyhz
ZWxmLCAqKmt3YXJncyk6CisgICAgZGVmIF9nZXRfa3dhcmdzKHNlbGYsIGhvc3Q9Tm9uZSwgKipr
d2FyZ3MpOgogICAgICAgICBwb3J0X3RvX3VzZSA9IHNlbGYuX3BvcnRfbmFtZV9mcm9tX2FyZ3Vt
ZW50c19hbmRfb3B0aW9ucygqKmt3YXJncykKIAogICAgICAgICBpZiBwb3J0X3RvX3VzZS5zdGFy
dHN3aXRoKCd0ZXN0Jyk6CkBAIC04NCw2ICs4Miw3IEBAIGNsYXNzIFBvcnRGYWN0b3J5KG9iamVj
dCk6CiAgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjayB0byBvdmVycmlkZSB0aGUg
ImRlZmF1bHQiIGZpbGVzeXN0ZW0KICAgICAgICAgICAgICMgcHJvdmlkZWQgdG8gdGhlIHBvcnQu
ICBUaGUgdW5pdF90ZXN0X2ZpbGVzeXN0ZW0gaGFzIGFuIGV4dHJhCiAgICAgICAgICAgICAjIF90
ZXN0cyBhdHRyaWJ1dGUgd2hpY2ggYSBidW5jaCBvZiB1bml0dGVzdHMgZGVwZW5kIG9uLgorICAg
ICAgICAgICAgZnJvbSAudGVzdCBpbXBvcnQgdW5pdF90ZXN0X2ZpbGVzeXN0ZW0KICAgICAgICAg
ICAgIHNlbGYuX3NldF9kZWZhdWx0X292ZXJyaWRpbmdfbm9uZShrd2FyZ3MsICdmaWxlc3lzdGVt
JywgdW5pdF90ZXN0X2ZpbGVzeXN0ZW0oKSkKICAgICAgICAgZWxpZiBwb3J0X3RvX3VzZS5zdGFy
dHN3aXRoKCdkcnlydW4nKToKICAgICAgICAgICAgIGltcG9ydCBkcnlydW4KQEAgLTEyNCwxNSAr
MTIzLDggQEAgY2xhc3MgUG9ydEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ3Vuc3VwcG9ydGVkIHBvcnQ6ICVzJyAl
IHBvcnRfdG9fdXNlKQogCi0gICAgICAgICMgTWFrZSBzdXJlIHRoYXQgYW55IFBvcnRzIGNyZWF0
ZWQgYnkgdGhpcyBmYWN0b3J5IGluaGVyaXQKLSAgICAgICAgIyB0aGUgZXhlY3V0aXZlL3VzZXIv
ZmlsZXN5c3RlbSBmcm9tIHRoZSBwcm92aWRlZCBob3N0LgotICAgICAgICAjIEZJWE1FOiBFdmVu
dHVhbGx5IE5SV1Qgd2lsbCB1c2UgYSBIb3N0IG9iamVjdCBhbmQgUG9ydCB3aWxsIG5vIGxvbmdl
ciBzdG9yZSB0aGVzZSBwb2ludGVycy4KLSAgICAgICAgaWYgc2VsZi5faG9zdDoKLSAgICAgICAg
ICAgIHNlbGYuX3NldF9kZWZhdWx0X292ZXJyaWRpbmdfbm9uZShrd2FyZ3MsICdleGVjdXRpdmUn
LCBzZWxmLl9ob3N0LmV4ZWN1dGl2ZSkKLSAgICAgICAgICAgIHNlbGYuX3NldF9kZWZhdWx0X292
ZXJyaWRpbmdfbm9uZShrd2FyZ3MsICd1c2VyJywgc2VsZi5faG9zdC51c2VyKQotICAgICAgICAg
ICAgc2VsZi5fc2V0X2RlZmF1bHRfb3ZlcnJpZGluZ19ub25lKGt3YXJncywgJ2ZpbGVzeXN0ZW0n
LCBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0pCi0KLSAgICAgICAgcmV0dXJuIG1ha2VyKCoqa3dhcmdz
KQorICAgICAgICBob3N0ID0gaG9zdCBvciBzZWxmLl9ob3N0CisgICAgICAgIHJldHVybiBtYWtl
cihob3N0LCAqKmt3YXJncykKIAogICAgIGRlZiBhbGxfcG9ydF9uYW1lcyhzZWxmKToKICAgICAg
ICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBhbGwgdmFsaWQsIGZ1bGx5LXNwZWNpZmllZCwgInJlYWwi
IHBvcnQgbmFtZXMuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2dvb2dsZV9jaHJvbWUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2dvb2dsZV9jaHJvbWUucHkKaW5kZXggYjg1M2E4NDQ0NTczNTBlNmEwZWUx
MGY5M2FlMjAwNDc2YTRlMTM1ZS4uYTcxY2M2ZGU2NTQ3Nzc2ZGUzZmM2ODEwOGFhOGExNDkzZGVl
YTk2OSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9y
dC9nb29nbGVfY2hyb21lLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvZ29vZ2xlX2Nocm9tZS5weQpAQCAtNDEsNyArNDEsOCBAQCBkZWYgX3Rlc3RfZXhw
ZWN0YXRpb25zX292ZXJyaWRlcyhwb3J0LCBzdXBlcik6CiAgICAgY2hyb21pdW1fb3ZlcnJpZGVz
ID0gY2hyb21pdW1fb3ZlcnJpZGVzIG9yICcnCiAgICAgcmV0dXJuIGNocm9taXVtX292ZXJyaWRl
cyArIHBvcnQuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0X2ZpbGUob3ZlcnJpZGVzX3BhdGgpCiAKLWRl
ZiBHZXRHb29nbGVDaHJvbWVQb3J0KCoqa3dhcmdzKToKKworZGVmIEdldEdvb2dsZUNocm9tZVBv
cnQoaG9zdCwgKiprd2FyZ3MpOgogICAgICIiIlNvbWUgdGVzdHMgaGF2ZSBzbGlnaHRseSBkaWZm
ZXJlbnQgcmVzdWx0cyB3aGVuIGNvbXBpbGVkIGFzIEdvb2dsZQogICAgIENocm9tZSB2cyBDaHJv
bWl1bS4gIEluIHRob3NlIGNhc2VzLCB3ZSBwcmVwZW5kIGFuIGFkZGl0aW9uYWwgZGlyZWN0b3J5
IHRvCiAgICAgdG8gdGhlIGJhc2VsaW5lIHBhdGhzLiIiIgpAQCAtNTQsNjkgKzU1LDU3IEBAIGRl
ZiBHZXRHb29nbGVDaHJvbWVQb3J0KCoqa3dhcmdzKToKIAogICAgICAgICBjbGFzcyBHb29nbGVD
aHJvbWVMaW51eDMyUG9ydChjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCk6CiAgICAg
ICAgICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZik6Ci0gICAgICAgICAgICAgICAg
cGF0aHMgPSBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydC5iYXNlbGluZV9zZWFyY2hf
cGF0aCgKLSAgICAgICAgICAgICAgICAgICAgc2VsZikKLSAgICAgICAgICAgICAgICBwYXRocy5p
bnNlcnQoMCwgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoCi0gICAgICAgICAgICAgICAgICAg
ICdnb29nbGUtY2hyb21lLWxpbnV4MzInKSkKKyAgICAgICAgICAgICAgICBwYXRocyA9IGNocm9t
aXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKHNlbGYpCisg
ICAgICAgICAgICAgICAgcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRo
KCdnb29nbGUtY2hyb21lLWxpbnV4MzInKSkKICAgICAgICAgICAgICAgICByZXR1cm4gcGF0aHMK
IAogICAgICAgICAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmKToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gX3Rlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmLAot
ICAgICAgICAgICAgICAgICAgICBjaHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gX3Rlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmLCBj
aHJvbWl1bV9saW51eC5DaHJvbWl1bUxpbnV4UG9ydCkKIAogICAgICAgICAgICAgZGVmIGFyY2hp
dGVjdHVyZShzZWxmKToKICAgICAgICAgICAgICAgICByZXR1cm4gJ3g4NicKIAotICAgICAgICBy
ZXR1cm4gR29vZ2xlQ2hyb21lTGludXgzMlBvcnQocG9ydF9uYW1lPSdjaHJvbWl1bS1saW51eC14
ODYnLCAqKmt3YXJncykKKyAgICAgICAgcmV0dXJuIEdvb2dsZUNocm9tZUxpbnV4MzJQb3J0KGhv
c3QsIHBvcnRfbmFtZT0nY2hyb21pdW0tbGludXgteDg2JywgKiprd2FyZ3MpCiAgICAgZWxpZiBw
b3J0X25hbWUgPT0gJ2dvb2dsZS1jaHJvbWUtbGludXg2NCc6CiAgICAgICAgIGltcG9ydCBjaHJv
bWl1bV9saW51eAogCiAgICAgICAgIGNsYXNzIEdvb2dsZUNocm9tZUxpbnV4NjRQb3J0KGNocm9t
aXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KToKICAgICAgICAgICAgIGRlZiBiYXNlbGluZV9z
ZWFyY2hfcGF0aChzZWxmKToKLSAgICAgICAgICAgICAgICBwYXRocyA9IGNocm9taXVtX2xpbnV4
LkNocm9taXVtTGludXhQb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKAotICAgICAgICAgICAgICAg
ICAgICBzZWxmKQotICAgICAgICAgICAgICAgIHBhdGhzLmluc2VydCgwLCBzZWxmLl93ZWJraXRf
YmFzZWxpbmVfcGF0aCgKLSAgICAgICAgICAgICAgICAgICAgJ2dvb2dsZS1jaHJvbWUtbGludXg2
NCcpKQorICAgICAgICAgICAgICAgIHBhdGhzID0gY2hyb21pdW1fbGludXguQ2hyb21pdW1MaW51
eFBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZikKKyAgICAgICAgICAgICAgICBwYXRocy5p
bnNlcnQoMCwgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2dvb2dsZS1jaHJvbWUtbGludXg2
NCcpKQogICAgICAgICAgICAgICAgIHJldHVybiBwYXRocwogCiAgICAgICAgICAgICBkZWYgdGVz
dF9leHBlY3RhdGlvbnNfb3ZlcnJpZGVzKHNlbGYpOgotICAgICAgICAgICAgICAgIHJldHVybiBf
dGVzdF9leHBlY3RhdGlvbnNfb3ZlcnJpZGVzKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgIGNo
cm9taXVtX2xpbnV4LkNocm9taXVtTGludXhQb3J0KQorICAgICAgICAgICAgICAgIHJldHVybiBf
dGVzdF9leHBlY3RhdGlvbnNfb3ZlcnJpZGVzKHNlbGYsIGNocm9taXVtX2xpbnV4LkNocm9taXVt
TGludXhQb3J0KQogCiAgICAgICAgICAgICBkZWYgYXJjaGl0ZWN0dXJlKHNlbGYpOgogICAgICAg
ICAgICAgICAgIHJldHVybiAneDg2XzY0JwogCi0gICAgICAgIHJldHVybiBHb29nbGVDaHJvbWVM
aW51eDY0UG9ydChwb3J0X25hbWU9J2Nocm9taXVtLWxpbnV4LXg4Nl82NCcsICoqa3dhcmdzKQor
ICAgICAgICByZXR1cm4gR29vZ2xlQ2hyb21lTGludXg2NFBvcnQoaG9zdCwgcG9ydF9uYW1lPSdj
aHJvbWl1bS1saW51eC14ODZfNjQnLCAqKmt3YXJncykKICAgICBlbGlmIHBvcnRfbmFtZS5zdGFy
dHN3aXRoKCdnb29nbGUtY2hyb21lLW1hYycpOgogICAgICAgICBpbXBvcnQgY2hyb21pdW1fbWFj
CiAKICAgICAgICAgY2xhc3MgR29vZ2xlQ2hyb21lTWFjUG9ydChjaHJvbWl1bV9tYWMuQ2hyb21p
dW1NYWNQb3J0KToKICAgICAgICAgICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToK
LSAgICAgICAgICAgICAgICBwYXRocyA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQuYmFz
ZWxpbmVfc2VhcmNoX3BhdGgoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYpCi0gICAgICAgICAg
ICAgICAgcGF0aHMuaW5zZXJ0KDAsIHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKAotICAgICAg
ICAgICAgICAgICAgICAnZ29vZ2xlLWNocm9tZS1tYWMnKSkKKyAgICAgICAgICAgICAgICBwYXRo
cyA9IGNocm9taXVtX21hYy5DaHJvbWl1bU1hY1BvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2Vs
ZikKKyAgICAgICAgICAgICAgICBwYXRocy5pbnNlcnQoMCwgc2VsZi5fd2Via2l0X2Jhc2VsaW5l
X3BhdGgoJ2dvb2dsZS1jaHJvbWUtbWFjJykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGhz
CiAKICAgICAgICAgICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoc2VsZik6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIF90ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoc2VsZiwK
LSAgICAgICAgICAgICAgICAgICAgY2hyb21pdW1fbWFjLkNocm9taXVtTWFjUG9ydCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gX3Rlc3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmLCBjaHJv
bWl1bV9tYWMuQ2hyb21pdW1NYWNQb3J0KQogCi0gICAgICAgIHJldHVybiBHb29nbGVDaHJvbWVN
YWNQb3J0KCoqa3dhcmdzKQorICAgICAgICByZXR1cm4gR29vZ2xlQ2hyb21lTWFjUG9ydChob3N0
LCAqKmt3YXJncykKICAgICBlbGlmIHBvcnRfbmFtZS5zdGFydHN3aXRoKCdnb29nbGUtY2hyb21l
LXdpbicpOgogICAgICAgICBpbXBvcnQgY2hyb21pdW1fd2luCiAKICAgICAgICAgY2xhc3MgR29v
Z2xlQ2hyb21lV2luUG9ydChjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Qb3J0KToKICAgICAgICAg
ICAgIGRlZiBiYXNlbGluZV9zZWFyY2hfcGF0aChzZWxmKToKLSAgICAgICAgICAgICAgICBwYXRo
cyA9IGNocm9taXVtX3dpbi5DaHJvbWl1bVdpblBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYpCi0gICAgICAgICAgICAgICAgcGF0aHMuaW5zZXJ0KDAs
IHNlbGYuX3dlYmtpdF9iYXNlbGluZV9wYXRoKAotICAgICAgICAgICAgICAgICAgICAnZ29vZ2xl
LWNocm9tZS13aW4nKSkKKyAgICAgICAgICAgICAgICBwYXRocyA9IGNocm9taXVtX3dpbi5DaHJv
bWl1bVdpblBvcnQuYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZikKKyAgICAgICAgICAgICAgICBw
YXRocy5pbnNlcnQoMCwgc2VsZi5fd2Via2l0X2Jhc2VsaW5lX3BhdGgoJ2dvb2dsZS1jaHJvbWUt
d2luJykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGhzCiAKICAgICAgICAgICAgIGRlZiB0
ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoc2VsZik6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IF90ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAg
Y2hyb21pdW1fd2luLkNocm9taXVtV2luUG9ydCkKKyAgICAgICAgICAgICAgICByZXR1cm4gX3Rl
c3RfZXhwZWN0YXRpb25zX292ZXJyaWRlcyhzZWxmLCBjaHJvbWl1bV93aW4uQ2hyb21pdW1XaW5Q
b3J0KQogCi0gICAgICAgIHJldHVybiBHb29nbGVDaHJvbWVXaW5Qb3J0KCoqa3dhcmdzKQorICAg
ICAgICByZXR1cm4gR29vZ2xlQ2hyb21lV2luUG9ydChob3N0LCAqKmt3YXJncykKICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCd1bnN1cHBvcnRlZCBwb3J0OiAlcycgJSBwb3J0X25hbWUp
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2dv
b2dsZV9jaHJvbWVfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2dvb2dsZV9jaHJvbWVfdW5pdHRlc3QucHkKaW5kZXggNDdhOTA0ZTE2ODJmMGJh
ZDI4OGVjZWZjZDY0OGExMDRmNWFjN2QxNS4uMWY3ZTkyNDRmMDM5ZWE5MGUwZDQ3MWQwMzQ0MGFm
YmMyMjUxZjcyMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9nb29nbGVfY2hyb21lX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZ29vZ2xlX2Nocm9tZV91bml0dGVzdC5weQpAQCAtMjgs
NyArMjgsNiBAQCBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9t
b2NrIGltcG9ydCBNb2NrSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0
ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS51c2VyX21vY2sgaW1wb3J0IE1vY2tVc2VyCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
ZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRpdmUKIAogCkBAIC00Nyw3ICs0Niw3IEBA
IGNsYXNzIEdldEdvb2dsZUNocm9tZVBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgc2VsZi5fdmVyaWZ5X2Jhc2VsaW5lX3BhdGgoJ2dvb2dsZS1jaHJvbWUtd2luJywgJ2dvb2ds
ZS1jaHJvbWUtd2luLXZpc3RhJykKIAogICAgIGRlZiBfdmVyaWZ5X2Jhc2VsaW5lX3BhdGgoc2Vs
ZiwgZXhwZWN0ZWRfcGF0aCwgcG9ydF9uYW1lKToKLSAgICAgICAgcG9ydCA9IGdvb2dsZV9jaHJv
bWUuR2V0R29vZ2xlQ2hyb21lUG9ydChwb3J0X25hbWU9cG9ydF9uYW1lLCBvcHRpb25zPU5vbmUs
IGZpbGVzeXN0ZW09TW9ja0ZpbGVTeXN0ZW0oKSwgZXhlY3V0aXZlPU1vY2tFeGVjdXRpdmUoKSwg
dXNlcj1Nb2NrVXNlcigpKQorICAgICAgICBwb3J0ID0gZ29vZ2xlX2Nocm9tZS5HZXRHb29nbGVD
aHJvbWVQb3J0KHBvcnRfbmFtZT1wb3J0X25hbWUsIG9wdGlvbnM9Tm9uZSwgaG9zdD1Nb2NrSG9z
dCgpKQogICAgICAgICBwYXRoID0gcG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpWzBdCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfcGF0aCwgcG9ydC5fZmlsZXN5c3RlbS5iYXNl
bmFtZShwYXRoKSkKIApAQCAtNTksMjAgKzU4LDE5IEBAIGNsYXNzIEdldEdvb2dsZUNocm9tZVBv
cnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaG9zdCA9IE1vY2tIb3N0KCkKICAg
ICAgICAgY2hyb21pdW1fcG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldCgiY2hyb21pdW0tY2ct
bWFjIikKICAgICAgICAgY2hyb21pdW1fYmFzZSA9IGNocm9taXVtX3BvcnQucGF0aF9mcm9tX2No
cm9taXVtX2Jhc2UoKQotICAgICAgICBmcyA9IE1vY2tGaWxlU3lzdGVtKCkKLSAgICAgICAgcG9y
dCA9IGdvb2dsZV9jaHJvbWUuR2V0R29vZ2xlQ2hyb21lUG9ydChwb3J0X25hbWU9cG9ydF9uYW1l
LCBvcHRpb25zPU5vbmUsIGZpbGVzeXN0ZW09ZnMsIGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZlKCks
IHVzZXI9TW9ja1VzZXIoKSkKKyAgICAgICAgcG9ydCA9IGdvb2dsZV9jaHJvbWUuR2V0R29vZ2xl
Q2hyb21lUG9ydChwb3J0X25hbWU9cG9ydF9uYW1lLCBvcHRpb25zPU5vbmUsIGhvc3Q9aG9zdCkK
IAogICAgICAgICBleHBlY3RlZF9jaHJvbWl1bV9vdmVycmlkZXMgPSAnLy8gY2hyb21pdW0gb3Zl
cnJpZGVzXG4nCiAgICAgICAgIGV4cGVjdGVkX2Nocm9tZV9vdmVycmlkZXMgPSAnLy8gY2hyb21l
IG92ZXJyaWRlc1xuJwotICAgICAgICBjaHJvbWl1bV9wYXRoID0gZnMuam9pbihjaHJvbWl1bV9i
YXNlLCAnd2Via2l0JywgJ3Rvb2xzJywgJ2xheW91dF90ZXN0cycsICd0ZXN0X2V4cGVjdGF0aW9u
cy50eHQnKQotICAgICAgICBjaHJvbWVfcGF0aCA9IGZzLmpvaW4oY2hyb21pdW1fYmFzZSwgJ3dl
YmtpdCcsICd0b29scycsICdsYXlvdXRfdGVzdHMnLCAndGVzdF9leHBlY3RhdGlvbnNfY2hyb21l
LnR4dCcpCisgICAgICAgIGNocm9taXVtX3BhdGggPSBob3N0LmZpbGVzeXN0ZW0uam9pbihjaHJv
bWl1bV9iYXNlLCAnd2Via2l0JywgJ3Rvb2xzJywgJ2xheW91dF90ZXN0cycsICd0ZXN0X2V4cGVj
dGF0aW9ucy50eHQnKQorICAgICAgICBjaHJvbWVfcGF0aCA9IGhvc3QuZmlsZXN5c3RlbS5qb2lu
KGNocm9taXVtX2Jhc2UsICd3ZWJraXQnLCAndG9vbHMnLCAnbGF5b3V0X3Rlc3RzJywgJ3Rlc3Rf
ZXhwZWN0YXRpb25zX2Nocm9tZS50eHQnKQogCi0gICAgICAgIGZzLmZpbGVzW2Nocm9taXVtX3Bh
dGhdID0gZXhwZWN0ZWRfY2hyb21pdW1fb3ZlcnJpZGVzCi0gICAgICAgIGZzLmZpbGVzW2Nocm9t
ZV9wYXRoXSA9IE5vbmUKKyAgICAgICAgaG9zdC5maWxlc3lzdGVtLmZpbGVzW2Nocm9taXVtX3Bh
dGhdID0gZXhwZWN0ZWRfY2hyb21pdW1fb3ZlcnJpZGVzCisgICAgICAgIGhvc3QuZmlsZXN5c3Rl
bS5maWxlc1tjaHJvbWVfcGF0aF0gPSBOb25lCiAgICAgICAgIGFjdHVhbF9jaHJvbWVfb3ZlcnJp
ZGVzID0gcG9ydC50ZXN0X2V4cGVjdGF0aW9uc19vdmVycmlkZXMoKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV4cGVjdGVkX2Nocm9taXVtX292ZXJyaWRlcywgYWN0dWFsX2Nocm9tZV9vdmVy
cmlkZXMpCiAKLSAgICAgICAgZnMuZmlsZXNbY2hyb21lX3BhdGhdID0gZXhwZWN0ZWRfY2hyb21l
X292ZXJyaWRlcworICAgICAgICBob3N0LmZpbGVzeXN0ZW0uZmlsZXNbY2hyb21lX3BhdGhdID0g
ZXhwZWN0ZWRfY2hyb21lX292ZXJyaWRlcwogICAgICAgICBhY3R1YWxfY2hyb21lX292ZXJyaWRl
cyA9IHBvcnQudGVzdF9leHBlY3RhdGlvbnNfb3ZlcnJpZGVzKCkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChhY3R1YWxfY2hyb21lX292ZXJyaWRlcywgZXhwZWN0ZWRfY2hyb21pdW1fb3ZlcnJp
ZGVzICsgZXhwZWN0ZWRfY2hyb21lX292ZXJyaWRlcykKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9ndGsucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2d0ay5weQppbmRleCBlYTc3MzVlZTk0ODZlNjM1NzU5
Njk3NWU4YWQ2Y2NmMGJmY2UzMzdjLi5iZWMwYmU0NTMzZTEyM2NkOGM1NzNkYzk5NTYwNmQ3NmY1
YTI0NDg1IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2d0ay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L2d0ay5weQpAQCAtMjYsNiArMjYsOCBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAorCiAiIiJXZWJLaXQgR3Rr
IGltcGxlbWVudGF0aW9uIG9mIHRoZSBQb3J0IGludGVyZmFjZS4iIiIKIAogaW1wb3J0IGxvZ2dp
bmcKQEAgLTM0LDM2ICszNiwzNyBAQCBpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc3VicHJvY2Vzcwog
CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMudGVzdF9jb25maWd1cmF0aW9uIGlt
cG9ydCBUZXN0Q29uZmlndXJhdGlvbgotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBp
bXBvcnQgYmFzZSwgYnVpbGRlcnMsIHNlcnZlcl9wcm9jZXNzLCB3ZWJraXQKK2Zyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLnBvcnQuc2VydmVyX3Byb2Nlc3MgaW1wb3J0IFNlcnZlclByb2Nlc3MK
K2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQud2Via2l0IGltcG9ydCBXZWJLaXREcml2
ZXIsIFdlYktpdFBvcnQKIAogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAK
IAotY2xhc3MgR3RrRHJpdmVyKHdlYmtpdC5XZWJLaXREcml2ZXIpOgorY2xhc3MgR3RrRHJpdmVy
KFdlYktpdERyaXZlcik6CiAgICAgZGVmIHN0YXJ0KHNlbGYpOgogICAgICAgICBkaXNwbGF5X2lk
ID0gc2VsZi5fd29ya2VyX251bWJlciArIDEKICAgICAgICAgcnVuX3h2ZmIgPSBbIlh2ZmIiLCAi
OiVkIiAlIChkaXNwbGF5X2lkKSwgIi1zY3JlZW4iLCAgIjAiLCAiODAweDYwMHgyNCIsICItbm9s
aXN0ZW4iLCAidGNwIl0KLSAgICAgICAgZGV2bnVsbCA9IG9wZW4ob3MuZGV2bnVsbCwgJ3cnKQot
ICAgICAgICBzZWxmLl94dmZiX3Byb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKHJ1bl94dmZiLCBz
dGRlcnI9ZGV2bnVsbCkKLSAgICAgICAgZGV2bnVsbC5jbG9zZSgpCisgICAgICAgIHdpdGggb3Bl
bihvcy5kZXZudWxsLCAndycpIGFzIGRldm51bGw6CisgICAgICAgICAgICBzZWxmLl94dmZiX3By
b2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKHJ1bl94dmZiLCBzdGRlcnI9ZGV2bnVsbCkKICAgICAg
ICAgc2VydmVyX25hbWUgPSBzZWxmLl9wb3J0LmRyaXZlcl9uYW1lKCkKICAgICAgICAgZW52aXJv
bm1lbnQgPSBzZWxmLl9wb3J0LnNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihzZXJ2ZXJfbmFtZSkK
ICAgICAgICAgIyBXZSBtdXN0IGRvIHRoaXMgaGVyZSBiZWNhdXNlIHRoZSBESVNQTEFZIG51bWJl
ciBkZXBlbmRzIG9uIF93b3JrZXJfbnVtYmVyCiAgICAgICAgIGVudmlyb25tZW50WydESVNQTEFZ
J10gPSAiOiVkIiAlIChkaXNwbGF5X2lkKQotICAgICAgICBzZWxmLl9zZXJ2ZXJfcHJvY2VzcyA9
IHNlcnZlcl9wcm9jZXNzLlNlcnZlclByb2Nlc3Moc2VsZi5fcG9ydCwgc2VydmVyX25hbWUsIHNl
bGYuY21kX2xpbmUoKSwgZW52aXJvbm1lbnQpCisgICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNz
ID0gU2VydmVyUHJvY2VzcyhzZWxmLl9wb3J0LCBzZXJ2ZXJfbmFtZSwgc2VsZi5jbWRfbGluZSgp
LCBlbnZpcm9ubWVudCkKIAogICAgIGRlZiBzdG9wKHNlbGYpOgotICAgICAgICB3ZWJraXQuV2Vi
S2l0RHJpdmVyLnN0b3Aoc2VsZikKKyAgICAgICAgV2ViS2l0RHJpdmVyLnN0b3Aoc2VsZikKKyAg
ICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIEV4ZWN1dGl2ZS5raWxsX3Byb2Nlc3MKICAg
ICAgICAgb3Mua2lsbChzZWxmLl94dmZiX3Byb2Nlc3MucGlkLCBzaWduYWwuU0lHVEVSTSkKICAg
ICAgICAgc2VsZi5feHZmYl9wcm9jZXNzLndhaXQoKQogCiAKLWNsYXNzIEd0a1BvcnQod2Via2l0
LldlYktpdFBvcnQpOgorY2xhc3MgR3RrUG9ydChXZWJLaXRQb3J0KToKICAgICBwb3J0X25hbWUg
PSAiZ3RrIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAgd2Vi
a2l0LldlYktpdFBvcnQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGhvc3QsICoqa3dhcmdzKToKKyAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxm
LCBob3N0LCAqKmt3YXJncykKICAgICAgICAgc2VsZi5fdmVyc2lvbiA9IHNlbGYucG9ydF9uYW1l
CiAKICAgICBkZWYgX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyhzZWxmKToKQEAgLTczLDcgKzc2LDcg
QEAgY2xhc3MgR3RrUG9ydCh3ZWJraXQuV2ViS2l0UG9ydCk6CiAgICAgICAgIHJldHVybiBHdGtE
cml2ZXIoc2VsZiwgd29ya2VyX251bWJlcikKIAogICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9z
ZXJ2ZXIoc2VsZiwgc2VydmVyX25hbWU9Tm9uZSk6Ci0gICAgICAgIGVudmlyb25tZW50ID0gd2Vi
a2l0LldlYktpdFBvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlbGYsIHNlcnZlcl9uYW1l
KQorICAgICAgICBlbnZpcm9ubWVudCA9IFdlYktpdFBvcnQuc2V0dXBfZW52aXJvbl9mb3Jfc2Vy
dmVyKHNlbGYsIHNlcnZlcl9uYW1lKQogICAgICAgICBlbnZpcm9ubWVudFsnR1RLX01PRFVMRVMn
XSA9ICdnYWlsJwogICAgICAgICBlbnZpcm9ubWVudFsnTElCT1ZFUkxBWV9TQ1JPTExCQVInXSA9
ICcwJwogICAgICAgICBlbnZpcm9ubWVudFsnVEVTVF9SVU5ORVJfSU5KRUNURURfQlVORExFX0ZJ
TEVOQU1FJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdMaWJyYXJpZXMnLCAnbGliVGVzdFJ1bm5lcklu
amVjdGVkQnVuZGxlLmxhJykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvbWFjLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9tYWMucHkKaW5kZXggNTVhMDZhNjRmZjk1ODAxMGUwNTUzZjk3ZDQ3MDU2NzFkNjQx
OTFiZS4uMGYyNDI2MmJlZGY0M2JlMWVhZTIzMTU5NThhNjMyZDg2NGZmODUxMCAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tYWMucHkKQEAgLTc0LDgg
Kzc0LDggQEAgY2xhc3MgTWFjUG9ydChBcHBsZVBvcnQpOgogICAgICAgICAjIE1hY1BvcnQgb2Jq
ZWN0cyBqdXN0IHRvIHRlc3Qgb3VyIHZlcnNpb24gcGFyc2luZy4KICAgICAgICAgcmV0dXJuIG9z
X3ZlcnNpb24ob3NfdmVyc2lvbl9zdHJpbmcpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgKipr
d2FyZ3MpOgotICAgICAgICBBcHBsZVBvcnQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsICoqa3dhcmdzKToKKyAgICAgICAgQXBwbGVQb3J0Ll9f
aW5pdF9fKHNlbGYsIGhvc3QsICoqa3dhcmdzKQogICAgICAgICBzZWxmLl9vcGVyYXRpbmdfc3lz
dGVtID0gJ21hYycKICAgICAgICAgc2VsZi5fbGVha19kZXRlY3RvciA9IExlYWtEZXRlY3Rvcihz
ZWxmKQogICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oImxlYWtzIik6CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21hY191bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5
CmluZGV4IDk0NzE0NjIwY2YzNzQyYjAwMjczNTNjNDI2NTJlMDcwYjNhZTZmYWMuLmVkMmI1YTNl
NzQ0ZDIwNTA1YTNkMDI5YWQyMTk0OTc0YjA4ODZkMjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbWFjX3VuaXR0ZXN0LnB5CkBAIC0z
Miw3ICszMiw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sg
aW1wb3J0IE1vY2tGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0ub3V0cHV0
Y2FwdHVyZSBpbXBvcnQgT3V0cHV0Q2FwdHVyZQogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29s
IGltcG9ydCBNb2NrT3B0aW9ucwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2
ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0u
dXNlcl9tb2NrIGltcG9ydCBNb2NrVXNlcgorZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2Nr
IGltcG9ydCBNb2NrSG9zdAogCiAKIGNsYXNzIE1hY1Rlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVz
dENhc2UpOgpAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBNYWNUZXN0KHBvcnRfdGVzdGNhc2UuUG9y
dFRlc3RDYXNlKToKICAgICAgICAgcmV0dXJuIE1hY1BvcnQKIAogICAgIGRlZiBhc3NlcnRfc2tp
cHBlZF9maWxlX3NlYXJjaF9wYXRocyhzZWxmLCBwb3J0X25hbWUsIGV4cGVjdGVkX3BhdGhzKToK
LSAgICAgICAgcG9ydCA9IE1hY1BvcnQocG9ydF9uYW1lPXBvcnRfbmFtZSwgZmlsZXN5c3RlbT1N
b2NrRmlsZVN5c3RlbSgpLCB1c2VyPU1vY2tVc2VyKCksIGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZl
KCkpCisgICAgICAgIHBvcnQgPSBNYWNQb3J0KE1vY2tIb3N0KCksIHBvcnRfbmFtZT1wb3J0X25h
bWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5fc2tpcHBlZF9maWxlX3NlYXJjaF9w
YXRocygpLCBleHBlY3RlZF9wYXRocykKIAogICAgIGRlZiB0ZXN0X3NraXBwZWRfZmlsZV9zZWFy
Y2hfcGF0aHMoc2VsZik6CkBAIC03NCwxNiArNzQsMTYgQEAgamF2YS8KICAgICBdCiAKICAgICBk
ZWYgdGVzdF90ZXN0c19mcm9tX3NraXBwZWRfZmlsZV9jb250ZW50cyhzZWxmKToKLSAgICAgICAg
cG9ydCA9IE1hY1BvcnQoZmlsZXN5c3RlbT1Nb2NrRmlsZVN5c3RlbSgpLCB1c2VyPU1vY2tVc2Vy
KCksIGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZlKCkpCisgICAgICAgIHBvcnQgPSBNYWNQb3J0KE1v
Y2tIb3N0KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5fdGVzdHNfZnJvbV9za2lw
cGVkX2ZpbGVfY29udGVudHMoc2VsZi5leGFtcGxlX3NraXBwZWRfZmlsZSksIHNlbGYuZXhhbXBs
ZV9za2lwcGVkX3Rlc3RzKQogCiAgICAgZGVmIGFzc2VydF9uYW1lKHNlbGYsIHBvcnRfbmFtZSwg
b3NfdmVyc2lvbl9zdHJpbmcsIGV4cGVjdGVkKToKLSAgICAgICAgcG9ydCA9IE1hY1BvcnQocG9y
dF9uYW1lPXBvcnRfbmFtZSwgb3NfdmVyc2lvbl9zdHJpbmc9b3NfdmVyc2lvbl9zdHJpbmcsIGZp
bGVzeXN0ZW09TW9ja0ZpbGVTeXN0ZW0oKSwgdXNlcj1Nb2NrVXNlcigpLCBleGVjdXRpdmU9TW9j
a0V4ZWN1dGl2ZSgpKQorICAgICAgICBwb3J0ID0gTWFjUG9ydChNb2NrSG9zdCgpLCBwb3J0X25h
bWU9cG9ydF9uYW1lLCBvc192ZXJzaW9uX3N0cmluZz1vc192ZXJzaW9uX3N0cmluZykKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWQsIHBvcnQubmFtZSgpKQogCiAgICAgZGVmIHRl
c3RfdGVzdHNfZm9yX290aGVyX3BsYXRmb3JtcyhzZWxmKToKICAgICAgICAgcGxhdGZvcm1zID0g
WydtYWMnLCAnY2hyb21pdW0tbGludXgnLCAnbWFjLXNub3dsZW9wYXJkJ10KLSAgICAgICAgcG9y
dCA9IE1hY1BvcnQocG9ydF9uYW1lPSdtYWMtc25vd2xlb3BhcmQnLCBmaWxlc3lzdGVtPU1vY2tG
aWxlU3lzdGVtKCksIHVzZXI9TW9ja1VzZXIoKSwgZXhlY3V0aXZlPU1vY2tFeGVjdXRpdmUoKSkK
KyAgICAgICAgcG9ydCA9IE1hY1BvcnQoTW9ja0hvc3QoKSwgcG9ydF9uYW1lPSdtYWMtc25vd2xl
b3BhcmQnKQogICAgICAgICBwbGF0Zm9ybV9kaXJfcGF0aHMgPSBtYXAocG9ydC5fd2Via2l0X2Jh
c2VsaW5lX3BhdGgsIHBsYXRmb3JtcykKICAgICAgICAgIyBSZXBsYWNlIG91ciBlbXB0eSBtb2Nr
IGZpbGUgc3lzdGVtIHdpdGggb25lIHdoaWNoIGhhcyBvdXIgZXhwZWN0ZWQgcGxhdGZvcm0gZGly
ZWN0b3JpZXMuCiAgICAgICAgIHBvcnQuX2ZpbGVzeXN0ZW0gPSBNb2NrRmlsZVN5c3RlbShkaXJz
PXBsYXRmb3JtX2Rpcl9wYXRocykKQEAgLTk0LDcgKzk0LDcgQEAgamF2YS8KICAgICAgICAgc2Vs
Zi5hc3NlcnRGYWxzZSgncGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkJyBpbiBkaXJzX3RvX3NraXAp
CiAKICAgICBkZWYgdGVzdF92ZXJzaW9uKHNlbGYpOgotICAgICAgICBwb3J0ID0gTWFjUG9ydChm
aWxlc3lzdGVtPU1vY2tGaWxlU3lzdGVtKCksIHVzZXI9TW9ja1VzZXIoKSwgZXhlY3V0aXZlPU1v
Y2tFeGVjdXRpdmUoKSkKKyAgICAgICAgcG9ydCA9IE1hY1BvcnQoTW9ja0hvc3QoKSkKICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQudmVyc2lvbigpKQogCiAgICAgZGVmIHRlc3RfdmVyc2lv
bnMoc2VsZik6CkBAIC0xMTgsNyArMTE4LDcgQEAgamF2YS8KICAgICAgICAgc2VsZi5hc3NlcnRS
YWlzZXMoQXNzZXJ0aW9uRXJyb3IsIHNlbGYuYXNzZXJ0X25hbWUsIE5vbmUsICcxMC4zLjEnLCAn
c2hvdWxkLXJhaXNlLWFzc2VydGlvbi1zby10aGlzLXZhbHVlLWRvZXMtbm90LW1hdHRlcicpCiAK
ICAgICBkZWYgdGVzdF9zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgIHBv
cnQgPSBNYWNQb3J0KG9wdGlvbnM9TW9ja09wdGlvbnMobGVha3M9VHJ1ZSwgZ3VhcmRfbWFsbG9j
PVRydWUpKQorICAgICAgICBwb3J0ID0gTWFjUG9ydChNb2NrSG9zdCgpLCBvcHRpb25zPU1vY2tP
cHRpb25zKGxlYWtzPVRydWUsIGd1YXJkX21hbGxvYz1UcnVlKSkKICAgICAgICAgZW52ID0gcG9y
dC5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIocG9ydC5kcml2ZXJfbmFtZSgpKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhlbnZbJ01hbGxvY1N0YWNrTG9nZ2luZyddLCAnMScpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKGVudlsnRFlMRF9JTlNFUlRfTElCUkFSSUVTJ10sICcvdXNyL2xp
Yi9saWJnbWFsbG9jLmR5bGliJykKQEAgLTEyNyw3ICsxMjcsNyBAQCBqYXZhLwogICAgICAgICAj
IEZJWE1FOiBQb3J0IGNvbnN0cnVjdG9ycyBzaG91bGQgbm90ICJwYXJzZSIgdGhlIHBvcnQgbmFt
ZSwgYnV0CiAgICAgICAgICMgcmF0aGVyIGJlIHBhc3NlZCBjb21wb25lbnRzIChkaXJlY3RseSBv
ciB2aWEgc2V0dGVycykuICBPbmNlCiAgICAgICAgICMgd2UgZml4IHRoYXQsIHRoaXMgbWV0aG9k
IHdpbGwgbmVlZCBhIHJlLXdyaXRlLgotICAgICAgICBwb3J0ID0gTWFjUG9ydChwb3J0X25hbWU9
J21hYy0lcycgJSB2ZXJzaW9uLCBvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1bm5l
cj11c2Vfd2Via2l0MiksIGZpbGVzeXN0ZW09TW9ja0ZpbGVTeXN0ZW0oKSwgdXNlcj1Nb2NrVXNl
cigpLCBleGVjdXRpdmU9TW9ja0V4ZWN1dGl2ZSgpKQorICAgICAgICBwb3J0ID0gTWFjUG9ydChN
b2NrSG9zdCgpLCBwb3J0X25hbWU9J21hYy0lcycgJSB2ZXJzaW9uLCBvcHRpb25zPU1vY2tPcHRp
b25zKHdlYmtpdF90ZXN0X3J1bm5lcj11c2Vfd2Via2l0MikpCiAgICAgICAgIGFic29sdXRlX3Nl
YXJjaF9wYXRocyA9IG1hcChwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCwgc2VhcmNoX3BhdGhz
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKCks
IGFic29sdXRlX3NlYXJjaF9wYXRocykKIApAQCAtMTQyLDcgKzE0Miw3IEBAIGphdmEvCiAgICAg
ICAgIHNlbGYuX2Fzc2VydF9zZWFyY2hfcGF0aChbJ21hYy13azInLCAnbWFjLWxpb24nLCAnbWFj
J10sICdsaW9uJywgdXNlX3dlYmtpdDI9VHJ1ZSkKIAogICAgIGRlZiB0ZXN0X3Nob3dfcmVzdWx0
c19odG1sX2ZpbGUoc2VsZik6Ci0gICAgICAgIHBvcnQgPSBNYWNQb3J0KGZpbGVzeXN0ZW09TW9j
a0ZpbGVTeXN0ZW0oKSwgdXNlcj1Nb2NrVXNlcigpLCBleGVjdXRpdmU9TW9ja0V4ZWN1dGl2ZSgp
KQorICAgICAgICBwb3J0ID0gTWFjUG9ydChNb2NrSG9zdCgpKQogICAgICAgICAjIERlbGF5IHNl
dHRpbmcgYSBzaG91bGRfbG9nIGV4ZWN1dGl2ZSB0byBhdm9pZCBsb2dnaW5nIGZyb20gTWFjUG9y
dC5fX2luaXRfXy4KICAgICAgICAgcG9ydC5fZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZShzaG91
bGRfbG9nPVRydWUpCiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1bl9jb21tYW5k
OiBbJ1Rvb2xzL1NjcmlwdHMvcnVuLXNhZmFyaScsICctLXJlbGVhc2UnLCAnLU5TT3BlbicsICd0
ZXN0Lmh0bWwnXSwgY3dkPS9tb2NrLWNoZWNrb3V0XG4iCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydC5weQppbmRleCAxMzIyOWRlZjc1
MjJkNDk2NTNkNmQxMDhhMDcwNDhjNmI2YWQ5NzdlLi45YmZmODE1YWEyNTkzNDMxM2E1ZjVjNDBh
YWUwNDY3YThlZjIyZmYzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L21vY2tfZHJ0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnQucHkKQEAgLTM0LDE0ICszNCw5IEBAIHBvcnRzIGFuZCBj
aGFuZ2VzIHRoZSBEcml2ZXIgYmluYXJ5IHRvICJNb2NrRFJUIi4KIAogaW1wb3J0IGJhc2U2NAog
aW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAK
LWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgZmlsZXN5c3RlbQotCi1mcm9tIHdl
YmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGltcG9ydCBiYXNlCi1mcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5wb3J0LmZhY3RvcnkgaW1wb3J0IFBvcnRGYWN0b3J5Citmcm9tIHdlYmtpdHB5LmNv
bW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0
IE1vY2tPcHRpb25zCiAKIApAQCAtNTEsMTIgKzQ2LDEyIEBAIF9sb2cgPSBsb2dnaW5nLmdldExv
Z2dlcihfX25hbWVfXykKIGNsYXNzIE1vY2tEUlRQb3J0KG9iamVjdCk6CiAgICAgIiIiTW9ja1Bv
cnQgaW1wbGVtZW50YXRpb24gb2YgdGhlIFBvcnQgaW50ZXJmYWNlLiIiIgogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsICoqa3dhcmdzKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgKipr
d2FyZ3MpOgogICAgICAgICBwcmVmaXggPSAnbW9jay0nCiAgICAgICAgIGlmICdwb3J0X25hbWUn
IGluIGt3YXJnczoKICAgICAgICAgICAgIGt3YXJnc1sncG9ydF9uYW1lJ10gPSBrd2FyZ3NbJ3Bv
cnRfbmFtZSddW2xlbihwcmVmaXgpOl0KLSAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgZ2V0
IHRoZSBQb3J0RmFjdG9yeSBmcm9tIGEgSG9zdCBvYmplY3QuCi0gICAgICAgIHNlbGYuX19kZWxl
Z2F0ZSA9IFBvcnRGYWN0b3J5KCkuZ2V0KCoqa3dhcmdzKQorICAgICAgICBzZWxmLl9ob3N0ID0g
aG9zdAorICAgICAgICBzZWxmLl9fZGVsZWdhdGUgPSBob3N0LnBvcnRfZmFjdG9yeS5nZXQoKipr
d2FyZ3MpCiAgICAgICAgIHNlbGYuX19yZWFsX25hbWUgPSBwcmVmaXggKyBzZWxmLl9fZGVsZWdh
dGUubmFtZSgpCiAKICAgICBkZWYgcmVhbF9uYW1lKHNlbGYpOgpAQCAtNzYsNyArNzEsNyBAQCBj
bGFzcyBNb2NrRFJUUG9ydChvYmplY3QpOgogICAgICAgICByZXR1cm4gZHJpdmVyLmNtZF9saW5l
KCkKIAogICAgIGRlZiBfcGF0aF90b19kcml2ZXIoc2VsZik6Ci0gICAgICAgIHJldHVybiBvcy5w
YXRoLmFic3BhdGgoX19maWxlX18pCisgICAgICAgIHJldHVybiBzZWxmLl9ob3N0LmZpbGVzeXN0
ZW0uYWJzcGF0aChfX2ZpbGVfXykKIAogICAgIGRlZiBjcmVhdGVfZHJpdmVyKHNlbGYsIHdvcmtl
cl9udW1iZXIpOgogICAgICAgICAjIFdlIG5lZWQgdG8gY3JlYXRlIGEgZHJpdmVyIG9iamVjdCBh
cyB0aGUgZGVsZWdhdGUgd291bGQsIGJ1dApAQCAtODgsOCArODMsOCBAQCBjbGFzcyBNb2NrRFJU
UG9ydChvYmplY3QpOgogICAgICAgICBkZWYgb3ZlcnJpZGluZ19jbWRfbGluZSgpOgogICAgICAg
ICAgICAgY21kID0gc2VsZi5fX29yaWdpbmFsX2RyaXZlcl9jbWRfbGluZSgpCiAgICAgICAgICAg
ICBpbmRleCA9IGNtZC5pbmRleChzZWxmLl9fZGVsZWdhdGUuX3BhdGhfdG9fZHJpdmVyKCkpCi0g
ICAgICAgICAgICBjbWRbaW5kZXg6aW5kZXggKyAxXSA9IFtzeXMuZXhlY3V0YWJsZSwgc2VsZi5f
cGF0aF90b19kcml2ZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICct
LXBsYXRmb3JtJywgc2VsZi5uYW1lKCldCisgICAgICAgICAgICAjIEZJWE1FOiBXaHkgZG9lcyB0
aGlzIG5lZWQgdG8gdXNlIHN5cy5leGVjdXRhYmxlIChpbnN0ZWFkIG9mIHNvbWV0aGluZyBtb2Nr
YWJsZSk/CisgICAgICAgICAgICBjbWRbaW5kZXg6aW5kZXggKyAxXSA9IFtzeXMuZXhlY3V0YWJs
ZSwgc2VsZi5fcGF0aF90b19kcml2ZXIoKSwgJy0tcGxhdGZvcm0nLCBzZWxmLm5hbWUoKV0KICAg
ICAgICAgICAgIHJldHVybiBjbWQKIAogICAgICAgICBkZWxlZ2F0ZWRfZHJpdmVyID0gc2VsZi5f
X2RlbGVnYXRlLmNyZWF0ZV9kcml2ZXIod29ya2VyX251bWJlcikKQEAgLTEyMiwxNCArMTE3LDE0
IEBAIGNsYXNzIE1vY2tEUlRQb3J0KG9iamVjdCk6CiAgICAgICAgIHBhc3MKIAogCi1kZWYgbWFp
bihhcmd2LCBmcywgc3RkaW4sIHN0ZG91dCwgc3RkZXJyKToKK2RlZiBtYWluKGFyZ3YsIGhvc3Qs
IHN0ZGluLCBzdGRvdXQsIHN0ZGVycik6CiAgICAgIiIiUnVuIHRoZSB0ZXN0cy4iIiIKIAogICAg
IG9wdGlvbnMsIGFyZ3MgPSBwYXJzZV9vcHRpb25zKGFyZ3YpCiAgICAgaWYgb3B0aW9ucy5jaHJv
bWl1bToKLSAgICAgICAgZHJ0ID0gTW9ja0Nocm9taXVtRFJUKG9wdGlvbnMsIGFyZ3MsIGZzLCBz
dGRpbiwgc3Rkb3V0LCBzdGRlcnIpCisgICAgICAgIGRydCA9IE1vY2tDaHJvbWl1bURSVChvcHRp
b25zLCBhcmdzLCBob3N0LCBzdGRpbiwgc3Rkb3V0LCBzdGRlcnIpCiAgICAgZWxzZToKLSAgICAg
ICAgZHJ0ID0gTW9ja0RSVChvcHRpb25zLCBhcmdzLCBmcywgc3RkaW4sIHN0ZG91dCwgc3RkZXJy
KQorICAgICAgICBkcnQgPSBNb2NrRFJUKG9wdGlvbnMsIGFyZ3MsIGhvc3QsIHN0ZGluLCBzdGRv
dXQsIHN0ZGVycikKICAgICByZXR1cm4gZHJ0LnJ1bigpCiAKIApAQCAtMTc0LDEwICsxNjksMTAg
QEAgY2xhc3MgX0RSVElucHV0KG9iamVjdCk6CiAKIAogY2xhc3MgTW9ja0RSVChvYmplY3QpOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zLCBhcmdzLCBmaWxlc3lzdGVtLCBzdGRpbiwg
c3Rkb3V0LCBzdGRlcnIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zLCBhcmdzLCBo
b3N0LCBzdGRpbiwgc3Rkb3V0LCBzdGRlcnIpOgogICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0
aW9ucwogICAgICAgICBzZWxmLl9hcmdzID0gYXJncwotICAgICAgICBzZWxmLl9maWxlc3lzdGVt
ID0gZmlsZXN5c3RlbQorICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdAogICAgICAgICBzZWxmLl9z
dGRvdXQgPSBzdGRvdXQKICAgICAgICAgc2VsZi5fc3RkaW4gPSBzdGRpbgogICAgICAgICBzZWxm
Ll9zdGRlcnIgPSBzdGRlcnIKQEAgLTE4NSw4ICsxODAsNyBAQCBjbGFzcyBNb2NrRFJUKG9iamVj
dCk6CiAgICAgICAgIHBvcnRfbmFtZSA9IE5vbmUKICAgICAgICAgaWYgb3B0aW9ucy5wbGF0Zm9y
bToKICAgICAgICAgICAgIHBvcnRfbmFtZSA9IG9wdGlvbnMucGxhdGZvcm0KLSAgICAgICAgIyBG
SVhNRTogVGhpcyBzaG91bGQgZ2V0IHRoZSBQb3J0RmFjdG9yeSBmcm9tIGEgSG9zdCBvYmplY3Qu
Ci0gICAgICAgIHNlbGYuX3BvcnQgPSBQb3J0RmFjdG9yeSgpLmdldChwb3J0X25hbWUsIG9wdGlv
bnM9b3B0aW9ucywgZmlsZXN5c3RlbT1maWxlc3lzdGVtKQorICAgICAgICBzZWxmLl9wb3J0ID0g
c2VsZi5faG9zdC5wb3J0X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZSwgb3B0aW9ucz1vcHRpb25zKQog
CiAgICAgZGVmIHJ1bihzZWxmKToKICAgICAgICAgd2hpbGUgVHJ1ZToKQEAgLTI3MCw3ICsyNjQs
NyBAQCBjbGFzcyBNb2NrQ2hyb21pdW1EUlQoTW9ja0RSVCk6CiAgICAgICAgIHNlbGYuX3N0ZG91
dC53cml0ZSgiI1VSTDolc1xuIiAlIHRlc3RfaW5wdXQudXJpKQogICAgICAgICBpZiBzZWxmLl9v
cHRpb25zLnBpeGVsX3Rlc3RzIGFuZCB0ZXN0X2lucHV0LmNoZWNrc3VtOgogICAgICAgICAgICAg
c2VsZi5fc3Rkb3V0LndyaXRlKCIjTUQ1OiVzXG4iICUgYWN0dWFsX2NoZWNrc3VtKQotICAgICAg
ICAgICAgc2VsZi5fZmlsZXN5c3RlbS53cml0ZV9iaW5hcnlfZmlsZShzZWxmLl9vcHRpb25zLnBp
eGVsX3BhdGgsCisgICAgICAgICAgICBzZWxmLl9ob3N0LmZpbGVzeXN0ZW0ud3JpdGVfYmluYXJ5
X2ZpbGUoc2VsZi5fb3B0aW9ucy5waXhlbF9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxfaW1hZ2UpCiAgICAgICAgIHNlbGYuX3N0ZG91
dC53cml0ZShhY3R1YWxfdGV4dCkKIApAQCAtMjgzLDUgKzI3Nyw2IEBAIGNsYXNzIE1vY2tDaHJv
bWl1bURSVChNb2NrRFJUKToKIAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIGZz
ID0gZmlsZXN5c3RlbS5GaWxlU3lzdGVtKCkKLSAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2WzE6
XSwgZnMsIHN5cy5zdGRpbiwgc3lzLnN0ZG91dCwgc3lzLnN0ZGVycikpCisgICAgIyBGSVhNRTog
V2h5IGlzIHRoaXMgdXNpbmcgYSByZWFsIEhvc3Qgb2JqZWN0IGluc3RlYWQgb2YgTW9ja0hvc3Q/
CisgICAgaG9zdCA9IEhvc3QoKQorICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3ZbMTpdLCBob3N0
LCBzeXMuc3RkaW4sIHN5cy5zdGRvdXQsIHN5cy5zdGRlcnIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydF91bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvbW9ja19kcnRfdW5pdHRl
c3QucHkKaW5kZXggOWEwNzRjMThjZWEzOTI1MGM1ODFmZWYwOTUzMTU5ZDU3YzA0YTk2NC4uNTY3
YzA4NzZjYzFlM2JmZWQ3MjZlMmEwMmQ4MjM1NTk2MmMzMmQ0ZiAxMDA3NTUKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9tb2NrX2RydF91bml0dGVzdC5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L21vY2tfZHJ0X3Vu
aXR0ZXN0LnB5CkBAIC00OCwxNSArNDgsMTUgQEAgY2xhc3MgTW9ja0RSVFBvcnRUZXN0KHBvcnRf
dGVzdGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICBkZWYgbWFrZV9wb3J0KHNlbGYsIG9wdGlvbnM9
bW9ja19vcHRpb25zKToKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CiAgICAg
ICAgICAgICAjIFdlIHVzZSB0aGlzIGJlY2F1c2UgdGhlICd3aW4nIHBvcnQgZG9lc24ndCB3b3Jr
IHlldC4KLSAgICAgICAgICAgIHJldHVybiBtb2NrX2RydC5Nb2NrRFJUUG9ydChwb3J0X25hbWU9
J21vY2stY2hyb21pdW0td2luJywgb3B0aW9ucz1vcHRpb25zKQotICAgICAgICByZXR1cm4gbW9j
a19kcnQuTW9ja0RSVFBvcnQob3B0aW9ucz1vcHRpb25zKQorICAgICAgICAgICAgcmV0dXJuIG1v
Y2tfZHJ0Lk1vY2tEUlRQb3J0KE1vY2tIb3N0KCksIHBvcnRfbmFtZT0nbW9jay1jaHJvbWl1bS13
aW4nLCBvcHRpb25zPW9wdGlvbnMpCisgICAgICAgIHJldHVybiBtb2NrX2RydC5Nb2NrRFJUUG9y
dChNb2NrSG9zdCgpLCBvcHRpb25zPW9wdGlvbnMpCiAKICAgICBkZWYgdGVzdF9kZWZhdWx0X3dv
cmtlcl9tb2RlbChzZWxmKToKICAgICAgICAgIyBvbmx5IG92ZXJyaWRkaW5nIHRoZSBkZWZhdWx0
IHRlc3Q7IHdlIGRvbid0IGNhcmUgYWJvdXQgdGhpcyBvbmUuCiAgICAgICAgIHBhc3MKIAogICAg
IGRlZiB0ZXN0X3BvcnRfbmFtZV9pbl9jb25zdHJ1Y3RvcihzZWxmKToKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG1vY2tfZHJ0Lk1vY2tEUlRQb3J0KHBvcnRfbmFtZT0nbW9jay10ZXN0JykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtb2NrX2RydC5Nb2NrRFJUUG9ydChNb2NrSG9zdCgpLCBw
b3J0X25hbWU9J21vY2stdGVzdCcpKQogCiAgICAgZGVmIHRlc3RfY2hlY2tfc3lzX2RlcHMoc2Vs
Zik6CiAgICAgICAgIHBhc3MKQEAgLTEwNSw4ICsxMDUsOCBAQCBjbGFzcyBNb2NrRFJUVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICByZXR1cm4gWyctLXBpeGVsLXRlc3RzJywg
Jy0nXQogICAgICAgICByZXR1cm4gWyctJ10KIAotICAgIGRlZiBtYWtlX2RydChzZWxmLCBvcHRp
b25zLCBhcmdzLCBmaWxlc3lzdGVtLCBzdGRpbiwgc3Rkb3V0LCBzdGRlcnIpOgotICAgICAgICBy
ZXR1cm4gbW9ja19kcnQuTW9ja0RSVChvcHRpb25zLCBhcmdzLCBmaWxlc3lzdGVtLCBzdGRpbiwg
c3Rkb3V0LCBzdGRlcnIpCisgICAgZGVmIG1ha2VfZHJ0KHNlbGYsIG9wdGlvbnMsIGFyZ3MsIGhv
c3QsIHN0ZGluLCBzdGRvdXQsIHN0ZGVycik6CisgICAgICAgIHJldHVybiBtb2NrX2RydC5Nb2Nr
RFJUKG9wdGlvbnMsIGFyZ3MsIGhvc3QsIHN0ZGluLCBzdGRvdXQsIHN0ZGVycikKIAogICAgIGRl
ZiBtYWtlX2lucHV0X291dHB1dChzZWxmLCBwb3J0LCB0ZXN0X25hbWUsIHBpeGVsX3Rlc3RzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9jaGVja3N1bSwgZHJ0X291dHB1dCwg
ZHJ0X2lucHV0PU5vbmUpOgpAQCAtMTQwLDggKzE0MCw4IEBAIGNsYXNzIE1vY2tEUlRUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgYXNzZXJ0VGVzdChzZWxmLCB0ZXN0X25hbWUsIHBp
eGVsX3Rlc3RzLCBleHBlY3RlZF9jaGVja3N1bT1Ob25lLCBkcnRfb3V0cHV0PU5vbmUsIGZpbGVz
eXN0ZW09Tm9uZSk6CiAgICAgICAgIHBvcnRfbmFtZSA9ICd0ZXN0JwogICAgICAgICBob3N0ID0g
TW9ja0hvc3QoKQotICAgICAgICBmaWxlc3lzdGVtID0gZmlsZXN5c3RlbSBvciB0ZXN0LnVuaXRf
dGVzdF9maWxlc3lzdGVtKCkKLSAgICAgICAgcG9ydCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldChw
b3J0X25hbWUsIGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSkKKyAgICAgICAgaG9zdC5maWxlc3lzdGVt
ID0gZmlsZXN5c3RlbSBvciB0ZXN0LnVuaXRfdGVzdF9maWxlc3lzdGVtKCkKKyAgICAgICAgcG9y
dCA9IGhvc3QucG9ydF9mYWN0b3J5LmdldChwb3J0X25hbWUpCiAgICAgICAgIGRydF9pbnB1dCwg
ZHJ0X291dHB1dCA9IHNlbGYubWFrZV9pbnB1dF9vdXRwdXQocG9ydCwgdGVzdF9uYW1lLAogICAg
ICAgICAgICAgcGl4ZWxfdGVzdHMsIGV4cGVjdGVkX2NoZWNrc3VtLCBkcnRfb3V0cHV0KQogCkBA
IC0xNTEsNyArMTUxLDcgQEAgY2xhc3MgTW9ja0RSVFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBzdGRlcnIgPSBuZXdzdHJpbmdpby5TdHJpbmdJTygpCiAgICAgICAgIG9wdGlvbnMs
IGFyZ3MgPSBtb2NrX2RydC5wYXJzZV9vcHRpb25zKGFyZ3MpCiAKLSAgICAgICAgZHJ0ID0gc2Vs
Zi5tYWtlX2RydChvcHRpb25zLCBhcmdzLCBmaWxlc3lzdGVtLCBzdGRpbiwgc3Rkb3V0LCBzdGRl
cnIpCisgICAgICAgIGRydCA9IHNlbGYubWFrZV9kcnQob3B0aW9ucywgYXJncywgaG9zdCwgc3Rk
aW4sIHN0ZG91dCwgc3RkZXJyKQogICAgICAgICByZXMgPSBkcnQucnVuKCkKIAogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlcywgMCkKQEAgLTE2MiwxNiArMTYyLDE3IEBAIGNsYXNzIE1vY2tE
UlRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGRl
cnIuZ2V0dmFsdWUoKSwgJycpCiAKICAgICBkZWYgdGVzdF9tYWluKHNlbGYpOgotICAgICAgICBm
aWxlc3lzdGVtID0gdGVzdC51bml0X3Rlc3RfZmlsZXN5c3RlbSgpCisgICAgICAgIGhvc3QgPSBN
b2NrSG9zdCgpCisgICAgICAgIGhvc3QuZmlsZXN5c3RlbSA9IHRlc3QudW5pdF90ZXN0X2ZpbGVz
eXN0ZW0oKQogICAgICAgICBzdGRpbiA9IG5ld3N0cmluZ2lvLlN0cmluZ0lPKCkKICAgICAgICAg
c3Rkb3V0ID0gbmV3c3RyaW5naW8uU3RyaW5nSU8oKQogICAgICAgICBzdGRlcnIgPSBuZXdzdHJp
bmdpby5TdHJpbmdJTygpCiAgICAgICAgIHJlcyA9IG1vY2tfZHJ0Lm1haW4oWyctLXBsYXRmb3Jt
JywgJ3Rlc3QnXSArIHNlbGYuZXh0cmFfYXJncyhGYWxzZSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmlsZXN5c3RlbSwgc3RkaW4sIHN0ZG91dCwgc3RkZXJyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhvc3QsIHN0ZGluLCBzdGRvdXQsIHN0ZGVycikKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChyZXMsIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0Lmdl
dHZhbHVlKCksICcnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0ZGVyci5nZXR2YWx1ZSgp
LCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlc3lzdGVtLndyaXR0ZW5fZmlsZXMs
IHt9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhvc3QuZmlsZXN5c3RlbS53cml0dGVuX2Zp
bGVzLCB7fSkKIAogICAgIGRlZiB0ZXN0X3BpeGVsdGVzdF9wYXNzZXMoc2VsZik6CiAgICAgICAg
ICMgVGhpcyBhbHNvIHRlc3RzIHRoYXQgd2UgaGFuZGxlIEhUVFA6IHRlc3QgVVJMcyBwcm9wZXJs
eS4KQEAgLTIwNCw3ICsyMDUsNyBAQCBjbGFzcyBNb2NrQ2hyb21pdW1EUlRUZXN0KE1vY2tEUlRU
ZXN0KToKICAgICAgICAgICAgIHJldHVybiBbJy0tcGl4ZWwtdGVzdHM9L3RtcC9wbmdfcmVzdWx0
MC5wbmcnXQogICAgICAgICByZXR1cm4gW10KIAotICAgIGRlZiBtYWtlX2RydChzZWxmLCBvcHRp
b25zLCBhcmdzLCBmaWxlc3lzdGVtLCBzdGRpbiwgc3Rkb3V0LCBzdGRlcnIpOgorICAgIGRlZiBt
YWtlX2RydChzZWxmLCBvcHRpb25zLCBhcmdzLCBob3N0LCBzdGRpbiwgc3Rkb3V0LCBzdGRlcnIp
OgogICAgICAgICBvcHRpb25zLmNocm9taXVtID0gVHJ1ZQogCiAgICAgICAgICMgV2UgaGF2ZSB0
byBzZXQgdGhlc2UgYnkgaGFuZCBiZWNhdXNlIC0tcGxhdGZvcm0gdGVzdCB3b24ndCB0cmlnZ2Vy
CkBAIC0yMTIsNyArMjEzLDcgQEAgY2xhc3MgTW9ja0Nocm9taXVtRFJUVGVzdChNb2NrRFJUVGVz
dCk6CiAgICAgICAgIG9wdGlvbnMucGl4ZWxfcGF0aCA9ICcvdG1wL3BuZ19yZXN1bHQwLnBuZycK
ICAgICAgICAgb3B0aW9ucy5waXhlbF90ZXN0cyA9IFRydWUKIAotICAgICAgICByZXR1cm4gbW9j
a19kcnQuTW9ja0Nocm9taXVtRFJUKG9wdGlvbnMsIGFyZ3MsIGZpbGVzeXN0ZW0sIHN0ZGluLCBz
dGRvdXQsIHN0ZGVycikKKyAgICAgICAgcmV0dXJuIG1vY2tfZHJ0Lk1vY2tDaHJvbWl1bURSVChv
cHRpb25zLCBhcmdzLCBob3N0LCBzdGRpbiwgc3Rkb3V0LCBzdGRlcnIpCiAKICAgICBkZWYgaW5w
dXRfbGluZShzZWxmLCBwb3J0LCB0ZXN0X25hbWUsIGNoZWNrc3VtPU5vbmUpOgogICAgICAgICB1
cmwgPSBwb3J0LnRlc3RfdG9fdXJpKHRlc3RfbmFtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcG9ydF90ZXN0Y2FzZS5weQppbmRleCA3
OWY3NmExOTYzY2NjYmZjNjg2Y2UxZTAwMDdkNWUwNDljNDQ5YmQwLi45NDFlYjA3MTdkMDRlZTc1
ZThiNTIwMDEzZDFlY2VlMzEzMDc1MWY1IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3BvcnRfdGVzdGNhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CkBAIC00Niw3ICs0
Niw3IEBAIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMgaW1wb3J0IGh0dHBfc2Vy
dmVyX2Jhc2UKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1w
b3J0IE1vY2tGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1v
Y2tPcHRpb25zCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1w
b3J0IE1vY2tFeGVjdXRpdmUKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS51c2VyX21vY2sg
aW1wb3J0IE1vY2tVc2VyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1v
Y2tIb3N0CiBtb2NrX29wdGlvbnMgPSBNb2NrT3B0aW9ucyhjb25maWd1cmF0aW9uPSdSZWxlYXNl
JykKIAogCkBAIC02OCw3ICs2OCw3IEBAIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgIGlmIG5vdCBtYWtlcjoKICAgICAgICAgICAgIHJldHVybiBOb25lCiAK
LSAgICAgICAgcmV0dXJuIG1ha2VyKG9wdGlvbnM9b3B0aW9ucywgZmlsZXN5c3RlbT1Nb2NrRmls
ZVN5c3RlbSgpLCB1c2VyPU1vY2tVc2VyKCksIGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZlKCkpCisg
ICAgICAgIHJldHVybiBtYWtlcihvcHRpb25zPW9wdGlvbnMsIGhvc3Q9TW9ja0hvc3QoKSkKIAog
ICAgIGRlZiB0ZXN0X2RlZmF1bHRfd29ya2VyX21vZGVsKHNlbGYpOgogICAgICAgICBwb3J0ID0g
c2VsZi5tYWtlX3BvcnQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC9xdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L3BvcnQvcXQucHkKaW5kZXggYTkwYTM2MmYzYTdjMjhjYjg2MGMwMjM3Mjg1NmQwZThhNGE2Njky
YS4uNWVjYzg5MDk0ZDMwODMxZGE1YTIwY2U4MDRlMmE4ZjJmNmFmMjI2OCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CkBAIC01OSw4ICs1OSw4
IEBAIGNsYXNzIFF0UG9ydChXZWJLaXRQb3J0KToKICAgICAgICAgcmV0dXJuIE5vbmUKIAogICAg
ICMgc3lzX3BsYXRmb3JtIGV4aXN0cyBvbmx5IGZvciB1bml0IHRlc3RpbmcuCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHN5c19wbGF0Zm9ybT1Ob25lLCAqKmt3YXJncyk6Ci0gICAgICAgIFdlYktp
dFBvcnQuX19pbml0X18oc2VsZiwgKiprd2FyZ3MpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhv
c3QsIHN5c19wbGF0Zm9ybT1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIFdlYktpdFBvcnQuX19p
bml0X18oc2VsZiwgaG9zdCwgKiprd2FyZ3MpCiAgICAgICAgIHNlbGYuX29wZXJhdGluZ19zeXN0
ZW0gPSBzZWxmLl9vcGVyYXRpbmdfc3lzdGVtX2Zvcl9wbGF0Zm9ybShzeXNfcGxhdGZvcm0gb3Ig
c3lzLnBsYXRmb3JtKQogICAgICAgICBzZWxmLl92ZXJzaW9uID0gc2VsZi5fb3BlcmF0aW5nX3N5
c3RlbQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3F0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9xdF91bml0dGVzdC5weQppbmRleCA2OTdmYjQzNDcyOGFmMGMwYTYwZTUyZWZhYTEyOWU1
MWIwYTBlNDE2Li41MjY5ZGQ2OGExOGJmMGMyYTI5MWFkMzdlM2MxMDY4MmVhNWU4MTMzIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0X3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXRf
dW5pdHRlc3QucHkKQEAgLTM1LDcgKzM1LDcgQEAgZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMu
cG9ydC5xdCBpbXBvcnQgUXRQb3J0CiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGlt
cG9ydCBwb3J0X3Rlc3RjYXNlCiBmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1v
Y2tPcHRpb25zCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1w
b3J0IE1vY2tFeGVjdXRpdmUKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS51c2VyX21vY2sg
aW1wb3J0IE1vY2tVc2VyCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5ob3N0X21vY2sgaW1wb3J0IE1v
Y2tIb3N0CiAKIAogY2xhc3MgUXRQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6
CkBAIC00OCw4ICs0OCw3IEBAIGNsYXNzIFF0UG9ydFRlc3QocG9ydF90ZXN0Y2FzZS5Qb3J0VGVz
dENhc2UpOgogICAgICAgICAjIHdlIGZpeCB0aGF0LCB0aGlzIG1ldGhvZCB3aWxsIG5lZWQgYSBy
ZS13cml0ZS4KICAgICAgICAgcG9ydCA9IFF0UG9ydChzeXNfcGxhdGZvcm09c3lzX3BsYXRmb3Jt
LAogICAgICAgICAgICAgb3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9dXNl
X3dlYmtpdDIsIHBsYXRmb3JtPSdxdCcpLAotICAgICAgICAgICAgZmlsZXN5c3RlbT1Nb2NrRmls
ZVN5c3RlbSgpLAotICAgICAgICAgICAgdXNlcj1Nb2NrVXNlcigpLAorICAgICAgICAgICAgaG9z
dD1Nb2NrSG9zdCgpLAogICAgICAgICAgICAgZXhlY3V0aXZlPU1vY2tFeGVjdXRpdmUyKHNlbGYu
X3F0X3ZlcnNpb24ocXRfdmVyc2lvbikpKQogICAgICAgICBhYnNvbHV0ZV9zZWFyY2hfcGF0aHMg
PSBtYXAocG9ydC5fd2Via2l0X2Jhc2VsaW5lX3BhdGgsIHNlYXJjaF9wYXRocykKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMocG9ydC5iYXNlbGluZV9zZWFyY2hfcGF0aCgpLCBhYnNvbHV0ZV9z
ZWFyY2hfcGF0aHMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3Rlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3Rlc3QucHkKaW5kZXggMThlMGU0ODA0YzQxNjUyZGRiMzE4MjIwMmZmMTg3MjBjN2YwYzM5
ZC4uYTRhZmEyMmUyNTdjNzY1YjFlYTU2NWIzNWQ2Mzk1OGIzOWEyZWY3NiAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQpAQCAtMzUsOCAr
MzUsNyBAQCBpbXBvcnQgdGltZQogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0IGlt
cG9ydCBQb3J0LCBEcml2ZXIsIERyaXZlck91dHB1dAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMubW9kZWxzLnRlc3RfY29uZmlndXJhdGlvbiBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb24KLWZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS51c2VyX21vY2sgaW1wb3J0IE1vY2tVc2VyCi1mcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlX21vY2sgaW1wb3J0IE1vY2tFeGVjdXRp
dmUKK2Zyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21vY2sgaW1wb3J0IE1vY2tGaWxlU3lz
dGVtCiAKIApAQCAtMjc3LDE1ICsyNzYsMTQgQEAgY2xhc3MgVGVzdFBvcnQoUG9ydCk6CiAgICAg
ICAgICAgICBkaWN0aW9uYXJ5W2tleV0gPSBkZWZhdWx0CiAgICAgICAgIHJldHVybiBkaWN0aW9u
YXJ5W2tleV0KIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgKiprd2Fy
Z3MpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0PU5vbmUsIHBvcnRfbmFtZT1Ob25lLCAq
Kmt3YXJncyk6CiAgICAgICAgIGlmIG5vdCBwb3J0X25hbWUgb3IgcG9ydF9uYW1lID09ICd0ZXN0
JzoKICAgICAgICAgICAgIHBvcnRfbmFtZSA9ICd0ZXN0LW1hYy1sZW9wYXJkJwogCi0gICAgICAg
IHNlbGYuX3NldF9kZWZhdWx0X292ZXJyaWRpbmdfbm9uZShrd2FyZ3MsICd1c2VyJywgTW9ja1Vz
ZXIoKSkKLSAgICAgICAgc2VsZi5fc2V0X2RlZmF1bHRfb3ZlcnJpZGluZ19ub25lKGt3YXJncywg
J2V4ZWN1dGl2ZScsIE1vY2tFeGVjdXRpdmUoKSkKKyAgICAgICAgaG9zdCA9IGhvc3Qgb3IgTW9j
a0hvc3QoKQogICAgICAgICBmaWxlc3lzdGVtID0gc2VsZi5fc2V0X2RlZmF1bHRfb3ZlcnJpZGlu
Z19ub25lKGt3YXJncywgJ2ZpbGVzeXN0ZW0nLCB1bml0X3Rlc3RfZmlsZXN5c3RlbSgpKQogCi0g
ICAgICAgIFBvcnQuX19pbml0X18oc2VsZiwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgKiprd2FyZ3Mp
CisgICAgICAgIFBvcnQuX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwg
Kiprd2FyZ3MpCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gTm9uZQogCiAgICAg
ICAgIGFzc2VydCBmaWxlc3lzdGVtLl90ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQppbmRleCAzMDI0ODgxYTQwODU3OWNiZDhj
YmE5NmE1YjA3ZWU4ODQ5OTM4YWVmLi40ZDI1MTk1NTExZjYzYzcyZjQ2NTRmOTFlNTZlMDJiMDU4
YWQ4M2ZmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3dlYmtpdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3dlYmtpdC5weQpAQCAtNDksOCArNDksOCBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIo
X19uYW1lX18pCiAKIAogY2xhc3MgV2ViS2l0UG9ydChQb3J0KToKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBQb3J0Ll9faW5pdF9fKHNlbGYsICoqa3dhcmdzKQor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCAqKmt3YXJncyk6CisgICAgICAgIFBvcnQuX19p
bml0X18oc2VsZiwgaG9zdCwgKiprd2FyZ3MpCiAKICAgICAgICAgIyBGSVhNRTogRGlzYWJsZSBw
aXhlbCB0ZXN0cyB1bnRpbCB0aGV5IGFyZSBydW4gYnkgZGVmYXVsdCBvbiBidWlsZC53ZWJraXQu
b3JnLgogICAgICAgICBzZWxmLnNldF9vcHRpb25fZGVmYXVsdCgicGl4ZWxfdGVzdHMiLCBGYWxz
ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
d2Via2l0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXRfdW5pdHRlc3QucHkKaW5kZXggYTI2NmNhYmJjMzNjOGMwNTgxYjFmY2I1ZmYy
ODcyODVlN2E5ZWIyMS4uOWQ0ZTRlZjUyMzRkOWIzMDc4OWE0N2Q2ZGJjODBiYWI1NjM0NDI4YiAx
MDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJr
aXRfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC93ZWJraXRfdW5pdHRlc3QucHkKQEAgLTI3LDMyICsyNywyNiBAQAogCiBpbXBvcnQgdW5p
dHRlc3QKIAorZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBNb2NrSG9zdAor
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhl
Y3V0aXZlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9y
dCBNb2NrRmlsZVN5c3RlbQogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1
cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKLQogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9k
ZWxzLnRlc3RfY29uZmlndXJhdGlvbiBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb24KLWZyb20gd2Vi
a2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQud2Via2l0IGltcG9ydCBXZWJLaXRQb3J0LCBXZWJLaXRE
cml2ZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IHBvcnRfdGVzdGNh
c2UKLQorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC53ZWJraXQgaW1wb3J0IFdlYktp
dFBvcnQsIFdlYktpdERyaXZlcgogZnJvbSB3ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBN
b2NrT3B0aW9ucwotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGlt
cG9ydCBNb2NrRXhlY3V0aXZlCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0udXNlcl9tb2Nr
IGltcG9ydCBNb2NrVXNlcgotCiAKIAogY2xhc3MgVGVzdFdlYktpdFBvcnQoV2ViS2l0UG9ydCk6
CiAgICAgcG9ydF9uYW1lID0gInRlc3R3ZWJraXRwb3J0IgogCiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHN5bWJvbHNfc3RyaW5nPU5vbmUsIGZlYXR1cmVfbGlzdD1Ob25lLAotICAgICAgICAgICAg
ICAgICBleHBlY3RhdGlvbnNfZmlsZT1Ob25lLCBza2lwc19maWxlPU5vbmUsCi0gICAgICAgICAg
ICAgICAgIGV4ZWN1dGl2ZT1Ob25lLCBmaWxlc3lzdGVtPU5vbmUsIHVzZXI9Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgZXhwZWN0YXRpb25zX2ZpbGU9Tm9uZSwgc2tpcHNfZmlsZT1Ob25lLCBob3N0
PU5vbmUsCiAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5zeW1ib2xz
X3N0cmluZyA9IHN5bWJvbHNfc3RyaW5nICAjIFBhc3NpbmcgIiIgZGlzYWJsZXMgYWxsIHN0YXRp
Y2x5LWRldGVjdGFibGUgZmVhdHVyZXMuCiAgICAgICAgIHNlbGYuZmVhdHVyZV9saXN0ID0gZmVh
dHVyZV9saXN0ICAjIFBhc3NpbmcgW10gZGlzYWJsZXMgYWxsIHJ1bnRpbWUtZGV0ZWN0YWJsZSBm
ZWF0dXJlcy4KLSAgICAgICAgZXhlY3V0aXZlID0gZXhlY3V0aXZlIG9yIE1vY2tFeGVjdXRpdmUo
c2hvdWxkX2xvZz1GYWxzZSkKLSAgICAgICAgZmlsZXN5c3RlbSA9IGZpbGVzeXN0ZW0gb3IgTW9j
a0ZpbGVTeXN0ZW0oKQotICAgICAgICB1c2VyID0gdXNlciBvciBNb2NrVXNlcigpCi0gICAgICAg
IFdlYktpdFBvcnQuX19pbml0X18oc2VsZiwgZXhlY3V0aXZlPWV4ZWN1dGl2ZSwgZmlsZXN5c3Rl
bT1maWxlc3lzdGVtLCB1c2VyPU1vY2tVc2VyKCksICoqa3dhcmdzKQorICAgICAgICBob3N0ID0g
aG9zdCBvciBNb2NrSG9zdCgpCisgICAgICAgIFdlYktpdFBvcnQuX19pbml0X18oc2VsZiwgaG9z
dD1ob3N0LCAqKmt3YXJncykKIAogICAgIGRlZiBhbGxfdGVzdF9jb25maWd1cmF0aW9ucyhzZWxm
KToKICAgICAgICAgcmV0dXJuIFtUZXN0Q29uZmlndXJhdGlvbi5mcm9tX3BvcnQoc2VsZildCkBA
IC03NCwxMyArNjgsMTMgQEAgY2xhc3MgV2ViS2l0UG9ydFVuaXRUZXN0cyh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgZGVmIHRlc3RfZGVmYXVsdF9vcHRpb25zKHNlbGYpOgogICAgICAgICAjIFRo
ZSBXZWJLaXQgcG9ydHMgb3ZlcnJpZGUgbmV3LXJ1bi13ZWJraXQtdGVzdCBkZWZhdWx0IG9wdGlv
bnMuCiAgICAgICAgIG9wdGlvbnMgPSBNb2NrT3B0aW9ucyhwaXhlbF90ZXN0cz1Ob25lLCB0aW1l
X291dF9tcz1Ob25lKQotICAgICAgICBwb3J0ID0gV2ViS2l0UG9ydChvcHRpb25zPW9wdGlvbnMp
CisgICAgICAgIHBvcnQgPSBXZWJLaXRQb3J0KE1vY2tIb3N0KCksIG9wdGlvbnM9b3B0aW9ucykK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5fb3B0aW9ucy5waXhlbF90ZXN0cywgRmFs
c2UpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuX29wdGlvbnMudGltZV9vdXRfbXMs
IDM1MDAwKQogCiAgICAgICAgICMgTm90ZSB0aGF0IHdlIGRvbid0IG92ZXJyaWRlIG9wdGlvbnMg
aWYgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLgogICAgICAgICBvcHRpb25zID0gTW9ja09wdGlvbnMo
cGl4ZWxfdGVzdHM9VHJ1ZSwgdGltZV9vdXRfbXM9NjAwMCkKLSAgICAgICAgcG9ydCA9IFdlYktp
dFBvcnQob3B0aW9ucz1vcHRpb25zKQorICAgICAgICBwb3J0ID0gV2ViS2l0UG9ydChNb2NrSG9z
dCgpLCBvcHRpb25zPW9wdGlvbnMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQuX29w
dGlvbnMucGl4ZWxfdGVzdHMsIFRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBvcnQu
X29wdGlvbnMudGltZV9vdXRfbXMsIDYwMDApCiAKQEAgLTEyNCw3ICsxMTgsNyBAQCBjbGFzcyBX
ZWJLaXRQb3J0VGVzdChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocmVzdWx0X2RpcmVjdG9yaWVzLCBleHBlY3RlZF9kaXJlY3RvcmllcykKIAog
ICAgIGRlZiB0ZXN0X3J1bnRpbWVfZmVhdHVyZV9saXN0KHNlbGYpOgotICAgICAgICBwb3J0ID0g
V2ViS2l0UG9ydChleGVjdXRpdmU9TW9ja0V4ZWN1dGl2ZSgpKQorICAgICAgICBwb3J0ID0gV2Vi
S2l0UG9ydChNb2NrSG9zdCgpKQogICAgICAgICBwb3J0Ll9leGVjdXRpdmUucnVuX2NvbW1hbmQg
PSBsYW1iZGEgY29tbWFuZCwgY3dkPU5vbmUsIGVycm9yX2hhbmRsZXI9Tm9uZTogIk5vbnNlbnNl
IgogICAgICAgICAjIHJ1bnRpbWVfZmVhdHVyZXNfbGlzdCByZXR1cm5zIE5vbmUgd2hlbiBpdHMg
cmVzdWx0cyBhcmUgbWVhbmluZ2xlc3MgKGl0IGNvdWxkbid0IHJ1biBEUlQgb3IgcGFyc2UgdGhl
IG91dHB1dCwgZXRjLikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocG9ydC5fcnVudGltZV9m
ZWF0dXJlX2xpc3QoKSwgTm9uZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQvd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC93aW4ucHkKaW5kZXggMTA4YzlkMjdjODdlY2ZjMzNhN2EzMTlhZWUwZGM1OWQy
YmIwNTNjOC4uM2JkYWZhYzY2NjIxZjllZWNiNWVjZDM0Yjc1MmY5Mzk3OGM3NWU2NiAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93aW4ucHkKQEAgLTc0
LDggKzc0LDggQEAgY2xhc3MgV2luUG9ydChBcHBsZVBvcnQpOgogICAgICAgICAgICAgdmVyc2lv
bl90dXBsZSA9IHR1cGxlKG1hcChpbnQsIG1hdGNoX29iamVjdC5ncm91cHMoKSkpCiAgICAgICAg
ICAgICByZXR1cm4gc2VsZi5fdmVyc2lvbl9zdHJpbmdfZnJvbV93aW5kb3dzX3ZlcnNpb25fdHVw
bGUodmVyc2lvbl90dXBsZSkKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Ci0g
ICAgICAgIEFwcGxlUG9ydC5fX2luaXRfXyhzZWxmLCAqKmt3YXJncykKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgaG9zdCwgKiprd2FyZ3MpOgorICAgICAgICBBcHBsZVBvcnQuX19pbml0X18oc2Vs
ZiwgaG9zdCwgKiprd2FyZ3MpCiAgICAgICAgIHNlbGYuX29wZXJhdGluZ19zeXN0ZW0gPSAnd2lu
JwogCiAgICAgZGVmIGNvbXBhcmVfdGV4dChzZWxmLCBleHBlY3RlZF90ZXh0LCBhY3R1YWxfdGV4
dCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0
L3dpbl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvd2luX3VuaXR0ZXN0LnB5CmluZGV4IDVkMzNkZDA4MDRlYjQ0YjIzYTJmNTg2Njc5ZWQwZTJm
ZGQ2MmNjYWIuLmE4OTVmZjk3YWRhOTUxZTUyMDNkZmIyNWY4ZDhkM2NjMThkOGEzY2IgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2luX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvd2lu
X3VuaXR0ZXN0LnB5CkBAIC0zMyw3ICszMyw3IEBAIGltcG9ydCB1bml0dGVzdAogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmVfbW9jayBpbXBvcnQgTW9ja0V4ZWN1dGl2ZSwg
TW9ja0V4ZWN1dGl2ZTIKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVtX21v
Y2sgaW1wb3J0IE1vY2tGaWxlU3lzdGVtCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0udXNl
cl9tb2NrIGltcG9ydCBNb2NrVXNlcgorZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGlt
cG9ydCBNb2NrSG9zdAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNhcHR1cmUg
aW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1w
b3J0IHBvcnRfdGVzdGNhc2UKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQud2luIGlt
cG9ydCBXaW5Qb3J0CkBAIC03MCw5ICs3MCw3IEBAIGNsYXNzIFdpblBvcnRUZXN0KHBvcnRfdGVz
dGNhc2UuUG9ydFRlc3RDYXNlKToKICAgICBkZWYgX2Fzc2VydF9zZWFyY2hfcGF0aChzZWxmLCBl
eHBlY3RlZF9zZWFyY2hfcGF0aHMsIHZlcnNpb24sIHVzZV93ZWJraXQyPUZhbHNlKToKICAgICAg
ICAgcG9ydCA9IFdpblBvcnQob3NfdmVyc2lvbl9zdHJpbmc9dmVyc2lvbiwKICAgICAgICAgICAg
IG9wdGlvbnM9TW9ja09wdGlvbnMod2Via2l0X3Rlc3RfcnVubmVyPXVzZV93ZWJraXQyKSwKLSAg
ICAgICAgICAgIGZpbGVzeXN0ZW09TW9ja0ZpbGVTeXN0ZW0oKSwKLSAgICAgICAgICAgIHVzZXI9
TW9ja1VzZXIoKSwKLSAgICAgICAgICAgIGV4ZWN1dGl2ZT1Nb2NrRXhlY3V0aXZlKCkpCisgICAg
ICAgICAgICBob3N0PU1vY2tIb3N0KCkpCiAgICAgICAgIGFic29sdXRlX3NlYXJjaF9wYXRocyA9
IG1hcChwb3J0Ll93ZWJraXRfYmFzZWxpbmVfcGF0aCwgZXhwZWN0ZWRfc2VhcmNoX3BhdGhzKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwb3J0LmJhc2VsaW5lX3NlYXJjaF9wYXRoKCksIGFi
c29sdXRlX3NlYXJjaF9wYXRocykKIApAQCAtODgsNyArODYsNyBAQCBjbGFzcyBXaW5Qb3J0VGVz
dChwb3J0X3Rlc3RjYXNlLlBvcnRUZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuX2Fzc2VydF9zZWFy
Y2hfcGF0aChbJ3dpbi13azInLCAnd2luJywgJ21hYy13azInLCAnbWFjLWxpb24nLCAnbWFjJ10s
ICdib2d1cycsIHVzZV93ZWJraXQyPVRydWUpCiAKICAgICBkZWYgX2Fzc2VydF92ZXJzaW9uKHNl
bGYsIHBvcnRfbmFtZSwgZXhwZWN0ZWRfdmVyc2lvbik6Ci0gICAgICAgIHBvcnQgPSBXaW5Qb3J0
KHBvcnRfbmFtZT1wb3J0X25hbWUsIGZpbGVzeXN0ZW09TW9ja0ZpbGVTeXN0ZW0oKSwgdXNlcj1N
b2NrVXNlcigpLCBleGVjdXRpdmU9TW9ja0V4ZWN1dGl2ZSgpKQorICAgICAgICBwb3J0ID0gV2lu
UG9ydChwb3J0X25hbWU9cG9ydF9uYW1lLCBob3N0PU1vY2tIb3N0KCkpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHBvcnQudmVyc2lvbigpLCBleHBlY3RlZF92ZXJzaW9uKQogCiAgICAgZGVm
IHRlc3RfdmVyc2lvbnMoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRp
b250ZXN0LnB5CmluZGV4IDFiNzA0YmMwNzRlYmFiOTUxYjQ4ZTI5N2MwMzM5MTk2OTJiZTI0N2Qu
LmE2NDQ2YzUyZDk4Mjc0Mjk3MDY2Mjc3ZjEwYTA3ZTJiOTgwNjkyOWIgMTAwNzU1Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHNfaW50ZWdy
YXRpb250ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHNfaW50ZWdyYXRpb250ZXN0LnB5CkBAIC02MSw3ICs2MSw2IEBAIFNIT1VM
RF9URVNUX1BST0NFU1NFUyA9IG11bHRpcHJvY2Vzc2luZyBhbmQgc3lzLnBsYXRmb3JtIG5vdCBp
biAoJ2N5Z3dpbicsICd3aW4zCiAKIGZyb20gd2Via2l0cHkuY29tbW9uIGltcG9ydCBhcnJheV9z
dHJlYW0KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgb3V0cHV0Y2FwdHVyZQot
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXJfbW9jayBpbXBvcnQgTW9ja1VzZXIKIGZy
b20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBpbXBvcnQgTW9ja0hvc3QKIAogZnJvbSB3ZWJr
aXRweS5sYXlvdXRfdGVzdHMgaW1wb3J0IHBvcnQKQEAgLTE0Niw3ICsxNDUsNyBAQCBkZWYgZ2V0
X3Rlc3RzX3J1bihleHRyYV9hcmdzPU5vbmUsIHRlc3RzX2luY2x1ZGVkPUZhbHNlLCBmbGF0dGVu
X2JhdGNoZXM9RmFsc2UsCiAgICAgICAgIGV4dHJhX2FyZ3MgPSBbJ3Bhc3NlcycsICdmYWlsdXJl
cyddICsgZXh0cmFfYXJncwogICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0gcGFyc2VfYXJncyhl
eHRyYV9hcmdzLCB0ZXN0c19pbmNsdWRlZD1UcnVlKQogCi0gICAgdXNlciA9IE1vY2tVc2VyKCkK
KyAgICBob3N0ID0gTW9ja0hvc3QoKQogCiAgICAgdGVzdF9iYXRjaGVzID0gW10KIApAQCAtMTc5
LDcgKzE3OCw3IEBAIGRlZiBnZXRfdGVzdHNfcnVuKGV4dHJhX2FyZ3M9Tm9uZSwgdGVzdHNfaW5j
bHVkZWQ9RmFsc2UsIGZsYXR0ZW5fYmF0Y2hlcz1GYWxzZSwKICAgICAgICAgZGVmIGNyZWF0ZV9k
cml2ZXIoc2VsZiwgd29ya2VyX251bWJlcik6CiAgICAgICAgICAgICByZXR1cm4gUmVjb3JkaW5n
VGVzdERyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyKQogCi0gICAgcmVjb3JkaW5nX3BvcnQgPSBS
ZWNvcmRpbmdUZXN0UG9ydChvcHRpb25zPW9wdGlvbnMsIHVzZXI9dXNlciwgZmlsZXN5c3RlbT1m
aWxlc3lzdGVtKQorICAgIHJlY29yZGluZ19wb3J0ID0gUmVjb3JkaW5nVGVzdFBvcnQob3B0aW9u
cz1vcHRpb25zLCBob3N0PWhvc3QsIGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSkKICAgICBydW5fYW5k
X2NhcHR1cmUocmVjb3JkaW5nX3BvcnQsIG9wdGlvbnMsIHBhcnNlZF9hcmdzKQogCiAgICAgaWYg
ZmxhdHRlbl9iYXRjaGVzOgpAQCAtNDY3LDcgKzQ2Niw3IEBAIGNsYXNzIE1haW5UZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICByZXR1cm4gdW5leHBlY3RlZF9yZXN1bHRz
WydudW1fcmVncmVzc2lvbnMnXSArIHVuZXhwZWN0ZWRfcmVzdWx0c1snbnVtX21pc3NpbmcnXQog
CiAgICAgICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0gcnVuX3dlYmtpdF90ZXN0cy5wYXJzZV9h
cmdzKFsnLS1waXhlbC10ZXN0cycsICctLW5vLW5ldy10ZXN0LXJlc3VsdHMnXSkKLSAgICAgICAg
dGVzdF9wb3J0ID0gQ3VzdG9tRXhpdENvZGVQb3J0KG9wdGlvbnM9b3B0aW9ucywgdXNlcj1Nb2Nr
VXNlcigpKQorICAgICAgICB0ZXN0X3BvcnQgPSBDdXN0b21FeGl0Q29kZVBvcnQob3B0aW9ucz1v
cHRpb25zKQogICAgICAgICByZXMsIG91dCwgZXJyLCBfID0gbG9nZ2luZ19ydW4oWyctLW5vLXNo
b3ctcmVzdWx0cycsCiAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ19pbWFn
ZS5odG1sJywKICAgICAgICAgICAgICdmYWlsdXJlcy91bmV4cGVjdGVkL21pc3NpbmdfdGV4dC5o
dG1sJywKQEAgLTYzOSw3ICs2MzgsNyBAQCBjbGFzcyBNYWluVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAKICAgICAgICAgZGVmIGdldF9wb3J0X2Zvcl9ydW4oYXJncyk6CiAgICAgICAgICAgICBv
cHRpb25zLCBwYXJzZWRfYXJncyA9IHJ1bl93ZWJraXRfdGVzdHMucGFyc2VfYXJncyhhcmdzKQot
ICAgICAgICAgICAgdGVzdF9wb3J0ID0gSW1hZ2VEaWZmVGVzdFBvcnQob3B0aW9ucz1vcHRpb25z
LCB1c2VyPU1vY2tVc2VyKCkpCisgICAgICAgICAgICB0ZXN0X3BvcnQgPSBJbWFnZURpZmZUZXN0
UG9ydChvcHRpb25zPW9wdGlvbnMpCiAgICAgICAgICAgICByZXMgPSBwYXNzaW5nX3J1bihhcmdz
LCBwb3J0X29iaj10ZXN0X3BvcnQsIHRlc3RzX2luY2x1ZGVkPVRydWUpCiAgICAgICAgICAgICBz
ZWxmLmFzc2VydFRydWUocmVzKQogICAgICAgICAgICAgcmV0dXJuIHRlc3RfcG9ydApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b19iZV9tb3ZlZC9yZWJhc2VsaW5lX2Nocm9t
aXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9f
YmVfbW92ZWQvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkKaW5k
ZXggYTJjYzk4MzdmMTllZjg3Nzg1MzRiZDI1YjI4YjQzZjFmZDNiZWU5OS4uZjNkOTM1NDA1YTZi
N2QzYTdiZDFjMDIxYTA0YmI2NGJmZWVlZmM5MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b19iZV9tb3ZlZC9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0
dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3RvX2JlX21vdmVkL3JlYmFzZWxp
bmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC00MCw3ICs0MCw2IEBAIGZy
b20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgb3V0cHV0Y2FwdHVyZQogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZlLCBTY3JpcHRFcnJv
cgogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uc2NtX21vY2sgaW1wb3J0IE1v
Y2tTQ00KLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS51c2VyX21vY2sgaW1wb3J0IE1vY2tV
c2VyCiAKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzIGltcG9ydCBwb3J0CiBmcm9tIHdlYmtp
dHB5LmxheW91dF90ZXN0cy5wb3J0LnRlc3QgaW1wb3J0IHVuaXRfdGVzdF9maWxlc3lzdGVtCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWJhc2VsaW5l
c2VydmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3NlcnZlcnMvcmViYXNlbGlu
ZXNlcnZlci5weQppbmRleCAwOWRiOTFhMGUyZGMwMzNiZmZkNGM2N2FmYzExYjI4YTRhNmVhYWI2
Li5jM2NkODJjMjNlMTZmNTAzMDZjZjNlOGNhZjAxZTkxNDBkOWIwMjU2IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVycy9yZWJhc2VsaW5lc2VydmVyLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXIu
cHkKQEAgLTMxLDYgKzMxLDcgQEAgaW1wb3J0IG9zCiBpbXBvcnQgb3MucGF0aAogaW1wb3J0IEJh
c2VIVFRQU2VydmVyCiAKK2Zyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QgICMg
RklYTUU6IFRoaXMgc2hvdWxkIG5vdCBiZSBuZWVkZWQhCiBmcm9tIHdlYmtpdHB5LmxheW91dF90
ZXN0cy5wb3J0LndlYmtpdCBpbXBvcnQgV2ViS2l0UG9ydAogZnJvbSB3ZWJraXRweS50b29sLnNl
cnZlcnMucmVmbGVjdGlvbmhhbmRsZXIgaW1wb3J0IFJlZmxlY3Rpb25IYW5kbGVyCiAKQEAgLTE2
NCw3ICsxNjUsOCBAQCBkZWYgZ2V0X3Rlc3RfYmFzZWxpbmVzKHRlc3RfZmlsZSwgdGVzdF9jb25m
aWcpOgogICAgICMgRklYTUU6IFRoaXMgc2VlbXMgbGlrZSBhIGhhY2suIFRoaXMgb25seSBzZWVt
cyB1c2VkIHRvIGFjY2VzcyB0aGUgUG9ydC5leHBlY3RlZF9iYXNlbGluZXMgbG9naWMuCiAgICAg
Y2xhc3MgQWxsUGxhdGZvcm1zUG9ydChXZWJLaXRQb3J0KToKICAgICAgICAgZGVmIF9faW5pdF9f
KHNlbGYpOgotICAgICAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCBmaWxlc3lzdGVt
PXRlc3RfY29uZmlnLmZpbGVzeXN0ZW0pCisgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3Vs
ZCBnZXQgdGhlIEhvc3QgZnJvbSB0aGUgdGVzdF9jb25maWcgdG8gYmUgbW9ja2FibGUhCisgICAg
ICAgICAgICBXZWJLaXRQb3J0Ll9faW5pdF9fKHNlbGYsIEhvc3QoKSwgZmlsZXN5c3RlbT10ZXN0
X2NvbmZpZy5maWxlc3lzdGVtKQogICAgICAgICAgICAgc2VsZi5fcGxhdGZvcm1zX2J5X2RpcmVj
dG9yeSA9IGRpY3QoWyhzZWxmLl93ZWJraXRfYmFzZWxpbmVfcGF0aChwKSwgcCkgZm9yIHAgaW4g
dGVzdF9jb25maWcucGxhdGZvcm1zXSkKIAogICAgICAgICBkZWYgYmFzZWxpbmVfc2VhcmNoX3Bh
dGgoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc2VydmVy
cy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3NlcnZlcnMvcmViYXNlbGluZXNlcnZlcl91bml0dGVzdC5weQppbmRleCA4MDAzZDA1OWU4
YjQyY2RkYjQzMDczMDE3MjFiOTVhZjk4OGVmN2FiLi42OWE0NDA5YmQxYTQ0ODdkZjA2YmM1MTdi
NTY4NWQ1OTZiMTMxOGIzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
c2VydmVycy9yZWJhc2VsaW5lc2VydmVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zZXJ2ZXJzL3JlYmFzZWxpbmVzZXJ2ZXJfdW5pdHRlc3QucHkKQEAgLTM0
LDEyICszNCwxNCBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgIyBweXRob24gMi41IGNvbXBh
dGliaWxpdHkKICAgICBpbXBvcnQgd2Via2l0cHkudGhpcmRwYXJ0eS5zaW1wbGVqc29uIGFzIGpz
b24KIAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uc2NtX21vY2sgaW1wb3J0
IE1vY2tTQ00KIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldCBpbXBvcnQgcmVzdWx0c2pzb25wYXJz
ZXJfdW5pdHRlc3QKLWZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgZmlsZXN5c3Rl
bV9tb2NrCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZmlsZXN5c3RlbV9tb2NrIGltcG9y
dCBNb2NrRmlsZVN5c3RlbQorZnJvbSB3ZWJraXRweS5jb21tb24uaG9zdF9tb2NrIGltcG9ydCBN
b2NrSG9zdAogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubGF5b3V0X3BhY2thZ2UuanNvbl9y
ZXN1bHRzX2dlbmVyYXRvciBpbXBvcnQgc3RyaXBfanNvbl93cmFwcGVyCiBmcm9tIHdlYmtpdHB5
LmxheW91dF90ZXN0cy5wb3J0LndlYmtpdCBpbXBvcnQgV2ViS2l0UG9ydAogZnJvbSB3ZWJraXRw
eS50b29sLmNvbW1hbmRzLnJlYmFzZWxpbmVzZXJ2ZXIgaW1wb3J0IFRlc3RDb25maWcsIFJlYmFz
ZWxpbmVTZXJ2ZXIKLWZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbS5zY21fbW9jayBp
bXBvcnQgTW9ja1NDTQogZnJvbSB3ZWJraXRweS50b29sLnNlcnZlcnMgaW1wb3J0IHJlYmFzZWxp
bmVzZXJ2ZXIKIAogCkBAIC0yOTksNyArMzAxLDcgQEAgZGVmIGdldF90ZXN0X2NvbmZpZyh0ZXN0
X2ZpbGVzPVtdLCByZXN1bHRfZmlsZXM9W10pOgogICAgICMgV2UgY291bGQgZ3JhYiB0aGlzIGZy
b20gcG9ydC5sYXlvdXRfdGVzdHNfZGlyKCksIGJ1dCBpbnN0YW50aWF0aW5nIGEgZnVsbHkgbW9j
a2VkIHBvcnQgaXMgYSBwYWluLgogICAgIGxheW91dF90ZXN0c19kaXJlY3RvcnkgPSAiL21vY2st
Y2hlY2tvdXQvTGF5b3V0VGVzdHMiCiAgICAgcmVzdWx0c19kaXJlY3RvcnkgPSAnL1dlYktpdEJ1
aWxkL0RlYnVnL2xheW91dC10ZXN0LXJlc3VsdHMnCi0gICAgbW9ja19maWxlc3lzdGVtID0gZmls
ZXN5c3RlbV9tb2NrLk1vY2tGaWxlU3lzdGVtKCkKKyAgICBtb2NrX2ZpbGVzeXN0ZW0gPSBNb2Nr
RmlsZVN5c3RlbSgpCiAgICAgZm9yIGZpbGUgaW4gdGVzdF9maWxlczoKICAgICAgICAgZmlsZV9w
YXRoID0gbW9ja19maWxlc3lzdGVtLmpvaW4obGF5b3V0X3Rlc3RzX2RpcmVjdG9yeSwgZmlsZSkK
ICAgICAgICAgbW9ja19maWxlc3lzdGVtLmZpbGVzW2ZpbGVfcGF0aF0gPSAnJwpAQCAtMzEwLDgg
KzMxMiw3IEBAIGRlZiBnZXRfdGVzdF9jb25maWcodGVzdF9maWxlcz1bXSwgcmVzdWx0X2ZpbGVz
PVtdKToKICAgICBjbGFzcyBUZXN0TWFjUG9ydChXZWJLaXRQb3J0KToKICAgICAgICAgcG9ydF9u
YW1lID0gIm1hYyIKICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICAgICAgIyBG
SVhNRTogVGhpcyBzaG91bGQgdXNlIE1vY2tFeGVjdXRpdmUgYW5kIE1vY2tVc2VyIGFzIHdlbGwu
Ci0gICAgICAgICAgICBXZWJLaXRQb3J0Ll9faW5pdF9fKHNlbGYsIGZpbGVzeXN0ZW09bW9ja19m
aWxlc3lzdGVtKQorICAgICAgICAgICAgV2ViS2l0UG9ydC5fX2luaXRfXyhzZWxmLCBmaWxlc3lz
dGVtPW1vY2tfZmlsZXN5c3RlbSwgaG9zdD1Nb2NrSG9zdCgpKQogCiAgICAgcmV0dXJuIFRlc3RD
b25maWcoCiAgICAgICAgIFRlc3RNYWNQb3J0KCksCg==
</data>
<flag name="review"
          id="113003"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="113004"
          type_id="3"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>