<?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>218811</bug_id>
          
          <creation_ts>2020-11-11 10:53:22 -0800</creation_ts>
          <short_desc>Terminate WebProcesses if GPUProcess crashes more than twice in 30 seconds</short_desc>
          <delta_ts>2020-12-09 16:31:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218856</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=219719</see_also>
          <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>
          <dependson>218806</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1706518</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-11 10:53:22 -0800</bug_when>
    <thetext>Terminate WebProcesses if GPUProcess crashes more than twice in 30 seconds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706541</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-11 11:46:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/71292424&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706580</commentid>
    <comment_count>2</comment_count>
      <attachid>413856</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-11 12:49:05 -0800</bug_when>
    <thetext>Created attachment 413856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706598</commentid>
    <comment_count>3</comment_count>
      <attachid>413856</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-11 13:29:21 -0800</bug_when>
    <thetext>Comment on attachment 413856
Patch

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

&gt; Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:111
&gt; +    RELEASE_LOG_ERROR(Process, &quot;AuxiliaryProcessProxy::terminate&quot;);

Can this log the pid of the thing being terminated?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706599</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-11 13:30:11 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 413856 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413856&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:111
&gt; &gt; +    RELEASE_LOG_ERROR(Process, &quot;AuxiliaryProcessProxy::terminate&quot;);
&gt; 
&gt; Can this log the pid of the thing being terminated?

good idea. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706600</commentid>
    <comment_count>5</comment_count>
      <attachid>413858</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-11 13:31:40 -0800</bug_when>
    <thetext>Created attachment 413858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706615</commentid>
    <comment_count>6</comment_count>
      <attachid>413858</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-11-11 14:06:55 -0800</bug_when>
    <thetext>Comment on attachment 413858
Patch

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

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:270
&gt; +#if ENABLE(GPU_PROCESS)
&gt; +    , m_resetGPUProcessCrashCountTimer(RunLoop::main(), this, &amp;WebProcessPool::resetGPUProcessCrashCount)
&gt; +#endif

DeferrableTaskTimer is slightly nicer for this kind of thing because it doesn&apos;t require an initializer.

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:519
&gt; +void WebProcessPool::resetGPUProcessCrashCount()
&gt; +{
&gt; +    m_recentGPUProcessCrashCount = 0;
&gt;  }

DeferrableTaskTimer is slightly nicer for this kind of thing because it doesn&apos;t require a separate function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706629</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-11 14:49:54 -0800</bug_when>
    <thetext>Committed r269703: &lt;https://trac.webkit.org/changeset/269703&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413858.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706664</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-11-11 16:32:08 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #6)
&gt; Comment on attachment 413858 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413858&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessPool.cpp:270
&gt; &gt; +#if ENABLE(GPU_PROCESS)
&gt; &gt; +    , m_resetGPUProcessCrashCountTimer(RunLoop::main(), this, &amp;WebProcessPool::resetGPUProcessCrashCount)
&gt; &gt; +#endif
&gt; 
&gt; DeferrableTaskTimer is slightly nicer for this kind of thing because it
&gt; doesn&apos;t require an initializer.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessPool.cpp:519
&gt; &gt; +void WebProcessPool::resetGPUProcessCrashCount()
&gt; &gt; +{
&gt; &gt; +    m_recentGPUProcessCrashCount = 0;
&gt; &gt;  }
&gt; 
&gt; DeferrableTaskTimer is slightly nicer for this kind of thing because it
&gt; doesn&apos;t require a separate function.

Following up in https://bugs.webkit.org/show_bug.cgi?id=218828.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413856</attachid>
            <date>2020-11-11 12:49:05 -0800</date>
            <delta_ts>2020-11-11 13:31:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218811-20201111124904.patch</filename>
            <type>text/plain</type>
            <size>14629</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZlODNlNjY3MTQxMmE5MTA4
Y2Y5M2U5MjIxM2IzMzIzYzVhNDM3NjIuLmVlMDQxNjc2NjU2NDI1Y2FjOWYxOWU4N2FhZmVkODA0
NDMzZWRlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBUZXJtaW5hdGUgV2ViUHJvY2Vzc2Vz
IGlmIEdQVVByb2Nlc3MgY3Jhc2hlcyBtb3JlIHRoYW4gdHdpY2UgaW4gMzAgc2Vjb25kcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODExCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MTI5MjQyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgR1BVUHJvY2VzcyBjcmFzaGVzIG1vcmUgdGhh
biB0d2ljZSBpbiAzMCBzZWNvbmRzLCB3ZSBub3cgdGVybWluYXRlIGFsbCBXZWJQcm9jZXNzZXMK
KyAgICAgICAgdG8gdHJ5IGFuZCBnZXQgYmFjayBpbnRvIGEgZ29vZCBzdGF0ZS4gVGhpcyBpcyB0
byBhdm9pZCBnZXR0aW5nIGludG8gYSBzaXR1YXRpb24gd2hlcmUKKyAgICAgICAgdGhlIEdQVVBy
b2Nlc3MgaXMgY3Jhc2ggbG9vcGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXhpbGlhcnlQ
cm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzUHJveHk6
OnRlcm1pbmF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmdwdVByb2Nlc3NDcmFzaGVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnJlc2V0R1BVUHJvY2Vzc0NyYXNoQ291bnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlQWxsV2ViQ29udGVudFBy
b2Nlc3Nlcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIwMjAt
MTEtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUHJv
Y2Vzc10gU2VhbWxlc3NseSByZXN1bWUgV2ViQXVkaW8gcGxheWJhY2sgaWYgdGhlIEdQVSBQcm9j
ZXNzIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFy
eVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IGQ0NTZlMDU5NGYzNGRmNmQyNzRkYTcyZDYzY2IyYWY1YjA2ZmVk
NTUuLmVlZTA5NzZmOGJlMWIzYWU2NGI0NjEyOGYwZDU5NGJhNmMyNGZkODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcApAQCAtMTA4
LDYgKzEwOCw4IEBAIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Ojpjb25uZWN0KCkKIAogdm9p
ZCBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnRlcm1pbmF0ZSgpCiB7CisgICAgUkVMRUFTRV9MT0df
RVJST1IoUHJvY2VzcywgIkF1eGlsaWFyeVByb2Nlc3NQcm94eTo6dGVybWluYXRlIik7CisKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAobV9jb25uZWN0aW9uICYmIG1fY29ubmVjdGlvbi0+
a2lsbCgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKaW5kZXggNjM0ODAwYjI4ODMyMGJmOTQ3MjQ2OTM2N2E5YTQyMjNmZjIzYjM0
Zi4uMmJhZDRhY2VjNWI0OTViMzQxMGQ1M2IxMjk3Y2FkZjE1MzRhMGYzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTU3LDcgKzE1NywxMiBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6
UmVmQ291bnRlZExlYWtDb3VudGVyLCBwcm9jZXNzUG9vbENvdW50ZXIsICgiV2ViUHJvY2Vzc1Bv
b2wiKSk7CiAKLWNvbnN0IFNlY29uZHMgc2VydmljZVdvcmtlclRlcm1pbmF0aW9uRGVsYXkgeyA1
X3MgfTsKK2NvbnN0ZXhwciBTZWNvbmRzIHNlcnZpY2VXb3JrZXJUZXJtaW5hdGlvbkRlbGF5IHsg
NV9zIH07CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCitjb25zdGV4cHIgU2Vjb25kcyByZXNl
dEdQVVByb2Nlc3NDcmFzaENvdW50RGVsYXkgeyAzMF9zIH07Citjb25zdGV4cHIgdW5zaWduZWQg
bWF4aW11bUdQVVByb2Nlc3NSZWxhdW5jaEF0dGVtcHRzQmVmb3JlS2lsbGluZ1dlYlByb2Nlc3Nl
cyB7IDIgfTsKKyNlbmRpZgogCiBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklkZW50
aWZpZXIoKQogewpAQCAtMjYwLDYgKzI2NSw5IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNz
UG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICAs
IG1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRGb3JQYWdlQ291bnRlcihbdGhpc10oUmVmQ291
bnRlckV2ZW50KSB7IHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7IH0pCiAgICAgLCBt
X2hpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlc0NvdW50ZXIoW3RoaXNdKFJlZkNvdW50
ZXJFdmVudCkgeyBtX2hpZGRlblBhZ2VUaHJvdHRsaW5nVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7
IH0pCiAgICAgLCBtX2hpZGRlblBhZ2VUaHJvdHRsaW5nVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0
aGlzLCAmV2ViUHJvY2Vzc1Bvb2w6OnVwZGF0ZUhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3Jl
YXNlTGltaXQpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgICwgbV9yZXNldEdQVVByb2Nl
c3NDcmFzaENvdW50VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUHJvY2Vzc1Bvb2w6
OnJlc2V0R1BVUHJvY2Vzc0NyYXNoQ291bnQpCisjZW5kaWYKICAgICAsIG1fZm9yZWdyb3VuZFdl
YlByb2Nlc3NDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlUHJvY2Vzc0Fz
c2VydGlvbnMoKTsgfSkKICAgICAsIG1fYmFja2dyb3VuZFdlYlByb2Nlc3NDb3VudGVyKFt0aGlz
XShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlUHJvY2Vzc0Fzc2VydGlvbnMoKTsgfSkKICAgICAs
IG1fYmFja0ZvcndhcmRDYWNoZShtYWtlVW5pcXVlUmVmPFdlYkJhY2tGb3J3YXJkQ2FjaGU+KCp0
aGlzKSkKQEAgLTQ4OCw2ICs0OTYsNyBAQCBHUFVQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29s
OjplbnN1cmVHUFVQcm9jZXNzKCkKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z3B1UHJvY2Vzc0Ny
YXNoZWQoUHJvY2Vzc0lEIGlkZW50aWZpZXIpCiB7CisgICAgV0VCUFJPQ0VTU1BPT0xfUkVMRUFT
RV9MT0dfRVJST1IoUHJvY2VzcywgImdwdVByb2Nlc3NDcmFzaGVkOiBQSUQ6ICVkIiwgaWRlbnRp
Zmllcik7CiAgICAgbV9ncHVQcm9jZXNzID0gbnVsbHB0cjsKIAogICAgIG1fY2xpZW50LmdwdVBy
b2Nlc3NEaWRDcmFzaCh0aGlzLCBpZGVudGlmaWVyKTsKQEAgLTQ5NSw3ICs1MDQsMTggQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6Z3B1UHJvY2Vzc0NyYXNoZWQoUHJvY2Vzc0lEIGlkZW50aWZpZXIp
CiAgICAgZm9yIChhdXRvJiBwcm9jZXNzIDogcHJvY2Vzc2VzKQogICAgICAgICBwcm9jZXNzLT5n
cHVQcm9jZXNzQ3Jhc2hlZCgpOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb25zaWRlciB0
ZXJtaW5hdGluZyBhbGwgV2ViUHJvY2Vzc2VzIHdoZW5ldmVyIHRoZSBHUFVQcm9jZXNzIGNyYXNo
ZXMgc2V2ZXJhbCB0aW1lcyBpbiBhIHNob3J0IGFtb3VudCBvZiB0aW1lLgorICAgIGlmICgrK21f
cmVjZW50R1BVUHJvY2Vzc0NyYXNoQ291bnQgPiBtYXhpbXVtR1BVUHJvY2Vzc1JlbGF1bmNoQXR0
ZW1wdHNCZWZvcmVLaWxsaW5nV2ViUHJvY2Vzc2VzKSB7CisgICAgICAgIFdFQlBST0NFU1NQT09M
X1JFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJncHVQcm9jZXNzQ3Jhc2hlZDogR1BVIFByb2Nl
c3MgaGFzIGNyYXNoZWQgbW9yZSB0aGFuICV1IHRpbWVzIGluIHRoZSBsYXN0ICVnIHNlY29uZHMs
IHRlcm1pbmF0aW5nIGFsbCBXZWJQcm9jZXNzZXMiLCBtYXhpbXVtR1BVUHJvY2Vzc1JlbGF1bmNo
QXR0ZW1wdHNCZWZvcmVLaWxsaW5nV2ViUHJvY2Vzc2VzLCByZXNldEdQVVByb2Nlc3NDcmFzaENv
dW50RGVsYXkuc2Vjb25kcygpKTsKKyAgICAgICAgbV9yZXNldEdQVVByb2Nlc3NDcmFzaENvdW50
VGltZXIuc3RvcCgpOworICAgICAgICBtX3JlY2VudEdQVVByb2Nlc3NDcmFzaENvdW50ID0gMDsK
KyAgICAgICAgdGVybWluYXRlQWxsV2ViQ29udGVudFByb2Nlc3NlcygpOworICAgIH0gZWxzZSBp
ZiAoIW1fcmVzZXRHUFVQcm9jZXNzQ3Jhc2hDb3VudFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAg
IG1fcmVzZXRHUFVQcm9jZXNzQ3Jhc2hDb3VudFRpbWVyLnN0YXJ0T25lU2hvdChyZXNldEdQVVBy
b2Nlc3NDcmFzaENvdW50RGVsYXkpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpyZXNldEdQ
VVByb2Nlc3NDcmFzaENvdW50KCkKK3sKKyAgICBtX3JlY2VudEdQVVByb2Nlc3NDcmFzaENvdW50
ID0gMDsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24o
V2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJv
eHk6OkdldEdQVVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKQEAgLTE0
NTEsNiArMTQ3MSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN0b3BNZW1vcnlTYW1wbGVyKCkK
IAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dGVybWluYXRlQWxsV2ViQ29udGVudFByb2Nlc3Nlcygp
CiB7CisgICAgV0VCUFJPQ0VTU1BPT0xfUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgInRlcm1p
bmF0ZUFsbFdlYkNvbnRlbnRQcm9jZXNzZXMiKTsKICAgICBWZWN0b3I8UmVmUHRyPFdlYlByb2Nl
c3NQcm94eT4+IHByb2Nlc3NlcyA9IG1fcHJvY2Vzc2VzOwogICAgIGZvciAoYXV0byYgcHJvY2Vz
cyA6IHByb2Nlc3NlcykKICAgICAgICAgcHJvY2Vzcy0+dGVybWluYXRlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA5Y2ZlNmQ0NzBmY2FjMjBlMmRhZDAy
MGQ0NDU4M2YyYTc2NjgyNjkyLi45ZTAyYjQ2ZTM4NDk2MjExNDg0YmJjOTZkOTU3YmFkYzYxNDkz
NzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM1NSw2
ICszNTUsOCBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgdm9pZCBn
cHVQcm9jZXNzQ3Jhc2hlZChQcm9jZXNzSUQpOworICAgIHZvaWQgcmVzZXRHUFVQcm9jZXNzQ3Jh
c2hDb3VudCgpOworCiAgICAgdm9pZCBnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNz
UHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRHUFVQcm9jZXNzQ29ubmVjdGlv
bkRlbGF5ZWRSZXBseSYmKTsKIAogICAgIEdQVVByb2Nlc3NQcm94eSYgZW5zdXJlR1BVUHJvY2Vz
cygpOwpAQCAtNjg4LDYgKzY5MCwxMSBAQCBwcml2YXRlOgogICAgIEhpZGRlblBhZ2VUaHJvdHRs
aW5nQXV0b0luY3JlYXNlc0NvdW50ZXIgbV9oaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFz
ZXNDb3VudGVyOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlByb2Nlc3NQb29sPiBtX2hpZGRlblBh
Z2VUaHJvdHRsaW5nVGltZXI7CiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisgICAgUnVuTG9v
cDo6VGltZXI8V2ViUHJvY2Vzc1Bvb2w+IG1fcmVzZXRHUFVQcm9jZXNzQ3Jhc2hDb3VudFRpbWVy
OworICAgIHVuc2lnbmVkIG1fcmVjZW50R1BVUHJvY2Vzc0NyYXNoQ291bnQgeyAwIH07CisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOU011dGFibGVEaWN0aW9u
YXJ5PiBtX2J1bmRsZVBhcmFtZXRlcnM7CiAgICAgUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRU
b2tlbiBtX3BsdWdpblByb2Nlc3NNYW5hZ2VyUHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRUb2tl
bjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBi
NWIwOWRlYzQxZTgzN2I3NzcyZjU5ZTUyZmJlODJkYmFjNjYxZGI1Li5jZTBlYmEyYTYwZGYyNTUz
OTIyMTc5OTZhOGJhMDJmZWQxOTBjMDM2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMTEtMTEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBUZXJtaW5hdGUgV2ViUHJvY2Vzc2Vz
IGlmIEdQVVByb2Nlc3MgY3Jhc2hlcyBtb3JlIHRoYW4gdHdpY2UgaW4gMzAgc2Vjb25kcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODExCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MTI5MjQyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06CisgICAgICAg
IChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUubW06CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZvcldlYkNv
bnRlbnRQcm9jZXNzRGlkVGVybWluYXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfdGVzdF93
YWl0Rm9yV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGVdKToKKwogMjAyMC0xMS0xMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFVQcm9jZXNzXSBTZWFt
bGVzc2x5IHJlc3VtZSBXZWJBdWRpbyBwbGF5YmFjayBpZiB0aGUgR1BVIFByb2Nlc3MgY3Jhc2hl
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQ
cm9jZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9j
ZXNzLm1tCmluZGV4IGYwN2RhYjhmMmE5OGVhOWVjNzZiOTk1OGM4ODUxNWE2YzZiY2UyYmQuLmIw
NDc1MTE4MjZmNTk5ZGJlNTZmMmY0MDE4NDJlZTE4NTM2NTU4Y2IgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KQEAgLTUxLDYg
KzUxLDcgQEAgVEVTVChHUFVQcm9jZXNzLCBSZWxhdW5jaE9uQ3Jhc2gpCiAgICAgLy8gZXZhbHVh
dGVKYXZhU2NyaXB0IGdpdmVzIHVzIHRoZSB1c2VyIGdlc3R1cmUgd2UgbmVlZCB0byByZWxpYWJs
eSBzdGFydCBhdWRpbyBwbGF5YmFjayBvbiBhbGwgcGxhdGZvcm1zLgogICAgIF9fYmxvY2sgYm9v
bCBkb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnRQ
bGF5aW5nKCkiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikg
eworICAgICAgICBFWFBFQ1RfVFJVRSghZXJyb3IpOwogICAgICAgICBkb25lID0gdHJ1ZTsKICAg
ICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwpAQCAtODksMyArOTAs
MTEwIEBAIFRFU1QoR1BVUHJvY2VzcywgUmVsYXVuY2hPbkNyYXNoKQogICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOwogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IF9pc1Bs
YXlpbmdBdWRpb10pOwogfQorCitURVNUKEdQVVByb2Nlc3MsIFdlYlByb2Nlc3NUZXJtaW5hdGlv
bkFmdGVyVG9vTWFueUdQVVByb2Nlc3NDcmFzaGVzKQoreworICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAg
Zm9yIChfV0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBf
aW50ZXJuYWxEZWJ1Z0ZlYXR1cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1
YWxUb1N0cmluZzpAIlVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQiXSkgeworICAgICAgICAg
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9ySW50ZXJu
YWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgNDAwLCA0MDApIGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVz
dFBhZ2VOYW1lZDpAImF1ZGlvLWNvbnRleHQtcGxheWluZyJdOworCisgICAgLy8gZXZhbHVhdGVK
YXZhU2NyaXB0IGdpdmVzIHVzIHRoZSB1c2VyIGdlc3R1cmUgd2UgbmVlZCB0byByZWxpYWJseSBz
dGFydCBhdWRpbyBwbGF5YmFjayBvbiBhbGwgcGxhdGZvcm1zLgorICAgIF9fYmxvY2sgYm9vbCBk
b25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic3RhcnRQbGF5
aW5nKCkiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgewor
ICAgICAgICBFWFBFQ1RfVFJVRSghZXJyb3IpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgYXV0byB3ZWJW
aWV3UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIGF1dG8qIHBy
b2Nlc3NQb29sID0gY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbDsKKyAgICB1bnNpZ25l
ZCB0aW1lb3V0ID0gMDsKKyAgICB3aGlsZSAoIVtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50
aWZpZXJdICYmIHRpbWVvdXQrKyA8IDEwMCkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
c2xlZXAoMC4xKTsKKworICAgIEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVu
dGlmaWVyXSwgMCk7CisgICAgaWYgKCFbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVy
XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgdGltZW91dCA9IDA7CisgICAgd2hpbGUgKCFbd2Vi
VmlldyBfaXNQbGF5aW5nQXVkaW9dICYmIHRpbWVvdXQrKyA8IDEwMCkKKyAgICAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6c2xlZXAoMC4xKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNQ
bGF5aW5nQXVkaW9dKTsKKworICAgIC8vIEZpcnN0IEdQVVByb2Nlc3Mga2lsbC4KKyAgICBhdXRv
IGdwdVByb2Nlc3NQSUQgPSBbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXTsKKyAg
ICBraWxsKGdwdVByb2Nlc3NQSUQsIDkpOworCisgICAgLy8gV2FpdCBmb3IgR1BVIHByb2Nlc3Mg
dG8gZ2V0IHJlbGF1bmNoZWQuCisgICAgdGltZW91dCA9IDA7CisgICAgd2hpbGUgKCghW3Byb2Nl
c3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0gfHwgW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNz
SWRlbnRpZmllcl0gPT0gZ3B1UHJvY2Vzc1BJRCkgJiYgdGltZW91dCsrIDwgMTAwKQorICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworICAgIEVYUEVDVF9ORShbcHJvY2Vz
c1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSwgMCk7CisgICAgRVhQRUNUX05FKFtwcm9jZXNz
UG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdLCBncHVQcm9jZXNzUElEKTsKKyAgICBncHVQcm9j
ZXNzUElEID0gW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICAvLyBN
YWtlIHN1cmUgdGhlIFdlYlZpZXcncyBXZWJQcm9jZXNzIGRpZCBub3QgY3Jhc2ggb3IgZ2V0IHRl
cm1pbmF0ZWQuCisgICAgRVhQRUNUX0VRKHdlYlZpZXdQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNz
SWRlbnRpZmllcl0pOworCisgICAgLy8gU2Vjb25kIEdQVVByb2Nlc3Mga2lsbC4KKyAgICBraWxs
KGdwdVByb2Nlc3NQSUQsIDkpOworCisgICAgLy8gV2FpdCBmb3IgR1BVIHByb2Nlc3MgdG8gZ2V0
IHJlbGF1bmNoZWQuCisgICAgdGltZW91dCA9IDA7CisgICAgd2hpbGUgKCghW3Byb2Nlc3NQb29s
IF9ncHVQcm9jZXNzSWRlbnRpZmllcl0gfHwgW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRp
Zmllcl0gPT0gZ3B1UHJvY2Vzc1BJRCkgJiYgdGltZW91dCsrIDwgMTAwKQorICAgICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworICAgIEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wg
X2dwdVByb2Nlc3NJZGVudGlmaWVyXSwgMCk7CisgICAgRVhQRUNUX05FKFtwcm9jZXNzUG9vbCBf
Z3B1UHJvY2Vzc0lkZW50aWZpZXJdLCBncHVQcm9jZXNzUElEKTsKKyAgICBncHVQcm9jZXNzUElE
ID0gW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICAvLyBNYWtlIHN1
cmUgdGhlIFdlYlZpZXcncyBXZWJQcm9jZXNzIGRpZCBub3QgY3Jhc2ggb3IgZ2V0IHRlcm1pbmF0
ZWQuCisgICAgRVhQRUNUX0VRKHdlYlZpZXdQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOworCisgICAgLy8gVGhpcmQgR1BVUHJvY2VzcyBraWxsLgorICAgIGtpbGwoZ3B1UHJv
Y2Vzc1BJRCwgOSk7CisKKyAgICAvLyBUaGUgV2ViVmlldydzIFdlYlByb2Nlc3Mgc2hvdWxkIGdl
dCBraWxsZWQgdGhpcyB0aW1lLgorICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JXZWJDb250ZW50
UHJvY2Vzc0RpZFRlcm1pbmF0ZV07CisKKyAgICBFWFBFQ1RfRVEoMCwgW3dlYlZpZXcgX3dlYlBy
b2Nlc3NJZGVudGlmaWVyXSk7CisKKyAgICAvLyBSZWxvYWQgdGhlIHRlc3QgcGFnZS4KKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJhdWRpby1jb250ZXh0LXBs
YXlpbmciXTsKKworICAgIC8vIEF1ZGlvIHNob3VsZCBubyBsb25nZXIgYmUgcGxheWluZy4KKyAg
ICB0aW1lb3V0ID0gMDsKKyAgICB3aGlsZSAoW3dlYlZpZXcgX2lzUGxheWluZ0F1ZGlvXSAmJiB0
aW1lb3V0KysgPCAxMDApCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7
CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IF9pc1BsYXlpbmdBdWRpb10pOworCisgICAgLy8g
TWFudWFsbHkgc3RhcnQgYXVkaW8gcGxheWJhY2sgYWdhaW4uCisgICAgLy8gZXZhbHVhdGVKYXZh
U2NyaXB0IGdpdmVzIHVzIHRoZSB1c2VyIGdlc3R1cmUgd2UgbmVlZCB0byByZWxpYWJseSBzdGFy
dCBhdWRpbyBwbGF5YmFjayBvbiBhbGwgcGxhdGZvcm1zLgorICAgIGRvbmUgPSBmYWxzZTsKKyAg
ICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzdGFydFBsYXlpbmcoKSIgY29tcGxldGlv
bkhhbmRsZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9U
UlVFKCFlcnJvcik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICAvLyBHUFUgUHJvY2VzcyBzaG91bGQgZ2V0
IHJlbGF1bmNoZWQuCisgICAgdGltZW91dCA9IDA7CisgICAgd2hpbGUgKCghW3Byb2Nlc3NQb29s
IF9ncHVQcm9jZXNzSWRlbnRpZmllcl0gfHwgW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRp
Zmllcl0gPT0gZ3B1UHJvY2Vzc1BJRCkgJiYgdGltZW91dCsrIDwgMTAwKQorICAgICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworICAgIEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wg
X2dwdVByb2Nlc3NJZGVudGlmaWVyXSwgMCk7CisgICAgRVhQRUNUX05FKFtwcm9jZXNzUG9vbCBf
Z3B1UHJvY2Vzc0lkZW50aWZpZXJdLCBncHVQcm9jZXNzUElEKTsKKyAgICBncHVQcm9jZXNzUElE
ID0gW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICAvLyBBdWRpbyBz
aG91bGQgYmUgcGxheWluZyBhZ2Fpbi4KKyAgICB0aW1lb3V0ID0gMDsKKyAgICB3aGlsZSAoIVt3
ZWJWaWV3IF9pc1BsYXlpbmdBdWRpb10gJiYgdGltZW91dCsrIDwgMTAwKQorICAgICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IF9p
c1BsYXlpbmdBdWRpb10pOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2Nv
YS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3ROYXZpZ2F0aW9uRGVsZWdhdGUuaAppbmRleCA0MGQ4ODlhYjMzMGY4OTkzZmZiOTlkZDkwM2Zh
YTUzODI1ZGEwNjcxLi4zYmFhYzc5ZmZhOTNkNGVmZjNlNTU5NjJjNjhjZmZlZjE4MzMzZTI2IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdh
dGUuaApAQCAtNTEsNCArNTEsNSBAQAogLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2
aWdhdGlvbjsKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJl
ZmVyZW5jZXM6KFdLV2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAtICh2b2lkKV90
ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aG91dFByZXNlbnRhdGlvblVwZGF0ZTsK
Ky0gKHZvaWQpX3Rlc3Rfd2FpdEZvcldlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlOwogQGVu
ZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRl
bGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVn
YXRlLm1tCmluZGV4IDk3ZjJiMGY2NTUzNTU1MmZhNWYzMjJhMDhkMjUxNzVkNTg2ODcwMzUuLmY1
YjBhMjlmMzI5MjM3NmFlOWU5MjU3OGQ4YWUxM2I4YjMxODQ2ZTEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0KQEAgLTEyNCw2
ICsxMjQsMjAgQEAgLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgogICAgIHNlbGYu
ZGlkRmluaXNoTmF2aWdhdGlvbiA9IG5pbDsKIH0KIAorLSAodm9pZCl3YWl0Rm9yV2ViQ29udGVu
dFByb2Nlc3NEaWRUZXJtaW5hdGUKK3sKKyAgICBFWFBFQ1RfRkFMU0Uoc2VsZi53ZWJDb250ZW50
UHJvY2Vzc0RpZFRlcm1pbmF0ZSk7CisKKyAgICBfX2Jsb2NrIGJvb2wgY3Jhc2hlZCA9IGZhbHNl
OworICAgIHNlbGYud2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUgPSBeKFdLV2ViVmlldyAq
KSB7CisgICAgICAgIGNyYXNoZWQgPSB0cnVlOworICAgIH07CisKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmNyYXNoZWQpOworCisgICAgc2VsZi53ZWJDb250ZW50UHJvY2Vzc0RpZFRl
cm1pbmF0ZSA9IG5pbDsKK30KKwogLSAodm9pZCl3YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbldp
dGhQcmVmZXJlbmNlczooV0tXZWJwYWdlUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogewogICAg
IEVYUEVDVF9GQUxTRShzZWxmLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25XaXRoUHJl
ZmVyZW5jZXMpOwpAQCAtMjA3LDQgKzIyMSwxNSBAQCAtICh2b2lkKV90ZXN0X3dhaXRGb3JEaWRG
aW5pc2hOYXZpZ2F0aW9uCiAjZW5kaWYKIH0KIAorLSAodm9pZClfdGVzdF93YWl0Rm9yV2ViQ29u
dGVudFByb2Nlc3NEaWRUZXJtaW5hdGUKK3sKKyAgICBFWFBFQ1RfRkFMU0Uoc2VsZi5uYXZpZ2F0
aW9uRGVsZWdhdGUpOworCisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIHNlbGYubmF2aWdhdGlv
bkRlbGVnYXRlID0gbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOworICAgIFtuYXZpZ2F0aW9uRGVs
ZWdhdGUgd2FpdEZvcldlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlXTsKKworICAgIHNlbGYu
bmF2aWdhdGlvbkRlbGVnYXRlID0gbmlsOworfQorCiBAZW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413858</attachid>
            <date>2020-11-11 13:31:40 -0800</date>
            <delta_ts>2020-11-11 14:49:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218811-20201111133139.patch</filename>
            <type>text/plain</type>
            <size>14612</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5NDNjODJiMWJiZDgwNWU1
ZjEyN2M0ZDBjNWJmZTViYjc3MzMxNWMuLjNlZDFmZWRjMTkyMzk2MzE5ODRlMTc3ZDdkOTVlZWFk
ZmQxZDQxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMTEtMTEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBUZXJtaW5hdGUgV2ViUHJvY2Vzc2Vz
IGlmIEdQVVByb2Nlc3MgY3Jhc2hlcyBtb3JlIHRoYW4gdHdpY2UgaW4gMzAgc2Vjb25kcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODExCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS83MTI5MjQyND4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgIElmIHRoZSBHUFVQcm9jZXNzIGNyYXNoZXMgbW9yZSB0aGFuIHR3
aWNlIGluIDMwIHNlY29uZHMsIHdlIG5vdyB0ZXJtaW5hdGUgYWxsIFdlYlByb2Nlc3NlcworICAg
ICAgICB0byB0cnkgYW5kIGdldCBiYWNrIGludG8gYSBnb29kIHN0YXRlLiBUaGlzIGlzIHRvIGF2
b2lkIGdldHRpbmcgaW50byBhIHNpdHVhdGlvbiB3aGVyZQorICAgICAgICB0aGUgR1BVUHJvY2Vz
cyBpcyBjcmFzaCBsb29waW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3NQcm94eTo6dGVy
bWluYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z3B1UHJvY2Vzc0NyYXNoZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVzZXRHUFVQcm9jZXNzQ3Jhc2hDb3VudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVBbGxXZWJDb250ZW50UHJvY2Vz
c2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKwogMjAyMC0xMS0x
MSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IERlZmluZSBVU0UoTEVHQUNZX0NGTkVUV09SS19ET1dOTE9BRFMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkNDU2ZTA1OTRm
MzRkZjZkMjc0ZGE3MmQ2M2NiMmFmNWIwNmZlZDU1Li4yZWRmY2U1NTVhMjNhNTAwODE0NzFmMWQ5
Y2U2OTYyOTQ1MTE4YTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhp
bGlhcnlQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGls
aWFyeVByb2Nlc3NQcm94eS5jcHAKQEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIEF1eGlsaWFyeVBy
b2Nlc3NQcm94eTo6Y29ubmVjdCgpCiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Ojp0ZXJt
aW5hdGUoKQogeworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3MsICJBdXhpbGlhcnlQcm9jZXNzUHJv
eHk6OnRlcm1pbmF0ZTogUElEOiAlZCIsIHByb2Nlc3NJZGVudGlmaWVyKCkpOworCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgaWYgKG1fY29ubmVjdGlvbiAmJiBtX2Nvbm5lY3Rpb24tPmtpbGwo
KSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCmluZGV4IDYzNDgwMGIyODgzMjBiZjk0NzI0NjkzNjdhOWE0MjIzZmYyM2IzNGYuLjJi
YWQ0YWNlYzViNDk1YjM0MTBkNTNiMTI5N2NhZGYxNTM0YTBmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTE1Nyw3ICsxNTcsMTIgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIERFRklORV9ERUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNv
dW50ZWRMZWFrQ291bnRlciwgcHJvY2Vzc1Bvb2xDb3VudGVyLCAoIldlYlByb2Nlc3NQb29sIikp
OwogCi1jb25zdCBTZWNvbmRzIHNlcnZpY2VXb3JrZXJUZXJtaW5hdGlvbkRlbGF5IHsgNV9zIH07
Citjb25zdGV4cHIgU2Vjb25kcyBzZXJ2aWNlV29ya2VyVGVybWluYXRpb25EZWxheSB7IDVfcyB9
OworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorY29uc3RleHByIFNlY29uZHMgcmVzZXRHUFVQ
cm9jZXNzQ3Jhc2hDb3VudERlbGF5IHsgMzBfcyB9OworY29uc3RleHByIHVuc2lnbmVkIG1heGlt
dW1HUFVQcm9jZXNzUmVsYXVuY2hBdHRlbXB0c0JlZm9yZUtpbGxpbmdXZWJQcm9jZXNzZXMgeyAy
IH07CisjZW5kaWYKIAogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTGlzdGVuZXJJZGVudGlmaWVy
KCkKIHsKQEAgLTI2MCw2ICsyNjUsOSBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2wo
QVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX3By
b2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkRm9yUGFnZUNvdW50ZXIoW3RoaXNdKFJlZkNvdW50ZXJF
dmVudCkgeyB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZSgpOyB9KQogICAgICwgbV9oaWRk
ZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXNDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZl
bnQpIHsgbV9oaWRkZW5QYWdlVGhyb3R0bGluZ1RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOyB9KQog
ICAgICwgbV9oaWRkZW5QYWdlVGhyb3R0bGluZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywg
JldlYlByb2Nlc3NQb29sOjp1cGRhdGVIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZUxp
bWl0KQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICAsIG1fcmVzZXRHUFVQcm9jZXNzQ3Jh
c2hDb3VudFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYlByb2Nlc3NQb29sOjpyZXNl
dEdQVVByb2Nlc3NDcmFzaENvdW50KQorI2VuZGlmCiAgICAgLCBtX2ZvcmVncm91bmRXZWJQcm9j
ZXNzQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50KSB7IHVwZGF0ZVByb2Nlc3NBc3NlcnRp
b25zKCk7IH0pCiAgICAgLCBtX2JhY2tncm91bmRXZWJQcm9jZXNzQ291bnRlcihbdGhpc10oUmVm
Q291bnRlckV2ZW50KSB7IHVwZGF0ZVByb2Nlc3NBc3NlcnRpb25zKCk7IH0pCiAgICAgLCBtX2Jh
Y2tGb3J3YXJkQ2FjaGUobWFrZVVuaXF1ZVJlZjxXZWJCYWNrRm9yd2FyZENhY2hlPigqdGhpcykp
CkBAIC00ODgsNiArNDk2LDcgQEAgR1BVUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5z
dXJlR1BVUHJvY2VzcygpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdwdVByb2Nlc3NDcmFzaGVk
KFByb2Nlc3NJRCBpZGVudGlmaWVyKQogeworICAgIFdFQlBST0NFU1NQT09MX1JFTEVBU0VfTE9H
X0VSUk9SKFByb2Nlc3MsICJncHVQcm9jZXNzQ3Jhc2hlZDogUElEOiAlZCIsIGlkZW50aWZpZXIp
OwogICAgIG1fZ3B1UHJvY2VzcyA9IG51bGxwdHI7CiAKICAgICBtX2NsaWVudC5ncHVQcm9jZXNz
RGlkQ3Jhc2godGhpcywgaWRlbnRpZmllcik7CkBAIC00OTUsNyArNTA0LDE4IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmdwdVByb2Nlc3NDcmFzaGVkKFByb2Nlc3NJRCBpZGVudGlmaWVyKQogICAg
IGZvciAoYXV0byYgcHJvY2VzcyA6IHByb2Nlc3NlcykKICAgICAgICAgcHJvY2Vzcy0+Z3B1UHJv
Y2Vzc0NyYXNoZWQoKTsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY29uc2lkZXIgdGVybWlu
YXRpbmcgYWxsIFdlYlByb2Nlc3NlcyB3aGVuZXZlciB0aGUgR1BVUHJvY2VzcyBjcmFzaGVzIHNl
dmVyYWwgdGltZXMgaW4gYSBzaG9ydCBhbW91bnQgb2YgdGltZS4KKyAgICBpZiAoKyttX3JlY2Vu
dEdQVVByb2Nlc3NDcmFzaENvdW50ID4gbWF4aW11bUdQVVByb2Nlc3NSZWxhdW5jaEF0dGVtcHRz
QmVmb3JlS2lsbGluZ1dlYlByb2Nlc3NlcykgeworICAgICAgICBXRUJQUk9DRVNTUE9PTF9SRUxF
QVNFX0xPR19FUlJPUihQcm9jZXNzLCAiZ3B1UHJvY2Vzc0NyYXNoZWQ6IEdQVSBQcm9jZXNzIGhh
cyBjcmFzaGVkIG1vcmUgdGhhbiAldSB0aW1lcyBpbiB0aGUgbGFzdCAlZyBzZWNvbmRzLCB0ZXJt
aW5hdGluZyBhbGwgV2ViUHJvY2Vzc2VzIiwgbWF4aW11bUdQVVByb2Nlc3NSZWxhdW5jaEF0dGVt
cHRzQmVmb3JlS2lsbGluZ1dlYlByb2Nlc3NlcywgcmVzZXRHUFVQcm9jZXNzQ3Jhc2hDb3VudERl
bGF5LnNlY29uZHMoKSk7CisgICAgICAgIG1fcmVzZXRHUFVQcm9jZXNzQ3Jhc2hDb3VudFRpbWVy
LnN0b3AoKTsKKyAgICAgICAgbV9yZWNlbnRHUFVQcm9jZXNzQ3Jhc2hDb3VudCA9IDA7CisgICAg
ICAgIHRlcm1pbmF0ZUFsbFdlYkNvbnRlbnRQcm9jZXNzZXMoKTsKKyAgICB9IGVsc2UgaWYgKCFt
X3Jlc2V0R1BVUHJvY2Vzc0NyYXNoQ291bnRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3Jl
c2V0R1BVUHJvY2Vzc0NyYXNoQ291bnRUaW1lci5zdGFydE9uZVNob3QocmVzZXRHUFVQcm9jZXNz
Q3Jhc2hDb3VudERlbGF5KTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVzZXRHUFVQcm9j
ZXNzQ3Jhc2hDb3VudCgpCit7CisgICAgbV9yZWNlbnRHUFVQcm9jZXNzQ3Jhc2hDb3VudCA9IDA7
CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKFdlYlBy
b2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRHUFVQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBAIC0xNDUxLDYg
KzE0NzEsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzdG9wTWVtb3J5U2FtcGxlcigpCiAKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnRlcm1pbmF0ZUFsbFdlYkNvbnRlbnRQcm9jZXNzZXMoKQogewor
ICAgIFdFQlBST0NFU1NQT09MX1JFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJ0ZXJtaW5hdGVB
bGxXZWJDb250ZW50UHJvY2Vzc2VzIik7CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJQcm9jZXNzUHJv
eHk+PiBwcm9jZXNzZXMgPSBtX3Byb2Nlc3NlczsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBw
cm9jZXNzZXMpCiAgICAgICAgIHByb2Nlc3MtPnRlcm1pbmF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggOWNmZTZkNDcwZmNhYzIwZTJkYWQwMjBkNDQ1
ODNmMmE3NjY4MjY5Mi4uOWUwMmI0NmUzODQ5NjIxMTQ4NGJiYzk2ZDk1N2JhZGM2MTQ5Mzc0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0zNTUsNiArMzU1
LDggQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIHZvaWQgZ3B1UHJv
Y2Vzc0NyYXNoZWQoUHJvY2Vzc0lEKTsKKyAgICB2b2lkIHJlc2V0R1BVUHJvY2Vzc0NyYXNoQ291
bnQoKTsKKwogICAgIHZvaWQgZ2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5
JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb25EZWxh
eWVkUmVwbHkmJik7CiAKICAgICBHUFVQcm9jZXNzUHJveHkmIGVuc3VyZUdQVVByb2Nlc3MoKTsK
QEAgLTY4OCw2ICs2OTAsMTEgQEAgcHJpdmF0ZToKICAgICBIaWRkZW5QYWdlVGhyb3R0bGluZ0F1
dG9JbmNyZWFzZXNDb3VudGVyIG1faGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzQ291
bnRlcjsKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJQcm9jZXNzUG9vbD4gbV9oaWRkZW5QYWdlVGhy
b3R0bGluZ1RpbWVyOwogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIFJ1bkxvb3A6OlRp
bWVyPFdlYlByb2Nlc3NQb29sPiBtX3Jlc2V0R1BVUHJvY2Vzc0NyYXNoQ291bnRUaW1lcjsKKyAg
ICB1bnNpZ25lZCBtX3JlY2VudEdQVVByb2Nlc3NDcmFzaENvdW50IHsgMCB9OworI2VuZGlmCisK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlvbmFyeT4g
bV9idW5kbGVQYXJhbWV0ZXJzOwogICAgIFByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkVG9rZW4g
bV9wbHVnaW5Qcm9jZXNzTWFuYWdlclByb2Nlc3NTdXBwcmVzc2lvbkRpc2FibGVkVG9rZW47CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWFlOTRi
MTAwNzUyMThkMzlkYzMxZGNmYjA0NmFhODY1Yjk1MTE2Yi4uNjdlY2RiNTUxNjI4NWJjNTlhYjZl
NWUwNTYwNGMzNWFjNzY1MjY3MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTExLTExICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGVybWluYXRlIFdlYlByb2Nlc3NlcyBpZiBH
UFVQcm9jZXNzIGNyYXNoZXMgbW9yZSB0aGFuIHR3aWNlIGluIDMwIHNlY29uZHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODgxMQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzEyOTI0MjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRv
bi4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW06CisgICAgICAgIChURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW06
CisgICAgICAgICgtW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZvcldlYkNvbnRlbnRQcm9j
ZXNzRGlkVGVybWluYXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfdGVzdF93YWl0Rm9yV2Vi
Q29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGVdKToKKwogMjAyMC0xMS0xMSAgQWFrYXNoIEphaW4g
IDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2J1aWxkLndlYmtpdC5vcmddIFVw
ZGF0ZSBDaGVja091dFNvdXJjZSBzdGVwIGZvciBuZXcgYnVpbGRib3QKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BVUHJvY2Vzcy5tbQppbmRleCBmMDdk
YWI4ZjJhOThlYTllYzc2Yjk5NThjODg1MTVhNmM2YmNlMmJkLi5iMDQ3NTExODI2ZjU5OWRiZTU2
ZjJmNDAxODQyZWUxODUzNjU1OGNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0dQVVByb2Nlc3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCkBAIC01MSw2ICs1MSw3IEBAIFRFU1QoR1BV
UHJvY2VzcywgUmVsYXVuY2hPbkNyYXNoKQogICAgIC8vIGV2YWx1YXRlSmF2YVNjcmlwdCBnaXZl
cyB1cyB0aGUgdXNlciBnZXN0dXJlIHdlIG5lZWQgdG8gcmVsaWFibHkgc3RhcnQgYXVkaW8gcGxh
eWJhY2sgb24gYWxsIHBsYXRmb3Jtcy4KICAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOwog
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0UGxheWluZygpIiBjb21wbGV0
aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNU
X1RSVUUoIWVycm9yKTsKICAgICAgICAgZG9uZSA9IHRydWU7CiAgICAgfV07CiAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKQEAgLTg5LDMgKzkwLDExMCBAQCBURVNUKEdQVVBy
b2Nlc3MsIFJlbGF1bmNoT25DcmFzaCkKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c2xl
ZXAoMC4xKTsKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNQbGF5aW5nQXVkaW9dKTsKIH0K
KworVEVTVChHUFVQcm9jZXNzLCBXZWJQcm9jZXNzVGVybWluYXRpb25BZnRlclRvb01hbnlHUFVQ
cm9jZXNzQ3Jhc2hlcykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGZvciAoX1dLSW50ZXJuYWxE
ZWJ1Z0ZlYXR1cmUgKmZlYXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2ludGVybmFsRGVidWdGZWF0
dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJVc2VH
UFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIl0pIHsKKyAgICAgICAgICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6WUVTIGZvckludGVybmFsRGVidWdGZWF0dXJlOmZl
YXR1cmVdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0
KCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJhdWRp
by1jb250ZXh0LXBsYXlpbmciXTsKKworICAgIC8vIGV2YWx1YXRlSmF2YVNjcmlwdCBnaXZlcyB1
cyB0aGUgdXNlciBnZXN0dXJlIHdlIG5lZWQgdG8gcmVsaWFibHkgc3RhcnQgYXVkaW8gcGxheWJh
Y2sgb24gYWxsIHBsYXRmb3Jtcy4KKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInN0YXJ0UGxheWluZygpIiBjb21wbGV0aW9u
SGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX1RS
VUUoIWVycm9yKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGF1dG8gd2ViVmlld1BJRCA9IFt3ZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICBhdXRvKiBwcm9jZXNzUG9vbCA9IGNvbmZp
Z3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2w7CisgICAgdW5zaWduZWQgdGltZW91dCA9IDA7Cisg
ICAgd2hpbGUgKCFbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlmaWVyXSAmJiB0aW1lb3V0
KysgPCAxMDApCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKDAuMSk7CisKKyAg
ICBFWFBFQ1RfTkUoW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0sIDApOworICAg
IGlmICghW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl0pCisgICAgICAgIHJldHVy
bjsKKworICAgIHRpbWVvdXQgPSAwOworICAgIHdoaWxlICghW3dlYlZpZXcgX2lzUGxheWluZ0F1
ZGlvXSAmJiB0aW1lb3V0KysgPCAxMDApCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNs
ZWVwKDAuMSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgX2lzUGxheWluZ0F1ZGlvXSk7CisK
KyAgICAvLyBGaXJzdCBHUFVQcm9jZXNzIGtpbGwuCisgICAgYXV0byBncHVQcm9jZXNzUElEID0g
W3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRpZmllcl07CisgICAga2lsbChncHVQcm9jZXNz
UElELCA5KTsKKworICAgIC8vIFdhaXQgZm9yIEdQVSBwcm9jZXNzIHRvIGdldCByZWxhdW5jaGVk
LgorICAgIHRpbWVvdXQgPSAwOworICAgIHdoaWxlICgoIVtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vz
c0lkZW50aWZpZXJdIHx8IFtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdID09IGdw
dVByb2Nlc3NQSUQpICYmIHRpbWVvdXQrKyA8IDEwMCkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6c2xlZXAoMC4xKTsKKyAgICBFWFBFQ1RfTkUoW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNz
SWRlbnRpZmllcl0sIDApOworICAgIEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJ
ZGVudGlmaWVyXSwgZ3B1UHJvY2Vzc1BJRCk7CisgICAgZ3B1UHJvY2Vzc1BJRCA9IFtwcm9jZXNz
UG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgLy8gTWFrZSBzdXJlIHRoZSBXZWJW
aWV3J3MgV2ViUHJvY2VzcyBkaWQgbm90IGNyYXNoIG9yIGdldCB0ZXJtaW5hdGVkLgorICAgIEVY
UEVDVF9FUSh3ZWJWaWV3UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKKwor
ICAgIC8vIFNlY29uZCBHUFVQcm9jZXNzIGtpbGwuCisgICAga2lsbChncHVQcm9jZXNzUElELCA5
KTsKKworICAgIC8vIFdhaXQgZm9yIEdQVSBwcm9jZXNzIHRvIGdldCByZWxhdW5jaGVkLgorICAg
IHRpbWVvdXQgPSAwOworICAgIHdoaWxlICgoIVtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50
aWZpZXJdIHx8IFtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdID09IGdwdVByb2Nl
c3NQSUQpICYmIHRpbWVvdXQrKyA8IDEwMCkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
c2xlZXAoMC4xKTsKKyAgICBFWFBFQ1RfTkUoW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRp
Zmllcl0sIDApOworICAgIEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlm
aWVyXSwgZ3B1UHJvY2Vzc1BJRCk7CisgICAgZ3B1UHJvY2Vzc1BJRCA9IFtwcm9jZXNzUG9vbCBf
Z3B1UHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgLy8gTWFrZSBzdXJlIHRoZSBXZWJWaWV3J3Mg
V2ViUHJvY2VzcyBkaWQgbm90IGNyYXNoIG9yIGdldCB0ZXJtaW5hdGVkLgorICAgIEVYUEVDVF9F
USh3ZWJWaWV3UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKKworICAgIC8v
IFRoaXJkIEdQVVByb2Nlc3Mga2lsbC4KKyAgICBraWxsKGdwdVByb2Nlc3NQSUQsIDkpOworCisg
ICAgLy8gVGhlIFdlYlZpZXcncyBXZWJQcm9jZXNzIHNob3VsZCBnZXQga2lsbGVkIHRoaXMgdGlt
ZS4KKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yV2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5h
dGVdOworCisgICAgRVhQRUNUX0VRKDAsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0p
OworCisgICAgLy8gUmVsb2FkIHRoZSB0ZXN0IHBhZ2UuCisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiYXVkaW8tY29udGV4dC1wbGF5aW5nIl07CisKKyAgICAv
LyBBdWRpbyBzaG91bGQgbm8gbG9uZ2VyIGJlIHBsYXlpbmcuCisgICAgdGltZW91dCA9IDA7Cisg
ICAgd2hpbGUgKFt3ZWJWaWV3IF9pc1BsYXlpbmdBdWRpb10gJiYgdGltZW91dCsrIDwgMTAwKQor
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgwLjEpOworICAgIEVYUEVDVF9GQUxT
RShbd2ViVmlldyBfaXNQbGF5aW5nQXVkaW9dKTsKKworICAgIC8vIE1hbnVhbGx5IHN0YXJ0IGF1
ZGlvIHBsYXliYWNrIGFnYWluLgorICAgIC8vIGV2YWx1YXRlSmF2YVNjcmlwdCBnaXZlcyB1cyB0
aGUgdXNlciBnZXN0dXJlIHdlIG5lZWQgdG8gcmVsaWFibHkgc3RhcnQgYXVkaW8gcGxheWJhY2sg
b24gYWxsIHBsYXRmb3Jtcy4KKyAgICBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgZXZhbHVh
dGVKYXZhU2NyaXB0OkAic3RhcnRQbGF5aW5nKCkiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVz
dWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfVFJVRSghZXJyb3IpOworICAg
ICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOworCisgICAgLy8gR1BVIFByb2Nlc3Mgc2hvdWxkIGdldCByZWxhdW5jaGVkLgorICAg
IHRpbWVvdXQgPSAwOworICAgIHdoaWxlICgoIVtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50
aWZpZXJdIHx8IFtwcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdID09IGdwdVByb2Nl
c3NQSUQpICYmIHRpbWVvdXQrKyA8IDEwMCkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
c2xlZXAoMC4xKTsKKyAgICBFWFBFQ1RfTkUoW3Byb2Nlc3NQb29sIF9ncHVQcm9jZXNzSWRlbnRp
Zmllcl0sIDApOworICAgIEVYUEVDVF9ORShbcHJvY2Vzc1Bvb2wgX2dwdVByb2Nlc3NJZGVudGlm
aWVyXSwgZ3B1UHJvY2Vzc1BJRCk7CisgICAgZ3B1UHJvY2Vzc1BJRCA9IFtwcm9jZXNzUG9vbCBf
Z3B1UHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgLy8gQXVkaW8gc2hvdWxkIGJlIHBsYXlpbmcg
YWdhaW4uCisgICAgdGltZW91dCA9IDA7CisgICAgd2hpbGUgKCFbd2ViVmlldyBfaXNQbGF5aW5n
QXVkaW9dICYmIHRpbWVvdXQrKyA8IDEwMCkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
c2xlZXAoMC4xKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBfaXNQbGF5aW5nQXVkaW9dKTsK
K30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZS5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVn
YXRlLmgKaW5kZXggNDBkODg5YWIzMzBmODk5M2ZmYjk5ZGQ5MDNmYWE1MzgyNWRhMDY3MS4uM2Jh
YWM3OWZmYTkzZDRlZmYzZTU1OTYyYzY4Y2ZmZWYxODMzM2UyNiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgKQEAgLTUxLDQgKzUx
LDUgQEAKIC0gKHZvaWQpX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb247CiAtICh2b2lk
KV90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uV2l0aFByZWZlcmVuY2VzOihXS1dlYnBh
Z2VQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2VzOwogLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmlu
aXNoTmF2aWdhdGlvbldpdGhvdXRQcmVzZW50YXRpb25VcGRhdGU7CistICh2b2lkKV90ZXN0X3dh
aXRGb3JXZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQppbmRleCA5N2Yy
YjBmNjU1MzU1NTJmYTVmMzIyYTA4ZDI1MTc1ZDU4Njg3MDM1Li5mNWIwYTI5ZjMyOTIzNzZhZTll
OTI1NzhkOGFlMTNiOGIzMTg0NmUxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2Nv
Y29hL1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCkBAIC0xMjQsNiArMTI0LDIwIEBAIC0gKHZv
aWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb24KICAgICBzZWxmLmRpZEZpbmlzaE5hdmlnYXRp
b24gPSBuaWw7CiB9CiAKKy0gKHZvaWQpd2FpdEZvcldlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWlu
YXRlCit7CisgICAgRVhQRUNUX0ZBTFNFKHNlbGYud2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5h
dGUpOworCisgICAgX19ibG9jayBib29sIGNyYXNoZWQgPSBmYWxzZTsKKyAgICBzZWxmLndlYkNv
bnRlbnRQcm9jZXNzRGlkVGVybWluYXRlID0gXihXS1dlYlZpZXcgKikgeworICAgICAgICBjcmFz
aGVkID0gdHJ1ZTsKKyAgICB9OworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjcmFz
aGVkKTsKKworICAgIHNlbGYud2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGUgPSBuaWw7Cit9
CisKIC0gKHZvaWQpd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25XaXRoUHJlZmVyZW5jZXM6KFdL
V2VicGFnZVByZWZlcmVuY2VzICopcHJlZmVyZW5jZXMKIHsKICAgICBFWFBFQ1RfRkFMU0Uoc2Vs
Zi5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uV2l0aFByZWZlcmVuY2VzKTsKQEAgLTIw
Nyw0ICsyMjEsMTUgQEAgLSAodm9pZClfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbgog
I2VuZGlmCiB9CiAKKy0gKHZvaWQpX3Rlc3Rfd2FpdEZvcldlYkNvbnRlbnRQcm9jZXNzRGlkVGVy
bWluYXRlCit7CisgICAgRVhQRUNUX0ZBTFNFKHNlbGYubmF2aWdhdGlvbkRlbGVnYXRlKTsKKwor
ICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0ZSA9IG5hdmln
YXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdhaXRGb3JXZWJD
b250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZV07CisKKyAgICBzZWxmLm5hdmlnYXRpb25EZWxlZ2F0
ZSA9IG5pbDsKK30KKwogQGVuZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>