<?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>214860</bug_id>
          
          <creation_ts>2020-07-27 16:48:23 -0700</creation_ts>
          <short_desc>[EventSource] WebKit fails to UTF-8 encode the Last-Event-ID HTTP header value</short_desc>
          <delta_ts>2020-07-28 16:15:17 -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>WebCore Misc.</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://html.spec.whatwg.org/multipage/server-sent-events.html#reestablish-the-connection</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>ap</cc>
    
    <cc>darin</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>ggaren</cc>
    
    <cc>mjs</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1675452</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 16:48:23 -0700</bug_when>
    <thetext>WebKit fails to UTF-8 encode the Last-Event-ID HTTP header value for EventSource.

The specification is here:
https://html.spec.whatwg.org/multipage/server-sent-events.html#reestablish-the-connection (step 5.3.)

This is causing us to fail a couple of EventSource web-platform-tests which are passing is both Chrome &amp; Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675455</commentid>
    <comment_count>1</comment_count>
      <attachid>405329</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 16:49:57 -0700</bug_when>
    <thetext>Created attachment 405329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675456</commentid>
    <comment_count>2</comment_count>
      <attachid>405330</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 16:50:34 -0700</bug_when>
    <thetext>Created attachment 405330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675458</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 16:51:41 -0700</bug_when>
    <thetext>C.f. https://wpt.fyi/results/eventsource/format-field-id.htm?label=master&amp;product=safari&amp;product=chrome&amp;product=firefox&amp;q=%28safari%3A%21pass%26safari%3A%21ok%29%20%28chrome%3Apass%7Cchrome%3Aok%29%20%28firefox%3Apass%7Cfirefox%3Aok%29%20%28webkitgtk%3Apass%7Cwebkitgtk%3Aok%29</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675459</commentid>
    <comment_count>4</comment_count>
      <attachid>405330</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-27 16:53:11 -0700</bug_when>
    <thetext>Comment on attachment 405330
Patch

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

&gt; Source/WebCore/page/EventSource.cpp:106
&gt; +        // Specification says this needs to be UTF8-encoded.
&gt; +        auto lastEventID = m_lastEventId.utf8();
&gt; +        request.setHTTPHeaderField(HTTPHeaderName::LastEventID, String(reinterpret_cast&lt;const LChar*&gt;(lastEventID.data()), lastEventID.length()));

This is not the correct way to do this. We should never have a WTF::String with characters that are UTF-8 encoded. It’s *defined* as Latin-1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675461</commentid>
    <comment_count>5</comment_count>
      <attachid>405330</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-27 16:53:52 -0700</bug_when>
    <thetext>Comment on attachment 405330
Patch

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

&gt;&gt; Source/WebCore/page/EventSource.cpp:106
&gt;&gt; +        request.setHTTPHeaderField(HTTPHeaderName::LastEventID, String(reinterpret_cast&lt;const LChar*&gt;(lastEventID.data()), lastEventID.length()));
&gt; 
&gt; This is not the correct way to do this. We should never have a WTF::String with characters that are UTF-8 encoded. It’s *defined* as Latin-1.

Where is the code that converts the String into either a CFString or into bytes that go on the wire?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675462</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 16:55:41 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 405330 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=405330&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/page/EventSource.cpp:106
&gt; &gt;&gt; +        request.setHTTPHeaderField(HTTPHeaderName::LastEventID, String(reinterpret_cast&lt;const LChar*&gt;(lastEventID.data()), lastEventID.length()));
&gt; &gt; 
&gt; &gt; This is not the correct way to do this. We should never have a WTF::String with characters that are UTF-8 encoded. It’s *defined* as Latin-1.
&gt; 
&gt; Where is the code that converts the String into either a CFString or into
&gt; bytes that go on the wire?

I believe this would be ResourceRequest::doUpdatePlatformRequest() in ResourceRequestCocoa.mm:

    for (const auto&amp; header : httpHeaderFields())
        [nsRequest setValue:header.value forHTTPHeaderField:header.key];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675463</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 16:57:47 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to Darin Adler from comment #5)
&gt; &gt; Comment on attachment 405330 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=405330&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/page/EventSource.cpp:106
&gt; &gt; &gt;&gt; +        request.setHTTPHeaderField(HTTPHeaderName::LastEventID, String(reinterpret_cast&lt;const LChar*&gt;(lastEventID.data()), lastEventID.length()));
&gt; &gt; &gt; 
&gt; &gt; &gt; This is not the correct way to do this. We should never have a WTF::String with characters that are UTF-8 encoded. It’s *defined* as Latin-1.
&gt; &gt; 
&gt; &gt; Where is the code that converts the String into either a CFString or into
&gt; &gt; bytes that go on the wire?
&gt; 
&gt; I believe this would be ResourceRequest::doUpdatePlatformRequest() in
&gt; ResourceRequestCocoa.mm:
&gt; 
&gt;     for (const auto&amp; header : httpHeaderFields())
&gt;         [nsRequest setValue:header.value forHTTPHeaderField:header.key];

Do you think we should special-case Last-Event-ID in ResourceRequest::doUpdatePlatformRequest() instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675469</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-27 17:02:55 -0700</bug_when>
    <thetext>I started talking about this in Slack:

The bug seems to be in the CFNetwork layer.

When converting the WTF::String to the CFString the characters are not in any particular encoding; conceptually they are represented as a sequence of UTF-16 code units (although CFString can store them in whatever way it likes internally).

Converting the CFString to bytes to go on the wire is done inside CFNetwork; apparently incorrectly if it’s not using UTF-8!

Making a CFString that has UTF-16 code units that are actually UTF-8 code units with the high bytes set to zero is a possible way to work around that CFNetwork issue, I guess, but a dangerous workaround. It would be broken if CFNetwork was ever fixed to correctly encode strings as UTF-8 (the string would be double-encoded).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675473</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-27 17:12:58 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; I started talking about this in Slack:
&gt; 
&gt; The bug seems to be in the CFNetwork layer.
&gt; 
&gt; When converting the WTF::String to the CFString the characters are not in
&gt; any particular encoding; conceptually they are represented as a sequence of
&gt; UTF-16 code units (although CFString can store them in whatever way it likes
&gt; internally).
&gt; 
&gt; Converting the CFString to bytes to go on the wire is done inside CFNetwork;
&gt; apparently incorrectly if it’s not using UTF-8!
&gt; 
&gt; Making a CFString that has UTF-16 code units that are actually UTF-8 code
&gt; units with the high bytes set to zero is a possible way to work around that
&gt; CFNetwork issue, I guess, but a dangerous workaround. It would be broken if
&gt; CFNetwork was ever fixed to correctly encode strings as UTF-8 (the string
&gt; would be double-encoded).

I am not convinced this is a CFNetwork bug. Headers are ISO-8859-1 encoded as per RFC:
- https://tools.ietf.org/html/rfc7230#section-3.2.4
&quot;&quot;&quot;
Historically, HTTP has allowed field content with text in the
   ISO-8859-1 charset [ISO-8859-1], supporting other charsets only
   through use of [RFC2047] encoding.  In practice, most HTTP header
   field values use only a subset of the US-ASCII charset [USASCII].
   Newly defined header fields SHOULD limit their field values to
   US-ASCII octets.  A recipient SHOULD treat other octets in field
   content (obs-text) as opaque data.
&quot;&quot;&quot;

Here, it is the HTML specification that is enforcing that we use UTF-8 encoding to this particular header value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675485</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-07-27 18:06:35 -0700</bug_when>
    <thetext>rdar://problem/13799963</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675486</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-07-27 18:08:29 -0700</bug_when>
    <thetext>I don&apos;t think that it&apos;s a CFNetwork *bug*, but I think that there should be a way to get this via API cleanly, see rdar://problem/13800011.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675745</commentid>
    <comment_count>12</comment_count>
      <attachid>405397</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-28 12:54:15 -0700</bug_when>
    <thetext>Created attachment 405397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675748</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-28 12:59:46 -0700</bug_when>
    <thetext>As discussed on Slack, it is not safe to UTF-8 encode all header and is causing some test failures (Those tests seem to pass various octet sequences for a custom header and do not expect the value to be UTF-8 encoded).

The HTTP RFC suggests that any octet is valid in header field value (in theory), that historically it was Latin1, and that new header fields SHOULD only use US-ASCII</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675797</commentid>
    <comment_count>14</comment_count>
      <attachid>405397</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-28 14:20:53 -0700</bug_when>
    <thetext>Comment on attachment 405397
Patch

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

&gt; Source/WebCore/platform/network/cocoa/ResourceRequestCocoa.mm:198
&gt; +        [nsRequest setValue:encodedValue.bridgingAutorelease() forHTTPHeaderField:header.key];

This will cause a spike in the autoreleasepool size.  Why not just encodedValue.get()?  Then it&apos;s immediately released after use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675800</commentid>
    <comment_count>15</comment_count>
      <attachid>405397</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-28 14:24:13 -0700</bug_when>
    <thetext>Comment on attachment 405397
Patch

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

&gt; Source/WebCore/platform/network/cf/ResourceRequestCFNet.h:91
&gt; +        // HTTP headers are normally latin1 but the HTML specification says to use UTF-8 encoding for the Last-Event-ID header value.

Latin-1, not &quot;latin1&quot;.

Missing second half of the comment. Something like this:

// Constructing a string with the UTF-8 bytes but claiming that it’s Latin-1 is the way to get CFNetwork to put those UTF-8 bytes on the wire.

&gt; Source/WebCore/platform/network/cocoa/ResourceRequestCocoa.mm:198
&gt; +        [nsRequest setValue:encodedValue.bridgingAutorelease() forHTTPHeaderField:header.key];

Slightly wasteful to use autorelease here. We do need bridging, but not autorelease. Could write (__bridge CFStringRef)encodedValue.get() but it would be even better if it could be done more elegantly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675805</commentid>
    <comment_count>16</comment_count>
      <attachid>405415</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-28 14:37:48 -0700</bug_when>
    <thetext>Created attachment 405415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675851</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-28 16:15:17 -0700</bug_when>
    <thetext>Committed r265014: &lt;https://trac.webkit.org/changeset/265014&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405415.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405329</attachid>
            <date>2020-07-27 16:49:57 -0700</date>
            <delta_ts>2020-07-27 16:50:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214860-20200727164956.patch</filename>
            <type>text/plain</type>
            <size>4212</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE2ZTU3MGIzMTBhNGRm
ZGI1ZWFhNWU2YzNlMjFlNmM1OGMxMzU3Ny4uOWJmN2Q5NDM4YjJlZDkwMmQyY2NmZDdhYThkYjc3
ZDYzY2EzMzM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA3LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0V2ZW50U291cmNlXSBXZWJL
aXQgZmFpbHMgdG8gVVRGLTggZW5jb2RlIHRoZSBMYXN0LUV2ZW50LUlEIEhUVFAgaGVhZGVyIHZh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ4
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJL
aXQgZmFpbHMgdG8gVVRGLTggZW5jb2RlIHRoZSBMYXN0LUV2ZW50LUlEIEhUVFAgaGVhZGVyIHZh
bHVlIGZvciBFdmVudFNvdXJjZS4KKworICAgICAgICBUaGUgc3BlY2lmaWNhdGlvbiBpcyBoZXJl
OgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zZXJ2ZXIt
c2VudC1ldmVudHMuaHRtbCNyZWVzdGFibGlzaC10aGUtY29ubmVjdGlvbiAoc3RlcCA1LjMuKQor
CisgICAgICAgIFRoaXMgaXMgY2F1c2luZyB1cyB0byBmYWlsIGEgY291cGxlIG9mIEV2ZW50U291
cmNlIHdlYi1wbGF0Zm9ybS10ZXN0cyB3aGljaCBhcmUgcGFzc2luZyBpcyBib3RoIENocm9tZSAm
IEZpcmVmb3guCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRTb3VyY2U6OmNvbm5lY3QpOgorCiAyMDIwLTA3LTI3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgdGhpc1ZhbHVlIGlzIG5vdCBhbHdheXMgc2V0IGNv
cnJlY3RseSB3aGVuIGNhbGxpbmcgSlMgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3Vy
Y2UuY3BwCmluZGV4IDc1Nzc2NWMzYjQ4NzJkNWE2ZjkyYjM0ZTNmMmFjNjdlYWFmMmRkODIuLjI5
NDA2NjE0NzY3MTkyNjFmMThlZjUxZDMxN2FkYWRjMWIzNDZiNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuY3BwCkBAIC0xMDAsOCArMTAwLDExIEBAIHZvaWQgRXZlbnRTb3VyY2U6OmNv
bm5lY3QoKQogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiR0VUIik7CiAgICAgcmVxdWVzdC5z
ZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2VwdCwgInRleHQvZXZlbnQtc3Ry
ZWFtIik7CiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNh
Y2hlQ29udHJvbCwgIm5vLWNhY2hlIik7Ci0gICAgaWYgKCFtX2xhc3RFdmVudElkLmlzRW1wdHko
KSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6Okxh
c3RFdmVudElELCBtX2xhc3RFdmVudElkKTsKKyAgICBpZiAoIW1fbGFzdEV2ZW50SWQuaXNFbXB0
eSgpKSB7CisgICAgICAgIC8vIFNwZWNpZmljYXRpb24gc2F5cyB0aGlzIG5lZWRzIHRvIGJlIFVU
RjgtZW5jb2RlZC4KKyAgICAgICAgYXV0byBsYXN0RXZlbnRJRCA9IG1fbGFzdEV2ZW50SWQudXRm
OCgpOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
TGFzdEV2ZW50SUQsIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4obGFzdEV2
ZW50SUQuZGF0YSgpKSwgbGFzdEV2ZW50SUQubGVuZ3RoKCkpKTsKKyAgICB9CiAKICAgICBUaHJl
YWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFj
a3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCAyYTc1YmUwYWEwY2Q2NDRhNzU0ZmI4MmQ1OTI2MmY1MzczNGYzNDlj
Li5hNjIwZDdhMDA4OTVmYmYxOWNiNzZlODJlYmRlMTcxNmQ3ZTc4NTBiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0yNyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtFdmVudFNvdXJjZV0gV2ViS2l0IGZh
aWxzIHRvIFVURi04IGVuY29kZSB0aGUgTGFzdC1FdmVudC1JRCBIVFRQIGhlYWRlciB2YWx1ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0ODYwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGlu
ZSBhIGNvdXBsZSBvZiB3ZWItcGxhdGZvcm0tdGVzdHMgdGhhdCBhcmUgbm93IHBhc3NpbmcuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxkLWlk
LTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJj
ZS9mb3JtYXQtZmllbGQtaWQtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA3LTI3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgdGhpc1ZhbHVlIGlzIG5vdCBhbHdheXMg
c2V0IGNvcnJlY3RseSB3aGVuIGNhbGxpbmcgSlMgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2Zvcm1h
dC1maWVsZC1pZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxkLWlkLTItZXhwZWN0ZWQudHh0
CmluZGV4IDM1NTMwNGFiMjg5NTM4MjQyNzE0OTcxNzVlN2Y5OTUyMTkyMTA0YTguLjRmMjE3MTY2
MGNjNmI0ZWZhMzQxZTk0NTVkZGFhZWEzMzdiZGQwYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxk
LWlkLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxkLWlkLTItZXhwZWN0ZWQudHh0CkBA
IC0xLDMgKzEsMyBAQAogCi1GQUlMIEV2ZW50U291cmNlOiBMYXN0LUV2ZW50LUlEICgyKSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiaGVsbG8iIGJ1dCBnb3QgIuKApiIKK1BBU1MgRXZlbnRTb3Vy
Y2U6IExhc3QtRXZlbnQtSUQgKDIpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2Zvcm1hdC1maWVsZC1pZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2
ZW50c291cmNlL2Zvcm1hdC1maWVsZC1pZC1leHBlY3RlZC50eHQKaW5kZXggZTkxOTExOWQxNGMx
YzMyZmIxYThjZjFkMzQ5YzI2M2ViMjIxODFiNC4uYTU4MDMxMTI0NTM0ZGU0YzM1OTY5YmQxMGI4
MWQ3YTVjNGVjN2Y3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQtaWQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3Vy
Y2UvZm9ybWF0LWZpZWxkLWlkLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBF
dmVudFNvdXJjZTogTGFzdC1FdmVudC1JRCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaGVsbG8i
IGJ1dCBnb3QgIuKApiIKK1BBU1MgRXZlbnRTb3VyY2U6IExhc3QtRXZlbnQtSUQgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405330</attachid>
            <date>2020-07-27 16:50:34 -0700</date>
            <delta_ts>2020-07-28 12:54:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214860-20200727165033.patch</filename>
            <type>text/plain</type>
            <size>4212</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE2ZTU3MGIzMTBhNGRm
ZGI1ZWFhNWU2YzNlMjFlNmM1OGMxMzU3Ny4uNGM1MjRkMzA4ODI3OGVjYTE3NzY5MjUxZjM1ZGVk
YWVlNjk1MmY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA3LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0V2ZW50U291cmNlXSBXZWJL
aXQgZmFpbHMgdG8gVVRGLTggZW5jb2RlIHRoZSBMYXN0LUV2ZW50LUlEIEhUVFAgaGVhZGVyIHZh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ4
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJL
aXQgZmFpbHMgdG8gVVRGLTggZW5jb2RlIHRoZSBMYXN0LUV2ZW50LUlEIEhUVFAgaGVhZGVyIHZh
bHVlIGZvciBFdmVudFNvdXJjZS4KKworICAgICAgICBUaGUgc3BlY2lmaWNhdGlvbiBpcyBoZXJl
OgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zZXJ2ZXIt
c2VudC1ldmVudHMuaHRtbCNyZWVzdGFibGlzaC10aGUtY29ubmVjdGlvbiAoc3RlcCA1LjMuKQor
CisgICAgICAgIFRoaXMgaXMgY2F1c2luZyB1cyB0byBmYWlsIGEgY291cGxlIG9mIEV2ZW50U291
cmNlIHdlYi1wbGF0Zm9ybS10ZXN0cyB3aGljaCBhcmUgcGFzc2luZyBpbiBib3RoIENocm9tZSAm
IEZpcmVmb3guCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRTb3VyY2U6OmNvbm5lY3QpOgorCiAyMDIwLTA3LTI3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgdGhpc1ZhbHVlIGlzIG5vdCBhbHdheXMgc2V0IGNv
cnJlY3RseSB3aGVuIGNhbGxpbmcgSlMgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3Vy
Y2UuY3BwCmluZGV4IDc1Nzc2NWMzYjQ4NzJkNWE2ZjkyYjM0ZTNmMmFjNjdlYWFmMmRkODIuLjI5
NDA2NjE0NzY3MTkyNjFmMThlZjUxZDMxN2FkYWRjMWIzNDZiNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRTb3VyY2UuY3BwCkBAIC0xMDAsOCArMTAwLDExIEBAIHZvaWQgRXZlbnRTb3VyY2U6OmNv
bm5lY3QoKQogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiR0VUIik7CiAgICAgcmVxdWVzdC5z
ZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2VwdCwgInRleHQvZXZlbnQtc3Ry
ZWFtIik7CiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkNh
Y2hlQ29udHJvbCwgIm5vLWNhY2hlIik7Ci0gICAgaWYgKCFtX2xhc3RFdmVudElkLmlzRW1wdHko
KSkKLSAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6Okxh
c3RFdmVudElELCBtX2xhc3RFdmVudElkKTsKKyAgICBpZiAoIW1fbGFzdEV2ZW50SWQuaXNFbXB0
eSgpKSB7CisgICAgICAgIC8vIFNwZWNpZmljYXRpb24gc2F5cyB0aGlzIG5lZWRzIHRvIGJlIFVU
RjgtZW5jb2RlZC4KKyAgICAgICAgYXV0byBsYXN0RXZlbnRJRCA9IG1fbGFzdEV2ZW50SWQudXRm
OCgpOworICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
TGFzdEV2ZW50SUQsIFN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4obGFzdEV2
ZW50SUQuZGF0YSgpKSwgbGFzdEV2ZW50SUQubGVuZ3RoKCkpKTsKKyAgICB9CiAKICAgICBUaHJl
YWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFj
a3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCAyYTc1YmUwYWEwY2Q2NDRhNzU0ZmI4MmQ1OTI2MmY1MzczNGYzNDlj
Li5hNjIwZDdhMDA4OTVmYmYxOWNiNzZlODJlYmRlMTcxNmQ3ZTc4NTBiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0yNyAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtFdmVudFNvdXJjZV0gV2ViS2l0IGZh
aWxzIHRvIFVURi04IGVuY29kZSB0aGUgTGFzdC1FdmVudC1JRCBIVFRQIGhlYWRlciB2YWx1ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0ODYwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGlu
ZSBhIGNvdXBsZSBvZiB3ZWItcGxhdGZvcm0tdGVzdHMgdGhhdCBhcmUgbm93IHBhc3NpbmcuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxkLWlk
LTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJj
ZS9mb3JtYXQtZmllbGQtaWQtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA3LTI3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgdGhpc1ZhbHVlIGlzIG5vdCBhbHdheXMg
c2V0IGNvcnJlY3RseSB3aGVuIGNhbGxpbmcgSlMgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2Zvcm1h
dC1maWVsZC1pZC0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxkLWlkLTItZXhwZWN0ZWQudHh0
CmluZGV4IDM1NTMwNGFiMjg5NTM4MjQyNzE0OTcxNzVlN2Y5OTUyMTkyMTA0YTguLjRmMjE3MTY2
MGNjNmI0ZWZhMzQxZTk0NTVkZGFhZWEzMzdiZGQwYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxk
LWlkLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxkLWlkLTItZXhwZWN0ZWQudHh0CkBA
IC0xLDMgKzEsMyBAQAogCi1GQUlMIEV2ZW50U291cmNlOiBMYXN0LUV2ZW50LUlEICgyKSBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiaGVsbG8iIGJ1dCBnb3QgIuKApiIKK1BBU1MgRXZlbnRTb3Vy
Y2U6IExhc3QtRXZlbnQtSUQgKDIpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2Zvcm1hdC1maWVsZC1pZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2
ZW50c291cmNlL2Zvcm1hdC1maWVsZC1pZC1leHBlY3RlZC50eHQKaW5kZXggZTkxOTExOWQxNGMx
YzMyZmIxYThjZjFkMzQ5YzI2M2ViMjIxODFiNC4uYTU4MDMxMTI0NTM0ZGU0YzM1OTY5YmQxMGI4
MWQ3YTVjNGVjN2Y3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQtaWQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3Vy
Y2UvZm9ybWF0LWZpZWxkLWlkLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBF
dmVudFNvdXJjZTogTGFzdC1FdmVudC1JRCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaGVsbG8i
IGJ1dCBnb3QgIuKApiIKK1BBU1MgRXZlbnRTb3VyY2U6IExhc3QtRXZlbnQtSUQgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405397</attachid>
            <date>2020-07-28 12:54:15 -0700</date>
            <delta_ts>2020-07-28 14:37:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214860-20200728125414.patch</filename>
            <type>text/plain</type>
            <size>6935</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE2ZTU3MGIzMTBhNGRm
ZGI1ZWFhNWU2YzNlMjFlNmM1OGMxMzU3Ny4uM2UzMzdmYzc1MGZhYzk2NmViZDA2MGZhZGRjNzNi
NTAxYzAxM2I3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA3LTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0V2ZW50U291cmNlXSBXZWJL
aXQgZmFpbHMgdG8gVVRGLTggZW5jb2RlIHRoZSBMYXN0LUV2ZW50LUlEIEhUVFAgaGVhZGVyIHZh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ4
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJL
aXQgZmFpbHMgdG8gVVRGLTggZW5jb2RlIHRoZSBMYXN0LUV2ZW50LUlEIEhUVFAgaGVhZGVyIHZh
bHVlIGZvciBFdmVudFNvdXJjZS4KKworICAgICAgICBUaGUgc3BlY2lmaWNhdGlvbiBpcyBoZXJl
OgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zZXJ2ZXIt
c2VudC1ldmVudHMuaHRtbCNyZWVzdGFibGlzaC10aGUtY29ubmVjdGlvbiAoc3RlcCA1LjMuKQor
CisgICAgICAgIFRoaXMgaXMgY2F1c2luZyB1cyB0byBmYWlsIGEgY291cGxlIG9mIEV2ZW50U291
cmNlIHdlYi1wbGF0Zm9ybS10ZXN0cyB3aGljaCBhcmUgcGFzc2luZyBpbiBib3RoIENocm9tZSAm
IEZpcmVmb3guCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0
ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZO
ZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0SGVhZGVyRmllbGRzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpodHRwSGVhZGVyVmFsdWVVc2luZ1N1aXRhYmxlRW5jb2RpbmcpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KToKKwogMjAy
MC0wNy0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIHRoaXNW
YWx1ZSBpcyBub3QgYWx3YXlzIHNldCBjb3JyZWN0bHkgd2hlbiBjYWxsaW5nIEpTIGNhbGxiYWNr
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZVJlcXVlc3RDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlUmVxdWVzdENGTmV0LmNwcAppbmRleCAzMjVkMDYwMjBiYjQzNDE1NWJlMjY4MTdmN2Qx
MmYyMWMzNTU5YjRhLi5kMmQwOTNjM2MzMjAwNzNiNmE1YWFiZTkzZDBjZmZmYTkxZTk1MmJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVx
dWVzdENGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlUmVxdWVzdENGTmV0LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBzZXRIZWFkZXJGaWVsZHMoQ0ZNdXRhYmxlVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBjb25z
dCBIVFRQSGVhCiAgICAgfQogCiAgICAgZm9yIChjb25zdCBhdXRvJiBoZWFkZXIgOiByZXF1ZXN0
SGVhZGVycykKLSAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0SFRUUEhlYWRlckZpZWxkVmFsdWUocmVx
dWVzdCwgaGVhZGVyLmtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBoZWFkZXIudmFsdWUuY3Jl
YXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgICAgIENGVVJMUmVxdWVzdFNldEhUVFBIZWFkZXJG
aWVsZFZhbHVlKHJlcXVlc3QsIGhlYWRlci5rZXkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgaHR0
cEhlYWRlclZhbHVlVXNpbmdTdWl0YWJsZUVuY29kaW5nKGhlYWRlcikuZ2V0KCkpOwogfQogCiBz
dGF0aWMgaW5saW5lIENGVVJMUmVxdWVzdENhY2hlUG9saWN5IHRvUGxhdGZvcm1SZXF1ZXN0Q2Fj
aGVQb2xpY3koUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3kgcG9saWN5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5l
dC5oCmluZGV4IDNjMTU2YzljNmNlYzk0ZGU4Nzg5ODBhMmU3ZmJiZmVlMDNhNGM4OGIuLmZlMDhh
MGY2NzU0OWI1ODBmMzk5NDk1YmQyZDFmMDM4MjE4MGZmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmgK
QEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJIVFRQSGVhZGVy
TWFwLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3RCYXNlLmgiCiAKQEAgLTgzLDQgKzg0LDE0IEBAIGlubGluZSBDRlVSTFJlcXVl
c3RQcmlvcml0eSB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5
IHByaW9yCiAgICAgcmV0dXJuIDA7CiB9CiAKK2lubGluZSBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IGh0dHBIZWFkZXJWYWx1ZVVzaW5nU3VpdGFibGVFbmNvZGluZyhIVFRQSGVhZGVyTWFwOjpjb25z
dF9pdGVyYXRvcjo6S2V5VmFsdWUgaGVhZGVyKQoreworICAgIGlmIChoZWFkZXIua2V5QXNIVFRQ
SGVhZGVyTmFtZSAmJiAqaGVhZGVyLmtleUFzSFRUUEhlYWRlck5hbWUgPT0gSFRUUEhlYWRlck5h
bWU6Okxhc3RFdmVudElEICYmICFoZWFkZXIudmFsdWUuaXNBbGxBU0NJSSgpKSB7CisgICAgICAg
IGF1dG8gdXRmOFZhbHVlID0gaGVhZGVyLnZhbHVlLnV0ZjgoKTsKKyAgICAgICAgLy8gSFRUUCBo
ZWFkZXJzIGFyZSBub3JtYWxseSBsYXRpbjEgYnV0IHRoZSBIVE1MIHNwZWNpZmljYXRpb24gc2F5
cyB0byB1c2UgVVRGLTggZW5jb2RpbmcgZm9yIHRoZSBMYXN0LUV2ZW50LUlEIGhlYWRlciB2YWx1
ZS4KKyAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoQnl0ZXMobnVsbHB0
ciwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVSW50OCo+KHV0ZjhWYWx1ZS5kYXRhKCkpLCB1dGY4
VmFsdWUubGVuZ3RoKCksIGtDRlN0cmluZ0VuY29kaW5nSVNPTGF0aW4xLCBmYWxzZSkpOworICAg
IH0KKyAgICByZXR1cm4gaGVhZGVyLnZhbHVlLmNyZWF0ZUNGU3RyaW5nKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCmluZGV4IDExYzJjZDZm
ZjljZGZkY2M5YmI0OWEzOTI3ODU5YmZjNDRmMDVlYmMuLmY4ZGRmMDQ3YjcxYmRmYWMyOWFmMzU4
ZWZjMzljNjJiNTc1MmUzYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQpAQCAtMTkzLDgg
KzE5MywxMCBAQCB2b2lkIFJlc291cmNlUmVxdWVzdDo6ZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3Qo
KQogICAgIC8vIENhbm5vdCBqdXN0IHVzZSBzZXRBbGxIVFRQSGVhZGVyRmllbGRzIGhlcmUsIGJl
Y2F1c2UgaXQgZG9lcyBub3QgcmVtb3ZlIGhlYWRlcnMuCiAgICAgZm9yIChOU1N0cmluZyAqb2xk
SGVhZGVyTmFtZSBpbiBbbnNSZXF1ZXN0IGFsbEhUVFBIZWFkZXJGaWVsZHNdKQogICAgICAgICBb
bnNSZXF1ZXN0IHNldFZhbHVlOm5pbCBmb3JIVFRQSGVhZGVyRmllbGQ6b2xkSGVhZGVyTmFtZV07
Ci0gICAgZm9yIChjb25zdCBhdXRvJiBoZWFkZXIgOiBodHRwSGVhZGVyRmllbGRzKCkpCi0gICAg
ICAgIFtuc1JlcXVlc3Qgc2V0VmFsdWU6aGVhZGVyLnZhbHVlIGZvckhUVFBIZWFkZXJGaWVsZDpo
ZWFkZXIua2V5XTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGhlYWRlciA6IGh0dHBIZWFkZXJGaWVs
ZHMoKSkgeworICAgICAgICBhdXRvIGVuY29kZWRWYWx1ZSA9IGh0dHBIZWFkZXJWYWx1ZVVzaW5n
U3VpdGFibGVFbmNvZGluZyhoZWFkZXIpOworICAgICAgICBbbnNSZXF1ZXN0IHNldFZhbHVlOmVu
Y29kZWRWYWx1ZS5icmlkZ2luZ0F1dG9yZWxlYXNlKCkgZm9ySFRUUEhlYWRlckZpZWxkOmhlYWRl
ci5rZXldOworICAgIH0KIAogICAgIFtuc1JlcXVlc3Qgc2V0Q29udGVudERpc3Bvc2l0aW9uRW5j
b2RpbmdGYWxsYmFja0FycmF5OmNyZWF0ZU5TQXJyYXkobV9yZXNwb25zZUNvbnRlbnREaXNwb3Np
dGlvbkVuY29kaW5nRmFsbGJhY2tBcnJheSwgW10gKGF1dG8mIG5hbWUpIC0+IE5TTnVtYmVyICog
ewogICAgICAgICBhdXRvIGVuY29kaW5nID0gQ0ZTdHJpbmdDb252ZXJ0RW5jb2RpbmdUb05TU3Ry
aW5nRW5jb2RpbmcoQ0ZTdHJpbmdDb252ZXJ0SUFOQUNoYXJTZXROYW1lVG9FbmNvZGluZyhuYW1l
LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmlu
ZGV4IDJhNzViZTBhYTBjZDY0NGE3NTRmYjgyZDU5MjYyZjUzNzM0ZjM0OWMuLmE2MjBkN2EwMDg5
NWZiZjE5Y2I3NmU4MmViZGUxNzE2ZDdlNzg1MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA3LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgW0V2ZW50U291cmNlXSBXZWJLaXQgZmFpbHMgdG8gVVRGLTgg
ZW5jb2RlIHRoZSBMYXN0LUV2ZW50LUlEIEhUVFAgaGVhZGVyIHZhbHVlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ4NjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWJhc2VsaW5lIGEgY291cGxlIG9m
IHdlYi1wbGF0Zm9ybS10ZXN0cyB0aGF0IGFyZSBub3cgcGFzc2luZy4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQtaWQtMi1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2Zvcm1hdC1maWVs
ZC1pZC1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDctMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICB0aGlzVmFsdWUgaXMgbm90IGFsd2F5cyBzZXQgY29ycmVjdGx5
IHdoZW4gY2FsbGluZyBKUyBjYWxsYmFja3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxkLWlkLTIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQtaWQtMi1leHBlY3RlZC50eHQKaW5kZXggMzU1MzA0
YWIyODk1MzgyNDI3MTQ5NzE3NWU3Zjk5NTIxOTIxMDRhOC4uNGYyMTcxNjYwY2M2YjRlZmEzNDFl
OTQ1NWRkYWFlYTMzN2JkZDBiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQtaWQtMi1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9l
dmVudHNvdXJjZS9mb3JtYXQtZmllbGQtaWQtMi1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBA
CiAKLUZBSUwgRXZlbnRTb3VyY2U6IExhc3QtRXZlbnQtSUQgKDIpIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJoZWxsbyIgYnV0IGdvdCAi4oCmIgorUEFTUyBFdmVudFNvdXJjZTogTGFzdC1FdmVu
dC1JRCAoMikgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxkLWlkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9y
bWF0LWZpZWxkLWlkLWV4cGVjdGVkLnR4dAppbmRleCBlOTE5MTE5ZDE0YzFjMzJmYjFhOGNmMWQz
NDljMjYzZWIyMjE4MWI0Li5hNTgwMzExMjQ1MzRkZTRjMzU5NjliZDEwYjgxZDdhNWM0ZWM3Zjdl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2V2ZW50c291cmNlL2Zvcm1hdC1maWVsZC1pZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9mb3JtYXQtZmll
bGQtaWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIEV2ZW50U291cmNlOiBM
YXN0LUV2ZW50LUlEIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJoZWxsbyIgYnV0IGdvdCAi4oCm
IgorUEFTUyBFdmVudFNvdXJjZTogTGFzdC1FdmVudC1JRCAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405415</attachid>
            <date>2020-07-28 14:37:48 -0700</date>
            <delta_ts>2020-07-28 16:13:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214860-20200728143747.patch</filename>
            <type>text/plain</type>
            <size>6995</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE2ZTU3MGIzMTBhNGRm
ZGI1ZWFhNWU2YzNlMjFlNmM1OGMxMzU3Ny4uZThjZTNhNmYyN2NjNmEyNjg3NGYwOGJmNjBmNzRm
N2U0ZDY1YjI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA3LTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0V2ZW50U291cmNlXSBXZWJL
aXQgZmFpbHMgdG8gVVRGLTggZW5jb2RlIHRoZSBMYXN0LUV2ZW50LUlEIEhUVFAgaGVhZGVyIHZh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ4
NjAKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuIGFuZCBEYXJpbiBBZGxl
ci4KKworICAgICAgICBXZWJLaXQgZmFpbHMgdG8gVVRGLTggZW5jb2RlIHRoZSBMYXN0LUV2ZW50
LUlEIEhUVFAgaGVhZGVyIHZhbHVlIGZvciBFdmVudFNvdXJjZS4KKworICAgICAgICBUaGUgc3Bl
Y2lmaWNhdGlvbiBpcyBoZXJlOgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS9zZXJ2ZXItc2VudC1ldmVudHMuaHRtbCNyZWVzdGFibGlzaC10aGUtY29ubmVj
dGlvbiAoc3RlcCA1LjMuKQorCisgICAgICAgIFRoaXMgaXMgY2F1c2luZyB1cyB0byBmYWlsIGEg
Y291cGxlIG9mIEV2ZW50U291cmNlIHdlYi1wbGF0Zm9ybS10ZXN0cyB3aGljaCBhcmUgcGFzc2lu
ZyBpbiBib3RoIENocm9tZSAmIEZpcmVmb3guCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJh
c2VsaW5lZCBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VSZXF1ZXN0Q0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0SGVhZGVyRmll
bGRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpodHRwSGVhZGVyVmFsdWVVc2luZ1N1aXRhYmxlRW5jb2Rp
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29j
b2EubW06CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZv
cm1SZXF1ZXN0KToKKwogMjAyMC0wNy0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIHRoaXNWYWx1ZSBpcyBub3QgYWx3YXlzIHNldCBjb3JyZWN0bHkgd2hlbiBj
YWxsaW5nIEpTIGNhbGxiYWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAppbmRleCAzMjVkMDYwMjBi
YjQzNDE1NWJlMjY4MTdmN2QxMmYyMWMzNTU5YjRhLi5kMmQwOTNjM2MzMjAwNzNiNmE1YWFiZTkz
ZDBjZmZmYTkxZTk1MmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdENGTmV0LmNwcApAQCAtMTIwLDcgKzEyMCw3
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRIZWFkZXJGaWVsZHMoQ0ZNdXRhYmxlVVJMUmVxdWVz
dFJlZiByZXF1ZXN0LCBjb25zdCBIVFRQSGVhCiAgICAgfQogCiAgICAgZm9yIChjb25zdCBhdXRv
JiBoZWFkZXIgOiByZXF1ZXN0SGVhZGVycykKLSAgICAgICAgQ0ZVUkxSZXF1ZXN0U2V0SFRUUEhl
YWRlckZpZWxkVmFsdWUocmVxdWVzdCwgaGVhZGVyLmtleS5jcmVhdGVDRlN0cmluZygpLmdldCgp
LCBoZWFkZXIudmFsdWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7CisgICAgICAgIENGVVJMUmVx
dWVzdFNldEhUVFBIZWFkZXJGaWVsZFZhbHVlKHJlcXVlc3QsIGhlYWRlci5rZXkuY3JlYXRlQ0ZT
dHJpbmcoKS5nZXQoKSwgaHR0cEhlYWRlclZhbHVlVXNpbmdTdWl0YWJsZUVuY29kaW5nKGhlYWRl
cikuZ2V0KCkpOwogfQogCiBzdGF0aWMgaW5saW5lIENGVVJMUmVxdWVzdENhY2hlUG9saWN5IHRv
UGxhdGZvcm1SZXF1ZXN0Q2FjaGVQb2xpY3koUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3kgcG9s
aWN5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZVJlcXVlc3RDRk5ldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZVJlcXVlc3RDRk5ldC5oCmluZGV4IDNjMTU2YzljNmNlYzk0ZGU4Nzg5ODBhMmU3ZmJi
ZmVlMDNhNGM4OGIuLmJmMmZkMDRkYTM5MGZhMGNjYWQyMjMwZDhiZWRjZmE1NzY1YzY4ZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1
ZXN0Q0ZOZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlUmVxdWVzdENGTmV0LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHku
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3RCYXNlLmgiCiAKQEAgLTgzLDQgKzg0LDE0IEBA
IGlubGluZSBDRlVSTFJlcXVlc3RQcmlvcml0eSB0b1BsYXRmb3JtUmVxdWVzdFByaW9yaXR5KFJl
c291cmNlTG9hZFByaW9yaXR5IHByaW9yCiAgICAgcmV0dXJuIDA7CiB9CiAKK2lubGluZSBSZXRh
aW5QdHI8Q0ZTdHJpbmdSZWY+IGh0dHBIZWFkZXJWYWx1ZVVzaW5nU3VpdGFibGVFbmNvZGluZyhI
VFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvcjo6S2V5VmFsdWUgaGVhZGVyKQoreworICAgIGlm
IChoZWFkZXIua2V5QXNIVFRQSGVhZGVyTmFtZSAmJiAqaGVhZGVyLmtleUFzSFRUUEhlYWRlck5h
bWUgPT0gSFRUUEhlYWRlck5hbWU6Okxhc3RFdmVudElEICYmICFoZWFkZXIudmFsdWUuaXNBbGxB
U0NJSSgpKSB7CisgICAgICAgIGF1dG8gdXRmOFZhbHVlID0gaGVhZGVyLnZhbHVlLnV0ZjgoKTsK
KyAgICAgICAgLy8gQ29uc3RydWN0aW5nIGEgc3RyaW5nIHdpdGggdGhlIFVURi04IGJ5dGVzIGJ1
dCBjbGFpbWluZyB0aGF0IGl04oCZcyBMYXRpbi0xIGlzIHRoZSB3YXkgdG8gZ2V0IENGTmV0d29y
ayB0byBwdXQgdGhvc2UgVVRGLTggYnl0ZXMgb24gdGhlIHdpcmUuCisgICAgICAgIHJldHVybiBh
ZG9wdENGKENGU3RyaW5nQ3JlYXRlV2l0aEJ5dGVzKG51bGxwdHIsIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgVUludDgqPih1dGY4VmFsdWUuZGF0YSgpKSwgdXRmOFZhbHVlLmxlbmd0aCgpLCBrQ0ZT
dHJpbmdFbmNvZGluZ0lTT0xhdGluMSwgZmFsc2UpKTsKKyAgICB9CisgICAgcmV0dXJuIGhlYWRl
ci52YWx1ZS5jcmVhdGVDRlN0cmluZygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNl
UmVxdWVzdENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9S
ZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQppbmRleCAxMWMyY2Q2ZmY5Y2RmZGNjOWJiNDlhMzkyNzg1
OWJmYzQ0ZjA1ZWJjLi41NjU1NTQ4N2E3OGIwYTA0ZGI3MTI4ZGI0MGE4ZjU3ZTJiOWVkYmI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNl
UmVxdWVzdENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KQEAgLTE5Myw4ICsxOTMsMTAgQEAgdm9pZCBSZXNv
dXJjZVJlcXVlc3Q6OmRvVXBkYXRlUGxhdGZvcm1SZXF1ZXN0KCkKICAgICAvLyBDYW5ub3QganVz
dCB1c2Ugc2V0QWxsSFRUUEhlYWRlckZpZWxkcyBoZXJlLCBiZWNhdXNlIGl0IGRvZXMgbm90IHJl
bW92ZSBoZWFkZXJzLgogICAgIGZvciAoTlNTdHJpbmcgKm9sZEhlYWRlck5hbWUgaW4gW25zUmVx
dWVzdCBhbGxIVFRQSGVhZGVyRmllbGRzXSkKICAgICAgICAgW25zUmVxdWVzdCBzZXRWYWx1ZTpu
aWwgZm9ySFRUUEhlYWRlckZpZWxkOm9sZEhlYWRlck5hbWVdOwotICAgIGZvciAoY29uc3QgYXV0
byYgaGVhZGVyIDogaHR0cEhlYWRlckZpZWxkcygpKQotICAgICAgICBbbnNSZXF1ZXN0IHNldFZh
bHVlOmhlYWRlci52YWx1ZSBmb3JIVFRQSGVhZGVyRmllbGQ6aGVhZGVyLmtleV07CisgICAgZm9y
IChjb25zdCBhdXRvJiBoZWFkZXIgOiBodHRwSGVhZGVyRmllbGRzKCkpIHsKKyAgICAgICAgYXV0
byBlbmNvZGVkVmFsdWUgPSBodHRwSGVhZGVyVmFsdWVVc2luZ1N1aXRhYmxlRW5jb2RpbmcoaGVh
ZGVyKTsKKyAgICAgICAgW25zUmVxdWVzdCBzZXRWYWx1ZTooX19icmlkZ2UgTlNTdHJpbmcgKill
bmNvZGVkVmFsdWUuZ2V0KCkgZm9ySFRUUEhlYWRlckZpZWxkOmhlYWRlci5rZXldOworICAgIH0K
IAogICAgIFtuc1JlcXVlc3Qgc2V0Q29udGVudERpc3Bvc2l0aW9uRW5jb2RpbmdGYWxsYmFja0Fy
cmF5OmNyZWF0ZU5TQXJyYXkobV9yZXNwb25zZUNvbnRlbnREaXNwb3NpdGlvbkVuY29kaW5nRmFs
bGJhY2tBcnJheSwgW10gKGF1dG8mIG5hbWUpIC0+IE5TTnVtYmVyICogewogICAgICAgICBhdXRv
IGVuY29kaW5nID0gQ0ZTdHJpbmdDb252ZXJ0RW5jb2RpbmdUb05TU3RyaW5nRW5jb2RpbmcoQ0ZT
dHJpbmdDb252ZXJ0SUFOQUNoYXJTZXROYW1lVG9FbmNvZGluZyhuYW1lLmNyZWF0ZUNGU3RyaW5n
KCkuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDJhNzViZTBhYTBj
ZDY0NGE3NTRmYjgyZDU5MjYyZjUzNzM0ZjM0OWMuLmRmMDExMDNlNWJjOWVhZjBlNDdkMjE1MGE2
NzBlODNiMzVkN2E3YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIwLTA3LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgW0V2ZW50U291cmNlXSBXZWJLaXQgZmFpbHMgdG8gVVRGLTggZW5jb2RlIHRoZSBMYXN0
LUV2ZW50LUlEIEhUVFAgaGVhZGVyIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ4NjAKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuIGFuZCBEYXJpbiBBZGxlci4KKworICAgICAgICBSZWJhc2VsaW5lIGEgY291cGxl
IG9mIHdlYi1wbGF0Zm9ybS10ZXN0cyB0aGF0IGFyZSBub3cgcGFzc2luZy4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQtaWQtMi1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c291cmNlL2Zvcm1hdC1m
aWVsZC1pZC1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDctMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICB0aGlzVmFsdWUgaXMgbm90IGFsd2F5cyBzZXQgY29ycmVj
dGx5IHdoZW4gY2FsbGluZyBKUyBjYWxsYmFja3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxkLWlk
LTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQtaWQtMi1leHBlY3RlZC50eHQKaW5kZXggMzU1
MzA0YWIyODk1MzgyNDI3MTQ5NzE3NWU3Zjk5NTIxOTIxMDRhOC4uNGYyMTcxNjYwY2M2YjRlZmEz
NDFlOTQ1NWRkYWFlYTMzN2JkZDBiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQtaWQtMi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ldmVudHNvdXJjZS9mb3JtYXQtZmllbGQtaWQtMi1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwz
IEBACiAKLUZBSUwgRXZlbnRTb3VyY2U6IExhc3QtRXZlbnQtSUQgKDIpIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkICJoZWxsbyIgYnV0IGdvdCAi4oCmIgorUEFTUyBFdmVudFNvdXJjZTogTGFzdC1F
dmVudC1JRCAoMikgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2UvZm9ybWF0LWZpZWxkLWlkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzb3VyY2Uv
Zm9ybWF0LWZpZWxkLWlkLWV4cGVjdGVkLnR4dAppbmRleCBlOTE5MTE5ZDE0YzFjMzJmYjFhOGNm
MWQzNDljMjYzZWIyMjE4MWI0Li5hNTgwMzExMjQ1MzRkZTRjMzU5NjliZDEwYjgxZDdhNWM0ZWM3
ZjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2V2ZW50c291cmNlL2Zvcm1hdC1maWVsZC1pZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHNvdXJjZS9mb3JtYXQt
ZmllbGQtaWQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIEV2ZW50U291cmNl
OiBMYXN0LUV2ZW50LUlEIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJoZWxsbyIgYnV0IGdvdCAi
4oCmIgorUEFTUyBFdmVudFNvdXJjZTogTGFzdC1FdmVudC1JRCAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>