<?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>202713</bug_id>
          
          <creation_ts>2019-10-08 17:10:23 -0700</creation_ts>
          <short_desc>Web Inspector: Timelines: don&apos;t call willDispatchEvent/didDispatchEvent unless there is a listener for the event</short_desc>
          <delta_ts>2019-10-10 11:05:31 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=202487</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1578025</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-08 17:10:23 -0700</bug_when>
    <thetext>`EventTarget::fireEventListeners` will early return if there are no event listeners for the type of the event being dispatched.  This is not the case for `DOMWindow::dispatchEvent`, which always attempts to dispatch both the capturing and bubbling phase of the event regardless of whether there are any event listeners for the dispatched event&apos;s type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578033</commentid>
    <comment_count>1</comment_count>
      <attachid>380485</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-08 17:47:38 -0700</bug_when>
    <thetext>Created attachment 380485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578043</commentid>
    <comment_count>2</comment_count>
      <attachid>380485</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-08 18:45:52 -0700</bug_when>
    <thetext>Comment on attachment 380485
Patch

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

&gt; Source/WebCore/page/DOMWindow.cpp:2182
&gt; +    if (!hasEventListeners(event.type()))

This does not look right to me, given that firing an animationend event may cause a webkitAnimationEnd event listener to get called. See legacyType() in EventTarget.cpp, called from EventTarget::fireEventListeners().
When it comes to DOM / HTML objects, I would discourage from doing such things unless the spec explicitly states it is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578046</commentid>
    <comment_count>3</comment_count>
      <attachid>380485</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-08 18:53:51 -0700</bug_when>
    <thetext>Comment on attachment 380485
Patch

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

&gt;&gt; Source/WebCore/page/DOMWindow.cpp:2182
&gt;&gt; +    if (!hasEventListeners(event.type()))
&gt; 
&gt; This does not look right to me, given that firing an animationend event may cause a webkitAnimationEnd event listener to get called. See legacyType() in EventTarget.cpp, called from EventTarget::fireEventListeners().
&gt; When it comes to DOM / HTML objects, I would discourage from doing such things unless the spec explicitly states it is OK.

Seems like this would also be Web observable, if the JS calls dispatchEvent() on a window (which does not have a listener for |type|, then it would previously set the event&apos;s target to window. After your change, it would fail to update the Event&apos;s target, which the page&apos;s JS could observe by checking event.target after dispatching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578257</commentid>
    <comment_count>4</comment_count>
      <attachid>380485</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-09 09:28:07 -0700</bug_when>
    <thetext>Comment on attachment 380485
Patch

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

&gt;&gt;&gt; Source/WebCore/page/DOMWindow.cpp:2182
&gt;&gt;&gt; +    if (!hasEventListeners(event.type()))
&gt;&gt; 
&gt;&gt; This does not look right to me, given that firing an animationend event may cause a webkitAnimationEnd event listener to get called. See legacyType() in EventTarget.cpp, called from EventTarget::fireEventListeners().
&gt;&gt; When it comes to DOM / HTML objects, I would discourage from doing such things unless the spec explicitly states it is OK.
&gt; 
&gt; Seems like this would also be Web observable, if the JS calls dispatchEvent() on a window (which does not have a listener for |type|, then it would previously set the event&apos;s target to window. After your change, it would fail to update the Event&apos;s target, which the page&apos;s JS could observe by checking event.target after dispatching.

That&apos;s a good point.  I didn&apos;t think about events or &quot;legacy&quot; events.  I&apos;ll make this patch more specific to Web Inspector.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578258</commentid>
    <comment_count>5</comment_count>
      <attachid>380485</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-09 09:28:23 -0700</bug_when>
    <thetext>Comment on attachment 380485
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/page/DOMWindow.cpp:2182
&gt;&gt;&gt;&gt; +    if (!hasEventListeners(event.type()))
&gt;&gt;&gt; 
&gt;&gt;&gt; This does not look right to me, given that firing an animationend event may cause a webkitAnimationEnd event listener to get called. See legacyType() in EventTarget.cpp, called from EventTarget::fireEventListeners().
&gt;&gt;&gt; When it comes to DOM / HTML objects, I would discourage from doing such things unless the spec explicitly states it is OK.
&gt;&gt; 
&gt;&gt; Seems like this would also be Web observable, if the JS calls dispatchEvent() on a window (which does not have a listener for |type|, then it would previously set the event&apos;s target to window. After your change, it would fail to update the Event&apos;s target, which the page&apos;s JS could observe by checking event.target after dispatching.
&gt; 
&gt; That&apos;s a good point.  I didn&apos;t think about events or &quot;legacy&quot; events.  I&apos;ll make this patch more specific to Web Inspector.  Thanks!

s/events/custom</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578278</commentid>
    <comment_count>6</comment_count>
      <attachid>380539</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-10-09 10:10:36 -0700</bug_when>
    <thetext>Created attachment 380539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578703</commentid>
    <comment_count>7</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-10-10 09:58:12 -0700</bug_when>
    <thetext>Can we get this reviewed and landed today?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578707</commentid>
    <comment_count>8</comment_count>
      <attachid>380539</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-10-10 10:10:12 -0700</bug_when>
    <thetext>Comment on attachment 380539
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578708</commentid>
    <comment_count>9</comment_count>
      <attachid>380539</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-10-10 10:12:55 -0700</bug_when>
    <thetext>Comment on attachment 380539
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578732</commentid>
    <comment_count>10</comment_count>
      <attachid>380539</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-10 11:04:52 -0700</bug_when>
    <thetext>Comment on attachment 380539
Patch

Clearing flags on attachment: 380539

Committed r250977: &lt;https://trac.webkit.org/changeset/250977&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578733</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-10 11:04:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578735</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-10 11:05:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/56161305&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380485</attachid>
            <date>2019-10-08 17:47:38 -0700</date>
            <delta_ts>2019-10-09 10:10:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202713-20191008174738.patch</filename>
            <type>text/plain</type>
            <size>12476</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMjc3ZDM0NDI4M2Q2YWM1MGU3ZGYzN2EwMDhhZjJkMTU0YTY3NDJmLi4x
MTE5NjMxNmZjMDg3OTgzODg4YjE5YTIzZWViOTg1NjJjM2QyY2Y3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzcgQEAKKzIwMTktMTAtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIERvbid0IGF0dGVtcHQgdG8gZGlzcGF0Y2ggYW4gZXZlbnQgZnJvbSB0aGUg
d2luZG93IGlmIHRoZXJlIGFyZSBubyBsaXN0ZW5lcnMgZm9yIGl0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI3MTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyBmYWlsaW5nIGluc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1yZWNvcmRpbmcuaHRtbCBhZnRlciByMjUwNjcyLiBUaGlzIHdhcyBi
ZWNhdXNlIHRoZQorICAgICAgICBgSW5zcGVjdG9yVGltZWxpbmVBZ2VudGAgZXhwZWN0ZWQgYSBj
b3JyZXNwb25kaW5nIGB3aWxsRGlzcGF0Y2hFdmVudGAgYmVmb3JlIGl0IHdhcyB0b2xkCisgICAg
ICAgIGFib3V0IHRoZSBgZGlkRGlzcGF0Y2hFdmVudGAsIHdoaWNoIHdhc24ndCBoYXBwZW5pbmcg
c2luY2Ugb25seSBgd2lsbERpc3BhdGNoRXZlbnRgIHdvdWxkCisgICAgICAgIGVhcmx5LXJldHVy
biBpZiB0aGUgYERPTVdpbmRvd2AgZGlkbid0IGhhdmUgYW55IGV2ZW50IGxpc3RlbmVycyBmb3Ig
dGhlIGRpc3BhdGNoZWQgZXZlbnQuIEJ5CisgICAgICAgIG1ha2luZyB0aGUgYERPTVdpbmRvdzo6
ZGlzcGF0Y2hFdmVudGAgaXRzZWxmIGVhcmx5LXJldHVybiBpbiB0aGF0IGNhc2UsIGl0IG5vdyBo
YW5kbGVzIGJvdGgKKyAgICAgICAgYHdpbGxEaXNwYXRjaEV2ZW50YCBhbmQgYGRpZERpc3BhdGNo
RXZlbnRgLCBlbnN1cmluZyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBjYWxsZWQgaW4gcGFpcnMuCisK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3c6OmRpc3BhdGNoRXZlbnQpOgorCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0Ojppbm5lckludm9rZUV2ZW50TGlzdGVuZXJzKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxE
aXNwYXRjaEV2ZW50T25XaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50T25XaW5kb3cpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudEltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50SW1wbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2
ZW50T25XaW5kb3dJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93SW1wbCk6CisgICAgICAgIGBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50SW1wbGAgd2FzIGFsd2F5cyBjYWxsZWQg
d2l0aCBgaGFzRXZlbnRMaXN0ZW5lcnNgCisgICAgICAgIGFzIGB0cnVlYCwgc28gdGhlcmUncyBu
byByZWFzb24gdG8ga2VlcCB0aGF0IHBhcmFtZXRlciBhcm91bmQuIFNpbWlsYXJseSwgdGhlIGVw
b255bW91cworICAgICAgICBjaGFuZ2UgaW5zaWRlIGBET01XaW5kb3c6OmRpc3BhdGNoRXZlbnRg
IHdpbGwgbWFrZSBpdCBzbyB0aGF0IHRoZSBzYW1lIGlzIHRydWUgZm9yCisgICAgICAgIGBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsYCBhcyB3
ZWxsLgorCiAyMDE5LTEwLTA4ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNZWRpYVN0cmVhbVRyYWNrIHNob3VsZCBiZSBhIFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q2xpZW50IGluc3RlYWQgb2YgTWVkaWFTdHJlYW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3Bw
CmluZGV4IGZiMTdkM2NkNjc2ZThiZmU3OGJjMzUwMmU2YWQ3MTIzZTNjMzhjZTAuLjI4OGNmYjc0
NGQzMDdmNDY5NDUwYjcxNjg0ODVhZWJhOWQ4MjU1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0LmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgRXZlbnRUYXJnZXQ6OmlubmVySW52b2tl
RXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50LCBFdmVudExpc3RlbmVyVmVjdG9yIGxpCiAgICAg
YXV0byYgY29udGV4dCA9ICpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgYm9vbCBjb250
ZXh0SXNEb2N1bWVudCA9IGlzPERvY3VtZW50Pihjb250ZXh0KTsKICAgICBpZiAoY29udGV4dElz
RG9jdW1lbnQpCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNo
RXZlbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLCBldmVudCwgdHJ1ZSk7CisgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnQoZG93bmNhc3Q8RG9j
dW1lbnQ+KGNvbnRleHQpLCBldmVudCk7CiAKICAgICBmb3IgKGF1dG8mIHJlZ2lzdGVyZWRMaXN0
ZW5lciA6IGxpc3RlbmVycykgewogICAgICAgICBpZiAoVU5MSUtFTFkocmVnaXN0ZXJlZExpc3Rl
bmVyLT53YXNSZW1vdmVkKCkpKQpAQCAtMzIyLDcgKzMyMiw3IEBAIHZvaWQgRXZlbnRUYXJnZXQ6
OmlubmVySW52b2tlRXZlbnRMaXN0ZW5lcnMoRXZlbnQmIGV2ZW50LCBFdmVudExpc3RlbmVyVmVj
dG9yIGxpCiAgICAgfQogCiAgICAgaWYgKGNvbnRleHRJc0RvY3VtZW50KQotICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoRXZlbnQoZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQpLCBldmVudC5kZWZhdWx0UHJldmVudGVkKCkpOworICAgICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoRXZlbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRl
eHQpLCBldmVudCk7CiB9CiAKIFZlY3RvcjxBdG9tU3RyaW5nPiBFdmVudFRhcmdldDo6ZXZlbnRU
eXBlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCmluZGV4IGYwNTIxZmUxNGM3NTMzZGUxOTQwNWJlYzFiN2NlNDY1Njc0
NjFmNTIuLjQzM2YyZTc0MDgxZWM5ZmZjYTk3ZmFlNzEwYTJjNjhlZTQ3NWM2Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCkBAIC0zOTUsMTEgKzM5NSw4IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDYWxsRnVuY3Rpb25JbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lCiAgICAgICAg
IHRpbWVsaW5lQWdlbnQtPmRpZENhbGxGdW5jdGlvbihmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoY29udGV4dCkpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bERpc3BhdGNoRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRXZlbnQmIGV2ZW50LCBib29sIGhhc0V2ZW50
TGlzdGVuZXJzKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2
ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IEV2ZW50JiBldmVudCkKIHsKLSAgICBpZiAoIWhhc0V2ZW50TGlz
dGVuZXJzKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAoYXV0byogdGltZWxpbmVBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAg
ICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxEaXNwYXRjaEV2ZW50KGV2ZW50LCBkb2N1bWVudC5m
cmFtZSgpKTsKIH0KQEAgLTQyMiwyNSArNDE5LDIyIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRIYW5kbGVFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVu
CiAgICAgICAgIGRvbURlYnVnZ2VyQWdlbnQtPmRpZEhhbmRsZUV2ZW50KCk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBib29sIGRlZmF1bHRQcmV2ZW50ZWQpCit2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hFdmVudEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgRXZlbnQmIGV2ZW50KQog
ewogICAgIGlmIChhdXRvKiB0aW1lbGluZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy50cmFj
a2luZ0luc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKLSAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlk
RGlzcGF0Y2hFdmVudChkZWZhdWx0UHJldmVudGVkKTsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+
ZGlkRGlzcGF0Y2hFdmVudChldmVudC5kZWZhdWx0UHJldmVudGVkKCkpOwogfQogCiB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnRPbldpbmRvd0ltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgRXZlbnQmIGV2ZW50
LCBET01XaW5kb3cmIHdpbmRvdykKIHsKLSAgICBpZiAoIXdpbmRvdy5oYXNFdmVudExpc3RlbmVy
cyhldmVudC50eXBlKCkpKQotICAgICAgICByZXR1cm47Ci0KICAgICBpZiAoYXV0byogdGltZWxp
bmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JUaW1lbGluZUFn
ZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPndpbGxEaXNwYXRjaEV2ZW50KGV2ZW50LCB3
aW5kb3cuZnJhbWUoKSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRE
aXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRp
bmdBZ2VudHMsIGJvb2wgZGVmYXVsdFByZXZlbnRlZCkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IEV2ZW50JiBldmVudCkKIHsKICAgICBpZiAoYXV0
byogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JU
aW1lbGluZUFnZW50KCkpCi0gICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoRXZlbnQo
ZGVmYXVsdFByZXZlbnRlZCk7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoRXZl
bnQoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmV2ZW50RGlkUmVzZXRBZnRlckRpc3BhdGNoSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXgg
ZmQxZWJhZWQxNGFiMmJmMTBmMjdmYmY1NDQ2M2NkMDkzYzVhYzM3Ny4uMTY5NGUxNTA5MWRjM2Nj
MGVmMjIwMjI2MTE0OTM5NGI0ODkwY2VjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTYxLDEyICsxNjEsMTIgQEAg
cHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZEFkZEV2ZW50TGlzdGVuZXIoRXZlbnRUYXJnZXQm
LCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBib29sIGNhcHR1
cmUpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxSZW1vdmVFdmVudExpc3RlbmVyKEV2ZW50VGFyZ2V0
JiwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCBjYXB0
dXJlKTsKICAgICBzdGF0aWMgYm9vbCBpc0V2ZW50TGlzdGVuZXJEaXNhYmxlZChFdmVudFRhcmdl
dCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGJvb2wgY2Fw
dHVyZSk7Ci0gICAgc3RhdGljIHZvaWQgd2lsbERpc3BhdGNoRXZlbnQoRG9jdW1lbnQmLCBjb25z
dCBFdmVudCYsIGJvb2wgaGFzRXZlbnRMaXN0ZW5lcnMpOwotICAgIHN0YXRpYyB2b2lkIGRpZERp
c3BhdGNoRXZlbnQoRG9jdW1lbnQmLCBib29sIGRlZmF1bHRQcmV2ZW50ZWQpOworICAgIHN0YXRp
YyB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50KERvY3VtZW50JiwgY29uc3QgRXZlbnQmKTsKKyAgICBz
dGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2ZW50KERvY3VtZW50JiwgY29uc3QgRXZlbnQmKTsKICAg
ICBzdGF0aWMgdm9pZCB3aWxsSGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEV2
ZW50JiwgY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImKTsKICAgICBzdGF0aWMgdm9pZCBk
aWRIYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAgICAgc3RhdGljIHZvaWQg
d2lsbERpc3BhdGNoRXZlbnRPbldpbmRvdyhGcmFtZSosIGNvbnN0IEV2ZW50JiwgRE9NV2luZG93
Jik7Ci0gICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93KEZyYW1lKiwgYm9v
bCBkZWZhdWx0UHJldmVudGVkKTsKKyAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2ZW50T25X
aW5kb3coRnJhbWUqLCBjb25zdCBFdmVudCYpOwogICAgIHN0YXRpYyB2b2lkIGV2ZW50RGlkUmVz
ZXRBZnRlckRpc3BhdGNoKGNvbnN0IEV2ZW50Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbEV2YWx1
YXRlU2NyaXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyLCBpbnQg
Y29sdW1uTnVtYmVyKTsKICAgICBzdGF0aWMgdm9pZCBkaWRFdmFsdWF0ZVNjcmlwdChGcmFtZSYp
OwpAQCAtMzcxLDEyICszNzEsMTIgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRBZGRF
dmVudExpc3RlbmVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRXZlbnRUYXJnZXQmLCBjb25z
dCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOwog
ICAgIHN0YXRpYyB2b2lkIHdpbGxSZW1vdmVFdmVudExpc3RlbmVySW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiwgRXZlbnRUYXJnZXQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50
TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOwogICAgIHN0YXRpYyBib29sIGlzRXZlbnRMaXN0ZW5l
ckRpc2FibGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRXZlbnRUYXJnZXQmLCBjb25zdCBB
dG9tU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOwotICAg
IHN0YXRpYyB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
RG9jdW1lbnQmLCBjb25zdCBFdmVudCYsIGJvb2wgaGFzRXZlbnRMaXN0ZW5lcnMpOworICAgIHN0
YXRpYyB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRG9j
dW1lbnQmLCBjb25zdCBFdmVudCYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxIYW5kbGVFdmVudElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEV2ZW50JiwgY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlz
dGVuZXImKTsKICAgICBzdGF0aWMgdm9pZCBkaWRIYW5kbGVFdmVudEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYpOwotICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoRXZlbnRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBib29sIGRlZmF1bHRQcmV2ZW50ZWQpOworICAgIHN0YXRpYyB2b2lkIGRp
ZERpc3BhdGNoRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBjb25zdCBFdmVudCYpOwog
ICAgIHN0YXRpYyB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmLCBjb25zdCBFdmVudCYsIERPTVdpbmRvdyYpOwotICAgIHN0YXRpYyB2b2lkIGRp
ZERpc3BhdGNoRXZlbnRPbldpbmRvd0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGJvb2wgZGVm
YXVsdFByZXZlbnRlZCk7CisgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgRXZlbnQmKTsKICAgICBzdGF0aWMgdm9p
ZCBldmVudERpZFJlc2V0QWZ0ZXJEaXNwYXRjaEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNv
bnN0IEV2ZW50Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbEV2YWx1YXRlU2NyaXB0SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1i
ZXIsIGludCBjb2x1bW5OdW1iZXIpOwogICAgIHN0YXRpYyB2b2lkIGRpZEV2YWx1YXRlU2NyaXB0
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmKTsKQEAgLTgyOSwxOCArODI5LDE4IEBA
IGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvCiAgICAgICAgIGRpZENhbGxGdW5jdGlvbkltcGwoKmlu
c3RydW1lbnRpbmdBZ2VudHMsIGNvbnRleHQpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50KERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgRXZlbnQmIGV2ZW50LCBib29sIGhhc0V2ZW50TGlzdGVuZXJzKQoraW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IEV2ZW50JiBldmVudCkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVO
RFModm9pZCgpKTsKICAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1l
bnRpbmdBZ2VudHNGb3JEb2N1bWVudChkb2N1bWVudCkpCi0gICAgICAgIHdpbGxEaXNwYXRjaEV2
ZW50SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgZG9jdW1lbnQsIGV2ZW50LCBoYXNFdmVudExp
c3RlbmVycyk7CisgICAgICAgIHdpbGxEaXNwYXRjaEV2ZW50SW1wbCgqaW5zdHJ1bWVudGluZ0Fn
ZW50cywgZG9jdW1lbnQsIGV2ZW50KTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50KERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBkZWZh
dWx0UHJldmVudGVkKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRE
aXNwYXRjaEV2ZW50KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRXZlbnQmIGV2ZW50KQogewog
ICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChhdXRvKiBp
bnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3Vt
ZW50KSkKLSAgICAgICAgZGlkRGlzcGF0Y2hFdmVudEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMs
IGRlZmF1bHRQcmV2ZW50ZWQpOworICAgICAgICBkaWREaXNwYXRjaEV2ZW50SW1wbCgqaW5zdHJ1
bWVudGluZ0FnZW50cywgZXZlbnQpOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxIYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBFdmVudCYgZXZlbnQsIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiBsaXN0ZW5lcikK
QEAgLTg2NCwxMSArODY0LDExIEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbERpc3BhdGNoRXZlbnRPbldpbmRvdyhGcmFtZSogZnJhbWUsIGNvCiAgICAgICAgIHdp
bGxEaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBldmVudCwg
d2luZG93KTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRE
aXNwYXRjaEV2ZW50T25XaW5kb3coRnJhbWUqIGZyYW1lLCBib29sIGRlZmF1bHRQcmV2ZW50ZWQp
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoRXZlbnRP
bldpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEV2ZW50JiBldmVudCkKIHsKICAgICBGQVNUX1JF
VFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoYXV0byogaW5zdHJ1bWVudGlu
Z0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCi0gICAgICAgIGRp
ZERpc3BhdGNoRXZlbnRPbldpbmRvd0ltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGRlZmF1bHRQ
cmV2ZW50ZWQpOworICAgICAgICBkaWREaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKCppbnN0cnVt
ZW50aW5nQWdlbnRzLCBldmVudCk7CiB9CiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZXZlbnREaWRSZXNldEFmdGVyRGlzcGF0Y2goY29uc3QgRXZlbnQmIGV2ZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGEzNmFiOTMwYmMyYWU3YzA3MDA2NTIwMjVh
M2Y0YTE1YTU5MmRiOTMuLmNlNjU4NjkwYzE4MThiM2NiNTdkYjk1NGViOTNmYjQ2NzUwZDM2N2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTIxNzksNiArMjE3OSw5IEBAIHZvaWQg
RE9NV2luZG93OjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCwgRXZlbnRUYXJnZXQqIHRhcmdl
dCkKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmICghaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnQu
dHlwZSgpKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gRklYTUU6IEl0IGRvZXNuJ3Qgc2Vl
bSByaWdodCB0byBoYXZlIHRoZSBpbnNwZWN0b3IgaW5zdHJ1bWVudGF0aW9uIGhlcmUgc2luY2Ug
bm90IGFsbAogICAgIC8vIGV2ZW50cyBkaXNwYXRjaGVkIHRvIHRoZSB3aW5kb3cgb2JqZWN0IGFy
ZSBndWFyYW50ZWVkIHRvIGZsb3cgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uLgogICAgIC8vIEJ1dCB0
aGUgaW5zdHJ1bWVudGF0aW9uIHByZXZlbnRzIHVzIGZyb20gY2FsbGluZyBFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoRXZlbnQgaGVyZS4KQEAgLTIxOTIsNyArMjE5NSw3IEBAIHZvaWQgRE9NV2lu
ZG93OjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVudCwgRXZlbnRUYXJnZXQqIHRhcmdldCkKICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHVzZSBFdmVudERpc3BhdGNoZXIgZXZlcnl3aGVyZS4KICAg
ICBmaXJlRXZlbnRMaXN0ZW5lcnMoZXZlbnQsIEV2ZW50SW52b2tlUGhhc2U6OkNhcHR1cmluZyk7
CiAgICAgZmlyZUV2ZW50TGlzdGVuZXJzKGV2ZW50LCBFdmVudEludm9rZVBoYXNlOjpCdWJibGlu
Zyk7Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50T25XaW5k
b3cocHJvdGVjdGVkRnJhbWUsIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQoKSk7CisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50T25XaW5kb3cocHJvdGVjdGVkRnJh
bWUsIGV2ZW50KTsKIAogICAgIGV2ZW50LnJlc2V0QWZ0ZXJEaXNwYXRjaCgpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380539</attachid>
            <date>2019-10-09 10:10:36 -0700</date>
            <delta_ts>2019-10-10 11:04:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202713-20191009101034.patch</filename>
            <type>text/plain</type>
            <size>12670</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMjc3ZDM0NDI4M2Q2YWM1MGU3ZGYzN2EwMDhhZjJkMTU0YTY3NDJmLi5m
YzM4OGNmYmM4ZTA1ZDNkZTk1Y2Q5ZWM0NWE2ZTg4MWVjYTJhMTlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzcgQEAKKzIwMTktMTAtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lczogZG9uJ3QgY2FsbCB3aWxsRGlz
cGF0Y2hFdmVudC9kaWREaXNwYXRjaEV2ZW50IHVubGVzcyB0aGVyZSBpcyBhIGxpc3RlbmVyIGZv
ciB0aGUgZXZlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjcxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZpeGVzIGZhaWxpbmcgaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXJlY29yZGluZy5o
dG1sIGFmdGVyIHIyNTA2NzIuIFRoaXMgd2FzIGJlY2F1c2UgdGhlCisgICAgICAgIGBJbnNwZWN0
b3JUaW1lbGluZUFnZW50YCBleHBlY3RlZCBhIGNvcnJlc3BvbmRpbmcgYHdpbGxEaXNwYXRjaEV2
ZW50YCBiZWZvcmUgaXQgd2FzIHRvbGQKKyAgICAgICAgYWJvdXQgdGhlIGBkaWREaXNwYXRjaEV2
ZW50YCwgd2hpY2ggd2Fzbid0IGhhcHBlbmluZyBzaW5jZSBvbmx5IGB3aWxsRGlzcGF0Y2hFdmVu
dGAgd291bGQKKyAgICAgICAgZWFybHktcmV0dXJuIGlmIHRoZSBgRE9NV2luZG93YCBkaWRuJ3Qg
aGF2ZSBhbnkgZXZlbnQgbGlzdGVuZXJzIGZvciB0aGUgZGlzcGF0Y2hlZCBldmVudC4gQnkKKyAg
ICAgICAgbWFraW5nIHRoZSBgRE9NV2luZG93OjpkaXNwYXRjaEV2ZW50YCBpdHNlbGYgZWFybHkt
cmV0dXJuIGluIHRoYXQgY2FzZSwgaXQgbm93IGhhbmRsZXMgYm90aAorICAgICAgICBgd2lsbERp
c3BhdGNoRXZlbnRgIGFuZCBgZGlkRGlzcGF0Y2hFdmVudGAsIGVuc3VyaW5nIHRoYXQgdGhleSBh
cmUgYWx3YXlzIGNhbGxlZCBpbiBwYWlycy4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGlzcGF0Y2hFdmVudCk6CisKKyAgICAg
ICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6
OmlubmVySW52b2tlRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnRPbldpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoRXZlbnRP
bldpbmRvdyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNw
YXRjaEV2ZW50SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZERpc3BhdGNoRXZlbnRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZlbnRPbldpbmRvd0ltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50T25XaW5k
b3dJbXBsKToKKyAgICAgICAgYEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNo
RXZlbnRJbXBsYCB3YXMgYWx3YXlzIGNhbGxlZCB3aXRoIGBoYXNFdmVudExpc3RlbmVyc2AKKyAg
ICAgICAgYXMgYHRydWVgLCBzbyB0aGVyZSdzIG5vIHJlYXNvbiB0byBrZWVwIHRoYXQgcGFyYW1l
dGVyIGFyb3VuZC4gU2ltaWxhcmx5LCB0aGUgY2hhbmdlIGluc2lkZQorICAgICAgICBgRE9NV2lu
ZG93OjpkaXNwYXRjaEV2ZW50YCB3aWxsIG1ha2UgaXQgc28gdGhhdCB0aGUgc2FtZSBpcyB0cnVl
IGZvcgorICAgICAgICBgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVu
dE9uV2luZG93SW1wbGAgYXMgd2VsbC4KKwogMjAxOS0xMC0wOCAgeW91ZW5uIGZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFTdHJlYW1UcmFjayBzaG91bGQgYmUgYSBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudCBpbnN0ZWFkIG9mIE1lZGlhU3RyZWFtCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCBmYjE3ZDNjZDY3NmU4YmZlNzhiYzM1MDJlNmFkNzEy
M2UzYzM4Y2UwLi4yODhjZmI3NDRkMzA3ZjQ2OTQ1MGI3MTY4NDg1YWViYTlkODI1NTE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCB2b2lkIEV2ZW50
VGFyZ2V0Ojppbm5lckludm9rZUV2ZW50TGlzdGVuZXJzKEV2ZW50JiBldmVudCwgRXZlbnRMaXN0
ZW5lclZlY3RvciBsaQogICAgIGF1dG8mIGNvbnRleHQgPSAqc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpOwogICAgIGJvb2wgY29udGV4dElzRG9jdW1lbnQgPSBpczxEb2N1bWVudD4oY29udGV4dCk7
CiAgICAgaWYgKGNvbnRleHRJc0RvY3VtZW50KQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxEaXNwYXRjaEV2ZW50KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgZXZl
bnQsIHRydWUpOworICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRj
aEV2ZW50KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgZXZlbnQpOwogCiAgICAgZm9yIChh
dXRvJiByZWdpc3RlcmVkTGlzdGVuZXIgOiBsaXN0ZW5lcnMpIHsKICAgICAgICAgaWYgKFVOTElL
RUxZKHJlZ2lzdGVyZWRMaXN0ZW5lci0+d2FzUmVtb3ZlZCgpKSkKQEAgLTMyMiw3ICszMjIsNyBA
QCB2b2lkIEV2ZW50VGFyZ2V0Ojppbm5lckludm9rZUV2ZW50TGlzdGVuZXJzKEV2ZW50JiBldmVu
dCwgRXZlbnRMaXN0ZW5lclZlY3RvciBsaQogICAgIH0KIAogICAgIGlmIChjb250ZXh0SXNEb2N1
bWVudCkKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50
KGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KSwgZXZlbnQuZGVmYXVsdFByZXZlbnRlZCgpKTsK
KyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50KGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KSwgZXZlbnQpOwogfQogCiBWZWN0b3I8QXRvbVN0cmluZz4g
RXZlbnRUYXJnZXQ6OmV2ZW50VHlwZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBmMDUyMWZlMTRjNzUzM2Rl
MTk0MDViZWMxYjdjZTQ2NTY3NDYxZjUyLi40MzNmMmU3NDA4MWVjOWZmY2E5N2ZhZTcxMGEyYzY4
ZWU0NzVjNmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMzk1LDExICszOTUsOCBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FsbEZ1bmN0aW9uSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRDYWxsRnVuY3Rpb24oZnJhbWVG
b3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW50aW5nQWdlbnRzLCBEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEV2ZW50JiBl
dmVudCwgYm9vbCBoYXNFdmVudExpc3RlbmVycykKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsRGlzcGF0Y2hFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVu
dGluZ0FnZW50cywgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFdmVudCYgZXZlbnQpCiB7Ci0g
ICAgaWYgKCFoYXNFdmVudExpc3RlbmVycykKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKGF1
dG8qIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5nSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRGlzcGF0Y2hFdmVu
dChldmVudCwgZG9jdW1lbnQuZnJhbWUoKSk7CiB9CkBAIC00MjIsMjUgKzQxOSwyMiBAQCB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSGFuZGxlRXZlbnRJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmIGluc3RydW1lbgogICAgICAgICBkb21EZWJ1Z2dlckFnZW50LT5kaWRIYW5kbGVF
dmVudCgpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hF
dmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgYm9vbCBk
ZWZhdWx0UHJldmVudGVkKQordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3Bh
dGNoRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGNv
bnN0IEV2ZW50JiBldmVudCkKIHsKICAgICBpZiAoYXV0byogdGltZWxpbmVBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMudHJhY2tpbmdJbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCi0gICAgICAg
IHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoRXZlbnQoZGVmYXVsdFByZXZlbnRlZCk7CisgICAg
ICAgIHRpbWVsaW5lQWdlbnQtPmRpZERpc3BhdGNoRXZlbnQoZXZlbnQuZGVmYXVsdFByZXZlbnRl
ZCgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2
ZW50T25XaW5kb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMs
IGNvbnN0IEV2ZW50JiBldmVudCwgRE9NV2luZG93JiB3aW5kb3cpCiB7Ci0gICAgaWYgKCF3aW5k
b3cuaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnQudHlwZSgpKSkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgaWYgKGF1dG8qIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnRyYWNraW5n
SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT53aWxsRGlz
cGF0Y2hFdmVudChldmVudCwgd2luZG93LmZyYW1lKCkpOwogfQogCi12b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93SW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBib29sIGRlZmF1bHRQcmV2ZW50ZWQpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBFdmVudCYgZXZl
bnQpCiB7CiAgICAgaWYgKGF1dG8qIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LnRyYWNraW5nSW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAgICAgICB0aW1lbGluZUFnZW50
LT5kaWREaXNwYXRjaEV2ZW50KGRlZmF1bHRQcmV2ZW50ZWQpOworICAgICAgICB0aW1lbGluZUFn
ZW50LT5kaWREaXNwYXRjaEV2ZW50KGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQoKSk7CiB9CiAKIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpldmVudERpZFJlc2V0QWZ0ZXJEaXNwYXRjaElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgRXZlbnQm
IGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oCmluZGV4IGZkMWViYWVkMTRhYjJiZjEwZjI3ZmJmNTQ0NjNjZDA5M2M1YWMz
NzcuLjE2OTRlMTUwOTFkYzNjYzBlZjIyMDIyNjExNDkzOTRiNDg5MGNlY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAg
LTE2MSwxMiArMTYxLDEyIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkaWRBZGRFdmVudExp
c3RlbmVyKEV2ZW50VGFyZ2V0JiwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExp
c3RlbmVyJiwgYm9vbCBjYXB0dXJlKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsUmVtb3ZlRXZlbnRM
aXN0ZW5lcihFdmVudFRhcmdldCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRM
aXN0ZW5lciYsIGJvb2wgY2FwdHVyZSk7CiAgICAgc3RhdGljIGJvb2wgaXNFdmVudExpc3RlbmVy
RGlzYWJsZWQoRXZlbnRUYXJnZXQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50
TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOwotICAgIHN0YXRpYyB2b2lkIHdpbGxEaXNwYXRjaEV2
ZW50KERvY3VtZW50JiwgY29uc3QgRXZlbnQmLCBib29sIGhhc0V2ZW50TGlzdGVuZXJzKTsKLSAg
ICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2ZW50KERvY3VtZW50JiwgYm9vbCBkZWZhdWx0UHJl
dmVudGVkKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRGlzcGF0Y2hFdmVudChEb2N1bWVudCYsIGNv
bnN0IEV2ZW50Jik7CisgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hFdmVudChEb2N1bWVudCYs
IGNvbnN0IEV2ZW50Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbEhhbmRsZUV2ZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBFdmVudCYsIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJik7
CiAgICAgc3RhdGljIHZvaWQgZGlkSGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
OwogICAgIHN0YXRpYyB2b2lkIHdpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3coRnJhbWUqLCBjb25z
dCBFdmVudCYsIERPTVdpbmRvdyYpOwotICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoRXZlbnRP
bldpbmRvdyhGcmFtZSosIGJvb2wgZGVmYXVsdFByZXZlbnRlZCk7CisgICAgc3RhdGljIHZvaWQg
ZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93KEZyYW1lKiwgY29uc3QgRXZlbnQmKTsKICAgICBzdGF0
aWMgdm9pZCBldmVudERpZFJlc2V0QWZ0ZXJEaXNwYXRjaChjb25zdCBFdmVudCYpOwogICAgIHN0
YXRpYyB2b2lkIHdpbGxFdmFsdWF0ZVNjcmlwdChGcmFtZSYsIGNvbnN0IFN0cmluZyYgdXJsLCBp
bnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlcik7CiAgICAgc3RhdGljIHZvaWQgZGlkRXZh
bHVhdGVTY3JpcHQoRnJhbWUmKTsKQEAgLTM3MSwxMiArMzcxLDEyIEBAIHByaXZhdGU6CiAgICAg
c3RhdGljIHZvaWQgZGlkQWRkRXZlbnRMaXN0ZW5lckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IEV2ZW50VGFyZ2V0JiwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVy
JiwgYm9vbCBjYXB0dXJlKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsUmVtb3ZlRXZlbnRMaXN0ZW5l
ckltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEV2ZW50VGFyZ2V0JiwgY29uc3QgQXRvbVN0cmlu
ZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCBjYXB0dXJlKTsKICAgICBzdGF0aWMg
Ym9vbCBpc0V2ZW50TGlzdGVuZXJEaXNhYmxlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEV2
ZW50VGFyZ2V0JiwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwg
Ym9vbCBjYXB0dXJlKTsKLSAgICBzdGF0aWMgdm9pZCB3aWxsRGlzcGF0Y2hFdmVudEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYsIERvY3VtZW50JiwgY29uc3QgRXZlbnQmLCBib29sIGhhc0V2ZW50
TGlzdGVuZXJzKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRGlzcGF0Y2hFdmVudEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYsIERvY3VtZW50JiwgY29uc3QgRXZlbnQmKTsKICAgICBzdGF0aWMgdm9p
ZCB3aWxsSGFuZGxlRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBFdmVudCYsIGNvbnN0
IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJik7CiAgICAgc3RhdGljIHZvaWQgZGlkSGFuZGxlRXZl
bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKLSAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRj
aEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgYm9vbCBkZWZhdWx0UHJldmVudGVkKTsK
KyAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiwgY29uc3QgRXZlbnQmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsRGlzcGF0Y2hFdmVudE9uV2lu
ZG93SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgRXZlbnQmLCBET01XaW5kb3cmKTsK
LSAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmLCBib29sIGRlZmF1bHRQcmV2ZW50ZWQpOworICAgIHN0YXRpYyB2b2lkIGRpZERp
c3BhdGNoRXZlbnRPbldpbmRvd0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IEV2ZW50
Jik7CiAgICAgc3RhdGljIHZvaWQgZXZlbnREaWRSZXNldEFmdGVyRGlzcGF0Y2hJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBjb25zdCBFdmVudCYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxFdmFs
dWF0ZVNjcmlwdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJiwgY29uc3QgU3RyaW5n
JiB1cmwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyKTsKICAgICBzdGF0aWMgdm9p
ZCBkaWRFdmFsdWF0ZVNjcmlwdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJik7CkBA
IC04MjksMTggKzgyOSwxOCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENhbGxGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjbwogICAgICAgICBkaWRD
YWxsRnVuY3Rpb25JbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBjb250ZXh0KTsKIH0KIAotaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRGlzcGF0Y2hFdmVudChEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IEV2ZW50JiBldmVudCwgYm9vbCBoYXNFdmVudExpc3RlbmVy
cykKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbERpc3BhdGNoRXZl
bnQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBFdmVudCYgZXZlbnQpCiB7CiAgICAgRkFTVF9S
RVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKGF1dG8qIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9jdW1lbnQpKQotICAg
ICAgICB3aWxsRGlzcGF0Y2hFdmVudEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGRvY3VtZW50
LCBldmVudCwgaGFzRXZlbnRMaXN0ZW5lcnMpOworICAgICAgICB3aWxsRGlzcGF0Y2hFdmVudElt
cGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGRvY3VtZW50LCBldmVudCk7CiB9CiAKLWlubGluZSB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hFdmVudChEb2N1bWVudCYg
ZG9jdW1lbnQsIGJvb2wgZGVmYXVsdFByZXZlbnRlZCkKK2lubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hFdmVudChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IEV2ZW50JiBldmVudCkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgp
KTsKICAgICBpZiAoYXV0byogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2Vu
dHNGb3JEb2N1bWVudChkb2N1bWVudCkpCi0gICAgICAgIGRpZERpc3BhdGNoRXZlbnRJbXBsKCpp
bnN0cnVtZW50aW5nQWdlbnRzLCBkZWZhdWx0UHJldmVudGVkKTsKKyAgICAgICAgZGlkRGlzcGF0
Y2hFdmVudEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGV2ZW50KTsKIH0KIAogaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgRXZlbnQmIGV2ZW50LCBjb25zdCBSZWdpc3RlcmVkRXZlbnRM
aXN0ZW5lciYgbGlzdGVuZXIpCkBAIC04NjQsMTEgKzg2NCwxMSBAQCBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3coRnJhbWUqIGZy
YW1lLCBjbwogICAgICAgICB3aWxsRGlzcGF0Y2hFdmVudE9uV2luZG93SW1wbCgqaW5zdHJ1bWVu
dGluZ0FnZW50cywgZXZlbnQsIHdpbmRvdyk7CiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93KEZyYW1lKiBmcmFtZSwgYm9v
bCBkZWZhdWx0UHJldmVudGVkKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWREaXNwYXRjaEV2ZW50T25XaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBFdmVudCYgZXZl
bnQpCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYg
KGF1dG8qIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUo
ZnJhbWUpKQotICAgICAgICBkaWREaXNwYXRjaEV2ZW50T25XaW5kb3dJbXBsKCppbnN0cnVtZW50
aW5nQWdlbnRzLCBkZWZhdWx0UHJldmVudGVkKTsKKyAgICAgICAgZGlkRGlzcGF0Y2hFdmVudE9u
V2luZG93SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgZXZlbnQpOwogfQogCiBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmV2ZW50RGlkUmVzZXRBZnRlckRpc3BhdGNoKGNv
bnN0IEV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBhMzZhYjkz
MGJjMmFlN2MwNzAwNjUyMDI1YTNmNGExNWE1OTJkYjkzLi40ODcwNzI4ZTE3YzYzMDI5YTA0Njgz
MWNmZmY3NmNmOWVkZjAzNWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0yMTg3
LDEyICsyMTg3LDIxIEBAIHZvaWQgRE9NV2luZG93OjpkaXNwYXRjaEV2ZW50KEV2ZW50JiBldmVu
dCwgRXZlbnRUYXJnZXQqIHRhcmdldCkKICAgICBldmVudC5zZXRFdmVudFBoYXNlKEV2ZW50OjpB
VF9UQVJHRVQpOwogICAgIGV2ZW50LnJlc2V0QmVmb3JlRGlzcGF0Y2goKTsKIAotICAgIGF1dG8q
IHByb3RlY3RlZEZyYW1lID0gZnJhbWUoKTsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3cocHJvdGVjdGVkRnJhbWUsIGV2ZW50LCAqdGhpcyk7
CisgICAgRnJhbWUqIHByb3RlY3RlZEZyYW1lID0gbnVsbHB0cjsKKyAgICBib29sIGhhc0xpc3Rl
bmVyc0ZvckV2ZW50ID0gZmFsc2U7CisgICAgaWYgKFVOTElLRUxZKEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpKSB7CisgICAgICAgIHByb3RlY3RlZEZyYW1lID0gZnJh
bWUoKTsKKyAgICAgICAgaGFzTGlzdGVuZXJzRm9yRXZlbnQgPSBoYXNFdmVudExpc3RlbmVycyhl
dmVudC50eXBlKCkpOworICAgICAgICBpZiAoaGFzTGlzdGVuZXJzRm9yRXZlbnQpCisgICAgICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3co
cHJvdGVjdGVkRnJhbWUsIGV2ZW50LCAqdGhpcyk7CisgICAgfQorCiAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCB1c2UgRXZlbnREaXNwYXRjaGVyIGV2ZXJ5d2hlcmUuCiAgICAgZmlyZUV2ZW50TGlz
dGVuZXJzKGV2ZW50LCBFdmVudEludm9rZVBoYXNlOjpDYXB0dXJpbmcpOwogICAgIGZpcmVFdmVu
dExpc3RlbmVycyhldmVudCwgRXZlbnRJbnZva2VQaGFzZTo6QnViYmxpbmcpOwotICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hFdmVudE9uV2luZG93KHByb3RlY3RlZEZy
YW1lLCBldmVudC5kZWZhdWx0UHJldmVudGVkKCkpOworCisgICAgaWYgKGhhc0xpc3RlbmVyc0Zv
ckV2ZW50KQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoRXZl
bnRPbldpbmRvdyhwcm90ZWN0ZWRGcmFtZSwgZXZlbnQpOwogCiAgICAgZXZlbnQucmVzZXRBZnRl
ckRpc3BhdGNoKCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>