<?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>208481</bug_id>
          
          <creation_ts>2020-03-02 15:45:02 -0800</creation_ts>
          <short_desc>Align garbage collection for XMLHttpRequest objects with the specification</short_desc>
          <delta_ts>2020-03-09 14:56:01 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://xhr.spec.whatwg.org/#garbage-collection</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1624788</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-02 15:45:02 -0800</bug_when>
    <thetext>Simplify XHR JS wrapper lifetime management and align with the specification:
- https://xhr.spec.whatwg.org/#garbage-collection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624790</commentid>
    <comment_count>1</comment_count>
      <attachid>392202</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-02 15:48:56 -0800</bug_when>
    <thetext>Created attachment 392202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625198</commentid>
    <comment_count>2</comment_count>
      <attachid>392318</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-03 13:08:59 -0800</bug_when>
    <thetext>Created attachment 392318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626863</commentid>
    <comment_count>3</comment_count>
      <attachid>392770</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-06 14:05:45 -0800</bug_when>
    <thetext>Created attachment 392770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626965</commentid>
    <comment_count>4</comment_count>
      <attachid>392802</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-06 16:32:11 -0800</bug_when>
    <thetext>Created attachment 392802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626978</commentid>
    <comment_count>5</comment_count>
      <attachid>392809</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-06 16:47:41 -0800</bug_when>
    <thetext>Created attachment 392809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627855</commentid>
    <comment_count>6</comment_count>
      <attachid>392809</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-09 11:12:30 -0700</bug_when>
    <thetext>Comment on attachment 392809
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        e now override ActiveDOMObject::hasPendingActivity() to match exactly the text

Nit: e -&gt; We?

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:1167
&gt; +        || hasEventListeners(eventNames().loadEvent)
&gt; +        || hasEventListeners(eventNames().timeoutEvent)

Can we order these events in alphabetical/lexicological order?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627857</commentid>
    <comment_count>7</comment_count>
      <attachid>392809</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-09 11:24:06 -0700</bug_when>
    <thetext>Comment on attachment 392809
Patch

Oops, I didn&apos;t meant to set cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627872</commentid>
    <comment_count>8</comment_count>
      <attachid>393061</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-09 12:26:15 -0700</bug_when>
    <thetext>Created attachment 393061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627931</commentid>
    <comment_count>9</comment_count>
      <attachid>393061</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-09 13:17:27 -0700</bug_when>
    <thetext>Comment on attachment 393061
Patch

Clearing flags on attachment: 393061

Committed r258159: &lt;https://trac.webkit.org/changeset/258159&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627932</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-09 13:17:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627933</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-09 13:23:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/60239100&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627950</commentid>
    <comment_count>12</comment_count>
      <attachid>393061</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-09 13:58:37 -0700</bug_when>
    <thetext>Comment on attachment 393061
Patch

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

&gt; Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.h:36
&gt;  class EventTarget;

Should have removed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627953</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-09 14:01:10 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #12)
&gt; Comment on attachment 393061 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=393061&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.h:36
&gt; &gt;  class EventTarget;
&gt; 
&gt; Should have removed this.

Indeed, will follow up, thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627974</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-09 14:56:01 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #13)
&gt; (In reply to Darin Adler from comment #12)
&gt; &gt; Comment on attachment 393061 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=393061&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/xml/XMLHttpRequestProgressEventThrottle.h:36
&gt; &gt; &gt;  class EventTarget;
&gt; &gt; 
&gt; &gt; Should have removed this.
&gt; 
&gt; Indeed, will follow up, thanks.

&lt;https://trac.webkit.org/changeset/258165&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392202</attachid>
            <date>2020-03-02 15:48:56 -0800</date>
            <delta_ts>2020-03-03 13:08:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208481-20200302154856.patch</filename>
            <type>text/plain</type>
            <size>11933</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIzMDEyNWI4OTNjZWQ0
M2MwZTY3MjMwYjFjMTA1OGNkYjg1MjA4NS4uNGRmZjM2OTVkYWZlZDdiYzVjMTkxOTI1ZGRiYzBl
NGQ1Y2MzZDU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAzLTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgWEhSIEpTIHdy
YXBwZXIgbGlmZXRpbWUgbWFuYWdlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NDgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2ltcGxpZnkgWEhSIEpTIHdyYXBwZXIgbGlmZXRpbWUgbWFuYWdl
bWVudCBhbmQgYWxpZ24gd2l0aCB0aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRwczov
L3hoci5zcGVjLndoYXR3Zy5vcmcvI2dhcmJhZ2UtY29sbGVjdGlvbgorCisgICAgICAgIFdlIG5v
dyBvdmVycmlkZSBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIHRvIG1hdGNo
IGV4YWN0bHkgdGhlIHRleHQKKyAgICAgICAgaW4gdGhlIHNwZWNpZmljYXRpb246CisgICAgICAg
ICIiIgorICAgICAgICBBbiBYTUxIdHRwUmVxdWVzdCBvYmplY3QgbXVzdCBub3QgYmUgZ2FyYmFn
ZSBjb2xsZWN0ZWQgaWYgaXRzIHN0YXRlIGlzIGVpdGhlcgorICAgICAgICBvcGVuZWQgd2l0aCB0
aGUgc2VuZCgpIGZsYWcgc2V0LCBoZWFkZXJzIHJlY2VpdmVkLCBvciBsb2FkaW5nLCBhbmQgaXQg
aGFzIG9uZSBvcgorICAgICAgICBtb3JlIGV2ZW50IGxpc3RlbmVycyByZWdpc3RlcmVkIHdob3Nl
IHR5cGUgaXMgb25lIG9mIHJlYWR5c3RhdGVjaGFuZ2UsIHByb2dyZXNzLAorICAgICAgICBhYm9y
dCwgZXJyb3IsIGxvYWQsIHRpbWVvdXQsIGFuZCBsb2FkZW5kLgorICAgICAgICAiIiIKKworICAg
ICAgICBQcmV2aW91c2x5LCB3ZSB3ZXJlIHRyeWluZyB0byBpbXBsZW1lbnQgdGhpcyBiZWhhdmlv
ciB3aXRoIEFjdGl2ZURPTU9iamVjdCdzCisgICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgpIC8g
dW5zZXRQZW5kaW5nQWN0aXZpdHkoKSBidXQgdGhpcyB3YXMgZXJyb3IgYW5kIGxlYWsgcHJvbmUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Qgc3VjaCBh
czoKKyAgICAgICAgZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nYy5odG1sCisK
KyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRU
YXJnZXQ6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6
OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnJl
bW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSk6Cisg
ICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0
dHBSZXF1ZXN0OjpwcmVwYXJlVG9TZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1
ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojph
Ym9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aW50ZXJuYWxBYm9ydCk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6bmV0d29ya0Vycm9yVGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbCk6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkUmVhY2hUaW1lb3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAg
ICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6Omhhc1BlbmRpbmdFdmVudHMgY29uc3QpOgorICAgICAg
ICAqIHhtbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oOgorCiAyMDIwLTAz
LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgQ0dD
b2xvciBjYWNoZSBvbiBtZW1vcnkgcHJlc3N1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3Bw
CmluZGV4IGNkMGRlMDg4MWM0MDAxZmVkYzdkOGQ2NzQwMjY4MWFiMThkNjRkNTcuLjhjMzg1MDli
OWQ1ZGMyOWEwMzJlZmNjODZlN2E2ODEzYWYwYmU4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0LmNwcApAQCAtOTQsNiArOTQsNyBAQCBib29sIEV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3Rl
bmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZQogICAgIGlm
IChsaXN0ZW5lckNyZWF0ZWRGcm9tU2NyaXB0KQogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZEFkZEV2ZW50TGlzdGVuZXIoKnRoaXMsIGV2ZW50VHlwZSwgbGlzdGVuZXJSZWYu
Z2V0KCksIG9wdGlvbnMuY2FwdHVyZSk7CiAKKyAgICBldmVudExpc3RlbmVyc0RpZENoYW5nZSgp
OwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMzMsNyArMTM0LDExIEBAIGJvb2wgRXZlbnRU
YXJnZXQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBF
dmVudExpc3RlbmVyCiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZW1vdmVF
dmVudExpc3RlbmVyKCp0aGlzLCBldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zLmNhcHR1cmUp
OwogCi0gICAgcmV0dXJuIGRhdGEtPmV2ZW50TGlzdGVuZXJNYXAucmVtb3ZlKGV2ZW50VHlwZSwg
bGlzdGVuZXIsIG9wdGlvbnMuY2FwdHVyZSk7CisgICAgaWYgKGRhdGEtPmV2ZW50TGlzdGVuZXJN
YXAucmVtb3ZlKGV2ZW50VHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMuY2FwdHVyZSkpIHsKKyAgICAg
ICAgZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBFdmVudFRhcmdldDo6c2V0QXR0cmlidXRl
RXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFdmVudExp
c3RlbmVyPiYmIGxpc3RlbmVyLCBET01XcmFwcGVyV29ybGQmIGlzb2xhdGVkV29ybGQpCkBAIC0z
NDUsOCArMzUwLDEwIEBAIHZvaWQgRXZlbnRUYXJnZXQ6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJz
KCkKICAgICB0aHJlYWREYXRhLnNldElzSW5SZW1vdmVBbGxFdmVudExpc3RlbmVycyh0cnVlKTsK
IAogICAgIGF1dG8qIGRhdGEgPSBldmVudFRhcmdldERhdGEoKTsKLSAgICBpZiAoZGF0YSkKKyAg
ICBpZiAoZGF0YSAmJiAhZGF0YS0+ZXZlbnRMaXN0ZW5lck1hcC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgZGF0YS0+ZXZlbnRMaXN0ZW5lck1hcC5jbGVhcigpOworICAgICAgICBldmVudExpc3RlbmVy
c0RpZENoYW5nZSgpOworICAgIH0KIAogICAgIHRocmVhZERhdGEuc2V0SXNJblJlbW92ZUFsbEV2
ZW50TGlzdGVuZXJzKGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKaW5kZXggNmJj
OTliMTg0ODBhOTEwYmI2MTBjNmI0ZjMzOTgyZDJmMDkxMDMzYy4uNjFiNTBlNTc4YjVlNTU3M2Mx
YjZkNjQ1ZjE4ZjBhOGQxYzFhZWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKQEAgLTEy
NCw2ICsxMjQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEmIGVu
c3VyZUV2ZW50VGFyZ2V0RGF0YSgpID0gMDsKICAgICBjb25zdCBFdmVudFRhcmdldERhdGEqIGV2
ZW50VGFyZ2V0RGF0YSgpIGNvbnN0OwogCisgICAgdmlydHVhbCB2b2lkIGV2ZW50TGlzdGVuZXJz
RGlkQ2hhbmdlKCkgeyB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlZkV2ZW50VGFy
Z2V0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggMjQ2YTRmYzcwMzIzMTBjNDNkODdk
ZDIxOTk4OWRmZGU4MzIxNmQxYS4uOGEyODVlNjcyNGUzM2Q1ZTkzNDJlNGM4MTU4NGQzYzVkODE4
MzQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC00MjYsNyArNDI2
LDYgQEAgT3B0aW9uYWw8RXhjZXB0aW9uT3I8dm9pZD4+IFhNTEh0dHBSZXF1ZXN0OjpwcmVwYXJl
VG9TZW5kKCkKICAgICBpZiAoIWNvbnRleHQuc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNl
Y3VyaXR5UG9saWN5KCkgJiYgIWNvbnRleHQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93
Q29ubmVjdFRvU291cmNlKG1fdXJsKSkgewogICAgICAgICBpZiAoIW1fYXN5bmMpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uT3I8dm9pZD4geyBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3Ig
fSB9OwotICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogICAgICAgICBtX3RpbWVv
dXRUaW1lci5zdG9wKCk7CiAgICAgICAgIG1fbmV0d29ya0Vycm9yVGltZXIuc3RhcnRPbmVTaG90
KDBfcyk7CiAgICAgICAgIHJldHVybiBFeGNlcHRpb25Pcjx2b2lkPiB7IH07CkBAIC02NDQsMTIg
KzY0Myw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0
KCkKIAogICAgICAgICAvLyBFaXRoZXIgbG9hZGVyIGlzIG51bGwgb3Igc29tZSBlcnJvciB3YXMg
c3luY2hyb25vdXNseSBzZW50IHRvIHVzLgogICAgICAgICBBU1NFUlQobV9sb2FkZXIgfHwgIW1f
c2VuZEZsYWcpOwotCi0gICAgICAgIC8vIE5laXRoZXIgdGhpcyBvYmplY3Qgbm9yIHRoZSBKYXZh
U2NyaXB0IHdyYXBwZXIgc2hvdWxkIGJlIGRlbGV0ZWQgd2hpbGUKLSAgICAgICAgLy8gYSByZXF1
ZXN0IGlzIGluIHByb2dyZXNzIGJlY2F1c2Ugd2UgbmVlZCB0byBrZWVwIHRoZSBsaXN0ZW5lcnMg
YWxpdmUsCi0gICAgICAgIC8vIGFuZCB0aGV5IGFyZSByZWZlcmVuY2VkIGJ5IHRoZSBKYXZhU2Ny
aXB0IHdyYXBwZXIuCi0gICAgICAgIGlmIChtX2xvYWRlcikKLSAgICAgICAgICAgIHNldFBlbmRp
bmdBY3Rpdml0eSgqdGhpcyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgpICYmICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlE
b2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpTeW5jWEhSLCAqZG9jdW1l
bnQoKSkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTmV0d29ya0Vycm9yIH07CkBA
IC02NjksNyArNjYyLDYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0
ZVJlcXVlc3QoKQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjphYm9ydCgpCiB7Ci0gICAgLy8gaW50
ZXJuYWxBYm9ydCgpIGNhbGxzIHVuc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpLCB3aGljaCBtYXkg
cmVsZWFzZSB0aGUgbGFzdCByZWZlcmVuY2UuCiAgICAgUmVmPFhNTEh0dHBSZXF1ZXN0PiBwcm90
ZWN0ZWRUaGlzKCp0aGlzKTsKIAogICAgIG1fd2FzQWJvcnRlZEJ5Q2xpZW50ID0gdHJ1ZTsKQEAg
LTcxNSw4ICs3MDcsNiBAQCBib29sIFhNTEh0dHBSZXF1ZXN0OjppbnRlcm5hbEFib3J0KCkKICAg
ICAvLyBTYXZlIHRoaXMgaW5mb3JtYXRpb24gdG8gYSBsb2NhbCB2YXJpYWJsZSBzaW5jZSB3ZSBh
cmUgZ29pbmcgdG8gZHJvcCBwcm90ZWN0aW9uLgogICAgIGJvb2wgbmV3TG9hZFN0YXJ0ZWQgPSBt
X2xvYWRlcjsKIAotICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKLQogICAgIHJldHVy
biAhbmV3TG9hZFN0YXJ0ZWQ7CiB9CiAKQEAgLTc2Miw3ICs3NTIsNiBAQCB2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjpuZXR3b3JrRXJyb3IoKQogdm9pZCBYTUxIdHRwUmVxdWVzdDo6bmV0d29ya0Vycm9y
VGltZXJGaXJlZCgpCiB7CiAgICAgbmV0d29ya0Vycm9yKCk7Ci0gICAgdW5zZXRQZW5kaW5nQWN0
aXZpdHkoKnRoaXMpOwogfQogICAgIAogdm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnRFcnJvcigp
CkBAIC05MDgsNyArODk3LDYgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbChjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICAvLyBJbiBjYXNlIGRpZEZhaWwgaXMgY2FsbGVkIHN5
bmNocm9ub3VzbHkgb24gYW4gYXN5bmNocm9ub3VzIFhIUiBjYWxsLCBsZXQncyBkaXNwYXRjaCBu
ZXR3b3JrIGVycm9yIGFzeW5jaHJvbm91c2x5CiAgICAgaWYgKG1fYXN5bmMgJiYgbV9zZW5kRmxh
ZyAmJiAhbV9sb2FkZXIpIHsKICAgICAgICAgbV9zZW5kRmxhZyA9IGZhbHNlOwotICAgICAgICBz
ZXRQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogICAgICAgICBtX3RpbWVvdXRUaW1lci5zdG9wKCk7
CiAgICAgICAgIG1fbmV0d29ya0Vycm9yVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiAgICAgICAg
IHJldHVybjsKQEAgLTkzMCw3ICs5MTgsNiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5p
c2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpCiAKICAgICBtX3Jlc3BvbnNlQnVpbGRlci5zaHJpbmtU
b0ZpdCgpOwogCi0gICAgYm9vbCBoYWRMb2FkZXIgPSBtX2xvYWRlcjsKICAgICBtX2xvYWRlciA9
IG51bGxwdHI7CiAKICAgICBtX3NlbmRGbGFnID0gZmFsc2U7CkBAIC05MzksOSArOTI2LDYgQEAg
dm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nKQogICAg
IG1fZGVjb2RlciA9IG51bGxwdHI7CiAKICAgICBtX3RpbWVvdXRUaW1lci5zdG9wKCk7Ci0KLSAg
ICBpZiAoaGFkTG9hZGVyKQotICAgICAgICB1bnNldFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CiB9
CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBi
eXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCkBAIC0xMTEx
LDcgKzEwOTUsNiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaXNwYXRjaEVycm9yRXZlbnRzKGNv
bnN0IEF0b21TdHJpbmcmIHR5cGUpCiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZFJlYWNoVGlt
ZW91dCgpCiB7Ci0gICAgLy8gaW50ZXJuYWxBYm9ydCgpIGNhbGxzIHVuc2V0UGVuZGluZ0FjdGl2
aXR5KHRoaXMpLCB3aGljaCBtYXkgcmVsZWFzZSB0aGUgbGFzdCByZWZlcmVuY2UuCiAgICAgUmVm
PFhNTEh0dHBSZXF1ZXN0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKICAgICBpZiAoIWludGVybmFs
QWJvcnQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTE2NSw0ICsxMTQ4LDQxIEBAIHZvaWQgWE1M
SHR0cFJlcXVlc3Q6OnNldE1heGltdW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZyhk
b3VibGUgaW50ZXJ2YWwpCiAgICAgbV9tYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndh
cmRpbmcgPSBTZWNvbmRzKGludGVydmFsKTsgICAgCiB9CiAKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6
OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCkKK3sKKyAgICBtX2hhc1JlbGV2YW50RXZlbnRMaXN0
ZW5lciA9IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5yZWFkeXN0YXRlY2hhbmdlRXZl
bnQpCisgICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2
ZW50KQorICAgICAgICB8fCBoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuYWJvcnRFdmVu
dCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmVycm9yRXZlbnQp
CisgICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpCisg
ICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS50aW1lb3V0RXZlbnQpCisg
ICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5sb2FkZW5kRXZlbnQpOwor
fQorCisvLyBBbiBYTUxIdHRwUmVxdWVzdCBvYmplY3QgbXVzdCBub3QgYmUgZ2FyYmFnZSBjb2xs
ZWN0ZWQgaWYgaXRzIHN0YXRlIGlzIGVpdGhlciBvcGVuZWQgd2l0aCB0aGUgc2VuZCgpIGZsYWcg
c2V0LCBoZWFkZXJzIHJlY2VpdmVkLCBvciBsb2FkaW5nLCBhbmQKKy8vIGl0IGhhcyBvbmUgb3Ig
bW9yZSBldmVudCBsaXN0ZW5lcnMgcmVnaXN0ZXJlZCB3aG9zZSB0eXBlIGlzIG9uZSBvZiByZWFk
eXN0YXRlY2hhbmdlLCBwcm9ncmVzcywgYWJvcnQsIGVycm9yLCBsb2FkLCB0aW1lb3V0LCBhbmQg
bG9hZGVuZC4KK2Jvb2wgWE1MSHR0cFJlcXVlc3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0
Cit7CisgICAgaWYgKEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFtX2hhc1JlbGV2YW50RXZlbnRMaXN0ZW5lcikK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKG1fcHJvZ3Jlc3NFdmVudFRocm90dGxl
Lmhhc1BlbmRpbmdFdmVudHMoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBzd2l0Y2gg
KHJlYWR5U3RhdGUoKSkgeworICAgIGNhc2UgT1BFTkVEOgorICAgICAgICByZXR1cm4gbV9zZW5k
RmxhZzsKKyAgICBjYXNlIEhFQURFUlNfUkVDRUlWRUQ6CisgICAgY2FzZSBMT0FESU5HOgorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFVOU0VOVDoKKyAgICBjYXNlIERPTkU6CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggZGYzMmFiMGRlOWVh
NjM1M2MzY2FkNTVjNWNmMTkyZjhiMjZjYzc0MC4uY2QzNGY5ZTk4MGE2ZjY0ZjcyZWRiNjNlNWUw
NDkxNTI0NjYyODU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTEzMCw5
ICsxMzAsMTQgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNYXhpbXVt
SW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcoZG91YmxlKTsKIAorICAgIGJvb2wgaGFz
UGVuZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
WE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCisgICAgLy8gRXZlbnRU
YXJnZXQuCisgICAgdm9pZCBldmVudExpc3RlbmVyc0RpZENoYW5nZSgpIGZpbmFsOworCiAgICAg
VGV4dEVuY29kaW5nIGZpbmFsUmVzcG9uc2VDaGFyc2V0KCkgY29uc3Q7CiAKICAgICAvLyBBY3Rp
dmVET01PYmplY3QKQEAgLTI0Myw2ICsyNDgsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPEV4
Y2VwdGlvbkNvZGU+IG1fZXhjZXB0aW9uQ29kZTsKICAgICBSZWZQdHI8VXNlckdlc3R1cmVUb2tl
bj4gbV91c2VyR2VzdHVyZVRva2VuOwogICAgIFNlY29uZHMgbV9tYXhpbXVtSW50ZXJ2YWxGb3JV
c2VyR2VzdHVyZUZvcndhcmRpbmc7CisgICAgYm9vbCBtX2hhc1JlbGV2YW50RXZlbnRMaXN0ZW5l
ciB7IGZhbHNlIH07CiB9OwogCiBpbmxpbmUgYXV0byBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VU
eXBlKCkgY29uc3QgLT4gUmVzcG9uc2VUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcAppbmRleCA3NzQ1
ZjRmOGNmNzE3MjVjNGE4ZGViYTIwZDFjN2MzMTY1MzliMWQxLi4xZGY1YmM0YzNmZjE4ZjRmNzg5
ODgxZmIxNDBjNzdjNWU2NGYwY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKQEAgLTE1OSw0ICsx
NTksOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpyZXN1bWUo
KQogICAgIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVyUmVzdW1pbmdUaW1lci5zdGFydE9u
ZVNob3QoMF9zKTsKIH0KIAorYm9vbCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRs
ZTo6aGFzUGVuZGluZ0V2ZW50cygpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX2V2ZW50c0RlZmVy
cmVkRHVlVG9TdXNwZW5zaW9uLmlzRW1wdHkoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudFRocm90dGxlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGUuaAppbmRleCBhODNjZjNkYThkNjZiOTgzYjQ5Njg2OGQ3Zjg4NWYzZDcw
YWYxMGI5Li41MmM1ZDhmNjM0ZDQ0NzQ4NWEzMjM3ZGVjODAyMTlhZWM4YTEyMmIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
VGhyb3R0bGUuaApAQCAtNTQsNiArNTQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kKCk7
CiAgICAgdm9pZCByZXN1bWUoKTsKIAorICAgIGJvb2wgaGFzUGVuZGluZ0V2ZW50cygpIGNvbnN0
OworCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1pbmltdW1Qcm9ncmVzc0V2
ZW50RGlzcGF0Y2hpbmdJbnRlcnZhbDsKIApAQCAtNjgsNyArNzAsNiBAQCBwcml2YXRlOgogICAg
IHVuc2lnbmVkIGxvbmcgbG9uZyBtX2xvYWRlZCB7IDAgfTsKICAgICB1bnNpZ25lZCBsb25nIGxv
bmcgbV90b3RhbCB7IDAgfTsKIAotICAgIFJlZlB0cjxFdmVudD4gbV9kZWZlcnJlZFByb2dyZXNz
RXZlbnQ7CiAgICAgVmVjdG9yPFJlZjxFdmVudD4+IG1fZXZlbnRzRGVmZXJyZWREdWVUb1N1c3Bl
bnNpb247CiAgICAgU3VzcGVuZGFibGVUaW1lciBtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NF
dmVudFRpbWVyOwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9kaXNwYXRjaERlZmVycmVkRXZlbnRz
QWZ0ZXJSZXN1bWluZ1RpbWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392318</attachid>
            <date>2020-03-03 13:08:59 -0800</date>
            <delta_ts>2020-03-06 14:05:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208481-20200303130858.patch</filename>
            <type>text/plain</type>
            <size>11978</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJjYTIxYWZmMWNjMmEz
NjVkMGMyYzA2NTQ5YTZlZmJmMDE4MTU5MC4uMjYzMTdhMTE3OGZmYzFjYjk2Y2U4NTFiMGI3ODFk
N2U4ZmYyYzBhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAzLTAzICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgWEhSIEpTIHdy
YXBwZXIgbGlmZXRpbWUgbWFuYWdlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NDgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2ltcGxpZnkgWEhSIEpTIHdyYXBwZXIgbGlmZXRpbWUgbWFuYWdl
bWVudCBhbmQgYWxpZ24gd2l0aCB0aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRwczov
L3hoci5zcGVjLndoYXR3Zy5vcmcvI2dhcmJhZ2UtY29sbGVjdGlvbgorCisgICAgICAgIFdlIG5v
dyBvdmVycmlkZSBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIHRvIG1hdGNo
IGV4YWN0bHkgdGhlIHRleHQKKyAgICAgICAgaW4gdGhlIHNwZWNpZmljYXRpb246CisgICAgICAg
ICIiIgorICAgICAgICBBbiBYTUxIdHRwUmVxdWVzdCBvYmplY3QgbXVzdCBub3QgYmUgZ2FyYmFn
ZSBjb2xsZWN0ZWQgaWYgaXRzIHN0YXRlIGlzIGVpdGhlcgorICAgICAgICBvcGVuZWQgd2l0aCB0
aGUgc2VuZCgpIGZsYWcgc2V0LCBoZWFkZXJzIHJlY2VpdmVkLCBvciBsb2FkaW5nLCBhbmQgaXQg
aGFzIG9uZSBvcgorICAgICAgICBtb3JlIGV2ZW50IGxpc3RlbmVycyByZWdpc3RlcmVkIHdob3Nl
IHR5cGUgaXMgb25lIG9mIHJlYWR5c3RhdGVjaGFuZ2UsIHByb2dyZXNzLAorICAgICAgICBhYm9y
dCwgZXJyb3IsIGxvYWQsIHRpbWVvdXQsIGFuZCBsb2FkZW5kLgorICAgICAgICAiIiIKKworICAg
ICAgICBQcmV2aW91c2x5LCB3ZSB3ZXJlIHRyeWluZyB0byBpbXBsZW1lbnQgdGhpcyBiZWhhdmlv
ciB3aXRoIEFjdGl2ZURPTU9iamVjdCdzCisgICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgpIC8g
dW5zZXRQZW5kaW5nQWN0aXZpdHkoKSBidXQgdGhpcyB3YXMgZXJyb3IgYW5kIGxlYWsgcHJvbmUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Qgc3VjaCBh
czoKKyAgICAgICAgZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nYy5odG1sCisK
KyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRU
YXJnZXQ6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6
OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnJl
bW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSk6Cisg
ICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0
dHBSZXF1ZXN0OjpwcmVwYXJlVG9TZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1
ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojph
Ym9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aW50ZXJuYWxBYm9ydCk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6bmV0d29ya0Vycm9yVGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbCk6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkUmVhY2hUaW1lb3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAg
ICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6Omhhc1BlbmRpbmdFdmVudHMgY29uc3QpOgorICAgICAg
ICAqIHhtbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oOgorCiAyMDIwLTAz
LTAzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZHJlc3MgcG9zdC1jb21taXQgZmVlZGJhY2sgYWZ0ZXIgcjI1NzczMgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dFRhcmdldC5jcHAKaW5kZXggY2QwZGUwODgxYzQwMDFmZWRjN2Q4ZDY3NDAyNjgxYWIxOGQ2NGQ1
Ny4uOGMzODUwOWI5ZDVkYzI5YTAzMmVmY2M4NmU3YTY4MTNhZjBiZTg1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnRUYXJnZXQuY3BwCkBAIC05NCw2ICs5NCw3IEBAIGJvb2wgRXZlbnRUYXJnZXQ6OmFk
ZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0
ZW5lCiAgICAgaWYgKGxpc3RlbmVyQ3JlYXRlZEZyb21TY3JpcHQpCiAgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQWRkRXZlbnRMaXN0ZW5lcigqdGhpcywgZXZlbnRUeXBlLCBs
aXN0ZW5lclJlZi5nZXQoKSwgb3B0aW9ucy5jYXB0dXJlKTsKIAorICAgIGV2ZW50TGlzdGVuZXJz
RGlkQ2hhbmdlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTEzMyw3ICsxMzQsMTEgQEAg
Ym9vbCBFdmVudFRhcmdldDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBl
dmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
d2lsbFJlbW92ZUV2ZW50TGlzdGVuZXIoKnRoaXMsIGV2ZW50VHlwZSwgbGlzdGVuZXIsIG9wdGlv
bnMuY2FwdHVyZSk7CiAKLSAgICByZXR1cm4gZGF0YS0+ZXZlbnRMaXN0ZW5lck1hcC5yZW1vdmUo
ZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0aW9ucy5jYXB0dXJlKTsKKyAgICBpZiAoZGF0YS0+ZXZl
bnRMaXN0ZW5lck1hcC5yZW1vdmUoZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0aW9ucy5jYXB0dXJl
KSkgeworICAgICAgICBldmVudExpc3RlbmVyc0RpZENoYW5nZSgpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBib29sIEV2ZW50VGFyZ2V0Ojpz
ZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVm
UHRyPEV2ZW50TGlzdGVuZXI+JiYgbGlzdGVuZXIsIERPTVdyYXBwZXJXb3JsZCYgaXNvbGF0ZWRX
b3JsZCkKQEAgLTM0NSw4ICszNTAsMTAgQEAgdm9pZCBFdmVudFRhcmdldDo6cmVtb3ZlQWxsRXZl
bnRMaXN0ZW5lcnMoKQogICAgIHRocmVhZERhdGEuc2V0SXNJblJlbW92ZUFsbEV2ZW50TGlzdGVu
ZXJzKHRydWUpOwogCiAgICAgYXV0byogZGF0YSA9IGV2ZW50VGFyZ2V0RGF0YSgpOwotICAgIGlm
IChkYXRhKQorICAgIGlmIChkYXRhICYmICFkYXRhLT5ldmVudExpc3RlbmVyTWFwLmlzRW1wdHko
KSkgewogICAgICAgICBkYXRhLT5ldmVudExpc3RlbmVyTWFwLmNsZWFyKCk7CisgICAgICAgIGV2
ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCk7CisgICAgfQogCiAgICAgdGhyZWFkRGF0YS5zZXRJc0lu
UmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoZmFsc2UpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQu
aAppbmRleCA2YmM5OWIxODQ4MGE5MTBiYjYxMGM2YjRmMzM5ODJkMmYwOTEwMzNjLi42MWI1MGU1
NzhiNWU1NTczYzFiNmQ2NDVmMThmMGE4ZDFjMWFlYjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXQuaApAQCAtMTI0LDYgKzEyNCw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIEV2ZW50VGFy
Z2V0RGF0YSYgZW5zdXJlRXZlbnRUYXJnZXREYXRhKCkgPSAwOwogICAgIGNvbnN0IEV2ZW50VGFy
Z2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZXZl
bnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKSB7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
cmVmRXZlbnRUYXJnZXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQo
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCAyNDZhNGZjNzAz
MjMxMGM0M2Q4N2RkMjE5OTg5ZGZkZTgzMjE2ZDFhLi4zYzkxODczNTM2Y2I3MzAyNjNlMThjNjk3
Y2M2NTQ1YWE5NGIzMjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAg
LTQyNiw3ICs0MjYsNiBAQCBPcHRpb25hbDxFeGNlcHRpb25Pcjx2b2lkPj4gWE1MSHR0cFJlcXVl
c3Q6OnByZXBhcmVUb1NlbmQoKQogICAgIGlmICghY29udGV4dC5zaG91bGRCeXBhc3NNYWluV29y
bGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSAmJiAhY29udGV4dC5jb250ZW50U2VjdXJpdHlQb2xp
Y3koKS0+YWxsb3dDb25uZWN0VG9Tb3VyY2UobV91cmwpKSB7CiAgICAgICAgIGlmICghbV9hc3lu
YykKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb25Pcjx2b2lkPiB7IEV4Y2VwdGlvbiB7IE5l
dHdvcmtFcnJvciB9IH07Ci0gICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CiAgICAg
ICAgIG1fdGltZW91dFRpbWVyLnN0b3AoKTsKICAgICAgICAgbV9uZXR3b3JrRXJyb3JUaW1lci5z
dGFydE9uZVNob3QoMF9zKTsKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbk9yPHZvaWQ+IHsgfTsK
QEAgLTY0NCwxMiArNjQzLDYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNy
ZWF0ZVJlcXVlc3QoKQogCiAgICAgICAgIC8vIEVpdGhlciBsb2FkZXIgaXMgbnVsbCBvciBzb21l
IGVycm9yIHdhcyBzeW5jaHJvbm91c2x5IHNlbnQgdG8gdXMuCiAgICAgICAgIEFTU0VSVChtX2xv
YWRlciB8fCAhbV9zZW5kRmxhZyk7Ci0KLSAgICAgICAgLy8gTmVpdGhlciB0aGlzIG9iamVjdCBu
b3IgdGhlIEphdmFTY3JpcHQgd3JhcHBlciBzaG91bGQgYmUgZGVsZXRlZCB3aGlsZQotICAgICAg
ICAvLyBhIHJlcXVlc3QgaXMgaW4gcHJvZ3Jlc3MgYmVjYXVzZSB3ZSBuZWVkIHRvIGtlZXAgdGhl
IGxpc3RlbmVycyBhbGl2ZSwKLSAgICAgICAgLy8gYW5kIHRoZXkgYXJlIHJlZmVyZW5jZWQgYnkg
dGhlIEphdmFTY3JpcHQgd3JhcHBlci4KLSAgICAgICAgaWYgKG1fbG9hZGVyKQotICAgICAgICAg
ICAgc2V0UGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50KCkgJiYgIWlzRmVhdHVyZVBvbGlj
eUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OlN5bmNY
SFIsICpkb2N1bWVudCgpKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOZXR3b3Jr
RXJyb3IgfTsKQEAgLTY2OSw3ICs2NjIsNiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmFib3J0KCkKIHsK
LSAgICAvLyBpbnRlcm5hbEFib3J0KCkgY2FsbHMgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyks
IHdoaWNoIG1heSByZWxlYXNlIHRoZSBsYXN0IHJlZmVyZW5jZS4KICAgICBSZWY8WE1MSHR0cFJl
cXVlc3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAgbV93YXNBYm9ydGVkQnlDbGllbnQg
PSB0cnVlOwpAQCAtNzE1LDggKzcwNyw2IEBAIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OmludGVybmFs
QWJvcnQoKQogICAgIC8vIFNhdmUgdGhpcyBpbmZvcm1hdGlvbiB0byBhIGxvY2FsIHZhcmlhYmxl
IHNpbmNlIHdlIGFyZSBnb2luZyB0byBkcm9wIHByb3RlY3Rpb24uCiAgICAgYm9vbCBuZXdMb2Fk
U3RhcnRlZCA9IG1fbG9hZGVyOwogCi0gICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwot
CiAgICAgcmV0dXJuICFuZXdMb2FkU3RhcnRlZDsKIH0KIApAQCAtNzYyLDcgKzc1Miw2IEBAIHZv
aWQgWE1MSHR0cFJlcXVlc3Q6Om5ldHdvcmtFcnJvcigpCiB2b2lkIFhNTEh0dHBSZXF1ZXN0Ojpu
ZXR3b3JrRXJyb3JUaW1lckZpcmVkKCkKIHsKICAgICBuZXR3b3JrRXJyb3IoKTsKLSAgICB1bnNl
dFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CiB9CiAgICAgCiB2b2lkIFhNTEh0dHBSZXF1ZXN0Ojph
Ym9ydEVycm9yKCkKQEAgLTkwOCw3ICs4OTcsNiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRG
YWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIC8vIEluIGNhc2UgZGlkRmFpbCBp
cyBjYWxsZWQgc3luY2hyb25vdXNseSBvbiBhbiBhc3luY2hyb25vdXMgWEhSIGNhbGwsIGxldCdz
IGRpc3BhdGNoIG5ldHdvcmsgZXJyb3IgYXN5bmNocm9ub3VzbHkKICAgICBpZiAobV9hc3luYyAm
JiBtX3NlbmRGbGFnICYmICFtX2xvYWRlcikgewogICAgICAgICBtX3NlbmRGbGFnID0gZmFsc2U7
Ci0gICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CiAgICAgICAgIG1fdGltZW91dFRp
bWVyLnN0b3AoKTsKICAgICAgICAgbV9uZXR3b3JrRXJyb3JUaW1lci5zdGFydE9uZVNob3QoMF9z
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTMwLDcgKzkxOCw2IEBAIHZvaWQgWE1MSHR0cFJlcXVl
c3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZykKIAogICAgIG1fcmVzcG9uc2VCdWls
ZGVyLnNocmlua1RvRml0KCk7CiAKLSAgICBib29sIGhhZExvYWRlciA9IG1fbG9hZGVyOwogICAg
IG1fbG9hZGVyID0gbnVsbHB0cjsKIAogICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKQEAgLTkzOSw5
ICs5MjYsNiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVk
IGxvbmcpCiAgICAgbV9kZWNvZGVyID0gbnVsbHB0cjsKIAogICAgIG1fdGltZW91dFRpbWVyLnN0
b3AoKTsKLQotICAgIGlmIChoYWRMb2FkZXIpCi0gICAgICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5
KCp0aGlzKTsKIH0KIAogdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkU2VuZERhdGEodW5zaWduZWQg
bG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2Vu
dCkKQEAgLTExMTEsNyArMTA5NSw2IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpc3BhdGNoRXJy
b3JFdmVudHMoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkKIAogdm9pZCBYTUxIdHRwUmVxdWVzdDo6
ZGlkUmVhY2hUaW1lb3V0KCkKIHsKLSAgICAvLyBpbnRlcm5hbEFib3J0KCkgY2FsbHMgdW5zZXRQ
ZW5kaW5nQWN0aXZpdHkodGhpcyksIHdoaWNoIG1heSByZWxlYXNlIHRoZSBsYXN0IHJlZmVyZW5j
ZS4KICAgICBSZWY8WE1MSHR0cFJlcXVlc3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAgIGlm
ICghaW50ZXJuYWxBYm9ydCgpKQogICAgICAgICByZXR1cm47CkBAIC0xMTY1LDQgKzExNDgsNDEg
QEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0TWF4aW11bUludGVydmFsRm9yVXNlckdlc3R1cmVG
b3J3YXJkaW5nKGRvdWJsZSBpbnRlcnZhbCkKICAgICBtX21heGltdW1JbnRlcnZhbEZvclVzZXJH
ZXN0dXJlRm9yd2FyZGluZyA9IFNlY29uZHMoaW50ZXJ2YWwpOyAgICAKIH0KIAordm9pZCBYTUxI
dHRwUmVxdWVzdDo6ZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKQoreworICAgIG1faGFzUmVsZXZh
bnRFdmVudExpc3RlbmVyID0gaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLnJlYWR5c3Rh
dGVjaGFuZ2VFdmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygp
LnByb2dyZXNzRXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMo
KS5hYm9ydEV2ZW50KQorICAgICAgICB8fCBoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCku
ZXJyb3JFdmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmxv
YWRFdmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLnRpbWVv
dXRFdmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmxvYWRl
bmRFdmVudCk7Cit9CisKKy8vIEFuIFhNTEh0dHBSZXF1ZXN0IG9iamVjdCBtdXN0IG5vdCBiZSBn
YXJiYWdlIGNvbGxlY3RlZCBpZiBpdHMgc3RhdGUgaXMgZWl0aGVyIG9wZW5lZCB3aXRoIHRoZSBz
ZW5kKCkgZmxhZyBzZXQsIGhlYWRlcnMgcmVjZWl2ZWQsIG9yIGxvYWRpbmcsIGFuZAorLy8gaXQg
aGFzIG9uZSBvciBtb3JlIGV2ZW50IGxpc3RlbmVycyByZWdpc3RlcmVkIHdob3NlIHR5cGUgaXMg
b25lIG9mIHJlYWR5c3RhdGVjaGFuZ2UsIHByb2dyZXNzLCBhYm9ydCwgZXJyb3IsIGxvYWQsIHRp
bWVvdXQsIGFuZCBsb2FkZW5kLgorYm9vbCBYTUxIdHRwUmVxdWVzdDo6aGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QKK3sKKyAgICBpZiAoQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5nQWN0aXZp
dHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIW1faGFzUmVsZXZhbnRFdmVu
dExpc3RlbmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV9wcm9ncmVzc0V2
ZW50VGhyb3R0bGUuaGFzUGVuZGluZ0V2ZW50cygpIHx8IG1fbmV0d29ya0Vycm9yVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBzd2l0Y2ggKHJlYWR5U3RhdGUo
KSkgeworICAgIGNhc2UgT1BFTkVEOgorICAgICAgICByZXR1cm4gbV9zZW5kRmxhZzsKKyAgICBj
YXNlIEhFQURFUlNfUkVDRUlWRUQ6CisgICAgY2FzZSBMT0FESU5HOgorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBjYXNlIFVOU0VOVDoKKyAgICBjYXNlIERPTkU6CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggZGYzMmFiMGRlOWVhNjM1M2MzY2FkNTVj
NWNmMTkyZjhiMjZjYzc0MC4uY2QzNGY5ZTk4MGE2ZjY0ZjcyZWRiNjNlNWUwNDkxNTI0NjYyODU1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTEzMCw5ICsxMzAsMTQgQEAg
cHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNYXhpbXVtSW50ZXJ2YWxGb3JV
c2VyR2VzdHVyZUZvcndhcmRpbmcoZG91YmxlKTsKIAorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2
aXR5KCkgY29uc3QgZmluYWw7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgWE1MSHR0cFJlcXVl
c3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCisgICAgLy8gRXZlbnRUYXJnZXQuCisgICAg
dm9pZCBldmVudExpc3RlbmVyc0RpZENoYW5nZSgpIGZpbmFsOworCiAgICAgVGV4dEVuY29kaW5n
IGZpbmFsUmVzcG9uc2VDaGFyc2V0KCkgY29uc3Q7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QK
QEAgLTI0Myw2ICsyNDgsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPEV4Y2VwdGlvbkNvZGU+
IG1fZXhjZXB0aW9uQ29kZTsKICAgICBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gbV91c2VyR2Vz
dHVyZVRva2VuOwogICAgIFNlY29uZHMgbV9tYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZv
cndhcmRpbmc7CisgICAgYm9vbCBtX2hhc1JlbGV2YW50RXZlbnRMaXN0ZW5lciB7IGZhbHNlIH07
CiB9OwogCiBpbmxpbmUgYXV0byBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUeXBlKCkgY29uc3Qg
LT4gUmVzcG9uc2VUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcAppbmRleCA3NzQ1ZjRmOGNmNzE3MjVj
NGE4ZGViYTIwZDFjN2MzMTY1MzliMWQxLi4xZGY1YmM0YzNmZjE4ZjRmNzg5ODgxZmIxNDBjNzdj
NWU2NGYwY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKQEAgLTE1OSw0ICsxNTksOSBAQCB2b2lk
IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpyZXN1bWUoKQogICAgIG1fZGlz
cGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVyUmVzdW1pbmdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsK
IH0KIAorYm9vbCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6aGFzUGVuZGlu
Z0V2ZW50cygpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNw
ZW5zaW9uLmlzRW1wdHkoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGUuaAppbmRleCBhODNjZjNkYThkNjZiOTgzYjQ5Njg2OGQ3Zjg4NWYzZDcwYWYxMGI5Li41MmM1
ZDhmNjM0ZDQ0NzQ4NWEzMjM3ZGVjODAyMTlhZWM4YTEyMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaApA
QCAtNTQsNiArNTQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCBy
ZXN1bWUoKTsKIAorICAgIGJvb2wgaGFzUGVuZGluZ0V2ZW50cygpIGNvbnN0OworCiBwcml2YXRl
OgogICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1pbmltdW1Qcm9ncmVzc0V2ZW50RGlzcGF0Y2hp
bmdJbnRlcnZhbDsKIApAQCAtNjgsNyArNzAsNiBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBtX2xvYWRlZCB7IDAgfTsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV90b3RhbCB7
IDAgfTsKIAotICAgIFJlZlB0cjxFdmVudD4gbV9kZWZlcnJlZFByb2dyZXNzRXZlbnQ7CiAgICAg
VmVjdG9yPFJlZjxFdmVudD4+IG1fZXZlbnRzRGVmZXJyZWREdWVUb1N1c3BlbnNpb247CiAgICAg
U3VzcGVuZGFibGVUaW1lciBtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVyOwog
ICAgIFN1c3BlbmRhYmxlVGltZXIgbV9kaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWlu
Z1RpbWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392770</attachid>
            <date>2020-03-06 14:05:45 -0800</date>
            <delta_ts>2020-03-06 15:29:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208481-20200306140544.patch</filename>
            <type>text/plain</type>
            <size>13646</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJhMDMwNjE1YWIzNjJm
NGM5ODkyNTZkNDc1Yzc5MmIyMjM4MDg2ZS4uZWJlNTNlNWY3OGMzMGE2M2JhZDkwOGYyNmVhZmVk
YzVlY2JhYmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgWEhSIEpTIHdy
YXBwZXIgbGlmZXRpbWUgbWFuYWdlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NDgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2ltcGxpZnkgWEhSIEpTIHdyYXBwZXIgbGlmZXRpbWUgbWFuYWdl
bWVudCBhbmQgYWxpZ24gd2l0aCB0aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRwczov
L3hoci5zcGVjLndoYXR3Zy5vcmcvI2dhcmJhZ2UtY29sbGVjdGlvbgorCisgICAgICAgIFdlIG5v
dyBvdmVycmlkZSBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIHRvIG1hdGNo
IGV4YWN0bHkgdGhlIHRleHQKKyAgICAgICAgaW4gdGhlIHNwZWNpZmljYXRpb246CisgICAgICAg
ICIiIgorICAgICAgICBBbiBYTUxIdHRwUmVxdWVzdCBvYmplY3QgbXVzdCBub3QgYmUgZ2FyYmFn
ZSBjb2xsZWN0ZWQgaWYgaXRzIHN0YXRlIGlzIGVpdGhlcgorICAgICAgICBvcGVuZWQgd2l0aCB0
aGUgc2VuZCgpIGZsYWcgc2V0LCBoZWFkZXJzIHJlY2VpdmVkLCBvciBsb2FkaW5nLCBhbmQgaXQg
aGFzIG9uZSBvcgorICAgICAgICBtb3JlIGV2ZW50IGxpc3RlbmVycyByZWdpc3RlcmVkIHdob3Nl
IHR5cGUgaXMgb25lIG9mIHJlYWR5c3RhdGVjaGFuZ2UsIHByb2dyZXNzLAorICAgICAgICBhYm9y
dCwgZXJyb3IsIGxvYWQsIHRpbWVvdXQsIGFuZCBsb2FkZW5kLgorICAgICAgICAiIiIKKworICAg
ICAgICBQcmV2aW91c2x5LCB3ZSB3ZXJlIHRyeWluZyB0byBpbXBsZW1lbnQgdGhpcyBiZWhhdmlv
ciB3aXRoIEFjdGl2ZURPTU9iamVjdCdzCisgICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgpIC8g
dW5zZXRQZW5kaW5nQWN0aXZpdHkoKSBidXQgdGhpcyB3YXMgZXJyb3IgYW5kIGxlYWsgcHJvbmUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Qgc3VjaCBh
czoKKyAgICAgICAgZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nYy5odG1sCisK
KyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRU
YXJnZXQ6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6
OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnJl
bW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSk6Cisg
ICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0
dHBSZXF1ZXN0OjpwcmVwYXJlVG9TZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1
ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojph
Ym9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aW50ZXJuYWxBYm9ydCk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6bmV0d29ya0Vycm9yVGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbCk6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkUmVhY2hUaW1lb3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAg
ICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6Omhhc1BlbmRpbmdFdmVudHMgY29uc3QpOgorICAgICAg
ICAqIHhtbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oOgorCiAyMDIwLTAz
LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgTm93UGxheWluZyBjb21tYW5kcyBpbiBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0LmNwcAppbmRleCBjZDBkZTA4ODFjNDAwMWZlZGM3ZDhkNjc0MDI2ODFhYjE4ZDY0
ZDU3Li44YzM4NTA5YjlkNWRjMjlhMDMyZWZjYzg2ZTdhNjgxM2FmMGJlODU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTk0LDYgKzk0LDcgQEAgYm9vbCBFdmVudFRhcmdldDo6
YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExp
c3RlbmUKICAgICBpZiAobGlzdGVuZXJDcmVhdGVkRnJvbVNjcmlwdCkKICAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRBZGRFdmVudExpc3RlbmVyKCp0aGlzLCBldmVudFR5cGUs
IGxpc3RlbmVyUmVmLmdldCgpLCBvcHRpb25zLmNhcHR1cmUpOwogCisgICAgZXZlbnRMaXN0ZW5l
cnNEaWRDaGFuZ2UoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTMzLDcgKzEzNCwxMSBA
QCBib29sIEV2ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcm
IGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsUmVtb3ZlRXZlbnRMaXN0ZW5lcigqdGhpcywgZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0
aW9ucy5jYXB0dXJlKTsKIAotICAgIHJldHVybiBkYXRhLT5ldmVudExpc3RlbmVyTWFwLnJlbW92
ZShldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zLmNhcHR1cmUpOworICAgIGlmIChkYXRhLT5l
dmVudExpc3RlbmVyTWFwLnJlbW92ZShldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zLmNhcHR1
cmUpKSB7CisgICAgICAgIGV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgRXZlbnRUYXJnZXQ6
OnNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBS
ZWZQdHI8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgRE9NV3JhcHBlcldvcmxkJiBpc29sYXRl
ZFdvcmxkKQpAQCAtMzQ1LDggKzM1MCwxMCBAQCB2b2lkIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxF
dmVudExpc3RlbmVycygpCiAgICAgdGhyZWFkRGF0YS5zZXRJc0luUmVtb3ZlQWxsRXZlbnRMaXN0
ZW5lcnModHJ1ZSk7CiAKICAgICBhdXRvKiBkYXRhID0gZXZlbnRUYXJnZXREYXRhKCk7Ci0gICAg
aWYgKGRhdGEpCisgICAgaWYgKGRhdGEgJiYgIWRhdGEtPmV2ZW50TGlzdGVuZXJNYXAuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGRhdGEtPmV2ZW50TGlzdGVuZXJNYXAuY2xlYXIoKTsKKyAgICAgICAg
ZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKTsKKyAgICB9CiAKICAgICB0aHJlYWREYXRhLnNldElz
SW5SZW1vdmVBbGxFdmVudExpc3RlbmVycyhmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dC5oCmluZGV4IDZiYzk5YjE4NDgwYTkxMGJiNjEwYzZiNGYzMzk4MmQyZjA5MTAzM2MuLjYxYjUw
ZTU3OGI1ZTU1NzNjMWI2ZDY0NWYxOGYwYThkMWMxYWViNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldC5oCkBAIC0xMjQsNiArMTI0LDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgRXZlbnRU
YXJnZXREYXRhJiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSA9IDA7CiAgICAgY29uc3QgRXZlbnRU
YXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgdm9pZCBl
dmVudExpc3RlbmVyc0RpZENoYW5nZSgpIHsgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCByZWZFdmVudFRhcmdldCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdl
dCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDI0NmE0ZmM3
MDMyMzEwYzQzZDg3ZGQyMTk5ODlkZmRlODMyMTZkMWEuLjZjNjViZmRhZmZhNTBlZTk2NjA4OGE4
ZGEzMDBkOGU1ZjgxNDRjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApA
QCAtNDI2LDcgKzQyNiw2IEBAIE9wdGlvbmFsPEV4Y2VwdGlvbk9yPHZvaWQ+PiBYTUxIdHRwUmVx
dWVzdDo6cHJlcGFyZVRvU2VuZCgpCiAgICAgaWYgKCFjb250ZXh0LnNob3VsZEJ5cGFzc01haW5X
b3JsZENvbnRlbnRTZWN1cml0eVBvbGljeSgpICYmICFjb250ZXh0LmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpLT5hbGxvd0Nvbm5lY3RUb1NvdXJjZShtX3VybCkpIHsKICAgICAgICAgaWYgKCFtX2Fz
eW5jKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbk9yPHZvaWQ+IHsgRXhjZXB0aW9uIHsg
TmV0d29ya0Vycm9yIH0gfTsKLSAgICAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKICAg
ICAgICAgbV90aW1lb3V0VGltZXIuc3RvcCgpOwogICAgICAgICBtX25ldHdvcmtFcnJvclRpbWVy
LnN0YXJ0T25lU2hvdCgwX3MpOwogICAgICAgICByZXR1cm4gRXhjZXB0aW9uT3I8dm9pZD4geyB9
OwpAQCAtNjQxLDE1ICs2NDAsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6
OmNyZWF0ZVJlcXVlc3QoKQogICAgICAgICAvLyBUaGlzIGlzIHRydWUgd2hpbGUgcnVubmluZyBv
bnVubG9hZCBoYW5kbGVycy4KICAgICAgICAgLy8gRklYTUU6IE1heWJlIHdlIG5lZWQgdG8gYmUg
YWJsZSB0byBzZW5kIFhNTEh0dHBSZXF1ZXN0cyBmcm9tIG9udW5sb2FkLCA8aHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDQ+LgogICAgICAgICBtX2xvYWRlciA9IFRo
cmVhZGFibGVMb2FkZXI6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywg
V1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7CisgICAgICAgIGlmIChtX2xvYWRlcikKKyAgICAg
ICAgICAgIG1fbG9hZGluZ0FjdGl2aXR5ID0gbWFrZVJlZlB0cih0aGlzKTsKIAogICAgICAgICAv
LyBFaXRoZXIgbG9hZGVyIGlzIG51bGwgb3Igc29tZSBlcnJvciB3YXMgc3luY2hyb25vdXNseSBz
ZW50IHRvIHVzLgogICAgICAgICBBU1NFUlQobV9sb2FkZXIgfHwgIW1fc2VuZEZsYWcpOwotCi0g
ICAgICAgIC8vIE5laXRoZXIgdGhpcyBvYmplY3Qgbm9yIHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIg
c2hvdWxkIGJlIGRlbGV0ZWQgd2hpbGUKLSAgICAgICAgLy8gYSByZXF1ZXN0IGlzIGluIHByb2dy
ZXNzIGJlY2F1c2Ugd2UgbmVlZCB0byBrZWVwIHRoZSBsaXN0ZW5lcnMgYWxpdmUsCi0gICAgICAg
IC8vIGFuZCB0aGV5IGFyZSByZWZlcmVuY2VkIGJ5IHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIuCi0g
ICAgICAgIGlmIChtX2xvYWRlcikKLSAgICAgICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgqdGhp
cyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
aXNEb2N1bWVudCgpICYmICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93
bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpTeW5jWEhSLCAqZG9jdW1lbnQoKSkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTmV0d29ya0Vycm9yIH07CkBAIC02NjksNyArNjY0LDYg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoKQogCiB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjphYm9ydCgpCiB7Ci0gICAgLy8gaW50ZXJuYWxBYm9ydCgpIGNh
bGxzIHVuc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpLCB3aGljaCBtYXkgcmVsZWFzZSB0aGUgbGFz
dCByZWZlcmVuY2UuCiAgICAgUmVmPFhNTEh0dHBSZXF1ZXN0PiBwcm90ZWN0ZWRUaGlzKCp0aGlz
KTsKIAogICAgIG1fd2FzQWJvcnRlZEJ5Q2xpZW50ID0gdHJ1ZTsKQEAgLTcwNyw2ICs3MDEsNyBA
QCBib29sIFhNTEh0dHBSZXF1ZXN0OjppbnRlcm5hbEFib3J0KCkKICAgICAvLyBUaGlzIHdvdWxk
IGNyZWF0ZSBpbnRlcm5hbEFib3J0IHJlZW50cmFudCBjYWxsLgogICAgIC8vIG1fbG9hZGVyIGlz
IHNldCB0byBudWxsIGJlZm9yZSBiZWluZyBjYW5jZWxsZWQgdG8gZXhpdCBlYXJseSBpbiBhbnkg
cmVlbnRyYW50IGludGVybmFsQWJvcnQoKSBjYWxsLgogICAgIGF1dG8gbG9hZGVyID0gV1RGTW92
ZShtX2xvYWRlcik7CisgICAgbV9sb2FkaW5nQWN0aXZpdHkgPSBudWxscHRyOwogICAgIGxvYWRl
ci0+Y2FuY2VsKCk7CiAKICAgICAvLyBJZiB3aW5kb3cub25sb2FkIGNhbGxiYWNrIGNhbGxzIG9w
ZW4oKSBhbmQgc2VuZCgpIG9uIHRoZSBzYW1lIHhociwgbV9sb2FkZXIgaXMgbm93IHNldCB0byBh
IG5ldyB2YWx1ZS4KQEAgLTcxNSw4ICs3MTAsNiBAQCBib29sIFhNTEh0dHBSZXF1ZXN0OjppbnRl
cm5hbEFib3J0KCkKICAgICAvLyBTYXZlIHRoaXMgaW5mb3JtYXRpb24gdG8gYSBsb2NhbCB2YXJp
YWJsZSBzaW5jZSB3ZSBhcmUgZ29pbmcgdG8gZHJvcCBwcm90ZWN0aW9uLgogICAgIGJvb2wgbmV3
TG9hZFN0YXJ0ZWQgPSBtX2xvYWRlcjsKIAotICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5KCp0aGlz
KTsKLQogICAgIHJldHVybiAhbmV3TG9hZFN0YXJ0ZWQ7CiB9CiAKQEAgLTc2Miw3ICs3NTUsNiBA
QCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpuZXR3b3JrRXJyb3IoKQogdm9pZCBYTUxIdHRwUmVxdWVz
dDo6bmV0d29ya0Vycm9yVGltZXJGaXJlZCgpCiB7CiAgICAgbmV0d29ya0Vycm9yKCk7Ci0gICAg
dW5zZXRQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogfQogICAgIAogdm9pZCBYTUxIdHRwUmVxdWVz
dDo6YWJvcnRFcnJvcigpCkBAIC04ODgsNiArODgwLDggQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0
OjpzdGF0dXNUZXh0KCkgY29uc3QKIAogdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbChjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKTsKKwogICAgIC8vIElmIHdlIGFyZSBhbHJlYWR5IGluIGFuIGVycm9yIHN0YXRl
LCBmb3IgaW5zdGFuY2Ugd2UgY2FsbGVkIGFib3J0KCksIGJhaWwgb3V0IGVhcmx5LgogICAgIGlm
IChtX2Vycm9yKQogICAgICAgICByZXR1cm47CkBAIC05MDgsNyArOTAyLDYgQEAgdm9pZCBYTUxI
dHRwUmVxdWVzdDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICAvLyBJ
biBjYXNlIGRpZEZhaWwgaXMgY2FsbGVkIHN5bmNocm9ub3VzbHkgb24gYW4gYXN5bmNocm9ub3Vz
IFhIUiBjYWxsLCBsZXQncyBkaXNwYXRjaCBuZXR3b3JrIGVycm9yIGFzeW5jaHJvbm91c2x5CiAg
ICAgaWYgKG1fYXN5bmMgJiYgbV9zZW5kRmxhZyAmJiAhbV9sb2FkZXIpIHsKICAgICAgICAgbV9z
ZW5kRmxhZyA9IGZhbHNlOwotICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogICAg
ICAgICBtX3RpbWVvdXRUaW1lci5zdG9wKCk7CiAgICAgICAgIG1fbmV0d29ya0Vycm9yVGltZXIu
c3RhcnRPbmVTaG90KDBfcyk7CiAgICAgICAgIHJldHVybjsKQEAgLTkxOSw2ICs5MTIsOCBAQCB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQog
CiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpCiB7
CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKICAgICBpZiAobV9l
cnJvcikKICAgICAgICAgcmV0dXJuOwogCkBAIC05MzAsOCArOTI1LDggQEAgdm9pZCBYTUxIdHRw
UmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nKQogCiAgICAgbV9yZXNwb25z
ZUJ1aWxkZXIuc2hyaW5rVG9GaXQoKTsKIAotICAgIGJvb2wgaGFkTG9hZGVyID0gbV9sb2FkZXI7
CiAgICAgbV9sb2FkZXIgPSBudWxscHRyOworICAgIG1fbG9hZGluZ0FjdGl2aXR5ID0gbnVsbHB0
cjsKIAogICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKICAgICBjaGFuZ2VTdGF0ZShET05FKTsKQEAg
LTkzOSw5ICs5MzQsNiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKHVu
c2lnbmVkIGxvbmcpCiAgICAgbV9kZWNvZGVyID0gbnVsbHB0cjsKIAogICAgIG1fdGltZW91dFRp
bWVyLnN0b3AoKTsKLQotICAgIGlmIChoYWRMb2FkZXIpCi0gICAgICAgIHVuc2V0UGVuZGluZ0Fj
dGl2aXR5KCp0aGlzKTsKIH0KIAogdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkU2VuZERhdGEodW5z
aWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNU
b0JlU2VudCkKQEAgLTExMTEsNyArMTEwMyw2IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpc3Bh
dGNoRXJyb3JFdmVudHMoY29uc3QgQXRvbVN0cmluZyYgdHlwZSkKIAogdm9pZCBYTUxIdHRwUmVx
dWVzdDo6ZGlkUmVhY2hUaW1lb3V0KCkKIHsKLSAgICAvLyBpbnRlcm5hbEFib3J0KCkgY2FsbHMg
dW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyksIHdoaWNoIG1heSByZWxlYXNlIHRoZSBsYXN0IHJl
ZmVyZW5jZS4KICAgICBSZWY8WE1MSHR0cFJlcXVlc3Q+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwog
ICAgIGlmICghaW50ZXJuYWxBYm9ydCgpKQogICAgICAgICByZXR1cm47CkBAIC0xMTY1LDQgKzEx
NTYsNDEgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0TWF4aW11bUludGVydmFsRm9yVXNlckdl
c3R1cmVGb3J3YXJkaW5nKGRvdWJsZSBpbnRlcnZhbCkKICAgICBtX21heGltdW1JbnRlcnZhbEZv
clVzZXJHZXN0dXJlRm9yd2FyZGluZyA9IFNlY29uZHMoaW50ZXJ2YWwpOyAgICAKIH0KIAordm9p
ZCBYTUxIdHRwUmVxdWVzdDo6ZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKQoreworICAgIG1faGFz
UmVsZXZhbnRFdmVudExpc3RlbmVyID0gaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLnJl
YWR5c3RhdGVjaGFuZ2VFdmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnRO
YW1lcygpLnByb2dyZXNzRXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50
TmFtZXMoKS5hYm9ydEV2ZW50KQorICAgICAgICB8fCBoYXNFdmVudExpc3RlbmVycyhldmVudE5h
bWVzKCkuZXJyb3JFdmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1l
cygpLmxvYWRFdmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygp
LnRpbWVvdXRFdmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygp
LmxvYWRlbmRFdmVudCk7Cit9CisKKy8vIEFuIFhNTEh0dHBSZXF1ZXN0IG9iamVjdCBtdXN0IG5v
dCBiZSBnYXJiYWdlIGNvbGxlY3RlZCBpZiBpdHMgc3RhdGUgaXMgZWl0aGVyIG9wZW5lZCB3aXRo
IHRoZSBzZW5kKCkgZmxhZyBzZXQsIGhlYWRlcnMgcmVjZWl2ZWQsIG9yIGxvYWRpbmcsIGFuZAor
Ly8gaXQgaGFzIG9uZSBvciBtb3JlIGV2ZW50IGxpc3RlbmVycyByZWdpc3RlcmVkIHdob3NlIHR5
cGUgaXMgb25lIG9mIHJlYWR5c3RhdGVjaGFuZ2UsIHByb2dyZXNzLCBhYm9ydCwgZXJyb3IsIGxv
YWQsIHRpbWVvdXQsIGFuZCBsb2FkZW5kLgorYm9vbCBYTUxIdHRwUmVxdWVzdDo6aGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICBpZiAoQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5n
QWN0aXZpdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIW1faGFzUmVsZXZh
bnRFdmVudExpc3RlbmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV9wcm9n
cmVzc0V2ZW50VGhyb3R0bGUuaGFzUGVuZGluZ0V2ZW50cygpIHx8IG1fbmV0d29ya0Vycm9yVGlt
ZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBzd2l0Y2ggKHJlYWR5
U3RhdGUoKSkgeworICAgIGNhc2UgT1BFTkVEOgorICAgICAgICByZXR1cm4gbV9zZW5kRmxhZzsK
KyAgICBjYXNlIEhFQURFUlNfUkVDRUlWRUQ6CisgICAgY2FzZSBMT0FESU5HOgorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFVOU0VOVDoKKyAgICBjYXNlIERPTkU6CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggZGYzMmFiMGRlOWVhNjM1M2Mz
Y2FkNTVjNWNmMTkyZjhiMjZjYzc0MC4uYWZmNGU4YWMxZGM1OWE5M2E1NzYxYTBiOWMyYTNiYjRi
ZWY5MWZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTEzMCw5ICsxMzAs
MTQgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNYXhpbXVtSW50ZXJ2
YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcoZG91YmxlKTsKIAorICAgIGJvb2wgaGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgWE1MSHR0
cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCisgICAgLy8gRXZlbnRUYXJnZXQu
CisgICAgdm9pZCBldmVudExpc3RlbmVyc0RpZENoYW5nZSgpIGZpbmFsOworCiAgICAgVGV4dEVu
Y29kaW5nIGZpbmFsUmVzcG9uc2VDaGFyc2V0KCkgY29uc3Q7CiAKICAgICAvLyBBY3RpdmVET01P
YmplY3QKQEAgLTIxNCw2ICsyMTksNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxGb3JtRGF0YT4g
bV9yZXF1ZXN0RW50aXR5Qm9keTsKICAgICBTdHJpbmcgbV9taW1lVHlwZU92ZXJyaWRlOwogCisg
ICAgUmVmUHRyPFhNTEh0dHBSZXF1ZXN0PiBtX2xvYWRpbmdBY3Rpdml0eTsgLy8gS2VlcCBvYmpl
Y3QgYWxpdmUgd2hpbGUgbG9hZGluZyBldmVuIGlmIHRoZXJlIGlzIG5vIEpTIHdyYXBwZXIuCiAg
ICAgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IG1fbG9hZGVyOwogCiAgICAgU3RyaW5nIG1fcmVz
cG9uc2VFbmNvZGluZzsKQEAgLTI0Myw2ICsyNDksNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFs
PEV4Y2VwdGlvbkNvZGU+IG1fZXhjZXB0aW9uQ29kZTsKICAgICBSZWZQdHI8VXNlckdlc3R1cmVU
b2tlbj4gbV91c2VyR2VzdHVyZVRva2VuOwogICAgIFNlY29uZHMgbV9tYXhpbXVtSW50ZXJ2YWxG
b3JVc2VyR2VzdHVyZUZvcndhcmRpbmc7CisgICAgYm9vbCBtX2hhc1JlbGV2YW50RXZlbnRMaXN0
ZW5lciB7IGZhbHNlIH07CiB9OwogCiBpbmxpbmUgYXV0byBYTUxIdHRwUmVxdWVzdDo6cmVzcG9u
c2VUeXBlKCkgY29uc3QgLT4gUmVzcG9uc2VUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwIGIvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcAppbmRleCA3
NzQ1ZjRmOGNmNzE3MjVjNGE4ZGViYTIwZDFjN2MzMTY1MzliMWQxLi4xZGY1YmM0YzNmZjE4ZjRm
Nzg5ODgxZmIxNDBjNzdjNWU2NGYwY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKQEAgLTE1OSw0
ICsxNTksOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpyZXN1
bWUoKQogICAgIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVyUmVzdW1pbmdUaW1lci5zdGFy
dE9uZVNob3QoMF9zKTsKIH0KIAorYm9vbCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJv
dHRsZTo6aGFzUGVuZGluZ0V2ZW50cygpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX2V2ZW50c0Rl
ZmVycmVkRHVlVG9TdXNwZW5zaW9uLmlzRW1wdHkoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGUuaAppbmRleCBhODNjZjNkYThkNjZiOTgzYjQ5Njg2OGQ3Zjg4NWYz
ZDcwYWYxMGI5Li41MmM1ZDhmNjM0ZDQ0NzQ4NWEzMjM3ZGVjODAyMTlhZWM4YTEyMmIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhy
b3R0bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50VGhyb3R0bGUuaApAQCAtNTQsNiArNTQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5k
KCk7CiAgICAgdm9pZCByZXN1bWUoKTsKIAorICAgIGJvb2wgaGFzUGVuZGluZ0V2ZW50cygpIGNv
bnN0OworCiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1pbmltdW1Qcm9ncmVz
c0V2ZW50RGlzcGF0Y2hpbmdJbnRlcnZhbDsKIApAQCAtNjgsNyArNzAsNiBAQCBwcml2YXRlOgog
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX2xvYWRlZCB7IDAgfTsKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgbV90b3RhbCB7IDAgfTsKIAotICAgIFJlZlB0cjxFdmVudD4gbV9kZWZlcnJlZFByb2dy
ZXNzRXZlbnQ7CiAgICAgVmVjdG9yPFJlZjxFdmVudD4+IG1fZXZlbnRzRGVmZXJyZWREdWVUb1N1
c3BlbnNpb247CiAgICAgU3VzcGVuZGFibGVUaW1lciBtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jl
c3NFdmVudFRpbWVyOwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9kaXNwYXRjaERlZmVycmVkRXZl
bnRzQWZ0ZXJSZXN1bWluZ1RpbWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392802</attachid>
            <date>2020-03-06 16:32:11 -0800</date>
            <delta_ts>2020-03-06 16:47:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208481-20200306163211.patch</filename>
            <type>text/plain</type>
            <size>22704</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJhMDMwNjE1YWIzNjJm
NGM5ODkyNTZkNDc1Yzc5MmIyMjM4MDg2ZS4uZWJlNTNlNWY3OGMzMGE2M2JhZDkwOGYyNmVhZmVk
YzVlY2JhYmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU2ltcGxpZnkgWEhSIEpTIHdy
YXBwZXIgbGlmZXRpbWUgbWFuYWdlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NDgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2ltcGxpZnkgWEhSIEpTIHdyYXBwZXIgbGlmZXRpbWUgbWFuYWdl
bWVudCBhbmQgYWxpZ24gd2l0aCB0aGUgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRwczov
L3hoci5zcGVjLndoYXR3Zy5vcmcvI2dhcmJhZ2UtY29sbGVjdGlvbgorCisgICAgICAgIFdlIG5v
dyBvdmVycmlkZSBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIHRvIG1hdGNo
IGV4YWN0bHkgdGhlIHRleHQKKyAgICAgICAgaW4gdGhlIHNwZWNpZmljYXRpb246CisgICAgICAg
ICIiIgorICAgICAgICBBbiBYTUxIdHRwUmVxdWVzdCBvYmplY3QgbXVzdCBub3QgYmUgZ2FyYmFn
ZSBjb2xsZWN0ZWQgaWYgaXRzIHN0YXRlIGlzIGVpdGhlcgorICAgICAgICBvcGVuZWQgd2l0aCB0
aGUgc2VuZCgpIGZsYWcgc2V0LCBoZWFkZXJzIHJlY2VpdmVkLCBvciBsb2FkaW5nLCBhbmQgaXQg
aGFzIG9uZSBvcgorICAgICAgICBtb3JlIGV2ZW50IGxpc3RlbmVycyByZWdpc3RlcmVkIHdob3Nl
IHR5cGUgaXMgb25lIG9mIHJlYWR5c3RhdGVjaGFuZ2UsIHByb2dyZXNzLAorICAgICAgICBhYm9y
dCwgZXJyb3IsIGxvYWQsIHRpbWVvdXQsIGFuZCBsb2FkZW5kLgorICAgICAgICAiIiIKKworICAg
ICAgICBQcmV2aW91c2x5LCB3ZSB3ZXJlIHRyeWluZyB0byBpbXBsZW1lbnQgdGhpcyBiZWhhdmlv
ciB3aXRoIEFjdGl2ZURPTU9iamVjdCdzCisgICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgpIC8g
dW5zZXRQZW5kaW5nQWN0aXZpdHkoKSBidXQgdGhpcyB3YXMgZXJyb3IgYW5kIGxlYWsgcHJvbmUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Qgc3VjaCBh
czoKKyAgICAgICAgZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1nYy5odG1sCisK
KyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRU
YXJnZXQ6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6
OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnJl
bW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKiBkb20vRXZlbnRUYXJnZXQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSk6Cisg
ICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0
dHBSZXF1ZXN0OjpwcmVwYXJlVG9TZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1
ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojph
Ym9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aW50ZXJuYWxBYm9ydCk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6bmV0d29ya0Vycm9yVGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbCk6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkUmVhY2hUaW1lb3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAg
ICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6Omhhc1BlbmRpbmdFdmVudHMgY29uc3QpOgorICAgICAg
ICAqIHhtbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oOgorCiAyMDIwLTAz
LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgTm93UGxheWluZyBjb21tYW5kcyBpbiBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0LmNwcAppbmRleCBjZDBkZTA4ODFjNDAwMWZlZGM3ZDhkNjc0MDI2ODFhYjE4ZDY0
ZDU3Li44YzM4NTA5YjlkNWRjMjlhMDMyZWZjYzg2ZTdhNjgxM2FmMGJlODU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTk0LDYgKzk0LDcgQEAgYm9vbCBFdmVudFRhcmdldDo6
YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExp
c3RlbmUKICAgICBpZiAobGlzdGVuZXJDcmVhdGVkRnJvbVNjcmlwdCkKICAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRBZGRFdmVudExpc3RlbmVyKCp0aGlzLCBldmVudFR5cGUs
IGxpc3RlbmVyUmVmLmdldCgpLCBvcHRpb25zLmNhcHR1cmUpOwogCisgICAgZXZlbnRMaXN0ZW5l
cnNEaWRDaGFuZ2UoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTMzLDcgKzEzNCwxMSBA
QCBib29sIEV2ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcm
IGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsUmVtb3ZlRXZlbnRMaXN0ZW5lcigqdGhpcywgZXZlbnRUeXBlLCBsaXN0ZW5lciwgb3B0
aW9ucy5jYXB0dXJlKTsKIAotICAgIHJldHVybiBkYXRhLT5ldmVudExpc3RlbmVyTWFwLnJlbW92
ZShldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zLmNhcHR1cmUpOworICAgIGlmIChkYXRhLT5l
dmVudExpc3RlbmVyTWFwLnJlbW92ZShldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zLmNhcHR1
cmUpKSB7CisgICAgICAgIGV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgRXZlbnRUYXJnZXQ6
OnNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBS
ZWZQdHI8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgRE9NV3JhcHBlcldvcmxkJiBpc29sYXRl
ZFdvcmxkKQpAQCAtMzQ1LDggKzM1MCwxMCBAQCB2b2lkIEV2ZW50VGFyZ2V0OjpyZW1vdmVBbGxF
dmVudExpc3RlbmVycygpCiAgICAgdGhyZWFkRGF0YS5zZXRJc0luUmVtb3ZlQWxsRXZlbnRMaXN0
ZW5lcnModHJ1ZSk7CiAKICAgICBhdXRvKiBkYXRhID0gZXZlbnRUYXJnZXREYXRhKCk7Ci0gICAg
aWYgKGRhdGEpCisgICAgaWYgKGRhdGEgJiYgIWRhdGEtPmV2ZW50TGlzdGVuZXJNYXAuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGRhdGEtPmV2ZW50TGlzdGVuZXJNYXAuY2xlYXIoKTsKKyAgICAgICAg
ZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKTsKKyAgICB9CiAKICAgICB0aHJlYWREYXRhLnNldElz
SW5SZW1vdmVBbGxFdmVudExpc3RlbmVycyhmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dC5oCmluZGV4IDZiYzk5YjE4NDgwYTkxMGJiNjEwYzZiNGYzMzk4MmQyZjA5MTAzM2MuLjYxYjUw
ZTU3OGI1ZTU1NzNjMWI2ZDY0NWYxOGYwYThkMWMxYWViNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldC5oCkBAIC0xMjQsNiArMTI0LDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgRXZlbnRU
YXJnZXREYXRhJiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSA9IDA7CiAgICAgY29uc3QgRXZlbnRU
YXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgdm9pZCBl
dmVudExpc3RlbmVyc0RpZENoYW5nZSgpIHsgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCByZWZFdmVudFRhcmdldCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdl
dCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDI0NmE0ZmM3
MDMyMzEwYzQzZDg3ZGQyMTk5ODlkZmRlODMyMTZkMWEuLjJjZGRlMDM1ZDcwMTAwZjA2NDhmNjJl
M2I4MDljNGVkMmE5NGFmMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApA
QCAtMTIwLDcgKzEyMCw2IEBAIFhNTEh0dHBSZXF1ZXN0OjpYTUxIdHRwUmVxdWVzdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgICwgbV9yZWFkeVN0YXRlKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihVTlNFTlQpKQogICAgICwgbV9yZXNwb25zZVR5cGUoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFJlc3BvbnNlVHlwZTo6RW1wdHlTdHJpbmcpKQogICAgICwgbV9wcm9ncmVzc0V2ZW50
VGhyb3R0bGUoKnRoaXMpCi0gICAgLCBtX25ldHdvcmtFcnJvclRpbWVyKCp0aGlzLCAmWE1MSHR0
cFJlcXVlc3Q6Om5ldHdvcmtFcnJvclRpbWVyRmlyZWQpCiAgICAgLCBtX3RpbWVvdXRUaW1lcigq
dGhpcywgJlhNTEh0dHBSZXF1ZXN0OjpkaWRSZWFjaFRpbWVvdXQpCiAgICAgLCBtX21heGltdW1J
bnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZyhtYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2Vz
dHVyZUZvcndhcmRpbmcpCiB7CkBAIC0yODEsNiArMjgwLDExIEBAIFhNTEh0dHBSZXF1ZXN0VXBs
b2FkJiBYTUxIdHRwUmVxdWVzdDo6dXBsb2FkKCkKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNoYW5n
ZVN0YXRlKFN0YXRlIG5ld1N0YXRlKQogewogICAgIGlmIChyZWFkeVN0YXRlKCkgIT0gbmV3U3Rh
dGUpIHsKKyAgICAgICAgLy8gU2V0dGluZyB0aGUgcmVhZHlTdGF0ZSB0byBET05FIGNvdWxkIGdl
dCB0aGUgd3JhcHBlciBjb2xsZWN0ZWQgYmVmb3JlIHdlIGdldCBhIGNoYW5jZSB0byBmaXJlIHRo
ZSBKUworICAgICAgICAvLyBldmVudHMgaW4gY2FsbFJlYWR5U3RhdGVDaGFuZ2VMaXN0ZW5lcigp
IGJlbG93IHNvIHdlIGV4dGVuZCB0aGUgbGlmZXRpbWUgb2YgdGhlIEpTIHdyYXBwZXIgdW50aWwg
dGhlCisgICAgICAgIC8vIG9mIHRoaXMgc2NvcGUuCisgICAgICAgIGF1dG8gZXZlbnRGaXJpbmdB
Y3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOworCiAgICAgICAgIG1fcmVhZHlT
dGF0ZSA9IHN0YXRpY19jYXN0PFN0YXRlPihuZXdTdGF0ZSk7CiAgICAgICAgIGlmIChyZWFkeVN0
YXRlKCkgPT0gRE9ORSkgewogICAgICAgICAgICAgLy8gVGhlIFhIUiBvYmplY3QgaXRzZWxmIGhv
bGRzIG9uIHRvIHRoZSByZXNwb25zZVRleHQsIGFuZApAQCAtMzg1LDcgKzM4OSw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBj
b25zdCBVUkwmIHVybCwgYm9vCiAKICAgICBtX2FzeW5jID0gYXN5bmM7CiAKLSAgICBBU1NFUlQo
IW1fbG9hZGVyKTsKKyAgICBBU1NFUlQoIW1fbG9hZGluZ0FjdGl2aXR5KTsKIAogICAgIGNoYW5n
ZVN0YXRlKE9QRU5FRCk7CiAKQEAgLTQyMCwxNSArNDI0LDE2IEBAIE9wdGlvbmFsPEV4Y2VwdGlv
bk9yPHZvaWQ+PiBYTUxIdHRwUmVxdWVzdDo6cHJlcGFyZVRvU2VuZCgpCiAKICAgICBpZiAocmVh
ZHlTdGF0ZSgpICE9IE9QRU5FRCB8fCBtX3NlbmRGbGFnKQogICAgICAgICByZXR1cm4gRXhjZXB0
aW9uT3I8dm9pZD4geyBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9IH07Ci0gICAgQVNT
RVJUKCFtX2xvYWRlcik7CisgICAgQVNTRVJUKCFtX2xvYWRpbmdBY3Rpdml0eSk7CiAKICAgICAv
LyBGSVhNRTogQ29udmVydCB0aGlzIHRvIGNoZWNrIHRoZSBpc29sYXRlZCB3b3JsZCdzIENvbnRl
bnQgU2VjdXJpdHkgUG9saWN5IG9uY2Ugd2Via2l0Lm9yZy9iLzEwNDUyMCBpcyBzb2x2ZWQuCiAg
ICAgaWYgKCFjb250ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSgpICYmICFjb250ZXh0LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd0Nvbm5lY3RUb1Nv
dXJjZShtX3VybCkpIHsKICAgICAgICAgaWYgKCFtX2FzeW5jKQogICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbk9yPHZvaWQ+IHsgRXhjZXB0aW9uIHsgTmV0d29ya0Vycm9yIH0gfTsKLSAgICAg
ICAgc2V0UGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKICAgICAgICAgbV90aW1lb3V0VGltZXIuc3Rv
cCgpOwotICAgICAgICBtX25ldHdvcmtFcnJvclRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworICAg
ICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok5ldHdv
cmtpbmcsIFt0aGlzXSB7CisgICAgICAgICAgICBuZXR3b3JrRXJyb3IoKTsKKyAgICAgICAgfSk7
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb25Pcjx2b2lkPiB7IH07CiAgICAgfQogCkBAIC02MzQs
MjIgKzYzOSwxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVx
dWVzdCgpCiAgICAgICAgIGlmICghbV91cGxvYWRDb21wbGV0ZSAmJiBtX3VwbG9hZExpc3RlbmVy
RmxhZykKICAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnRO
YW1lcygpLmxvYWRzdGFydEV2ZW50LCAwLCByZXF1ZXN0Lmh0dHBCb2R5KCktPmxlbmd0aEluQnl0
ZXMoKSk7CiAKLSAgICAgICAgaWYgKHJlYWR5U3RhdGUoKSAhPSBPUEVORUQgfHwgIW1fc2VuZEZs
YWcgfHwgbV9sb2FkZXIpCisgICAgICAgIGlmIChyZWFkeVN0YXRlKCkgIT0gT1BFTkVEIHx8ICFt
X3NlbmRGbGFnIHx8IG1fbG9hZGluZ0FjdGl2aXR5KQogICAgICAgICAgICAgcmV0dXJuIHsgfTsK
IAogICAgICAgICAvLyBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUgY2FuIHJldHVybiBudWxsIGhl
cmUsIGZvciBleGFtcGxlIGlmIHdlJ3JlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIHBhZ2Ugb3Ig
aWYgYSBjb250ZW50IGJsb2NrZXIgYmxvY2tzIHRoZSBsb2FkLgogICAgICAgICAvLyBUaGlzIGlz
IHRydWUgd2hpbGUgcnVubmluZyBvbnVubG9hZCBoYW5kbGVycy4KICAgICAgICAgLy8gRklYTUU6
IE1heWJlIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzZW5kIFhNTEh0dHBSZXF1ZXN0cyBmcm9tIG9u
dW5sb2FkLCA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDQ+Lgot
ICAgICAgICBtX2xvYWRlciA9IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSgqc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLCAqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7CisgICAgICAg
IGF1dG8gbG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksICp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsKKyAgICAgICAgaWYg
KGxvYWRlcikKKyAgICAgICAgICAgIG1fbG9hZGluZ0FjdGl2aXR5ID0gTG9hZGluZ0FjdGl2aXR5
IHsgbWFrZVJlZigqdGhpcyksIGxvYWRlci5yZWxlYXNlTm9uTnVsbCgpIH07CiAKICAgICAgICAg
Ly8gRWl0aGVyIGxvYWRlciBpcyBudWxsIG9yIHNvbWUgZXJyb3Igd2FzIHN5bmNocm9ub3VzbHkg
c2VudCB0byB1cy4KLSAgICAgICAgQVNTRVJUKG1fbG9hZGVyIHx8ICFtX3NlbmRGbGFnKTsKLQot
ICAgICAgICAvLyBOZWl0aGVyIHRoaXMgb2JqZWN0IG5vciB0aGUgSmF2YVNjcmlwdCB3cmFwcGVy
IHNob3VsZCBiZSBkZWxldGVkIHdoaWxlCi0gICAgICAgIC8vIGEgcmVxdWVzdCBpcyBpbiBwcm9n
cmVzcyBiZWNhdXNlIHdlIG5lZWQgdG8ga2VlcCB0aGUgbGlzdGVuZXJzIGFsaXZlLAotICAgICAg
ICAvLyBhbmQgdGhleSBhcmUgcmVmZXJlbmNlZCBieSB0aGUgSmF2YVNjcmlwdCB3cmFwcGVyLgot
ICAgICAgICBpZiAobV9sb2FkZXIpCi0gICAgICAgICAgICBzZXRQZW5kaW5nQWN0aXZpdHkoKnRo
aXMpOworICAgICAgICBBU1NFUlQobV9sb2FkaW5nQWN0aXZpdHkgfHwgIW1fc2VuZEZsYWcpOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9j
dW1lbnQoKSAmJiAhaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMo
RmVhdHVyZVBvbGljeTo6VHlwZTo6U3luY1hIUiwgKmRvY3VtZW50KCkpKQogICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5ldHdvcmtFcnJvciB9OwpAQCAtNjY5LDcgKzY3MCw2IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KCkKIAogdm9pZCBY
TUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogewotICAgIC8vIGludGVybmFsQWJvcnQoKSBjYWxscyB1
bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKSwgd2hpY2ggbWF5IHJlbGVhc2UgdGhlIGxhc3QgcmVm
ZXJlbmNlLgogICAgIFJlZjxYTUxIdHRwUmVxdWVzdD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAK
ICAgICBtX3dhc0Fib3J0ZWRCeUNsaWVudCA9IHRydWU7CkBAIC02ODAsNyArNjgwLDcgQEAgdm9p
ZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogCiAgICAgbV9yZXF1ZXN0SGVhZGVycy5jbGVhcigp
OwogICAgIGlmICgocmVhZHlTdGF0ZSgpID09IE9QRU5FRCAmJiBtX3NlbmRGbGFnKSB8fCByZWFk
eVN0YXRlKCkgPT0gSEVBREVSU19SRUNFSVZFRCB8fCByZWFkeVN0YXRlKCkgPT0gTE9BRElORykg
ewotICAgICAgICBBU1NFUlQoIW1fbG9hZGVyKTsKKyAgICAgICAgQVNTRVJUKCFtX2xvYWRpbmdB
Y3Rpdml0eSk7CiAgICAgICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKICAgICAgICAgY2hhbmdlU3Rh
dGUoRE9ORSk7CiAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudHMoZXZlbnROYW1lcygpLmFib3J0
RXZlbnQpOwpAQCAtNzAwLDIyICs3MDAsMjAgQEAgYm9vbCBYTUxIdHRwUmVxdWVzdDo6aW50ZXJu
YWxBYm9ydCgpCiAKICAgICBtX3RpbWVvdXRUaW1lci5zdG9wKCk7CiAKLSAgICBpZiAoIW1fbG9h
ZGVyKQorICAgIGlmICghbV9sb2FkaW5nQWN0aXZpdHkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgLy8gQ2FuY2VsbGluZyBtX2xvYWRlciBtYXkgdHJpZ2dlciBhIHdpbmRvdy5vbmxvYWQg
Y2FsbGJhY2sgd2hpY2ggY2FuIGNhbGwgb3BlbigpIG9uIHRoZSBzYW1lIHhoci4KKyAgICAvLyBD
YW5jZWxsaW5nIG1fbG9hZGluZ0FjdGl2aXR5IG1heSB0cmlnZ2VyIGEgd2luZG93Lm9ubG9hZCBj
YWxsYmFjayB3aGljaCBjYW4gY2FsbCBvcGVuKCkgb24gdGhlIHNhbWUgeGhyLgogICAgIC8vIFRo
aXMgd291bGQgY3JlYXRlIGludGVybmFsQWJvcnQgcmVlbnRyYW50IGNhbGwuCi0gICAgLy8gbV9s
b2FkZXIgaXMgc2V0IHRvIG51bGwgYmVmb3JlIGJlaW5nIGNhbmNlbGxlZCB0byBleGl0IGVhcmx5
IGluIGFueSByZWVudHJhbnQgaW50ZXJuYWxBYm9ydCgpIGNhbGwuCi0gICAgYXV0byBsb2FkZXIg
PSBXVEZNb3ZlKG1fbG9hZGVyKTsKLSAgICBsb2FkZXItPmNhbmNlbCgpOworICAgIC8vIG1fbG9h
ZGluZ0FjdGl2aXR5IGlzIHNldCB0byBXVEY6Om51bGxvcHQgYmVmb3JlIGJlaW5nIGNhbmNlbGxl
ZCB0byBleGl0IGVhcmx5IGluIGFueSByZWVudHJhbnQgaW50ZXJuYWxBYm9ydCgpIGNhbGwuCisg
ICAgYXV0byBsb2FkaW5nQWN0aXZpdHkgPSBzdGQ6OmV4Y2hhbmdlKG1fbG9hZGluZ0FjdGl2aXR5
LCBXVEY6Om51bGxvcHQpOworICAgIGxvYWRpbmdBY3Rpdml0eS0+bG9hZGVyLT5jYW5jZWwoKTsK
IAotICAgIC8vIElmIHdpbmRvdy5vbmxvYWQgY2FsbGJhY2sgY2FsbHMgb3BlbigpIGFuZCBzZW5k
KCkgb24gdGhlIHNhbWUgeGhyLCBtX2xvYWRlciBpcyBub3cgc2V0IHRvIGEgbmV3IHZhbHVlLgor
ICAgIC8vIElmIHdpbmRvdy5vbmxvYWQgY2FsbGJhY2sgY2FsbHMgb3BlbigpIGFuZCBzZW5kKCkg
b24gdGhlIHNhbWUgeGhyLCBtX2xvYWRpbmdBY3Rpdml0eSBpcyBub3cgc2V0IHRvIGEgbmV3IHZh
bHVlLgogICAgIC8vIFRoZSBmdW5jdGlvbiBjYWxsaW5nIGludGVybmFsQWJvcnQoKSBzaG91bGQg
YWJvcnQgdG8gbGV0IHRoZSBvcGVuKCkgYW5kIHNlbmQoKSBjYWxscyBjb250aW51ZSBwcm9wZXJs
eS4KICAgICAvLyBXZSBhc2sgdGhlIGZ1bmN0aW9uIGNhbGxpbmcgaW50ZXJuYWxBYm9ydCgpIHRv
IGV4aXQgYnkgcmV0dXJuaW5nIGZhbHNlLgogICAgIC8vIFNhdmUgdGhpcyBpbmZvcm1hdGlvbiB0
byBhIGxvY2FsIHZhcmlhYmxlIHNpbmNlIHdlIGFyZSBnb2luZyB0byBkcm9wIHByb3RlY3Rpb24u
Ci0gICAgYm9vbCBuZXdMb2FkU3RhcnRlZCA9IG1fbG9hZGVyOwotCi0gICAgdW5zZXRQZW5kaW5n
QWN0aXZpdHkoKnRoaXMpOworICAgIGJvb2wgbmV3TG9hZFN0YXJ0ZWQgPSAhIW1fbG9hZGluZ0Fj
dGl2aXR5OwogCiAgICAgcmV0dXJuICFuZXdMb2FkU3RhcnRlZDsKIH0KQEAgLTc1OCwxMiArNzU2
LDYgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6bmV0d29ya0Vycm9yKCkKICAgICBkaXNwYXRjaEVy
cm9yRXZlbnRzKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50KTsKICAgICBpbnRlcm5hbEFib3J0KCk7
CiB9Ci0KLXZvaWQgWE1MSHR0cFJlcXVlc3Q6Om5ldHdvcmtFcnJvclRpbWVyRmlyZWQoKQotewot
ICAgIG5ldHdvcmtFcnJvcigpOwotICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKLX0K
ICAgICAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmFib3J0RXJyb3IoKQogewpAQCAtODg4LDYgKzg4
MCw4IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6c3RhdHVzVGV4dCgpIGNvbnN0CiAKIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Cisg
ICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKICAgICAvLyBJZiB3ZSBh
cmUgYWxyZWFkeSBpbiBhbiBlcnJvciBzdGF0ZSwgZm9yIGluc3RhbmNlIHdlIGNhbGxlZCBhYm9y
dCgpLCBiYWlsIG91dCBlYXJseS4KICAgICBpZiAobV9lcnJvcikKICAgICAgICAgcmV0dXJuOwpA
QCAtOTA2LDExICs5MDAsMTIgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmFpbChjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICB9CiAKICAgICAvLyBJbiBjYXNlIGRpZEZhaWwgaXMg
Y2FsbGVkIHN5bmNocm9ub3VzbHkgb24gYW4gYXN5bmNocm9ub3VzIFhIUiBjYWxsLCBsZXQncyBk
aXNwYXRjaCBuZXR3b3JrIGVycm9yIGFzeW5jaHJvbm91c2x5Ci0gICAgaWYgKG1fYXN5bmMgJiYg
bV9zZW5kRmxhZyAmJiAhbV9sb2FkZXIpIHsKKyAgICBpZiAobV9hc3luYyAmJiBtX3NlbmRGbGFn
ICYmICFtX2xvYWRpbmdBY3Rpdml0eSkgewogICAgICAgICBtX3NlbmRGbGFnID0gZmFsc2U7Ci0g
ICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CiAgICAgICAgIG1fdGltZW91dFRpbWVy
LnN0b3AoKTsKLSAgICAgICAgbV9uZXR3b3JrRXJyb3JUaW1lci5zdGFydE9uZVNob3QoMF9zKTsK
KyAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpO
ZXR3b3JraW5nLCBbdGhpc10geworICAgICAgICAgICAgbmV0d29ya0Vycm9yKCk7CisgICAgICAg
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fZXhjZXB0aW9uQ29kZSA9IE5ldHdv
cmtFcnJvcjsKQEAgLTkxOSw2ICs5MTQsOCBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWls
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRG
aW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpCiB7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyk7CisKICAgICBpZiAobV9lcnJvcikKICAgICAgICAgcmV0dXJuOwogCkBA
IC05MzAsOCArOTI3LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1
bnNpZ25lZCBsb25nKQogCiAgICAgbV9yZXNwb25zZUJ1aWxkZXIuc2hyaW5rVG9GaXQoKTsKIAot
ICAgIGJvb2wgaGFkTG9hZGVyID0gbV9sb2FkZXI7Ci0gICAgbV9sb2FkZXIgPSBudWxscHRyOwor
ICAgIG1fbG9hZGluZ0FjdGl2aXR5ID0gV1RGOjpudWxsb3B0OwogCiAgICAgbV9zZW5kRmxhZyA9
IGZhbHNlOwogICAgIGNoYW5nZVN0YXRlKERPTkUpOwpAQCAtOTM5LDkgKzkzNSw2IEBAIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZykKICAgICBtX2Rl
Y29kZXIgPSBudWxscHRyOwogCiAgICAgbV90aW1lb3V0VGltZXIuc3RvcCgpOwotCi0gICAgaWYg
KGhhZExvYWRlcikKLSAgICAgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogfQogCiB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNT
ZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KQpAQCAtMTExMSw3ICsx
MTA0LDYgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlzcGF0Y2hFcnJvckV2ZW50cyhjb25zdCBB
dG9tU3RyaW5nJiB0eXBlKQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRSZWFjaFRpbWVvdXQo
KQogewotICAgIC8vIGludGVybmFsQWJvcnQoKSBjYWxscyB1bnNldFBlbmRpbmdBY3Rpdml0eSh0
aGlzKSwgd2hpY2ggbWF5IHJlbGVhc2UgdGhlIGxhc3QgcmVmZXJlbmNlLgogICAgIFJlZjxYTUxI
dHRwUmVxdWVzdD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgaWYgKCFpbnRlcm5hbEFib3J0
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTExNTYsNyArMTE0OCw3IEBAIHZvaWQgWE1MSHR0cFJl
cXVlc3Q6OnN0b3AoKQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0Ojpjb250ZXh0RGVzdHJveWVkKCkK
IHsKLSAgICBBU1NFUlQoIW1fbG9hZGVyKTsKKyAgICBBU1NFUlQoIW1fbG9hZGluZ0FjdGl2aXR5
KTsKICAgICBBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsKIH0KIApAQCAtMTE2
NSw0ICsxMTU3LDM4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldE1heGltdW1JbnRlcnZhbEZv
clVzZXJHZXN0dXJlRm9yd2FyZGluZyhkb3VibGUgaW50ZXJ2YWwpCiAgICAgbV9tYXhpbXVtSW50
ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSBTZWNvbmRzKGludGVydmFsKTsgICAgCiB9
CiAKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCkKK3sKKyAg
ICBtX2hhc1JlbGV2YW50RXZlbnRMaXN0ZW5lciA9IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFt
ZXMoKS5yZWFkeXN0YXRlY2hhbmdlRXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJz
KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KQorICAgICAgICB8fCBoYXNFdmVudExpc3RlbmVy
cyhldmVudE5hbWVzKCkuYWJvcnRFdmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMo
ZXZlbnROYW1lcygpLmVycm9yRXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2
ZW50TmFtZXMoKS5sb2FkRXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50
TmFtZXMoKS50aW1lb3V0RXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50
TmFtZXMoKS5sb2FkZW5kRXZlbnQpOworfQorCisvLyBBbiBYTUxIdHRwUmVxdWVzdCBvYmplY3Qg
bXVzdCBub3QgYmUgZ2FyYmFnZSBjb2xsZWN0ZWQgaWYgaXRzIHN0YXRlIGlzIGVpdGhlciBvcGVu
ZWQgd2l0aCB0aGUgc2VuZCgpIGZsYWcgc2V0LCBoZWFkZXJzIHJlY2VpdmVkLCBvciBsb2FkaW5n
LCBhbmQKKy8vIGl0IGhhcyBvbmUgb3IgbW9yZSBldmVudCBsaXN0ZW5lcnMgcmVnaXN0ZXJlZCB3
aG9zZSB0eXBlIGlzIG9uZSBvZiByZWFkeXN0YXRlY2hhbmdlLCBwcm9ncmVzcywgYWJvcnQsIGVy
cm9yLCBsb2FkLCB0aW1lb3V0LCBhbmQgbG9hZGVuZC4KK2Jvb2wgWE1MSHR0cFJlcXVlc3Q6Omhh
c1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAgaWYgKEFjdGl2ZURPTU9iamVjdDo6aGFz
UGVuZGluZ0FjdGl2aXR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFtX2hh
c1JlbGV2YW50RXZlbnRMaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3dp
dGNoIChyZWFkeVN0YXRlKCkpIHsKKyAgICBjYXNlIE9QRU5FRDoKKyAgICAgICAgcmV0dXJuIG1f
c2VuZEZsYWc7CisgICAgY2FzZSBIRUFERVJTX1JFQ0VJVkVEOgorICAgIGNhc2UgTE9BRElORzoK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBVTlNFTlQ6CisgICAgY2FzZSBET05FOgor
ICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IGRmMzJhYjBk
ZTllYTYzNTNjM2NhZDU1YzVjZjE5MmY4YjI2Y2M3NDAuLjY0MDVmY2RhYThhYmQ3ODA3MzUzMzMy
MjI1ZDlhNTkyNTE0Zjc1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0x
MzAsOSArMTMwLDE3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWF4
aW11bUludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nKGRvdWJsZSk7CiAKKyAgICBib29s
IGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IGZpbmFsOworCisgICAgdXNpbmcgRXZlbnRUYXJn
ZXQ6OmRpc3BhdGNoRXZlbnQ7CisgICAgdm9pZCBkaXNwYXRjaEV2ZW50KEV2ZW50Jikgb3ZlcnJp
ZGU7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgWE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpOwogCisgICAgLy8gRXZlbnRUYXJnZXQuCisgICAgdm9pZCBldmVudExpc3Rl
bmVyc0RpZENoYW5nZSgpIGZpbmFsOworCiAgICAgVGV4dEVuY29kaW5nIGZpbmFsUmVzcG9uc2VD
aGFyc2V0KCkgY29uc3Q7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKQEAgLTE4NSwxMyArMTkz
LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlzcGF0Y2hFcnJvckV2ZW50cyhjb25zdCBBdG9t
U3RyaW5nJik7CiAKLSAgICB1c2luZyBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudDsKLSAgICB2
b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKLQogICAgIFJlZjxUZXh0UmVzb3Vy
Y2VEZWNvZGVyPiBjcmVhdGVEZWNvZGVyKCkgY29uc3Q7CiAKLSAgICB2b2lkIG5ldHdvcmtFcnJv
clRpbWVyRmlyZWQoKTsKLQogICAgIHVuc2lnbmVkIG1fYXN5bmMgOiAxOwogICAgIHVuc2lnbmVk
IG1faW5jbHVkZUNyZWRlbnRpYWxzIDogMTsKICAgICB1bnNpZ25lZCBtX3NlbmRGbGFnIDogMTsK
QEAgLTIxNCw3ICsyMTcsMTEgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Rm9ybURhdGE+IG1fcmVx
dWVzdEVudGl0eUJvZHk7CiAgICAgU3RyaW5nIG1fbWltZVR5cGVPdmVycmlkZTsKIAotICAgIFJl
ZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRlcjsKKyAgICBzdHJ1Y3QgTG9hZGluZ0FjdGl2
aXR5IHsKKyAgICAgICAgUmVmPFhNTEh0dHBSZXF1ZXN0PiBwcm90ZWN0ZWRUaGlzOyAvLyBLZWVw
IG9iamVjdCBhbGl2ZSB3aGlsZSBsb2FkaW5nIGV2ZW4gaWYgdGhlcmUgaXMgbm8gbG9uZ2VyIGEg
SlMgd3JhcHBlci4KKyAgICAgICAgUmVmPFRocmVhZGFibGVMb2FkZXI+IGxvYWRlcjsKKyAgICB9
OworICAgIE9wdGlvbmFsPExvYWRpbmdBY3Rpdml0eT4gbV9sb2FkaW5nQWN0aXZpdHk7CiAKICAg
ICBTdHJpbmcgbV9yZXNwb25zZUVuY29kaW5nOwogCkBAIC0yMzUsNyArMjQyLDYgQEAgcHJpdmF0
ZToKIAogICAgIG11dGFibGUgU3RyaW5nIG1fYWxsUmVzcG9uc2VIZWFkZXJzOwogCi0gICAgVGlt
ZXIgbV9uZXR3b3JrRXJyb3JUaW1lcjsKICAgICBUaW1lciBtX3RpbWVvdXRUaW1lcjsKIAogICAg
IE1vbm90b25pY1RpbWUgbV9zZW5kaW5nVGltZTsKQEAgLTI0Myw2ICsyNDksNyBAQCBwcml2YXRl
OgogICAgIE9wdGlvbmFsPEV4Y2VwdGlvbkNvZGU+IG1fZXhjZXB0aW9uQ29kZTsKICAgICBSZWZQ
dHI8VXNlckdlc3R1cmVUb2tlbj4gbV91c2VyR2VzdHVyZVRva2VuOwogICAgIFNlY29uZHMgbV9t
YXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmc7CisgICAgYm9vbCBtX2hhc1Jl
bGV2YW50RXZlbnRMaXN0ZW5lciB7IGZhbHNlIH07CiB9OwogCiBpbmxpbmUgYXV0byBYTUxIdHRw
UmVxdWVzdDo6cmVzcG9uc2VUeXBlKCkgY29uc3QgLT4gUmVzcG9uc2VUeXBlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90
dGxlLmNwcAppbmRleCA3NzQ1ZjRmOGNmNzE3MjVjNGE4ZGViYTIwZDFjN2MzMTY1MzliMWQxLi4y
NmE3ZGVjMGU0ZDk0ZGI5ZmVkZDM3NWExNzA4MGQwYjQ3ZWVjYTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRs
ZS5jcHAKQEAgLTI5LDE5ICsyOSwxOCBAQAogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKICNpbmNs
dWRlICJYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjb25zdCBTZWNvbmRzIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpt
aW5pbXVtUHJvZ3Jlc3NFdmVudERpc3BhdGNoaW5nSW50ZXJ2YWwgeyA1MF9tcyB9OyAvLyA1MCBt
cyBwZXIgc3BlY2lmaWNhdGlvbi4KIAotWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlKEV2ZW50VGFyZ2V0JiB0YXJn
ZXQpCitYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6WE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50VGhyb3R0bGUoWE1MSHR0cFJlcXVlc3QmIHRhcmdldCkKICAgICA6IG1fdGFy
Z2V0KHRhcmdldCkKICAgICAsIG1fZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXIo
dGFyZ2V0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXJG
aXJlZCkKLSAgICAsIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVyUmVzdW1pbmdUaW1lcih0
YXJnZXQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgJlhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWluZykK
IHsKICAgICBtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVyLnN1c3BlbmRJZk5l
ZWRlZCgpOwotICAgIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVyUmVzdW1pbmdUaW1lci5z
dXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGU6On5YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZSgpID0gZGVmYXVsdDsKQEAg
LTgxLDEzICs4MCw5IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6
OmRpc3BhdGNoUmVhZHlTdGF0ZUNoYW5nZUV2ZW50KEV2ZW50JiBlCiAKIHZvaWQgWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUoRXZl
bnQmIGV2ZW50KQogewotICAgIGlmIChtX3Nob3VsZERlZmVyRXZlbnRzRHVlVG9TdXNwZW5zaW9u
KSB7Ci0gICAgICAgIGlmIChtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uLnNpemUoKSA+
IDEgJiYgZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS5yZWFkeXN0YXRlY2hhbmdlRXZlbnQg
JiYgZXZlbnQudHlwZSgpID09IG1fZXZlbnRzRGVmZXJyZWREdWVUb1N1c3BlbnNpb24ubGFzdCgp
LT50eXBlKCkpIHsKLSAgICAgICAgICAgIC8vIFJlYWR5c3RhdGVjaGFuZ2UgZXZlbnRzIGFyZSBz
dGF0ZS1sZXNzIHNvIGF2b2lkIHJlcGVhdGluZyB0d28gaWRlbnRpY2FsIGV2ZW50cyBpbiBhIHJv
dyBvbiByZXN1bWUuCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbV9l
dmVudHNEZWZlcnJlZER1ZVRvU3VzcGVuc2lvbi5hcHBlbmQoZXZlbnQpOwotICAgIH0gZWxzZQor
ICAgIGlmIChtX3Nob3VsZERlZmVyRXZlbnRzRHVlVG9TdXNwZW5zaW9uKQorICAgICAgICBtX3Rh
cmdldC5xdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQobV90YXJnZXQsIFRhc2tTb3VyY2U6Ok5ldHdv
cmtpbmcsIG1ha2VSZWYoZXZlbnQpKTsKKyAgICBlbHNlCiAgICAgICAgIG1fdGFyZ2V0LmRpc3Bh
dGNoRXZlbnQoZXZlbnQpOwogfQogCkBAIC0xMTcsMjAgKzExMiw2IEBAIHZvaWQgWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmZsdXNoUHJvZ3Jlc3NFdmVudCgpCiAgICAgZGlz
cGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCwgbV9sZW5ndGhDb21wdXRhYmxlLCBtX2xvYWRl
ZCwgbV90b3RhbCkpOwogfQogCi12b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90
dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWluZygpCi17Ci0gICAgQVNTRVJU
KG1fc2hvdWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24pOwotICAgIG1fc2hvdWxkRGVmZXJF
dmVudHNEdWVUb1N1c3BlbnNpb24gPSBmYWxzZTsKLQotICAgIC8vIFRha2Ugb3ZlciB0aGUgZGVm
ZXJyZWQgZXZlbnRzIGJlZm9yZSBkaXNwYXRjaGluZyB0aGVtIHdoaWNoIGNhbiBwb3RlbnRpYWxs
eSBhZGQgbW9yZS4KLSAgICBhdXRvIGV2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uID0gV1RG
TW92ZShtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uKTsKLQotICAgIGZsdXNoUHJvZ3Jl
c3NFdmVudCgpOwotCi0gICAgZm9yIChhdXRvJiBkZWZlcnJlZEV2ZW50IDogZXZlbnRzRGVmZXJy
ZWREdWVUb1N1c3BlbnNpb24pCi0gICAgICAgIGRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUoZGVm
ZXJyZWRFdmVudCk7Ci19Ci0KIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0
bGU6OmRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQoKQogewogICAgIEFT
U0VSVChtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVyLmlzQWN0aXZlKCkpOwpA
QCAtMTQ3LDE2ICsxMjgsMTkgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJv
dHRsZTo6ZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXJGaXIKIHZvaWQgWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OnN1c3BlbmQoKQogewogICAgIG1fc2hvdWxk
RGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24gPSB0cnVlOworCisgICAgaWYgKG1faGFzUGVuZGlu
Z1Rocm90dGxlZFByb2dyZXNzRXZlbnQpIHsKKyAgICAgICAgbV90YXJnZXQucXVldWVUYXNrS2Vl
cGluZ09iamVjdEFsaXZlKG1fdGFyZ2V0LCBUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpc10g
eworICAgICAgICAgICAgZmx1c2hQcm9ncmVzc0V2ZW50KCk7CisgICAgICAgIH0pOworICAgIH0K
IH0KIAogdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6cmVzdW1lKCkK
IHsKLSAgICBpZiAobV9ldmVudHNEZWZlcnJlZER1ZVRvU3VzcGVuc2lvbi5pc0VtcHR5KCkgJiYg
IW1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQpIHsKKyAgICBtX3RhcmdldC5xdWV1
ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUobV90YXJnZXQsIFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcs
IFt0aGlzXSB7CiAgICAgICAgIG1fc2hvdWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24gPSBm
YWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fZGlzcGF0Y2hEZWZlcnJlZEV2
ZW50c0FmdGVyUmVzdW1pbmdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKKyAgICB9KTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaAppbmRleCBhODNjZjNkYThkNjZi
OTgzYjQ5Njg2OGQ3Zjg4NWYzZDcwYWYxMGI5Li5iNGI0OTk3ZDJiYTkzMTZmZTk2ODJhZjhlZDg0
NGE2M2ZjM2YxNDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaApAQCAtMzQsNiArMzQsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50OwogY2xhc3MgRXZlbnRUYXJnZXQ7CitjbGFzcyBY
TUxIdHRwUmVxdWVzdDsKIAogZW51bSBQcm9ncmVzc0V2ZW50QWN0aW9uIHsKICAgICBEb05vdEZs
dXNoUHJvZ3Jlc3NFdmVudCwKQEAgLTQ0LDcgKzQ1LDcgQEAgZW51bSBQcm9ncmVzc0V2ZW50QWN0
aW9uIHsKIC8vIGFib3V0IGV2ZXJ5IDUwbXMgb3IgZm9yIGV2ZXJ5IGJ5dGUgcmVjZWl2ZWQsIHdo
aWNoZXZlciBpcyBsZWFzdCBmcmVxdWVudCIuCiBjbGFzcyBYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZSB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50VGhyb3R0bGUoRXZlbnRUYXJnZXQmKTsKKyAgICBleHBsaWNpdCBYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZShYTUxIdHRwUmVxdWVzdCYpOwogICAgIHZpcnR1YWwg
flhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlKCk7CiAKICAgICB2b2lkIGRpc3Bh
dGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudChib29sIGxlbmd0aENvbXB1dGFibGUsIHVuc2lnbmVk
IGxvbmcgbG9uZyBsb2FkZWQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCk7CkBAIC01OCwyMCAr
NTksMTYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBtaW5pbXVtUHJvZ3Jl
c3NFdmVudERpc3BhdGNoaW5nSW50ZXJ2YWw7CiAKICAgICB2b2lkIGRpc3BhdGNoVGhyb3R0bGVk
UHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQoKTsKLSAgICB2b2lkIGRpc3BhdGNoRGVmZXJyZWRFdmVu
dHNBZnRlclJlc3VtaW5nKCk7CiAgICAgdm9pZCBmbHVzaFByb2dyZXNzRXZlbnQoKTsKICAgICB2
b2lkIGRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUoRXZlbnQmKTsKIAogICAgIC8vIFdlYWsgcG9p
bnRlciB0byBvdXIgWE1MSHR0cFJlcXVlc3Qgb2JqZWN0IGFzIGl0IGlzIHRoZSBvbmUgaG9sZGlu
ZyB1cy4KLSAgICBFdmVudFRhcmdldCYgbV90YXJnZXQ7CisgICAgWE1MSHR0cFJlcXVlc3QmIG1f
dGFyZ2V0OwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIG1fbG9hZGVkIHsgMCB9OwogICAgIHVu
c2lnbmVkIGxvbmcgbG9uZyBtX3RvdGFsIHsgMCB9OwogCi0gICAgUmVmUHRyPEV2ZW50PiBtX2Rl
ZmVycmVkUHJvZ3Jlc3NFdmVudDsKLSAgICBWZWN0b3I8UmVmPEV2ZW50Pj4gbV9ldmVudHNEZWZl
cnJlZER1ZVRvU3VzcGVuc2lvbjsKICAgICBTdXNwZW5kYWJsZVRpbWVyIG1fZGlzcGF0Y2hUaHJv
dHRsZWRQcm9ncmVzc0V2ZW50VGltZXI7Ci0gICAgU3VzcGVuZGFibGVUaW1lciBtX2Rpc3BhdGNo
RGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nVGltZXI7CiAKICAgICBib29sIG1faGFzUGVuZGlu
Z1Rocm90dGxlZFByb2dyZXNzRXZlbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9sZW5ndGhDb21w
dXRhYmxlIHsgZmFsc2UgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392809</attachid>
            <date>2020-03-06 16:47:41 -0800</date>
            <delta_ts>2020-03-09 12:26:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208481-20200306164740.patch</filename>
            <type>text/plain</type>
            <size>23457</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJhMDMwNjE1YWIzNjJm
NGM5ODkyNTZkNDc1Yzc5MmIyMjM4MDg2ZS4uNmE1YmJlMTEyOGU1ZjU5ZDUzNmM0OTE2MTQxNDIy
OTdiMWJlMjRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIwLTAzLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxpZ24gZ2FyYmFnZSBjb2xs
ZWN0aW9uIGZvciBYTUxIdHRwUmVxdWVzdCBvYmplY3RzIHdpdGggdGhlIHNwZWNpZmljYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODQ4MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsaWduIGdh
cmJhZ2UgY29sbGVjdGlvbiBmb3IgWE1MSHR0cFJlcXVlc3Qgb2JqZWN0cyB3aXRoIHRoZSBzcGVj
aWZpY2F0aW9uOgorICAgICAgICAtIGh0dHBzOi8veGhyLnNwZWMud2hhdHdnLm9yZy8jZ2FyYmFn
ZS1jb2xsZWN0aW9uCisKKyAgICAgICAgZSBub3cgb3ZlcnJpZGUgQWN0aXZlRE9NT2JqZWN0Ojpo
YXNQZW5kaW5nQWN0aXZpdHkoKSB0byBtYXRjaCBleGFjdGx5IHRoZSB0ZXh0CisgICAgICAgIGlu
IHRoZSBzcGVjaWZpY2F0aW9uOgorICAgICAgICAiIiIKKyAgICAgICAgQW4gWE1MSHR0cFJlcXVl
c3Qgb2JqZWN0IG11c3Qgbm90IGJlIGdhcmJhZ2UgY29sbGVjdGVkIGlmIGl0cyBzdGF0ZSBpcyBl
aXRoZXIKKyAgICAgICAgb3BlbmVkIHdpdGggdGhlIHNlbmQoKSBmbGFnIHNldCwgaGVhZGVycyBy
ZWNlaXZlZCwgb3IgbG9hZGluZywgYW5kIGl0IGhhcyBvbmUgb3IKKyAgICAgICAgbW9yZSBldmVu
dCBsaXN0ZW5lcnMgcmVnaXN0ZXJlZCB3aG9zZSB0eXBlIGlzIG9uZSBvZiByZWFkeXN0YXRlY2hh
bmdlLCBwcm9ncmVzcywKKyAgICAgICAgYWJvcnQsIGVycm9yLCBsb2FkLCB0aW1lb3V0LCBhbmQg
bG9hZGVuZC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgUHJldmlvdXNseSwgd2Ugd2VyZSB0cnlp
bmcgdG8gaW1wbGVtZW50IHRoaXMgYmVoYXZpb3Igd2l0aCBBY3RpdmVET01PYmplY3QncworICAg
ICAgICBzZXRQZW5kaW5nQWN0aXZpdHkoKSAvIHVuc2V0UGVuZGluZ0FjdGl2aXR5KCkgYnV0IHRo
aXMgd2FzIGVycm9yIGFuZCBsZWFrIHByb25lLgorICAgICAgICBJdCB3YXMgYWxzbyBrZWVwaW5n
IHRoZSBKUyB3cmFwcGVyIGFsaXZlIHRvbyBsb25nIGluIHRoZSBjYXNlcyB3aGVyZSB0aGUgSlMK
KyAgICAgICAgZG9lcyBub3QgaGF2ZSBhbnkgZXZlbnQgbGlzdGVuZXJzLiBJZiB0aGUgSlMgaGFz
IG5vdCBldmVudCBsaXN0ZW5lcnMsIHRoZW4gd2UKKyAgICAgICAgY2FuIGNvbGxlY3QgdGhlIEpT
IHdyYXBwZXIsIHdlIGp1c3QgbmVlZCB0byBrZWVwIHRoZSBpbXBsZW1lbnRhdGlvbgorICAgICAg
ICBYTUxIdHRwUmVxdWVzdCBvYmplY3QgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgbG9hZC4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdCBzdWNoIGFzOgor
ICAgICAgICBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWdjLmh0bWwKKworICAg
ICAgICAqIGRvbS9FdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdl
dDo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6cmVt
b3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldDo6cmVtb3Zl
QWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIGRvbS9FdmVudFRhcmdldC5oOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKToKKyAgICAg
ICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJl
cXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpjaGFuZ2VTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cHJlcGFyZVRvU2VuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3Q6OmludGVybmFsQWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6Om5ldHdvcmtFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlk
RmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlkUmVhY2hUaW1lb3V0KToK
KyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojpjb250ZXh0RGVzdHJveWVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpldmVudExpc3RlbmVyc0RpZENoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6aGFzUGVuZGluZ0FjdGl2aXR5IGNv
bnN0KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoKKyAgICAgICAgKiB4bWwvWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpkaXNwYXRjaEV2ZW50V2hlblBvc3NpYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpzdXNwZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpyZXN1
bWUpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5o
OgorCiAyMDIwLTAzLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgTm93UGxheWluZyBjb21tYW5kcyBpbiBHUFVQcm9jZXNzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcAppbmRleCBjZDBkZTA4ODFjNDAwMWZlZGM3ZDhkNjc0
MDI2ODFhYjE4ZDY0ZDU3Li44YzM4NTA5YjlkNWRjMjlhMDMyZWZjYzg2ZTdhNjgxM2FmMGJlODU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKQEAgLTk0LDYgKzk0LDcgQEAgYm9vbCBF
dmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUs
IFJlZjxFdmVudExpc3RlbmUKICAgICBpZiAobGlzdGVuZXJDcmVhdGVkRnJvbVNjcmlwdCkKICAg
ICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRBZGRFdmVudExpc3RlbmVyKCp0aGlz
LCBldmVudFR5cGUsIGxpc3RlbmVyUmVmLmdldCgpLCBvcHRpb25zLmNhcHR1cmUpOwogCisgICAg
ZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTMz
LDcgKzEzNCwxMSBAQCBib29sIEV2ZW50VGFyZ2V0OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogCiAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsUmVtb3ZlRXZlbnRMaXN0ZW5lcigqdGhpcywgZXZlbnRUeXBlLCBs
aXN0ZW5lciwgb3B0aW9ucy5jYXB0dXJlKTsKIAotICAgIHJldHVybiBkYXRhLT5ldmVudExpc3Rl
bmVyTWFwLnJlbW92ZShldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zLmNhcHR1cmUpOworICAg
IGlmIChkYXRhLT5ldmVudExpc3RlbmVyTWFwLnJlbW92ZShldmVudFR5cGUsIGxpc3RlbmVyLCBv
cHRpb25zLmNhcHR1cmUpKSB7CisgICAgICAgIGV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wg
RXZlbnRUYXJnZXQ6OnNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYg
ZXZlbnRUeXBlLCBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4mJiBsaXN0ZW5lciwgRE9NV3JhcHBlcldv
cmxkJiBpc29sYXRlZFdvcmxkKQpAQCAtMzQ1LDggKzM1MCwxMCBAQCB2b2lkIEV2ZW50VGFyZ2V0
OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAgICAgdGhyZWFkRGF0YS5zZXRJc0luUmVtb3Zl
QWxsRXZlbnRMaXN0ZW5lcnModHJ1ZSk7CiAKICAgICBhdXRvKiBkYXRhID0gZXZlbnRUYXJnZXRE
YXRhKCk7Ci0gICAgaWYgKGRhdGEpCisgICAgaWYgKGRhdGEgJiYgIWRhdGEtPmV2ZW50TGlzdGVu
ZXJNYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIGRhdGEtPmV2ZW50TGlzdGVuZXJNYXAuY2xlYXIo
KTsKKyAgICAgICAgZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKTsKKyAgICB9CiAKICAgICB0aHJl
YWREYXRhLnNldElzSW5SZW1vdmVBbGxFdmVudExpc3RlbmVycyhmYWxzZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldC5oCmluZGV4IDZiYzk5YjE4NDgwYTkxMGJiNjEwYzZiNGYzMzk4MmQyZjA5
MTAzM2MuLjYxYjUwZTU3OGI1ZTU1NzNjMWI2ZDY0NWYxOGYwYThkMWMxYWViNGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5oCkBAIC0xMjQsNiArMTI0LDggQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgRXZlbnRUYXJnZXREYXRhJiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSA9IDA7CiAgICAg
Y29uc3QgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgdm9pZCBldmVudExpc3RlbmVyc0RpZENoYW5nZSgpIHsgfQorCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVy
ZWZFdmVudFRhcmdldCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmlu
ZGV4IDI0NmE0ZmM3MDMyMzEwYzQzZDg3ZGQyMTk5ODlkZmRlODMyMTZkMWEuLjJjZGRlMDM1ZDcw
MTAwZjA2NDhmNjJlM2I4MDljNGVkMmE5NGFmMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcApAQCAtMTIwLDcgKzEyMCw2IEBAIFhNTEh0dHBSZXF1ZXN0OjpYTUxIdHRwUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogICAgICwgbV9yZWFkeVN0YXRl
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihVTlNFTlQpKQogICAgICwgbV9yZXNwb25zZVR5cGUoc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFJlc3BvbnNlVHlwZTo6RW1wdHlTdHJpbmcpKQogICAgICwgbV9w
cm9ncmVzc0V2ZW50VGhyb3R0bGUoKnRoaXMpCi0gICAgLCBtX25ldHdvcmtFcnJvclRpbWVyKCp0
aGlzLCAmWE1MSHR0cFJlcXVlc3Q6Om5ldHdvcmtFcnJvclRpbWVyRmlyZWQpCiAgICAgLCBtX3Rp
bWVvdXRUaW1lcigqdGhpcywgJlhNTEh0dHBSZXF1ZXN0OjpkaWRSZWFjaFRpbWVvdXQpCiAgICAg
LCBtX21heGltdW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZyhtYXhpbXVtSW50ZXJ2
YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcpCiB7CkBAIC0yODEsNiArMjgwLDExIEBAIFhNTEh0
dHBSZXF1ZXN0VXBsb2FkJiBYTUxIdHRwUmVxdWVzdDo6dXBsb2FkKCkKIHZvaWQgWE1MSHR0cFJl
cXVlc3Q6OmNoYW5nZVN0YXRlKFN0YXRlIG5ld1N0YXRlKQogewogICAgIGlmIChyZWFkeVN0YXRl
KCkgIT0gbmV3U3RhdGUpIHsKKyAgICAgICAgLy8gU2V0dGluZyB0aGUgcmVhZHlTdGF0ZSB0byBE
T05FIGNvdWxkIGdldCB0aGUgd3JhcHBlciBjb2xsZWN0ZWQgYmVmb3JlIHdlIGdldCBhIGNoYW5j
ZSB0byBmaXJlIHRoZSBKUworICAgICAgICAvLyBldmVudHMgaW4gY2FsbFJlYWR5U3RhdGVDaGFu
Z2VMaXN0ZW5lcigpIGJlbG93IHNvIHdlIGV4dGVuZCB0aGUgbGlmZXRpbWUgb2YgdGhlIEpTIHdy
YXBwZXIgdW50aWwgdGhlCisgICAgICAgIC8vIG9mIHRoaXMgc2NvcGUuCisgICAgICAgIGF1dG8g
ZXZlbnRGaXJpbmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOworCiAgICAg
ICAgIG1fcmVhZHlTdGF0ZSA9IHN0YXRpY19jYXN0PFN0YXRlPihuZXdTdGF0ZSk7CiAgICAgICAg
IGlmIChyZWFkeVN0YXRlKCkgPT0gRE9ORSkgewogICAgICAgICAgICAgLy8gVGhlIFhIUiBvYmpl
Y3QgaXRzZWxmIGhvbGRzIG9uIHRvIHRoZSByZXNwb25zZVRleHQsIGFuZApAQCAtMzg1LDcgKzM4
OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmlu
ZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vCiAKICAgICBtX2FzeW5jID0gYXN5bmM7CiAK
LSAgICBBU1NFUlQoIW1fbG9hZGVyKTsKKyAgICBBU1NFUlQoIW1fbG9hZGluZ0FjdGl2aXR5KTsK
IAogICAgIGNoYW5nZVN0YXRlKE9QRU5FRCk7CiAKQEAgLTQyMCwxNSArNDI0LDE2IEBAIE9wdGlv
bmFsPEV4Y2VwdGlvbk9yPHZvaWQ+PiBYTUxIdHRwUmVxdWVzdDo6cHJlcGFyZVRvU2VuZCgpCiAK
ICAgICBpZiAocmVhZHlTdGF0ZSgpICE9IE9QRU5FRCB8fCBtX3NlbmRGbGFnKQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uT3I8dm9pZD4geyBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9
IH07Ci0gICAgQVNTRVJUKCFtX2xvYWRlcik7CisgICAgQVNTRVJUKCFtX2xvYWRpbmdBY3Rpdml0
eSk7CiAKICAgICAvLyBGSVhNRTogQ29udmVydCB0aGlzIHRvIGNoZWNrIHRoZSBpc29sYXRlZCB3
b3JsZCdzIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IG9uY2Ugd2Via2l0Lm9yZy9iLzEwNDUyMCBp
cyBzb2x2ZWQuCiAgICAgaWYgKCFjb250ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSgpICYmICFjb250ZXh0LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxv
d0Nvbm5lY3RUb1NvdXJjZShtX3VybCkpIHsKICAgICAgICAgaWYgKCFtX2FzeW5jKQogICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbk9yPHZvaWQ+IHsgRXhjZXB0aW9uIHsgTmV0d29ya0Vycm9y
IH0gfTsKLSAgICAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKICAgICAgICAgbV90aW1l
b3V0VGltZXIuc3RvcCgpOwotICAgICAgICBtX25ldHdvcmtFcnJvclRpbWVyLnN0YXJ0T25lU2hv
dCgwX3MpOworICAgICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tT
b3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzXSB7CisgICAgICAgICAgICBuZXR3b3JrRXJyb3IoKTsK
KyAgICAgICAgfSk7CiAgICAgICAgIHJldHVybiBFeGNlcHRpb25Pcjx2b2lkPiB7IH07CiAgICAg
fQogCkBAIC02MzQsMjIgKzYzOSwxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVz
dDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAgICAgIGlmICghbV91cGxvYWRDb21wbGV0ZSAmJiBtX3Vw
bG9hZExpc3RlbmVyRmxhZykKICAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNz
RXZlbnQoZXZlbnROYW1lcygpLmxvYWRzdGFydEV2ZW50LCAwLCByZXF1ZXN0Lmh0dHBCb2R5KCkt
Pmxlbmd0aEluQnl0ZXMoKSk7CiAKLSAgICAgICAgaWYgKHJlYWR5U3RhdGUoKSAhPSBPUEVORUQg
fHwgIW1fc2VuZEZsYWcgfHwgbV9sb2FkZXIpCisgICAgICAgIGlmIChyZWFkeVN0YXRlKCkgIT0g
T1BFTkVEIHx8ICFtX3NlbmRGbGFnIHx8IG1fbG9hZGluZ0FjdGl2aXR5KQogICAgICAgICAgICAg
cmV0dXJuIHsgfTsKIAogICAgICAgICAvLyBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUgY2FuIHJl
dHVybiBudWxsIGhlcmUsIGZvciBleGFtcGxlIGlmIHdlJ3JlIG5vIGxvbmdlciBhdHRhY2hlZCB0
byBhIHBhZ2Ugb3IgaWYgYSBjb250ZW50IGJsb2NrZXIgYmxvY2tzIHRoZSBsb2FkLgogICAgICAg
ICAvLyBUaGlzIGlzIHRydWUgd2hpbGUgcnVubmluZyBvbnVubG9hZCBoYW5kbGVycy4KICAgICAg
ICAgLy8gRklYTUU6IE1heWJlIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzZW5kIFhNTEh0dHBSZXF1
ZXN0cyBmcm9tIG9udW5sb2FkLCA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA5MDQ+LgotICAgICAgICBtX2xvYWRlciA9IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSgq
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9u
cyk7CisgICAgICAgIGF1dG8gbG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKCpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsK
KyAgICAgICAgaWYgKGxvYWRlcikKKyAgICAgICAgICAgIG1fbG9hZGluZ0FjdGl2aXR5ID0gTG9h
ZGluZ0FjdGl2aXR5IHsgbWFrZVJlZigqdGhpcyksIGxvYWRlci5yZWxlYXNlTm9uTnVsbCgpIH07
CiAKICAgICAgICAgLy8gRWl0aGVyIGxvYWRlciBpcyBudWxsIG9yIHNvbWUgZXJyb3Igd2FzIHN5
bmNocm9ub3VzbHkgc2VudCB0byB1cy4KLSAgICAgICAgQVNTRVJUKG1fbG9hZGVyIHx8ICFtX3Nl
bmRGbGFnKTsKLQotICAgICAgICAvLyBOZWl0aGVyIHRoaXMgb2JqZWN0IG5vciB0aGUgSmF2YVNj
cmlwdCB3cmFwcGVyIHNob3VsZCBiZSBkZWxldGVkIHdoaWxlCi0gICAgICAgIC8vIGEgcmVxdWVz
dCBpcyBpbiBwcm9ncmVzcyBiZWNhdXNlIHdlIG5lZWQgdG8ga2VlcCB0aGUgbGlzdGVuZXJzIGFs
aXZlLAotICAgICAgICAvLyBhbmQgdGhleSBhcmUgcmVmZXJlbmNlZCBieSB0aGUgSmF2YVNjcmlw
dCB3cmFwcGVyLgotICAgICAgICBpZiAobV9sb2FkZXIpCi0gICAgICAgICAgICBzZXRQZW5kaW5n
QWN0aXZpdHkoKnRoaXMpOworICAgICAgICBBU1NFUlQobV9sb2FkaW5nQWN0aXZpdHkgfHwgIW1f
c2VuZEZsYWcpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmlzRG9jdW1lbnQoKSAmJiAhaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRB
bmRBbGxPd25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6U3luY1hIUiwgKmRvY3VtZW50KCkpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5ldHdvcmtFcnJvciB9OwpAQCAtNjY5LDcg
KzY3MCw2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0
KCkKIAogdm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogewotICAgIC8vIGludGVybmFsQWJv
cnQoKSBjYWxscyB1bnNldFBlbmRpbmdBY3Rpdml0eSh0aGlzKSwgd2hpY2ggbWF5IHJlbGVhc2Ug
dGhlIGxhc3QgcmVmZXJlbmNlLgogICAgIFJlZjxYTUxIdHRwUmVxdWVzdD4gcHJvdGVjdGVkVGhp
cygqdGhpcyk7CiAKICAgICBtX3dhc0Fib3J0ZWRCeUNsaWVudCA9IHRydWU7CkBAIC02ODAsNyAr
NjgwLDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogCiAgICAgbV9yZXF1ZXN0SGVh
ZGVycy5jbGVhcigpOwogICAgIGlmICgocmVhZHlTdGF0ZSgpID09IE9QRU5FRCAmJiBtX3NlbmRG
bGFnKSB8fCByZWFkeVN0YXRlKCkgPT0gSEVBREVSU19SRUNFSVZFRCB8fCByZWFkeVN0YXRlKCkg
PT0gTE9BRElORykgewotICAgICAgICBBU1NFUlQoIW1fbG9hZGVyKTsKKyAgICAgICAgQVNTRVJU
KCFtX2xvYWRpbmdBY3Rpdml0eSk7CiAgICAgICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKICAgICAg
ICAgY2hhbmdlU3RhdGUoRE9ORSk7CiAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudHMoZXZlbnRO
YW1lcygpLmFib3J0RXZlbnQpOwpAQCAtNzAwLDIyICs3MDAsMjAgQEAgYm9vbCBYTUxIdHRwUmVx
dWVzdDo6aW50ZXJuYWxBYm9ydCgpCiAKICAgICBtX3RpbWVvdXRUaW1lci5zdG9wKCk7CiAKLSAg
ICBpZiAoIW1fbG9hZGVyKQorICAgIGlmICghbV9sb2FkaW5nQWN0aXZpdHkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgLy8gQ2FuY2VsbGluZyBtX2xvYWRlciBtYXkgdHJpZ2dlciBhIHdp
bmRvdy5vbmxvYWQgY2FsbGJhY2sgd2hpY2ggY2FuIGNhbGwgb3BlbigpIG9uIHRoZSBzYW1lIHho
ci4KKyAgICAvLyBDYW5jZWxsaW5nIG1fbG9hZGluZ0FjdGl2aXR5IG1heSB0cmlnZ2VyIGEgd2lu
ZG93Lm9ubG9hZCBjYWxsYmFjayB3aGljaCBjYW4gY2FsbCBvcGVuKCkgb24gdGhlIHNhbWUgeGhy
LgogICAgIC8vIFRoaXMgd291bGQgY3JlYXRlIGludGVybmFsQWJvcnQgcmVlbnRyYW50IGNhbGwu
Ci0gICAgLy8gbV9sb2FkZXIgaXMgc2V0IHRvIG51bGwgYmVmb3JlIGJlaW5nIGNhbmNlbGxlZCB0
byBleGl0IGVhcmx5IGluIGFueSByZWVudHJhbnQgaW50ZXJuYWxBYm9ydCgpIGNhbGwuCi0gICAg
YXV0byBsb2FkZXIgPSBXVEZNb3ZlKG1fbG9hZGVyKTsKLSAgICBsb2FkZXItPmNhbmNlbCgpOwor
ICAgIC8vIG1fbG9hZGluZ0FjdGl2aXR5IGlzIHNldCB0byBXVEY6Om51bGxvcHQgYmVmb3JlIGJl
aW5nIGNhbmNlbGxlZCB0byBleGl0IGVhcmx5IGluIGFueSByZWVudHJhbnQgaW50ZXJuYWxBYm9y
dCgpIGNhbGwuCisgICAgYXV0byBsb2FkaW5nQWN0aXZpdHkgPSBzdGQ6OmV4Y2hhbmdlKG1fbG9h
ZGluZ0FjdGl2aXR5LCBXVEY6Om51bGxvcHQpOworICAgIGxvYWRpbmdBY3Rpdml0eS0+bG9hZGVy
LT5jYW5jZWwoKTsKIAotICAgIC8vIElmIHdpbmRvdy5vbmxvYWQgY2FsbGJhY2sgY2FsbHMgb3Bl
bigpIGFuZCBzZW5kKCkgb24gdGhlIHNhbWUgeGhyLCBtX2xvYWRlciBpcyBub3cgc2V0IHRvIGEg
bmV3IHZhbHVlLgorICAgIC8vIElmIHdpbmRvdy5vbmxvYWQgY2FsbGJhY2sgY2FsbHMgb3Blbigp
IGFuZCBzZW5kKCkgb24gdGhlIHNhbWUgeGhyLCBtX2xvYWRpbmdBY3Rpdml0eSBpcyBub3cgc2V0
IHRvIGEgbmV3IHZhbHVlLgogICAgIC8vIFRoZSBmdW5jdGlvbiBjYWxsaW5nIGludGVybmFsQWJv
cnQoKSBzaG91bGQgYWJvcnQgdG8gbGV0IHRoZSBvcGVuKCkgYW5kIHNlbmQoKSBjYWxscyBjb250
aW51ZSBwcm9wZXJseS4KICAgICAvLyBXZSBhc2sgdGhlIGZ1bmN0aW9uIGNhbGxpbmcgaW50ZXJu
YWxBYm9ydCgpIHRvIGV4aXQgYnkgcmV0dXJuaW5nIGZhbHNlLgogICAgIC8vIFNhdmUgdGhpcyBp
bmZvcm1hdGlvbiB0byBhIGxvY2FsIHZhcmlhYmxlIHNpbmNlIHdlIGFyZSBnb2luZyB0byBkcm9w
IHByb3RlY3Rpb24uCi0gICAgYm9vbCBuZXdMb2FkU3RhcnRlZCA9IG1fbG9hZGVyOwotCi0gICAg
dW5zZXRQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOworICAgIGJvb2wgbmV3TG9hZFN0YXJ0ZWQgPSAh
IW1fbG9hZGluZ0FjdGl2aXR5OwogCiAgICAgcmV0dXJuICFuZXdMb2FkU3RhcnRlZDsKIH0KQEAg
LTc1OCwxMiArNzU2LDYgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6bmV0d29ya0Vycm9yKCkKICAg
ICBkaXNwYXRjaEVycm9yRXZlbnRzKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50KTsKICAgICBpbnRl
cm5hbEFib3J0KCk7CiB9Ci0KLXZvaWQgWE1MSHR0cFJlcXVlc3Q6Om5ldHdvcmtFcnJvclRpbWVy
RmlyZWQoKQotewotICAgIG5ldHdvcmtFcnJvcigpOwotICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5
KCp0aGlzKTsKLX0KICAgICAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmFib3J0RXJyb3IoKQogewpA
QCAtODg4LDYgKzg4MCw4IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6c3RhdHVzVGV4dCgpIGNv
bnN0CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCiB7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKICAg
ICAvLyBJZiB3ZSBhcmUgYWxyZWFkeSBpbiBhbiBlcnJvciBzdGF0ZSwgZm9yIGluc3RhbmNlIHdl
IGNhbGxlZCBhYm9ydCgpLCBiYWlsIG91dCBlYXJseS4KICAgICBpZiAobV9lcnJvcikKICAgICAg
ICAgcmV0dXJuOwpAQCAtOTA2LDExICs5MDAsMTIgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlk
RmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICB9CiAKICAgICAvLyBJbiBjYXNl
IGRpZEZhaWwgaXMgY2FsbGVkIHN5bmNocm9ub3VzbHkgb24gYW4gYXN5bmNocm9ub3VzIFhIUiBj
YWxsLCBsZXQncyBkaXNwYXRjaCBuZXR3b3JrIGVycm9yIGFzeW5jaHJvbm91c2x5Ci0gICAgaWYg
KG1fYXN5bmMgJiYgbV9zZW5kRmxhZyAmJiAhbV9sb2FkZXIpIHsKKyAgICBpZiAobV9hc3luYyAm
JiBtX3NlbmRGbGFnICYmICFtX2xvYWRpbmdBY3Rpdml0eSkgewogICAgICAgICBtX3NlbmRGbGFn
ID0gZmFsc2U7Ci0gICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CiAgICAgICAgIG1f
dGltZW91dFRpbWVyLnN0b3AoKTsKLSAgICAgICAgbV9uZXR3b3JrRXJyb3JUaW1lci5zdGFydE9u
ZVNob3QoMF9zKTsKKyAgICAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBU
YXNrU291cmNlOjpOZXR3b3JraW5nLCBbdGhpc10geworICAgICAgICAgICAgbmV0d29ya0Vycm9y
KCk7CisgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fZXhjZXB0aW9u
Q29kZSA9IE5ldHdvcmtFcnJvcjsKQEAgLTkxOSw2ICs5MTQsOCBAQCB2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogCiB2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpCiB7CisgICAgYXV0byBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKICAgICBpZiAobV9lcnJvcikKICAgICAgICAg
cmV0dXJuOwogCkBAIC05MzAsOCArOTI3LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmlu
aXNoTG9hZGluZyh1bnNpZ25lZCBsb25nKQogCiAgICAgbV9yZXNwb25zZUJ1aWxkZXIuc2hyaW5r
VG9GaXQoKTsKIAotICAgIGJvb2wgaGFkTG9hZGVyID0gbV9sb2FkZXI7Ci0gICAgbV9sb2FkZXIg
PSBudWxscHRyOworICAgIG1fbG9hZGluZ0FjdGl2aXR5ID0gV1RGOjpudWxsb3B0OwogCiAgICAg
bV9zZW5kRmxhZyA9IGZhbHNlOwogICAgIGNoYW5nZVN0YXRlKERPTkUpOwpAQCAtOTM5LDkgKzkz
NSw2IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9u
ZykKICAgICBtX2RlY29kZXIgPSBudWxscHRyOwogCiAgICAgbV90aW1lb3V0VGltZXIuc3RvcCgp
OwotCi0gICAgaWYgKGhhZExvYWRlcikKLSAgICAgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkoKnRo
aXMpOwogfQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25n
IGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KQpA
QCAtMTExMSw3ICsxMTA0LDYgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlzcGF0Y2hFcnJvckV2
ZW50cyhjb25zdCBBdG9tU3RyaW5nJiB0eXBlKQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRS
ZWFjaFRpbWVvdXQoKQogewotICAgIC8vIGludGVybmFsQWJvcnQoKSBjYWxscyB1bnNldFBlbmRp
bmdBY3Rpdml0eSh0aGlzKSwgd2hpY2ggbWF5IHJlbGVhc2UgdGhlIGxhc3QgcmVmZXJlbmNlLgog
ICAgIFJlZjxYTUxIdHRwUmVxdWVzdD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgaWYgKCFp
bnRlcm5hbEFib3J0KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTExNTYsNyArMTE0OCw3IEBAIHZv
aWQgWE1MSHR0cFJlcXVlc3Q6OnN0b3AoKQogCiB2b2lkIFhNTEh0dHBSZXF1ZXN0Ojpjb250ZXh0
RGVzdHJveWVkKCkKIHsKLSAgICBBU1NFUlQoIW1fbG9hZGVyKTsKKyAgICBBU1NFUlQoIW1fbG9h
ZGluZ0FjdGl2aXR5KTsKICAgICBBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsK
IH0KIApAQCAtMTE2NSw0ICsxMTU3LDM4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldE1heGlt
dW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZyhkb3VibGUgaW50ZXJ2YWwpCiAgICAg
bV9tYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcgPSBTZWNvbmRzKGludGVy
dmFsKTsgICAgCiB9CiAKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OmV2ZW50TGlzdGVuZXJzRGlkQ2hh
bmdlKCkKK3sKKyAgICBtX2hhc1JlbGV2YW50RXZlbnRMaXN0ZW5lciA9IGhhc0V2ZW50TGlzdGVu
ZXJzKGV2ZW50TmFtZXMoKS5yZWFkeXN0YXRlY2hhbmdlRXZlbnQpCisgICAgICAgIHx8IGhhc0V2
ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KQorICAgICAgICB8fCBoYXNF
dmVudExpc3RlbmVycyhldmVudE5hbWVzKCkuYWJvcnRFdmVudCkKKyAgICAgICAgfHwgaGFzRXZl
bnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmVycm9yRXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50
TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50TGlz
dGVuZXJzKGV2ZW50TmFtZXMoKS50aW1lb3V0RXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50TGlz
dGVuZXJzKGV2ZW50TmFtZXMoKS5sb2FkZW5kRXZlbnQpOworfQorCisvLyBBbiBYTUxIdHRwUmVx
dWVzdCBvYmplY3QgbXVzdCBub3QgYmUgZ2FyYmFnZSBjb2xsZWN0ZWQgaWYgaXRzIHN0YXRlIGlz
IGVpdGhlciBvcGVuZWQgd2l0aCB0aGUgc2VuZCgpIGZsYWcgc2V0LCBoZWFkZXJzIHJlY2VpdmVk
LCBvciBsb2FkaW5nLCBhbmQKKy8vIGl0IGhhcyBvbmUgb3IgbW9yZSBldmVudCBsaXN0ZW5lcnMg
cmVnaXN0ZXJlZCB3aG9zZSB0eXBlIGlzIG9uZSBvZiByZWFkeXN0YXRlY2hhbmdlLCBwcm9ncmVz
cywgYWJvcnQsIGVycm9yLCBsb2FkLCB0aW1lb3V0LCBhbmQgbG9hZGVuZC4KK2Jvb2wgWE1MSHR0
cFJlcXVlc3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAgaWYgKEFjdGl2ZURP
TU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgaWYgKCFtX2hhc1JlbGV2YW50RXZlbnRMaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgc3dpdGNoIChyZWFkeVN0YXRlKCkpIHsKKyAgICBjYXNlIE9QRU5FRDoKKyAgICAg
ICAgcmV0dXJuIG1fc2VuZEZsYWc7CisgICAgY2FzZSBIRUFERVJTX1JFQ0VJVkVEOgorICAgIGNh
c2UgTE9BRElORzoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBVTlNFTlQ6CisgICAg
Y2FzZSBET05FOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmlu
ZGV4IGRmMzJhYjBkZTllYTYzNTNjM2NhZDU1YzVjZjE5MmY4YjI2Y2M3NDAuLjY0MDVmY2RhYThh
YmQ3ODA3MzUzMzMyMjI1ZDlhNTkyNTE0Zjc1MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5oCkBAIC0xMzAsOSArMTMwLDE3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0TWF4aW11bUludGVydmFsRm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nKGRvdWJsZSk7
CiAKKyAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IGZpbmFsOworCisgICAgdXNp
bmcgRXZlbnRUYXJnZXQ6OmRpc3BhdGNoRXZlbnQ7CisgICAgdm9pZCBkaXNwYXRjaEV2ZW50KEV2
ZW50Jikgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgWE1MSHR0cFJlcXVlc3Qo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCisgICAgLy8gRXZlbnRUYXJnZXQuCisgICAgdm9p
ZCBldmVudExpc3RlbmVyc0RpZENoYW5nZSgpIGZpbmFsOworCiAgICAgVGV4dEVuY29kaW5nIGZp
bmFsUmVzcG9uc2VDaGFyc2V0KCkgY29uc3Q7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKQEAg
LTE4NSwxMyArMTkzLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlzcGF0Y2hFcnJvckV2ZW50
cyhjb25zdCBBdG9tU3RyaW5nJik7CiAKLSAgICB1c2luZyBFdmVudFRhcmdldDo6ZGlzcGF0Y2hF
dmVudDsKLSAgICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKLQogICAgIFJl
ZjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBjcmVhdGVEZWNvZGVyKCkgY29uc3Q7CiAKLSAgICB2b2lk
IG5ldHdvcmtFcnJvclRpbWVyRmlyZWQoKTsKLQogICAgIHVuc2lnbmVkIG1fYXN5bmMgOiAxOwog
ICAgIHVuc2lnbmVkIG1faW5jbHVkZUNyZWRlbnRpYWxzIDogMTsKICAgICB1bnNpZ25lZCBtX3Nl
bmRGbGFnIDogMTsKQEAgLTIxNCw3ICsyMTcsMTEgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Rm9y
bURhdGE+IG1fcmVxdWVzdEVudGl0eUJvZHk7CiAgICAgU3RyaW5nIG1fbWltZVR5cGVPdmVycmlk
ZTsKIAotICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRlcjsKKyAgICBzdHJ1Y3Qg
TG9hZGluZ0FjdGl2aXR5IHsKKyAgICAgICAgUmVmPFhNTEh0dHBSZXF1ZXN0PiBwcm90ZWN0ZWRU
aGlzOyAvLyBLZWVwIG9iamVjdCBhbGl2ZSB3aGlsZSBsb2FkaW5nIGV2ZW4gaWYgdGhlcmUgaXMg
bm8gbG9uZ2VyIGEgSlMgd3JhcHBlci4KKyAgICAgICAgUmVmPFRocmVhZGFibGVMb2FkZXI+IGxv
YWRlcjsKKyAgICB9OworICAgIE9wdGlvbmFsPExvYWRpbmdBY3Rpdml0eT4gbV9sb2FkaW5nQWN0
aXZpdHk7CiAKICAgICBTdHJpbmcgbV9yZXNwb25zZUVuY29kaW5nOwogCkBAIC0yMzUsNyArMjQy
LDYgQEAgcHJpdmF0ZToKIAogICAgIG11dGFibGUgU3RyaW5nIG1fYWxsUmVzcG9uc2VIZWFkZXJz
OwogCi0gICAgVGltZXIgbV9uZXR3b3JrRXJyb3JUaW1lcjsKICAgICBUaW1lciBtX3RpbWVvdXRU
aW1lcjsKIAogICAgIE1vbm90b25pY1RpbWUgbV9zZW5kaW5nVGltZTsKQEAgLTI0Myw2ICsyNDks
NyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPEV4Y2VwdGlvbkNvZGU+IG1fZXhjZXB0aW9uQ29k
ZTsKICAgICBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gbV91c2VyR2VzdHVyZVRva2VuOwogICAg
IFNlY29uZHMgbV9tYXhpbXVtSW50ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmc7CisgICAg
Ym9vbCBtX2hhc1JlbGV2YW50RXZlbnRMaXN0ZW5lciB7IGZhbHNlIH07CiB9OwogCiBpbmxpbmUg
YXV0byBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUeXBlKCkgY29uc3QgLT4gUmVzcG9uc2VUeXBl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50VGhyb3R0bGUuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlLmNwcAppbmRleCA3NzQ1ZjRmOGNmNzE3MjVjNGE4ZGViYTIwZDFjN2Mz
MTY1MzliMWQxLi4yNmE3ZGVjMGU0ZDk0ZGI5ZmVkZDM3NWExNzA4MGQwYjQ3ZWVjYTE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhy
b3R0bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZS5jcHAKQEAgLTI5LDE5ICsyOSwxOCBAQAogCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiWE1MSHR0cFJlcXVl
c3QuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjb25zdCBTZWNvbmRzIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dFRocm90dGxlOjptaW5pbXVtUHJvZ3Jlc3NFdmVudERpc3BhdGNoaW5nSW50ZXJ2YWwgeyA1MF9t
cyB9OyAvLyA1MCBtcyBwZXIgc3BlY2lmaWNhdGlvbi4KIAotWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGU6OlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlKEV2ZW50
VGFyZ2V0JiB0YXJnZXQpCitYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6WE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUoWE1MSHR0cFJlcXVlc3QmIHRhcmdldCkK
ICAgICA6IG1fdGFyZ2V0KHRhcmdldCkKICAgICAsIG1fZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVz
c0V2ZW50VGltZXIodGFyZ2V0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVz
c0V2ZW50VGltZXJGaXJlZCkKLSAgICAsIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVyUmVz
dW1pbmdUaW1lcih0YXJnZXQuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgJlhNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0
ZXJSZXN1bWluZykKIHsKICAgICBtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVy
LnN1c3BlbmRJZk5lZWRlZCgpOwotICAgIG1fZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVyUmVz
dW1pbmdUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAogWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGU6On5YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZSgpID0g
ZGVmYXVsdDsKQEAgLTgxLDEzICs4MCw5IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50VGhyb3R0bGU6OmRpc3BhdGNoUmVhZHlTdGF0ZUNoYW5nZUV2ZW50KEV2ZW50JiBlCiAKIHZv
aWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoRXZlbnRXaGVu
UG9zc2libGUoRXZlbnQmIGV2ZW50KQogewotICAgIGlmIChtX3Nob3VsZERlZmVyRXZlbnRzRHVl
VG9TdXNwZW5zaW9uKSB7Ci0gICAgICAgIGlmIChtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5z
aW9uLnNpemUoKSA+IDEgJiYgZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS5yZWFkeXN0YXRl
Y2hhbmdlRXZlbnQgJiYgZXZlbnQudHlwZSgpID09IG1fZXZlbnRzRGVmZXJyZWREdWVUb1N1c3Bl
bnNpb24ubGFzdCgpLT50eXBlKCkpIHsKLSAgICAgICAgICAgIC8vIFJlYWR5c3RhdGVjaGFuZ2Ug
ZXZlbnRzIGFyZSBzdGF0ZS1sZXNzIHNvIGF2b2lkIHJlcGVhdGluZyB0d28gaWRlbnRpY2FsIGV2
ZW50cyBpbiBhIHJvdyBvbiByZXN1bWUuCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LSAgICAgICAgbV9ldmVudHNEZWZlcnJlZER1ZVRvU3VzcGVuc2lvbi5hcHBlbmQoZXZlbnQpOwot
ICAgIH0gZWxzZQorICAgIGlmIChtX3Nob3VsZERlZmVyRXZlbnRzRHVlVG9TdXNwZW5zaW9uKQor
ICAgICAgICBtX3RhcmdldC5xdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQobV90YXJnZXQsIFRhc2tT
b3VyY2U6Ok5ldHdvcmtpbmcsIG1ha2VSZWYoZXZlbnQpKTsKKyAgICBlbHNlCiAgICAgICAgIG1f
dGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwogfQogCkBAIC0xMTcsMjAgKzExMiw2IEBAIHZv
aWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmZsdXNoUHJvZ3Jlc3NFdmVu
dCgpCiAgICAgZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCwgbV9sZW5ndGhDb21wdXRh
YmxlLCBtX2xvYWRlZCwgbV90b3RhbCkpOwogfQogCi12b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlOjpkaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWluZygpCi17
Ci0gICAgQVNTRVJUKG1fc2hvdWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24pOwotICAgIG1f
c2hvdWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24gPSBmYWxzZTsKLQotICAgIC8vIFRha2Ug
b3ZlciB0aGUgZGVmZXJyZWQgZXZlbnRzIGJlZm9yZSBkaXNwYXRjaGluZyB0aGVtIHdoaWNoIGNh
biBwb3RlbnRpYWxseSBhZGQgbW9yZS4KLSAgICBhdXRvIGV2ZW50c0RlZmVycmVkRHVlVG9TdXNw
ZW5zaW9uID0gV1RGTW92ZShtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uKTsKLQotICAg
IGZsdXNoUHJvZ3Jlc3NFdmVudCgpOwotCi0gICAgZm9yIChhdXRvJiBkZWZlcnJlZEV2ZW50IDog
ZXZlbnRzRGVmZXJyZWREdWVUb1N1c3BlbnNpb24pCi0gICAgICAgIGRpc3BhdGNoRXZlbnRXaGVu
UG9zc2libGUoZGVmZXJyZWRFdmVudCk7Ci19Ci0KIHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQo
KQogewogICAgIEFTU0VSVChtX2Rpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVyLmlz
QWN0aXZlKCkpOwpAQCAtMTQ3LDE2ICsxMjgsMTkgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXJGaXIK
IHZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OnN1c3BlbmQoKQogewog
ICAgIG1fc2hvdWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24gPSB0cnVlOworCisgICAgaWYg
KG1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQpIHsKKyAgICAgICAgbV90YXJnZXQu
cXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKG1fdGFyZ2V0LCBUYXNrU291cmNlOjpOZXR3b3Jr
aW5nLCBbdGhpc10geworICAgICAgICAgICAgZmx1c2hQcm9ncmVzc0V2ZW50KCk7CisgICAgICAg
IH0pOworICAgIH0KIH0KIAogdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRs
ZTo6cmVzdW1lKCkKIHsKLSAgICBpZiAobV9ldmVudHNEZWZlcnJlZER1ZVRvU3VzcGVuc2lvbi5p
c0VtcHR5KCkgJiYgIW1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQpIHsKKyAgICBt
X3RhcmdldC5xdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUobV90YXJnZXQsIFRhc2tTb3VyY2U6
Ok5ldHdvcmtpbmcsIFt0aGlzXSB7CiAgICAgICAgIG1fc2hvdWxkRGVmZXJFdmVudHNEdWVUb1N1
c3BlbnNpb24gPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIG1fZGlzcGF0
Y2hEZWZlcnJlZEV2ZW50c0FmdGVyUmVzdW1pbmdUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKKyAg
ICB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaAppbmRleCBh
ODNjZjNkYThkNjZiOTgzYjQ5Njg2OGQ3Zjg4NWYzZDcwYWYxMGI5Li5iNGI0OTk3ZDJiYTkzMTZm
ZTk2ODJhZjhlZDg0NGE2M2ZjM2YxNDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaApAQCAtMzQsNiArMzQs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV2ZW50OwogY2xhc3MgRXZlbnRUYXJn
ZXQ7CitjbGFzcyBYTUxIdHRwUmVxdWVzdDsKIAogZW51bSBQcm9ncmVzc0V2ZW50QWN0aW9uIHsK
ICAgICBEb05vdEZsdXNoUHJvZ3Jlc3NFdmVudCwKQEAgLTQ0LDcgKzQ1LDcgQEAgZW51bSBQcm9n
cmVzc0V2ZW50QWN0aW9uIHsKIC8vIGFib3V0IGV2ZXJ5IDUwbXMgb3IgZm9yIGV2ZXJ5IGJ5dGUg
cmVjZWl2ZWQsIHdoaWNoZXZlciBpcyBsZWFzdCBmcmVxdWVudCIuCiBjbGFzcyBYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZSB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUoRXZlbnRUYXJnZXQmKTsKKyAgICBleHBsaWNp
dCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZShYTUxIdHRwUmVxdWVzdCYpOwog
ICAgIHZpcnR1YWwgflhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlKCk7CiAKICAg
ICB2b2lkIGRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudChib29sIGxlbmd0aENvbXB1dGFi
bGUsIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkZWQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbCk7
CkBAIC01OCwyMCArNTksMTYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyBt
aW5pbXVtUHJvZ3Jlc3NFdmVudERpc3BhdGNoaW5nSW50ZXJ2YWw7CiAKICAgICB2b2lkIGRpc3Bh
dGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQoKTsKLSAgICB2b2lkIGRpc3BhdGNo
RGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nKCk7CiAgICAgdm9pZCBmbHVzaFByb2dyZXNzRXZl
bnQoKTsKICAgICB2b2lkIGRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUoRXZlbnQmKTsKIAogICAg
IC8vIFdlYWsgcG9pbnRlciB0byBvdXIgWE1MSHR0cFJlcXVlc3Qgb2JqZWN0IGFzIGl0IGlzIHRo
ZSBvbmUgaG9sZGluZyB1cy4KLSAgICBFdmVudFRhcmdldCYgbV90YXJnZXQ7CisgICAgWE1MSHR0
cFJlcXVlc3QmIG1fdGFyZ2V0OwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIG1fbG9hZGVkIHsg
MCB9OwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBtX3RvdGFsIHsgMCB9OwogCi0gICAgUmVmUHRy
PEV2ZW50PiBtX2RlZmVycmVkUHJvZ3Jlc3NFdmVudDsKLSAgICBWZWN0b3I8UmVmPEV2ZW50Pj4g
bV9ldmVudHNEZWZlcnJlZER1ZVRvU3VzcGVuc2lvbjsKICAgICBTdXNwZW5kYWJsZVRpbWVyIG1f
ZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXI7Ci0gICAgU3VzcGVuZGFibGVUaW1l
ciBtX2Rpc3BhdGNoRGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nVGltZXI7CiAKICAgICBib29s
IG1faGFzUGVuZGluZ1Rocm90dGxlZFByb2dyZXNzRXZlbnQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9sZW5ndGhDb21wdXRhYmxlIHsgZmFsc2UgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393061</attachid>
            <date>2020-03-09 12:26:15 -0700</date>
            <delta_ts>2020-03-09 13:17:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208481-20200309122614.patch</filename>
            <type>text/plain</type>
            <size>23438</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTI4NWY5ZmZkMTM5MDcw
MjUzNDQ1M2MxYTg0ODA5MGYxMzUxMTAyMi4uMjk5ZmQ2NDJmYmE5NWJlYzEzZjQwNjIwNzEzZjEz
NzViNWRkMjc3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIwLTAzLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxpZ24gZ2FyYmFnZSBjb2xs
ZWN0aW9uIGZvciBYTUxIdHRwUmVxdWVzdCBvYmplY3RzIHdpdGggdGhlIHNwZWNpZmljYXRpb24K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODQ4MQor
CisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBBbGlnbiBnYXJi
YWdlIGNvbGxlY3Rpb24gZm9yIFhNTEh0dHBSZXF1ZXN0IG9iamVjdHMgd2l0aCB0aGUgc3BlY2lm
aWNhdGlvbjoKKyAgICAgICAgLSBodHRwczovL3hoci5zcGVjLndoYXR3Zy5vcmcvI2dhcmJhZ2Ut
Y29sbGVjdGlvbgorCisgICAgICAgIFdlIG5vdyBvdmVycmlkZSBBY3RpdmVET01PYmplY3Q6Omhh
c1BlbmRpbmdBY3Rpdml0eSgpIHRvIG1hdGNoIGV4YWN0bHkgdGhlIHRleHQKKyAgICAgICAgaW4g
dGhlIHNwZWNpZmljYXRpb246CisgICAgICAgICIiIgorICAgICAgICBBbiBYTUxIdHRwUmVxdWVz
dCBvYmplY3QgbXVzdCBub3QgYmUgZ2FyYmFnZSBjb2xsZWN0ZWQgaWYgaXRzIHN0YXRlIGlzIGVp
dGhlcgorICAgICAgICBvcGVuZWQgd2l0aCB0aGUgc2VuZCgpIGZsYWcgc2V0LCBoZWFkZXJzIHJl
Y2VpdmVkLCBvciBsb2FkaW5nLCBhbmQgaXQgaGFzIG9uZSBvcgorICAgICAgICBtb3JlIGV2ZW50
IGxpc3RlbmVycyByZWdpc3RlcmVkIHdob3NlIHR5cGUgaXMgb25lIG9mIHJlYWR5c3RhdGVjaGFu
Z2UsIHByb2dyZXNzLAorICAgICAgICBhYm9ydCwgZXJyb3IsIGxvYWQsIHRpbWVvdXQsIGFuZCBs
b2FkZW5kLgorICAgICAgICAiIiIKKworICAgICAgICBQcmV2aW91c2x5LCB3ZSB3ZXJlIHRyeWlu
ZyB0byBpbXBsZW1lbnQgdGhpcyBiZWhhdmlvciB3aXRoIEFjdGl2ZURPTU9iamVjdCdzCisgICAg
ICAgIHNldFBlbmRpbmdBY3Rpdml0eSgpIC8gdW5zZXRQZW5kaW5nQWN0aXZpdHkoKSBidXQgdGhp
cyB3YXMgZXJyb3IgYW5kIGxlYWsgcHJvbmUuCisgICAgICAgIEl0IHdhcyBhbHNvIGtlZXBpbmcg
dGhlIEpTIHdyYXBwZXIgYWxpdmUgdG9vIGxvbmcgaW4gdGhlIGNhc2VzIHdoZXJlIHRoZSBKUwor
ICAgICAgICBkb2VzIG5vdCBoYXZlIGFueSBldmVudCBsaXN0ZW5lcnMuIElmIHRoZSBKUyBoYXMg
bm90IGV2ZW50IGxpc3RlbmVycywgdGhlbiB3ZQorICAgICAgICBjYW4gY29sbGVjdCB0aGUgSlMg
d3JhcHBlciwgd2UganVzdCBuZWVkIHRvIGtlZXAgdGhlIGltcGxlbWVudGF0aW9uCisgICAgICAg
IFhNTEh0dHBSZXF1ZXN0IG9iamVjdCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBsb2FkLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0IHN1Y2ggYXM6Cisg
ICAgICAgIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtZ2MuaHRtbAorCisgICAg
ICAgICogZG9tL0V2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0
OjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpyZW1v
dmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50VGFyZ2V0OjpyZW1vdmVB
bGxFdmVudExpc3RlbmVycyk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudFRhcmdldDo6ZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UpOgorICAgICAg
ICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6WE1MSHR0cFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
OmNoYW5nZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpvcGVuKToK
KyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpwcmVwYXJlVG9TZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRw
UmVxdWVzdDo6aW50ZXJuYWxBYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVz
dDo6bmV0d29ya0Vycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRG
YWlsKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRSZWFjaFRpbWVvdXQpOgor
ICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNvbnRleHREZXN0cm95ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpoYXNQZW5kaW5nQWN0aXZpdHkgY29u
c3QpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAqIHhtbC9YTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGUpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50VGhyb3R0bGU6OmRpc3BhdGNoRXZlbnRXaGVuUG9zc2libGUpOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OnN1c3BlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OnJlc3Vt
ZSk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmg6
CisKIDIwMjAtMDMtMDkgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBS
ZW5hbWUgdXJsU2VsZWN0ZWQgdG8gY2hhbmdlTG9jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXQuY3BwCmluZGV4IGNkMGRlMDg4MWM0MDAxZmVkYzdkOGQ2NzQwMjY4MWFiMThkNjRkNTcuLjhj
Mzg1MDliOWQ1ZGMyOWEwMzJlZmNjODZlN2E2ODEzYWYwYmU4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0LmNwcApAQCAtOTQsNiArOTQsNyBAQCBib29sIEV2ZW50VGFyZ2V0OjphZGRFdmVu
dExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZQog
ICAgIGlmIChsaXN0ZW5lckNyZWF0ZWRGcm9tU2NyaXB0KQogICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZEFkZEV2ZW50TGlzdGVuZXIoKnRoaXMsIGV2ZW50VHlwZSwgbGlzdGVu
ZXJSZWYuZ2V0KCksIG9wdGlvbnMuY2FwdHVyZSk7CiAKKyAgICBldmVudExpc3RlbmVyc0RpZENo
YW5nZSgpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xMzMsNyArMTM0LDExIEBAIGJvb2wg
RXZlbnRUYXJnZXQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRU
eXBlLCBFdmVudExpc3RlbmVyCiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxS
ZW1vdmVFdmVudExpc3RlbmVyKCp0aGlzLCBldmVudFR5cGUsIGxpc3RlbmVyLCBvcHRpb25zLmNh
cHR1cmUpOwogCi0gICAgcmV0dXJuIGRhdGEtPmV2ZW50TGlzdGVuZXJNYXAucmVtb3ZlKGV2ZW50
VHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMuY2FwdHVyZSk7CisgICAgaWYgKGRhdGEtPmV2ZW50TGlz
dGVuZXJNYXAucmVtb3ZlKGV2ZW50VHlwZSwgbGlzdGVuZXIsIG9wdGlvbnMuY2FwdHVyZSkpIHsK
KyAgICAgICAgZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBFdmVudFRhcmdldDo6c2V0QXR0
cmlidXRlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxF
dmVudExpc3RlbmVyPiYmIGxpc3RlbmVyLCBET01XcmFwcGVyV29ybGQmIGlzb2xhdGVkV29ybGQp
CkBAIC0zNDUsOCArMzUwLDEwIEBAIHZvaWQgRXZlbnRUYXJnZXQ6OnJlbW92ZUFsbEV2ZW50TGlz
dGVuZXJzKCkKICAgICB0aHJlYWREYXRhLnNldElzSW5SZW1vdmVBbGxFdmVudExpc3RlbmVycyh0
cnVlKTsKIAogICAgIGF1dG8qIGRhdGEgPSBldmVudFRhcmdldERhdGEoKTsKLSAgICBpZiAoZGF0
YSkKKyAgICBpZiAoZGF0YSAmJiAhZGF0YS0+ZXZlbnRMaXN0ZW5lck1hcC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgZGF0YS0+ZXZlbnRMaXN0ZW5lck1hcC5jbGVhcigpOworICAgICAgICBldmVudExp
c3RlbmVyc0RpZENoYW5nZSgpOworICAgIH0KIAogICAgIHRocmVhZERhdGEuc2V0SXNJblJlbW92
ZUFsbEV2ZW50TGlzdGVuZXJzKGZhbHNlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgKaW5k
ZXggNmJjOTliMTg0ODBhOTEwYmI2MTBjNmI0ZjMzOTgyZDJmMDkxMDMzYy4uNjFiNTBlNTc4YjVl
NTU3M2MxYjZkNjQ1ZjE4ZjBhOGQxYzFhZWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgK
QEAgLTEyNCw2ICsxMjQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERh
dGEmIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpID0gMDsKICAgICBjb25zdCBFdmVudFRhcmdldERh
dGEqIGV2ZW50VGFyZ2V0RGF0YSgpIGNvbnN0OwogCisgICAgdmlydHVhbCB2b2lkIGV2ZW50TGlz
dGVuZXJzRGlkQ2hhbmdlKCkgeyB9CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHJlZkV2
ZW50VGFyZ2V0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggMjQ2YTRmYzcwMzIzMTBj
NDNkODdkZDIxOTk4OWRmZGU4MzIxNmQxYS4uYzZhNWJkNzkwMjgzMTc0NzMyZjViYmE3NzllMGZk
YTljNGUyNWM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0xMjAs
NyArMTIwLDYgQEAgWE1MSHR0cFJlcXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpCiAgICAgLCBtX3JlYWR5U3RhdGUoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFVOU0VOVCkpCiAgICAgLCBtX3Jlc3BvbnNlVHlwZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UmVzcG9uc2VUeXBlOjpFbXB0eVN0cmluZykpCiAgICAgLCBtX3Byb2dyZXNzRXZlbnRUaHJvdHRs
ZSgqdGhpcykKLSAgICAsIG1fbmV0d29ya0Vycm9yVGltZXIoKnRoaXMsICZYTUxIdHRwUmVxdWVz
dDo6bmV0d29ya0Vycm9yVGltZXJGaXJlZCkKICAgICAsIG1fdGltZW91dFRpbWVyKCp0aGlzLCAm
WE1MSHR0cFJlcXVlc3Q6OmRpZFJlYWNoVGltZW91dCkKICAgICAsIG1fbWF4aW11bUludGVydmFs
Rm9yVXNlckdlc3R1cmVGb3J3YXJkaW5nKG1heGltdW1JbnRlcnZhbEZvclVzZXJHZXN0dXJlRm9y
d2FyZGluZykKIHsKQEAgLTI4MSw2ICsyODAsMTEgQEAgWE1MSHR0cFJlcXVlc3RVcGxvYWQmIFhN
TEh0dHBSZXF1ZXN0Ojp1cGxvYWQoKQogdm9pZCBYTUxIdHRwUmVxdWVzdDo6Y2hhbmdlU3RhdGUo
U3RhdGUgbmV3U3RhdGUpCiB7CiAgICAgaWYgKHJlYWR5U3RhdGUoKSAhPSBuZXdTdGF0ZSkgewor
ICAgICAgICAvLyBTZXR0aW5nIHRoZSByZWFkeVN0YXRlIHRvIERPTkUgY291bGQgZ2V0IHRoZSB3
cmFwcGVyIGNvbGxlY3RlZCBiZWZvcmUgd2UgZ2V0IGEgY2hhbmNlIHRvIGZpcmUgdGhlIEpTCisg
ICAgICAgIC8vIGV2ZW50cyBpbiBjYWxsUmVhZHlTdGF0ZUNoYW5nZUxpc3RlbmVyKCkgYmVsb3cg
c28gd2UgZXh0ZW5kIHRoZSBsaWZldGltZSBvZiB0aGUgSlMgd3JhcHBlciB1bnRpbCB0aGUKKyAg
ICAgICAgLy8gb2YgdGhpcyBzY29wZS4KKyAgICAgICAgYXV0byBldmVudEZpcmluZ0FjdGl2aXR5
ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CisKICAgICAgICAgbV9yZWFkeVN0YXRlID0g
c3RhdGljX2Nhc3Q8U3RhdGU+KG5ld1N0YXRlKTsKICAgICAgICAgaWYgKHJlYWR5U3RhdGUoKSA9
PSBET05FKSB7CiAgICAgICAgICAgICAvLyBUaGUgWEhSIG9iamVjdCBpdHNlbGYgaG9sZHMgb24g
dG8gdGhlIHJlc3BvbnNlVGV4dCwgYW5kCkBAIC0zODUsNyArMzg5LDcgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IFVS
TCYgdXJsLCBib28KIAogICAgIG1fYXN5bmMgPSBhc3luYzsKIAotICAgIEFTU0VSVCghbV9sb2Fk
ZXIpOworICAgIEFTU0VSVCghbV9sb2FkaW5nQWN0aXZpdHkpOwogCiAgICAgY2hhbmdlU3RhdGUo
T1BFTkVEKTsKIApAQCAtNDIwLDE1ICs0MjQsMTYgQEAgT3B0aW9uYWw8RXhjZXB0aW9uT3I8dm9p
ZD4+IFhNTEh0dHBSZXF1ZXN0OjpwcmVwYXJlVG9TZW5kKCkKIAogICAgIGlmIChyZWFkeVN0YXRl
KCkgIT0gT1BFTkVEIHx8IG1fc2VuZEZsYWcpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb25Pcjx2
b2lkPiB7IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0gfTsKLSAgICBBU1NFUlQoIW1f
bG9hZGVyKTsKKyAgICBBU1NFUlQoIW1fbG9hZGluZ0FjdGl2aXR5KTsKIAogICAgIC8vIEZJWE1F
OiBDb252ZXJ0IHRoaXMgdG8gY2hlY2sgdGhlIGlzb2xhdGVkIHdvcmxkJ3MgQ29udGVudCBTZWN1
cml0eSBQb2xpY3kgb25jZSB3ZWJraXQub3JnL2IvMTA0NTIwIGlzIHNvbHZlZC4KICAgICBpZiAo
IWNvbnRleHQuc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgJiYg
IWNvbnRleHQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93Q29ubmVjdFRvU291cmNlKG1f
dXJsKSkgewogICAgICAgICBpZiAoIW1fYXN5bmMpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uT3I8dm9pZD4geyBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfSB9OwotICAgICAgICBzZXRQ
ZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwogICAgICAgICBtX3RpbWVvdXRUaW1lci5zdG9wKCk7Ci0g
ICAgICAgIG1fbmV0d29ya0Vycm9yVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CisgICAgICAgIHF1
ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6TmV0d29ya2luZywg
W3RoaXNdIHsKKyAgICAgICAgICAgIG5ldHdvcmtFcnJvcigpOworICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbk9yPHZvaWQ+IHsgfTsKICAgICB9CiAKQEAgLTYzNCwyMiArNjM5
LDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KCkK
ICAgICAgICAgaWYgKCFtX3VwbG9hZENvbXBsZXRlICYmIG1fdXBsb2FkTGlzdGVuZXJGbGFnKQog
ICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCku
bG9hZHN0YXJ0RXZlbnQsIDAsIHJlcXVlc3QuaHR0cEJvZHkoKS0+bGVuZ3RoSW5CeXRlcygpKTsK
IAotICAgICAgICBpZiAocmVhZHlTdGF0ZSgpICE9IE9QRU5FRCB8fCAhbV9zZW5kRmxhZyB8fCBt
X2xvYWRlcikKKyAgICAgICAgaWYgKHJlYWR5U3RhdGUoKSAhPSBPUEVORUQgfHwgIW1fc2VuZEZs
YWcgfHwgbV9sb2FkaW5nQWN0aXZpdHkpCiAgICAgICAgICAgICByZXR1cm4geyB9OwogCiAgICAg
ICAgIC8vIFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSBjYW4gcmV0dXJuIG51bGwgaGVyZSwgZm9y
IGV4YW1wbGUgaWYgd2UncmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgcGFnZSBvciBpZiBhIGNv
bnRlbnQgYmxvY2tlciBibG9ja3MgdGhlIGxvYWQuCiAgICAgICAgIC8vIFRoaXMgaXMgdHJ1ZSB3
aGlsZSBydW5uaW5nIG9udW5sb2FkIGhhbmRsZXJzLgogICAgICAgICAvLyBGSVhNRTogTWF5YmUg
d2UgbmVlZCB0byBiZSBhYmxlIHRvIHNlbmQgWE1MSHR0cFJlcXVlc3RzIGZyb20gb251bmxvYWQs
IDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwND4uCi0gICAgICAg
IG1fbG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCksICp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsKKyAgICAgICAgYXV0byBs
b2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSwgKnRoaXMsIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMpOworICAgICAgICBpZiAobG9hZGVy
KQorICAgICAgICAgICAgbV9sb2FkaW5nQWN0aXZpdHkgPSBMb2FkaW5nQWN0aXZpdHkgeyBtYWtl
UmVmKCp0aGlzKSwgbG9hZGVyLnJlbGVhc2VOb25OdWxsKCkgfTsKIAogICAgICAgICAvLyBFaXRo
ZXIgbG9hZGVyIGlzIG51bGwgb3Igc29tZSBlcnJvciB3YXMgc3luY2hyb25vdXNseSBzZW50IHRv
IHVzLgotICAgICAgICBBU1NFUlQobV9sb2FkZXIgfHwgIW1fc2VuZEZsYWcpOwotCi0gICAgICAg
IC8vIE5laXRoZXIgdGhpcyBvYmplY3Qgbm9yIHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIgc2hvdWxk
IGJlIGRlbGV0ZWQgd2hpbGUKLSAgICAgICAgLy8gYSByZXF1ZXN0IGlzIGluIHByb2dyZXNzIGJl
Y2F1c2Ugd2UgbmVlZCB0byBrZWVwIHRoZSBsaXN0ZW5lcnMgYWxpdmUsCi0gICAgICAgIC8vIGFu
ZCB0aGV5IGFyZSByZWZlcmVuY2VkIGJ5IHRoZSBKYXZhU2NyaXB0IHdyYXBwZXIuCi0gICAgICAg
IGlmIChtX2xvYWRlcikKLSAgICAgICAgICAgIHNldFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7Cisg
ICAgICAgIEFTU0VSVChtX2xvYWRpbmdBY3Rpdml0eSB8fCAhbV9zZW5kRmxhZyk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgp
ICYmICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhGZWF0dXJl
UG9saWN5OjpUeXBlOjpTeW5jWEhSLCAqZG9jdW1lbnQoKSkpCiAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTmV0d29ya0Vycm9yIH07CkBAIC02NjksNyArNjcwLDYgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoKQogCiB2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjphYm9ydCgpCiB7Ci0gICAgLy8gaW50ZXJuYWxBYm9ydCgpIGNhbGxzIHVuc2V0UGVu
ZGluZ0FjdGl2aXR5KHRoaXMpLCB3aGljaCBtYXkgcmVsZWFzZSB0aGUgbGFzdCByZWZlcmVuY2Uu
CiAgICAgUmVmPFhNTEh0dHBSZXF1ZXN0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAogICAgIG1f
d2FzQWJvcnRlZEJ5Q2xpZW50ID0gdHJ1ZTsKQEAgLTY4MCw3ICs2ODAsNyBAQCB2b2lkIFhNTEh0
dHBSZXF1ZXN0OjphYm9ydCgpCiAKICAgICBtX3JlcXVlc3RIZWFkZXJzLmNsZWFyKCk7CiAgICAg
aWYgKChyZWFkeVN0YXRlKCkgPT0gT1BFTkVEICYmIG1fc2VuZEZsYWcpIHx8IHJlYWR5U3RhdGUo
KSA9PSBIRUFERVJTX1JFQ0VJVkVEIHx8IHJlYWR5U3RhdGUoKSA9PSBMT0FESU5HKSB7Ci0gICAg
ICAgIEFTU0VSVCghbV9sb2FkZXIpOworICAgICAgICBBU1NFUlQoIW1fbG9hZGluZ0FjdGl2aXR5
KTsKICAgICAgICAgbV9zZW5kRmxhZyA9IGZhbHNlOwogICAgICAgICBjaGFuZ2VTdGF0ZShET05F
KTsKICAgICAgICAgZGlzcGF0Y2hFcnJvckV2ZW50cyhldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7
CkBAIC03MDAsMjIgKzcwMCwyMCBAQCBib29sIFhNTEh0dHBSZXF1ZXN0OjppbnRlcm5hbEFib3J0
KCkKIAogICAgIG1fdGltZW91dFRpbWVyLnN0b3AoKTsKIAotICAgIGlmICghbV9sb2FkZXIpCisg
ICAgaWYgKCFtX2xvYWRpbmdBY3Rpdml0eSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAv
LyBDYW5jZWxsaW5nIG1fbG9hZGVyIG1heSB0cmlnZ2VyIGEgd2luZG93Lm9ubG9hZCBjYWxsYmFj
ayB3aGljaCBjYW4gY2FsbCBvcGVuKCkgb24gdGhlIHNhbWUgeGhyLgorICAgIC8vIENhbmNlbGxp
bmcgbV9sb2FkaW5nQWN0aXZpdHkgbWF5IHRyaWdnZXIgYSB3aW5kb3cub25sb2FkIGNhbGxiYWNr
IHdoaWNoIGNhbiBjYWxsIG9wZW4oKSBvbiB0aGUgc2FtZSB4aHIuCiAgICAgLy8gVGhpcyB3b3Vs
ZCBjcmVhdGUgaW50ZXJuYWxBYm9ydCByZWVudHJhbnQgY2FsbC4KLSAgICAvLyBtX2xvYWRlciBp
cyBzZXQgdG8gbnVsbCBiZWZvcmUgYmVpbmcgY2FuY2VsbGVkIHRvIGV4aXQgZWFybHkgaW4gYW55
IHJlZW50cmFudCBpbnRlcm5hbEFib3J0KCkgY2FsbC4KLSAgICBhdXRvIGxvYWRlciA9IFdURk1v
dmUobV9sb2FkZXIpOwotICAgIGxvYWRlci0+Y2FuY2VsKCk7CisgICAgLy8gbV9sb2FkaW5nQWN0
aXZpdHkgaXMgc2V0IHRvIFdURjo6bnVsbG9wdCBiZWZvcmUgYmVpbmcgY2FuY2VsbGVkIHRvIGV4
aXQgZWFybHkgaW4gYW55IHJlZW50cmFudCBpbnRlcm5hbEFib3J0KCkgY2FsbC4KKyAgICBhdXRv
IGxvYWRpbmdBY3Rpdml0eSA9IHN0ZDo6ZXhjaGFuZ2UobV9sb2FkaW5nQWN0aXZpdHksIFdURjo6
bnVsbG9wdCk7CisgICAgbG9hZGluZ0FjdGl2aXR5LT5sb2FkZXItPmNhbmNlbCgpOwogCi0gICAg
Ly8gSWYgd2luZG93Lm9ubG9hZCBjYWxsYmFjayBjYWxscyBvcGVuKCkgYW5kIHNlbmQoKSBvbiB0
aGUgc2FtZSB4aHIsIG1fbG9hZGVyIGlzIG5vdyBzZXQgdG8gYSBuZXcgdmFsdWUuCisgICAgLy8g
SWYgd2luZG93Lm9ubG9hZCBjYWxsYmFjayBjYWxscyBvcGVuKCkgYW5kIHNlbmQoKSBvbiB0aGUg
c2FtZSB4aHIsIG1fbG9hZGluZ0FjdGl2aXR5IGlzIG5vdyBzZXQgdG8gYSBuZXcgdmFsdWUuCiAg
ICAgLy8gVGhlIGZ1bmN0aW9uIGNhbGxpbmcgaW50ZXJuYWxBYm9ydCgpIHNob3VsZCBhYm9ydCB0
byBsZXQgdGhlIG9wZW4oKSBhbmQgc2VuZCgpIGNhbGxzIGNvbnRpbnVlIHByb3Blcmx5LgogICAg
IC8vIFdlIGFzayB0aGUgZnVuY3Rpb24gY2FsbGluZyBpbnRlcm5hbEFib3J0KCkgdG8gZXhpdCBi
eSByZXR1cm5pbmcgZmFsc2UuCiAgICAgLy8gU2F2ZSB0aGlzIGluZm9ybWF0aW9uIHRvIGEgbG9j
YWwgdmFyaWFibGUgc2luY2Ugd2UgYXJlIGdvaW5nIHRvIGRyb3AgcHJvdGVjdGlvbi4KLSAgICBi
b29sIG5ld0xvYWRTdGFydGVkID0gbV9sb2FkZXI7Ci0KLSAgICB1bnNldFBlbmRpbmdBY3Rpdml0
eSgqdGhpcyk7CisgICAgYm9vbCBuZXdMb2FkU3RhcnRlZCA9ICEhbV9sb2FkaW5nQWN0aXZpdHk7
CiAKICAgICByZXR1cm4gIW5ld0xvYWRTdGFydGVkOwogfQpAQCAtNzU4LDEyICs3NTYsNiBAQCB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpuZXR3b3JrRXJyb3IoKQogICAgIGRpc3BhdGNoRXJyb3JFdmVu
dHMoZXZlbnROYW1lcygpLmVycm9yRXZlbnQpOwogICAgIGludGVybmFsQWJvcnQoKTsKIH0KLQot
dm9pZCBYTUxIdHRwUmVxdWVzdDo6bmV0d29ya0Vycm9yVGltZXJGaXJlZCgpCi17Ci0gICAgbmV0
d29ya0Vycm9yKCk7Ci0gICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkoKnRoaXMpOwotfQogICAgIAog
dm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnRFcnJvcigpCiB7CkBAIC04ODgsNiArODgwLDggQEAg
U3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpzdGF0dXNUZXh0KCkgY29uc3QKIAogdm9pZCBYTUxIdHRw
UmVxdWVzdDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKKyAgICBhdXRv
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKTsKKwogICAgIC8vIElmIHdlIGFyZSBhbHJl
YWR5IGluIGFuIGVycm9yIHN0YXRlLCBmb3IgaW5zdGFuY2Ugd2UgY2FsbGVkIGFib3J0KCksIGJh
aWwgb3V0IGVhcmx5LgogICAgIGlmIChtX2Vycm9yKQogICAgICAgICByZXR1cm47CkBAIC05MDYs
MTEgKzkwMCwxMiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGYWlsKGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yKQogICAgIH0KIAogICAgIC8vIEluIGNhc2UgZGlkRmFpbCBpcyBjYWxsZWQg
c3luY2hyb25vdXNseSBvbiBhbiBhc3luY2hyb25vdXMgWEhSIGNhbGwsIGxldCdzIGRpc3BhdGNo
IG5ldHdvcmsgZXJyb3IgYXN5bmNocm9ub3VzbHkKLSAgICBpZiAobV9hc3luYyAmJiBtX3NlbmRG
bGFnICYmICFtX2xvYWRlcikgeworICAgIGlmIChtX2FzeW5jICYmIG1fc2VuZEZsYWcgJiYgIW1f
bG9hZGluZ0FjdGl2aXR5KSB7CiAgICAgICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKLSAgICAgICAg
c2V0UGVuZGluZ0FjdGl2aXR5KCp0aGlzKTsKICAgICAgICAgbV90aW1lb3V0VGltZXIuc3RvcCgp
OwotICAgICAgICBtX25ldHdvcmtFcnJvclRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworICAgICAg
ICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Ok5ldHdvcmtp
bmcsIFt0aGlzXSB7CisgICAgICAgICAgICBuZXR3b3JrRXJyb3IoKTsKKyAgICAgICAgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9leGNlcHRpb25Db2RlID0gTmV0d29ya0Vycm9y
OwpAQCAtOTE5LDYgKzkxNCw4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZhaWwoY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExv
YWRpbmcodW5zaWduZWQgbG9uZykKIHsKKyAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKTsKKwogICAgIGlmIChtX2Vycm9yKQogICAgICAgICByZXR1cm47CiAKQEAgLTkzMCw4
ICs5MjcsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVk
IGxvbmcpCiAKICAgICBtX3Jlc3BvbnNlQnVpbGRlci5zaHJpbmtUb0ZpdCgpOwogCi0gICAgYm9v
bCBoYWRMb2FkZXIgPSBtX2xvYWRlcjsKLSAgICBtX2xvYWRlciA9IG51bGxwdHI7CisgICAgbV9s
b2FkaW5nQWN0aXZpdHkgPSBXVEY6Om51bGxvcHQ7CiAKICAgICBtX3NlbmRGbGFnID0gZmFsc2U7
CiAgICAgY2hhbmdlU3RhdGUoRE9ORSk7CkBAIC05MzksOSArOTM1LDYgQEAgdm9pZCBYTUxIdHRw
UmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nKQogICAgIG1fZGVjb2RlciA9
IG51bGxwdHI7CiAKICAgICBtX3RpbWVvdXRUaW1lci5zdG9wKCk7Ci0KLSAgICBpZiAoaGFkTG9h
ZGVyKQotICAgICAgICB1bnNldFBlbmRpbmdBY3Rpdml0eSgqdGhpcyk7CiB9CiAKIHZvaWQgWE1M
SHR0cFJlcXVlc3Q6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVu
c2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCkBAIC0xMTExLDcgKzExMDQsNiBA
QCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaXNwYXRjaEVycm9yRXZlbnRzKGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUpCiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZFJlYWNoVGltZW91dCgpCiB7Ci0g
ICAgLy8gaW50ZXJuYWxBYm9ydCgpIGNhbGxzIHVuc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpLCB3
aGljaCBtYXkgcmVsZWFzZSB0aGUgbGFzdCByZWZlcmVuY2UuCiAgICAgUmVmPFhNTEh0dHBSZXF1
ZXN0PiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKICAgICBpZiAoIWludGVybmFsQWJvcnQoKSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTE1Niw3ICsxMTQ4LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6
c3RvcCgpCiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNvbnRleHREZXN0cm95ZWQoKQogewotICAg
IEFTU0VSVCghbV9sb2FkZXIpOworICAgIEFTU0VSVCghbV9sb2FkaW5nQWN0aXZpdHkpOwogICAg
IEFjdGl2ZURPTU9iamVjdDo6Y29udGV4dERlc3Ryb3llZCgpOwogfQogCkBAIC0xMTY1LDQgKzEx
NTcsMzggQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0TWF4aW11bUludGVydmFsRm9yVXNlckdl
c3R1cmVGb3J3YXJkaW5nKGRvdWJsZSBpbnRlcnZhbCkKICAgICBtX21heGltdW1JbnRlcnZhbEZv
clVzZXJHZXN0dXJlRm9yd2FyZGluZyA9IFNlY29uZHMoaW50ZXJ2YWwpOyAgICAKIH0KIAordm9p
ZCBYTUxIdHRwUmVxdWVzdDo6ZXZlbnRMaXN0ZW5lcnNEaWRDaGFuZ2UoKQoreworICAgIG1faGFz
UmVsZXZhbnRFdmVudExpc3RlbmVyID0gaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmFi
b3J0RXZlbnQpCisgICAgICAgIHx8IGhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5lcnJv
ckV2ZW50KQorICAgICAgICB8fCBoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkubG9hZEV2
ZW50KQorICAgICAgICB8fCBoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkubG9hZGVuZEV2
ZW50KQorICAgICAgICB8fCBoYXNFdmVudExpc3RlbmVycyhldmVudE5hbWVzKCkucHJvZ3Jlc3NF
dmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLnJlYWR5c3Rh
dGVjaGFuZ2VFdmVudCkKKyAgICAgICAgfHwgaGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygp
LnRpbWVvdXRFdmVudCk7Cit9CisKKy8vIEFuIFhNTEh0dHBSZXF1ZXN0IG9iamVjdCBtdXN0IG5v
dCBiZSBnYXJiYWdlIGNvbGxlY3RlZCBpZiBpdHMgc3RhdGUgaXMgZWl0aGVyIG9wZW5lZCB3aXRo
IHRoZSBzZW5kKCkgZmxhZyBzZXQsIGhlYWRlcnMgcmVjZWl2ZWQsIG9yIGxvYWRpbmcsIGFuZAor
Ly8gaXQgaGFzIG9uZSBvciBtb3JlIGV2ZW50IGxpc3RlbmVycyByZWdpc3RlcmVkIHdob3NlIHR5
cGUgaXMgb25lIG9mIHJlYWR5c3RhdGVjaGFuZ2UsIHByb2dyZXNzLCBhYm9ydCwgZXJyb3IsIGxv
YWQsIHRpbWVvdXQsIGFuZCBsb2FkZW5kLgorYm9vbCBYTUxIdHRwUmVxdWVzdDo6aGFzUGVuZGlu
Z0FjdGl2aXR5KCkgY29uc3QKK3sKKyAgICBpZiAoQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5n
QWN0aXZpdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIW1faGFzUmVsZXZh
bnRFdmVudExpc3RlbmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzd2l0Y2ggKHJl
YWR5U3RhdGUoKSkgeworICAgIGNhc2UgT1BFTkVEOgorICAgICAgICByZXR1cm4gbV9zZW5kRmxh
ZzsKKyAgICBjYXNlIEhFQURFUlNfUkVDRUlWRUQ6CisgICAgY2FzZSBMT0FESU5HOgorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIFVOU0VOVDoKKyAgICBjYXNlIERPTkU6CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKaW5kZXggZGYzMmFiMGRlOWVhNjM1
M2MzY2FkNTVjNWNmMTkyZjhiMjZjYzc0MC4uNjQwNWZjZGFhOGFiZDc4MDczNTMzMzIyMjVkOWE1
OTI1MTRmNzUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTEzMCw5ICsx
MzAsMTcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNYXhpbXVtSW50
ZXJ2YWxGb3JVc2VyR2VzdHVyZUZvcndhcmRpbmcoZG91YmxlKTsKIAorICAgIGJvb2wgaGFzUGVu
ZGluZ0FjdGl2aXR5KCkgY29uc3QgZmluYWw7CisKKyAgICB1c2luZyBFdmVudFRhcmdldDo6ZGlz
cGF0Y2hFdmVudDsKKyAgICB2b2lkIGRpc3BhdGNoRXZlbnQoRXZlbnQmKSBvdmVycmlkZTsKKwog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250
ZXh0Jik7CiAKKyAgICAvLyBFdmVudFRhcmdldC4KKyAgICB2b2lkIGV2ZW50TGlzdGVuZXJzRGlk
Q2hhbmdlKCkgZmluYWw7CisKICAgICBUZXh0RW5jb2RpbmcgZmluYWxSZXNwb25zZUNoYXJzZXQo
KSBjb25zdDsKIAogICAgIC8vIEFjdGl2ZURPTU9iamVjdApAQCAtMTg1LDEzICsxOTMsOCBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBkaXNwYXRjaEVycm9yRXZlbnRzKGNvbnN0IEF0b21TdHJpbmcm
KTsKIAotICAgIHVzaW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50OwotICAgIHZvaWQgZGlz
cGF0Y2hFdmVudChFdmVudCYpIG92ZXJyaWRlOwotCiAgICAgUmVmPFRleHRSZXNvdXJjZURlY29k
ZXI+IGNyZWF0ZURlY29kZXIoKSBjb25zdDsKIAotICAgIHZvaWQgbmV0d29ya0Vycm9yVGltZXJG
aXJlZCgpOwotCiAgICAgdW5zaWduZWQgbV9hc3luYyA6IDE7CiAgICAgdW5zaWduZWQgbV9pbmNs
dWRlQ3JlZGVudGlhbHMgOiAxOwogICAgIHVuc2lnbmVkIG1fc2VuZEZsYWcgOiAxOwpAQCAtMjE0
LDcgKzIxNywxMSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxGb3JtRGF0YT4gbV9yZXF1ZXN0RW50
aXR5Qm9keTsKICAgICBTdHJpbmcgbV9taW1lVHlwZU92ZXJyaWRlOwogCi0gICAgUmVmUHRyPFRo
cmVhZGFibGVMb2FkZXI+IG1fbG9hZGVyOworICAgIHN0cnVjdCBMb2FkaW5nQWN0aXZpdHkgewor
ICAgICAgICBSZWY8WE1MSHR0cFJlcXVlc3Q+IHByb3RlY3RlZFRoaXM7IC8vIEtlZXAgb2JqZWN0
IGFsaXZlIHdoaWxlIGxvYWRpbmcgZXZlbiBpZiB0aGVyZSBpcyBubyBsb25nZXIgYSBKUyB3cmFw
cGVyLgorICAgICAgICBSZWY8VGhyZWFkYWJsZUxvYWRlcj4gbG9hZGVyOworICAgIH07CisgICAg
T3B0aW9uYWw8TG9hZGluZ0FjdGl2aXR5PiBtX2xvYWRpbmdBY3Rpdml0eTsKIAogICAgIFN0cmlu
ZyBtX3Jlc3BvbnNlRW5jb2Rpbmc7CiAKQEAgLTIzNSw3ICsyNDIsNiBAQCBwcml2YXRlOgogCiAg
ICAgbXV0YWJsZSBTdHJpbmcgbV9hbGxSZXNwb25zZUhlYWRlcnM7CiAKLSAgICBUaW1lciBtX25l
dHdvcmtFcnJvclRpbWVyOwogICAgIFRpbWVyIG1fdGltZW91dFRpbWVyOwogCiAgICAgTW9ub3Rv
bmljVGltZSBtX3NlbmRpbmdUaW1lOwpAQCAtMjQzLDYgKzI0OSw3IEBAIHByaXZhdGU6CiAgICAg
T3B0aW9uYWw8RXhjZXB0aW9uQ29kZT4gbV9leGNlcHRpb25Db2RlOwogICAgIFJlZlB0cjxVc2Vy
R2VzdHVyZVRva2VuPiBtX3VzZXJHZXN0dXJlVG9rZW47CiAgICAgU2Vjb25kcyBtX21heGltdW1J
bnRlcnZhbEZvclVzZXJHZXN0dXJlRm9yd2FyZGluZzsKKyAgICBib29sIG1faGFzUmVsZXZhbnRF
dmVudExpc3RlbmVyIHsgZmFsc2UgfTsKIH07CiAKIGlubGluZSBhdXRvIFhNTEh0dHBSZXF1ZXN0
OjpyZXNwb25zZVR5cGUoKSBjb25zdCAtPiBSZXNwb25zZVR5cGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3Bw
CmluZGV4IDc3NDVmNGY4Y2Y3MTcyNWM0YThkZWJhMjBkMWM3YzMxNjUzOWIxZDEuLjI2YTdkZWMw
ZTRkOTRkYjlmZWRkMzc1YTE3MDgwZDBiNDdlZWNhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcApA
QCAtMjksMTkgKzI5LDE4IEBACiAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
RXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgogI2luY2x1ZGUgIlhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNv
bnN0IFNlY29uZHMgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6Om1pbmltdW1Q
cm9ncmVzc0V2ZW50RGlzcGF0Y2hpbmdJbnRlcnZhbCB7IDUwX21zIH07IC8vIDUwIG1zIHBlciBz
cGVjaWZpY2F0aW9uLgogCi1YTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6WE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUoRXZlbnRUYXJnZXQmIHRhcmdldCkKK1hN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnRUaHJvdHRsZShYTUxIdHRwUmVxdWVzdCYgdGFyZ2V0KQogICAgIDogbV90YXJnZXQodGFy
Z2V0KQogICAgICwgbV9kaXNwYXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lcih0YXJnZXQu
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgJlhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudFRocm90dGxlOjpkaXNwYXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lckZpcmVkKQot
ICAgICwgbV9kaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWluZ1RpbWVyKHRhcmdldC5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCAmWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50VGhyb3R0bGU6OmRpc3BhdGNoRGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nKQogewogICAg
IG1fZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXIuc3VzcGVuZElmTmVlZGVkKCk7
Ci0gICAgbV9kaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0ZXJSZXN1bWluZ1RpbWVyLnN1c3BlbmRJ
Zk5lZWRlZCgpOwogfQogCiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6flhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlKCkgPSBkZWZhdWx0OwpAQCAtODEsMTMg
KzgwLDkgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0
Y2hSZWFkeVN0YXRlQ2hhbmdlRXZlbnQoRXZlbnQmIGUKIAogdm9pZCBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShFdmVudCYgZXZl
bnQpCiB7Ci0gICAgaWYgKG1fc2hvdWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24pIHsKLSAg
ICAgICAgaWYgKG1fZXZlbnRzRGVmZXJyZWREdWVUb1N1c3BlbnNpb24uc2l6ZSgpID4gMSAmJiBl
dmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLnJlYWR5c3RhdGVjaGFuZ2VFdmVudCAmJiBldmVu
dC50eXBlKCkgPT0gbV9ldmVudHNEZWZlcnJlZER1ZVRvU3VzcGVuc2lvbi5sYXN0KCktPnR5cGUo
KSkgewotICAgICAgICAgICAgLy8gUmVhZHlzdGF0ZWNoYW5nZSBldmVudHMgYXJlIHN0YXRlLWxl
c3Mgc28gYXZvaWQgcmVwZWF0aW5nIHR3byBpZGVudGljYWwgZXZlbnRzIGluIGEgcm93IG9uIHJl
c3VtZS4KLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtX2V2ZW50c0Rl
ZmVycmVkRHVlVG9TdXNwZW5zaW9uLmFwcGVuZChldmVudCk7Ci0gICAgfSBlbHNlCisgICAgaWYg
KG1fc2hvdWxkRGVmZXJFdmVudHNEdWVUb1N1c3BlbnNpb24pCisgICAgICAgIG1fdGFyZ2V0LnF1
ZXVlVGFza1RvRGlzcGF0Y2hFdmVudChtX3RhcmdldCwgVGFza1NvdXJjZTo6TmV0d29ya2luZywg
bWFrZVJlZihldmVudCkpOworICAgIGVsc2UKICAgICAgICAgbV90YXJnZXQuZGlzcGF0Y2hFdmVu
dChldmVudCk7CiB9CiAKQEAgLTExNywyMCArMTEyLDYgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnRUaHJvdHRsZTo6Zmx1c2hQcm9ncmVzc0V2ZW50KCkKICAgICBkaXNwYXRjaEV2
ZW50V2hlblBvc3NpYmxlKFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5wcm9ncmVzc0V2ZW50LCBtX2xlbmd0aENvbXB1dGFibGUsIG1fbG9hZGVkLCBtX3Rv
dGFsKSk7CiB9CiAKLXZvaWQgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGU6OmRp
c3BhdGNoRGVmZXJyZWRFdmVudHNBZnRlclJlc3VtaW5nKCkKLXsKLSAgICBBU1NFUlQobV9zaG91
bGREZWZlckV2ZW50c0R1ZVRvU3VzcGVuc2lvbik7Ci0gICAgbV9zaG91bGREZWZlckV2ZW50c0R1
ZVRvU3VzcGVuc2lvbiA9IGZhbHNlOwotCi0gICAgLy8gVGFrZSBvdmVyIHRoZSBkZWZlcnJlZCBl
dmVudHMgYmVmb3JlIGRpc3BhdGNoaW5nIHRoZW0gd2hpY2ggY2FuIHBvdGVudGlhbGx5IGFkZCBt
b3JlLgotICAgIGF1dG8gZXZlbnRzRGVmZXJyZWREdWVUb1N1c3BlbnNpb24gPSBXVEZNb3ZlKG1f
ZXZlbnRzRGVmZXJyZWREdWVUb1N1c3BlbnNpb24pOwotCi0gICAgZmx1c2hQcm9ncmVzc0V2ZW50
KCk7Ci0KLSAgICBmb3IgKGF1dG8mIGRlZmVycmVkRXZlbnQgOiBldmVudHNEZWZlcnJlZER1ZVRv
U3VzcGVuc2lvbikKLSAgICAgICAgZGlzcGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShkZWZlcnJlZEV2
ZW50KTsKLX0KLQogdm9pZCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6ZGlz
cGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXJGaXJlZCgpCiB7CiAgICAgQVNTRVJUKG1f
ZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50VGltZXIuaXNBY3RpdmUoKSk7CkBAIC0xNDcs
MTYgKzEyOCwxOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpk
aXNwYXRjaFRocm90dGxlZFByb2dyZXNzRXZlbnRUaW1lckZpcgogdm9pZCBYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnRUaHJvdHRsZTo6c3VzcGVuZCgpCiB7CiAgICAgbV9zaG91bGREZWZlckV2
ZW50c0R1ZVRvU3VzcGVuc2lvbiA9IHRydWU7CisKKyAgICBpZiAobV9oYXNQZW5kaW5nVGhyb3R0
bGVkUHJvZ3Jlc3NFdmVudCkgeworICAgICAgICBtX3RhcmdldC5xdWV1ZVRhc2tLZWVwaW5nT2Jq
ZWN0QWxpdmUobV90YXJnZXQsIFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFt0aGlzXSB7CisgICAg
ICAgICAgICBmbHVzaFByb2dyZXNzRXZlbnQoKTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiB2
b2lkIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlOjpyZXN1bWUoKQogewotICAg
IGlmIChtX2V2ZW50c0RlZmVycmVkRHVlVG9TdXNwZW5zaW9uLmlzRW1wdHkoKSAmJiAhbV9oYXNQ
ZW5kaW5nVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCkgeworICAgIG1fdGFyZ2V0LnF1ZXVlVGFza0tl
ZXBpbmdPYmplY3RBbGl2ZShtX3RhcmdldCwgVGFza1NvdXJjZTo6TmV0d29ya2luZywgW3RoaXNd
IHsKICAgICAgICAgbV9zaG91bGREZWZlckV2ZW50c0R1ZVRvU3VzcGVuc2lvbiA9IGZhbHNlOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9kaXNwYXRjaERlZmVycmVkRXZlbnRzQWZ0
ZXJSZXN1bWluZ1RpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworICAgIH0pOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oCmluZGV4IGE4M2NmM2RhOGQ2NmI5ODNiNDk2
ODY4ZDdmODg1ZjNkNzBhZjEwYjkuLmI0YjQ5OTdkMmJhOTMxNmZlOTY4MmFmOGVkODQ0YTYzZmMz
ZjE0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnRUaHJvdHRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudFRhcmdldDsKK2NsYXNzIFhNTEh0dHBS
ZXF1ZXN0OwogCiBlbnVtIFByb2dyZXNzRXZlbnRBY3Rpb24gewogICAgIERvTm90Rmx1c2hQcm9n
cmVzc0V2ZW50LApAQCAtNDQsNyArNDUsNyBAQCBlbnVtIFByb2dyZXNzRXZlbnRBY3Rpb24gewog
Ly8gYWJvdXQgZXZlcnkgNTBtcyBvciBmb3IgZXZlcnkgYnl0ZSByZWNlaXZlZCwgd2hpY2hldmVy
IGlzIGxlYXN0IGZyZXF1ZW50Ii4KIGNsYXNzIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRo
cm90dGxlIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnRUaHJvdHRsZShFdmVudFRhcmdldCYpOworICAgIGV4cGxpY2l0IFhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudFRocm90dGxlKFhNTEh0dHBSZXF1ZXN0Jik7CiAgICAgdmlydHVhbCB+WE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUoKTsKIAogICAgIHZvaWQgZGlzcGF0Y2hUaHJv
dHRsZWRQcm9ncmVzc0V2ZW50KGJvb2wgbGVuZ3RoQ29tcHV0YWJsZSwgdW5zaWduZWQgbG9uZyBs
b25nIGxvYWRlZCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsKTsKQEAgLTU4LDIwICs1OSwxNiBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIG1pbmltdW1Qcm9ncmVzc0V2ZW50
RGlzcGF0Y2hpbmdJbnRlcnZhbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVz
c0V2ZW50VGltZXJGaXJlZCgpOwotICAgIHZvaWQgZGlzcGF0Y2hEZWZlcnJlZEV2ZW50c0FmdGVy
UmVzdW1pbmcoKTsKICAgICB2b2lkIGZsdXNoUHJvZ3Jlc3NFdmVudCgpOwogICAgIHZvaWQgZGlz
cGF0Y2hFdmVudFdoZW5Qb3NzaWJsZShFdmVudCYpOwogCiAgICAgLy8gV2VhayBwb2ludGVyIHRv
IG91ciBYTUxIdHRwUmVxdWVzdCBvYmplY3QgYXMgaXQgaXMgdGhlIG9uZSBob2xkaW5nIHVzLgot
ICAgIEV2ZW50VGFyZ2V0JiBtX3RhcmdldDsKKyAgICBYTUxIdHRwUmVxdWVzdCYgbV90YXJnZXQ7
CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgbV9sb2FkZWQgeyAwIH07CiAgICAgdW5zaWduZWQg
bG9uZyBsb25nIG1fdG90YWwgeyAwIH07CiAKLSAgICBSZWZQdHI8RXZlbnQ+IG1fZGVmZXJyZWRQ
cm9ncmVzc0V2ZW50OwotICAgIFZlY3RvcjxSZWY8RXZlbnQ+PiBtX2V2ZW50c0RlZmVycmVkRHVl
VG9TdXNwZW5zaW9uOwogICAgIFN1c3BlbmRhYmxlVGltZXIgbV9kaXNwYXRjaFRocm90dGxlZFBy
b2dyZXNzRXZlbnRUaW1lcjsKLSAgICBTdXNwZW5kYWJsZVRpbWVyIG1fZGlzcGF0Y2hEZWZlcnJl
ZEV2ZW50c0FmdGVyUmVzdW1pbmdUaW1lcjsKIAogICAgIGJvb2wgbV9oYXNQZW5kaW5nVGhyb3R0
bGVkUHJvZ3Jlc3NFdmVudCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2xlbmd0aENvbXB1dGFibGUg
eyBmYWxzZSB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>