<?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>198105</bug_id>
          
          <creation_ts>2019-05-22 02:37:16 -0700</creation_ts>
          <short_desc>run-webkit-tests: Remove feature detection support</short_desc>
          <delta_ts>2019-05-23 19:28:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>pvollan</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1538145</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-05-22 02:37:16 -0700</bug_when>
    <thetext>run-webkit-tests: Remove feature detection support

Feature detection support has been added to Windows port&apos;s DRT
and old run-webkit-tests in Bug 35610. It has been added for NRWT
in Bug 41842. But, it doesn&apos;t work for Windows port&apos;s DRT because
feature names mismatch. Since USE(ACCELERATED_COMPOSITING) flag
has been removed in Bug 127833, it is not needed anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538147</commentid>
    <comment_count>1</comment_count>
      <attachid>370391</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-05-22 02:54:26 -0700</bug_when>
    <thetext>Created attachment 370391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538189</commentid>
    <comment_count>2</comment_count>
      <attachid>370391</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-05-22 08:18:26 -0700</bug_when>
    <thetext>Comment on attachment 370391
Patch

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

&gt; LayoutTests/ChangeLog:10
&gt; +        Skip all compositing, animations/3d and transforms/3d temporarily.

If this is actually temporary, we should put FIXMEs in expectations, otherwise we&apos;ll lose track of why they were skipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538513</commentid>
    <comment_count>3</comment_count>
      <attachid>370391</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-05-22 19:19:11 -0700</bug_when>
    <thetext>Comment on attachment 370391
Patch

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

&gt;&gt; LayoutTests/ChangeLog:10
&gt;&gt; +        Skip all compositing, animations/3d and transforms/3d temporarily.
&gt; 
&gt; If this is actually temporary, we should put FIXMEs in expectations, otherwise we&apos;ll lose track of why they were skipped.

In WinCairo TestExpectations, I added the Skip in &quot;TEMPORARY SKIPS&quot; section. I think no additional comment is needed.
https://github.com/WebKit/webkit/blob/d3d6b28920d2f449f918a3c2da9c48d15bb59002/LayoutTests/platform/wincairo/TestExpectations#L1502

In AppleWin TestExpectations, I&apos;m going to move the Skip to &quot;UNREVIEWED failures&quot; section.
https://github.com/WebKit/webkit/blob/d3d6b28920d2f449f918a3c2da9c48d15bb59002/LayoutTests/platform/win/TestExpectations#L2601</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538517</commentid>
    <comment_count>4</comment_count>
      <attachid>370477</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-05-22 19:30:48 -0700</bug_when>
    <thetext>Created attachment 370477
Patch

* Addressed review feedbacks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538651</commentid>
    <comment_count>5</comment_count>
      <attachid>370477</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-05-23 07:05:14 -0700</bug_when>
    <thetext>Comment on attachment 370477
Patch

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

&gt; Tools/ChangeLog:8
&gt; +        Feature detection support has been added to Windows port&apos;s DRT and

Should be: &apos;Feature detection support was added to DRT for Windows and...&apos;

&gt; Tools/ChangeLog:9
&gt; +        old run-webkit-tests in Bug 35610. It has been added for NRWT in

Likewise: &apos;It was added for NRWT in...&apos;

&gt; Tools/ChangeLog:10
&gt; +        Bug 41842. But, it doesn&apos;t work for Windows port&apos;s DRT because

&apos;But it doesn&apos;t work for DRT for Windows because of...&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538889</commentid>
    <comment_count>6</comment_count>
      <attachid>370544</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-05-23 19:16:53 -0700</bug_when>
    <thetext>Created attachment 370544
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538891</commentid>
    <comment_count>7</comment_count>
      <attachid>370545</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-05-23 19:18:02 -0700</bug_when>
    <thetext>Created attachment 370545
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538895</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-05-23 19:26:12 -0700</bug_when>
    <thetext>webkitpy EWS failure is irrelevant for the patch. BuildBot is also failing.
https://build.webkit.org/builders/Apple%20Mojave%20Release%20WK2%20%28Tests%29/builds/4289</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538897</commentid>
    <comment_count>9</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-05-23 19:27:49 -0700</bug_when>
    <thetext>Committed r245733: &lt;https://trac.webkit.org/changeset/245733&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538899</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-23 19:28:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/51092639&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370391</attachid>
            <date>2019-05-22 02:54:26 -0700</date>
            <delta_ts>2019-05-22 19:30:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198105-20190522185425.patch</filename>
            <type>text/plain</type>
            <size>22360</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NTQ0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmYwMjQ1ZjI5NWIxY2UwMzJiYWE1MDkzMjVkNzQzOGUx
NmJjYjA1Ny4uMTEyOGI2OWIzMmUzOGY1M2JjZjM2YjJkNmE3NTYzNTYxYWIwMmVmOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDE5LTA1LTIyICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgorCisgICAgICAgIHJ1bi13ZWJraXQtdGVzdHM6IFJlbW92ZSBmZWF0dXJlIGRldGVjdGlvbiBz
dXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTgxMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
ZWF0dXJlIGRldGVjdGlvbiBzdXBwb3J0IGhhcyBiZWVuIGFkZGVkIHRvIFdpbmRvd3MgcG9ydCdz
IERSVCBhbmQKKyAgICAgICAgb2xkIHJ1bi13ZWJraXQtdGVzdHMgaW4gQnVnIDM1NjEwLiBJdCBo
YXMgYmVlbiBhZGRlZCBmb3IgTlJXVCBpbgorICAgICAgICBCdWcgNDE4NDIuIEJ1dCwgaXQgZG9l
c24ndCB3b3JrIGZvciBXaW5kb3dzIHBvcnQncyBEUlQgYmVjYXVzZQorICAgICAgICBmZWF0dXJl
IG5hbWUgbWlzbWF0Y2hlcy4gU2luY2UgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBmbGFn
CisgICAgICAgIGhhcyBiZWVuIHJlbW92ZWQgaW4gQnVnIDEyNzgzMywgaXQgaXMgbm90IG5lZWRl
ZCBhbnltb3JlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9i
YXNlLnB5OgorICAgICAgICAoUG9ydC5fdGVzdHNfZm9yX290aGVyX3BsYXRmb3Jtcyk6CisgICAg
ICAgIChQb3J0Ll9za2lwcGVkX3Rlc3RzX2Zvcl91bnN1cHBvcnRlZF9mZWF0dXJlcyk6CisgICAg
ICAgIChQb3J0Ll9ydW50aW1lX2ZlYXR1cmVfbGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChQb3J0
Lm5tX2NvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAoUG9ydC5fbW9kdWxlc190b19zZWFyY2hf
Zm9yX3N5bWJvbHMpOiBEZWxldGVkLgorICAgICAgICAoUG9ydC5fc3ltYm9sc19zdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoUG9ydC5fbWlzc2luZ19mZWF0dXJlX3RvX3NraXBwZWRfdGVzdHMp
OiBEZWxldGVkLgorICAgICAgICAoUG9ydC5faGFzX3Rlc3RfaW5fZGlyZWN0b3JpZXMpOiBEZWxl
dGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHk6CisgICAgICAg
IChEYXJ3aW5Qb3J0Lm1ha2VfY29tbWFuZCk6CisgICAgICAgIChEYXJ3aW5Qb3J0Lm5tX2NvbW1h
bmQpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3Nfc2ltdWxh
dG9yLnB5OgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5yZXNldF9wcmVmZXJlbmNlcyk6Cisg
ICAgICAgIChJT1NTaW11bGF0b3JQb3J0Lm5tX2NvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5OgorICAgICAgICAoVGVzdFdl
YktpdFBvcnQuX19pbml0X18pOgorICAgICAgICAoVGVzdFdlYktpdFBvcnQuYWxsX3Rlc3RfY29u
ZmlndXJhdGlvbnMpOgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3RfcGF0aF90b190ZXN0X2V4
cGVjdGF0aW9uc19maWxlKToKKyAgICAgICAgKFRlc3RXZWJLaXRQb3J0Ll9zeW1ib2xzX3N0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9za2lwcGVkX2RpcmVjdG9y
aWVzX2Zvcl9mZWF0dXJlcyk6IERlbGV0ZWQuCisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9z
a2lwcGVkX2RpcmVjdG9yaWVzX2Zvcl9mZWF0dXJlc19ub19tYXRjaGluZ190ZXN0c19pbl90ZXN0
X2xpc3QpOiBEZWxldGVkLgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3Rfc2tpcHBlZF90ZXN0
c19mb3JfdW5zdXBwb3J0ZWRfZmVhdHVyZXNfZW1wdHlfdGVzdF9saXN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F0Y2hfc2ltdWxhdG9yLnB5OgorICAgICAg
ICAoV2F0Y2hTaW11bGF0b3JQb3J0LnJlc2V0X3ByZWZlcmVuY2VzKToKKyAgICAgICAgKFdhdGNo
U2ltdWxhdG9yUG9ydC5ubV9jb21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvd2luLnB5OgorICAgICAgICAoV2luUG9ydC5zaG93X3Jlc3VsdHNfaHRtbF9m
aWxlKToKKyAgICAgICAgKFdpblBvcnQuX3J1bnRpbWVfZmVhdHVyZV9saXN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoV2luUG9ydFRlc3QudGVzdF9vcGVyYXRpbmdfc3lzdGVtKToKKyAgICAgICAgKFdpblBvcnRU
ZXN0LnRlc3RfcnVudGltZV9mZWF0dXJlX2xpc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvT3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6Ok9wdGlvbnNIYW5kbGVyOjpP
cHRpb25zSGFuZGxlcik6CisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvblByaW50U3VwcG9ydGVk
RmVhdHVyZXMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisKIDIwMTktMDUtMjAgIEZ1amlp
IEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgcnVuLXdlYmtp
dC10ZXN0cyBub3QgZ2F0aGVyaW5nIGNyYXNoIGxvZ3Mgb24gQ3lnd2luIFB5dGhvbiBhbmQgV2lu
ZG93cyBQeXRob24KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVu
ZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3Bw
CmluZGV4IDA3NGRiNDFjYWE1MTRkZDk4MmJjM2IxYmEyNTU4OTY2MjQ1NmM2NGYuLjZkMjEzODU5
YmVjZmE0MzMyZmQ2MTY0NGE0ZGEwMzMyZmJkMzc0ODggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTA0LDcgKzEwNCw2IEBAIHN0YXRpYyBib29s
IHVzZUFjY2VsZXJhdGVkRHJhd2luZyA9IHRydWU7IC8vIE5vdCB1c2VkCiBzdGF0aWMgYm9vbCBn
Y0JldHdlZW5UZXN0cyA9IHRydWU7IAogc3RhdGljIGJvb2wgcHJpbnRTZXBhcmF0b3JzID0gZmFs
c2U7CiBzdGF0aWMgYm9vbCBsZWFrQ2hlY2tpbmcgPSBmYWxzZTsKLXN0YXRpYyBib29sIHByaW50
U3VwcG9ydGVkRmVhdHVyZXMgPSBmYWxzZTsKIHN0YXRpYyBib29sIHNob3dXZWJWaWV3ID0gZmFs
c2U7CiBzdGF0aWMgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBwZXJzaXN0ZW50VXNlclN0eWxlU2hl
ZXRMb2NhdGlvbjsKIApAQCAtMTQ2NSwxMSArMTQ2NCw2IEBAIHN0YXRpYyBWZWN0b3I8Y29uc3Qg
Y2hhcio+IGluaXRpYWxpemVHbG9iYWxzRnJvbUNvbW1hbmRMaW5lT3B0aW9ucyhpbnQgYXJnYywg
Y29uCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICghc3Ry
aWNtcChhcmd2W2ldLCAiLS1wcmludC1zdXBwb3J0ZWQtZmVhdHVyZXMiKSkgewotICAgICAgICAg
ICAgcHJpbnRTdXBwb3J0ZWRGZWF0dXJlcyA9IHRydWU7Ci0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgfQotCiAgICAgICAgIGlmICghc3RyaWNtcChhcmd2W2ldLCAiLS1zaG93LXdlYnZp
ZXciKSkgewogICAgICAgICAgICAgc2hvd1dlYlZpZXcgPSB0cnVlOwogICAgICAgICAgICAgY29u
dGludWU7CkBAIC0xNTgwLDIzICsxNTc0LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNo
YXIqIGFyZ3ZbXSkKIAogICAgIHByZXBhcmVDb25zaXN0ZW50VGVzdGluZ0Vudmlyb25tZW50KHN0
YW5kYXJkUHJlZmVyZW5jZXMuZ2V0KCksIHN0YW5kYXJkUHJlZmVyZW5jZXNQcml2YXRlLmdldCgp
KTsKIAotICAgIGlmIChwcmludFN1cHBvcnRlZEZlYXR1cmVzKSB7Ci0gICAgICAgIEJPT0wgYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSA9IEZBTFNFOwotICAgICAgICBzdGFuZGFyZFBy
ZWZlcmVuY2VzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgmYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0F2YWlsYWJsZSk7Ci0KLSNpZiBFTkFCTEUoM0RfVFJBTlNGT1JNUykKLSAgICAgICAg
Ly8gSW4gdGhlb3J5LCB3ZSBjb3VsZCBoYXZlIGEgc29mdHdhcmUtYmFzZWQgM0QgcmVuZGVyaW5n
IGltcGxlbWVudGF0aW9uIHRoYXQgd2UgdXNlIHdoZW4KLSAgICAgICAgLy8gaGFyZHdhcmUtYWNj
ZWxlcmF0aW9uIGlzIG5vdCBhdmFpbGFibGUuIEJ1dCB3ZSBkb24ndCBoYXZlIGFueSBzdWNoIHNv
ZnR3YXJlCi0gICAgICAgIC8vIGltcGxlbWVudGF0aW9uLCBzbyAzRCByZW5kZXJpbmcgaXMgb25s
eSBhdmFpbGFibGUgd2hlbiBoYXJkd2FyZS1hY2NlbGVyYXRpb24gaXMuCi0gICAgICAgIEJPT0wg
dGhyZWVEVHJhbnNmb3Jtc0F2YWlsYWJsZSA9IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFi
bGU7Ci0jZWxzZQotICAgICAgICBCT09MIHRocmVlRFRyYW5zZm9ybXNBdmFpbGFibGUgPSBGQUxT
RTsKLSNlbmRpZgotCi0gICAgICAgIGZwcmludGYodGVzdFJlc3VsdCwgIlN1cHBvcnRlZEZlYXR1
cmVzOiVzICVzXG4iLCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlID8gIkFjY2VsZXJh
dGVkQ29tcG9zaXRpbmciIDogIiIsIHRocmVlRFRyYW5zZm9ybXNBdmFpbGFibGUgPyAiM0RUcmFu
c2Zvcm1zIiA6ICIiKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCiAgICAgQ09NUHRyPElX
ZWJWaWV3PiB3ZWJWaWV3KEFkb3B0Q09NLCBjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93
KCZ3ZWJWaWV3V2luZG93KSk7CiAgICAgaWYgKCF3ZWJWaWV3KQogICAgICAgICByZXR1cm4gLTQ7
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CmluZGV4IGQwNjc5OWM2YWUwZTI2MGQ5MTky
ZjRiODY4NTZiOGFkM2FhNmY5OTEuLjM2MjY3Y2FiM2I3MGEyNmRlMjIyMzk4MTRjMTZjY2Y1OWUy
ZTU2Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC0zMSwxMSArMzEsOSBA
QAogdGVzdCBpbmZyYXN0cnVjdHVyZSAodGhlIFBvcnQgYW5kIERyaXZlciBjbGFzc2VzKS4iIiIK
IAogaW1wb3J0IGRpZmZsaWIKLWltcG9ydCBpdGVydG9vbHMKIGltcG9ydCBqc29uCiBpbXBvcnQg
bG9nZ2luZwogaW1wb3J0IG9zCi1pbXBvcnQgb3BlcmF0b3IKIGltcG9ydCBvcHRwYXJzZQogaW1w
b3J0IHJlCiBpbXBvcnQgc3lzCkBAIC0xNTU3LDY0ICsxNTU1LDcgQEAgY2xhc3MgUG9ydChvYmpl
Y3QpOgogICAgICAgICAgICAgICAgIGRpcnNfdG9fc2tpcC5hcHBlbmQoJ3BsYXRmb3JtLyVzJyAl
IGJhc2VuYW1lKQogICAgICAgICByZXR1cm4gZGlyc190b19za2lwCiAKLSAgICBkZWYgX3J1bnRp
bWVfZmVhdHVyZV9saXN0KHNlbGYpOgotICAgICAgICAiIiJJZiBhIHBvcnQgbWFrZXMgY2VydGFp
biBmZWF0dXJlcyBhdmFpbGFibGUgb25seSB0aHJvdWdoIHJ1bnRpbWUgZmxhZ3MsIGl0IGNhbiBv
dmVycmlkZSB0aGlzIHJvdXRpbmUgdG8gaW5kaWNhdGUgd2hpY2ggb25lcyBhcmUgYXZhaWxhYmxl
LiIiIgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIG5tX2NvbW1hbmQoc2VsZik6Ci0g
ICAgICAgIHJldHVybiAnbm0nCi0KLSAgICBkZWYgX21vZHVsZXNfdG9fc2VhcmNoX2Zvcl9zeW1i
b2xzKHNlbGYpOgotICAgICAgICBwYXRoID0gc2VsZi5fcGF0aF90b193ZWJjb3JlX2xpYnJhcnko
KQotICAgICAgICBpZiBwYXRoOgotICAgICAgICAgICAgcmV0dXJuIFtwYXRoXQotICAgICAgICBy
ZXR1cm4gW10KLQotICAgIGRlZiBfc3ltYm9sc19zdHJpbmcoc2VsZik6Ci0gICAgICAgIHN5bWJv
bHMgPSAnJwotICAgICAgICBmb3IgcGF0aF90b19tb2R1bGUgaW4gc2VsZi5fbW9kdWxlc190b19z
ZWFyY2hfZm9yX3N5bWJvbHMoKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBz
eW1ib2xzICs9IHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChbc2VsZi5ubV9jb21tYW5kKCks
IHBhdGhfdG9fbW9kdWxlXSwgaWdub3JlX2Vycm9ycz1UcnVlKQotICAgICAgICAgICAgZXhjZXB0
IE9TRXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBfbG9nLndhcm4oIkZhaWxlZCB0byBydW4g
bm06ICVzLiAgQ2FuJ3QgZGV0ZXJtaW5lIHN1cHBvcnRlZCBmZWF0dXJlcyBjb3JyZWN0bHkuIiAl
IGUpCi0gICAgICAgIHJldHVybiBzeW1ib2xzCi0KLSAgICAjIFBvcnRzIHdoaWNoIHVzZSBydW4t
dGltZSBmZWF0dXJlIGRldGVjdGlvbiBzaG91bGQgZGVmaW5lIHRoaXMgbWV0aG9kIGFuZCByZXR1
cm4KLSAgICAjIGEgZGljdGlvbmFyeSBtYXBwaW5nIGZyb20gRmVhdHVyZSBOYW1lcyB0byBza2lw
cGVkIGRpcmVjdG9pcmVzLiAgTlJXVCB3aWxsCi0gICAgIyBydW4gRHVtcFJlbmRlclRyZWUgLS1w
cmludC1zdXBwb3J0ZWQtZmVhdHVyZXMgYW5kIHBhcnNlIHRoZSBvdXRwdXQuCi0gICAgIyBJZiB0
aGUgRmVhdHVyZSBOYW1lcyBhcmUgbm90IGZvdW5kIGluIHRoZSBvdXRwdXQsIHRoZSBjb3JyZXNw
b25kaW5nIGRpcmVjdG9yaWVzCi0gICAgIyB3aWxsIGJlIHNraXBwZWQuCi0gICAgZGVmIF9taXNz
aW5nX2ZlYXR1cmVfdG9fc2tpcHBlZF90ZXN0cyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIHRo
ZSBzdXBwb3J0ZWQgZmVhdHVyZSBkaWN0aW9uYXJ5LiBLZXlzIGFyZSBmZWF0dXJlIG5hbWVzIGFu
ZCB2YWx1ZXMKLSAgICAgICAgYXJlIHRoZSBsaXN0cyBvZiBkaXJlY3RvcmllcyB0byBza2lwIGlm
IHRoZSBmZWF0dXJlIG5hbWUgaXMgbm90IG1hdGNoZWQuIiIiCi0gICAgICAgICMgRklYTUU6IFRo
aXMgbGlzdCBtYXRjaGVzIFdlYktpdFdpbiBhbmQgc2hvdWxkIGJlIG1vdmVkIG9udG8gdGhlIFdp
biBwb3J0LgotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgIkFjY2VsZXJhdGVkIENvbXBv
c2l0aW5nIjogWyJjb21wb3NpdGluZyJdLAotICAgICAgICAgICAgIjNEIFJlbmRlcmluZyI6IFsi
YW5pbWF0aW9ucy8zZCIsICJ0cmFuc2Zvcm1zLzNkIl0sCi0gICAgICAgIH0KLQotICAgIGRlZiBf
aGFzX3Rlc3RfaW5fZGlyZWN0b3JpZXMoc2VsZiwgZGlyZWN0b3J5X2xpc3RzLCB0ZXN0X2xpc3Qp
OgotICAgICAgICBpZiBub3QgdGVzdF9saXN0OgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0K
LSAgICAgICAgZGlyZWN0b3JpZXMgPSBpdGVydG9vbHMuY2hhaW4uZnJvbV9pdGVyYWJsZShkaXJl
Y3RvcnlfbGlzdHMpCi0gICAgICAgIGZvciBkaXJlY3RvcnksIHRlc3QgaW4gaXRlcnRvb2xzLnBy
b2R1Y3QoZGlyZWN0b3JpZXMsIHRlc3RfbGlzdCk6Ci0gICAgICAgICAgICBpZiB0ZXN0LnN0YXJ0
c3dpdGgoZGlyZWN0b3J5KToKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBy
ZXR1cm4gRmFsc2UKLQogICAgIGRlZiBfc2tpcHBlZF90ZXN0c19mb3JfdW5zdXBwb3J0ZWRfZmVh
dHVyZXMoc2VsZiwgdGVzdF9saXN0KToKLSAgICAgICAgIyBPbmx5IGNoZWNrIHRoZSBydW50aW1l
IGZlYXR1cmUgbGlzdCBvZiB0aGVyZSBhcmUgdGVzdHMgaW4gdGhlIHRlc3RfbGlzdCB0aGF0IG1p
Z2h0IGdldCBza2lwcGVkLgotICAgICAgICAjIFRoaXMgaXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6
YXRpb24gdG8gYXZvaWQgdGhlIHN1YnByb2Nlc3MgY2FsbCB0byBEUlQuCi0gICAgICAgICMgSWYg
dGhlIHBvcnQgc3VwcG9ydHMgcnVudGltZSBmZWF0dXJlIGRldGVjdGlvbiwgZGlzYWJsZSBhbnkg
dGVzdHMKLSAgICAgICAgIyBmb3IgZmVhdHVyZXMgbWlzc2luZyBmcm9tIHRoZSBydW50aW1lIGZl
YXR1cmUgbGlzdC4KLSAgICAgICAgIyBJZiBfcnVudGltZV9mZWF0dXJlX2xpc3QgcmV0dXJucyBh
IG5vbi1Ob25lIHZhbHVlLCB0aGVuIHByZWZlcgotICAgICAgICAjIHJ1bnRpbWUgZmVhdHVyZSBk
ZXRlY3Rpb24gb3ZlciBzdGF0aWMgZmVhdHVyZSBkZXRlY3Rpb24uCi0gICAgICAgIGlmIHNlbGYu
X2hhc190ZXN0X2luX2RpcmVjdG9yaWVzKHNlbGYuX21pc3NpbmdfZmVhdHVyZV90b19za2lwcGVk
X3Rlc3RzKCkudmFsdWVzKCksIHRlc3RfbGlzdCk6Ci0gICAgICAgICAgICBzdXBwb3J0ZWRfZmVh
dHVyZV9saXN0ID0gc2VsZi5fcnVudGltZV9mZWF0dXJlX2xpc3QoKQotICAgICAgICAgICAgaWYg
c3VwcG9ydGVkX2ZlYXR1cmVfbGlzdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICByZXR1
cm4gcmVkdWNlKG9wZXJhdG9yLmFkZCwgW2RpcmVjdG9yaWVzIGZvciBmZWF0dXJlLCBkaXJlY3Rv
cmllcyBpbiBzZWxmLl9taXNzaW5nX2ZlYXR1cmVfdG9fc2tpcHBlZF90ZXN0cygpLml0ZW1zKCkg
aWYgZmVhdHVyZSBub3QgaW4gc3VwcG9ydGVkX2ZlYXR1cmVfbGlzdF0pCi0KICAgICAgICAgcmV0
dXJuIFtdCiAKICAgICBkZWYgX3drMl9wb3J0X25hbWUoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGFyd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2Rhcndpbi5weQppbmRleCAzM2E0YmM5N2I4ZjA1YjMxZjlmZWYzOThiNjFjMzkxMzUw
NzEzMjIwLi4zYjdjODhlNDA2YzBmNTRmYzhlZmY2MjkxMzZiNDY1MDQ3ZGQwYzc5IDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGFyd2luLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHkKQEAgLTIzMyw5ICsyMzMsNiBAQCBjbGFzcyBE
YXJ3aW5Qb3J0KEFwcGxlUG9ydCk6CiAgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKICAgICAg
ICAgcmV0dXJuIHNlbGYueGNydW5fZmluZCgnbWFrZScsICcvdXNyL2Jpbi9tYWtlJykKIAotICAg
IGRlZiBubV9jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi54Y3J1bl9maW5kKCdu
bScsICdubScpCi0KICAgICBkZWYgeGNydW5fZmluZChzZWxmLCBjb21tYW5kLCBmYWxsYmFjaz1O
b25lKToKICAgICAgICAgZmFsbGJhY2sgPSBmYWxsYmFjayBvciBjb21tYW5kCiAgICAgICAgIHRy
eToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3Nfc2ltdWxhdG9y
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvc19zaW11bGF0b3IucHkKaW5kZXgg
MDRmOTljNzk0NjFlMjhhMjk2MjQxN2M5ZTM1MTMwN2M5MjcxNmI0Yi4uMzEyNzVmZGJmYWEyMzNk
MmRkNzhkMjg4YjMyYzAwOTk1NDhmMWI3NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2lvc19zaW11bGF0b3IucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2lvc19zaW11bGF0b3IucHkKQEAgLTk2LDkgKzk2LDYgQEAgY2xhc3MgSU9TU2ltdWxhdG9y
UG9ydChJT1NQb3J0KToKICAgICAgICAgX2xvZy5kZWJ1ZygicmVzZXRfcHJlZmVyZW5jZXMiKQog
ICAgICAgICBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLnRlYXJfZG93bihzZWxmLmhvc3QpCiAKLSAg
ICBkZWYgbm1fY29tbWFuZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYueGNydW5fZmluZCgn
bm0nKQotCiAgICAgQHByb3BlcnR5CiAgICAgQG1lbW9pemVkCiAgICAgZGVmIGRldmVsb3Blcl9k
aXIoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90
ZXN0Y2FzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5
CmluZGV4IDlkODZjOWMzNzBlMDRjYjc3Y2NjYjcxNGFlMzhkNGZiZTI5NjdjM2YuLjhjNTEzZDdm
MWUxY2UzYWQwODg5N2YyN2FhOGU1ZjdlY2JhYmY5MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CkBAIC01NiwyMCArNTYsMTYgQEAgZnJvbSB3ZWJr
aXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucwogY2xhc3MgVGVzdFdlYktpdFBv
cnQoUG9ydCk6CiAgICAgcG9ydF9uYW1lID0gInRlc3R3ZWJraXRwb3J0IgogCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1Ob25lLCBzeW1ib2xzX3N0cmluZz1Ob25lLAorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwKICAgICAgICAgICAgICAgICAgZXhwZWN0
YXRpb25zX2ZpbGU9Tm9uZSwgc2tpcHNfZmlsZT1Ob25lLCBob3N0PU5vbmUsIGNvbmZpZz1Ob25l
LAogICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgICAgIHBvcnRfbmFtZSA9IHBvcnRf
bmFtZSBvciBUZXN0V2ViS2l0UG9ydC5wb3J0X25hbWUKLSAgICAgICAgc2VsZi5zeW1ib2xzX3N0
cmluZyA9IHN5bWJvbHNfc3RyaW5nICAjIFBhc3NpbmcgIiIgZGlzYWJsZXMgYWxsIHN0YXRpY2x5
LWRldGVjdGFibGUgZmVhdHVyZXMuCiAgICAgICAgIGhvc3QgPSBob3N0IG9yIE1vY2tTeXN0ZW1I
b3N0KCkKICAgICAgICAgc3VwZXIoVGVzdFdlYktpdFBvcnQsIHNlbGYpLl9faW5pdF9fKGhvc3Qs
IHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogCiAgICAgZGVmIGFsbF90ZXN0X2NvbmZp
Z3VyYXRpb25zKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYudGVzdF9jb25maWd1cmF0aW9u
KCldCiAKLSAgICBkZWYgX3N5bWJvbHNfc3RyaW5nKHNlbGYpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5zeW1ib2xzX3N0cmluZwotCiAgICAgZGVmIF90ZXN0c19mb3Jfb3RoZXJfcGxhdGZvcm1zKHNl
bGYsICoqa3dhcmdzKToKICAgICAgICAgcmV0dXJuIFsibWVkaWEiLCBdCiAKQEAgLTUwMCwyNiAr
NDk2LDYgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
cG9ydC5fb3B0aW9ucyA9IE1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1bm5lcj1GYWxzZSkKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNfZmls
ZSgpLCAnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdHdlYmtpdHBvcnQv
VGVzdEV4cGVjdGF0aW9ucycpCiAKLSAgICBkZWYgdGVzdF9za2lwcGVkX2RpcmVjdG9yaWVzX2Zv
cl9mZWF0dXJlcyhzZWxmKToKLSAgICAgICAgc3VwcG9ydGVkX2ZlYXR1cmVzID0gWyJBY2NlbGVy
YXRlZCBDb21wb3NpdGluZyIsICJGb28gRmVhdHVyZSJdCi0gICAgICAgIGV4cGVjdGVkX2RpcmVj
dG9yaWVzID0gc2V0KFsiYW5pbWF0aW9ucy8zZCIsICJ0cmFuc2Zvcm1zLzNkIl0pCi0gICAgICAg
IHBvcnQgPSBUZXN0V2ViS2l0UG9ydChzdXBwb3J0ZWRfZmVhdHVyZXM9c3VwcG9ydGVkX2ZlYXR1
cmVzKQotICAgICAgICBwb3J0Ll9ydW50aW1lX2ZlYXR1cmVfbGlzdCA9IGxhbWJkYTogc3VwcG9y
dGVkX2ZlYXR1cmVzCi0gICAgICAgIHJlc3VsdF9kaXJlY3RvcmllcyA9IHNldChwb3J0Ll9za2lw
cGVkX3Rlc3RzX2Zvcl91bnN1cHBvcnRlZF9mZWF0dXJlcyh0ZXN0X2xpc3Q9WyJhbmltYXRpb25z
LzNkL2Zvby5odG1sIl0pKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdF9kaXJlY3Rv
cmllcywgZXhwZWN0ZWRfZGlyZWN0b3JpZXMpCi0KLSAgICBkZWYgdGVzdF9za2lwcGVkX2RpcmVj
dG9yaWVzX2Zvcl9mZWF0dXJlc19ub19tYXRjaGluZ190ZXN0c19pbl90ZXN0X2xpc3Qoc2VsZik6
Ci0gICAgICAgIHN1cHBvcnRlZF9mZWF0dXJlcyA9IFsiQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmci
LCAiRm9vIEZlYXR1cmUiXQotICAgICAgICBleHBlY3RlZF9kaXJlY3RvcmllcyA9IHNldChbXSkK
LSAgICAgICAgcmVzdWx0X2RpcmVjdG9yaWVzID0gc2V0KFRlc3RXZWJLaXRQb3J0KHN1cHBvcnRl
ZF9mZWF0dXJlcz1zdXBwb3J0ZWRfZmVhdHVyZXMpLl9za2lwcGVkX3Rlc3RzX2Zvcl91bnN1cHBv
cnRlZF9mZWF0dXJlcyh0ZXN0X2xpc3Q9Wydmb28uaHRtbCddKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChyZXN1bHRfZGlyZWN0b3JpZXMsIGV4cGVjdGVkX2RpcmVjdG9yaWVzKQotCi0gICAg
ZGVmIHRlc3Rfc2tpcHBlZF90ZXN0c19mb3JfdW5zdXBwb3J0ZWRfZmVhdHVyZXNfZW1wdHlfdGVz
dF9saXN0KHNlbGYpOgotICAgICAgICBzdXBwb3J0ZWRfZmVhdHVyZXMgPSBbIkFjY2VsZXJhdGVk
IENvbXBvc2l0aW5nIiwgIkZvbyBGZWF0dXJlIl0KLSAgICAgICAgZXhwZWN0ZWRfZGlyZWN0b3Jp
ZXMgPSBzZXQoW10pCi0gICAgICAgIHJlc3VsdF9kaXJlY3RvcmllcyA9IHNldChUZXN0V2ViS2l0
UG9ydChzdXBwb3J0ZWRfZmVhdHVyZXM9c3VwcG9ydGVkX2ZlYXR1cmVzKS5fc2tpcHBlZF90ZXN0
c19mb3JfdW5zdXBwb3J0ZWRfZmVhdHVyZXModGVzdF9saXN0PU5vbmUpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHJlc3VsdF9kaXJlY3RvcmllcywgZXhwZWN0ZWRfZGlyZWN0b3JpZXMpCi0K
ICAgICBkZWYgdGVzdF9za2lwcGVkX2xheW91dF90ZXN0cyhzZWxmKToKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChUZXN0V2ViS2l0UG9ydCgpLnNraXBwZWRfbGF5b3V0X3Rlc3RzKHRlc3RfbGlz
dD1bXSksIHNldChbJ21lZGlhJ10pKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvd2F0Y2hfc2ltdWxhdG9yLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L3dhdGNoX3NpbXVsYXRvci5weQppbmRleCAzZGViZWUyZTk5YWIzZjIzM2VlMjRjYzJiNTk3NWRh
YTJkNTY3OTI1Li45MzJkYzNlMGU4M2Q1YjA1ZWJlYjVhMDQ3MDA1NGJmMjRjYjRhODU5IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F0Y2hfc2ltdWxhdG9yLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93YXRjaF9zaW11bGF0b3IucHkKQEAgLTg3
LDkgKzg3LDYgQEAgY2xhc3MgV2F0Y2hTaW11bGF0b3JQb3J0KFdhdGNoUG9ydCk6CiAgICAgZGVm
IHJlc2V0X3ByZWZlcmVuY2VzKHNlbGYpOgogICAgICAgICBTaW11bGF0ZWREZXZpY2VNYW5hZ2Vy
LnRlYXJfZG93bihzZWxmLmhvc3QpCiAKLSAgICBkZWYgbm1fY29tbWFuZChzZWxmKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYueGNydW5fZmluZCgnbm0nKQotCiAgICAgQHByb3BlcnR5CiAgICAgQG1l
bW9pemVkCiAgICAgZGVmIGRldmVsb3Blcl9kaXIoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L3dpbi5weQppbmRleCA2NmFkMTNkYjNjYTY4YzZiZTdlYjkwZWExZTRkODc0Y2VkNzhiMDA5Li40
YjliNjA2M2MyOTViZTY0MzEwOThiMDhkYjhhMTAyMThhY2VhMDBjIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC93aW4ucHkKQEAgLTE1NCwyMCArMTU0LDYgQEAgY2xhc3MgV2luUG9ydChBcHBsZVBv
cnQpOgogICAgIGRlZiBzaG93X3Jlc3VsdHNfaHRtbF9maWxlKHNlbGYsIHJlc3VsdHNfZmlsZW5h
bWUpOgogICAgICAgICBzZWxmLl9ydW5fc2NyaXB0KCdydW4tc2FmYXJpJywgW2Fic3BhdGhfdG9f
dXJpKFN5c3RlbUhvc3QoKS5wbGF0Zm9ybSwgcmVzdWx0c19maWxlbmFtZSldKQogCi0gICAgZGVm
IF9ydW50aW1lX2ZlYXR1cmVfbGlzdChzZWxmKToKLSAgICAgICAgc3VwcG9ydGVkX2ZlYXR1cmVz
X2NvbW1hbmQgPSBbc2VsZi5fcGF0aF90b19kcml2ZXIoKSwgJy0tcHJpbnQtc3VwcG9ydGVkLWZl
YXR1cmVzJ10KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5fZXhlY3V0
aXZlLnJ1bl9jb21tYW5kKHN1cHBvcnRlZF9mZWF0dXJlc19jb21tYW5kLCBpZ25vcmVfZXJyb3Jz
PVRydWUpCi0gICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICBfbG9nLndh
cm4oIkV4Y2VwdGlvbiBydW5uaW5nIGRyaXZlcjogJXMsICVzLiAgRHJpdmVyIG11c3QgYmUgYnVp
bHQgYmVmb3JlIGNhbGxpbmcgV2ViS2l0UG9ydC50ZXN0X2V4cGVjdGF0aW9ucygpLiIgJSAoc3Vw
cG9ydGVkX2ZlYXR1cmVzX2NvbW1hbmQsIGUpKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQot
ICAgICAgICAjIE5vdGU6IHdpbi9EdW1wUmVuZGVyVHJlZS5jcHAgZG9lcyBub3QgcHJpbnQgYSBs
ZWFkaW5nIHNwYWNlIGJlZm9yZSB0aGUgZmVhdHVyZXNfc3RyaW5nLgotICAgICAgICBtYXRjaF9v
YmplY3QgPSByZS5tYXRjaCgiU3VwcG9ydGVkRmVhdHVyZXM6XHMqKD9QPGZlYXR1cmVzX3N0cmlu
Zz4uKilccyoiLCBvdXRwdXQpCi0gICAgICAgIGlmIG5vdCBtYXRjaF9vYmplY3Q6Ci0gICAgICAg
ICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gbWF0Y2hfb2JqZWN0Lmdyb3VwKCdmZWF0
dXJlc19zdHJpbmcnKS5zcGxpdCgnICcpCi0KICAgICBkZWYgX2J1aWxkX3BhdGgoc2VsZiwgKmNv
bXBzKToKICAgICAgICAgIiIiUmV0dXJucyB0aGUgZnVsbCBwYXRoIHRvIHRoZSB0ZXN0IGRyaXZl
ciAoRHVtcFJlbmRlclRyZWUpLiIiIgogICAgICAgICByb290X2RpcmVjdG9yeSA9IHNlbGYuZ2V0
X29wdGlvbignX2NhY2hlZF9yb290Jykgb3Igc2VsZi5nZXRfb3B0aW9uKCdyb290JykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93aW5fdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luX3VuaXR0ZXN0LnB5CmluZGV4IDZiMzI3YTk4NmVj
NzE0YjRiMmQ4ZjNlMGI1MTI1YzBhNTQ3ZjdlMjAuLjBjNjIxMTQyMWE5NDI1M2VkNjkxNGU2ODMy
ODVjYjUzZTk5ZDBkOTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93
aW5fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dpbl91bml0
dGVzdC5weQpAQCAtOTMsMTQgKzkzLDYgQEAgY2xhc3MgV2luUG9ydFRlc3QocG9ydF90ZXN0Y2Fz
ZS5Qb3J0VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X29wZXJhdGluZ19zeXN0ZW0oc2VsZik6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3dpbicsIHNlbGYubWFrZV9wb3J0KCkub3BlcmF0aW5n
X3N5c3RlbSgpKQogCi0gICAgZGVmIHRlc3RfcnVudGltZV9mZWF0dXJlX2xpc3Qoc2VsZik6Ci0g
ICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCi0gICAgICAgIHBvcnQuX2V4ZWN1dGl2ZS5y
dW5fY29tbWFuZCA9IGxhbWJkYSBjb21tYW5kLCBjd2Q9Tm9uZSwgaWdub3JlX2Vycm9ycz1GYWxz
ZTogIk5vbnNlbnNlIgotICAgICAgICAjIHJ1bnRpbWVfZmVhdHVyZXNfbGlzdCByZXR1cm5zIE5v
bmUgd2hlbiBpdHMgcmVzdWx0cyBhcmUgbWVhbmluZ2xlc3MgKGl0IGNvdWxkbid0IHJ1biBEUlQg
b3IgcGFyc2UgdGhlIG91dHB1dCwgZXRjLikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
Ll9ydW50aW1lX2ZlYXR1cmVfbGlzdCgpLCBOb25lKQotICAgICAgICBwb3J0Ll9leGVjdXRpdmUu
cnVuX2NvbW1hbmQgPSBsYW1iZGEgY29tbWFuZCwgY3dkPU5vbmUsIGlnbm9yZV9lcnJvcnM9RmFs
c2U6ICJTdXBwb3J0ZWRGZWF0dXJlczpmb28gYmFyIgotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBvcnQuX3J1bnRpbWVfZmVhdHVyZV9saXN0KCksIFsnZm9vJywgJ2JhciddKQotCiAgICAgZGVm
IHRlc3RfZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxlbihzZWxmLm1ha2VfcG9ydCgpLmV4cGVjdGF0aW9uc19maWxlcygpKSwgMykKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1Nb2NrT3B0aW9ucyh3
ZWJraXRfdGVzdF9ydW5uZXI9VHJ1ZSwgY29uZmlndXJhdGlvbj0nUmVsZWFzZScpKS5leHBlY3Rh
dGlvbnNfZmlsZXMoKSksIDUpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09w
dGlvbnMuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAppbmRleCA5ZGQz
N2IwMjhiNGE1YjRhYjRkYzMzNzM0OTY3YmUwN2E3M2JhODY3Li5iYzYzZWQyZGU0ZmVjOTlkMDQx
YjY3YThiMmY5ODc0ZjdhMWEzNzg5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L09wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAKQEAg
LTU3LDEyICs1Nyw2IEBAIHN0YXRpYyBib29sIGhhbmRsZU9wdGlvblBpeGVsVGVzdHMoT3B0aW9u
cyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKQogICAgIHJldHVybiB0cnVlOwog
fQogCi1zdGF0aWMgYm9vbCBoYW5kbGVPcHRpb25QcmludFN1cHBvcnRlZEZlYXR1cmVzKE9wdGlv
bnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikKLXsKLSAgICBvcHRpb25zLnBy
aW50U3VwcG9ydGVkRmVhdHVyZXMgPSB0cnVlOwotICAgIHJldHVybiB0cnVlOwotfQotCiBzdGF0
aWMgYm9vbCBoYW5kbGVPcHRpb25Db21wbGV4VGV4dChPcHRpb25zJiBvcHRpb25zLCBjb25zdCBj
aGFyKiwgY29uc3QgY2hhciopCiB7CiAgICAgb3B0aW9ucy5mb3JjZUNvbXBsZXhUZXh0ID0gdHJ1
ZTsKQEAgLTEyNyw3ICsxMjEsNiBAQCBPcHRpb25zSGFuZGxlcjo6T3B0aW9uc0hhbmRsZXIoT3B0
aW9ucyYgbykKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tZ2MtYmV0d2Vlbi10ZXN0
cyIsICJHYXJiYWdlIGNvbGxlY3Rpb24gYmV0d2VlbiB0ZXN0cy4iLCBoYW5kbGVPcHRpb25HY0Jl
dHdlZW5UZXN0cykpOwogICAgIG9wdGlvbkxpc3QuYXBwZW5kKE9wdGlvbigiLS1waXhlbC10ZXN0
cyIsICJDaGVjayBwaXhlbHMuIiwgaGFuZGxlT3B0aW9uUGl4ZWxUZXN0cykpOwogICAgIG9wdGlv
bkxpc3QuYXBwZW5kKE9wdGlvbigiLXAiLCAiQ2hlY2sgcGl4ZWxzLiIsIGhhbmRsZU9wdGlvblBp
eGVsVGVzdHMpKTsKLSAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tcHJpbnQtc3VwcG9y
dGVkLWZlYXR1cmVzIiwgIkZvciBEdW1wUmVuZGVyVHJlZSBjb21wYXRpYmlsaXR5LiIsIGhhbmRs
ZU9wdGlvblByaW50U3VwcG9ydGVkRmVhdHVyZXMpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChP
cHRpb24oIi0tY29tcGxleC10ZXh0IiwgIkZvcmNlIGNvbXBsZXggdGVzdHMuIiwgaGFuZGxlT3B0
aW9uQ29tcGxleFRleHQpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tYWNjZWxl
cmF0ZWQtZHJhd2luZyIsICJVc2UgYWNjZWxlcmF0ZWQgZHJhd2luZy4iLCBoYW5kbGVPcHRpb25B
Y2NlbGVyYXRlZERyYXdpbmcpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tcmVt
b3RlLWxheWVyLXRyZWUiLCAiVXNlIHJlbW90ZSBsYXllciB0cmVlLiIsIGhhbmRsZU9wdGlvblJl
bW90ZUxheWVyVHJlZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRp
b25zLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuaAppbmRleCBhODk5MjZkYmMw
NTdmYTYzMGU1NGE0ODg3ZWU5YjE3ZmNkMjJkZDU3Li40NmVjYjM5OTU5MDZhNTNjNmI0ZDM3Y2Zj
YzA4NzEzNmI4ZjM4ZmE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlv
bnMuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuaApAQCAtNDIsNyArNDIs
NiBAQCBzdHJ1Y3QgT3B0aW9ucyB7CiAgICAgYm9vbCB2ZXJib3NlIHsgZmFsc2UgfTsKICAgICBi
b29sIGdjQmV0d2VlblRlc3RzIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZER1bXBQaXhlbHNG
b3JBbGxUZXN0cyB7IGZhbHNlIH07Ci0gICAgYm9vbCBwcmludFN1cHBvcnRlZEZlYXR1cmVzIHsg
ZmFsc2UgfTsKICAgICBib29sIGZvcmNlQ29tcGxleFRleHQgeyBmYWxzZSB9OwogICAgIGJvb2wg
c2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZFVz
ZVJlbW90ZUxheWVyVHJlZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCmluZGV4IDJiYmFjYjEwYmIxMzk0M2VjY2Q1NWVmYzUxMjlmNTM5MDIyNDYz
NWIuLjI2YTAxYWNkNzk3NGJjMTg3NjEwN2I3OTBhN2IzYWRjODdhMzQ0MWQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC00NTksMTMgKzQ1OSw2IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3Zb
XSkKICAgICBtX2NoZWNrRm9yV29ybGRMZWFrcyA9IG9wdGlvbnMuY2hlY2tGb3JXb3JsZExlYWtz
OwogICAgIG1fYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzID0gb3B0aW9u
cy5hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHM7CiAKLSAgICBpZiAob3B0
aW9ucy5wcmludFN1cHBvcnRlZEZlYXR1cmVzKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBPbiBXaW5k
b3dzLCBEdW1wUmVuZGVyVHJlZSB1c2VzIHRoaXMgdG8gZXhwb3NlIHdoZXRoZXIgaXQgc3VwcG9y
dHMgM2QKLSAgICAgICAgLy8gdHJhbnNmb3JtcyBhbmQgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcu
IFdoZW4gd2Ugc3VwcG9ydCB0aG9zZSBmZWF0dXJlcywgd2UKLSAgICAgICAgLy8gc2hvdWxkIG1h
dGNoIERSVCdzIGJlaGF2aW9yLgotICAgICAgICBleGl0KDApOwotICAgIH0KLQogICAgIG1fdXNp
bmdTZXJ2ZXJNb2RlID0gKG1fcGF0aHMuc2l6ZSgpID09IDEgJiYgbV9wYXRoc1swXSA9PSAiLSIp
OwogICAgIGlmIChtX3VzaW5nU2VydmVyTW9kZSkKICAgICAgICAgbV9wcmludFNlcGFyYXRvcnMg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGQ3MjVkMTA0YzU1YmI4M2ZlOTlhMjViMDU1MTc0YmQ3YTcwNGY4MzMu
LjRkYzFiYmQxNWYzNzA1N2UzMTQxYTM5MmQ5M2EwMGViOTQ1MzQwMzYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxOS0wNS0yMiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KKworICAgICAgICBydW4td2Via2l0LXRlc3RzOiBSZW1vdmUgZmVhdHVyZSBkZXRlY3Rp
b24gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk4MTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBTa2lwIGFsbCBjb21wb3NpdGluZywg
YW5pbWF0aW9ucy8zZCBhbmQgdHJhbnNmb3Jtcy8zZCB0ZW1wb3JhcmlseS4KKwogMjAxOS0wNS0y
MCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBzZWN1cml0
eSBjaGVjayBpbiBTY3JpcHRDb250cm9sbGVyOjpjYW5BY2Nlc3NGcm9tQ3VycmVudE9yaWdpbigp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDk4NTViMmJi
ZDNlZDMzMzE0NzMyNmIzYWM4Nzg5NDJiZmNkMDdjYTcuLjk3ODI2NjE5ZmIwMzE4ZDFlYmE3ZDBj
OTc5MjAyNGRmODNkODhiNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yNjAyLDEwICsyNjAyLDcgQEAgd2Via2l0Lm9yZy9iLzE2MjY2OCBmYXN0L3Rl
eHQvd29mZjItdG90YWxzZm50c2l6ZS5odG1sIFsgU2tpcCBdCiAjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIwogCiAjIFNraXAgdGVzdHMgdGhhdCBmYWlsIG9ubHkgaW4gRGVidWcgbW9kZSAKLVsgRGVi
dWcgXSBjb21wb3NpdGluZyBbIFNraXAgXQogWyBEZWJ1ZyBdIGxlZ2FjeS1hbmltYXRpb24tZW5n
aW5lL2NvbXBvc2l0aW5nIFsgU2tpcCBdCi1bIERlYnVnIF0gdHJhbnNmb3Jtcy8zZC9oaXQtdGVz
dGluZyBbIFNraXAgXQotWyBEZWJ1ZyBdIHRyYW5zZm9ybXMvM2QvcG9pbnQtbWFwcGluZyBbIFNr
aXAgXQogCiAjIFRoZXNlIGZhaWx1cmVzIGFsbCBzZWVtIHRvIGJlIHJlbGF0ZWQgdG8gdGhlIHBh
Z2UgY2FjaGUgYmVpbmcgaW4gYSBiYWQgc3RhdGUuCiBbIERlYnVnIF0gY3NzMi4xL3QwOTA0MDIt
YzQyLWlieC1wYWQtMDAtZC1hZy5odG1sIFsgU2tpcCBdICMgRGVidWcgYXNzZXJ0aW9uCkBAIC0y
NjkzLDcgKzI2OTAsNiBAQCB3ZWJraXQub3JnL2IvMTYyNjY4IGZhc3QvdGV4dC93b2ZmMi10b3Rh
bHNmbnRzaXplLmh0bWwgWyBTa2lwIF0KIFsgRGVidWcgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2xp
c3RlbmVyL3hzcy13aW5kb3ctb25jbGljay1hZGRFdmVudExpc3RlbmVyLmh0bWwgWyBTa2lwIF0g
IyBDYXVzZXMgbGF0ZXIgdGVzdHMgdG8gZmFpbAogWyBEZWJ1ZyBdIHBsYXRmb3JtL3dpbi9mYXN0
L2V2ZW50cy9wYW5TY3JvbGwtbm8taWZyYW1lLWp1bXAuaHRtbCBbIFNraXAgXSAjIENhdXNlcyBs
YXRlciB0ZXN0cyB0byBmYWlsCiBbIERlYnVnIF0gc3ZnL2N1c3RvbS9saXN0LWl0ZW1zLXdpdGgt
c3ZnLWZvbnQtZmFtaWx5Lmh0bWwgWyBTa2lwIF0gIyBDYXVzZXMgbGF0ZXIgdGVzdHMgdG8gZmFp
bAotWyBEZWJ1ZyBdIHRyYW5zZm9ybXMvM2QvZ2VuZXJhbC9wZXJzcGVjdGl2ZS1ub24tbGF5ZXIu
aHRtbCBbIEZhaWx1cmUgXQogCiAjIFRoZXNlIGRvbid0IHNlZW0gdG8gYmUgcnVubmluZy4KIHdl
YmtpdC5vcmcvYi8xMTM5NDYgY29tcG9zaXRpbmcvY29udGVudHMtb3BhcXVlL2NvbnRyb2wtbGF5
ZXIuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNDQwMSwzICs0Mzk3LDcgQEAgd2Via2l0Lm9yZy9iLzE5
NzMxMCBmYXN0L2hhcm5lc3MvcmVuZGVyLXRyZWUtYXMtdGV4dC1vcHRpb25zLmh0bWwgWyBGYWls
dXJlIF0KIAogd2Via2l0Lm9yZy9iLzE5NTYyMyBodHRwL3Rlc3RzL2NhY2hlL2xpbmstcHJlZmV0
Y2gtbWFpbi1yZXNvdXJjZS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTk1NjIzIGh0dHAv
dGVzdHMvY2FjaGUvbGluay1wcmVmZXRjaC1tYWluLXJlc291cmNlLWlmcmFtZS5odG1sIFsgU2tp
cCBdCisKK2NvbXBvc2l0aW5nIFsgU2tpcCBdCithbmltYXRpb25zLzNkIFsgU2tpcCBdCit0cmFu
c2Zvcm1zLzNkIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5j
YWlyby9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAwYmZkZjEyYzYyN2NhMjNmMTgwMDUwODhlNTY5Nzg3NzhlODc0
Yjg3Li5lMjNlZTg2MmEwZDcyZDhlN2MwMmQ5MWRjYzE5NTQ4ZmQzMDk1M2IzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1MDIsNiAr
MTUwMiw4IEBAIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9hYm9ydGVkLXB1dC5odG1sIFsgVGlt
ZW91dCBQYXNzIF0KICMgVEVNUE9SQVJZIFNLSVBTIC0tIHRoZXNlIGFyZWFzIHN0aWxsIG5lZWQg
dG8gYmUgYWRkcmVzc2VkIGluZGl2aWR1YWxseQogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwogCithbmltYXRpb25zLzNkIFsgU2tpcCBdCitjb21wb3NpdGluZyBbIFNraXAgXQog
ZmFzdC9hdHRhY2htZW50IFsgU2tpcCBdCiBmYXN0L2JhY2tncm91bmRzIFsgU2tpcCBdCiBmYXN0
L2Jsb2NrIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370477</attachid>
            <date>2019-05-22 19:30:48 -0700</date>
            <delta_ts>2019-05-23 19:16:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198105-20190523113047.patch</filename>
            <type>text/plain</type>
            <size>22191</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NjcwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTRkNWFjOWU4MjgxYmMyZTE0NTgzMmNiZTZkYzE0ODRi
OWYyYjc4MS4uNmM2ZWI3Yzk4NTJmMGU5MjZmOTFiZDA1M2Y3YjJkMjA3NWE3NTI2MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDE5LTA1LTIyICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgorCisgICAgICAgIHJ1bi13ZWJraXQtdGVzdHM6IFJlbW92ZSBmZWF0dXJlIGRldGVjdGlvbiBz
dXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTgxMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
ZWF0dXJlIGRldGVjdGlvbiBzdXBwb3J0IGhhcyBiZWVuIGFkZGVkIHRvIFdpbmRvd3MgcG9ydCdz
IERSVCBhbmQKKyAgICAgICAgb2xkIHJ1bi13ZWJraXQtdGVzdHMgaW4gQnVnIDM1NjEwLiBJdCBo
YXMgYmVlbiBhZGRlZCBmb3IgTlJXVCBpbgorICAgICAgICBCdWcgNDE4NDIuIEJ1dCwgaXQgZG9l
c24ndCB3b3JrIGZvciBXaW5kb3dzIHBvcnQncyBEUlQgYmVjYXVzZQorICAgICAgICBmZWF0dXJl
IG5hbWUgbWlzbWF0Y2hlcy4gU2luY2UgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBmbGFn
CisgICAgICAgIGhhcyBiZWVuIHJlbW92ZWQgaW4gQnVnIDEyNzgzMywgaXQgaXMgbm90IG5lZWRl
ZCBhbnltb3JlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9i
YXNlLnB5OgorICAgICAgICAoUG9ydC5fdGVzdHNfZm9yX290aGVyX3BsYXRmb3Jtcyk6CisgICAg
ICAgIChQb3J0Ll9za2lwcGVkX3Rlc3RzX2Zvcl91bnN1cHBvcnRlZF9mZWF0dXJlcyk6CisgICAg
ICAgIChQb3J0Ll9ydW50aW1lX2ZlYXR1cmVfbGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChQb3J0
Lm5tX2NvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAoUG9ydC5fbW9kdWxlc190b19zZWFyY2hf
Zm9yX3N5bWJvbHMpOiBEZWxldGVkLgorICAgICAgICAoUG9ydC5fc3ltYm9sc19zdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoUG9ydC5fbWlzc2luZ19mZWF0dXJlX3RvX3NraXBwZWRfdGVzdHMp
OiBEZWxldGVkLgorICAgICAgICAoUG9ydC5faGFzX3Rlc3RfaW5fZGlyZWN0b3JpZXMpOiBEZWxl
dGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHk6CisgICAgICAg
IChEYXJ3aW5Qb3J0Lm1ha2VfY29tbWFuZCk6CisgICAgICAgIChEYXJ3aW5Qb3J0Lm5tX2NvbW1h
bmQpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3Nfc2ltdWxh
dG9yLnB5OgorICAgICAgICAoSU9TU2ltdWxhdG9yUG9ydC5yZXNldF9wcmVmZXJlbmNlcyk6Cisg
ICAgICAgIChJT1NTaW11bGF0b3JQb3J0Lm5tX2NvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5OgorICAgICAgICAoVGVzdFdl
YktpdFBvcnQuX19pbml0X18pOgorICAgICAgICAoVGVzdFdlYktpdFBvcnQuYWxsX3Rlc3RfY29u
ZmlndXJhdGlvbnMpOgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3RfcGF0aF90b190ZXN0X2V4
cGVjdGF0aW9uc19maWxlKToKKyAgICAgICAgKFRlc3RXZWJLaXRQb3J0Ll9zeW1ib2xzX3N0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9za2lwcGVkX2RpcmVjdG9y
aWVzX2Zvcl9mZWF0dXJlcyk6IERlbGV0ZWQuCisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9z
a2lwcGVkX2RpcmVjdG9yaWVzX2Zvcl9mZWF0dXJlc19ub19tYXRjaGluZ190ZXN0c19pbl90ZXN0
X2xpc3QpOiBEZWxldGVkLgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3Rfc2tpcHBlZF90ZXN0
c19mb3JfdW5zdXBwb3J0ZWRfZmVhdHVyZXNfZW1wdHlfdGVzdF9saXN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F0Y2hfc2ltdWxhdG9yLnB5OgorICAgICAg
ICAoV2F0Y2hTaW11bGF0b3JQb3J0LnJlc2V0X3ByZWZlcmVuY2VzKToKKyAgICAgICAgKFdhdGNo
U2ltdWxhdG9yUG9ydC5ubV9jb21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvd2luLnB5OgorICAgICAgICAoV2luUG9ydC5zaG93X3Jlc3VsdHNfaHRtbF9m
aWxlKToKKyAgICAgICAgKFdpblBvcnQuX3J1bnRpbWVfZmVhdHVyZV9saXN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luX3VuaXR0ZXN0LnB5OgorICAgICAg
ICAoV2luUG9ydFRlc3QudGVzdF9vcGVyYXRpbmdfc3lzdGVtKToKKyAgICAgICAgKFdpblBvcnRU
ZXN0LnRlc3RfcnVudGltZV9mZWF0dXJlX2xpc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvT3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6Ok9wdGlvbnNIYW5kbGVyOjpP
cHRpb25zSGFuZGxlcik6CisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvblByaW50U3VwcG9ydGVk
RmVhdHVyZXMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisKIDIwMTktMDUtMjIgIE5pa2l0
YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogUHJvdmlkZSBVSVN0cmluZyBkZXNjcmlwdGlvbnMgdG8gaW1wcm92ZSBsb2NhbGl6YXRpb25z
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAwNzRk
YjQxY2FhNTE0ZGQ5ODJiYzNiMWJhMjU1ODk2NjI0NTZjNjRmLi42ZDIxMzg1OWJlY2ZhNDMzMmZk
NjE2NDRhNGRhMDMzMmZiZDM3NDg4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1w
UmVuZGVyVHJlZS5jcHAKQEAgLTEwNCw3ICsxMDQsNiBAQCBzdGF0aWMgYm9vbCB1c2VBY2NlbGVy
YXRlZERyYXdpbmcgPSB0cnVlOyAvLyBOb3QgdXNlZAogc3RhdGljIGJvb2wgZ2NCZXR3ZWVuVGVz
dHMgPSB0cnVlOyAKIHN0YXRpYyBib29sIHByaW50U2VwYXJhdG9ycyA9IGZhbHNlOwogc3RhdGlj
IGJvb2wgbGVha0NoZWNraW5nID0gZmFsc2U7Ci1zdGF0aWMgYm9vbCBwcmludFN1cHBvcnRlZEZl
YXR1cmVzID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBzaG93V2ViVmlldyA9IGZhbHNlOwogc3RhdGlj
IFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb247
CiAKQEAgLTE0NjUsMTEgKzE0NjQsNiBAQCBzdGF0aWMgVmVjdG9yPGNvbnN0IGNoYXIqPiBpbml0
aWFsaXplR2xvYmFsc0Zyb21Db21tYW5kTGluZU9wdGlvbnMoaW50IGFyZ2MsIGNvbgogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIXN0cmljbXAoYXJndltp
XSwgIi0tcHJpbnQtc3VwcG9ydGVkLWZlYXR1cmVzIikpIHsKLSAgICAgICAgICAgIHByaW50U3Vw
cG9ydGVkRmVhdHVyZXMgPSB0cnVlOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0K
LQogICAgICAgICBpZiAoIXN0cmljbXAoYXJndltpXSwgIi0tc2hvdy13ZWJ2aWV3IikpIHsKICAg
ICAgICAgICAgIHNob3dXZWJWaWV3ID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAt
MTU4MCwyMyArMTU3NCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10p
CiAKICAgICBwcmVwYXJlQ29uc2lzdGVudFRlc3RpbmdFbnZpcm9ubWVudChzdGFuZGFyZFByZWZl
cmVuY2VzLmdldCgpLCBzdGFuZGFyZFByZWZlcmVuY2VzUHJpdmF0ZS5nZXQoKSk7CiAKLSAgICBp
ZiAocHJpbnRTdXBwb3J0ZWRGZWF0dXJlcykgewotICAgICAgICBCT09MIGFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdBdmFpbGFibGUgPSBGQUxTRTsKLSAgICAgICAgc3RhbmRhcmRQcmVmZXJlbmNlcy0+
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoJmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFp
bGFibGUpOwotCi0jaWYgRU5BQkxFKDNEX1RSQU5TRk9STVMpCi0gICAgICAgIC8vIEluIHRoZW9y
eSwgd2UgY291bGQgaGF2ZSBhIHNvZnR3YXJlLWJhc2VkIDNEIHJlbmRlcmluZyBpbXBsZW1lbnRh
dGlvbiB0aGF0IHdlIHVzZSB3aGVuCi0gICAgICAgIC8vIGhhcmR3YXJlLWFjY2VsZXJhdGlvbiBp
cyBub3QgYXZhaWxhYmxlLiBCdXQgd2UgZG9uJ3QgaGF2ZSBhbnkgc3VjaCBzb2Z0d2FyZQotICAg
ICAgICAvLyBpbXBsZW1lbnRhdGlvbiwgc28gM0QgcmVuZGVyaW5nIGlzIG9ubHkgYXZhaWxhYmxl
IHdoZW4gaGFyZHdhcmUtYWNjZWxlcmF0aW9uIGlzLgotICAgICAgICBCT09MIHRocmVlRFRyYW5z
Zm9ybXNBdmFpbGFibGUgPSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlOwotI2Vsc2UK
LSAgICAgICAgQk9PTCB0aHJlZURUcmFuc2Zvcm1zQXZhaWxhYmxlID0gRkFMU0U7Ci0jZW5kaWYK
LQotICAgICAgICBmcHJpbnRmKHRlc3RSZXN1bHQsICJTdXBwb3J0ZWRGZWF0dXJlczolcyAlc1xu
IiwgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSA/ICJBY2NlbGVyYXRlZENvbXBvc2l0
aW5nIiA6ICIiLCB0aHJlZURUcmFuc2Zvcm1zQXZhaWxhYmxlID8gIjNEVHJhbnNmb3JtcyIgOiAi
Iik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQogICAgIENPTVB0cjxJV2ViVmlldz4gd2Vi
VmlldyhBZG9wdENPTSwgY3JlYXRlV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdygmd2ViVmlld1dp
bmRvdykpOwogICAgIGlmICghd2ViVmlldykKICAgICAgICAgcmV0dXJuIC00OwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvYmFzZS5weQppbmRleCBkMDY3OTljNmFlMGUyNjBkOTE5MmY0Yjg2ODU2Yjhh
ZDNhYTZmOTkxLi4zNjI2N2NhYjNiNzBhMjZkZTIyMjM5ODE0YzE2Y2NmNTllMmU1NmNlIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQpAQCAtMzEsMTEgKzMxLDkgQEAKIHRlc3QgaW5m
cmFzdHJ1Y3R1cmUgKHRoZSBQb3J0IGFuZCBEcml2ZXIgY2xhc3NlcykuIiIiCiAKIGltcG9ydCBk
aWZmbGliCi1pbXBvcnQgaXRlcnRvb2xzCiBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKIGlt
cG9ydCBvcwotaW1wb3J0IG9wZXJhdG9yCiBpbXBvcnQgb3B0cGFyc2UKIGltcG9ydCByZQogaW1w
b3J0IHN5cwpAQCAtMTU1Nyw2NCArMTU1NSw3IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAg
ICAgICAgICAgICBkaXJzX3RvX3NraXAuYXBwZW5kKCdwbGF0Zm9ybS8lcycgJSBiYXNlbmFtZSkK
ICAgICAgICAgcmV0dXJuIGRpcnNfdG9fc2tpcAogCi0gICAgZGVmIF9ydW50aW1lX2ZlYXR1cmVf
bGlzdChzZWxmKToKLSAgICAgICAgIiIiSWYgYSBwb3J0IG1ha2VzIGNlcnRhaW4gZmVhdHVyZXMg
YXZhaWxhYmxlIG9ubHkgdGhyb3VnaCBydW50aW1lIGZsYWdzLCBpdCBjYW4gb3ZlcnJpZGUgdGhp
cyByb3V0aW5lIHRvIGluZGljYXRlIHdoaWNoIG9uZXMgYXJlIGF2YWlsYWJsZS4iIiIKLSAgICAg
ICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBubV9jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1
cm4gJ25tJwotCi0gICAgZGVmIF9tb2R1bGVzX3RvX3NlYXJjaF9mb3Jfc3ltYm9scyhzZWxmKToK
LSAgICAgICAgcGF0aCA9IHNlbGYuX3BhdGhfdG9fd2ViY29yZV9saWJyYXJ5KCkKLSAgICAgICAg
aWYgcGF0aDoKLSAgICAgICAgICAgIHJldHVybiBbcGF0aF0KLSAgICAgICAgcmV0dXJuIFtdCi0K
LSAgICBkZWYgX3N5bWJvbHNfc3RyaW5nKHNlbGYpOgotICAgICAgICBzeW1ib2xzID0gJycKLSAg
ICAgICAgZm9yIHBhdGhfdG9fbW9kdWxlIGluIHNlbGYuX21vZHVsZXNfdG9fc2VhcmNoX2Zvcl9z
eW1ib2xzKCk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc3ltYm9scyArPSBz
ZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoW3NlbGYubm1fY29tbWFuZCgpLCBwYXRoX3RvX21v
ZHVsZV0sIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKLSAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFz
IGU6Ci0gICAgICAgICAgICAgICAgX2xvZy53YXJuKCJGYWlsZWQgdG8gcnVuIG5tOiAlcy4gIENh
bid0IGRldGVybWluZSBzdXBwb3J0ZWQgZmVhdHVyZXMgY29ycmVjdGx5LiIgJSBlKQotICAgICAg
ICByZXR1cm4gc3ltYm9scwotCi0gICAgIyBQb3J0cyB3aGljaCB1c2UgcnVuLXRpbWUgZmVhdHVy
ZSBkZXRlY3Rpb24gc2hvdWxkIGRlZmluZSB0aGlzIG1ldGhvZCBhbmQgcmV0dXJuCi0gICAgIyBh
IGRpY3Rpb25hcnkgbWFwcGluZyBmcm9tIEZlYXR1cmUgTmFtZXMgdG8gc2tpcHBlZCBkaXJlY3Rv
aXJlcy4gIE5SV1Qgd2lsbAotICAgICMgcnVuIER1bXBSZW5kZXJUcmVlIC0tcHJpbnQtc3VwcG9y
dGVkLWZlYXR1cmVzIGFuZCBwYXJzZSB0aGUgb3V0cHV0LgotICAgICMgSWYgdGhlIEZlYXR1cmUg
TmFtZXMgYXJlIG5vdCBmb3VuZCBpbiB0aGUgb3V0cHV0LCB0aGUgY29ycmVzcG9uZGluZyBkaXJl
Y3RvcmllcwotICAgICMgd2lsbCBiZSBza2lwcGVkLgotICAgIGRlZiBfbWlzc2luZ19mZWF0dXJl
X3RvX3NraXBwZWRfdGVzdHMoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgc3VwcG9ydGVk
IGZlYXR1cmUgZGljdGlvbmFyeS4gS2V5cyBhcmUgZmVhdHVyZSBuYW1lcyBhbmQgdmFsdWVzCi0g
ICAgICAgIGFyZSB0aGUgbGlzdHMgb2YgZGlyZWN0b3JpZXMgdG8gc2tpcCBpZiB0aGUgZmVhdHVy
ZSBuYW1lIGlzIG5vdCBtYXRjaGVkLiIiIgotICAgICAgICAjIEZJWE1FOiBUaGlzIGxpc3QgbWF0
Y2hlcyBXZWJLaXRXaW4gYW5kIHNob3VsZCBiZSBtb3ZlZCBvbnRvIHRoZSBXaW4gcG9ydC4KLSAg
ICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICJBY2NlbGVyYXRlZCBDb21wb3NpdGluZyI6IFsi
Y29tcG9zaXRpbmciXSwKLSAgICAgICAgICAgICIzRCBSZW5kZXJpbmciOiBbImFuaW1hdGlvbnMv
M2QiLCAidHJhbnNmb3Jtcy8zZCJdLAotICAgICAgICB9Ci0KLSAgICBkZWYgX2hhc190ZXN0X2lu
X2RpcmVjdG9yaWVzKHNlbGYsIGRpcmVjdG9yeV9saXN0cywgdGVzdF9saXN0KToKLSAgICAgICAg
aWYgbm90IHRlc3RfbGlzdDoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIGRp
cmVjdG9yaWVzID0gaXRlcnRvb2xzLmNoYWluLmZyb21faXRlcmFibGUoZGlyZWN0b3J5X2xpc3Rz
KQotICAgICAgICBmb3IgZGlyZWN0b3J5LCB0ZXN0IGluIGl0ZXJ0b29scy5wcm9kdWN0KGRpcmVj
dG9yaWVzLCB0ZXN0X2xpc3QpOgotICAgICAgICAgICAgaWYgdGVzdC5zdGFydHN3aXRoKGRpcmVj
dG9yeSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNl
Ci0KICAgICBkZWYgX3NraXBwZWRfdGVzdHNfZm9yX3Vuc3VwcG9ydGVkX2ZlYXR1cmVzKHNlbGYs
IHRlc3RfbGlzdCk6Ci0gICAgICAgICMgT25seSBjaGVjayB0aGUgcnVudGltZSBmZWF0dXJlIGxp
c3Qgb2YgdGhlcmUgYXJlIHRlc3RzIGluIHRoZSB0ZXN0X2xpc3QgdGhhdCBtaWdodCBnZXQgc2tp
cHBlZC4KLSAgICAgICAgIyBUaGlzIGlzIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIHRvIGF2
b2lkIHRoZSBzdWJwcm9jZXNzIGNhbGwgdG8gRFJULgotICAgICAgICAjIElmIHRoZSBwb3J0IHN1
cHBvcnRzIHJ1bnRpbWUgZmVhdHVyZSBkZXRlY3Rpb24sIGRpc2FibGUgYW55IHRlc3RzCi0gICAg
ICAgICMgZm9yIGZlYXR1cmVzIG1pc3NpbmcgZnJvbSB0aGUgcnVudGltZSBmZWF0dXJlIGxpc3Qu
Ci0gICAgICAgICMgSWYgX3J1bnRpbWVfZmVhdHVyZV9saXN0IHJldHVybnMgYSBub24tTm9uZSB2
YWx1ZSwgdGhlbiBwcmVmZXIKLSAgICAgICAgIyBydW50aW1lIGZlYXR1cmUgZGV0ZWN0aW9uIG92
ZXIgc3RhdGljIGZlYXR1cmUgZGV0ZWN0aW9uLgotICAgICAgICBpZiBzZWxmLl9oYXNfdGVzdF9p
bl9kaXJlY3RvcmllcyhzZWxmLl9taXNzaW5nX2ZlYXR1cmVfdG9fc2tpcHBlZF90ZXN0cygpLnZh
bHVlcygpLCB0ZXN0X2xpc3QpOgotICAgICAgICAgICAgc3VwcG9ydGVkX2ZlYXR1cmVfbGlzdCA9
IHNlbGYuX3J1bnRpbWVfZmVhdHVyZV9saXN0KCkKLSAgICAgICAgICAgIGlmIHN1cHBvcnRlZF9m
ZWF0dXJlX2xpc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVjZShv
cGVyYXRvci5hZGQsIFtkaXJlY3RvcmllcyBmb3IgZmVhdHVyZSwgZGlyZWN0b3JpZXMgaW4gc2Vs
Zi5fbWlzc2luZ19mZWF0dXJlX3RvX3NraXBwZWRfdGVzdHMoKS5pdGVtcygpIGlmIGZlYXR1cmUg
bm90IGluIHN1cHBvcnRlZF9mZWF0dXJlX2xpc3RdKQotCiAgICAgICAgIHJldHVybiBbXQogCiAg
ICAgZGVmIF93azJfcG9ydF9uYW1lKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2Rhcndpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3
aW4ucHkKaW5kZXggMzNhNGJjOTdiOGYwNWIzMWY5ZmVmMzk4YjYxYzM5MTM1MDcxMzIyMC4uM2I3
Yzg4ZTQwNmMwZjU0ZmM4ZWZmNjI5MTM2YjQ2NTA0N2RkMGM3OSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2Rhcndpbi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvZGFyd2luLnB5CkBAIC0yMzMsOSArMjMzLDYgQEAgY2xhc3MgRGFyd2luUG9ydChB
cHBsZVBvcnQpOgogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLnhjcnVuX2ZpbmQoJ21ha2UnLCAnL3Vzci9iaW4vbWFrZScpCiAKLSAgICBkZWYgbm1fY29t
bWFuZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYueGNydW5fZmluZCgnbm0nLCAnbm0nKQot
CiAgICAgZGVmIHhjcnVuX2ZpbmQoc2VsZiwgY29tbWFuZCwgZmFsbGJhY2s9Tm9uZSk6CiAgICAg
ICAgIGZhbGxiYWNrID0gZmFsbGJhY2sgb3IgY29tbWFuZAogICAgICAgICB0cnk6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zX3NpbXVsYXRvci5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3Nfc2ltdWxhdG9yLnB5CmluZGV4IDA0Zjk5Yzc5NDYx
ZTI4YTI5NjI0MTdjOWUzNTEzMDdjOTI3MTZiNGIuLjMxMjc1ZmRiZmFhMjMzZDJkZDc4ZDI4OGIz
MmMwMDk5NTQ4ZjFiNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9p
b3Nfc2ltdWxhdG9yLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3Nfc2lt
dWxhdG9yLnB5CkBAIC05Niw5ICs5Niw2IEBAIGNsYXNzIElPU1NpbXVsYXRvclBvcnQoSU9TUG9y
dCk6CiAgICAgICAgIF9sb2cuZGVidWcoInJlc2V0X3ByZWZlcmVuY2VzIikKICAgICAgICAgU2lt
dWxhdGVkRGV2aWNlTWFuYWdlci50ZWFyX2Rvd24oc2VsZi5ob3N0KQogCi0gICAgZGVmIG5tX2Nv
bW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnhjcnVuX2ZpbmQoJ25tJykKLQogICAg
IEBwcm9wZXJ0eQogICAgIEBtZW1vaXplZAogICAgIGRlZiBkZXZlbG9wZXJfZGlyKHNlbGYpOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQppbmRleCA5ZDg2
YzljMzcwZTA0Y2I3N2NjY2I3MTRhZTM4ZDRmYmUyOTY3YzNmLi44YzUxM2Q3ZjFlMWNlM2FkMDg4
OTdmMjdhYThlNWY3ZWNiYWJmOTEyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
cG9ydF90ZXN0Y2FzZS5weQpAQCAtNTYsMjAgKzU2LDE2IEBAIGZyb20gd2Via2l0cHkudG9vbC5t
b2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMKIGNsYXNzIFRlc3RXZWJLaXRQb3J0KFBvcnQpOgog
ICAgIHBvcnRfbmFtZSA9ICJ0ZXN0d2Via2l0cG9ydCIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwb3J0X25hbWU9Tm9uZSwgc3ltYm9sc19zdHJpbmc9Tm9uZSwKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgcG9ydF9uYW1lPU5vbmUsCiAgICAgICAgICAgICAgICAgIGV4cGVjdGF0aW9uc19maWxl
PU5vbmUsIHNraXBzX2ZpbGU9Tm9uZSwgaG9zdD1Ob25lLCBjb25maWc9Tm9uZSwKICAgICAgICAg
ICAgICAgICAgKiprd2FyZ3MpOgogICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25hbWUgb3IgVGVz
dFdlYktpdFBvcnQucG9ydF9uYW1lCi0gICAgICAgIHNlbGYuc3ltYm9sc19zdHJpbmcgPSBzeW1i
b2xzX3N0cmluZyAgIyBQYXNzaW5nICIiIGRpc2FibGVzIGFsbCBzdGF0aWNseS1kZXRlY3RhYmxl
IGZlYXR1cmVzLgogICAgICAgICBob3N0ID0gaG9zdCBvciBNb2NrU3lzdGVtSG9zdCgpCiAgICAg
ICAgIHN1cGVyKFRlc3RXZWJLaXRQb3J0LCBzZWxmKS5fX2luaXRfXyhob3N0LCBwb3J0X25hbWU9
cG9ydF9uYW1lLCAqKmt3YXJncykKIAogICAgIGRlZiBhbGxfdGVzdF9jb25maWd1cmF0aW9ucyhz
ZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLnRlc3RfY29uZmlndXJhdGlvbigpXQogCi0gICAg
ZGVmIF9zeW1ib2xzX3N0cmluZyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuc3ltYm9sc19z
dHJpbmcKLQogICAgIGRlZiBfdGVzdHNfZm9yX290aGVyX3BsYXRmb3JtcyhzZWxmLCAqKmt3YXJn
cyk6CiAgICAgICAgIHJldHVybiBbIm1lZGlhIiwgXQogCkBAIC01MDAsMjYgKzQ5Niw2IEBAIGNs
YXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQuX29wdGlv
bnMgPSBNb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9RmFsc2UpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUoKSwgJy9tb2Nr
LWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3R3ZWJraXRwb3J0L1Rlc3RFeHBlY3Rh
dGlvbnMnKQogCi0gICAgZGVmIHRlc3Rfc2tpcHBlZF9kaXJlY3Rvcmllc19mb3JfZmVhdHVyZXMo
c2VsZik6Ci0gICAgICAgIHN1cHBvcnRlZF9mZWF0dXJlcyA9IFsiQWNjZWxlcmF0ZWQgQ29tcG9z
aXRpbmciLCAiRm9vIEZlYXR1cmUiXQotICAgICAgICBleHBlY3RlZF9kaXJlY3RvcmllcyA9IHNl
dChbImFuaW1hdGlvbnMvM2QiLCAidHJhbnNmb3Jtcy8zZCJdKQotICAgICAgICBwb3J0ID0gVGVz
dFdlYktpdFBvcnQoc3VwcG9ydGVkX2ZlYXR1cmVzPXN1cHBvcnRlZF9mZWF0dXJlcykKLSAgICAg
ICAgcG9ydC5fcnVudGltZV9mZWF0dXJlX2xpc3QgPSBsYW1iZGE6IHN1cHBvcnRlZF9mZWF0dXJl
cwotICAgICAgICByZXN1bHRfZGlyZWN0b3JpZXMgPSBzZXQocG9ydC5fc2tpcHBlZF90ZXN0c19m
b3JfdW5zdXBwb3J0ZWRfZmVhdHVyZXModGVzdF9saXN0PVsiYW5pbWF0aW9ucy8zZC9mb28uaHRt
bCJdKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRfZGlyZWN0b3JpZXMsIGV4cGVj
dGVkX2RpcmVjdG9yaWVzKQotCi0gICAgZGVmIHRlc3Rfc2tpcHBlZF9kaXJlY3Rvcmllc19mb3Jf
ZmVhdHVyZXNfbm9fbWF0Y2hpbmdfdGVzdHNfaW5fdGVzdF9saXN0KHNlbGYpOgotICAgICAgICBz
dXBwb3J0ZWRfZmVhdHVyZXMgPSBbIkFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIiwgIkZvbyBGZWF0
dXJlIl0KLSAgICAgICAgZXhwZWN0ZWRfZGlyZWN0b3JpZXMgPSBzZXQoW10pCi0gICAgICAgIHJl
c3VsdF9kaXJlY3RvcmllcyA9IHNldChUZXN0V2ViS2l0UG9ydChzdXBwb3J0ZWRfZmVhdHVyZXM9
c3VwcG9ydGVkX2ZlYXR1cmVzKS5fc2tpcHBlZF90ZXN0c19mb3JfdW5zdXBwb3J0ZWRfZmVhdHVy
ZXModGVzdF9saXN0PVsnZm9vLmh0bWwnXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVz
dWx0X2RpcmVjdG9yaWVzLCBleHBlY3RlZF9kaXJlY3RvcmllcykKLQotICAgIGRlZiB0ZXN0X3Nr
aXBwZWRfdGVzdHNfZm9yX3Vuc3VwcG9ydGVkX2ZlYXR1cmVzX2VtcHR5X3Rlc3RfbGlzdChzZWxm
KToKLSAgICAgICAgc3VwcG9ydGVkX2ZlYXR1cmVzID0gWyJBY2NlbGVyYXRlZCBDb21wb3NpdGlu
ZyIsICJGb28gRmVhdHVyZSJdCi0gICAgICAgIGV4cGVjdGVkX2RpcmVjdG9yaWVzID0gc2V0KFtd
KQotICAgICAgICByZXN1bHRfZGlyZWN0b3JpZXMgPSBzZXQoVGVzdFdlYktpdFBvcnQoc3VwcG9y
dGVkX2ZlYXR1cmVzPXN1cHBvcnRlZF9mZWF0dXJlcykuX3NraXBwZWRfdGVzdHNfZm9yX3Vuc3Vw
cG9ydGVkX2ZlYXR1cmVzKHRlc3RfbGlzdD1Ob25lKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChyZXN1bHRfZGlyZWN0b3JpZXMsIGV4cGVjdGVkX2RpcmVjdG9yaWVzKQotCiAgICAgZGVmIHRl
c3Rfc2tpcHBlZF9sYXlvdXRfdGVzdHMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
VGVzdFdlYktpdFBvcnQoKS5za2lwcGVkX2xheW91dF90ZXN0cyh0ZXN0X2xpc3Q9W10pLCBzZXQo
WydtZWRpYSddKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dh
dGNoX3NpbXVsYXRvci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93YXRjaF9zaW11
bGF0b3IucHkKaW5kZXggM2RlYmVlMmU5OWFiM2YyMzNlZTI0Y2MyYjU5NzVkYWEyZDU2NzkyNS4u
OTMyZGMzZTBlODNkNWIwNWViZWI1YTA0NzAwNTRiZjI0Y2I0YTg1OSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dhdGNoX3NpbXVsYXRvci5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F0Y2hfc2ltdWxhdG9yLnB5CkBAIC04Nyw5ICs4Nyw2IEBA
IGNsYXNzIFdhdGNoU2ltdWxhdG9yUG9ydChXYXRjaFBvcnQpOgogICAgIGRlZiByZXNldF9wcmVm
ZXJlbmNlcyhzZWxmKToKICAgICAgICAgU2ltdWxhdGVkRGV2aWNlTWFuYWdlci50ZWFyX2Rvd24o
c2VsZi5ob3N0KQogCi0gICAgZGVmIG5tX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBz
ZWxmLnhjcnVuX2ZpbmQoJ25tJykKLQogICAgIEBwcm9wZXJ0eQogICAgIEBtZW1vaXplZAogICAg
IGRlZiBkZXZlbG9wZXJfZGlyKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L3dpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93aW4ucHkKaW5k
ZXggNjZhZDEzZGIzY2E2OGM2YmU3ZWI5MGVhMWU0ZDg3NGNlZDc4YjAwOS4uNGI5YjYwNjNjMjk1
YmU2NDMxMDk4YjA4ZGI4YTEwMjE4YWNlYTAwYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L3dpbi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2lu
LnB5CkBAIC0xNTQsMjAgKzE1NCw2IEBAIGNsYXNzIFdpblBvcnQoQXBwbGVQb3J0KToKICAgICBk
ZWYgc2hvd19yZXN1bHRzX2h0bWxfZmlsZShzZWxmLCByZXN1bHRzX2ZpbGVuYW1lKToKICAgICAg
ICAgc2VsZi5fcnVuX3NjcmlwdCgncnVuLXNhZmFyaScsIFthYnNwYXRoX3RvX3VyaShTeXN0ZW1I
b3N0KCkucGxhdGZvcm0sIHJlc3VsdHNfZmlsZW5hbWUpXSkKIAotICAgIGRlZiBfcnVudGltZV9m
ZWF0dXJlX2xpc3Qoc2VsZik6Ci0gICAgICAgIHN1cHBvcnRlZF9mZWF0dXJlc19jb21tYW5kID0g
W3NlbGYuX3BhdGhfdG9fZHJpdmVyKCksICctLXByaW50LXN1cHBvcnRlZC1mZWF0dXJlcyddCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIG91dHB1dCA9IHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29t
bWFuZChzdXBwb3J0ZWRfZmVhdHVyZXNfY29tbWFuZCwgaWdub3JlX2Vycm9ycz1UcnVlKQotICAg
ICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICAgICAgX2xvZy53YXJuKCJFeGNlcHRp
b24gcnVubmluZyBkcml2ZXI6ICVzLCAlcy4gIERyaXZlciBtdXN0IGJlIGJ1aWx0IGJlZm9yZSBj
YWxsaW5nIFdlYktpdFBvcnQudGVzdF9leHBlY3RhdGlvbnMoKS4iICUgKHN1cHBvcnRlZF9mZWF0
dXJlc19jb21tYW5kLCBlKSkKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgIyBO
b3RlOiB3aW4vRHVtcFJlbmRlclRyZWUuY3BwIGRvZXMgbm90IHByaW50IGEgbGVhZGluZyBzcGFj
ZSBiZWZvcmUgdGhlIGZlYXR1cmVzX3N0cmluZy4KLSAgICAgICAgbWF0Y2hfb2JqZWN0ID0gcmUu
bWF0Y2goIlN1cHBvcnRlZEZlYXR1cmVzOlxzKig/UDxmZWF0dXJlc19zdHJpbmc+LiopXHMqIiwg
b3V0cHV0KQotICAgICAgICBpZiBub3QgbWF0Y2hfb2JqZWN0OgotICAgICAgICAgICAgcmV0dXJu
IE5vbmUKLSAgICAgICAgcmV0dXJuIG1hdGNoX29iamVjdC5ncm91cCgnZmVhdHVyZXNfc3RyaW5n
Jykuc3BsaXQoJyAnKQotCiAgICAgZGVmIF9idWlsZF9wYXRoKHNlbGYsICpjb21wcyk6CiAgICAg
ICAgICIiIlJldHVybnMgdGhlIGZ1bGwgcGF0aCB0byB0aGUgdGVzdCBkcml2ZXIgKER1bXBSZW5k
ZXJUcmVlKS4iIiIKICAgICAgICAgcm9vdF9kaXJlY3RvcnkgPSBzZWxmLmdldF9vcHRpb24oJ19j
YWNoZWRfcm9vdCcpIG9yIHNlbGYuZ2V0X29wdGlvbigncm9vdCcpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L3dpbl91bml0dGVzdC5weQppbmRleCA2YjMyN2E5ODZlYzcxNGI0YjJkOGYz
ZTBiNTEyNWMwYTU0N2Y3ZTIwLi4wYzYyMTE0MjFhOTQyNTNlZDY5MTRlNjgzMjg1Y2I1M2U5OWQw
ZDk4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luX3VuaXR0ZXN0
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93aW5fdW5pdHRlc3QucHkKQEAg
LTkzLDE0ICs5Myw2IEBAIGNsYXNzIFdpblBvcnRUZXN0KHBvcnRfdGVzdGNhc2UuUG9ydFRlc3RD
YXNlKToKICAgICBkZWYgdGVzdF9vcGVyYXRpbmdfc3lzdGVtKHNlbGYpOgogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCd3aW4nLCBzZWxmLm1ha2VfcG9ydCgpLm9wZXJhdGluZ19zeXN0ZW0oKSkK
IAotICAgIGRlZiB0ZXN0X3J1bnRpbWVfZmVhdHVyZV9saXN0KHNlbGYpOgotICAgICAgICBwb3J0
ID0gc2VsZi5tYWtlX3BvcnQoKQotICAgICAgICBwb3J0Ll9leGVjdXRpdmUucnVuX2NvbW1hbmQg
PSBsYW1iZGEgY29tbWFuZCwgY3dkPU5vbmUsIGlnbm9yZV9lcnJvcnM9RmFsc2U6ICJOb25zZW5z
ZSIKLSAgICAgICAgIyBydW50aW1lX2ZlYXR1cmVzX2xpc3QgcmV0dXJucyBOb25lIHdoZW4gaXRz
IHJlc3VsdHMgYXJlIG1lYW5pbmdsZXNzIChpdCBjb3VsZG4ndCBydW4gRFJUIG9yIHBhcnNlIHRo
ZSBvdXRwdXQsIGV0Yy4pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5fcnVudGltZV9m
ZWF0dXJlX2xpc3QoKSwgTm9uZSkKLSAgICAgICAgcG9ydC5fZXhlY3V0aXZlLnJ1bl9jb21tYW5k
ID0gbGFtYmRhIGNvbW1hbmQsIGN3ZD1Ob25lLCBpZ25vcmVfZXJyb3JzPUZhbHNlOiAiU3VwcG9y
dGVkRmVhdHVyZXM6Zm9vIGJhciIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0Ll9ydW50
aW1lX2ZlYXR1cmVfbGlzdCgpLCBbJ2ZvbycsICdiYXInXSkKLQogICAgIGRlZiB0ZXN0X2V4cGVj
dGF0aW9uc19maWxlcyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5t
YWtlX3BvcnQoKS5leHBlY3RhdGlvbnNfZmlsZXMoKSksIDMpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobGVuKHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09wdGlvbnMod2Via2l0X3Rlc3Rf
cnVubmVyPVRydWUsIGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZXhwZWN0YXRpb25zX2ZpbGVz
KCkpLCA1KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAKaW5kZXggOWRkMzdiMDI4YjRhNWI0
YWI0ZGMzMzczNDk2N2JlMDdhNzNiYTg2Ny4uYmM2M2VkMmRlNGZlYzk5ZDA0MWI2N2E4YjJmOTg3
NGY3YTFhMzc4OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuY3BwCkBAIC01NywxMiArNTcs
NiBAQCBzdGF0aWMgYm9vbCBoYW5kbGVPcHRpb25QaXhlbFRlc3RzKE9wdGlvbnMmIG9wdGlvbnMs
IGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGlj
IGJvb2wgaGFuZGxlT3B0aW9uUHJpbnRTdXBwb3J0ZWRGZWF0dXJlcyhPcHRpb25zJiBvcHRpb25z
LCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciopCi17Ci0gICAgb3B0aW9ucy5wcmludFN1cHBvcnRl
ZEZlYXR1cmVzID0gdHJ1ZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogc3RhdGljIGJvb2wgaGFu
ZGxlT3B0aW9uQ29tcGxleFRleHQoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0
IGNoYXIqKQogewogICAgIG9wdGlvbnMuZm9yY2VDb21wbGV4VGV4dCA9IHRydWU7CkBAIC0xMjcs
NyArMTIxLDYgQEAgT3B0aW9uc0hhbmRsZXI6Ok9wdGlvbnNIYW5kbGVyKE9wdGlvbnMmIG8pCiAg
ICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLWdjLWJldHdlZW4tdGVzdHMiLCAiR2FyYmFn
ZSBjb2xsZWN0aW9uIGJldHdlZW4gdGVzdHMuIiwgaGFuZGxlT3B0aW9uR2NCZXR3ZWVuVGVzdHMp
KTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tcGl4ZWwtdGVzdHMiLCAiQ2hlY2sg
cGl4ZWxzLiIsIGhhbmRsZU9wdGlvblBpeGVsVGVzdHMpKTsKICAgICBvcHRpb25MaXN0LmFwcGVu
ZChPcHRpb24oIi1wIiwgIkNoZWNrIHBpeGVscy4iLCBoYW5kbGVPcHRpb25QaXhlbFRlc3RzKSk7
Ci0gICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLXByaW50LXN1cHBvcnRlZC1mZWF0dXJl
cyIsICJGb3IgRHVtcFJlbmRlclRyZWUgY29tcGF0aWJpbGl0eS4iLCBoYW5kbGVPcHRpb25Qcmlu
dFN1cHBvcnRlZEZlYXR1cmVzKSk7CiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLWNv
bXBsZXgtdGV4dCIsICJGb3JjZSBjb21wbGV4IHRlc3RzLiIsIGhhbmRsZU9wdGlvbkNvbXBsZXhU
ZXh0KSk7CiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLWFjY2VsZXJhdGVkLWRyYXdp
bmciLCAiVXNlIGFjY2VsZXJhdGVkIGRyYXdpbmcuIiwgaGFuZGxlT3B0aW9uQWNjZWxlcmF0ZWRE
cmF3aW5nKSk7CiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLXJlbW90ZS1sYXllci10
cmVlIiwgIlVzZSByZW1vdGUgbGF5ZXIgdHJlZS4iLCBoYW5kbGVPcHRpb25SZW1vdGVMYXllclRy
ZWUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKaW5kZXggYTg5OTI2ZGJjMDU3ZmE2MzBlNTRh
NDg4N2VlOWIxN2ZjZDIyZGQ1Ny4uNDZlY2IzOTk1OTA2YTUzYzZiNGQzN2NmY2MwODcxMzZiOGYz
OGZhNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKQEAgLTQyLDcgKzQyLDYgQEAgc3RydWN0
IE9wdGlvbnMgewogICAgIGJvb2wgdmVyYm9zZSB7IGZhbHNlIH07CiAgICAgYm9vbCBnY0JldHdl
ZW5UZXN0cyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzRm9yQWxsVGVzdHMg
eyBmYWxzZSB9OwotICAgIGJvb2wgcHJpbnRTdXBwb3J0ZWRGZWF0dXJlcyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBmb3JjZUNvbXBsZXhUZXh0IHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZFVzZUFj
Y2VsZXJhdGVkRHJhd2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRVc2VSZW1vdGVMYXll
clRyZWUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAppbmRleCAyYmJhY2IxMGJiMTM5NDNlY2NkNTVlZmM1MTI5ZjUzOTAyMjQ2MzViLi4yNmEwMWFj
ZDc5NzRiYzE4NzYxMDdiNzkwYTdiM2FkYzg3YTM0NDFkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNDU5LDEzICs0NTksNiBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgbV9j
aGVja0ZvcldvcmxkTGVha3MgPSBvcHRpb25zLmNoZWNrRm9yV29ybGRMZWFrczsKICAgICBtX2Fs
bG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0cyA9IG9wdGlvbnMuYWxsb3dBbnlI
VFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzOwogCi0gICAgaWYgKG9wdGlvbnMucHJpbnRT
dXBwb3J0ZWRGZWF0dXJlcykgewotICAgICAgICAvLyBGSVhNRTogT24gV2luZG93cywgRHVtcFJl
bmRlclRyZWUgdXNlcyB0aGlzIHRvIGV4cG9zZSB3aGV0aGVyIGl0IHN1cHBvcnRzIDNkCi0gICAg
ICAgIC8vIHRyYW5zZm9ybXMgYW5kIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLiBXaGVuIHdlIHN1
cHBvcnQgdGhvc2UgZmVhdHVyZXMsIHdlCi0gICAgICAgIC8vIHNob3VsZCBtYXRjaCBEUlQncyBi
ZWhhdmlvci4KLSAgICAgICAgZXhpdCgwKTsKLSAgICB9Ci0KICAgICBtX3VzaW5nU2VydmVyTW9k
ZSA9IChtX3BhdGhzLnNpemUoKSA9PSAxICYmIG1fcGF0aHNbMF0gPT0gIi0iKTsKICAgICBpZiAo
bV91c2luZ1NlcnZlck1vZGUpCiAgICAgICAgIG1fcHJpbnRTZXBhcmF0b3JzID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBkNGEwY2RiYjgxNTAxZGM1ZjFhYjhjZjgzZDQzOWE5MmFlNDUxZjZlLi42NzJkYzU2NWEx
M2RhYjc3ZmY0OWRjYTUwNDk1NGM4ZDcyZDdjNzJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTktMDUtMjIgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAg
ICAgICAgcnVuLXdlYmtpdC10ZXN0czogUmVtb3ZlIGZlYXR1cmUgZGV0ZWN0aW9uIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODEwNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgQWRkZWQgU2tpcCBmb3IgYWxsIGNvbXBvc2l0aW5nLCBh
bmltYXRpb25zLzNkIGFuZCB0cmFuc2Zvcm1zLzNkIHRlc3RzIHRlbXBvcmFyaWx5LgorCiAyMDE5
LTA1LTIyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBTdWJz
ZWxlY3RvcnMgbm90IHNlYXJjaGVkIHdoZW4gZGV0ZXJtaW5pbmcgcHJvcGVydHkgd2hpdGVsaXN0
IGZvciBzZWxlY3RvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA1ZmU4NDNjZjFhMWY3MGNkNThkNWYwY2RiODJlMzFkZWE1OWRhZWMyLi5kYTFjZGMzNDJh
NmIxYjg2NjE0ZjlmOTQwZTg0MWExNGQ5Njc0YWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjYwMSwxMSArMjYwMSwxMiBAQCB3ZWJraXQub3JnL2Iv
MTYyNjY4IGZhc3QvdGV4dC93b2ZmMi10b3RhbHNmbnRzaXplLmh0bWwgWyBTa2lwIF0KICMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMgU3RhcnQgbGlzdCBvZiBVTlJFVklFV0VEIGZhaWx1cmVzICMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAorY29tcG9z
aXRpbmcgWyBTa2lwIF0KK2FuaW1hdGlvbnMvM2QgWyBTa2lwIF0KK3RyYW5zZm9ybXMvM2QgWyBT
a2lwIF0KKwogIyBTa2lwIHRlc3RzIHRoYXQgZmFpbCBvbmx5IGluIERlYnVnIG1vZGUgCi1bIERl
YnVnIF0gY29tcG9zaXRpbmcgWyBTa2lwIF0KIFsgRGVidWcgXSBsZWdhY3ktYW5pbWF0aW9uLWVu
Z2luZS9jb21wb3NpdGluZyBbIFNraXAgXQotWyBEZWJ1ZyBdIHRyYW5zZm9ybXMvM2QvaGl0LXRl
c3RpbmcgWyBTa2lwIF0KLVsgRGVidWcgXSB0cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcgWyBT
a2lwIF0KIAogIyBUaGVzZSBmYWlsdXJlcyBhbGwgc2VlbSB0byBiZSByZWxhdGVkIHRvIHRoZSBw
YWdlIGNhY2hlIGJlaW5nIGluIGEgYmFkIHN0YXRlLgogWyBEZWJ1ZyBdIGNzczIuMS90MDkwNDAy
LWM0Mi1pYngtcGFkLTAwLWQtYWcuaHRtbCBbIFNraXAgXSAjIERlYnVnIGFzc2VydGlvbgpAQCAt
MjY5Myw3ICsyNjk0LDYgQEAgd2Via2l0Lm9yZy9iLzE2MjY2OCBmYXN0L3RleHQvd29mZjItdG90
YWxzZm50c2l6ZS5odG1sIFsgU2tpcCBdCiBbIERlYnVnIF0gaHR0cC90ZXN0cy9zZWN1cml0eS9s
aXN0ZW5lci94c3Mtd2luZG93LW9uY2xpY2stYWRkRXZlbnRMaXN0ZW5lci5odG1sIFsgU2tpcCBd
ICMgQ2F1c2VzIGxhdGVyIHRlc3RzIHRvIGZhaWwKIFsgRGVidWcgXSBwbGF0Zm9ybS93aW4vZmFz
dC9ldmVudHMvcGFuU2Nyb2xsLW5vLWlmcmFtZS1qdW1wLmh0bWwgWyBTa2lwIF0gIyBDYXVzZXMg
bGF0ZXIgdGVzdHMgdG8gZmFpbAogWyBEZWJ1ZyBdIHN2Zy9jdXN0b20vbGlzdC1pdGVtcy13aXRo
LXN2Zy1mb250LWZhbWlseS5odG1sIFsgU2tpcCBdICMgQ2F1c2VzIGxhdGVyIHRlc3RzIHRvIGZh
aWwKLVsgRGVidWcgXSB0cmFuc2Zvcm1zLzNkL2dlbmVyYWwvcGVyc3BlY3RpdmUtbm9uLWxheWVy
Lmh0bWwgWyBGYWlsdXJlIF0KIAogIyBUaGVzZSBkb24ndCBzZWVtIHRvIGJlIHJ1bm5pbmcuCiB3
ZWJraXQub3JnL2IvMTEzOTQ2IGNvbXBvc2l0aW5nL2NvbnRlbnRzLW9wYXF1ZS9jb250cm9sLWxh
eWVyLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDBiZmRmMTJjNjI3Y2EyM2YxODAwNTA4OGU1Njk3ODc3OGU4
NzRiODcuLmUyM2VlODYyYTBkNzJkOGU3YzAyZDkxZGNjMTk1NDhmZDMwOTUzYjMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTUwMiw2
ICsxNTAyLDggQEAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Fib3J0ZWQtcHV0Lmh0bWwgWyBU
aW1lb3V0IFBhc3MgXQogIyBURU1QT1JBUlkgU0tJUFMgLS0gdGhlc2UgYXJlYXMgc3RpbGwgbmVl
ZCB0byBiZSBhZGRyZXNzZWQgaW5kaXZpZHVhbGx5CiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vCiAKK2FuaW1hdGlvbnMvM2QgWyBTa2lwIF0KK2NvbXBvc2l0aW5nIFsgU2tpcCBd
CiBmYXN0L2F0dGFjaG1lbnQgWyBTa2lwIF0KIGZhc3QvYmFja2dyb3VuZHMgWyBTa2lwIF0KIGZh
c3QvYmxvY2sgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370544</attachid>
            <date>2019-05-23 19:16:53 -0700</date>
            <delta_ts>2019-05-23 19:17:55 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198105-20190524111652.patch</filename>
            <type>text/plain</type>
            <size>22160</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NzMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDE1Y2QwYzM1NzE4OGI5ODJkNTg5MGNhNWVlY2FiYWJi
MTMyZTc3NC4uNDMxYTk0ODJiYTg3NWRiMmYyODIzY2Q2NzY5YzI4NDE3NDI1NjRkNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDE5LTA1LTIzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgorCisgICAgICAgIHJ1bi13ZWJraXQtdGVzdHM6IFJlbW92ZSBmZWF0dXJlIGRldGVjdGlvbiBz
dXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTgxMDUKKworICAgICAgICBSZXZpZXdlZCBieSBKb25hdGhhbiBCZWRhcmQuCisKKyAgICAgICAg
RmVhdHVyZSBkZXRlY3Rpb24gc3VwcG9ydCB3YXMgYWRkZWQgdG8gRFJUIGZvciBXaW5kb3dzIGFu
ZCBvbGQKKyAgICAgICAgcnVuLXdlYmtpdC10ZXN0cyBpbiBCdWcgMzU2MTAuIEl0IHdhcyBiZWVu
IGFkZGVkIGZvciBOUldUIGluIEJ1ZworICAgICAgICA0MTg0Mi4gQnV0LCBpdCBkb2Vzbid0IHdv
cmsgZm9yIERSVCBmb3IgV2luZG93cyBiZWNhdXNlIG9mIGZlYXR1cmUKKyAgICAgICAgbmFtZSBt
aXNtYXRjaGVzLiBTaW5jZSBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpIGZsYWcgaGFzIGJl
ZW4KKyAgICAgICAgcmVtb3ZlZCBpbiBCdWcgMTI3ODMzLCBpdCBpcyBub3QgbmVlZGVkIGFueW1v
cmUuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAobWFpbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHk6
CisgICAgICAgIChQb3J0Ll90ZXN0c19mb3Jfb3RoZXJfcGxhdGZvcm1zKToKKyAgICAgICAgKFBv
cnQuX3NraXBwZWRfdGVzdHNfZm9yX3Vuc3VwcG9ydGVkX2ZlYXR1cmVzKToKKyAgICAgICAgKFBv
cnQuX3J1bnRpbWVfZmVhdHVyZV9saXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFBvcnQubm1fY29t
bWFuZCk6IERlbGV0ZWQuCisgICAgICAgIChQb3J0Ll9tb2R1bGVzX3RvX3NlYXJjaF9mb3Jfc3lt
Ym9scyk6IERlbGV0ZWQuCisgICAgICAgIChQb3J0Ll9zeW1ib2xzX3N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChQb3J0Ll9taXNzaW5nX2ZlYXR1cmVfdG9fc2tpcHBlZF90ZXN0cyk6IERlbGV0
ZWQuCisgICAgICAgIChQb3J0Ll9oYXNfdGVzdF9pbl9kaXJlY3Rvcmllcyk6IERlbGV0ZWQuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2Rhcndpbi5weToKKyAgICAgICAgKERhcndp
blBvcnQubWFrZV9jb21tYW5kKToKKyAgICAgICAgKERhcndpblBvcnQubm1fY29tbWFuZCk6IERl
bGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvc19zaW11bGF0b3IucHk6
CisgICAgICAgIChJT1NTaW11bGF0b3JQb3J0LnJlc2V0X3ByZWZlcmVuY2VzKToKKyAgICAgICAg
KElPU1NpbXVsYXRvclBvcnQubm1fY29tbWFuZCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9wb3J0L3BvcnRfdGVzdGNhc2UucHk6CisgICAgICAgIChUZXN0V2ViS2l0UG9y
dC5fX2luaXRfXyk6CisgICAgICAgIChUZXN0V2ViS2l0UG9ydC5hbGxfdGVzdF9jb25maWd1cmF0
aW9ucyk6CisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9wYXRoX3RvX3Rlc3RfZXhwZWN0YXRp
b25zX2ZpbGUpOgorICAgICAgICAoVGVzdFdlYktpdFBvcnQuX3N5bWJvbHNfc3RyaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKFBvcnRUZXN0Q2FzZS50ZXN0X3NraXBwZWRfZGlyZWN0b3JpZXNfZm9y
X2ZlYXR1cmVzKTogRGVsZXRlZC4KKyAgICAgICAgKFBvcnRUZXN0Q2FzZS50ZXN0X3NraXBwZWRf
ZGlyZWN0b3JpZXNfZm9yX2ZlYXR1cmVzX25vX21hdGNoaW5nX3Rlc3RzX2luX3Rlc3RfbGlzdCk6
IERlbGV0ZWQuCisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9za2lwcGVkX3Rlc3RzX2Zvcl91
bnN1cHBvcnRlZF9mZWF0dXJlc19lbXB0eV90ZXN0X2xpc3QpOiBEZWxldGVkLgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvcG9ydC93YXRjaF9zaW11bGF0b3IucHk6CisgICAgICAgIChXYXRj
aFNpbXVsYXRvclBvcnQucmVzZXRfcHJlZmVyZW5jZXMpOgorICAgICAgICAoV2F0Y2hTaW11bGF0
b3JQb3J0Lm5tX2NvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
cG9ydC93aW4ucHk6CisgICAgICAgIChXaW5Qb3J0LnNob3dfcmVzdWx0c19odG1sX2ZpbGUpOgor
ICAgICAgICAoV2luUG9ydC5fcnVudGltZV9mZWF0dXJlX2xpc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC93aW5fdW5pdHRlc3QucHk6CisgICAgICAgIChXaW5Q
b3J0VGVzdC50ZXN0X29wZXJhdGluZ19zeXN0ZW0pOgorICAgICAgICAoV2luUG9ydFRlc3QudGVz
dF9ydW50aW1lX2ZlYXR1cmVfbGlzdCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9PcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6T3B0aW9uc0hhbmRsZXI6Ok9wdGlvbnNI
YW5kbGVyKToKKyAgICAgICAgKFdUUjo6aGFuZGxlT3B0aW9uUHJpbnRTdXBwb3J0ZWRGZWF0dXJl
cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKwogMjAxOS0wNS0yMyAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjI0NTY2NS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1w
UmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUu
Y3BwCmluZGV4IDA3NGRiNDFjYWE1MTRkZDk4MmJjM2IxYmEyNTU4OTY2MjQ1NmM2NGYuLjZkMjEz
ODU5YmVjZmE0MzMyZmQ2MTY0NGE0ZGEwMzMyZmJkMzc0ODggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTA0LDcgKzEwNCw2IEBAIHN0YXRpYyBi
b29sIHVzZUFjY2VsZXJhdGVkRHJhd2luZyA9IHRydWU7IC8vIE5vdCB1c2VkCiBzdGF0aWMgYm9v
bCBnY0JldHdlZW5UZXN0cyA9IHRydWU7IAogc3RhdGljIGJvb2wgcHJpbnRTZXBhcmF0b3JzID0g
ZmFsc2U7CiBzdGF0aWMgYm9vbCBsZWFrQ2hlY2tpbmcgPSBmYWxzZTsKLXN0YXRpYyBib29sIHBy
aW50U3VwcG9ydGVkRmVhdHVyZXMgPSBmYWxzZTsKIHN0YXRpYyBib29sIHNob3dXZWJWaWV3ID0g
ZmFsc2U7CiBzdGF0aWMgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBwZXJzaXN0ZW50VXNlclN0eWxl
U2hlZXRMb2NhdGlvbjsKIApAQCAtMTQ2NSwxMSArMTQ2NCw2IEBAIHN0YXRpYyBWZWN0b3I8Y29u
c3QgY2hhcio+IGluaXRpYWxpemVHbG9iYWxzRnJvbUNvbW1hbmRMaW5lT3B0aW9ucyhpbnQgYXJn
YywgY29uCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICgh
c3RyaWNtcChhcmd2W2ldLCAiLS1wcmludC1zdXBwb3J0ZWQtZmVhdHVyZXMiKSkgewotICAgICAg
ICAgICAgcHJpbnRTdXBwb3J0ZWRGZWF0dXJlcyA9IHRydWU7Ci0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgfQotCiAgICAgICAgIGlmICghc3RyaWNtcChhcmd2W2ldLCAiLS1zaG93LXdl
YnZpZXciKSkgewogICAgICAgICAgICAgc2hvd1dlYlZpZXcgPSB0cnVlOwogICAgICAgICAgICAg
Y29udGludWU7CkBAIC0xNTgwLDIzICsxNTc0LDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0
IGNoYXIqIGFyZ3ZbXSkKIAogICAgIHByZXBhcmVDb25zaXN0ZW50VGVzdGluZ0Vudmlyb25tZW50
KHN0YW5kYXJkUHJlZmVyZW5jZXMuZ2V0KCksIHN0YW5kYXJkUHJlZmVyZW5jZXNQcml2YXRlLmdl
dCgpKTsKIAotICAgIGlmIChwcmludFN1cHBvcnRlZEZlYXR1cmVzKSB7Ci0gICAgICAgIEJPT0wg
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSA9IEZBTFNFOwotICAgICAgICBzdGFuZGFy
ZFByZWZlcmVuY2VzLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgmYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0F2YWlsYWJsZSk7Ci0KLSNpZiBFTkFCTEUoM0RfVFJBTlNGT1JNUykKLSAgICAg
ICAgLy8gSW4gdGhlb3J5LCB3ZSBjb3VsZCBoYXZlIGEgc29mdHdhcmUtYmFzZWQgM0QgcmVuZGVy
aW5nIGltcGxlbWVudGF0aW9uIHRoYXQgd2UgdXNlIHdoZW4KLSAgICAgICAgLy8gaGFyZHdhcmUt
YWNjZWxlcmF0aW9uIGlzIG5vdCBhdmFpbGFibGUuIEJ1dCB3ZSBkb24ndCBoYXZlIGFueSBzdWNo
IHNvZnR3YXJlCi0gICAgICAgIC8vIGltcGxlbWVudGF0aW9uLCBzbyAzRCByZW5kZXJpbmcgaXMg
b25seSBhdmFpbGFibGUgd2hlbiBoYXJkd2FyZS1hY2NlbGVyYXRpb24gaXMuCi0gICAgICAgIEJP
T0wgdGhyZWVEVHJhbnNmb3Jtc0F2YWlsYWJsZSA9IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFp
bGFibGU7Ci0jZWxzZQotICAgICAgICBCT09MIHRocmVlRFRyYW5zZm9ybXNBdmFpbGFibGUgPSBG
QUxTRTsKLSNlbmRpZgotCi0gICAgICAgIGZwcmludGYodGVzdFJlc3VsdCwgIlN1cHBvcnRlZEZl
YXR1cmVzOiVzICVzXG4iLCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxlID8gIkFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmciIDogIiIsIHRocmVlRFRyYW5zZm9ybXNBdmFpbGFibGUgPyAiM0RU
cmFuc2Zvcm1zIiA6ICIiKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCiAgICAgQ09NUHRy
PElXZWJWaWV3PiB3ZWJWaWV3KEFkb3B0Q09NLCBjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2lu
ZG93KCZ3ZWJWaWV3V2luZG93KSk7CiAgICAgaWYgKCF3ZWJWaWV3KQogICAgICAgICByZXR1cm4g
LTQ7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CmluZGV4IGQwNjc5OWM2YWUwZTI2MGQ5
MTkyZjRiODY4NTZiOGFkM2FhNmY5OTEuLjM2MjY3Y2FiM2I3MGEyNmRlMjIyMzk4MTRjMTZjY2Y1
OWUyZTU2Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC0zMSwxMSArMzEs
OSBAQAogdGVzdCBpbmZyYXN0cnVjdHVyZSAodGhlIFBvcnQgYW5kIERyaXZlciBjbGFzc2VzKS4i
IiIKIAogaW1wb3J0IGRpZmZsaWIKLWltcG9ydCBpdGVydG9vbHMKIGltcG9ydCBqc29uCiBpbXBv
cnQgbG9nZ2luZwogaW1wb3J0IG9zCi1pbXBvcnQgb3BlcmF0b3IKIGltcG9ydCBvcHRwYXJzZQog
aW1wb3J0IHJlCiBpbXBvcnQgc3lzCkBAIC0xNTU3LDY0ICsxNTU1LDcgQEAgY2xhc3MgUG9ydChv
YmplY3QpOgogICAgICAgICAgICAgICAgIGRpcnNfdG9fc2tpcC5hcHBlbmQoJ3BsYXRmb3JtLyVz
JyAlIGJhc2VuYW1lKQogICAgICAgICByZXR1cm4gZGlyc190b19za2lwCiAKLSAgICBkZWYgX3J1
bnRpbWVfZmVhdHVyZV9saXN0KHNlbGYpOgotICAgICAgICAiIiJJZiBhIHBvcnQgbWFrZXMgY2Vy
dGFpbiBmZWF0dXJlcyBhdmFpbGFibGUgb25seSB0aHJvdWdoIHJ1bnRpbWUgZmxhZ3MsIGl0IGNh
biBvdmVycmlkZSB0aGlzIHJvdXRpbmUgdG8gaW5kaWNhdGUgd2hpY2ggb25lcyBhcmUgYXZhaWxh
YmxlLiIiIgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIG5tX2NvbW1hbmQoc2VsZik6
Ci0gICAgICAgIHJldHVybiAnbm0nCi0KLSAgICBkZWYgX21vZHVsZXNfdG9fc2VhcmNoX2Zvcl9z
eW1ib2xzKHNlbGYpOgotICAgICAgICBwYXRoID0gc2VsZi5fcGF0aF90b193ZWJjb3JlX2xpYnJh
cnkoKQotICAgICAgICBpZiBwYXRoOgotICAgICAgICAgICAgcmV0dXJuIFtwYXRoXQotICAgICAg
ICByZXR1cm4gW10KLQotICAgIGRlZiBfc3ltYm9sc19zdHJpbmcoc2VsZik6Ci0gICAgICAgIHN5
bWJvbHMgPSAnJwotICAgICAgICBmb3IgcGF0aF90b19tb2R1bGUgaW4gc2VsZi5fbW9kdWxlc190
b19zZWFyY2hfZm9yX3N5bWJvbHMoKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICBzeW1ib2xzICs9IHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChbc2VsZi5ubV9jb21tYW5k
KCksIHBhdGhfdG9fbW9kdWxlXSwgaWdub3JlX2Vycm9ycz1UcnVlKQotICAgICAgICAgICAgZXhj
ZXB0IE9TRXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBfbG9nLndhcm4oIkZhaWxlZCB0byBy
dW4gbm06ICVzLiAgQ2FuJ3QgZGV0ZXJtaW5lIHN1cHBvcnRlZCBmZWF0dXJlcyBjb3JyZWN0bHku
IiAlIGUpCi0gICAgICAgIHJldHVybiBzeW1ib2xzCi0KLSAgICAjIFBvcnRzIHdoaWNoIHVzZSBy
dW4tdGltZSBmZWF0dXJlIGRldGVjdGlvbiBzaG91bGQgZGVmaW5lIHRoaXMgbWV0aG9kIGFuZCBy
ZXR1cm4KLSAgICAjIGEgZGljdGlvbmFyeSBtYXBwaW5nIGZyb20gRmVhdHVyZSBOYW1lcyB0byBz
a2lwcGVkIGRpcmVjdG9pcmVzLiAgTlJXVCB3aWxsCi0gICAgIyBydW4gRHVtcFJlbmRlclRyZWUg
LS1wcmludC1zdXBwb3J0ZWQtZmVhdHVyZXMgYW5kIHBhcnNlIHRoZSBvdXRwdXQuCi0gICAgIyBJ
ZiB0aGUgRmVhdHVyZSBOYW1lcyBhcmUgbm90IGZvdW5kIGluIHRoZSBvdXRwdXQsIHRoZSBjb3Jy
ZXNwb25kaW5nIGRpcmVjdG9yaWVzCi0gICAgIyB3aWxsIGJlIHNraXBwZWQuCi0gICAgZGVmIF9t
aXNzaW5nX2ZlYXR1cmVfdG9fc2tpcHBlZF90ZXN0cyhzZWxmKToKLSAgICAgICAgIiIiUmV0dXJu
IHRoZSBzdXBwb3J0ZWQgZmVhdHVyZSBkaWN0aW9uYXJ5LiBLZXlzIGFyZSBmZWF0dXJlIG5hbWVz
IGFuZCB2YWx1ZXMKLSAgICAgICAgYXJlIHRoZSBsaXN0cyBvZiBkaXJlY3RvcmllcyB0byBza2lw
IGlmIHRoZSBmZWF0dXJlIG5hbWUgaXMgbm90IG1hdGNoZWQuIiIiCi0gICAgICAgICMgRklYTUU6
IFRoaXMgbGlzdCBtYXRjaGVzIFdlYktpdFdpbiBhbmQgc2hvdWxkIGJlIG1vdmVkIG9udG8gdGhl
IFdpbiBwb3J0LgotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgIkFjY2VsZXJhdGVkIENv
bXBvc2l0aW5nIjogWyJjb21wb3NpdGluZyJdLAotICAgICAgICAgICAgIjNEIFJlbmRlcmluZyI6
IFsiYW5pbWF0aW9ucy8zZCIsICJ0cmFuc2Zvcm1zLzNkIl0sCi0gICAgICAgIH0KLQotICAgIGRl
ZiBfaGFzX3Rlc3RfaW5fZGlyZWN0b3JpZXMoc2VsZiwgZGlyZWN0b3J5X2xpc3RzLCB0ZXN0X2xp
c3QpOgotICAgICAgICBpZiBub3QgdGVzdF9saXN0OgotICAgICAgICAgICAgcmV0dXJuIEZhbHNl
Ci0KLSAgICAgICAgZGlyZWN0b3JpZXMgPSBpdGVydG9vbHMuY2hhaW4uZnJvbV9pdGVyYWJsZShk
aXJlY3RvcnlfbGlzdHMpCi0gICAgICAgIGZvciBkaXJlY3RvcnksIHRlc3QgaW4gaXRlcnRvb2xz
LnByb2R1Y3QoZGlyZWN0b3JpZXMsIHRlc3RfbGlzdCk6Ci0gICAgICAgICAgICBpZiB0ZXN0LnN0
YXJ0c3dpdGgoZGlyZWN0b3J5KToKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAg
ICByZXR1cm4gRmFsc2UKLQogICAgIGRlZiBfc2tpcHBlZF90ZXN0c19mb3JfdW5zdXBwb3J0ZWRf
ZmVhdHVyZXMoc2VsZiwgdGVzdF9saXN0KToKLSAgICAgICAgIyBPbmx5IGNoZWNrIHRoZSBydW50
aW1lIGZlYXR1cmUgbGlzdCBvZiB0aGVyZSBhcmUgdGVzdHMgaW4gdGhlIHRlc3RfbGlzdCB0aGF0
IG1pZ2h0IGdldCBza2lwcGVkLgotICAgICAgICAjIFRoaXMgaXMgYSBwZXJmb3JtYW5jZSBvcHRp
bWl6YXRpb24gdG8gYXZvaWQgdGhlIHN1YnByb2Nlc3MgY2FsbCB0byBEUlQuCi0gICAgICAgICMg
SWYgdGhlIHBvcnQgc3VwcG9ydHMgcnVudGltZSBmZWF0dXJlIGRldGVjdGlvbiwgZGlzYWJsZSBh
bnkgdGVzdHMKLSAgICAgICAgIyBmb3IgZmVhdHVyZXMgbWlzc2luZyBmcm9tIHRoZSBydW50aW1l
IGZlYXR1cmUgbGlzdC4KLSAgICAgICAgIyBJZiBfcnVudGltZV9mZWF0dXJlX2xpc3QgcmV0dXJu
cyBhIG5vbi1Ob25lIHZhbHVlLCB0aGVuIHByZWZlcgotICAgICAgICAjIHJ1bnRpbWUgZmVhdHVy
ZSBkZXRlY3Rpb24gb3ZlciBzdGF0aWMgZmVhdHVyZSBkZXRlY3Rpb24uCi0gICAgICAgIGlmIHNl
bGYuX2hhc190ZXN0X2luX2RpcmVjdG9yaWVzKHNlbGYuX21pc3NpbmdfZmVhdHVyZV90b19za2lw
cGVkX3Rlc3RzKCkudmFsdWVzKCksIHRlc3RfbGlzdCk6Ci0gICAgICAgICAgICBzdXBwb3J0ZWRf
ZmVhdHVyZV9saXN0ID0gc2VsZi5fcnVudGltZV9mZWF0dXJlX2xpc3QoKQotICAgICAgICAgICAg
aWYgc3VwcG9ydGVkX2ZlYXR1cmVfbGlzdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVkdWNlKG9wZXJhdG9yLmFkZCwgW2RpcmVjdG9yaWVzIGZvciBmZWF0dXJlLCBkaXJl
Y3RvcmllcyBpbiBzZWxmLl9taXNzaW5nX2ZlYXR1cmVfdG9fc2tpcHBlZF90ZXN0cygpLml0ZW1z
KCkgaWYgZmVhdHVyZSBub3QgaW4gc3VwcG9ydGVkX2ZlYXR1cmVfbGlzdF0pCi0KICAgICAgICAg
cmV0dXJuIFtdCiAKICAgICBkZWYgX3drMl9wb3J0X25hbWUoc2VsZik6CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGFyd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2Rhcndpbi5weQppbmRleCAzM2E0YmM5N2I4ZjA1YjMxZjlmZWYzOThiNjFjMzkx
MzUwNzEzMjIwLi4zYjdjODhlNDA2YzBmNTRmYzhlZmY2MjkxMzZiNDY1MDQ3ZGQwYzc5IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZGFyd2luLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHkKQEAgLTIzMyw5ICsyMzMsNiBAQCBjbGFz
cyBEYXJ3aW5Qb3J0KEFwcGxlUG9ydCk6CiAgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKICAg
ICAgICAgcmV0dXJuIHNlbGYueGNydW5fZmluZCgnbWFrZScsICcvdXNyL2Jpbi9tYWtlJykKIAot
ICAgIGRlZiBubV9jb21tYW5kKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi54Y3J1bl9maW5k
KCdubScsICdubScpCi0KICAgICBkZWYgeGNydW5fZmluZChzZWxmLCBjb21tYW5kLCBmYWxsYmFj
az1Ob25lKToKICAgICAgICAgZmFsbGJhY2sgPSBmYWxsYmFjayBvciBjb21tYW5kCiAgICAgICAg
IHRyeToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3Nfc2ltdWxh
dG9yLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2lvc19zaW11bGF0b3IucHkKaW5k
ZXggMDRmOTljNzk0NjFlMjhhMjk2MjQxN2M5ZTM1MTMwN2M5MjcxNmI0Yi4uMzEyNzVmZGJmYWEy
MzNkMmRkNzhkMjg4YjMyYzAwOTk1NDhmMWI3NCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2lvc19zaW11bGF0b3IucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L2lvc19zaW11bGF0b3IucHkKQEAgLTk2LDkgKzk2LDYgQEAgY2xhc3MgSU9TU2ltdWxh
dG9yUG9ydChJT1NQb3J0KToKICAgICAgICAgX2xvZy5kZWJ1ZygicmVzZXRfcHJlZmVyZW5jZXMi
KQogICAgICAgICBTaW11bGF0ZWREZXZpY2VNYW5hZ2VyLnRlYXJfZG93bihzZWxmLmhvc3QpCiAK
LSAgICBkZWYgbm1fY29tbWFuZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYueGNydW5fZmlu
ZCgnbm0nKQotCiAgICAgQHByb3BlcnR5CiAgICAgQG1lbW9pemVkCiAgICAgZGVmIGRldmVsb3Bl
cl9kaXIoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9y
dF90ZXN0Y2FzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNl
LnB5CmluZGV4IDlkODZjOWMzNzBlMDRjYjc3Y2NjYjcxNGFlMzhkNGZiZTI5NjdjM2YuLjhjNTEz
ZDdmMWUxY2UzYWQwODg5N2YyN2FhOGU1ZjdlY2JhYmY5MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CkBAIC01NiwyMCArNTYsMTYgQEAgZnJvbSB3
ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrT3B0aW9ucwogY2xhc3MgVGVzdFdlYktp
dFBvcnQoUG9ydCk6CiAgICAgcG9ydF9uYW1lID0gInRlc3R3ZWJraXRwb3J0IgogCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIHBvcnRfbmFtZT1Ob25lLCBzeW1ib2xzX3N0cmluZz1Ob25lLAorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwKICAgICAgICAgICAgICAgICAgZXhw
ZWN0YXRpb25zX2ZpbGU9Tm9uZSwgc2tpcHNfZmlsZT1Ob25lLCBob3N0PU5vbmUsIGNvbmZpZz1O
b25lLAogICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CiAgICAgICAgIHBvcnRfbmFtZSA9IHBv
cnRfbmFtZSBvciBUZXN0V2ViS2l0UG9ydC5wb3J0X25hbWUKLSAgICAgICAgc2VsZi5zeW1ib2xz
X3N0cmluZyA9IHN5bWJvbHNfc3RyaW5nICAjIFBhc3NpbmcgIiIgZGlzYWJsZXMgYWxsIHN0YXRp
Y2x5LWRldGVjdGFibGUgZmVhdHVyZXMuCiAgICAgICAgIGhvc3QgPSBob3N0IG9yIE1vY2tTeXN0
ZW1Ib3N0KCkKICAgICAgICAgc3VwZXIoVGVzdFdlYktpdFBvcnQsIHNlbGYpLl9faW5pdF9fKGhv
c3QsIHBvcnRfbmFtZT1wb3J0X25hbWUsICoqa3dhcmdzKQogCiAgICAgZGVmIGFsbF90ZXN0X2Nv
bmZpZ3VyYXRpb25zKHNlbGYpOgogICAgICAgICByZXR1cm4gW3NlbGYudGVzdF9jb25maWd1cmF0
aW9uKCldCiAKLSAgICBkZWYgX3N5bWJvbHNfc3RyaW5nKHNlbGYpOgotICAgICAgICByZXR1cm4g
c2VsZi5zeW1ib2xzX3N0cmluZwotCiAgICAgZGVmIF90ZXN0c19mb3Jfb3RoZXJfcGxhdGZvcm1z
KHNlbGYsICoqa3dhcmdzKToKICAgICAgICAgcmV0dXJuIFsibWVkaWEiLCBdCiAKQEAgLTUwMCwy
NiArNDk2LDYgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgcG9ydC5fb3B0aW9ucyA9IE1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1bm5lcj1GYWxzZSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LnBhdGhfdG9fdGVzdF9leHBlY3RhdGlvbnNf
ZmlsZSgpLCAnL21vY2stY2hlY2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vdGVzdHdlYmtpdHBv
cnQvVGVzdEV4cGVjdGF0aW9ucycpCiAKLSAgICBkZWYgdGVzdF9za2lwcGVkX2RpcmVjdG9yaWVz
X2Zvcl9mZWF0dXJlcyhzZWxmKToKLSAgICAgICAgc3VwcG9ydGVkX2ZlYXR1cmVzID0gWyJBY2Nl
bGVyYXRlZCBDb21wb3NpdGluZyIsICJGb28gRmVhdHVyZSJdCi0gICAgICAgIGV4cGVjdGVkX2Rp
cmVjdG9yaWVzID0gc2V0KFsiYW5pbWF0aW9ucy8zZCIsICJ0cmFuc2Zvcm1zLzNkIl0pCi0gICAg
ICAgIHBvcnQgPSBUZXN0V2ViS2l0UG9ydChzdXBwb3J0ZWRfZmVhdHVyZXM9c3VwcG9ydGVkX2Zl
YXR1cmVzKQotICAgICAgICBwb3J0Ll9ydW50aW1lX2ZlYXR1cmVfbGlzdCA9IGxhbWJkYTogc3Vw
cG9ydGVkX2ZlYXR1cmVzCi0gICAgICAgIHJlc3VsdF9kaXJlY3RvcmllcyA9IHNldChwb3J0Ll9z
a2lwcGVkX3Rlc3RzX2Zvcl91bnN1cHBvcnRlZF9mZWF0dXJlcyh0ZXN0X2xpc3Q9WyJhbmltYXRp
b25zLzNkL2Zvby5odG1sIl0pKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdF9kaXJl
Y3RvcmllcywgZXhwZWN0ZWRfZGlyZWN0b3JpZXMpCi0KLSAgICBkZWYgdGVzdF9za2lwcGVkX2Rp
cmVjdG9yaWVzX2Zvcl9mZWF0dXJlc19ub19tYXRjaGluZ190ZXN0c19pbl90ZXN0X2xpc3Qoc2Vs
Zik6Ci0gICAgICAgIHN1cHBvcnRlZF9mZWF0dXJlcyA9IFsiQWNjZWxlcmF0ZWQgQ29tcG9zaXRp
bmciLCAiRm9vIEZlYXR1cmUiXQotICAgICAgICBleHBlY3RlZF9kaXJlY3RvcmllcyA9IHNldChb
XSkKLSAgICAgICAgcmVzdWx0X2RpcmVjdG9yaWVzID0gc2V0KFRlc3RXZWJLaXRQb3J0KHN1cHBv
cnRlZF9mZWF0dXJlcz1zdXBwb3J0ZWRfZmVhdHVyZXMpLl9za2lwcGVkX3Rlc3RzX2Zvcl91bnN1
cHBvcnRlZF9mZWF0dXJlcyh0ZXN0X2xpc3Q9Wydmb28uaHRtbCddKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChyZXN1bHRfZGlyZWN0b3JpZXMsIGV4cGVjdGVkX2RpcmVjdG9yaWVzKQotCi0g
ICAgZGVmIHRlc3Rfc2tpcHBlZF90ZXN0c19mb3JfdW5zdXBwb3J0ZWRfZmVhdHVyZXNfZW1wdHlf
dGVzdF9saXN0KHNlbGYpOgotICAgICAgICBzdXBwb3J0ZWRfZmVhdHVyZXMgPSBbIkFjY2VsZXJh
dGVkIENvbXBvc2l0aW5nIiwgIkZvbyBGZWF0dXJlIl0KLSAgICAgICAgZXhwZWN0ZWRfZGlyZWN0
b3JpZXMgPSBzZXQoW10pCi0gICAgICAgIHJlc3VsdF9kaXJlY3RvcmllcyA9IHNldChUZXN0V2Vi
S2l0UG9ydChzdXBwb3J0ZWRfZmVhdHVyZXM9c3VwcG9ydGVkX2ZlYXR1cmVzKS5fc2tpcHBlZF90
ZXN0c19mb3JfdW5zdXBwb3J0ZWRfZmVhdHVyZXModGVzdF9saXN0PU5vbmUpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlc3VsdF9kaXJlY3RvcmllcywgZXhwZWN0ZWRfZGlyZWN0b3JpZXMp
Ci0KICAgICBkZWYgdGVzdF9za2lwcGVkX2xheW91dF90ZXN0cyhzZWxmKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChUZXN0V2ViS2l0UG9ydCgpLnNraXBwZWRfbGF5b3V0X3Rlc3RzKHRlc3Rf
bGlzdD1bXSksIHNldChbJ21lZGlhJ10pKQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvd2F0Y2hfc2ltdWxhdG9yLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L3dhdGNoX3NpbXVsYXRvci5weQppbmRleCAzZGViZWUyZTk5YWIzZjIzM2VlMjRjYzJiNTk3
NWRhYTJkNTY3OTI1Li45MzJkYzNlMGU4M2Q1YjA1ZWJlYjVhMDQ3MDA1NGJmMjRjYjRhODU5IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F0Y2hfc2ltdWxhdG9yLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93YXRjaF9zaW11bGF0b3IucHkKQEAg
LTg3LDkgKzg3LDYgQEAgY2xhc3MgV2F0Y2hTaW11bGF0b3JQb3J0KFdhdGNoUG9ydCk6CiAgICAg
ZGVmIHJlc2V0X3ByZWZlcmVuY2VzKHNlbGYpOgogICAgICAgICBTaW11bGF0ZWREZXZpY2VNYW5h
Z2VyLnRlYXJfZG93bihzZWxmLmhvc3QpCiAKLSAgICBkZWYgbm1fY29tbWFuZChzZWxmKToKLSAg
ICAgICAgcmV0dXJuIHNlbGYueGNydW5fZmluZCgnbm0nKQotCiAgICAgQHByb3BlcnR5CiAgICAg
QG1lbW9pemVkCiAgICAgZGVmIGRldmVsb3Blcl9kaXIoc2VsZik6CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L3dpbi5weQppbmRleCA2NmFkMTNkYjNjYTY4YzZiZTdlYjkwZWExZTRkODc0Y2VkNzhiMDA5
Li40YjliNjA2M2MyOTViZTY0MzEwOThiMDhkYjhhMTAyMThhY2VhMDBjIDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC93aW4ucHkKQEAgLTE1NCwyMCArMTU0LDYgQEAgY2xhc3MgV2luUG9ydChBcHBs
ZVBvcnQpOgogICAgIGRlZiBzaG93X3Jlc3VsdHNfaHRtbF9maWxlKHNlbGYsIHJlc3VsdHNfZmls
ZW5hbWUpOgogICAgICAgICBzZWxmLl9ydW5fc2NyaXB0KCdydW4tc2FmYXJpJywgW2Fic3BhdGhf
dG9fdXJpKFN5c3RlbUhvc3QoKS5wbGF0Zm9ybSwgcmVzdWx0c19maWxlbmFtZSldKQogCi0gICAg
ZGVmIF9ydW50aW1lX2ZlYXR1cmVfbGlzdChzZWxmKToKLSAgICAgICAgc3VwcG9ydGVkX2ZlYXR1
cmVzX2NvbW1hbmQgPSBbc2VsZi5fcGF0aF90b19kcml2ZXIoKSwgJy0tcHJpbnQtc3VwcG9ydGVk
LWZlYXR1cmVzJ10KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5fZXhl
Y3V0aXZlLnJ1bl9jb21tYW5kKHN1cHBvcnRlZF9mZWF0dXJlc19jb21tYW5kLCBpZ25vcmVfZXJy
b3JzPVRydWUpCi0gICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICBfbG9n
Lndhcm4oIkV4Y2VwdGlvbiBydW5uaW5nIGRyaXZlcjogJXMsICVzLiAgRHJpdmVyIG11c3QgYmUg
YnVpbHQgYmVmb3JlIGNhbGxpbmcgV2ViS2l0UG9ydC50ZXN0X2V4cGVjdGF0aW9ucygpLiIgJSAo
c3VwcG9ydGVkX2ZlYXR1cmVzX2NvbW1hbmQsIGUpKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUK
LQotICAgICAgICAjIE5vdGU6IHdpbi9EdW1wUmVuZGVyVHJlZS5jcHAgZG9lcyBub3QgcHJpbnQg
YSBsZWFkaW5nIHNwYWNlIGJlZm9yZSB0aGUgZmVhdHVyZXNfc3RyaW5nLgotICAgICAgICBtYXRj
aF9vYmplY3QgPSByZS5tYXRjaCgiU3VwcG9ydGVkRmVhdHVyZXM6XHMqKD9QPGZlYXR1cmVzX3N0
cmluZz4uKilccyoiLCBvdXRwdXQpCi0gICAgICAgIGlmIG5vdCBtYXRjaF9vYmplY3Q6Ci0gICAg
ICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gbWF0Y2hfb2JqZWN0Lmdyb3VwKCdm
ZWF0dXJlc19zdHJpbmcnKS5zcGxpdCgnICcpCi0KICAgICBkZWYgX2J1aWxkX3BhdGgoc2VsZiwg
KmNvbXBzKToKICAgICAgICAgIiIiUmV0dXJucyB0aGUgZnVsbCBwYXRoIHRvIHRoZSB0ZXN0IGRy
aXZlciAoRHVtcFJlbmRlclRyZWUpLiIiIgogICAgICAgICByb290X2RpcmVjdG9yeSA9IHNlbGYu
Z2V0X29wdGlvbignX2NhY2hlZF9yb290Jykgb3Igc2VsZi5nZXRfb3B0aW9uKCdyb290JykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93aW5fdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luX3VuaXR0ZXN0LnB5CmluZGV4IDZiMzI3YTk4
NmVjNzE0YjRiMmQ4ZjNlMGI1MTI1YzBhNTQ3ZjdlMjAuLjBjNjIxMTQyMWE5NDI1M2VkNjkxNGU2
ODMyODVjYjUzZTk5ZDBkOTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC93aW5fdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dpbl91
bml0dGVzdC5weQpAQCAtOTMsMTQgKzkzLDYgQEAgY2xhc3MgV2luUG9ydFRlc3QocG9ydF90ZXN0
Y2FzZS5Qb3J0VGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X29wZXJhdGluZ19zeXN0ZW0oc2VsZik6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3dpbicsIHNlbGYubWFrZV9wb3J0KCkub3BlcmF0
aW5nX3N5c3RlbSgpKQogCi0gICAgZGVmIHRlc3RfcnVudGltZV9mZWF0dXJlX2xpc3Qoc2VsZik6
Ci0gICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCi0gICAgICAgIHBvcnQuX2V4ZWN1dGl2
ZS5ydW5fY29tbWFuZCA9IGxhbWJkYSBjb21tYW5kLCBjd2Q9Tm9uZSwgaWdub3JlX2Vycm9ycz1G
YWxzZTogIk5vbnNlbnNlIgotICAgICAgICAjIHJ1bnRpbWVfZmVhdHVyZXNfbGlzdCByZXR1cm5z
IE5vbmUgd2hlbiBpdHMgcmVzdWx0cyBhcmUgbWVhbmluZ2xlc3MgKGl0IGNvdWxkbid0IHJ1biBE
UlQgb3IgcGFyc2UgdGhlIG91dHB1dCwgZXRjLikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
b3J0Ll9ydW50aW1lX2ZlYXR1cmVfbGlzdCgpLCBOb25lKQotICAgICAgICBwb3J0Ll9leGVjdXRp
dmUucnVuX2NvbW1hbmQgPSBsYW1iZGEgY29tbWFuZCwgY3dkPU5vbmUsIGlnbm9yZV9lcnJvcnM9
RmFsc2U6ICJTdXBwb3J0ZWRGZWF0dXJlczpmb28gYmFyIgotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBvcnQuX3J1bnRpbWVfZmVhdHVyZV9saXN0KCksIFsnZm9vJywgJ2JhciddKQotCiAgICAg
ZGVmIHRlc3RfZXhwZWN0YXRpb25zX2ZpbGVzKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGxlbihzZWxmLm1ha2VfcG9ydCgpLmV4cGVjdGF0aW9uc19maWxlcygpKSwgMykKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1Nb2NrT3B0aW9u
cyh3ZWJraXRfdGVzdF9ydW5uZXI9VHJ1ZSwgY29uZmlndXJhdGlvbj0nUmVsZWFzZScpKS5leHBl
Y3RhdGlvbnNfZmlsZXMoKSksIDUpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L09wdGlvbnMuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAppbmRleCA5
ZGQzN2IwMjhiNGE1YjRhYjRkYzMzNzM0OTY3YmUwN2E3M2JhODY3Li5iYzYzZWQyZGU0ZmVjOTlk
MDQxYjY3YThiMmY5ODc0ZjdhMWEzNzg5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL09wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAK
QEAgLTU3LDEyICs1Nyw2IEBAIHN0YXRpYyBib29sIGhhbmRsZU9wdGlvblBpeGVsVGVzdHMoT3B0
aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqKQogICAgIHJldHVybiB0cnVl
OwogfQogCi1zdGF0aWMgYm9vbCBoYW5kbGVPcHRpb25QcmludFN1cHBvcnRlZEZlYXR1cmVzKE9w
dGlvbnMmIG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikKLXsKLSAgICBvcHRpb25z
LnByaW50U3VwcG9ydGVkRmVhdHVyZXMgPSB0cnVlOwotICAgIHJldHVybiB0cnVlOwotfQotCiBz
dGF0aWMgYm9vbCBoYW5kbGVPcHRpb25Db21wbGV4VGV4dChPcHRpb25zJiBvcHRpb25zLCBjb25z
dCBjaGFyKiwgY29uc3QgY2hhciopCiB7CiAgICAgb3B0aW9ucy5mb3JjZUNvbXBsZXhUZXh0ID0g
dHJ1ZTsKQEAgLTEyNyw3ICsxMjEsNiBAQCBPcHRpb25zSGFuZGxlcjo6T3B0aW9uc0hhbmRsZXIo
T3B0aW9ucyYgbykKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tZ2MtYmV0d2Vlbi10
ZXN0cyIsICJHYXJiYWdlIGNvbGxlY3Rpb24gYmV0d2VlbiB0ZXN0cy4iLCBoYW5kbGVPcHRpb25H
Y0JldHdlZW5UZXN0cykpOwogICAgIG9wdGlvbkxpc3QuYXBwZW5kKE9wdGlvbigiLS1waXhlbC10
ZXN0cyIsICJDaGVjayBwaXhlbHMuIiwgaGFuZGxlT3B0aW9uUGl4ZWxUZXN0cykpOwogICAgIG9w
dGlvbkxpc3QuYXBwZW5kKE9wdGlvbigiLXAiLCAiQ2hlY2sgcGl4ZWxzLiIsIGhhbmRsZU9wdGlv
blBpeGVsVGVzdHMpKTsKLSAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tcHJpbnQtc3Vw
cG9ydGVkLWZlYXR1cmVzIiwgIkZvciBEdW1wUmVuZGVyVHJlZSBjb21wYXRpYmlsaXR5LiIsIGhh
bmRsZU9wdGlvblByaW50U3VwcG9ydGVkRmVhdHVyZXMpKTsKICAgICBvcHRpb25MaXN0LmFwcGVu
ZChPcHRpb24oIi0tY29tcGxleC10ZXh0IiwgIkZvcmNlIGNvbXBsZXggdGVzdHMuIiwgaGFuZGxl
T3B0aW9uQ29tcGxleFRleHQpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tYWNj
ZWxlcmF0ZWQtZHJhd2luZyIsICJVc2UgYWNjZWxlcmF0ZWQgZHJhd2luZy4iLCBoYW5kbGVPcHRp
b25BY2NlbGVyYXRlZERyYXdpbmcpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0t
cmVtb3RlLWxheWVyLXRyZWUiLCAiVXNlIHJlbW90ZSBsYXllciB0cmVlLiIsIGhhbmRsZU9wdGlv
blJlbW90ZUxheWVyVHJlZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9P
cHRpb25zLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuaAppbmRleCBhODk5MjZk
YmMwNTdmYTYzMGU1NGE0ODg3ZWU5YjE3ZmNkMjJkZDU3Li40NmVjYjM5OTU5MDZhNTNjNmI0ZDM3
Y2ZjYzA4NzEzNmI4ZjM4ZmE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09w
dGlvbnMuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuaApAQCAtNDIsNyAr
NDIsNiBAQCBzdHJ1Y3QgT3B0aW9ucyB7CiAgICAgYm9vbCB2ZXJib3NlIHsgZmFsc2UgfTsKICAg
ICBib29sIGdjQmV0d2VlblRlc3RzIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZER1bXBQaXhl
bHNGb3JBbGxUZXN0cyB7IGZhbHNlIH07Ci0gICAgYm9vbCBwcmludFN1cHBvcnRlZEZlYXR1cmVz
IHsgZmFsc2UgfTsKICAgICBib29sIGZvcmNlQ29tcGxleFRleHQgeyBmYWxzZSB9OwogICAgIGJv
b2wgc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nIHsgZmFsc2UgfTsKICAgICBib29sIHNob3Vs
ZFVzZVJlbW90ZUxheWVyVHJlZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCmluZGV4IDJiYmFjYjEwYmIxMzk0M2VjY2Q1NWVmYzUxMjlmNTM5MDIy
NDYzNWIuLjI2YTAxYWNkNzk3NGJjMTg3NjEwN2I3OTBhN2IzYWRjODdhMzQ0MWQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC00NTksMTMgKzQ1OSw2IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFy
Z3ZbXSkKICAgICBtX2NoZWNrRm9yV29ybGRMZWFrcyA9IG9wdGlvbnMuY2hlY2tGb3JXb3JsZExl
YWtzOwogICAgIG1fYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzID0gb3B0
aW9ucy5hbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHM7CiAKLSAgICBpZiAo
b3B0aW9ucy5wcmludFN1cHBvcnRlZEZlYXR1cmVzKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBPbiBX
aW5kb3dzLCBEdW1wUmVuZGVyVHJlZSB1c2VzIHRoaXMgdG8gZXhwb3NlIHdoZXRoZXIgaXQgc3Vw
cG9ydHMgM2QKLSAgICAgICAgLy8gdHJhbnNmb3JtcyBhbmQgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcuIFdoZW4gd2Ugc3VwcG9ydCB0aG9zZSBmZWF0dXJlcywgd2UKLSAgICAgICAgLy8gc2hvdWxk
IG1hdGNoIERSVCdzIGJlaGF2aW9yLgotICAgICAgICBleGl0KDApOwotICAgIH0KLQogICAgIG1f
dXNpbmdTZXJ2ZXJNb2RlID0gKG1fcGF0aHMuc2l6ZSgpID09IDEgJiYgbV9wYXRoc1swXSA9PSAi
LSIpOwogICAgIGlmIChtX3VzaW5nU2VydmVyTW9kZSkKICAgICAgICAgbV9wcmludFNlcGFyYXRv
cnMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGQ2ZThjOGFmMDVhZDliNTIwNzllOWU5YjdlNmJhYzhhNWU3MDdk
MDguLjMwZmQ1NjFiNDJmN2FkNTUwYWE3NjQ4NDM1NGI1ZTBhNzBkNjdlYTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxOS0wNS0yMyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBz
b255LmNvbT4KKworICAgICAgICBydW4td2Via2l0LXRlc3RzOiBSZW1vdmUgZmVhdHVyZSBkZXRl
Y3Rpb24gc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk4MTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9uYXRoYW4gQmVkYXJkLgorCisg
ICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgQWRkZWQgU2tpcCBmb3IgYWxs
IGNvbXBvc2l0aW5nLCBhbmltYXRpb25zLzNkIGFuZCB0cmFuc2Zvcm1zLzNkIHRlc3RzIHRlbXBv
cmFyaWx5LgorCiAyMDE5LTA1LTIzICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFtXSExTTF0gUHJvcGVydHkgcmVzb2x2ZXIgbmVlZHMgdG8gcmVjdXJzZSB0byBo
YW5kbGUgdGhlIGJhc2Ugd2hlbiBzaW1wbGlmeWluZyBydmFsdWVzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDk2YzZkOGMyYTM2M2FiNDZlZWEyN2ViZjM2
NTVhNzE0NGI0NTZmNGYuLjc1NGE0YTM3NDYyN2RlZDVhYzMzZDczMjA2ODc0NDkzNzBlZTZhOWUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNjAxLDEx
ICsyNjAxLDEyIEBAIHdlYmtpdC5vcmcvYi8xNjI2NjggZmFzdC90ZXh0L3dvZmYyLXRvdGFsc2Zu
dHNpemUuaHRtbCBbIFNraXAgXQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTdGFydCBsaXN0
IG9mIFVOUkVWSUVXRUQgZmFpbHVyZXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIwogCitjb21wb3NpdGluZyBbIFNraXAgXQorYW5pbWF0aW9ucy8zZCBb
IFNraXAgXQordHJhbnNmb3Jtcy8zZCBbIFNraXAgXQorCiAjIFNraXAgdGVzdHMgdGhhdCBmYWls
IG9ubHkgaW4gRGVidWcgbW9kZSAKLVsgRGVidWcgXSBjb21wb3NpdGluZyBbIFNraXAgXQogWyBE
ZWJ1ZyBdIGxlZ2FjeS1hbmltYXRpb24tZW5naW5lL2NvbXBvc2l0aW5nIFsgU2tpcCBdCi1bIERl
YnVnIF0gdHJhbnNmb3Jtcy8zZC9oaXQtdGVzdGluZyBbIFNraXAgXQotWyBEZWJ1ZyBdIHRyYW5z
Zm9ybXMvM2QvcG9pbnQtbWFwcGluZyBbIFNraXAgXQogCiAjIFRoZXNlIGZhaWx1cmVzIGFsbCBz
ZWVtIHRvIGJlIHJlbGF0ZWQgdG8gdGhlIHBhZ2UgY2FjaGUgYmVpbmcgaW4gYSBiYWQgc3RhdGUu
CiBbIERlYnVnIF0gY3NzMi4xL3QwOTA0MDItYzQyLWlieC1wYWQtMDAtZC1hZy5odG1sIFsgU2tp
cCBdICMgRGVidWcgYXNzZXJ0aW9uCkBAIC0yNjkzLDcgKzI2OTQsNiBAQCB3ZWJraXQub3JnL2Iv
MTYyNjY4IGZhc3QvdGV4dC93b2ZmMi10b3RhbHNmbnRzaXplLmh0bWwgWyBTa2lwIF0KIFsgRGVi
dWcgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2xpc3RlbmVyL3hzcy13aW5kb3ctb25jbGljay1hZGRF
dmVudExpc3RlbmVyLmh0bWwgWyBTa2lwIF0gIyBDYXVzZXMgbGF0ZXIgdGVzdHMgdG8gZmFpbAog
WyBEZWJ1ZyBdIHBsYXRmb3JtL3dpbi9mYXN0L2V2ZW50cy9wYW5TY3JvbGwtbm8taWZyYW1lLWp1
bXAuaHRtbCBbIFNraXAgXSAjIENhdXNlcyBsYXRlciB0ZXN0cyB0byBmYWlsCiBbIERlYnVnIF0g
c3ZnL2N1c3RvbS9saXN0LWl0ZW1zLXdpdGgtc3ZnLWZvbnQtZmFtaWx5Lmh0bWwgWyBTa2lwIF0g
IyBDYXVzZXMgbGF0ZXIgdGVzdHMgdG8gZmFpbAotWyBEZWJ1ZyBdIHRyYW5zZm9ybXMvM2QvZ2Vu
ZXJhbC9wZXJzcGVjdGl2ZS1ub24tbGF5ZXIuaHRtbCBbIEZhaWx1cmUgXQogCiAjIFRoZXNlIGRv
bid0IHNlZW0gdG8gYmUgcnVubmluZy4KIHdlYmtpdC5vcmcvYi8xMTM5NDYgY29tcG9zaXRpbmcv
Y29udGVudHMtb3BhcXVlL2NvbnRyb2wtbGF5ZXIuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGJmZGYxMmM2
MjdjYTIzZjE4MDA1MDg4ZTU2OTc4Nzc4ZTg3NGI4Ny4uZTIzZWU4NjJhMGQ3MmQ4ZTdjMDJkOTFk
Y2MxOTU0OGZkMzA5NTNiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fp
cm8vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xNTAyLDYgKzE1MDIsOCBAQCBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vYWJvcnRlZC1wdXQuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCiAjIFRFTVBPUkFSWSBTS0lQ
UyAtLSB0aGVzZSBhcmVhcyBzdGlsbCBuZWVkIHRvIGJlIGFkZHJlc3NlZCBpbmRpdmlkdWFsbHkK
ICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAorYW5pbWF0aW9ucy8zZCBbIFNr
aXAgXQorY29tcG9zaXRpbmcgWyBTa2lwIF0KIGZhc3QvYXR0YWNobWVudCBbIFNraXAgXQogZmFz
dC9iYWNrZ3JvdW5kcyBbIFNraXAgXQogZmFzdC9ibG9jayBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370545</attachid>
            <date>2019-05-23 19:18:02 -0700</date>
            <delta_ts>2019-05-23 19:18:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-198105-20190524111801.patch</filename>
            <type>text/plain</type>
            <size>22155</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NzMwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDE1Y2QwYzM1NzE4OGI5ODJkNTg5MGNhNWVlY2FiYWJi
MTMyZTc3NC4uYmY4YjM2MGVhMmVkYjYyMzk1NjNiNGE4Y2IwZTU4ZWI3YzZmYzUyYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDE5LTA1LTIzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgorCisgICAgICAgIHJ1bi13ZWJraXQtdGVzdHM6IFJlbW92ZSBmZWF0dXJlIGRldGVjdGlvbiBz
dXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTgxMDUKKworICAgICAgICBSZXZpZXdlZCBieSBKb25hdGhhbiBCZWRhcmQuCisKKyAgICAgICAg
RmVhdHVyZSBkZXRlY3Rpb24gc3VwcG9ydCB3YXMgYWRkZWQgdG8gRFJUIGZvciBXaW5kb3dzIGFu
ZCBvbGQKKyAgICAgICAgcnVuLXdlYmtpdC10ZXN0cyBpbiBCdWcgMzU2MTAuIEl0IHdhcyBhZGRl
ZCBmb3IgTlJXVCBpbiBCdWcgNDE4NDIuCisgICAgICAgIEJ1dCwgaXQgZG9lc24ndCB3b3JrIGZv
ciBEUlQgZm9yIFdpbmRvd3MgYmVjYXVzZSBvZiBmZWF0dXJlIG5hbWUKKyAgICAgICAgbWlzbWF0
Y2hlcy4gU2luY2UgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSBmbGFnIGhhcyBiZWVuCisg
ICAgICAgIHJlbW92ZWQgaW4gQnVnIDEyNzgzMywgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5OgorICAg
ICAgICAoUG9ydC5fdGVzdHNfZm9yX290aGVyX3BsYXRmb3Jtcyk6CisgICAgICAgIChQb3J0Ll9z
a2lwcGVkX3Rlc3RzX2Zvcl91bnN1cHBvcnRlZF9mZWF0dXJlcyk6CisgICAgICAgIChQb3J0Ll9y
dW50aW1lX2ZlYXR1cmVfbGlzdCk6IERlbGV0ZWQuCisgICAgICAgIChQb3J0Lm5tX2NvbW1hbmQp
OiBEZWxldGVkLgorICAgICAgICAoUG9ydC5fbW9kdWxlc190b19zZWFyY2hfZm9yX3N5bWJvbHMp
OiBEZWxldGVkLgorICAgICAgICAoUG9ydC5fc3ltYm9sc19zdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAoUG9ydC5fbWlzc2luZ19mZWF0dXJlX3RvX3NraXBwZWRfdGVzdHMpOiBEZWxldGVkLgor
ICAgICAgICAoUG9ydC5faGFzX3Rlc3RfaW5fZGlyZWN0b3JpZXMpOiBEZWxldGVkLgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHk6CisgICAgICAgIChEYXJ3aW5Qb3J0
Lm1ha2VfY29tbWFuZCk6CisgICAgICAgIChEYXJ3aW5Qb3J0Lm5tX2NvbW1hbmQpOiBEZWxldGVk
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3Nfc2ltdWxhdG9yLnB5OgorICAg
ICAgICAoSU9TU2ltdWxhdG9yUG9ydC5yZXNldF9wcmVmZXJlbmNlcyk6CisgICAgICAgIChJT1NT
aW11bGF0b3JQb3J0Lm5tX2NvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5OgorICAgICAgICAoVGVzdFdlYktpdFBvcnQuX19p
bml0X18pOgorICAgICAgICAoVGVzdFdlYktpdFBvcnQuYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMp
OgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3RfcGF0aF90b190ZXN0X2V4cGVjdGF0aW9uc19m
aWxlKToKKyAgICAgICAgKFRlc3RXZWJLaXRQb3J0Ll9zeW1ib2xzX3N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9za2lwcGVkX2RpcmVjdG9yaWVzX2Zvcl9mZWF0
dXJlcyk6IERlbGV0ZWQuCisgICAgICAgIChQb3J0VGVzdENhc2UudGVzdF9za2lwcGVkX2RpcmVj
dG9yaWVzX2Zvcl9mZWF0dXJlc19ub19tYXRjaGluZ190ZXN0c19pbl90ZXN0X2xpc3QpOiBEZWxl
dGVkLgorICAgICAgICAoUG9ydFRlc3RDYXNlLnRlc3Rfc2tpcHBlZF90ZXN0c19mb3JfdW5zdXBw
b3J0ZWRfZmVhdHVyZXNfZW1wdHlfdGVzdF9saXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvd2F0Y2hfc2ltdWxhdG9yLnB5OgorICAgICAgICAoV2F0Y2hTaW11
bGF0b3JQb3J0LnJlc2V0X3ByZWZlcmVuY2VzKToKKyAgICAgICAgKFdhdGNoU2ltdWxhdG9yUG9y
dC5ubV9jb21tYW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
d2luLnB5OgorICAgICAgICAoV2luUG9ydC5zaG93X3Jlc3VsdHNfaHRtbF9maWxlKToKKyAgICAg
ICAgKFdpblBvcnQuX3J1bnRpbWVfZmVhdHVyZV9saXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luX3VuaXR0ZXN0LnB5OgorICAgICAgICAoV2luUG9ydFRl
c3QudGVzdF9vcGVyYXRpbmdfc3lzdGVtKToKKyAgICAgICAgKFdpblBvcnRUZXN0LnRlc3RfcnVu
dGltZV9mZWF0dXJlX2xpc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6Ok9wdGlvbnNIYW5kbGVyOjpPcHRpb25zSGFuZGxl
cik6CisgICAgICAgIChXVFI6OmhhbmRsZU9wdGlvblByaW50U3VwcG9ydGVkRmVhdHVyZXMpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisKIDIwMTktMDUtMjMgIENvbW1pdCBRdWV1ZSAgPGNv
bW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyNDU2NjUuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRl
clRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApp
bmRleCAwNzRkYjQxY2FhNTE0ZGQ5ODJiYzNiMWJhMjU1ODk2NjI0NTZjNjRmLi42ZDIxMzg1OWJl
Y2ZhNDMzMmZkNjE2NDRhNGRhMDMzMmZiZDM3NDg4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTEwNCw3ICsxMDQsNiBAQCBzdGF0aWMgYm9vbCB1
c2VBY2NlbGVyYXRlZERyYXdpbmcgPSB0cnVlOyAvLyBOb3QgdXNlZAogc3RhdGljIGJvb2wgZ2NC
ZXR3ZWVuVGVzdHMgPSB0cnVlOyAKIHN0YXRpYyBib29sIHByaW50U2VwYXJhdG9ycyA9IGZhbHNl
Owogc3RhdGljIGJvb2wgbGVha0NoZWNraW5nID0gZmFsc2U7Ci1zdGF0aWMgYm9vbCBwcmludFN1
cHBvcnRlZEZlYXR1cmVzID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBzaG93V2ViVmlldyA9IGZhbHNl
Owogc3RhdGljIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0
TG9jYXRpb247CiAKQEAgLTE0NjUsMTEgKzE0NjQsNiBAQCBzdGF0aWMgVmVjdG9yPGNvbnN0IGNo
YXIqPiBpbml0aWFsaXplR2xvYmFsc0Zyb21Db21tYW5kTGluZU9wdGlvbnMoaW50IGFyZ2MsIGNv
bgogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIXN0cmlj
bXAoYXJndltpXSwgIi0tcHJpbnQtc3VwcG9ydGVkLWZlYXR1cmVzIikpIHsKLSAgICAgICAgICAg
IHByaW50U3VwcG9ydGVkRmVhdHVyZXMgPSB0cnVlOwotICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIH0KLQogICAgICAgICBpZiAoIXN0cmljbXAoYXJndltpXSwgIi0tc2hvdy13ZWJ2aWV3
IikpIHsKICAgICAgICAgICAgIHNob3dXZWJWaWV3ID0gdHJ1ZTsKICAgICAgICAgICAgIGNvbnRp
bnVlOwpAQCAtMTU4MCwyMyArMTU3NCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFy
KiBhcmd2W10pCiAKICAgICBwcmVwYXJlQ29uc2lzdGVudFRlc3RpbmdFbnZpcm9ubWVudChzdGFu
ZGFyZFByZWZlcmVuY2VzLmdldCgpLCBzdGFuZGFyZFByZWZlcmVuY2VzUHJpdmF0ZS5nZXQoKSk7
CiAKLSAgICBpZiAocHJpbnRTdXBwb3J0ZWRGZWF0dXJlcykgewotICAgICAgICBCT09MIGFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUgPSBGQUxTRTsKLSAgICAgICAgc3RhbmRhcmRQcmVm
ZXJlbmNlcy0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoJmFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdBdmFpbGFibGUpOwotCi0jaWYgRU5BQkxFKDNEX1RSQU5TRk9STVMpCi0gICAgICAgIC8v
IEluIHRoZW9yeSwgd2UgY291bGQgaGF2ZSBhIHNvZnR3YXJlLWJhc2VkIDNEIHJlbmRlcmluZyBp
bXBsZW1lbnRhdGlvbiB0aGF0IHdlIHVzZSB3aGVuCi0gICAgICAgIC8vIGhhcmR3YXJlLWFjY2Vs
ZXJhdGlvbiBpcyBub3QgYXZhaWxhYmxlLiBCdXQgd2UgZG9uJ3QgaGF2ZSBhbnkgc3VjaCBzb2Z0
d2FyZQotICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbiwgc28gM0QgcmVuZGVyaW5nIGlzIG9ubHkg
YXZhaWxhYmxlIHdoZW4gaGFyZHdhcmUtYWNjZWxlcmF0aW9uIGlzLgotICAgICAgICBCT09MIHRo
cmVlRFRyYW5zZm9ybXNBdmFpbGFibGUgPSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nQXZhaWxhYmxl
OwotI2Vsc2UKLSAgICAgICAgQk9PTCB0aHJlZURUcmFuc2Zvcm1zQXZhaWxhYmxlID0gRkFMU0U7
Ci0jZW5kaWYKLQotICAgICAgICBmcHJpbnRmKHRlc3RSZXN1bHQsICJTdXBwb3J0ZWRGZWF0dXJl
czolcyAlc1xuIiwgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0F2YWlsYWJsZSA/ICJBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nIiA6ICIiLCB0aHJlZURUcmFuc2Zvcm1zQXZhaWxhYmxlID8gIjNEVHJhbnNm
b3JtcyIgOiAiIik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQogICAgIENPTVB0cjxJV2Vi
Vmlldz4gd2ViVmlldyhBZG9wdENPTSwgY3JlYXRlV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdygm
d2ViVmlld1dpbmRvdykpOwogICAgIGlmICghd2ViVmlldykKICAgICAgICAgcmV0dXJuIC00Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQppbmRleCBkMDY3OTljNmFlMGUyNjBkOTE5MmY0
Yjg2ODU2YjhhZDNhYTZmOTkxLi4zNjI2N2NhYjNiNzBhMjZkZTIyMjM5ODE0YzE2Y2NmNTllMmU1
NmNlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQpAQCAtMzEsMTEgKzMxLDkgQEAK
IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgKHRoZSBQb3J0IGFuZCBEcml2ZXIgY2xhc3NlcykuIiIiCiAK
IGltcG9ydCBkaWZmbGliCi1pbXBvcnQgaXRlcnRvb2xzCiBpbXBvcnQganNvbgogaW1wb3J0IGxv
Z2dpbmcKIGltcG9ydCBvcwotaW1wb3J0IG9wZXJhdG9yCiBpbXBvcnQgb3B0cGFyc2UKIGltcG9y
dCByZQogaW1wb3J0IHN5cwpAQCAtMTU1Nyw2NCArMTU1NSw3IEBAIGNsYXNzIFBvcnQob2JqZWN0
KToKICAgICAgICAgICAgICAgICBkaXJzX3RvX3NraXAuYXBwZW5kKCdwbGF0Zm9ybS8lcycgJSBi
YXNlbmFtZSkKICAgICAgICAgcmV0dXJuIGRpcnNfdG9fc2tpcAogCi0gICAgZGVmIF9ydW50aW1l
X2ZlYXR1cmVfbGlzdChzZWxmKToKLSAgICAgICAgIiIiSWYgYSBwb3J0IG1ha2VzIGNlcnRhaW4g
ZmVhdHVyZXMgYXZhaWxhYmxlIG9ubHkgdGhyb3VnaCBydW50aW1lIGZsYWdzLCBpdCBjYW4gb3Zl
cnJpZGUgdGhpcyByb3V0aW5lIHRvIGluZGljYXRlIHdoaWNoIG9uZXMgYXJlIGF2YWlsYWJsZS4i
IiIKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBubV9jb21tYW5kKHNlbGYpOgotICAg
ICAgICByZXR1cm4gJ25tJwotCi0gICAgZGVmIF9tb2R1bGVzX3RvX3NlYXJjaF9mb3Jfc3ltYm9s
cyhzZWxmKToKLSAgICAgICAgcGF0aCA9IHNlbGYuX3BhdGhfdG9fd2ViY29yZV9saWJyYXJ5KCkK
LSAgICAgICAgaWYgcGF0aDoKLSAgICAgICAgICAgIHJldHVybiBbcGF0aF0KLSAgICAgICAgcmV0
dXJuIFtdCi0KLSAgICBkZWYgX3N5bWJvbHNfc3RyaW5nKHNlbGYpOgotICAgICAgICBzeW1ib2xz
ID0gJycKLSAgICAgICAgZm9yIHBhdGhfdG9fbW9kdWxlIGluIHNlbGYuX21vZHVsZXNfdG9fc2Vh
cmNoX2Zvcl9zeW1ib2xzKCk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc3lt
Ym9scyArPSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoW3NlbGYubm1fY29tbWFuZCgpLCBw
YXRoX3RvX21vZHVsZV0sIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKLSAgICAgICAgICAgIGV4Y2VwdCBP
U0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgX2xvZy53YXJuKCJGYWlsZWQgdG8gcnVuIG5t
OiAlcy4gIENhbid0IGRldGVybWluZSBzdXBwb3J0ZWQgZmVhdHVyZXMgY29ycmVjdGx5LiIgJSBl
KQotICAgICAgICByZXR1cm4gc3ltYm9scwotCi0gICAgIyBQb3J0cyB3aGljaCB1c2UgcnVuLXRp
bWUgZmVhdHVyZSBkZXRlY3Rpb24gc2hvdWxkIGRlZmluZSB0aGlzIG1ldGhvZCBhbmQgcmV0dXJu
Ci0gICAgIyBhIGRpY3Rpb25hcnkgbWFwcGluZyBmcm9tIEZlYXR1cmUgTmFtZXMgdG8gc2tpcHBl
ZCBkaXJlY3RvaXJlcy4gIE5SV1Qgd2lsbAotICAgICMgcnVuIER1bXBSZW5kZXJUcmVlIC0tcHJp
bnQtc3VwcG9ydGVkLWZlYXR1cmVzIGFuZCBwYXJzZSB0aGUgb3V0cHV0LgotICAgICMgSWYgdGhl
IEZlYXR1cmUgTmFtZXMgYXJlIG5vdCBmb3VuZCBpbiB0aGUgb3V0cHV0LCB0aGUgY29ycmVzcG9u
ZGluZyBkaXJlY3RvcmllcwotICAgICMgd2lsbCBiZSBza2lwcGVkLgotICAgIGRlZiBfbWlzc2lu
Z19mZWF0dXJlX3RvX3NraXBwZWRfdGVzdHMoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUg
c3VwcG9ydGVkIGZlYXR1cmUgZGljdGlvbmFyeS4gS2V5cyBhcmUgZmVhdHVyZSBuYW1lcyBhbmQg
dmFsdWVzCi0gICAgICAgIGFyZSB0aGUgbGlzdHMgb2YgZGlyZWN0b3JpZXMgdG8gc2tpcCBpZiB0
aGUgZmVhdHVyZSBuYW1lIGlzIG5vdCBtYXRjaGVkLiIiIgotICAgICAgICAjIEZJWE1FOiBUaGlz
IGxpc3QgbWF0Y2hlcyBXZWJLaXRXaW4gYW5kIHNob3VsZCBiZSBtb3ZlZCBvbnRvIHRoZSBXaW4g
cG9ydC4KLSAgICAgICAgcmV0dXJuIHsKLSAgICAgICAgICAgICJBY2NlbGVyYXRlZCBDb21wb3Np
dGluZyI6IFsiY29tcG9zaXRpbmciXSwKLSAgICAgICAgICAgICIzRCBSZW5kZXJpbmciOiBbImFu
aW1hdGlvbnMvM2QiLCAidHJhbnNmb3Jtcy8zZCJdLAotICAgICAgICB9Ci0KLSAgICBkZWYgX2hh
c190ZXN0X2luX2RpcmVjdG9yaWVzKHNlbGYsIGRpcmVjdG9yeV9saXN0cywgdGVzdF9saXN0KToK
LSAgICAgICAgaWYgbm90IHRlc3RfbGlzdDoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0g
ICAgICAgIGRpcmVjdG9yaWVzID0gaXRlcnRvb2xzLmNoYWluLmZyb21faXRlcmFibGUoZGlyZWN0
b3J5X2xpc3RzKQotICAgICAgICBmb3IgZGlyZWN0b3J5LCB0ZXN0IGluIGl0ZXJ0b29scy5wcm9k
dWN0KGRpcmVjdG9yaWVzLCB0ZXN0X2xpc3QpOgotICAgICAgICAgICAgaWYgdGVzdC5zdGFydHN3
aXRoKGRpcmVjdG9yeSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgcmV0
dXJuIEZhbHNlCi0KICAgICBkZWYgX3NraXBwZWRfdGVzdHNfZm9yX3Vuc3VwcG9ydGVkX2ZlYXR1
cmVzKHNlbGYsIHRlc3RfbGlzdCk6Ci0gICAgICAgICMgT25seSBjaGVjayB0aGUgcnVudGltZSBm
ZWF0dXJlIGxpc3Qgb2YgdGhlcmUgYXJlIHRlc3RzIGluIHRoZSB0ZXN0X2xpc3QgdGhhdCBtaWdo
dCBnZXQgc2tpcHBlZC4KLSAgICAgICAgIyBUaGlzIGlzIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0
aW9uIHRvIGF2b2lkIHRoZSBzdWJwcm9jZXNzIGNhbGwgdG8gRFJULgotICAgICAgICAjIElmIHRo
ZSBwb3J0IHN1cHBvcnRzIHJ1bnRpbWUgZmVhdHVyZSBkZXRlY3Rpb24sIGRpc2FibGUgYW55IHRl
c3RzCi0gICAgICAgICMgZm9yIGZlYXR1cmVzIG1pc3NpbmcgZnJvbSB0aGUgcnVudGltZSBmZWF0
dXJlIGxpc3QuCi0gICAgICAgICMgSWYgX3J1bnRpbWVfZmVhdHVyZV9saXN0IHJldHVybnMgYSBu
b24tTm9uZSB2YWx1ZSwgdGhlbiBwcmVmZXIKLSAgICAgICAgIyBydW50aW1lIGZlYXR1cmUgZGV0
ZWN0aW9uIG92ZXIgc3RhdGljIGZlYXR1cmUgZGV0ZWN0aW9uLgotICAgICAgICBpZiBzZWxmLl9o
YXNfdGVzdF9pbl9kaXJlY3RvcmllcyhzZWxmLl9taXNzaW5nX2ZlYXR1cmVfdG9fc2tpcHBlZF90
ZXN0cygpLnZhbHVlcygpLCB0ZXN0X2xpc3QpOgotICAgICAgICAgICAgc3VwcG9ydGVkX2ZlYXR1
cmVfbGlzdCA9IHNlbGYuX3J1bnRpbWVfZmVhdHVyZV9saXN0KCkKLSAgICAgICAgICAgIGlmIHN1
cHBvcnRlZF9mZWF0dXJlX2xpc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHJlZHVjZShvcGVyYXRvci5hZGQsIFtkaXJlY3RvcmllcyBmb3IgZmVhdHVyZSwgZGlyZWN0b3Jp
ZXMgaW4gc2VsZi5fbWlzc2luZ19mZWF0dXJlX3RvX3NraXBwZWRfdGVzdHMoKS5pdGVtcygpIGlm
IGZlYXR1cmUgbm90IGluIHN1cHBvcnRlZF9mZWF0dXJlX2xpc3RdKQotCiAgICAgICAgIHJldHVy
biBbXQogCiAgICAgZGVmIF93azJfcG9ydF9uYW1lKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2Rhcndpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9kYXJ3aW4ucHkKaW5kZXggMzNhNGJjOTdiOGYwNWIzMWY5ZmVmMzk4YjYxYzM5MTM1MDcx
MzIyMC4uM2I3Yzg4ZTQwNmMwZjU0ZmM4ZWZmNjI5MTM2YjQ2NTA0N2RkMGM3OSAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Rhcndpbi5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZGFyd2luLnB5CkBAIC0yMzMsOSArMjMzLDYgQEAgY2xhc3MgRGFy
d2luUG9ydChBcHBsZVBvcnQpOgogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAgICAg
IHJldHVybiBzZWxmLnhjcnVuX2ZpbmQoJ21ha2UnLCAnL3Vzci9iaW4vbWFrZScpCiAKLSAgICBk
ZWYgbm1fY29tbWFuZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYueGNydW5fZmluZCgnbm0n
LCAnbm0nKQotCiAgICAgZGVmIHhjcnVuX2ZpbmQoc2VsZiwgY29tbWFuZCwgZmFsbGJhY2s9Tm9u
ZSk6CiAgICAgICAgIGZhbGxiYWNrID0gZmFsbGJhY2sgb3IgY29tbWFuZAogICAgICAgICB0cnk6
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvaW9zX3NpbXVsYXRvci5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pb3Nfc2ltdWxhdG9yLnB5CmluZGV4IDA0
Zjk5Yzc5NDYxZTI4YTI5NjI0MTdjOWUzNTEzMDdjOTI3MTZiNGIuLjMxMjc1ZmRiZmFhMjMzZDJk
ZDc4ZDI4OGIzMmMwMDk5NTQ4ZjFiNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9pb3Nfc2ltdWxhdG9yLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9pb3Nfc2ltdWxhdG9yLnB5CkBAIC05Niw5ICs5Niw2IEBAIGNsYXNzIElPU1NpbXVsYXRvclBv
cnQoSU9TUG9ydCk6CiAgICAgICAgIF9sb2cuZGVidWcoInJlc2V0X3ByZWZlcmVuY2VzIikKICAg
ICAgICAgU2ltdWxhdGVkRGV2aWNlTWFuYWdlci50ZWFyX2Rvd24oc2VsZi5ob3N0KQogCi0gICAg
ZGVmIG5tX2NvbW1hbmQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnhjcnVuX2ZpbmQoJ25t
JykKLQogICAgIEBwcm9wZXJ0eQogICAgIEBtZW1vaXplZAogICAgIGRlZiBkZXZlbG9wZXJfZGly
KHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRfdGVz
dGNhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQpp
bmRleCA5ZDg2YzljMzcwZTA0Y2I3N2NjY2I3MTRhZTM4ZDRmYmUyOTY3YzNmLi44YzUxM2Q3ZjFl
MWNlM2FkMDg4OTdmMjdhYThlNWY3ZWNiYWJmOTEyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQpAQCAtNTYsMjAgKzU2LDE2IEBAIGZyb20gd2Via2l0
cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9ja09wdGlvbnMKIGNsYXNzIFRlc3RXZWJLaXRQb3J0
KFBvcnQpOgogICAgIHBvcnRfbmFtZSA9ICJ0ZXN0d2Via2l0cG9ydCIKIAotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBwb3J0X25hbWU9Tm9uZSwgc3ltYm9sc19zdHJpbmc9Tm9uZSwKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgcG9ydF9uYW1lPU5vbmUsCiAgICAgICAgICAgICAgICAgIGV4cGVjdGF0
aW9uc19maWxlPU5vbmUsIHNraXBzX2ZpbGU9Tm9uZSwgaG9zdD1Ob25lLCBjb25maWc9Tm9uZSwK
ICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgICAgICBwb3J0X25hbWUgPSBwb3J0X25h
bWUgb3IgVGVzdFdlYktpdFBvcnQucG9ydF9uYW1lCi0gICAgICAgIHNlbGYuc3ltYm9sc19zdHJp
bmcgPSBzeW1ib2xzX3N0cmluZyAgIyBQYXNzaW5nICIiIGRpc2FibGVzIGFsbCBzdGF0aWNseS1k
ZXRlY3RhYmxlIGZlYXR1cmVzLgogICAgICAgICBob3N0ID0gaG9zdCBvciBNb2NrU3lzdGVtSG9z
dCgpCiAgICAgICAgIHN1cGVyKFRlc3RXZWJLaXRQb3J0LCBzZWxmKS5fX2luaXRfXyhob3N0LCBw
b3J0X25hbWU9cG9ydF9uYW1lLCAqKmt3YXJncykKIAogICAgIGRlZiBhbGxfdGVzdF9jb25maWd1
cmF0aW9ucyhzZWxmKToKICAgICAgICAgcmV0dXJuIFtzZWxmLnRlc3RfY29uZmlndXJhdGlvbigp
XQogCi0gICAgZGVmIF9zeW1ib2xzX3N0cmluZyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYu
c3ltYm9sc19zdHJpbmcKLQogICAgIGRlZiBfdGVzdHNfZm9yX290aGVyX3BsYXRmb3JtcyhzZWxm
LCAqKmt3YXJncyk6CiAgICAgICAgIHJldHVybiBbIm1lZGlhIiwgXQogCkBAIC01MDAsMjYgKzQ5
Niw2IEBAIGNsYXNzIFBvcnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHBv
cnQuX29wdGlvbnMgPSBNb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9RmFsc2UpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5wYXRoX3RvX3Rlc3RfZXhwZWN0YXRpb25zX2ZpbGUo
KSwgJy9tb2NrLWNoZWNrb3V0L0xheW91dFRlc3RzL3BsYXRmb3JtL3Rlc3R3ZWJraXRwb3J0L1Rl
c3RFeHBlY3RhdGlvbnMnKQogCi0gICAgZGVmIHRlc3Rfc2tpcHBlZF9kaXJlY3Rvcmllc19mb3Jf
ZmVhdHVyZXMoc2VsZik6Ci0gICAgICAgIHN1cHBvcnRlZF9mZWF0dXJlcyA9IFsiQWNjZWxlcmF0
ZWQgQ29tcG9zaXRpbmciLCAiRm9vIEZlYXR1cmUiXQotICAgICAgICBleHBlY3RlZF9kaXJlY3Rv
cmllcyA9IHNldChbImFuaW1hdGlvbnMvM2QiLCAidHJhbnNmb3Jtcy8zZCJdKQotICAgICAgICBw
b3J0ID0gVGVzdFdlYktpdFBvcnQoc3VwcG9ydGVkX2ZlYXR1cmVzPXN1cHBvcnRlZF9mZWF0dXJl
cykKLSAgICAgICAgcG9ydC5fcnVudGltZV9mZWF0dXJlX2xpc3QgPSBsYW1iZGE6IHN1cHBvcnRl
ZF9mZWF0dXJlcwotICAgICAgICByZXN1bHRfZGlyZWN0b3JpZXMgPSBzZXQocG9ydC5fc2tpcHBl
ZF90ZXN0c19mb3JfdW5zdXBwb3J0ZWRfZmVhdHVyZXModGVzdF9saXN0PVsiYW5pbWF0aW9ucy8z
ZC9mb28uaHRtbCJdKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRfZGlyZWN0b3Jp
ZXMsIGV4cGVjdGVkX2RpcmVjdG9yaWVzKQotCi0gICAgZGVmIHRlc3Rfc2tpcHBlZF9kaXJlY3Rv
cmllc19mb3JfZmVhdHVyZXNfbm9fbWF0Y2hpbmdfdGVzdHNfaW5fdGVzdF9saXN0KHNlbGYpOgot
ICAgICAgICBzdXBwb3J0ZWRfZmVhdHVyZXMgPSBbIkFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIiwg
IkZvbyBGZWF0dXJlIl0KLSAgICAgICAgZXhwZWN0ZWRfZGlyZWN0b3JpZXMgPSBzZXQoW10pCi0g
ICAgICAgIHJlc3VsdF9kaXJlY3RvcmllcyA9IHNldChUZXN0V2ViS2l0UG9ydChzdXBwb3J0ZWRf
ZmVhdHVyZXM9c3VwcG9ydGVkX2ZlYXR1cmVzKS5fc2tpcHBlZF90ZXN0c19mb3JfdW5zdXBwb3J0
ZWRfZmVhdHVyZXModGVzdF9saXN0PVsnZm9vLmh0bWwnXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocmVzdWx0X2RpcmVjdG9yaWVzLCBleHBlY3RlZF9kaXJlY3RvcmllcykKLQotICAgIGRl
ZiB0ZXN0X3NraXBwZWRfdGVzdHNfZm9yX3Vuc3VwcG9ydGVkX2ZlYXR1cmVzX2VtcHR5X3Rlc3Rf
bGlzdChzZWxmKToKLSAgICAgICAgc3VwcG9ydGVkX2ZlYXR1cmVzID0gWyJBY2NlbGVyYXRlZCBD
b21wb3NpdGluZyIsICJGb28gRmVhdHVyZSJdCi0gICAgICAgIGV4cGVjdGVkX2RpcmVjdG9yaWVz
ID0gc2V0KFtdKQotICAgICAgICByZXN1bHRfZGlyZWN0b3JpZXMgPSBzZXQoVGVzdFdlYktpdFBv
cnQoc3VwcG9ydGVkX2ZlYXR1cmVzPXN1cHBvcnRlZF9mZWF0dXJlcykuX3NraXBwZWRfdGVzdHNf
Zm9yX3Vuc3VwcG9ydGVkX2ZlYXR1cmVzKHRlc3RfbGlzdD1Ob25lKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChyZXN1bHRfZGlyZWN0b3JpZXMsIGV4cGVjdGVkX2RpcmVjdG9yaWVzKQotCiAg
ICAgZGVmIHRlc3Rfc2tpcHBlZF9sYXlvdXRfdGVzdHMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoVGVzdFdlYktpdFBvcnQoKS5za2lwcGVkX2xheW91dF90ZXN0cyh0ZXN0X2xpc3Q9
W10pLCBzZXQoWydtZWRpYSddKSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9wb3J0L3dhdGNoX3NpbXVsYXRvci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93
YXRjaF9zaW11bGF0b3IucHkKaW5kZXggM2RlYmVlMmU5OWFiM2YyMzNlZTI0Y2MyYjU5NzVkYWEy
ZDU2NzkyNS4uOTMyZGMzZTBlODNkNWIwNWViZWI1YTA0NzAwNTRiZjI0Y2I0YTg1OSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dhdGNoX3NpbXVsYXRvci5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2F0Y2hfc2ltdWxhdG9yLnB5CkBAIC04Nyw5
ICs4Nyw2IEBAIGNsYXNzIFdhdGNoU2ltdWxhdG9yUG9ydChXYXRjaFBvcnQpOgogICAgIGRlZiBy
ZXNldF9wcmVmZXJlbmNlcyhzZWxmKToKICAgICAgICAgU2ltdWxhdGVkRGV2aWNlTWFuYWdlci50
ZWFyX2Rvd24oc2VsZi5ob3N0KQogCi0gICAgZGVmIG5tX2NvbW1hbmQoc2VsZik6Ci0gICAgICAg
IHJldHVybiBzZWxmLnhjcnVuX2ZpbmQoJ25tJykKLQogICAgIEBwcm9wZXJ0eQogICAgIEBtZW1v
aXplZAogICAgIGRlZiBkZXZlbG9wZXJfZGlyKHNlbGYpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L3dpbi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93
aW4ucHkKaW5kZXggNjZhZDEzZGIzY2E2OGM2YmU3ZWI5MGVhMWU0ZDg3NGNlZDc4YjAwOS4uNGI5
YjYwNjNjMjk1YmU2NDMxMDk4YjA4ZGI4YTEwMjE4YWNlYTAwYyAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L3dpbi5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvd2luLnB5CkBAIC0xNTQsMjAgKzE1NCw2IEBAIGNsYXNzIFdpblBvcnQoQXBwbGVQb3J0
KToKICAgICBkZWYgc2hvd19yZXN1bHRzX2h0bWxfZmlsZShzZWxmLCByZXN1bHRzX2ZpbGVuYW1l
KToKICAgICAgICAgc2VsZi5fcnVuX3NjcmlwdCgncnVuLXNhZmFyaScsIFthYnNwYXRoX3RvX3Vy
aShTeXN0ZW1Ib3N0KCkucGxhdGZvcm0sIHJlc3VsdHNfZmlsZW5hbWUpXSkKIAotICAgIGRlZiBf
cnVudGltZV9mZWF0dXJlX2xpc3Qoc2VsZik6Ci0gICAgICAgIHN1cHBvcnRlZF9mZWF0dXJlc19j
b21tYW5kID0gW3NlbGYuX3BhdGhfdG9fZHJpdmVyKCksICctLXByaW50LXN1cHBvcnRlZC1mZWF0
dXJlcyddCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG91dHB1dCA9IHNlbGYuX2V4ZWN1dGl2
ZS5ydW5fY29tbWFuZChzdXBwb3J0ZWRfZmVhdHVyZXNfY29tbWFuZCwgaWdub3JlX2Vycm9ycz1U
cnVlKQotICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICAgICAgX2xvZy53YXJu
KCJFeGNlcHRpb24gcnVubmluZyBkcml2ZXI6ICVzLCAlcy4gIERyaXZlciBtdXN0IGJlIGJ1aWx0
IGJlZm9yZSBjYWxsaW5nIFdlYktpdFBvcnQudGVzdF9leHBlY3RhdGlvbnMoKS4iICUgKHN1cHBv
cnRlZF9mZWF0dXJlc19jb21tYW5kLCBlKSkKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAg
ICAgICAgIyBOb3RlOiB3aW4vRHVtcFJlbmRlclRyZWUuY3BwIGRvZXMgbm90IHByaW50IGEgbGVh
ZGluZyBzcGFjZSBiZWZvcmUgdGhlIGZlYXR1cmVzX3N0cmluZy4KLSAgICAgICAgbWF0Y2hfb2Jq
ZWN0ID0gcmUubWF0Y2goIlN1cHBvcnRlZEZlYXR1cmVzOlxzKig/UDxmZWF0dXJlc19zdHJpbmc+
LiopXHMqIiwgb3V0cHV0KQotICAgICAgICBpZiBub3QgbWF0Y2hfb2JqZWN0OgotICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIG1hdGNoX29iamVjdC5ncm91cCgnZmVhdHVy
ZXNfc3RyaW5nJykuc3BsaXQoJyAnKQotCiAgICAgZGVmIF9idWlsZF9wYXRoKHNlbGYsICpjb21w
cyk6CiAgICAgICAgICIiIlJldHVybnMgdGhlIGZ1bGwgcGF0aCB0byB0aGUgdGVzdCBkcml2ZXIg
KER1bXBSZW5kZXJUcmVlKS4iIiIKICAgICAgICAgcm9vdF9kaXJlY3RvcnkgPSBzZWxmLmdldF9v
cHRpb24oJ19jYWNoZWRfcm9vdCcpIG9yIHNlbGYuZ2V0X29wdGlvbigncm9vdCcpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2luX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L3dpbl91bml0dGVzdC5weQppbmRleCA2YjMyN2E5ODZlYzcx
NGI0YjJkOGYzZTBiNTEyNWMwYTU0N2Y3ZTIwLi4wYzYyMTE0MjFhOTQyNTNlZDY5MTRlNjgzMjg1
Y2I1M2U5OWQwZDk4IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd2lu
X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC93aW5fdW5pdHRl
c3QucHkKQEAgLTkzLDE0ICs5Myw2IEBAIGNsYXNzIFdpblBvcnRUZXN0KHBvcnRfdGVzdGNhc2Uu
UG9ydFRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9vcGVyYXRpbmdfc3lzdGVtKHNlbGYpOgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCd3aW4nLCBzZWxmLm1ha2VfcG9ydCgpLm9wZXJhdGluZ19z
eXN0ZW0oKSkKIAotICAgIGRlZiB0ZXN0X3J1bnRpbWVfZmVhdHVyZV9saXN0KHNlbGYpOgotICAg
ICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQotICAgICAgICBwb3J0Ll9leGVjdXRpdmUucnVu
X2NvbW1hbmQgPSBsYW1iZGEgY29tbWFuZCwgY3dkPU5vbmUsIGlnbm9yZV9lcnJvcnM9RmFsc2U6
ICJOb25zZW5zZSIKLSAgICAgICAgIyBydW50aW1lX2ZlYXR1cmVzX2xpc3QgcmV0dXJucyBOb25l
IHdoZW4gaXRzIHJlc3VsdHMgYXJlIG1lYW5pbmdsZXNzIChpdCBjb3VsZG4ndCBydW4gRFJUIG9y
IHBhcnNlIHRoZSBvdXRwdXQsIGV0Yy4pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5f
cnVudGltZV9mZWF0dXJlX2xpc3QoKSwgTm9uZSkKLSAgICAgICAgcG9ydC5fZXhlY3V0aXZlLnJ1
bl9jb21tYW5kID0gbGFtYmRhIGNvbW1hbmQsIGN3ZD1Ob25lLCBpZ25vcmVfZXJyb3JzPUZhbHNl
OiAiU3VwcG9ydGVkRmVhdHVyZXM6Zm9vIGJhciIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
b3J0Ll9ydW50aW1lX2ZlYXR1cmVfbGlzdCgpLCBbJ2ZvbycsICdiYXInXSkKLQogICAgIGRlZiB0
ZXN0X2V4cGVjdGF0aW9uc19maWxlcyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChs
ZW4oc2VsZi5tYWtlX3BvcnQoKS5leHBlY3RhdGlvbnNfZmlsZXMoKSksIDMpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09wdGlvbnMod2Vi
a2l0X3Rlc3RfcnVubmVyPVRydWUsIGNvbmZpZ3VyYXRpb249J1JlbGVhc2UnKSkuZXhwZWN0YXRp
b25zX2ZpbGVzKCkpLCA1KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRp
b25zLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5jcHAKaW5kZXggOWRkMzdi
MDI4YjRhNWI0YWI0ZGMzMzczNDk2N2JlMDdhNzNiYTg2Ny4uYmM2M2VkMmRlNGZlYzk5ZDA0MWI2
N2E4YjJmOTg3NGY3YTFhMzc4OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9P
cHRpb25zLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL09wdGlvbnMuY3BwCkBAIC01
NywxMiArNTcsNiBAQCBzdGF0aWMgYm9vbCBoYW5kbGVPcHRpb25QaXhlbFRlc3RzKE9wdGlvbnMm
IG9wdGlvbnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotc3RhdGljIGJvb2wgaGFuZGxlT3B0aW9uUHJpbnRTdXBwb3J0ZWRGZWF0dXJlcyhPcHRpb25z
JiBvcHRpb25zLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciopCi17Ci0gICAgb3B0aW9ucy5wcmlu
dFN1cHBvcnRlZEZlYXR1cmVzID0gdHJ1ZTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogc3RhdGlj
IGJvb2wgaGFuZGxlT3B0aW9uQ29tcGxleFRleHQoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hh
ciosIGNvbnN0IGNoYXIqKQogewogICAgIG9wdGlvbnMuZm9yY2VDb21wbGV4VGV4dCA9IHRydWU7
CkBAIC0xMjcsNyArMTIxLDYgQEAgT3B0aW9uc0hhbmRsZXI6Ok9wdGlvbnNIYW5kbGVyKE9wdGlv
bnMmIG8pCiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLWdjLWJldHdlZW4tdGVzdHMi
LCAiR2FyYmFnZSBjb2xsZWN0aW9uIGJldHdlZW4gdGVzdHMuIiwgaGFuZGxlT3B0aW9uR2NCZXR3
ZWVuVGVzdHMpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tcGl4ZWwtdGVzdHMi
LCAiQ2hlY2sgcGl4ZWxzLiIsIGhhbmRsZU9wdGlvblBpeGVsVGVzdHMpKTsKICAgICBvcHRpb25M
aXN0LmFwcGVuZChPcHRpb24oIi1wIiwgIkNoZWNrIHBpeGVscy4iLCBoYW5kbGVPcHRpb25QaXhl
bFRlc3RzKSk7Ci0gICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLXByaW50LXN1cHBvcnRl
ZC1mZWF0dXJlcyIsICJGb3IgRHVtcFJlbmRlclRyZWUgY29tcGF0aWJpbGl0eS4iLCBoYW5kbGVP
cHRpb25QcmludFN1cHBvcnRlZEZlYXR1cmVzKSk7CiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0
aW9uKCItLWNvbXBsZXgtdGV4dCIsICJGb3JjZSBjb21wbGV4IHRlc3RzLiIsIGhhbmRsZU9wdGlv
bkNvbXBsZXhUZXh0KSk7CiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLWFjY2VsZXJh
dGVkLWRyYXdpbmciLCAiVXNlIGFjY2VsZXJhdGVkIGRyYXdpbmcuIiwgaGFuZGxlT3B0aW9uQWNj
ZWxlcmF0ZWREcmF3aW5nKSk7CiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLXJlbW90
ZS1sYXllci10cmVlIiwgIlVzZSByZW1vdGUgbGF5ZXIgdHJlZS4iLCBoYW5kbGVPcHRpb25SZW1v
dGVMYXllclRyZWUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0aW9u
cy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKaW5kZXggYTg5OTI2ZGJjMDU3
ZmE2MzBlNTRhNDg4N2VlOWIxN2ZjZDIyZGQ1Ny4uNDZlY2IzOTk1OTA2YTUzYzZiNGQzN2NmY2Mw
ODcxMzZiOGYzOGZhNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25z
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKQEAgLTQyLDcgKzQyLDYg
QEAgc3RydWN0IE9wdGlvbnMgewogICAgIGJvb2wgdmVyYm9zZSB7IGZhbHNlIH07CiAgICAgYm9v
bCBnY0JldHdlZW5UZXN0cyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzRm9y
QWxsVGVzdHMgeyBmYWxzZSB9OwotICAgIGJvb2wgcHJpbnRTdXBwb3J0ZWRGZWF0dXJlcyB7IGZh
bHNlIH07CiAgICAgYm9vbCBmb3JjZUNvbXBsZXhUZXh0IHsgZmFsc2UgfTsKICAgICBib29sIHNo
b3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRVc2VS
ZW1vdGVMYXllclRyZWUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAppbmRleCAyYmJhY2IxMGJiMTM5NDNlY2NkNTVlZmM1MTI5ZjUzOTAyMjQ2MzVi
Li4yNmEwMWFjZDc5NzRiYzE4NzYxMDdiNzkwYTdiM2FkYzg3YTM0NDFkIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNDU5LDEzICs0NTksNiBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2W10p
CiAgICAgbV9jaGVja0ZvcldvcmxkTGVha3MgPSBvcHRpb25zLmNoZWNrRm9yV29ybGRMZWFrczsK
ICAgICBtX2FsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0cyA9IG9wdGlvbnMu
YWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzOwogCi0gICAgaWYgKG9wdGlv
bnMucHJpbnRTdXBwb3J0ZWRGZWF0dXJlcykgewotICAgICAgICAvLyBGSVhNRTogT24gV2luZG93
cywgRHVtcFJlbmRlclRyZWUgdXNlcyB0aGlzIHRvIGV4cG9zZSB3aGV0aGVyIGl0IHN1cHBvcnRz
IDNkCi0gICAgICAgIC8vIHRyYW5zZm9ybXMgYW5kIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLiBX
aGVuIHdlIHN1cHBvcnQgdGhvc2UgZmVhdHVyZXMsIHdlCi0gICAgICAgIC8vIHNob3VsZCBtYXRj
aCBEUlQncyBiZWhhdmlvci4KLSAgICAgICAgZXhpdCgwKTsKLSAgICB9Ci0KICAgICBtX3VzaW5n
U2VydmVyTW9kZSA9IChtX3BhdGhzLnNpemUoKSA9PSAxICYmIG1fcGF0aHNbMF0gPT0gIi0iKTsK
ICAgICBpZiAobV91c2luZ1NlcnZlck1vZGUpCiAgICAgICAgIG1fcHJpbnRTZXBhcmF0b3JzID0g
dHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBkNmU4YzhhZjA1YWQ5YjUyMDc5ZTllOWI3ZTZiYWM4YTVlNzA3ZDA4Li4z
MGZkNTYxYjQyZjdhZDU1MGFhNzY0ODQzNTRiNWUwYTcwZDY3ZWE2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTktMDUtMjMgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CisKKyAgICAgICAgcnVuLXdlYmtpdC10ZXN0czogUmVtb3ZlIGZlYXR1cmUgZGV0ZWN0aW9u
IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5ODEwNQorCisgICAgICAgIFJldmlld2VkIGJ5IEpvbmF0aGFuIEJlZGFyZC4KKworICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIEFkZGVkIFNraXAgZm9yIGFsbCBjb21w
b3NpdGluZywgYW5pbWF0aW9ucy8zZCBhbmQgdHJhbnNmb3Jtcy8zZCB0ZXN0cyB0ZW1wb3Jhcmls
eS4KKwogMjAxOS0wNS0yMyAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbV0hMU0xdIFByb3BlcnR5IHJlc29sdmVyIG5lZWRzIHRvIHJlY3Vyc2UgdG8gaGFuZGxl
IHRoZSBiYXNlIHdoZW4gc2ltcGxpZnlpbmcgcnZhbHVlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5NmM2ZDhjMmEzNjNhYjQ2ZWVhMjdlYmYzNjU1YTcx
NDRiNDU2ZjRmLi43NTRhNGEzNzQ2MjdkZWQ1YWMzM2Q3MzIwNjg3NDQ5MzcwZWU2YTllIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjYwMSwxMSArMjYw
MSwxMiBAQCB3ZWJraXQub3JnL2IvMTYyNjY4IGZhc3QvdGV4dC93b2ZmMi10b3RhbHNmbnRzaXpl
Lmh0bWwgWyBTa2lwIF0KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgU3RhcnQgbGlzdCBvZiBV
TlJFVklFV0VEIGZhaWx1cmVzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMKIAorY29tcG9zaXRpbmcgWyBTa2lwIF0KK2FuaW1hdGlvbnMvM2QgWyBTa2lw
IF0KK3RyYW5zZm9ybXMvM2QgWyBTa2lwIF0KKwogIyBTa2lwIHRlc3RzIHRoYXQgZmFpbCBvbmx5
IGluIERlYnVnIG1vZGUgCi1bIERlYnVnIF0gY29tcG9zaXRpbmcgWyBTa2lwIF0KIFsgRGVidWcg
XSBsZWdhY3ktYW5pbWF0aW9uLWVuZ2luZS9jb21wb3NpdGluZyBbIFNraXAgXQotWyBEZWJ1ZyBd
IHRyYW5zZm9ybXMvM2QvaGl0LXRlc3RpbmcgWyBTa2lwIF0KLVsgRGVidWcgXSB0cmFuc2Zvcm1z
LzNkL3BvaW50LW1hcHBpbmcgWyBTa2lwIF0KIAogIyBUaGVzZSBmYWlsdXJlcyBhbGwgc2VlbSB0
byBiZSByZWxhdGVkIHRvIHRoZSBwYWdlIGNhY2hlIGJlaW5nIGluIGEgYmFkIHN0YXRlLgogWyBE
ZWJ1ZyBdIGNzczIuMS90MDkwNDAyLWM0Mi1pYngtcGFkLTAwLWQtYWcuaHRtbCBbIFNraXAgXSAj
IERlYnVnIGFzc2VydGlvbgpAQCAtMjY5Myw3ICsyNjk0LDYgQEAgd2Via2l0Lm9yZy9iLzE2MjY2
OCBmYXN0L3RleHQvd29mZjItdG90YWxzZm50c2l6ZS5odG1sIFsgU2tpcCBdCiBbIERlYnVnIF0g
aHR0cC90ZXN0cy9zZWN1cml0eS9saXN0ZW5lci94c3Mtd2luZG93LW9uY2xpY2stYWRkRXZlbnRM
aXN0ZW5lci5odG1sIFsgU2tpcCBdICMgQ2F1c2VzIGxhdGVyIHRlc3RzIHRvIGZhaWwKIFsgRGVi
dWcgXSBwbGF0Zm9ybS93aW4vZmFzdC9ldmVudHMvcGFuU2Nyb2xsLW5vLWlmcmFtZS1qdW1wLmh0
bWwgWyBTa2lwIF0gIyBDYXVzZXMgbGF0ZXIgdGVzdHMgdG8gZmFpbAogWyBEZWJ1ZyBdIHN2Zy9j
dXN0b20vbGlzdC1pdGVtcy13aXRoLXN2Zy1mb250LWZhbWlseS5odG1sIFsgU2tpcCBdICMgQ2F1
c2VzIGxhdGVyIHRlc3RzIHRvIGZhaWwKLVsgRGVidWcgXSB0cmFuc2Zvcm1zLzNkL2dlbmVyYWwv
cGVyc3BlY3RpdmUtbm9uLWxheWVyLmh0bWwgWyBGYWlsdXJlIF0KIAogIyBUaGVzZSBkb24ndCBz
ZWVtIHRvIGJlIHJ1bm5pbmcuCiB3ZWJraXQub3JnL2IvMTEzOTQ2IGNvbXBvc2l0aW5nL2NvbnRl
bnRzLW9wYXF1ZS9jb250cm9sLWxheWVyLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBiZmRmMTJjNjI3Y2Ey
M2YxODAwNTA4OGU1Njk3ODc3OGU4NzRiODcuLmUyM2VlODYyYTBkNzJkOGU3YzAyZDkxZGNjMTk1
NDhmZDMwOTUzYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTUwMiw2ICsxNTAyLDggQEAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJu
L2Fib3J0ZWQtcHV0Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQogIyBURU1QT1JBUlkgU0tJUFMgLS0g
dGhlc2UgYXJlYXMgc3RpbGwgbmVlZCB0byBiZSBhZGRyZXNzZWQgaW5kaXZpZHVhbGx5CiAjLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKK2FuaW1hdGlvbnMvM2QgWyBTa2lwIF0K
K2NvbXBvc2l0aW5nIFsgU2tpcCBdCiBmYXN0L2F0dGFjaG1lbnQgWyBTa2lwIF0KIGZhc3QvYmFj
a2dyb3VuZHMgWyBTa2lwIF0KIGZhc3QvYmxvY2sgWyBTa2lwIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>