<?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>186889</bug_id>
          
          <creation_ts>2018-06-21 09:08:18 -0700</creation_ts>
          <short_desc>WebRTC MediaStreamTrack Enable / Disable causes video delay / lag</short_desc>
          <delta_ts>2018-07-06 16:47:09 -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>WebRTC</component>
          <version>Safari 11</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Neil Kinnish">hello</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1435135</commentid>
    <comment_count>0</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2018-06-21 09:08:18 -0700</bug_when>
    <thetext>This is a similar issue reported and fixed on chrome:

https://bugs.chromium.org/p/webrtc/issues/detail?id=4355

Enable / Disable a WebRTC MediaStreamTrack and the video is delayed and suffers lag, refreshing fixes so it definitely seems to be caused by this event. Disable / enable is used to mute the audio or video and is necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435136</commentid>
    <comment_count>1</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2018-06-21 09:09:46 -0700</bug_when>
    <thetext>To add more context... the video will be affected even if you are only changing an audio track.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435139</commentid>
    <comment_count>2</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2018-06-21 09:41:20 -0700</bug_when>
    <thetext>In further tests, even without Video, just audio. Disabling and enabling causes Safari to lag remote streams and eventually fail. I&apos;ll try and get more information on the eventual fail by debugging a bit more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435140</commentid>
    <comment_count>3</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2018-06-21 09:51:04 -0700</bug_when>
    <thetext>I don&apos;t have the full info, but it appears the stream ends completely when you set enable to false, this is more noticeable when only video or audio as having two and one remaining enabled would keep the stream alive. 

Hope this helps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435147</commentid>
    <comment_count>4</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2018-06-21 10:30:16 -0700</bug_when>
    <thetext>To add... this seems intermittent, but easily reproducible if you just enable/disable (mute audio for example).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435396</commentid>
    <comment_count>5</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2018-06-22 04:50:26 -0700</bug_when>
    <thetext>Further testing with both video + audio.

Video tracks set to enabled false cause less issues than audio set to enabled false. There is also a noticeable delay changing audio compared to video. Audio is also what seems to cause lag in video I haven&apos;t seen this when video tracks enabled/disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435459</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-22 09:33:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/41370285&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435463</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-06-22 09:38:28 -0700</bug_when>
    <thetext>Hi Neil, thanks for the report.
Can you clarify whether the issue is with capture tracks or remote tracks backed by a peer connection?
If you have a repel case that you could share,that would be great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435464</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-22 09:38:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/41370427&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435493</commentid>
    <comment_count>9</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2018-06-22 10:32:58 -0700</bug_when>
    <thetext>Hi

&gt; Can you clarify whether the issue is with capture tracks or remote tracks backed by a peer connection?

Capture tracks, I&apos;m not seeing the issues on remote tracks, at least I haven&apos;t seen anything as bad.

&gt; If you have a repel case that you could share,that would be great.

I don&apos;t have anything I can share right now I&apos;m afraid. If I get time I&apos;ll try and put something together but not sure when I will have time.

I think my report is essentially 2 issues (they may be connected):

1. The issue where the video track becomes delayed when you disable audio (lag) does seem to very similar to the issue chrome use to experience as per that link.

2. The intermittent stream fails (mainly when you only have video or audio – not both), don&apos;t get an error but it seems as nothing is being sent.

As per last comment it&apos;s really noticeable that disabling audio tracks is slow compared to video.

Thanks for responding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435569</commentid>
    <comment_count>10</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2018-06-22 13:18:10 -0700</bug_when>
    <thetext>Okay, I&apos;ve done a lot more testing.

1. I restarted the IOS device which I was seeing the stream fails on and also got hold of another 2 IOS devices. I don&apos;t seem to be able to re-create that particular issue now, so could have just been a temp issue on the device!? 

2. The original issue – video delay after muting (disabling) audio track however is still present. The video being sent is noticeably delayed on the other end after muting.

I can&apos;t send you my project, but to test this case I just downloaded: https://github.com/shanet/WebRTC-Example

I added an audio toggle...

```
function toggleAudio() {
  if (localStream.getAudioTracks()[0].enabled) {
    localStream.getAudioTracks()[0].enabled = false;
  } else {
    localStream.getAudioTracks()[0].enabled = true;
  }
}
```

It causes the same issue, the more you mute the more delay.

Hope this helps, sorry for so many pings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435571</commentid>
    <comment_count>11</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2018-06-22 13:23:11 -0700</bug_when>
    <thetext>PS... I tested on IOS 11 and macOS 10.13.3, happened on both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1435631</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-06-22 15:21:39 -0700</bug_when>
    <thetext>(In reply to Neil Kinnish from comment #11)
&gt; PS... I tested on IOS 11 and macOS 10.13.3, happened on both.

Thanks Neil for all this information, this will help us figure out the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439226</commentid>
    <comment_count>13</comment_count>
    <who name="Neil Kinnish">hello</who>
    <bug_when>2018-07-04 08:42:10 -0700</bug_when>
    <thetext>Just to add, in further tests I&apos;ve noticed that overtime the video will lag generally... this is exaggerated when the stream is enabled / disabled. Mainly tested on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439860</commentid>
    <comment_count>14</comment_count>
      <attachid>344438</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-06 12:31:01 -0700</bug_when>
    <thetext>Created attachment 344438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439867</commentid>
    <comment_count>15</comment_count>
      <attachid>344441</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-06 12:42:22 -0700</bug_when>
    <thetext>Created attachment 344441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439886</commentid>
    <comment_count>16</comment_count>
      <attachid>344444</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-06 13:06:14 -0700</bug_when>
    <thetext>Created attachment 344444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439908</commentid>
    <comment_count>17</comment_count>
      <attachid>344444</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-07-06 14:02:03 -0700</bug_when>
    <thetext>Comment on attachment 344444
Patch

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

&gt; Source/ThirdParty/libwebrtc/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=186889

Isn’t this the wrong bug title for this fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439961</commentid>
    <comment_count>18</comment_count>
      <attachid>344470</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-06 15:54:16 -0700</bug_when>
    <thetext>Created attachment 344470
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1440006</commentid>
    <comment_count>19</comment_count>
      <attachid>344470</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-06 16:47:07 -0700</bug_when>
    <thetext>Comment on attachment 344470
Patch for landing

Clearing flags on attachment: 344470

Committed r233604: &lt;https://trac.webkit.org/changeset/233604&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1440007</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-06 16:47:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344438</attachid>
            <date>2018-07-06 12:31:01 -0700</date>
            <delta_ts>2018-07-06 12:42:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186889-20180706123100.patch</filename>
            <type>text/plain</type>
            <size>14389</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU3ZGY2YThiN2FlODcx
Y2FhMTVmZmU3MmM2NzZhYWMyODU0NzEwNC4uYzhiOGI3YmZkMThmMzBlNGFkYTU4Y2M2YTRlMjg1
MzQ4NzM2Y2Y4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTA3LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJSVEMgTWVkaWFTdHJl
YW1UcmFjayBFbmFibGUgLyBEaXNhYmxlIGNhdXNlcyB2aWRlbyBkZWxheSAvIGxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2ODg5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80MTM3MDI4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBMaWJ3ZWJydGMgZXhwZWN0cyBhIGNvbnRpbnVvdXMgZmxvdyBv
ZiBjYWxscyBmb3IgYXVkaW8gZGF0YSBzaW5jZSB0aGUgQVBJCisgICAgICAgIGRvZXMgbm90IHBy
b3ZpZGUgYW55IHBvc3NpYmxpdHkgdG8gZ2l2ZSB0aW1lc3RhbXBzLgorCisgICAgICAgIFdlIHdl
cmUgb3B0aW1pemluZyBwcmV2aW91c2x5IHdoZW4gYSBzb3VyY2UgaXMgbXV0ZWQgc28gdGhhdCB3
ZSB3b3VsZCBub3QgdHJhbnNtaXQgYXVkaW8gZGF0YS4KKyAgICAgICAgVGhpcyBicmVha3Mgc3lu
Y2hyb25pemF0aW9uIGJldHdlZW4gYXVkaW8gYW5kIHZpZGVvIGZyYW1lcyAod2hpY2ggYXJlIHRp
bWVzdGFtcGVkKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJldmVydHMgdGhlIG9wdGltaXphdGlv
biBhbmQgaW5zdGVhZCBtYWtlcyBzdXJlIHRvIHNlbmQgemVyb3MgZm9yIHNpbGVuY2VkIGF1ZGlv
IHRyYWNrcy4KKworICAgICAgICBUaGlzIHJlcXVpcmVzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
IHRvIHNlbmQgYXVkaW8gZGF0YSBldmVuIGlmIGRpc2FibGVkLAorICAgICAgICBzbyB0aGF0IFJl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZSB3aWxsIGNvbnRpbnVlIHNlbmRpbmcgemVyb3MgYXQg
dGhlIGNvcnJlY3QgcGFjZS4KKyAgICAgICAgVGhpcyBhbHNvIHJlcXVpcmVzIFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDIHRvIGV4aXQgZWFybHkgaWYgaXRzIHRyYWNrIGlzIGRpc2FibGVk
LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisgICAgICAgIE1hbnVhbCB0
ZXN0aW5nIHNob3dzIHRoYXQgc3luY2hyb25pemF0aW9uIGlzIGtlcHQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9T
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
OjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlOjppbml0aWFsaXplQ29udmVydGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZUVuYWJs
ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZTo6aGFuZGxlTXV0ZWRJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnB1bGxBdWRpb0RhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjppc1NpbGVuY2VkIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c2VuZFNpbGVu
Y2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6cHVsbEF1ZGlvRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6aGFuZGxlTXV0ZWRJZk5lZWRl
ZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2VDb2NvYTo6c2VuZFNpbGVuY2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUpOgorCiAyMDE4LTA3LTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjMwODQzKTogRmxhc2ggZG9lc24n
dCB3b3JrOyBQcm9kdWNlcyBibHVlIGJveCBvbiBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5jcHAKaW5kZXggZmM0ZjRjZTBmMDA2NGQ2Yjg1ZWMxYzlkOTZmNGNiZTQ1OTk4OTFkYy4uZDdh
YmJkZjAyZTQ1MGQ4YjNjMTYwMjdiNWIzYjZlM2NmMWE4MzI5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmNwcApAQCAtMjE2LDkgKzIxNiw2IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSwK
ICAgICAgICAgdXBkYXRlUmVhZHlTdGF0ZSgpOwogICAgIH0KIAotICAgIGlmICghZW5hYmxlZCgp
KQotICAgICAgICByZXR1cm47Ci0KICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZl
cnMpCiAgICAgICAgIG9ic2VydmVyLT5hdWRpb1NhbXBsZXNBdmFpbGFibGUoKnRoaXMsIG1lZGlh
VGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGQyMzYxMzJlYTliY2I4YzcxYWZiMWMxZjBlMDgw
Y2VkN2YyMWVlNTcuLjYwOTBmMGU3Y2M5MGZmOTU2MzZmZTE2NmFjMjQ1OTZkYjQzN2I3OTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApAQCAtMzgsNyArMzgsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6UmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiBhdWRp
b1NvdXJjZSkKICAgICA6IG1fYXVkaW9Tb3VyY2UoV1RGTW92ZShhdWRpb1NvdXJjZSkpCi0gICAg
LCBtX3NpbGVuY2VBdWRpb1RpbWVyKCp0aGlzLCAmUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
OjpzZW5kU2lsZW5jZSkKIHsKICAgICBtX2F1ZGlvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7
CiAgICAgaW5pdGlhbGl6ZUNvbnZlcnRlcigpOwpAQCAtNTgsMzUgKzU3LDIyIEBAIHZvaWQgUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjppbml0aWFsaXplQ29udmVydGVyKCkKIHsKICAgICBt
X211dGVkID0gbV9hdWRpb1NvdXJjZS0+bXV0ZWQoKTsKICAgICBtX2VuYWJsZWQgPSBtX2F1ZGlv
U291cmNlLT5lbmFibGVkKCk7Ci0gICAgaGFuZGxlTXV0ZWRJZk5lZWRlZCgpOwogfQogCiB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c3RvcCgpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKLSAgICBtX3NpbGVuY2VBdWRpb1RpbWVyLnN0b3AoKTsKICAgICBtX2F1ZGlv
U291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoKQogewogICAgIG1fbXV0ZWQgPSBtX2F1
ZGlvU291cmNlLT5tdXRlZCgpOwotICAgIGhhbmRsZU11dGVkSWZOZWVkZWQoKTsKIH0KIAogdm9p
ZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkKIHsK
ICAgICBtX2VuYWJsZWQgPSBtX2F1ZGlvU291cmNlLT5lbmFibGVkKCk7Ci0gICAgaGFuZGxlTXV0
ZWRJZk5lZWRlZCgpOwotfQotCi12b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6aGFu
ZGxlTXV0ZWRJZk5lZWRlZCgpCi17Ci0gICAgYm9vbCBpc1NpbGVuY2VkID0gbV9tdXRlZCB8fCAh
bV9lbmFibGVkOwotICAgIGlmIChpc1NpbGVuY2VkICYmICFtX3NpbGVuY2VBdWRpb1RpbWVyLmlz
QWN0aXZlKCkpCi0gICAgICAgIG1fc2lsZW5jZUF1ZGlvVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9z
KTsKLSAgICBpZiAoIWlzU2lsZW5jZWQgJiYgbV9zaWxlbmNlQXVkaW9UaW1lci5pc0FjdGl2ZSgp
KQotICAgICAgICBtX3NpbGVuY2VBdWRpb1RpbWVyLnN0b3AoKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAppbmRleCBhZWYwZTg4
NjQyMjAzMGJhNjJlZDFkZjRjMGJiNGZlNWI0NGQyNGE1Li43NmE2MWY4ZjY0NDk1YThmMTNiYzZh
MTk1Zjg5OGVlNjEwMTJhYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaApA
QCAtNTgsMTMgKzU4LDExIEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBSZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVNdXRlZElmTmVlZGVkKCk7Ci0gICAgdmlydHVhbCB2
b2lkIHNlbmRTaWxlbmNlKCkgeyB9OwotICAgIHZpcnR1YWwgdm9pZCBwdWxsQXVkaW9EYXRhKCkg
eyB9OworICAgIHZpcnR1YWwgdm9pZCBwdWxsQXVkaW9EYXRhKCkgeyB9CisKKyAgICBib29sIGlz
U2lsZW5jZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkIHx8ICFtX2VuYWJsZWQ7IH0KIAogICAg
IFZlY3Rvcjx3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKj4gbV9zaW5rczsKLSAgICBi
b29sIG1fbXV0ZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBBZGRTaW5rKHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJ
bnRlcmZhY2UqIHNpbmspIHsgbV9zaW5rcy5hcHBlbmQoc2luayk7IH0KQEAgLTEwMiw4ICsxMDAs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbnZlcnRlcigpOwogCiAgICAgUmVm
PE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX2F1ZGlvU291cmNlOwotCi0gICAgVGltZXIgbV9z
aWxlbmNlQXVkaW9UaW1lcjsKKyAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9lbmFibGVkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKaW5kZXggY2M2
Yzc3NWQ3ZTgxOGQwNjhlNzRkMjEzMzI5NjI2NTRmYTVkMzRmZi4uMjM2NjY3NjE3ZGQxOTczYzJl
NTUzZjNlNDEyYzBmMTRiNzVlNmI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwCkBAIC01NCwzMCArNTQsNiBAQCBSZWY8UmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlPiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OmNyZWF0ZShS
ZWY8TWVkaWFTdAogICAgIHJldHVybiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6
Y3JlYXRlKFdURk1vdmUoYXVkaW9Tb3VyY2UpKTsKIH0KIAotdm9pZCBSZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2VDb2NvYTo6aGFuZGxlTXV0ZWRJZk5lZWRlZCgpCi17Ci0gICAgYm9vbCBpc1Np
bGVuY2VkID0gbV9tdXRlZCB8fCAhbV9lbmFibGVkOwotICAgIG1fc2FtcGxlQ29udmVydGVyLT5z
ZXRNdXRlZChpc1NpbGVuY2VkKTsKLQotICAgIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6
aGFuZGxlTXV0ZWRJZk5lZWRlZCgpOwotfQotCi12b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZUNvY29hOjpzZW5kU2lsZW5jZSgpCi17Ci0gICAgTGliV2ViUlRDUHJvdmlkZXI6OmNhbGxP
bldlYlJUQ1NpZ25hbGluZ1RocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpXSB7Ci0gICAgICAgIHNpemVfdCBjaHVua1NhbXBsZUNvdW50ID0gbV9vdXRwdXRTdHJlYW1E
ZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgLyAxMDA7Ci0gICAgICAgIHNpemVfdCBidWZmZXJTaXpl
ID0gY2h1bmtTYW1wbGVDb3VudCAqIExpYldlYlJUQ0F1ZGlvRm9ybWF0OjpzYW1wbGVCeXRlU2l6
ZSAqIG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24ubnVtYmVyT2ZDaGFubmVscygpOwotCi0gICAg
ICAgIGlmICghYnVmZmVyU2l6ZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2F1
ZGlvQnVmZmVyLmdyb3coYnVmZmVyU2l6ZSk7Ci0gICAgICAgIG1lbXNldChtX2F1ZGlvQnVmZmVy
LmRhdGEoKSwgMCwgYnVmZmVyU2l6ZSk7Ci0gICAgICAgIGZvciAoYXV0byBzaW5rIDogbV9zaW5r
cykKLSAgICAgICAgICAgIHNpbmstPk9uRGF0YShtX2F1ZGlvQnVmZmVyLmRhdGEoKSwgTGliV2Vi
UlRDQXVkaW9Gb3JtYXQ6OnNhbXBsZVNpemUsIG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24uc2Ft
cGxlUmF0ZSgpLCBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uLm51bWJlck9mQ2hhbm5lbHMoKSwg
Y2h1bmtTYW1wbGVDb3VudCk7Ci0gICAgfSk7Ci19Ci0KIGJvb2wgUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlQ29jb2E6OmlzUmVhY2hpbmdCdWZmZXJlZEF1ZGlvRGF0YUhpZ2hMaW1pdCgpCiB7
CiAgICAgYXV0byB3cml0dGVuQXVkaW9EdXJhdGlvbiA9IG1fd3JpdGVDb3VudCAvIG1faW5wdXRT
dHJlYW1EZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCk7CkBAIC0xNTMsNiArMTI5LDkgQEAgdm9pZCBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6cHVsbEF1ZGlvRGF0YSgpCiAgICAgYnVm
ZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplID0gYnVmZmVyU2l6ZTsKICAgICBidWZm
ZXJMaXN0Lm1CdWZmZXJzWzBdLm1EYXRhID0gbV9hdWRpb0J1ZmZlci5kYXRhKCk7CiAKKyAgICBp
ZiAoaXNTaWxlbmNlZCgpICE9ICBtX3NhbXBsZUNvbnZlcnRlci0+bXV0ZWQoKSkKKyAgICAgICAg
bV9zYW1wbGVDb252ZXJ0ZXItPnNldE11dGVkKGlzU2lsZW5jZWQoKSk7CisKICAgICBtX3NhbXBs
ZUNvbnZlcnRlci0+cHVsbEF2YWxhaWJsZVNhbXBsZXNBc0NodW5rcyhidWZmZXJMaXN0LCBjaHVu
a1NhbXBsZUNvdW50LCBtX3JlYWRDb3VudCwgW3RoaXMsIGNodW5rU2FtcGxlQ291bnRdIHsKICAg
ICAgICAgbV9yZWFkQ291bnQgKz0gY2h1bmtTYW1wbGVDb3VudDsKICAgICAgICAgZm9yIChhdXRv
IHNpbmsgOiBtX3NpbmtzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlQ29jb2EuaAppbmRleCA3NmZhNWFkMDAyYTA4ZGQzMzE5MDQ3M2JlZTIyZWRmNjMyMjI0N2U5
Li44NTAwYzUzZjJmNGIwZmE5OTZkMTdlZDY3YTc3MDhjMTA0MDc2NjE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaApAQCAtNTIsOSArNTIsNiBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBwdWxsQXVkaW9EYXRhKCkgZmluYWw7CiAKLSAgICB2b2lk
IGhhbmRsZU11dGVkSWZOZWVkZWQoKSBmaW5hbDsKLSAgICB2b2lkIHNlbmRTaWxlbmNlKCkgZmlu
YWw7Ci0KICAgICBSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiBtX3NhbXBsZUNvbnZlcnRlcjsK
ICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9pbnB1dFN0cmVhbURlc2NyaXB0aW9uOwog
ICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCmluZGV4IDcxYzdl
MjJlMGQzODBmZGZhYjI4Y2MxY2I4ODQ4YTI1OGE3NzdmYjcuLmQ0ZTk3M2I5OTI4ZjhlYmU5NDk2
YjNmYWI5NjcxOTYzMzgwYTg4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMubW0KQEAgLTE1OSw4ICsxNTksMTEgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJlKCkKICAgICB9CiB9CiAKLXZvaWQgV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IGZyYW1l
Q291bnQpCit2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNrLCBjb25zdCBNZWRpYVRpbWUm
LCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbiYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQogeworICAgIGlmICghdHJhY2su
ZW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKICAgICBBU1NFUlQoZGVzY3JpcHRpb24ucGxh
dGZvcm1EZXNjcmlwdGlvbigpLnR5cGUgPT0gUGxhdGZvcm1EZXNjcmlwdGlvbjo6Q0FBdWRpb1N0
cmVhbUJhc2ljVHlwZSk7CiAgICAgYXV0byYgYmFzaWNEZXNjcmlwdGlvbiA9ICpXVEY6OmdldDxj
b25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qPihkZXNjcmlwdGlvbi5wbGF0Zm9ybURl
c2NyaXB0aW9uKCkuZGVzY3JpcHRpb24pOwogICAgIGlmICghbV9pbnB1dERlc2NyaXB0aW9uIHx8
IG1faW5wdXREZXNjcmlwdGlvbi0+c3RyZWFtRGVzY3JpcHRpb24oKSAhPSBiYXNpY0Rlc2NyaXB0
aW9uKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDZlMGZjOGNmYTY5MDdiMjhjZWJmMDNjMmU5NGJkYzNhZmVkMTQxNjcuLmZm
OWI1YWQzNjU0OTliM2YwZWFkM2NjMzA3NGM2YWJmNTM2NDJhMWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxOC0wNy0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViUlRDIE1lZGlhU3RyZWFtVHJhY2sgRW5hYmxlIC8gRGlzYWJsZSBjYXVzZXMgdmlk
ZW8gZGVsYXkgLyBsYWcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4Njg4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDEzNzAyODU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBpcyBubyBsb25n
ZXIgdmFsaWQgc2luY2Ugd2UgYXJlIG5vdyBzZW5kaW5nIDAgYnl0ZXMgZm9yIGF1ZGlvIHRyYWNr
cy4KKworICAgICAgICAqIHdlYnJ0Yy9hdWRpby1tdXRlZC1zdGF0czItZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHdlYnJ0Yy9hdWRpby1tdXRlZC1zdGF0czIuaHRtbDogUmVtb3Zl
ZC4KKwogMjAxOC0wNy0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjIzMDg0Myk6IEZsYXNoIGRvZXNuJ3Qgd29yazsgUHJvZHVjZXMg
Ymx1ZSBib3ggb24gcGFnZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2F1ZGlvLW11
dGVkLXN0YXRzMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tbXV0ZWQt
c3RhdHMyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjIxYjVm
ZjE3YjY0NDM5YTA0OGE3ZTcyYjRlYWNjYjNhYzFmZWQ3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tbXV0ZWQt
c3RhdHMyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNT
IEF1ZGlvIHNpbGVudCBkYXRhIG5vdCBiZWluZyBzZW50IGluIGNhc2UgdHJhY2sgaXMgbXV0ZWQg
ZnJvbSB0aGUgc3RhcnQgCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9hdWRpby1t
dXRlZC1zdGF0czIuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9hdWRpby1tdXRlZC1zdGF0czIu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzg5YTFiMjBhM2JhMjRmZTgxZWFm
N2M1MDViMmIwZWYyNmNkYzEyYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tbXV0ZWQtc3RhdHMyLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotICAg
IDxoZWFkPgotICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgICAgIDx0aXRsZT5U
ZXN0aW5nIGJhc2ljIHZpZGVvIGV4Y2hhbmdlIGZyb20gb2ZmZXJlciB0byByZWNlaXZlcjwvdGl0
bGU+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxzY3Jp
cHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgotICAgICAgICA8c2NyaXB0PgotZnVuY3Rp
b24gZ2V0T3V0Ym91bmRSVFBTdGF0cyhjb25uZWN0aW9uKQotewotICAgIHJldHVybiBjb25uZWN0
aW9uLmdldFN0YXRzKCkudGhlbigocmVwb3J0KSA9PiB7Ci0gICAgICAgIHZhciBzdGF0czsKLSAg
ICAgICAgcmVwb3J0LmZvckVhY2goKHN0YXRJdGVtKSA9PiB7Ci0gICAgICAgICAgICBpZiAoc3Rh
dEl0ZW0udHlwZSA9PT0gIm91dGJvdW5kLXJ0cCIpIHsKLSAgICAgICAgICAgICAgICBzdGF0cyA9
IHN0YXRJdGVtOwotICAgICAgICAgICAgfQotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuIHN0
YXRzOwotICAgIH0pOwotfQotCi1mdW5jdGlvbiBjaGVja091dGJvdW5kQnl0ZXNTZW50Tm90SW5j
cmVhc2luZyhmaXJzdENvbm5lY3Rpb24sIHN0YXRzRmlyc3RDb25uZWN0aW9uLCBjb3VudCkKLXsK
LSAgICByZXR1cm4gZ2V0T3V0Ym91bmRSVFBTdGF0cyhmaXJzdENvbm5lY3Rpb24pLnRoZW4oKHN0
YXRzKSA9PiB7Ci0gICAgICAgaWYgKHN0YXRzLmJ5dGVzU2VudCA+IHN0YXRzRmlyc3RDb25uZWN0
aW9uLmJ5dGVzU2VudCkKLSAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgib3V0Ym91
bmQgc3RhdHMgYnl0ZXMgc2VudCBpbmNyZWFzaW5nIik7Ci0gICAgICAgIGlmICgrK2NvdW50ID09
PSAxMCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgcmV0dXJuIHdhaXRGb3IoNTApLnRo
ZW4oKCkgPT4gewotICAgICAgICAgICAgcmV0dXJuIGNoZWNrT3V0Ym91bmRCeXRlc1NlbnROb3RJ
bmNyZWFzaW5nKGZpcnN0Q29ubmVjdGlvbiwgc3RhdHNGaXJzdENvbm5lY3Rpb24sIGNvdW50KTsK
LSAgICAgICAgfSk7Ci0gICAgfSk7Ci19Ci0KLXZhciB0cmFjaywgZmlyc3RDb25uZWN0aW9uOwot
cHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7Ci0KLSAgICByZXR1
cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZX0pLnRo
ZW4oKHN0cmVhbSkgPT4gewotCXRyYWNrID0gc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07Ci0J
dHJhY2suZW5hYmxlZCA9IGZhbHNlOwotICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUsIHJlamVjdCkgPT4gewotICAgICAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGNvbm5lY3Rp
b24pID0+IHsKLSAgICAgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24gPSBjb25uZWN0aW9uOwot
ICAgICAgICAgICAgICAgIGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsK
LSAgICAgICAgICAgIH0sIChjb25uZWN0aW9uKSA9PiB7Ci0gICAgICAgICAgICAgICAgY29ubmVj
dGlvbi5vbnRyYWNrID0gcmVzb2x2ZTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgc2V0
VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOwotICAgICAgICB9
KTsKLSAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgcmV0dXJuIGdldE91dGJvdW5kUlRQU3Rh
dHMoZmlyc3RDb25uZWN0aW9uKTsKLSAgICB9KS50aGVuKChzdGF0cykgPT4gewotICAgICAgICBz
dGF0c0ZpcnN0Q29ubmVjdGlvbiA9IHN0YXRzOwotICAgICAgICByZXR1cm4gY2hlY2tPdXRib3Vu
ZEJ5dGVzU2VudE5vdEluY3JlYXNpbmcoZmlyc3RDb25uZWN0aW9uLCBzdGF0c0ZpcnN0Q29ubmVj
dGlvbiwgMCk7Ci0gICAgfSk7Ci19LCAiQXVkaW8gc2lsZW50IGRhdGEgbm90IGJlaW5nIHNlbnQg
aW4gY2FzZSB0cmFjayBpcyBtdXRlZCBmcm9tIHRoZSBzdGFydCIpOwotICAgICAgICA8L3Njcmlw
dD4KLSAgICA8L2JvZHk+Ci08L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344441</attachid>
            <date>2018-07-06 12:42:22 -0700</date>
            <delta_ts>2018-07-06 15:54:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186889-20180706124221.patch</filename>
            <type>text/plain</type>
            <size>15842</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU3ZGY2YThiN2FlODcx
Y2FhMTVmZmU3MmM2NzZhYWMyODU0NzEwNC4uYzhiOGI3YmZkMThmMzBlNGFkYTU4Y2M2YTRlMjg1
MzQ4NzM2Y2Y4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTA3LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJSVEMgTWVkaWFTdHJl
YW1UcmFjayBFbmFibGUgLyBEaXNhYmxlIGNhdXNlcyB2aWRlbyBkZWxheSAvIGxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2ODg5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80MTM3MDI4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBMaWJ3ZWJydGMgZXhwZWN0cyBhIGNvbnRpbnVvdXMgZmxvdyBv
ZiBjYWxscyBmb3IgYXVkaW8gZGF0YSBzaW5jZSB0aGUgQVBJCisgICAgICAgIGRvZXMgbm90IHBy
b3ZpZGUgYW55IHBvc3NpYmxpdHkgdG8gZ2l2ZSB0aW1lc3RhbXBzLgorCisgICAgICAgIFdlIHdl
cmUgb3B0aW1pemluZyBwcmV2aW91c2x5IHdoZW4gYSBzb3VyY2UgaXMgbXV0ZWQgc28gdGhhdCB3
ZSB3b3VsZCBub3QgdHJhbnNtaXQgYXVkaW8gZGF0YS4KKyAgICAgICAgVGhpcyBicmVha3Mgc3lu
Y2hyb25pemF0aW9uIGJldHdlZW4gYXVkaW8gYW5kIHZpZGVvIGZyYW1lcyAod2hpY2ggYXJlIHRp
bWVzdGFtcGVkKS4KKworICAgICAgICBUaGlzIHBhdGNoIHJldmVydHMgdGhlIG9wdGltaXphdGlv
biBhbmQgaW5zdGVhZCBtYWtlcyBzdXJlIHRvIHNlbmQgemVyb3MgZm9yIHNpbGVuY2VkIGF1ZGlv
IHRyYWNrcy4KKworICAgICAgICBUaGlzIHJlcXVpcmVzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRl
IHRvIHNlbmQgYXVkaW8gZGF0YSBldmVuIGlmIGRpc2FibGVkLAorICAgICAgICBzbyB0aGF0IFJl
YWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZSB3aWxsIGNvbnRpbnVlIHNlbmRpbmcgemVyb3MgYXQg
dGhlIGNvcnJlY3QgcGFjZS4KKyAgICAgICAgVGhpcyBhbHNvIHJlcXVpcmVzIFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDIHRvIGV4aXQgZWFybHkgaWYgaXRzIHRyYWNrIGlzIGRpc2FibGVk
LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisgICAgICAgIE1hbnVhbCB0
ZXN0aW5nIHNob3dzIHRoYXQgc3luY2hyb25pemF0aW9uIGlzIGtlcHQuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9T
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
OjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlOjppbml0aWFsaXplQ29udmVydGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZU11dGVkQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZUVuYWJs
ZWRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZTo6aGFuZGxlTXV0ZWRJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnB1bGxBdWRpb0RhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjppc1NpbGVuY2VkIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c2VuZFNpbGVu
Y2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGlt
ZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6cHVsbEF1ZGlvRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6aGFuZGxlTXV0ZWRJZk5lZWRl
ZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2VDb2NvYTo6c2VuZFNpbGVuY2UpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oOgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRp
b1NhbXBsZXNBdmFpbGFibGUpOgorCiAyMDE4LTA3LTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjMwODQzKTogRmxhc2ggZG9lc24n
dCB3b3JrOyBQcm9kdWNlcyBibHVlIGJveCBvbiBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5jcHAKaW5kZXggZmM0ZjRjZTBmMDA2NGQ2Yjg1ZWMxYzlkOTZmNGNiZTQ1OTk4OTFkYy4uZDdh
YmJkZjAyZTQ1MGQ4YjNjMTYwMjdiNWIzYjZlM2NmMWE4MzI5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlLmNwcApAQCAtMjE2LDkgKzIxNiw2IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmIG1lZGlhVGltZSwK
ICAgICAgICAgdXBkYXRlUmVhZHlTdGF0ZSgpOwogICAgIH0KIAotICAgIGlmICghZW5hYmxlZCgp
KQotICAgICAgICByZXR1cm47Ci0KICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZl
cnMpCiAgICAgICAgIG9ic2VydmVyLT5hdWRpb1NhbXBsZXNBdmFpbGFibGUoKnRoaXMsIG1lZGlh
VGltZSwgZGF0YSwgZGVzY3JpcHRpb24sIHNhbXBsZUNvdW50KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2UuY3BwCmluZGV4IGQyMzYxMzJlYTliY2I4YzcxYWZiMWMxZjBlMDgw
Y2VkN2YyMWVlNTcuLjYwOTBmMGU3Y2M5MGZmOTU2MzZmZTE2NmFjMjQ1OTZkYjQzN2I3OTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0
Z29pbmdBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNwcApAQCAtMzgsNyArMzgsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6UmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiBhdWRp
b1NvdXJjZSkKICAgICA6IG1fYXVkaW9Tb3VyY2UoV1RGTW92ZShhdWRpb1NvdXJjZSkpCi0gICAg
LCBtX3NpbGVuY2VBdWRpb1RpbWVyKCp0aGlzLCAmUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
OjpzZW5kU2lsZW5jZSkKIHsKICAgICBtX2F1ZGlvU291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7
CiAgICAgaW5pdGlhbGl6ZUNvbnZlcnRlcigpOwpAQCAtNTgsMzUgKzU3LDIyIEBAIHZvaWQgUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjppbml0aWFsaXplQ29udmVydGVyKCkKIHsKICAgICBt
X211dGVkID0gbV9hdWRpb1NvdXJjZS0+bXV0ZWQoKTsKICAgICBtX2VuYWJsZWQgPSBtX2F1ZGlv
U291cmNlLT5lbmFibGVkKCk7Ci0gICAgaGFuZGxlTXV0ZWRJZk5lZWRlZCgpOwogfQogCiB2b2lk
IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c3RvcCgpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKLSAgICBtX3NpbGVuY2VBdWRpb1RpbWVyLnN0b3AoKTsKICAgICBtX2F1ZGlv
U291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQoKQogewogICAgIG1fbXV0ZWQgPSBtX2F1
ZGlvU291cmNlLT5tdXRlZCgpOwotICAgIGhhbmRsZU11dGVkSWZOZWVkZWQoKTsKIH0KIAogdm9p
ZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkKIHsK
ICAgICBtX2VuYWJsZWQgPSBtX2F1ZGlvU291cmNlLT5lbmFibGVkKCk7Ci0gICAgaGFuZGxlTXV0
ZWRJZk5lZWRlZCgpOwotfQotCi12b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6aGFu
ZGxlTXV0ZWRJZk5lZWRlZCgpCi17Ci0gICAgYm9vbCBpc1NpbGVuY2VkID0gbV9tdXRlZCB8fCAh
bV9lbmFibGVkOwotICAgIGlmIChpc1NpbGVuY2VkICYmICFtX3NpbGVuY2VBdWRpb1RpbWVyLmlz
QWN0aXZlKCkpCi0gICAgICAgIG1fc2lsZW5jZUF1ZGlvVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9z
KTsKLSAgICBpZiAoIWlzU2lsZW5jZWQgJiYgbV9zaWxlbmNlQXVkaW9UaW1lci5pc0FjdGl2ZSgp
KQotICAgICAgICBtX3NpbGVuY2VBdWRpb1RpbWVyLnN0b3AoKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAppbmRleCBhZWYwZTg4
NjQyMjAzMGJhNjJlZDFkZjRjMGJiNGZlNWI0NGQyNGE1Li43NmE2MWY4ZjY0NDk1YThmMTNiYzZh
MTk1Zjg5OGVlNjEwMTJhYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuaApA
QCAtNTgsMTMgKzU4LDExIEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBSZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2UoUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVNdXRlZElmTmVlZGVkKCk7Ci0gICAgdmlydHVhbCB2
b2lkIHNlbmRTaWxlbmNlKCkgeyB9OwotICAgIHZpcnR1YWwgdm9pZCBwdWxsQXVkaW9EYXRhKCkg
eyB9OworICAgIHZpcnR1YWwgdm9pZCBwdWxsQXVkaW9EYXRhKCkgeyB9CisKKyAgICBib29sIGlz
U2lsZW5jZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkIHx8ICFtX2VuYWJsZWQ7IH0KIAogICAg
IFZlY3Rvcjx3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKj4gbV9zaW5rczsKLSAgICBi
b29sIG1fbXV0ZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBBZGRTaW5rKHdlYnJ0Yzo6QXVkaW9UcmFja1NpbmtJ
bnRlcmZhY2UqIHNpbmspIHsgbV9zaW5rcy5hcHBlbmQoc2luayk7IH0KQEAgLTEwMiw4ICsxMDAs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbnZlcnRlcigpOwogCiAgICAgUmVm
PE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiBtX2F1ZGlvU291cmNlOwotCi0gICAgVGltZXIgbV9z
aWxlbmNlQXVkaW9UaW1lcjsKKyAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9lbmFibGVkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0
aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGli
V2ViUlRDLmNwcAppbmRleCAyN2JkYjJmNmEwNTc5ZWYyZTNmZGZjNzljNGQ5NTlmYTYxZjA2ZWYx
Li4zZDg1ZWEwYTcxYzdhMGEyZjc1NmVjZmI2ZmI4N2Q2NWZkZTQ3MzZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2Vi
UlRDLmNwcApAQCAtNDMsMTQgKzQzLDYgQEAgdm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2VMaWJXZWJSVEM6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUKIHsKIH0K
IAotdm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEM6OmhhbmRsZU11dGVk
SWZOZWVkZWQoKQotewotfQotCi12b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldl
YlJUQzo6c2VuZFNpbGVuY2UoKQotewotfQotCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZUxpYldlYlJUQzo6cHVsbEF1ZGlvRGF0YSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlTGliV2ViUlRDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDLmgKaW5kZXgg
MTcwMGIxOGQ3OWNlMmE1MmM1N2E2MjVjY2JhZGZlM2UyYjk5Mjg4NC4uZWU1NmQ1Mjc2Nzc0OTI0
ZTk5ZDNiNjM2ZmEzY2QzYzNhNWQyYjExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxp
YldlYlJUQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJl
YW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuaApAQCAtNDMsOSArNDMs
NiBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzQnVmZmVyZWRFbm91Z2hEYXRhKCkgZmluYWw7CiAK
ICAgICB2b2lkIHB1bGxBdWRpb0RhdGEoKSBmaW5hbDsKLQotICAgIHZvaWQgaGFuZGxlTXV0ZWRJ
Zk5lZWRlZCgpIGZpbmFsOwotICAgIHZvaWQgc2VuZFNpbGVuY2UoKSBmaW5hbDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlQ29jb2EuY3BwCmluZGV4IGNjNmM3NzVkN2U4MThkMDY4ZTc0ZDIxMzMyOTYyNjU0
ZmE1ZDM0ZmYuLjIzNjY2NzYxN2RkMTk3M2MyZTU1M2YzZTQxMmMwZjE0Yjc1ZTZiOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApAQCAt
NTQsMzAgKzU0LDYgQEAgUmVmPFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZT4gUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlOjpjcmVhdGUoUmVmPE1lZGlhU3QKICAgICByZXR1cm4gUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF1ZGlvU291cmNlKSk7
CiB9CiAKLXZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6OmhhbmRsZU11dGVk
SWZOZWVkZWQoKQotewotICAgIGJvb2wgaXNTaWxlbmNlZCA9IG1fbXV0ZWQgfHwgIW1fZW5hYmxl
ZDsKLSAgICBtX3NhbXBsZUNvbnZlcnRlci0+c2V0TXV0ZWQoaXNTaWxlbmNlZCk7Ci0KLSAgICBS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OmhhbmRsZU11dGVkSWZOZWVkZWQoKTsKLX0KLQot
dm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6c2VuZFNpbGVuY2UoKQotewot
ICAgIExpYldlYlJUQ1Byb3ZpZGVyOjpjYWxsT25XZWJSVENTaWduYWxpbmdUaHJlYWQoW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICBzaXplX3QgY2h1bmtT
YW1wbGVDb3VudCA9IG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgpIC8gMTAw
OwotICAgICAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IGNodW5rU2FtcGxlQ291bnQgKiBMaWJXZWJS
VENBdWRpb0Zvcm1hdDo6c2FtcGxlQnl0ZVNpemUgKiBtX291dHB1dFN0cmVhbURlc2NyaXB0aW9u
Lm51bWJlck9mQ2hhbm5lbHMoKTsKLQotICAgICAgICBpZiAoIWJ1ZmZlclNpemUpCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgbV9hdWRpb0J1ZmZlci5ncm93KGJ1ZmZlclNpemUpOwot
ICAgICAgICBtZW1zZXQobV9hdWRpb0J1ZmZlci5kYXRhKCksIDAsIGJ1ZmZlclNpemUpOwotICAg
ICAgICBmb3IgKGF1dG8gc2luayA6IG1fc2lua3MpCi0gICAgICAgICAgICBzaW5rLT5PbkRhdGEo
bV9hdWRpb0J1ZmZlci5kYXRhKCksIExpYldlYlJUQ0F1ZGlvRm9ybWF0OjpzYW1wbGVTaXplLCBt
X291dHB1dFN0cmVhbURlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSwgbV9vdXRwdXRTdHJlYW1EZXNj
cmlwdGlvbi5udW1iZXJPZkNoYW5uZWxzKCksIGNodW5rU2FtcGxlQ291bnQpOwotICAgIH0pOwot
fQotCiBib29sIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hOjppc1JlYWNoaW5nQnVm
ZmVyZWRBdWRpb0RhdGFIaWdoTGltaXQoKQogewogICAgIGF1dG8gd3JpdHRlbkF1ZGlvRHVyYXRp
b24gPSBtX3dyaXRlQ291bnQgLyBtX2lucHV0U3RyZWFtRGVzY3JpcHRpb24uc2FtcGxlUmF0ZSgp
OwpAQCAtMTUzLDYgKzEyOSw5IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29j
b2E6OnB1bGxBdWRpb0RhdGEoKQogICAgIGJ1ZmZlckxpc3QubUJ1ZmZlcnNbMF0ubURhdGFCeXRl
U2l6ZSA9IGJ1ZmZlclNpemU7CiAgICAgYnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YSA9IG1f
YXVkaW9CdWZmZXIuZGF0YSgpOwogCisgICAgaWYgKGlzU2lsZW5jZWQoKSAhPSAgbV9zYW1wbGVD
b252ZXJ0ZXItPm11dGVkKCkpCisgICAgICAgIG1fc2FtcGxlQ29udmVydGVyLT5zZXRNdXRlZChp
c1NpbGVuY2VkKCkpOworCiAgICAgbV9zYW1wbGVDb252ZXJ0ZXItPnB1bGxBdmFsYWlibGVTYW1w
bGVzQXNDaHVua3MoYnVmZmVyTGlzdCwgY2h1bmtTYW1wbGVDb3VudCwgbV9yZWFkQ291bnQsIFt0
aGlzLCBjaHVua1NhbXBsZUNvdW50XSB7CiAgICAgICAgIG1fcmVhZENvdW50ICs9IGNodW5rU2Ft
cGxlQ291bnQ7CiAgICAgICAgIGZvciAoYXV0byBzaW5rIDogbV9zaW5rcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2VDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmgKaW5kZXggNzZmYTVhZDAwMmEw
OGRkMzMxOTA0NzNiZWUyMmVkZjYzMjIyNDdlOS4uODUwMGM1M2YyZjRiMGZhOTk2ZDE3ZWQ2N2E3
NzA4YzEwNDA3NjYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZUNvY29hLmgKQEAgLTUyLDkgKzUyLDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcHVsbEF1
ZGlvRGF0YSgpIGZpbmFsOwogCi0gICAgdm9pZCBoYW5kbGVNdXRlZElmTmVlZGVkKCkgZmluYWw7
Ci0gICAgdm9pZCBzZW5kU2lsZW5jZSgpIGZpbmFsOwotCiAgICAgUmVmPEF1ZGlvU2FtcGxlRGF0
YVNvdXJjZT4gbV9zYW1wbGVDb252ZXJ0ZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9u
IG1faW5wdXRTdHJlYW1EZXNjcmlwdGlvbjsKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24g
bV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbQppbmRleCA3MWM3ZTIyZTBkMzgwZmRmYWIyOGNjMWNiODg0OGEyNThh
Nzc3ZmI3Li5kNGU5NzNiOTkyOGY4ZWJlOTQ5NmIzZmFiOTY3MTk2MzM4MGE4OGFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBAIC0xNTksOCArMTU5
LDExIEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZSgpCiAg
ICAgfQogfQogCi12b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjphdWRpb1NhbXBs
ZXNBdmFpbGFibGUoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlv
biYgZGVzY3JpcHRpb24sIHNpemVfdCBmcmFtZUNvdW50KQordm9pZCBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlJiB0cmFjaywgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0RhdGEmIGRh
dGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXplX3QgZnJh
bWVDb3VudCkKIHsKKyAgICBpZiAoIXRyYWNrLmVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09IFBs
YXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwogICAgIGF1dG8mIGJh
c2ljRGVzY3JpcHRpb24gPSAqV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0
aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKICAg
ICBpZiAoIW1faW5wdXREZXNjcmlwdGlvbiB8fCBtX2lucHV0RGVzY3JpcHRpb24tPnN0cmVhbURl
c2NyaXB0aW9uKCkgIT0gYmFzaWNEZXNjcmlwdGlvbikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZTBmYzhjZmE2OTA3YjI4
Y2ViZjAzYzJlOTRiZGMzYWZlZDE0MTY3Li5mZjliNWFkMzY1NDk5YjNmMGVhZDNjYzMwNzRjNmFi
ZjUzNjQyYTFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDctMDYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYlJUQyBNZWRpYVN0cmVhbVRyYWNr
IEVuYWJsZSAvIERpc2FibGUgY2F1c2VzIHZpZGVvIGRlbGF5IC8gbGFnCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODY4ODkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzQxMzcwMjg1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3QgaXMgbm8gbG9uZ2VyIHZhbGlkIHNpbmNlIHdlIGFyZSBub3cgc2Vu
ZGluZyAwIGJ5dGVzIGZvciBhdWRpbyB0cmFja3MuCisKKyAgICAgICAgKiB3ZWJydGMvYXVkaW8t
bXV0ZWQtc3RhdHMyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJydGMvYXVk
aW8tbXV0ZWQtc3RhdHMyLmh0bWw6IFJlbW92ZWQuCisKIDIwMTgtMDctMDUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzA4NDMpOiBG
bGFzaCBkb2Vzbid0IHdvcms7IFByb2R1Y2VzIGJsdWUgYm94IG9uIHBhZ2UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYnJ0Yy9hdWRpby1tdXRlZC1zdGF0czItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvd2VicnRjL2F1ZGlvLW11dGVkLXN0YXRzMi1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyMWI1ZmYxN2I2NDQzOWEwNDhhN2U3MmI0ZWFjY2IzYWMx
ZmVkNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvd2VicnRjL2F1ZGlvLW11dGVkLXN0YXRzMi1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBBdWRpbyBzaWxlbnQgZGF0YSBub3QgYmVpbmcg
c2VudCBpbiBjYXNlIHRyYWNrIGlzIG11dGVkIGZyb20gdGhlIHN0YXJ0IAotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tbXV0ZWQtc3RhdHMyLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJydGMvYXVkaW8tbXV0ZWQtc3RhdHMyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDc4OWExYjIwYTNiYTI0ZmU4MWVhZjdjNTA1YjJiMGVmMjZjZGMxMmIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2VicnRj
L2F1ZGlvLW11dGVkLXN0YXRzMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAot
PCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotICAgICAgICA8dGl0bGU+VGVzdGluZyBiYXNpYyB2aWRlbyBleGNoYW5nZSBm
cm9tIG9mZmVyZXIgdG8gcmVjZWl2ZXI8L3RpdGxlPgotICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAgPC9oZWFk
PgotICAgIDxib2R5PgotICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3Njcmlw
dD4KLSAgICAgICAgPHNjcmlwdD4KLWZ1bmN0aW9uIGdldE91dGJvdW5kUlRQU3RhdHMoY29ubmVj
dGlvbikKLXsKLSAgICByZXR1cm4gY29ubmVjdGlvbi5nZXRTdGF0cygpLnRoZW4oKHJlcG9ydCkg
PT4gewotICAgICAgICB2YXIgc3RhdHM7Ci0gICAgICAgIHJlcG9ydC5mb3JFYWNoKChzdGF0SXRl
bSkgPT4gewotICAgICAgICAgICAgaWYgKHN0YXRJdGVtLnR5cGUgPT09ICJvdXRib3VuZC1ydHAi
KSB7Ci0gICAgICAgICAgICAgICAgc3RhdHMgPSBzdGF0SXRlbTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBzdGF0czsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24g
Y2hlY2tPdXRib3VuZEJ5dGVzU2VudE5vdEluY3JlYXNpbmcoZmlyc3RDb25uZWN0aW9uLCBzdGF0
c0ZpcnN0Q29ubmVjdGlvbiwgY291bnQpCi17Ci0gICAgcmV0dXJuIGdldE91dGJvdW5kUlRQU3Rh
dHMoZmlyc3RDb25uZWN0aW9uKS50aGVuKChzdGF0cykgPT4gewotICAgICAgIGlmIChzdGF0cy5i
eXRlc1NlbnQgPiBzdGF0c0ZpcnN0Q29ubmVjdGlvbi5ieXRlc1NlbnQpCi0gICAgICAgICAgICBy
ZXR1cm4gUHJvbWlzZS5yZWplY3QoIm91dGJvdW5kIHN0YXRzIGJ5dGVzIHNlbnQgaW5jcmVhc2lu
ZyIpOwotICAgICAgICBpZiAoKytjb3VudCA9PT0gMTApCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIHJldHVybiB3YWl0Rm9yKDUwKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIHJldHVy
biBjaGVja091dGJvdW5kQnl0ZXNTZW50Tm90SW5jcmVhc2luZyhmaXJzdENvbm5lY3Rpb24sIHN0
YXRzRmlyc3RDb25uZWN0aW9uLCBjb3VudCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotCi12
YXIgdHJhY2ssIGZpcnN0Q29ubmVjdGlvbjsKLXByb21pc2VfdGVzdCgodGVzdCkgPT4gewotICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uKHRydWUpOwotCi0gICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHsgYXVkaW86IHRydWV9KS50aGVuKChzdHJlYW0pID0+IHsKLQl0cmFjayA9IHN0
cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwotCXRyYWNrLmVuYWJsZWQgPSBmYWxzZTsKLSAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAgICAgICAg
IGNyZWF0ZUNvbm5lY3Rpb25zKChjb25uZWN0aW9uKSA9PiB7Ci0gICAgICAgICAgICAgICAgZmly
c3RDb25uZWN0aW9uID0gY29ubmVjdGlvbjsKLSAgICAgICAgICAgICAgICBmaXJzdENvbm5lY3Rp
b24uYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7Ci0gICAgICAgICAgICB9LCAoY29ubmVjdGlvbikg
PT4gewotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ub250cmFjayA9IHJlc29sdmU7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRp
bWVkIG91dCIpLCA1MDAwKTsKLSAgICAgICAgfSk7Ci0gICAgfSkudGhlbigoKSA9PiB7Ci0gICAg
ICAgIHJldHVybiBnZXRPdXRib3VuZFJUUFN0YXRzKGZpcnN0Q29ubmVjdGlvbik7Ci0gICAgfSku
dGhlbigoc3RhdHMpID0+IHsKLSAgICAgICAgc3RhdHNGaXJzdENvbm5lY3Rpb24gPSBzdGF0czsK
LSAgICAgICAgcmV0dXJuIGNoZWNrT3V0Ym91bmRCeXRlc1NlbnROb3RJbmNyZWFzaW5nKGZpcnN0
Q29ubmVjdGlvbiwgc3RhdHNGaXJzdENvbm5lY3Rpb24sIDApOwotICAgIH0pOwotfSwgIkF1ZGlv
IHNpbGVudCBkYXRhIG5vdCBiZWluZyBzZW50IGluIGNhc2UgdHJhY2sgaXMgbXV0ZWQgZnJvbSB0
aGUgc3RhcnQiKTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344444</attachid>
            <date>2018-07-06 13:06:14 -0700</date>
            <delta_ts>2018-07-06 14:04:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186889-20180706130613.patch</filename>
            <type>text/plain</type>
            <size>4139</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBlMjk3ZDA4ZjEzZGU4MGFiNmQ4MTIzODBjZWFlZGY5MTIxNDAwYjk2Li4yNjQy
OGRmZDM1MGMzZTU3NjU0NDgxZDczODcyZmE5MzU5MTJhM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wNy0wNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUlRDIE1lZGlhU3RyZWFtVHJh
Y2sgRW5hYmxlIC8gRGlzYWJsZSBjYXVzZXMgdmlkZW8gZGVsYXkgLyBsYWcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Njg4OQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDEzNzAyODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2NwdV90aW1lLmNjOiBDYWxs
IG1hY2hfcG9ydF9kZWFsbG9jYXRlIHRvCisgICAgICAgIHRvIGVuc3VyZSBtYWNoX3BvcnQgaXMg
ZGVsZXRlZC4KKyAgICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
U3RvcCBjb21waWxpbmcgdGhpcyBmaWxlIHNpbmNlCisgICAgICAgIHRoaXMgaXMgbm90IHVzZWQg
ZXhjZXB0IGJ5IGxpYndlYnJ0YyB0ZXN0cy4KKwogMjAxOC0wNy0wNCAgVGhpYmF1bHQgU2F1bmll
ciAgPHRzYXVuaWVyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2xpYndlYnJ0Y10gQWxsb3cgSVAg
bWlzbWF0Y2ggZm9yIGxvY2FsIGNvbm5lY3Rpb25zIG9uIGxvY2FsaG9zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvY3B1X3Rp
bWUuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9ydGNfYmFz
ZS9jcHVfdGltZS5jYwppbmRleCA2YzIyODgwNGQ5ZmEyMGFkNWMxNWUwNTA3OThiMGNkZGZiNTQ5
YjQyLi4wMjBjYzcyZWM4YTUwZGQ1ZjI3NDFjMjg4ZmJmZDk0YjY0MDUyYjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9ydGNfYmFzZS9jcHVf
dGltZS5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9y
dGNfYmFzZS9jcHVfdGltZS5jYwpAQCAtMTgsOSArMTgsOSBAQAogI2luY2x1ZGUgPHN5cy9yZXNv
dXJjZS5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN5cy90aW1lcy5oPgot
I2luY2x1ZGUgPG1hY2gvdGhyZWFkX2luZm8uaD4KICNpbmNsdWRlIDxtYWNoL3RocmVhZF9hY3Qu
aD4KLSNpbmNsdWRlIDxtYWNoL21hY2hfaW5pdC5oPgorI2luY2x1ZGUgPG1hY2gvdGhyZWFkX2lu
Zm8uaD4KKyNpbmNsdWRlIDxtYWNoL21hY2hfcG9ydC5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgog
I2VsaWYgZGVmaW5lZChXRUJSVENfV0lOKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KQEAgLTgzLDgg
KzgzLDEwIEBAIGludDY0X3QgR2V0VGhyZWFkQ3B1VGltZU5hbm9zKCkgewogI2VsaWYgZGVmaW5l
ZChXRUJSVENfTUFDKQogICB0aHJlYWRfYmFzaWNfaW5mb19kYXRhX3QgaW5mbzsKICAgbWFjaF9t
c2dfdHlwZV9udW1iZXJfdCBjb3VudCA9IFRIUkVBRF9CQVNJQ19JTkZPX0NPVU5UOwotICBpZiAo
dGhyZWFkX2luZm8obWFjaF90aHJlYWRfc2VsZigpLCBUSFJFQURfQkFTSUNfSU5GTywgKHRocmVh
ZF9pbmZvX3QpJmluZm8sCi0gICAgICAgICAgICAgICAgICAmY291bnQpID09IEtFUk5fU1VDQ0VT
UykgeworICBhdXRvIHBvcnQgPSBtYWNoX3RocmVhZF9zZWxmKCk7CisgIGF1dG8gcmVzdWx0ID0g
dGhyZWFkX2luZm8ocG9ydCwgVEhSRUFEX0JBU0lDX0lORk8sICh0aHJlYWRfaW5mb190KSZpbmZv
LCAmY291bnQpOworICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBwb3J0
KTsKKyAgaWYgKHJlc3VsdCA9PSBLRVJOX1NVQ0NFU1MpIHsKICAgICByZXR1cm4gaW5mby51c2Vy
X3RpbWUuc2Vjb25kcyAqIGtOdW1OYW5vc2Vjc1BlclNlYyArCiAgICAgICAgICAgIGluZm8udXNl
cl90aW1lLm1pY3Jvc2Vjb25kcyAqIGtOdW1OYW5vc2Vjc1Blck1pY3Jvc2VjOwogICB9IGVsc2Ug
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndl
YnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDAzNGU1N2JjMTY2NzY0N2ZmMWI4
OGVkYjc0MjNkOGU4ZTljOWU0OTMuLjEwNjJiYTZjNDEyM2M0NjViZGZhMGVkMmExMWI0NGU5OGMx
YzViNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzOCw3ICsxMzgsNiBA
QAogCQk0MTNBMjMwNzFGRTE4RTA3MDAzNzNFOTkgLyogaHR0cGJhc2UuY2MgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjFCMjFGRTE4RDk3MDAzNzNF
OTkgLyogaHR0cGJhc2UuY2MgKi87IH07CiAJCTQxM0EyMzA5MUZFMThFMDcwMDM3M0U5OSAvKiBt
ZW1vcnlfdXNhZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxM0EyMUI0MUZFMThEOTcwMDM3M0U5OSAvKiBtZW1vcnlfdXNhZ2UuaCAqLzsgfTsKIAkJ
NDEzQTIzMEExRkUxOEUwNzAwMzczRTk5IC8qIHB0cl91dGlsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjFCNTFGRTE4RDk4MDAzNzNFOTkgLyog
cHRyX3V0aWwuaCAqLzsgfTsKLQkJNDEzQTIzMEMxRkUxOEUwNzAwMzczRTk5IC8qIGNwdV90aW1l
LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzQTIx
QjgxRkUxOEQ5OTAwMzczRTk5IC8qIGNwdV90aW1lLmNjICovOyB9OwogCQk0MTNBMjMwRDFGRTE4
RTA3MDAzNzNFOTkgLyogcmF0ZV9zdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjFCOTFGRTE4RDlBMDAzNzNFOTkgLyogcmF0ZV9z
dGF0aXN0aWNzLmggKi87IH07CiAJCTQxM0EyMzBGMUZFMThFMDcwMDM3M0U5OSAvKiBydGNjZXJ0
aWZpY2F0ZS5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxM0EyMUJCMUZFMThEOUIwMDM3M0U5OSAvKiBydGNjZXJ0aWZpY2F0ZS5jYyAqLzsgfTsKIAkJ
NDEzQTIzMTAxRkUxOEUwNzAwMzczRTk5IC8qIGZha2VjbG9jay5jYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0EyMUJDMUZFMThEOUIwMDM3M0U5OSAv
KiBmYWtlY2xvY2suY2MgKi87IH07CkBAIC0xMjk4Nyw3ICsxMjk4Niw2IEBACiAJCQkJNUNERDkw
N0ExRTQzRDE1QzAwNjIxRTkyIC8qIGNvdmFyaWFuY2VfbWF0cml4X2dlbmVyYXRvci5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDNEI0Q0NBMUU0MzIwQTkwMDI2NTFDOCAvKiBjcHVfZmVhdHVyZXMu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNENDQjFFNDMyMEE5MDAyNjUxQzggLyogY3B1X2lu
Zm8uY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTNBMjMwQzFGRTE4RTA3MDAzNzNFOTkgLyogY3B1
X3RpbWUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODdCMTFFNDNCQzA1MDA2MjFFOTIgLyog
Y3JjLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTNBMjM0MzFGRTE4RTA3MDAzNzNFOTkgLyogY3Jj
MzIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEI4QjFFNDNDMkI1MDA2MjFFOTIgLyogY3Jl
YXRlX2F1Z21lbnRlZF92ZWMuYyBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344470</attachid>
            <date>2018-07-06 15:54:16 -0700</date>
            <delta_ts>2018-07-06 16:47:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-186889-20180706155416.patch</filename>
            <type>text/plain</type>
            <size>15848</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRkZmQyMmZmYjYwNDVm
ZTAyMTg3YTA4OTQ3OWUwYTY1ZTNlNDBlYy4uZmQ5NjNlYWUwZmU3MmUwZTYwN2JkODA0NDIxNzY0
ZmZjNTkzYzZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTA3LTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJSVEMgTWVkaWFTdHJl
YW1UcmFjayBFbmFibGUgLyBEaXNhYmxlIGNhdXNlcyB2aWRlbyBkZWxheSAvIGxhZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg2ODg5CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80MTM3MDI4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENh
cmxzb24uCisKKyAgICAgICAgTGlid2VicnRjIGV4cGVjdHMgYSBjb250aW51b3VzIGZsb3cgb2Yg
Y2FsbHMgZm9yIGF1ZGlvIGRhdGEgc2luY2UgdGhlIEFQSQorICAgICAgICBkb2VzIG5vdCBwcm92
aWRlIGFueSBwb3NzaWJsaXR5IHRvIGdpdmUgdGltZXN0YW1wcy4KKworICAgICAgICBXZSB3ZXJl
IG9wdGltaXppbmcgcHJldmlvdXNseSB3aGVuIGEgc291cmNlIGlzIG11dGVkIHNvIHRoYXQgd2Ug
d291bGQgbm90IHRyYW5zbWl0IGF1ZGlvIGRhdGEuCisgICAgICAgIFRoaXMgYnJlYWtzIHN5bmNo
cm9uaXphdGlvbiBiZXR3ZWVuIGF1ZGlvIGFuZCB2aWRlbyBmcmFtZXMgKHdoaWNoIGFyZSB0aW1l
c3RhbXBlZCkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXZlcnRzIHRoZSBvcHRpbWl6YXRpb24g
YW5kIGluc3RlYWQgbWFrZXMgc3VyZSB0byBzZW5kIHplcm9zIGZvciBzaWxlbmNlZCBhdWRpbyB0
cmFja3MuCisKKyAgICAgICAgVGhpcyByZXF1aXJlcyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSB0
byBzZW5kIGF1ZGlvIGRhdGEgZXZlbiBpZiBkaXNhYmxlZCwKKyAgICAgICAgc28gdGhhdCBSZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2Ugd2lsbCBjb250aW51ZSBzZW5kaW5nIHplcm9zIGF0IHRo
ZSBjb3JyZWN0IHBhY2UuCisgICAgICAgIFRoaXMgYWxzbyByZXF1aXJlcyBXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQyB0byBleGl0IGVhcmx5IGlmIGl0cyB0cmFjayBpcyBkaXNhYmxlZC4K
KworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorICAgICAgICBNYW51YWwgdGVz
dGluZyBzaG93cyB0aGF0IHN5bmNocm9uaXphdGlvbiBpcyBrZXB0LgorCisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZTo6aW5pdGlhbGl6ZUNvbnZlcnRlcik6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpzb3VyY2VFbmFibGVk
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6
OmhhbmRsZU11dGVkSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlOjpwdWxsQXVkaW9EYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6aXNTaWxlbmNlZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OnNlbmRTaWxlbmNl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6OnB1bGxBdWRpb0RhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6OmhhbmRsZU11dGVkSWZOZWVkZWQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNl
Q29jb2E6OnNlbmRTaWxlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6YXVkaW9T
YW1wbGVzQXZhaWxhYmxlKToKKwogMjAxOC0wNy0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBNYWtlIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZSpUcmFjayB0
YWtlIGEgUmVmPD4mJgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IGZjNGY0Y2Uw
ZjAwNjRkNmI4NWVjMWM5ZDk2ZjRjYmU0NTk5ODkxZGMuLmQ3YWJiZGYwMmU0NTBkOGIzYzE2MDI3
YjViM2I2ZTNjZjFhODMyOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTIx
Niw5ICsyMTYsNiBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjphdWRpb1NhbXBsZXNB
dmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbWUsCiAgICAgICAgIHVwZGF0ZVJlYWR5
U3RhdGUoKTsKICAgICB9CiAKLSAgICBpZiAoIWVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwot
CiAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQogICAgICAgICBvYnNlcnZl
ci0+YXVkaW9TYW1wbGVzQXZhaWxhYmxlKCp0aGlzLCBtZWRpYVRpbWUsIGRhdGEsIGRlc2NyaXB0
aW9uLCBzYW1wbGVDb3VudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmNw
cAppbmRleCBkMjM2MTMyZWE5YmNiOGM3MWFmYjFjMWYwZTA4MGNlZDdmMjFlZTU3Li42MDkwZjBl
N2NjOTBmZjk1NjM2ZmUxNjZhYzI0NTk2ZGI0MzdiNzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29p
bmdBdWRpb1NvdXJjZS5jcHAKQEAgLTM4LDcgKzM4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgYXVkaW9Tb3VyY2UpCiAgICAgOiBtX2F1
ZGlvU291cmNlKFdURk1vdmUoYXVkaW9Tb3VyY2UpKQotICAgICwgbV9zaWxlbmNlQXVkaW9UaW1l
cigqdGhpcywgJlJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c2VuZFNpbGVuY2UpCiB7CiAg
ICAgbV9hdWRpb1NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIGluaXRpYWxpemVDb252
ZXJ0ZXIoKTsKQEAgLTU4LDM1ICs1NywyMiBAQCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1Nv
dXJjZTo6aW5pdGlhbGl6ZUNvbnZlcnRlcigpCiB7CiAgICAgbV9tdXRlZCA9IG1fYXVkaW9Tb3Vy
Y2UtPm11dGVkKCk7CiAgICAgbV9lbmFibGVkID0gbV9hdWRpb1NvdXJjZS0+ZW5hYmxlZCgpOwot
ICAgIGhhbmRsZU11dGVkSWZOZWVkZWQoKTsKIH0KIAogdm9pZCBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2U6OnN0b3AoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9z
aWxlbmNlQXVkaW9UaW1lci5zdG9wKCk7CiAgICAgbV9hdWRpb1NvdXJjZS0+cmVtb3ZlT2JzZXJ2
ZXIoKnRoaXMpOwogfQogCiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6c291cmNl
TXV0ZWRDaGFuZ2VkKCkKIHsKICAgICBtX211dGVkID0gbV9hdWRpb1NvdXJjZS0+bXV0ZWQoKTsK
LSAgICBoYW5kbGVNdXRlZElmTmVlZGVkKCk7CiB9CiAKIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1
ZGlvU291cmNlOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCgpCiB7CiAgICAgbV9lbmFibGVkID0gbV9h
dWRpb1NvdXJjZS0+ZW5hYmxlZCgpOwotICAgIGhhbmRsZU11dGVkSWZOZWVkZWQoKTsKLX0KLQot
dm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U6OmhhbmRsZU11dGVkSWZOZWVkZWQoKQot
ewotICAgIGJvb2wgaXNTaWxlbmNlZCA9IG1fbXV0ZWQgfHwgIW1fZW5hYmxlZDsKLSAgICBpZiAo
aXNTaWxlbmNlZCAmJiAhbV9zaWxlbmNlQXVkaW9UaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBt
X3NpbGVuY2VBdWRpb1RpbWVyLnN0YXJ0UmVwZWF0aW5nKDFfcyk7Ci0gICAgaWYgKCFpc1NpbGVu
Y2VkICYmIG1fc2lsZW5jZUF1ZGlvVGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgbV9zaWxlbmNl
QXVkaW9UaW1lci5zdG9wKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdB
dWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKaW5kZXggYWVmMGU4ODY0MjIwMzBiYTYyZWQxZGY0YzBi
YjRmZTViNDRkMjRhNS4uNzZhNjFmOGY2NDQ5NWE4ZjEzYmM2YTE5NWY4OThlZTYxMDEyYWE3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVP
dXRnb2luZ0F1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlLmgKQEAgLTU4LDEzICs1OCwxMSBAQCBw
dWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291
cmNlKFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
aGFuZGxlTXV0ZWRJZk5lZWRlZCgpOwotICAgIHZpcnR1YWwgdm9pZCBzZW5kU2lsZW5jZSgpIHsg
fTsKLSAgICB2aXJ0dWFsIHZvaWQgcHVsbEF1ZGlvRGF0YSgpIHsgfTsKKyAgICB2aXJ0dWFsIHZv
aWQgcHVsbEF1ZGlvRGF0YSgpIHsgfQorCisgICAgYm9vbCBpc1NpbGVuY2VkKCkgY29uc3QgeyBy
ZXR1cm4gbV9tdXRlZCB8fCAhbV9lbmFibGVkOyB9CiAKICAgICBWZWN0b3I8d2VicnRjOjpBdWRp
b1RyYWNrU2lua0ludGVyZmFjZSo+IG1fc2lua3M7Ci0gICAgYm9vbCBtX211dGVkIHsgZmFsc2Ug
fTsKLSAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgQWRkU2luayh3ZWJydGM6OkF1ZGlvVHJhY2tTaW5rSW50ZXJmYWNlKiBzaW5rKSB7IG1f
c2lua3MuYXBwZW5kKHNpbmspOyB9CkBAIC0xMDIsOCArMTAwLDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIGluaXRpYWxpemVDb252ZXJ0ZXIoKTsKIAogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4gbV9hdWRpb1NvdXJjZTsKLQotICAgIFRpbWVyIG1fc2lsZW5jZUF1ZGlvVGltZXI7Cisg
ICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3Vy
Y2VMaWJXZWJSVEMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKaW5kZXggMjdi
ZGIyZjZhMDU3OWVmMmUzZmRmYzc5YzRkOTU5ZmE2MWYwNmVmMS4uM2Q4NWVhMGE3MWM3YTBhMmY3
NTZlY2ZiNmZiODdkNjVmZGU0NzM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldl
YlJUQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVh
bWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5jcHAKQEAgLTQzLDE0ICs0
Myw2IEBAIHZvaWQgUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlTGliV2ViUlRDOjphdWRpb1Nh
bXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lCiB7CiB9CiAKLXZvaWQgUmVhbHRpbWVPdXRn
b2luZ0F1ZGlvU291cmNlTGliV2ViUlRDOjpoYW5kbGVNdXRlZElmTmVlZGVkKCkKLXsKLX0KLQot
dm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEM6OnNlbmRTaWxlbmNlKCkK
LXsKLX0KLQogdm9pZCBSZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEM6OnB1bGxB
dWRpb0RhdGEoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL1JlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZUxpYldlYlJUQy5oCmluZGV4IDE3MDBiMThkNzljZTJhNTJjNTdh
NjI1Y2NiYWRmZTNlMmI5OTI4ODQuLmVlNTZkNTI3Njc3NDkyNGU5OWQzYjYzNmZhM2NkM2MzYTVk
MmIxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2dz
dHJlYW1lci9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VMaWJXZWJSVEMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlTGliV2ViUlRDLmgKQEAgLTQzLDkgKzQzLDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIGhhc0J1ZmZlcmVkRW5vdWdoRGF0YSgpIGZpbmFsOwogCiAgICAgdm9pZCBwdWxsQXVkaW9E
YXRhKCkgZmluYWw7Ci0KLSAgICB2b2lkIGhhbmRsZU11dGVkSWZOZWVkZWQoKSBmaW5hbDsKLSAg
ICB2b2lkIHNlbmRTaWxlbmNlKCkgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcApp
bmRleCBjYzZjNzc1ZDdlODE4ZDA2OGU3NGQyMTMzMjk2MjY1NGZhNWQzNGZmLi4yMzY2Njc2MTdk
ZDE5NzNjMmU1NTNmM2U0MTJjMGYxNGI3NWU2Yjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAKQEAgLTU0LDMwICs1NCw2IEBAIFJlZjxS
ZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2U+IFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZTo6
Y3JlYXRlKFJlZjxNZWRpYVN0CiAgICAgcmV0dXJuIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJj
ZUNvY29hOjpjcmVhdGUoV1RGTW92ZShhdWRpb1NvdXJjZSkpOwogfQogCi12b2lkIFJlYWx0aW1l
T3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hOjpoYW5kbGVNdXRlZElmTmVlZGVkKCkKLXsKLSAgICBi
b29sIGlzU2lsZW5jZWQgPSBtX211dGVkIHx8ICFtX2VuYWJsZWQ7Ci0gICAgbV9zYW1wbGVDb252
ZXJ0ZXItPnNldE11dGVkKGlzU2lsZW5jZWQpOwotCi0gICAgUmVhbHRpbWVPdXRnb2luZ0F1ZGlv
U291cmNlOjpoYW5kbGVNdXRlZElmTmVlZGVkKCk7Ci19Ci0KLXZvaWQgUmVhbHRpbWVPdXRnb2lu
Z0F1ZGlvU291cmNlQ29jb2E6OnNlbmRTaWxlbmNlKCkKLXsKLSAgICBMaWJXZWJSVENQcm92aWRl
cjo6Y2FsbE9uV2ViUlRDU2lnbmFsaW5nVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldIHsKLSAgICAgICAgc2l6ZV90IGNodW5rU2FtcGxlQ291bnQgPSBtX291dHB1
dFN0cmVhbURlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKSAvIDEwMDsKLSAgICAgICAgc2l6ZV90IGJ1
ZmZlclNpemUgPSBjaHVua1NhbXBsZUNvdW50ICogTGliV2ViUlRDQXVkaW9Gb3JtYXQ6OnNhbXBs
ZUJ5dGVTaXplICogbV9vdXRwdXRTdHJlYW1EZXNjcmlwdGlvbi5udW1iZXJPZkNoYW5uZWxzKCk7
Ci0KLSAgICAgICAgaWYgKCFidWZmZXJTaXplKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAg
ICAgIG1fYXVkaW9CdWZmZXIuZ3JvdyhidWZmZXJTaXplKTsKLSAgICAgICAgbWVtc2V0KG1fYXVk
aW9CdWZmZXIuZGF0YSgpLCAwLCBidWZmZXJTaXplKTsKLSAgICAgICAgZm9yIChhdXRvIHNpbmsg
OiBtX3NpbmtzKQotICAgICAgICAgICAgc2luay0+T25EYXRhKG1fYXVkaW9CdWZmZXIuZGF0YSgp
LCBMaWJXZWJSVENBdWRpb0Zvcm1hdDo6c2FtcGxlU2l6ZSwgbV9vdXRwdXRTdHJlYW1EZXNjcmlw
dGlvbi5zYW1wbGVSYXRlKCksIG1fb3V0cHV0U3RyZWFtRGVzY3JpcHRpb24ubnVtYmVyT2ZDaGFu
bmVscygpLCBjaHVua1NhbXBsZUNvdW50KTsKLSAgICB9KTsKLX0KLQogYm9vbCBSZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYTo6aXNSZWFjaGluZ0J1ZmZlcmVkQXVkaW9EYXRhSGlnaExp
bWl0KCkKIHsKICAgICBhdXRvIHdyaXR0ZW5BdWRpb0R1cmF0aW9uID0gbV93cml0ZUNvdW50IC8g
bV9pbnB1dFN0cmVhbURlc2NyaXB0aW9uLnNhbXBsZVJhdGUoKTsKQEAgLTE1Myw2ICsxMjksOSBA
QCB2b2lkIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hOjpwdWxsQXVkaW9EYXRhKCkK
ICAgICBidWZmZXJMaXN0Lm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgPSBidWZmZXJTaXplOwog
ICAgIGJ1ZmZlckxpc3QubUJ1ZmZlcnNbMF0ubURhdGEgPSBtX2F1ZGlvQnVmZmVyLmRhdGEoKTsK
IAorICAgIGlmIChpc1NpbGVuY2VkKCkgIT0gIG1fc2FtcGxlQ29udmVydGVyLT5tdXRlZCgpKQor
ICAgICAgICBtX3NhbXBsZUNvbnZlcnRlci0+c2V0TXV0ZWQoaXNTaWxlbmNlZCgpKTsKKwogICAg
IG1fc2FtcGxlQ29udmVydGVyLT5wdWxsQXZhbGFpYmxlU2FtcGxlc0FzQ2h1bmtzKGJ1ZmZlckxp
c3QsIGNodW5rU2FtcGxlQ291bnQsIG1fcmVhZENvdW50LCBbdGhpcywgY2h1bmtTYW1wbGVDb3Vu
dF0gewogICAgICAgICBtX3JlYWRDb3VudCArPSBjaHVua1NhbXBsZUNvdW50OwogICAgICAgICBm
b3IgKGF1dG8gc2luayA6IG1fc2lua3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2EuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5n
QXVkaW9Tb3VyY2VDb2NvYS5oCmluZGV4IDc2ZmE1YWQwMDJhMDhkZDMzMTkwNDczYmVlMjJlZGY2
MzIyMjQ3ZTkuLjg1MDBjNTNmMmY0YjBmYTk5NmQxN2VkNjdhNzcwOGMxMDQwNzY2MTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91
dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVkaW9Tb3VyY2VDb2NvYS5oCkBAIC01Miw5
ICs1Miw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHB1bGxBdWRpb0RhdGEoKSBmaW5hbDsKIAot
ICAgIHZvaWQgaGFuZGxlTXV0ZWRJZk5lZWRlZCgpIGZpbmFsOwotICAgIHZvaWQgc2VuZFNpbGVu
Y2UoKSBmaW5hbDsKLQogICAgIFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1fc2FtcGxlQ29u
dmVydGVyOwogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2lucHV0U3RyZWFtRGVzY3Jp
cHRpb247CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fb3V0cHV0U3RyZWFtRGVzY3Jp
cHRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KaW5k
ZXggNzFjN2UyMmUwZDM4MGZkZmFiMjhjYzFjYjg4NDhhMjU4YTc3N2ZiNy4uZDRlOTczYjk5Mjhm
OGViZTk0OTZiM2ZhYjk2NzE5NjMzODBhODhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtMTU5LDggKzE1OSwxMSBAQCB2b2lkIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByZXBhcmUoKQogICAgIH0KIH0KIAotdm9pZCBXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJiwgY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgUGxhdGZvcm1BdWRpb0Rh
dGEmIGRhdGEsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBzaXpl
X3QgZnJhbWVDb3VudCkKK3ZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmF1ZGlv
U2FtcGxlc0F2YWlsYWJsZShNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYgdHJhY2ssIGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgc2l6ZV90IGZyYW1lQ291bnQpCiB7CisgICAgaWYg
KCF0cmFjay5lbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIEFTU0VSVChkZXNjcmlw
dGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpD
QUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKICAgICBhdXRvJiBiYXNpY0Rlc2NyaXB0aW9uID0gKldU
Rjo6Z2V0PGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbio+KGRlc2NyaXB0aW9uLnBs
YXRmb3JtRGVzY3JpcHRpb24oKS5kZXNjcmlwdGlvbik7CiAgICAgaWYgKCFtX2lucHV0RGVzY3Jp
cHRpb24gfHwgbV9pbnB1dERlc2NyaXB0aW9uLT5zdHJlYW1EZXNjcmlwdGlvbigpICE9IGJhc2lj
RGVzY3JpcHRpb24pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTAyMjFjY2JiZmVhYjE1OWQ0MWRjNGEwYjMzZGYxOGEwZTM4
NWRlNC4uNThiY2JkZTIxNTZmMzk5NjQ2MWU2M2UwMzY5ZDNhMDkxOGFkNWEyYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDE4LTA3LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWJSVEMgTWVkaWFTdHJlYW1UcmFjayBFbmFibGUgLyBEaXNhYmxlIGNh
dXNlcyB2aWRlbyBkZWxheSAvIGxhZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg2ODg5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MTM3MDI4NT4K
KworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVGVzdCBpcyBu
byBsb25nZXIgdmFsaWQgc2luY2Ugd2UgYXJlIG5vdyBzZW5kaW5nIDAgYnl0ZXMgZm9yIGF1ZGlv
IHRyYWNrcy4KKworICAgICAgICAqIHdlYnJ0Yy9hdWRpby1tdXRlZC1zdGF0czItZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIHdlYnJ0Yy9hdWRpby1tdXRlZC1zdGF0czIuaHRtbDog
UmVtb3ZlZC4KKwogMjAxOC0wNy0wNiAgRGF2aWQgRmVudG9uICA8ZGF2aWRfZmVudG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBMYXlvdXQgVGVzdCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pbnRlcmZhY2VzLmFueS53b3JrZXIuaHRtbCBpcyBmbGFreS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9hdWRpby1tdXRlZC1zdGF0czItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2VicnRjL2F1ZGlvLW11dGVkLXN0YXRzMi1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyMWI1ZmYxN2I2NDQzOWEwNDhhN2U3MmI0ZWFj
Y2IzYWMxZmVkNzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvd2VicnRjL2F1ZGlvLW11dGVkLXN0YXRzMi1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotUEFTUyBBdWRpbyBzaWxlbnQgZGF0YSBub3Qg
YmVpbmcgc2VudCBpbiBjYXNlIHRyYWNrIGlzIG11dGVkIGZyb20gdGhlIHN0YXJ0IAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvYXVkaW8tbXV0ZWQtc3RhdHMyLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJydGMvYXVkaW8tbXV0ZWQtc3RhdHMyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc4OWExYjIwYTNiYTI0ZmU4MWVhZjdjNTA1YjJiMGVmMjZjZGMxMmIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
d2VicnRjL2F1ZGlvLW11dGVkLXN0YXRzMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAs
MCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgotICAgICAgICA8dGl0bGU+VGVzdGluZyBiYXNpYyB2aWRlbyBleGNo
YW5nZSBmcm9tIG9mZmVyZXIgdG8gcmVjZWl2ZXI8L3RpdGxlPgotICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci0gICAg
PC9oZWFkPgotICAgIDxib2R5PgotICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48
L3NjcmlwdD4KLSAgICAgICAgPHNjcmlwdD4KLWZ1bmN0aW9uIGdldE91dGJvdW5kUlRQU3RhdHMo
Y29ubmVjdGlvbikKLXsKLSAgICByZXR1cm4gY29ubmVjdGlvbi5nZXRTdGF0cygpLnRoZW4oKHJl
cG9ydCkgPT4gewotICAgICAgICB2YXIgc3RhdHM7Ci0gICAgICAgIHJlcG9ydC5mb3JFYWNoKChz
dGF0SXRlbSkgPT4gewotICAgICAgICAgICAgaWYgKHN0YXRJdGVtLnR5cGUgPT09ICJvdXRib3Vu
ZC1ydHAiKSB7Ci0gICAgICAgICAgICAgICAgc3RhdHMgPSBzdGF0SXRlbTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSk7Ci0gICAgICAgIHJldHVybiBzdGF0czsKLSAgICB9KTsKLX0KLQotZnVu
Y3Rpb24gY2hlY2tPdXRib3VuZEJ5dGVzU2VudE5vdEluY3JlYXNpbmcoZmlyc3RDb25uZWN0aW9u
LCBzdGF0c0ZpcnN0Q29ubmVjdGlvbiwgY291bnQpCi17Ci0gICAgcmV0dXJuIGdldE91dGJvdW5k
UlRQU3RhdHMoZmlyc3RDb25uZWN0aW9uKS50aGVuKChzdGF0cykgPT4gewotICAgICAgIGlmIChz
dGF0cy5ieXRlc1NlbnQgPiBzdGF0c0ZpcnN0Q29ubmVjdGlvbi5ieXRlc1NlbnQpCi0gICAgICAg
ICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoIm91dGJvdW5kIHN0YXRzIGJ5dGVzIHNlbnQgaW5j
cmVhc2luZyIpOwotICAgICAgICBpZiAoKytjb3VudCA9PT0gMTApCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIHJldHVybiB3YWl0Rm9yKDUwKS50aGVuKCgpID0+IHsKLSAgICAgICAgICAg
IHJldHVybiBjaGVja091dGJvdW5kQnl0ZXNTZW50Tm90SW5jcmVhc2luZyhmaXJzdENvbm5lY3Rp
b24sIHN0YXRzRmlyc3RDb25uZWN0aW9uLCBjb3VudCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwot
fQotCi12YXIgdHJhY2ssIGZpcnN0Q29ubmVjdGlvbjsKLXByb21pc2VfdGVzdCgodGVzdCkgPT4g
ewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uKHRydWUpOwotCi0gICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZ2V0VXNlck1lZGlhKHsgYXVkaW86IHRydWV9KS50aGVuKChzdHJlYW0pID0+IHsKLQl0cmFj
ayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwotCXRyYWNrLmVuYWJsZWQgPSBmYWxzZTsK
LSAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAg
ICAgICAgIGNyZWF0ZUNvbm5lY3Rpb25zKChjb25uZWN0aW9uKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgZmlyc3RDb25uZWN0aW9uID0gY29ubmVjdGlvbjsKLSAgICAgICAgICAgICAgICBmaXJzdENv
bm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7Ci0gICAgICAgICAgICB9LCAoY29ubmVj
dGlvbikgPT4gewotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24ub250cmFjayA9IHJlc29sdmU7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJU
ZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKLSAgICAgICAgfSk7Ci0gICAgfSkudGhlbigoKSA9PiB7
Ci0gICAgICAgIHJldHVybiBnZXRPdXRib3VuZFJUUFN0YXRzKGZpcnN0Q29ubmVjdGlvbik7Ci0g
ICAgfSkudGhlbigoc3RhdHMpID0+IHsKLSAgICAgICAgc3RhdHNGaXJzdENvbm5lY3Rpb24gPSBz
dGF0czsKLSAgICAgICAgcmV0dXJuIGNoZWNrT3V0Ym91bmRCeXRlc1NlbnROb3RJbmNyZWFzaW5n
KGZpcnN0Q29ubmVjdGlvbiwgc3RhdHNGaXJzdENvbm5lY3Rpb24sIDApOwotICAgIH0pOwotfSwg
IkF1ZGlvIHNpbGVudCBkYXRhIG5vdCBiZWluZyBzZW50IGluIGNhc2UgdHJhY2sgaXMgbXV0ZWQg
ZnJvbSB0aGUgc3RhcnQiKTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1s
Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>