<?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>213573</bug_id>
          
          <creation_ts>2020-06-24 13:45:46 -0700</creation_ts>
          <short_desc>Allow service workers for web browsers</short_desc>
          <delta_ts>2020-06-25 13:04:57 -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>WebKit 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></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="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>wilander</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1665852</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-06-24 13:45:46 -0700</bug_when>
    <thetext>We should allow service workers for full web browsing applications</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665853</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-06-24 13:46:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/64712630&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665867</commentid>
    <comment_count>2</comment_count>
      <attachid>402685</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-06-24 14:16:43 -0700</bug_when>
    <thetext>Created attachment 402685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666002</commentid>
    <comment_count>3</comment_count>
      <attachid>402685</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-25 01:22:33 -0700</bug_when>
    <thetext>Comment on attachment 402685
Patch

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

&gt; Source/WebKit/ChangeLog:32
&gt; +        may run both browser and non-browser tests.

It is not great that we have to add all these TestWebKitAPI checks.

Can we just update parentProcessHasServiceWorkerEntitlement to check for both com.apple.developer.WebKit.ServiceWorkers and com.apple.developer.web-browser entitlements?
These might be very small changes and manual testing might be good enough. Maybe we could have mini browser have this com.apple.developer.web-browser entitlement btw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666024</commentid>
    <comment_count>4</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-06-25 06:52:13 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #3)
&gt; Comment on attachment 402685 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402685&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:32
&gt; &gt; +        may run both browser and non-browser tests.
&gt; 
&gt; It is not great that we have to add all these TestWebKitAPI checks.
&gt; 
&gt; Can we just update parentProcessHasServiceWorkerEntitlement to check for
&gt; both com.apple.developer.WebKit.ServiceWorkers and
&gt; com.apple.developer.web-browser entitlements?
&gt; These might be very small changes and manual testing might be good enough.
&gt; Maybe we could have mini browser have this com.apple.developer.web-browser
&gt; entitlement btw.

Yes, combining would work. If we are happy with manual testing then I can also remove the TestWebKitAPI checks. I originally did not give mini browser the entitlement because we have tests which need to not be considered browsers. But I can probably disable the entitlement for those tests just like with the service worker entitlement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666025</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-25 07:00:04 -0700</bug_when>
    <thetext>Let&apos;s see how the simple combining patch will be.
If it is very small, then manual testing might be good enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666081</commentid>
    <comment_count>6</comment_count>
      <attachid>402745</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-06-25 10:24:20 -0700</bug_when>
    <thetext>Created attachment 402745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666087</commentid>
    <comment_count>7</comment_count>
      <attachid>402745</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-06-25 10:46:02 -0700</bug_when>
    <thetext>Comment on attachment 402745
Patch

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

&gt; Source/WebKit/NetworkProcess/ios/NetworkProcessIOS.mm:84
&gt; +    static bool hasEntitlement = WTF::hasEntitlement(parentProcessConnection()-&gt;xpcConnection(), &quot;com.apple.developer.WebKit.ServiceWorkers&quot;) || WTF::hasEntitlement(parentProcessConnection()-&gt;xpcConnection(), &quot;com.apple.developer.web-browser&quot;);

As Kate pointed out elsewhere, we can probably now get rid of the ServiceWorker entitlement (in a separate patch!)

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:525
&gt; +    bool isFullBrowser = WTF::processHasEntitlement(&quot;com.apple.developer.web-browser&quot;);

Why isn&apos;t this just:

bool hasServiceWorkerEntitlement = (WTF::processHasEntitlement(&quot;com.apple.developer.WebKit.ServiceWorkers&quot;) || WTF::processHasEntitlement(&quot;com.apple.developer.web-browser&quot;)) &amp;&amp; ![_configuration preferences]._serviceWorkerEntitlementDisabledForTesting;

... And then get rid of the &apos;isFullBrowser&apos; variable?

This seems to say that we would not run full web-browser tests where the SW stuff is disabled for testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666094</commentid>
    <comment_count>8</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-06-25 11:05:00 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #7)
&gt; Comment on attachment 402745 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402745&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/ios/NetworkProcessIOS.mm:84
&gt; &gt; +    static bool hasEntitlement = WTF::hasEntitlement(parentProcessConnection()-&gt;xpcConnection(), &quot;com.apple.developer.WebKit.ServiceWorkers&quot;) || WTF::hasEntitlement(parentProcessConnection()-&gt;xpcConnection(), &quot;com.apple.developer.web-browser&quot;);
&gt; 
&gt; As Kate pointed out elsewhere, we can probably now get rid of the
&gt; ServiceWorker entitlement (in a separate patch!)
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:525
&gt; &gt; +    bool isFullBrowser = WTF::processHasEntitlement(&quot;com.apple.developer.web-browser&quot;);
&gt; 
&gt; Why isn&apos;t this just:
&gt; 
&gt; bool hasServiceWorkerEntitlement =
&gt; (WTF::processHasEntitlement(&quot;com.apple.developer.WebKit.ServiceWorkers&quot;) ||
&gt; WTF::processHasEntitlement(&quot;com.apple.developer.web-browser&quot;)) &amp;&amp;
&gt; ![_configuration preferences]._serviceWorkerEntitlementDisabledForTesting;
&gt; 
&gt; ... And then get rid of the &apos;isFullBrowser&apos; variable?
&gt; 
&gt; This seems to say that we would not run full web-browser tests where the SW
&gt; stuff is disabled for testing.

That makes sense, will fix and re-upload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666099</commentid>
    <comment_count>9</comment_count>
      <attachid>402750</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-06-25 11:19:15 -0700</bug_when>
    <thetext>Created attachment 402750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666135</commentid>
    <comment_count>10</comment_count>
      <attachid>402750</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-06-25 12:03:46 -0700</bug_when>
    <thetext>Comment on attachment 402750
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666181</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-25 13:04:56 -0700</bug_when>
    <thetext>Committed r263525: &lt;https://trac.webkit.org/changeset/263525&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402750.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402685</attachid>
            <date>2020-06-24 14:16:43 -0700</date>
            <delta_ts>2020-06-25 10:24:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213573-20200624141642.patch</filename>
            <type>text/plain</type>
            <size>18216</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkyNTMxOGE0OTk2MDhm
OGY0NWQ1ZDg2ZTAxNDFjZDFjNDQ0NTE0My4uYjdjZGI1NWRkNDczOGZhN2ExMDEyODk3YzM0ODkz
MjdmMmIzZmUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA2LTI0ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHNl
cnZpY2Ugd29ya2VycyBmb3Igd2ViIGJyb3dzZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM1NzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0
NzEyNjMwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZWQgbV9oYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQgaW4gV2ViQ29yZTo6U1dTZXJ2
ZXIgdG8gYmUgbW9yZQorICAgICAgICBnZW5lcmFsbHkgbmFtZWQgbV9zZXJ2aWNlV29ya2Vyc0Fs
bG93ZWQgdG8gY292ZXIgYm90aCB0aGUgZnVsbCBicm93c2VyCisgICAgICAgIGVudGl0bGVtZW50
IGFuZCB0aGUgc2VydmljZSB3b3JrZXIgZW50aXRsZW1lbnQuCisKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
OjphZGRSZWdpc3RyYXRpb25Gcm9tU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6
OlNXU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp2YWxpZGF0ZVJlZ2lzdHJh
dGlvbkRvbWFpbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6c2NoZWR1bGVKb2IpOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKwogMjAyMC0wNi0y
NCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24n
dCBjbGFpbSB0byBzdXBwb3J0IGZ1bGxzY3JlZW4gbW9kZSB1bmxlc3MgZnVsbFNjcmVlbkVuYWJs
ZWQgc2V0dGluZyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcyYTc5NGY2NTFiYTkzNjQwNDZiYzA0
ODgwNTFkMmQxNWZjMWU5YzAuLjExMDZhNWUzMWNkY2I4ZGJiNzdkYjM0MDAzMWFmYWZiODJiMmE5
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDYtMjQgIEthdGUgQ2hlbmV5ICA8
a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgc2VydmljZSB3b3Jr
ZXJzIGZvciB3ZWIgYnJvd3NlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMzU3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ3MTI2MzA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3dzIGFw
cGxpY2F0aW9ucyB3aXRoIHRoZSBmdWxsIHdlYi1icm93c2VyIGVudGl0bGVtZW50IHRvIHVzZQor
ICAgICAgICBzZXJ2aWNlIHdvcmtlcnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzd1NlcnZl
ckZvclNlc3Npb24pOgorICAgICAgICBQYXNzIHRydWUgdG8gdGhlIFNXU2VydmVyIGNvbnN0cnVj
dG9yIGlmIHRoZSBhcHBsaWNhdGlvbiBoYXMgZWl0aGVyCisgICAgICAgIHRoZSBzZXJ2aWNlIHdv
cmtlciBlbnRpdGxlbWVudCwgb3IgdGhlIGZ1bGwgd2ViIGJyb3dzZXIgZW50aXRsZW1lbnQuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGFyZW50UHJvY2Vzc0hhc0Z1bGxXZWJCcm93c2VyRW50aXRs
ZW1lbnQgY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vz
c0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBhcmVudFByb2Nlc3NI
YXNGdWxsV2ViQnJvd3NlckVudGl0bGVtZW50IGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXR1cFBhZ2VD
b25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnBhcmVudFByb2Nlc3NIYXNGdWxsV2ViQnJvd3NlckVudGl0bGVtZW50IGNvbnN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnBhcmVudFByb2Nlc3NIYXNGdWxsV2ViQnJvd3NlckVudGl0bGVtZW50
IGNvbnN0KToKKyAgICAgICAgQ2hlY2sgZm9yIFRlc3RXZWJLaXRBUEkgc3BlY2lmaWNhbGx5IHNv
IHdlIGNhbiBydW4gQVBJIHRlc3RzIGluIGJvdGgKKyAgICAgICAgYnJvd3NlciBhbmQgbm9uLWJy
b3dzZXIgbW9kZSBieSBjaGFuZ2luZyB0aGUgYnVuZGxlSUQuIFdlIGNhbm5vdCBzdG9yZQorICAg
ICAgICB0aGlzIGNoZWNrIGluIGEgc3RhdGljIHZhcmlhYmxlIGJlY2F1c2UgYSBzaW5nbGUgaW5z
dGFuY2Ugb2YgVGVzdFdlYktpdEFQSQorICAgICAgICBtYXkgcnVuIGJvdGggYnJvd3NlciBhbmQg
bm9uLWJyb3dzZXIgdGVzdHMuCisKIDIwMjAtMDYtMjQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBidWlsZCBvbmNlIFJCU1Byb2Nlc3NM
aW1pdGF0aW9ucy5oIGlzIGludHJvZHVjZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggODRkMjQ3YzFlMDdkYzY3Y2I3YjNk
MWViYjY4MWVhMjcxYzBmYTg2MS4uNmQwNWNhYThlMWMwN2M2ODdjNDc3MzUyMWE2MTg4YWM2MTQz
NTIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFNXU2VydmVyOjphZGRSZWdpc3Ry
YXRpb25Gcm9tU3RvcmUoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYgZGF0YSkKICAgICB2YWxp
ZGF0ZVJlZ2lzdHJhdGlvbkRvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbihkYXRhLnNj
cmlwdFVSTCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBkYXRhID0gV1RG
TW92ZShkYXRhKV0gKGJvb2wgaXNWYWxpZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChtX2hhc1NlcnZpY2VXb3JrZXJF
bnRpdGxlbWVudCB8fCBpc1ZhbGlkKSB7CisgICAgICAgIGlmIChtX3NlcnZpY2VXb3JrZXJzQWxs
b3dlZCB8fCBpc1ZhbGlkKSB7CiAgICAgICAgICAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IG1ha2VV
bmlxdWU8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+KCp0aGlzLCBkYXRhLnJlZ2lzdHJhdGlvbi5rZXks
IGRhdGEucmVnaXN0cmF0aW9uLnVwZGF0ZVZpYUNhY2hlLCBkYXRhLnJlZ2lzdHJhdGlvbi5zY29w
ZVVSTCwgZGF0YS5zY3JpcHRVUkwpOwogICAgICAgICAgICAgcmVnaXN0cmF0aW9uLT5zZXRMYXN0
VXBkYXRlVGltZShkYXRhLnJlZ2lzdHJhdGlvbi5sYXN0VXBkYXRlVGltZSk7CiAgICAgICAgICAg
ICBhdXRvIHJlZ2lzdHJhdGlvblB0ciA9IHJlZ2lzdHJhdGlvbi5nZXQoKTsKQEAgLTMxMSwxNCAr
MzExLDE0IEBAIHZvaWQgU1dTZXJ2ZXI6OkNvbm5lY3Rpb246OnJlbW92ZVNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JblNlcnZlcihTZXJ2aWNlV29ya2VyCiAgICAgbV9zZXJ2ZXIucmVtb3ZlQ2xp
ZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbigqdGhpcywgaWRlbnRpZmllcik7CiB9CiAKLVNX
U2VydmVyOjpTV1NlcnZlcihVbmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4mJiBvcmlnaW5TdG9yZSwg
Ym9vbCBwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFN0cmluZyYmIHJlZ2lzdHJhdGlv
bkRhdGFiYXNlRGlyZWN0b3J5LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgaGFzU2Vy
dmljZVdvcmtlckVudGl0bGVtZW50LCBTb2Z0VXBkYXRlQ2FsbGJhY2smJiBzb2Z0VXBkYXRlQ2Fs
bGJhY2ssIENyZWF0ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaywgQXBwQm91
bmREb21haW5zQ2FsbGJhY2smJiBhcHBCb3VuZERvbWFpbnNDYWxsYmFjaykKK1NXU2VydmVyOjpT
V1NlcnZlcihVbmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4mJiBvcmlnaW5TdG9yZSwgYm9vbCBwcm9j
ZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFN0cmluZyYmIHJlZ2lzdHJhdGlvbkRhdGFiYXNl
RGlyZWN0b3J5LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2VydmljZVdvcmtlcnNB
bGxvd2VkLCBTb2Z0VXBkYXRlQ2FsbGJhY2smJiBzb2Z0VXBkYXRlQ2FsbGJhY2ssIENyZWF0ZUNv
bnRleHRDb25uZWN0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaywgQXBwQm91bmREb21haW5zQ2FsbGJh
Y2smJiBhcHBCb3VuZERvbWFpbnNDYWxsYmFjaykKICAgICA6IG1fb3JpZ2luU3RvcmUoV1RGTW92
ZShvcmlnaW5TdG9yZSkpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX2lz
UHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkKHByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5h
YmxlZCkKICAgICAsIG1fY3JlYXRlQ29udGV4dENvbm5lY3Rpb25DYWxsYmFjayhXVEZNb3ZlKGNh
bGxiYWNrKSkKICAgICAsIG1fc29mdFVwZGF0ZUNhbGxiYWNrKFdURk1vdmUoc29mdFVwZGF0ZUNh
bGxiYWNrKSkKICAgICAsIG1fYXBwQm91bmREb21haW5zQ2FsbGJhY2soV1RGTW92ZShhcHBCb3Vu
ZERvbWFpbnNDYWxsYmFjaykpCi0gICAgLCBtX2hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCho
YXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQpCisgICAgLCBtX3NlcnZpY2VXb3JrZXJzQWxsb3dl
ZChzZXJ2aWNlV29ya2Vyc0FsbG93ZWQpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUYocmVnaXN0cmF0
aW9uRGF0YWJhc2VEaXJlY3RvcnkuaXNFbXB0eSgpICYmICFtX3Nlc3Npb25JRC5pc0VwaGVtZXJh
bCgpLCBTZXJ2aWNlV29ya2VyLCAiTm8gcGF0aCB0byBzdG9yZSB0aGUgc2VydmljZSB3b3JrZXIg
cmVnaXN0cmF0aW9ucyIpOwogICAgIGlmICghbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkKQEAg
LTMzMiw3ICszMzIsNyBAQCBTV1NlcnZlcjo6U1dTZXJ2ZXIoVW5pcXVlUmVmPFNXT3JpZ2luU3Rv
cmU+JiYgb3JpZ2luU3RvcmUsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aQogCiB2b2lkIFNXU2VydmVy
Ojp2YWxpZGF0ZVJlZ2lzdHJhdGlvbkRvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBk
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7Ci0gICAgaWYgKG1faGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50IHx8IG1faGFzUmVjZWl2
ZWRBcHBCb3VuZERvbWFpbnMpIHsKKyAgICBpZiAobV9zZXJ2aWNlV29ya2Vyc0FsbG93ZWQgfHwg
bV9oYXNSZWNlaXZlZEFwcEJvdW5kRG9tYWlucykgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihtX2FwcEJvdW5kRG9tYWlucy5jb250YWlucyhkb21haW4pKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTM1NCw3ICszNTQsNyBAQCB2b2lkIFNXU2VydmVyOjpzY2hlZHVsZUpvYihTZXJ2
aWNlV29ya2VySm9iRGF0YSYmIGpvYkRhdGEpCiAgICAgdmFsaWRhdGVSZWdpc3RyYXRpb25Eb21h
aW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4oam9iRGF0YS5zY3JpcHRVUkwpLCBbdGhpcywg
d2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgam9iRGF0YSA9IFdURk1vdmUoam9iRGF0YSld
IChib29sIGlzVmFsaWQpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBpZiAobV9oYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQg
fHwgaXNWYWxpZCkgeworICAgICAgICBpZiAobV9zZXJ2aWNlV29ya2Vyc0FsbG93ZWQgfHwgaXNW
YWxpZCkgewogICAgICAgICAgICAgYXV0byYgam9iUXVldWUgPSAqbV9qb2JRdWV1ZXMuZW5zdXJl
KGpvYkRhdGEucmVnaXN0cmF0aW9uS2V5KCksIFt0aGlzLCAmam9iRGF0YV0gewogICAgICAgICAg
ICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFNXU2VydmVySm9iUXVldWU+KCp0aGlzLCBqb2JEYXRh
LnJlZ2lzdHJhdGlvbktleSgpKTsKICAgICAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRl
eCAzYTk1OWRhODk1ZjA2OWNjZGUxOWU5YTY2M2NiZThiODcyZjVkY2FkLi40M2ExMzMyOWMzYzBl
YmRkYjIwNGZlZGNkNWFmNjU2ZGZjOTJmZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC0yNzUsNyArMjc1LDcgQEAgcHJpdmF0
ZToKICAgICBBcHBCb3VuZERvbWFpbnNDYWxsYmFjayBtX2FwcEJvdW5kRG9tYWluc0NhbGxiYWNr
OwogICAgIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IG1fYXBwQm91
bmREb21haW5zOwotICAgIGJvb2wgbV9oYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9zZXJ2aWNlV29ya2Vyc0FsbG93ZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9oYXNSZWNlaXZlZEFwcEJvdW5kRG9tYWlucyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGYxMjNi
MjBhYzZjMjQ1MTBmNDQ5YTAyNGViZGM5ZjUyYjY0ZDJkMzUuLjQxNTYwMWZhMDdiMGQxOWVlMTcw
MWVjYWQxZjMxMzJmYjdhYjkxZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yNTUwLDcgKzI1NTAsNyBAQCBTV1NlcnZlciYgTmV0
d29ya1Byb2Nlc3M6OnN3U2VydmVyRm9yU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQp
CiAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm90LCB0aGVuIHdoZXJlIGRpZCB0aGlzIFBBTDo6U2Vz
c2lvbklEIGNvbWUgZnJvbT8KICAgICAgICAgQVNTRVJUKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgp
IHx8ICFwYXRoLmlzRW1wdHkoKSk7CiAKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8U1dTZXJ2
ZXI+KG1ha2VVbmlxdWVSZWY8V2ViU1dPcmlnaW5TdG9yZT4oKSwgaW5mby5wcm9jZXNzVGVybWlu
YXRpb25EZWxheUVuYWJsZWQsIFdURk1vdmUocGF0aCksIHNlc3Npb25JRCwgcGFyZW50UHJvY2Vz
c0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgpLCBbdGhpcywgc2Vzc2lvbklEXShhdXRvJiYg
am9iRGF0YSwgYm9vbCBzaG91bGRSZWZyZXNoQ2FjaGUsIGF1dG8mJiByZXF1ZXN0LCBhdXRvJiYg
Y29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgeworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxT
V1NlcnZlcj4obWFrZVVuaXF1ZVJlZjxXZWJTV09yaWdpblN0b3JlPigpLCBpbmZvLnByb2Nlc3NU
ZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCwgV1RGTW92ZShwYXRoKSwgc2Vzc2lvbklELCBwYXJlbnRQ
cm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50KCkgfHwgcGFyZW50UHJvY2Vzc0hhc0Z1
bGxXZWJCcm93c2VyRW50aXRsZW1lbnQoKSwgW3RoaXMsIHNlc3Npb25JRF0oYXV0byYmIGpvYkRh
dGEsIGJvb2wgc2hvdWxkUmVmcmVzaENhY2hlLCBhdXRvJiYgcmVxdWVzdCwgYXV0byYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAgICAgICAgICAgIFNlcnZpY2VXb3JrZXJTb2Z0VXBk
YXRlTG9hZGVyOjpzdGFydChuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpLCBXVEZNb3ZlKGpvYkRh
dGEpLCBzaG91bGRSZWZyZXNoQ2FjaGUsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKICAgICAgICAgfSwgW3RoaXMsIHNlc3Npb25JRF0oYXV0byYgcmVnaXN0
cmFibGVEb21haW4sIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAgICAgQVNT
RVJUKCFyZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDdmYjlmN2JhMTdlNjRlNjU0YWM3YWVh
NmQ1MDgwMjA2NGIxMTFhMWUuLjliNGJhOGQ4OTI4MzE5YTVmZDM0MWIzNDY3NWJiZmYwMTgwYjBm
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTMxMyw5ICszMTMsMTEgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBib29sIHBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSBjb25z
dDsKKyAgICBib29sIHBhcmVudFByb2Nlc3NIYXNGdWxsV2ViQnJvd3NlckVudGl0bGVtZW50KCkg
Y29uc3Q7CiAgICAgdm9pZCBkaXNhYmxlU2VydmljZVdvcmtlckVudGl0bGVtZW50KCk7CiAgICAg
dm9pZCBjbGVhclNlcnZpY2VXb3JrZXJFbnRpdGxlbWVudE92ZXJyaWRlKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAjZWxzZQorICAgIGJvb2wgcGFyZW50UHJvY2Vzc0hhc0Z1bGxXZWJC
cm93c2VyRW50aXRsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgYm9vbCBwYXJl
bnRQcm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
aW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9p
b3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KaW5kZXggMTBhYjMyNDRkMWM5MTFiMjc0Njk4OWI3YTJk
ZGZkNGU1ZWE3N2EwYi4uYjZhMDZlZDIwMGUwZjQ5ODI0ZDc0MjQxZGM5YzdhNTU5NWJhZWNhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nl
c3NJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1By
b2Nlc3NJT1MubW0KQEAgLTc0LDYgKzc0LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRm
b3JtVGVybWluYXRlKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIE5ldHdvcmtQ
cm9jZXNzOjpwYXJlbnRQcm9jZXNzSGFzRnVsbFdlYkJyb3dzZXJFbnRpdGxlbWVudCgpIGNvbnN0
Cit7CisgICAgc3RhdGljIGJvb2wgaGFzRW50aXRsZW1lbnQgPSBXVEY6Omhhc0VudGl0bGVtZW50
KHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnhwY0Nvbm5lY3Rpb24oKSwgImNvbS5hcHBsZS5k
ZXZlbG9wZXIud2ViLWJyb3dzZXIiKTsKKyAgICByZXR1cm4gaGFzRW50aXRsZW1lbnQgfHwgV2Vi
Q29yZTo6YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgPT0gImNvbS5hcHBsZS5XZWJLaXQu
VGVzdFdlYktpdEFQSSJfczsKK30KKwogc3RhdGljIGJvb2wgZGlzYWJsZVNlcnZpY2VXb3JrZXJF
bnRpdGxlbWVudFRlc3RpbmdPdmVycmlkZTsKIAogYm9vbCBOZXR3b3JrUHJvY2Vzczo6cGFyZW50
UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAxMjg4NGFlMDE0YzU4
MDI1ODZhYmI3YzcyMTA1ZWQ5YTU2N2FiODM5Li5mNjM3YmQ3M2U0YjIzOGY3ZTBjZDNhNmRkNzBi
NzI2OGIxMWNjMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KQEAgLTUyMSw3ICs1MjEsOSBAQCAtICh2b2lkKV9zZXR1cFBhZ2VDb25maWd1
cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mKXBhZ2VDb25maWd1cmF0aW9uCiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKLSAgICBpZiAoKCFXVEY6OnByb2Nlc3NIYXNFbnRpdGxlbWVudCgiY29tLmFwcGxlLmRldmVs
b3Blci5XZWJLaXQuU2VydmljZVdvcmtlcnMiKSB8fCAhIVtfY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10uX3NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVzdGluZykgJiYgIVtf
Y29uZmlndXJhdGlvbiBsaW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zXSkKKyAgICBi
b29sIGhhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCA9IFdURjo6cHJvY2Vzc0hhc0VudGl0bGVt
ZW50KCJjb20uYXBwbGUuZGV2ZWxvcGVyLldlYktpdC5TZXJ2aWNlV29ya2VycyIpICYmICFbX2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLl9zZXJ2aWNlV29ya2VyRW50aXRsZW1lbnREaXNhYmxl
ZEZvclRlc3Rpbmc7CisgICAgYm9vbCBpc0Z1bGxCcm93c2VyID0gV1RGOjpwcm9jZXNzSGFzRW50
aXRsZW1lbnQoImNvbS5hcHBsZS5kZXZlbG9wZXIud2ViLWJyb3dzZXIiKSB8fCBXZWJDb3JlOjph
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSA9PSAiY29tLmFwcGxlLldlYktpdC5UZXN0V2Vi
S2l0QVBJIl9zOworICAgIGlmICghaGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50ICYmICFbX2Nv
bmZpZ3VyYXRpb24gbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWluc10gJiYgIWlzRnVs
bEJyb3dzZXIpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5zZXRT
ZXJ2aWNlV29ya2Vyc0VuYWJsZWQoZmFsc2UpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVm
ZXJlbmNlcygpLT5zZXRTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnREaXNhYmxlZEZvclRlc3Rpbmco
ISFbX2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLl9zZXJ2aWNlV29ya2VyRW50aXRsZW1lbnRE
aXNhYmxlZEZvclRlc3RpbmcpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDQyMjY0NmQ2MjExZTdiMzQ1N2IyNzIzOTdmOGFiOGNj
ZjJlM2VhNmQuLjVjNDhhNjdiNjMzN2YyNWIwMTM0ODQ4MmVjY2MxMWYwNzQ0NzgwZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNzE0LDgg
KzM3MTQsOCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmIHN0b3JlKQogICAgICAgICBkaXNhYmxlU2VydmljZVdvcmtlckVudGl0bGVt
ZW50KCk7CiAKICAgICBpZiAoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpzZXJ2aWNlV29ya2Vyc0VuYWJsZWRLZXkoKSkpIHsKLSAgICAgICAgQVNTRVJUKHBhcmVu
dFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSB8fCBtX2xpbWl0c05hdmlnYXRp
b25zVG9BcHBCb3VuZERvbWFpbnMpOwotICAgICAgICBpZiAoIXBhcmVudFByb2Nlc3NIYXNTZXJ2
aWNlV29ya2VyRW50aXRsZW1lbnQoKSAmJiAhbV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmRE
b21haW5zKQorICAgICAgICBBU1NFUlQocGFyZW50UHJvY2Vzc0hhc0Z1bGxXZWJCcm93c2VyRW50
aXRsZW1lbnQoKSB8fCBwYXJlbnRQcm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50KCkg
fHwgbV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKTsKKyAgICAgICAgaWYgKCFw
YXJlbnRQcm9jZXNzSGFzRnVsbFdlYkJyb3dzZXJFbnRpdGxlbWVudCgpICYmICFwYXJlbnRQcm9j
ZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50KCkgJiYgIW1fbGltaXRzTmF2aWdhdGlvbnNU
b0FwcEJvdW5kRG9tYWlucykKICAgICAgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuc2V0U2VydmljZVdvcmtlckVuYWJsZWQoZmFsc2UpOwogICAgIH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDZh
N2Y2ODhjZThiYjYxMmUxNjg1ZDcyMjBkMTMzOTIxYjFjNmE0OGMuLjdlY2Y1MmM1ZTE0NzhmYWZl
Y2U5ZDQ4MDM4YzJkNWRlOWVkM2JlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTE1NDEsMTAgKzE1NDEsMTIgQEAgcHJpdmF0ZToKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgYm9vbCBwYXJlbnRQcm9jZXNzSGFzU2VydmljZVdvcmtl
ckVudGl0bGVtZW50KCkgY29uc3Q7CisgICAgYm9vbCBwYXJlbnRQcm9jZXNzSGFzRnVsbFdlYkJy
b3dzZXJFbnRpdGxlbWVudCgpIGNvbnN0OwogICAgIHZvaWQgZGlzYWJsZVNlcnZpY2VXb3JrZXJF
bnRpdGxlbWVudCgpOwogICAgIHZvaWQgY2xlYXJTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnRPdmVy
cmlkZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2Vsc2UKICAgICBib29sIHBhcmVu
dFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CisgICAgYm9vbCBwYXJlbnRQcm9jZXNzSGFzRnVsbFdlYkJyb3dzZXJFbnRpdGxlbWVudCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH07CiAgICAgdm9pZCBkaXNhYmxlU2VydmljZVdvcmtlckVu
dGl0bGVtZW50KCkgeyB9CiAgICAgdm9pZCBjbGVhclNlcnZpY2VXb3JrZXJFbnRpdGxlbWVudE92
ZXJyaWRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBj
b21wbGV0aW9uSGFuZGxlcigpOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZmUzNzQzNzAxOWI4OGFhYzAx
YTBkNjM0NzhjNzFiNWMwZjQ2NDYwOS4uNDYxMjRkZjNkNmQ5YmI0MDE3Yzc2YmQ0MTY2Nzk1ZDk1
NTc1Yjc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTUwMyw2ICs1MDMsMTIgQEAgYm9vbCBXZWJQYWdlOjpoYW5kbGVF
ZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50JiBldmVudCkKICAgICByZXR1cm4gc2Vu
ZFJlc3VsdCAmJiBldmVudFdhc0hhbmRsZWQ7CiB9CiAKK2Jvb2wgV2ViUGFnZTo6cGFyZW50UHJv
Y2Vzc0hhc0Z1bGxXZWJCcm93c2VyRW50aXRsZW1lbnQoKSBjb25zdAoreworICAgIHN0YXRpYyBi
b29sIGhhc0VudGl0bGVtZW50ID0gV1RGOjpoYXNFbnRpdGxlbWVudChXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT54cGNDb25uZWN0aW9uKCksICJjb20u
YXBwbGUuZGV2ZWxvcGVyLndlYi1icm93c2VyIik7CisgICAgcmV0dXJuIGhhc0VudGl0bGVtZW50
IHx8IFdlYkNvcmU6OmFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpID09ICJjb20uYXBwbGUu
V2ViS2l0LlRlc3RXZWJLaXRBUEkiX3M7Cit9CisKIHN0YXRpYyBib29sIGRpc2FibGVTZXJ2aWNl
V29ya2VyRW50aXRsZW1lbnRUZXN0aW5nT3ZlcnJpZGU7CiAKIGJvb2wgV2ViUGFnZTo6cGFyZW50
UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTg5OTAyMTY4MzIyYWMyOWVi
N2Y0MTFhYTA4YzY3NjBiZmI5ZWY2Ny4uNTQ1NWU4ZDMzZGJkOTEyMjljYzkyMzljN2M1YThjMzQ4
YTY5ZDVkZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA2LTI0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9j
aGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IHNlcnZpY2Ugd29ya2VycyBmb3Igd2Vi
IGJyb3dzZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTM1NzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0NzEyNjMwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFn
ZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93
c2VyUHJpdmFjeS5tbToKKwogMjAyMC0wNi0yNCAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtKU0NdIGFkZCBtaWNyb2JlbmNobWFyayBmb3Igb3BfZ2V0X3By
aXZhdGVfbmFtZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tCmluZGV4IDE2ZTZjMWNjMWY3NmFjNzM3
ZGUyN2MzZTc0YTcxYjZiZDdiZjMzOTkuLjAzNTg0ZTc4OTc3YTUzMzlkZjUyMjZkZTU5NTY1YmZm
NGFkZmI5MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvSW5BcHBCcm93c2VyUHJpdmFjeS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3kubW0KQEAgLTg1Miw2ICs4NTIsNTUgQEAg
VEVTVChJbkFwcEJyb3dzZXJQcml2YWN5LCBOb25BcHBCb3VuZERvbWFpbkRvZXNOb3RBbGxvd1Nl
cnZpY2VXb3JrZXJzKQogICAgIGlzRG9uZSA9IGZhbHNlOwogfQogCitURVNUKEluQXBwQnJvd3Nl
clByaXZhY3ksIEZ1bGxCcm93c2VyQWxsb3dzU2VydmljZVdvcmtlcnMpCit7CisgICAgaXNEb25l
ID0gZmFsc2U7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBh
ZG9wdE5TKFtbU1dJbkFwcEJyb3dzZXJQcml2YWN5TWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRd
KTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRN
ZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKyAgICAvLyBU
ZXN0V2ViS2l0QVBJIGlzIGEgZnVsbCBicm93c2VyIGJ5IGRlZmF1bHQsIHNvIGFsbCB3ZSBuZWVk
IHRvIGRvIGlzIGRpc2FibGUgdGhlIHNlcnZpY2Ugd29ya2VyCisgICAgLy8gZW50aXRsZW1lbnQg
aW4gb3JkZXIgdG8gdGVzdCBhIGdlbmVyaWMgY2FzZS4KKyAgICBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10uX3NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVzdGluZyA9IFlF
UzsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpXSk7CisgICAgU2VydmljZVdvcmtlclRDUFNlcnZlciBzZXJ2ZXIxKHsKKyAg
ICAgICAgeyAidGV4dC9odG1sIiwgbWFpbkJ5dGVzIH0sCisgICAgICAgIHsgImFwcGxpY2F0aW9u
L2phdmFzY3JpcHQiLCBzY3JpcHRCeXRlc30sCisgICAgfSk7CisKKyAgICBbV0tXZWJzaXRlRGF0
YVN0b3JlIF9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgLy8g
U3RhcnQgd2l0aCBhIGNsZWFuIHNsYXRlIGRhdGEgc3RvcmUKKyAgICBbW1dLV2Vic2l0ZURhdGFT
dG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0
b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFz
dF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgaXNEb25lID0g
ZmFsc2U7CisKKyAgICAvLyBFeHBlY3QgdGhlIHNlcnZpY2Ugd29ya2VyIGxvYWQgdG8gY29tcGxl
dGUgc3VjY2Vzc2Z1bGx5LgorICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlcjEucmVxdWVz
dFdpdGhMb2NhbGhvc3QoKV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUp
OworICAgIGlzRG9uZSA9IGZhbHNlOworCisgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVs
dERhdGFTdG9yZV0gZmV0Y2hEYXRhUmVjb3Jkc09mVHlwZXM6W05TU2V0IHNldFdpdGhPYmplY3Q6
V0tXZWJzaXRlRGF0YVR5cGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uc10gY29tcGxldGlvbkhh
bmRsZXI6XihOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKndlYnNpdGVEYXRhUmVjb3Jk
cykgeworICAgICAgICBFWFBFQ1RfRVEoMXUsIFt3ZWJzaXRlRGF0YVJlY29yZHMgY291bnRdKTsK
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKHdlYnNpdGVEYXRhUmVjb3Jkc1swXS5kaXNwbGF5TmFt
ZSwgImxvY2FsaG9zdCIpOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgIGlzRG9uZSA9IGZhbHNlOwor
CisgICAgLy8gUmVzZXQgc2VydmljZSB3b3JrZXIgZW50aXRsZW1lbnQuCisgICAgW3dlYlZpZXcg
X2NsZWFyU2VydmljZVdvcmtlckVudGl0bGVtZW50T3ZlcnJpZGU6Xih2b2lkKSB7CisgICAgICAg
IGNsZWFuVXBJbkFwcEJyb3dzZXJQcml2YWN5VGVzdFNldHRpbmdzKCk7CisgICAgICAgIGlzRG9u
ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUp
OworICAgIGlzRG9uZSA9IGZhbHNlOworfQorCiBURVNUKEluQXBwQnJvd3NlclByaXZhY3ksIEFw
cEJvdW5kRmxhZ0Zvck5vbkFwcEJvdW5kRG9tYWluRmFpbHMpCiB7CiAgICAgaW5pdGlhbGl6ZUlu
QXBwQnJvd3NlclByaXZhY3lUZXN0U2V0dGluZ3MoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402745</attachid>
            <date>2020-06-25 10:24:20 -0700</date>
            <delta_ts>2020-06-25 11:19:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213573-20200625102419.patch</filename>
            <type>text/plain</type>
            <size>4333</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcyYTc5NGY2NTFiYTkzNjQw
NDZiYzA0ODgwNTFkMmQxNWZjMWU5YzAuLjYyODJlNTRiNTFkMzdhOWZkNjI2N2YzMWIzN2M5YTU2
ZDlhMmY0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDYtMjUgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgc2Vydmlj
ZSB3b3JrZXJzIGZvciB3ZWIgYnJvd3NlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMzU3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ3MTI2
MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxs
b3dzIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSBmdWxsIHdlYi1icm93c2VyIGVudGl0bGVtZW50IHRv
IHVzZQorICAgICAgICBzZXJ2aWNlIHdvcmtlcnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpwYXJlbnRQcm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50IGNvbnN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGFy
ZW50UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCBjb25zdCk6CisKIDIwMjAtMDYt
MjQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IHRoZSBidWlsZCBvbmNlIFJCU1Byb2Nlc3NMaW1pdGF0aW9ucy5oIGlzIGludHJvZHVjZWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNz
SU9TLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJ
T1MubW0KaW5kZXggMTBhYjMyNDRkMWM5MTFiMjc0Njk4OWI3YTJkZGZkNGU1ZWE3N2EwYi4uYTBm
YmY5NzVmOWQ0YWI0NzNiNDA3NWE4YTdmNjk3MmEyNmM0ZjhhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KQEAgLTgx
LDcgKzgxLDcgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzczo6cGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VX
b3JrZXJFbnRpdGxlbWVudCgpIGNvbnN0CiAgICAgaWYgKGRpc2FibGVTZXJ2aWNlV29ya2VyRW50
aXRsZW1lbnRUZXN0aW5nT3ZlcnJpZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0
YXRpYyBib29sIGhhc0VudGl0bGVtZW50ID0gV1RGOjpoYXNFbnRpdGxlbWVudChwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT54cGNDb25uZWN0aW9uKCksICJjb20uYXBwbGUuZGV2ZWxvcGVyLldl
YktpdC5TZXJ2aWNlV29ya2VycyIpOworICAgIHN0YXRpYyBib29sIGhhc0VudGl0bGVtZW50ID0g
V1RGOjpoYXNFbnRpdGxlbWVudChwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT54cGNDb25uZWN0
aW9uKCksICJjb20uYXBwbGUuZGV2ZWxvcGVyLldlYktpdC5TZXJ2aWNlV29ya2VycyIpIHx8IFdU
Rjo6aGFzRW50aXRsZW1lbnQocGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+eHBjQ29ubmVjdGlv
bigpLCAiY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlciIpOwogICAgIHJldHVybiBoYXNF
bnRpdGxlbWVudDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KaW5kZXggMTI4ODRhZTAxNGM1ODAyNTg2YWJiN2M3MjEwNWVkOWE1NjdhYjgz
OS4uNTBmNTM4YjdhMDYwMWFkMTc2MGIwYzE0OWIwZDI4NGE5MmRlNGM5MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC01MjEsNyArNTIx
LDkgQEAgLSAodm9pZClfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb24+JilwYWdlQ29uZmlndXJhdGlvbgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgaWYgKCghV1RGOjpwcm9jZXNz
SGFzRW50aXRsZW1lbnQoImNvbS5hcHBsZS5kZXZlbG9wZXIuV2ViS2l0LlNlcnZpY2VXb3JrZXJz
IikgfHwgISFbX2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLl9zZXJ2aWNlV29ya2VyRW50aXRs
ZW1lbnREaXNhYmxlZEZvclRlc3RpbmcpICYmICFbX2NvbmZpZ3VyYXRpb24gbGltaXRzTmF2aWdh
dGlvbnNUb0FwcEJvdW5kRG9tYWluc10pCisgICAgYm9vbCBoYXNTZXJ2aWNlV29ya2VyRW50aXRs
ZW1lbnQgPSBXVEY6OnByb2Nlc3NIYXNFbnRpdGxlbWVudCgiY29tLmFwcGxlLmRldmVsb3Blci5X
ZWJLaXQuU2VydmljZVdvcmtlcnMiKSAmJiAhW19jb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5f
c2VydmljZVdvcmtlckVudGl0bGVtZW50RGlzYWJsZWRGb3JUZXN0aW5nOworICAgIGJvb2wgaXNG
dWxsQnJvd3NlciA9IFdURjo6cHJvY2Vzc0hhc0VudGl0bGVtZW50KCJjb20uYXBwbGUuZGV2ZWxv
cGVyLndlYi1icm93c2VyIik7CisgICAgaWYgKCFoYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQg
JiYgIVtfY29uZmlndXJhdGlvbiBsaW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zXSAm
JiAhaXNGdWxsQnJvd3NlcikKICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2Vz
KCktPnNldFNlcnZpY2VXb3JrZXJzRW5hYmxlZChmYWxzZSk7CiAgICAgcGFnZUNvbmZpZ3VyYXRp
b24tPnByZWZlcmVuY2VzKCktPnNldFNlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2FibGVkRm9y
VGVzdGluZyghIVtfY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10uX3NlcnZpY2VXb3JrZXJFbnRp
dGxlbWVudERpc2FibGVkRm9yVGVzdGluZyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZmUzNzQzNzAxOWI4
OGFhYzAxYTBkNjM0NzhjNzFiNWMwZjQ2NDYwOS4uYzcyYTRhZTY1MmNiNmIzODI2OTVjZjYyY2Iy
NjlkZGVkODMzMjUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTUxMCw3ICs1MTAsNyBAQCBib29sIFdlYlBhZ2U6OnBh
cmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSBjb25zdAogICAgIGlmIChk
aXNhYmxlU2VydmljZVdvcmtlckVudGl0bGVtZW50VGVzdGluZ092ZXJyaWRlKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgc3RhdGljIGJvb2wgaGFzRW50aXRsZW1lbnQgPSBXVEY6
Omhhc0VudGl0bGVtZW50KFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnhwY0Nvbm5lY3Rpb24oKSwgImNvbS5hcHBsZS5kZXZlbG9wZXIuV2ViS2l0LlNl
cnZpY2VXb3JrZXJzIik7CisgICAgc3RhdGljIGJvb2wgaGFzRW50aXRsZW1lbnQgPSBXVEY6Omhh
c0VudGl0bGVtZW50KFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnhwY0Nvbm5lY3Rpb24oKSwgImNvbS5hcHBsZS5kZXZlbG9wZXIuV2ViS2l0LlNlcnZp
Y2VXb3JrZXJzIikgfHwgV1RGOjpoYXNFbnRpdGxlbWVudChXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT54cGNDb25uZWN0aW9uKCksICJjb20uYXBwbGUu
ZGV2ZWxvcGVyLndlYi1icm93c2VyIik7CiAgICAgcmV0dXJuIGhhc0VudGl0bGVtZW50OwogfQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402750</attachid>
            <date>2020-06-25 11:19:15 -0700</date>
            <delta_ts>2020-06-25 13:04:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213573-20200625111914.patch</filename>
            <type>text/plain</type>
            <size>4293</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcyYTc5NGY2NTFiYTkzNjQw
NDZiYzA0ODgwNTFkMmQxNWZjMWU5YzAuLjYyODJlNTRiNTFkMzdhOWZkNjI2N2YzMWIzN2M5YTU2
ZDlhMmY0OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDYtMjUgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgc2Vydmlj
ZSB3b3JrZXJzIGZvciB3ZWIgYnJvd3NlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMzU3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ3MTI2
MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxs
b3dzIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSBmdWxsIHdlYi1icm93c2VyIGVudGl0bGVtZW50IHRv
IHVzZQorICAgICAgICBzZXJ2aWNlIHdvcmtlcnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpwYXJlbnRQcm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50IGNvbnN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9zZXR1cFBhZ2VDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGFy
ZW50UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCBjb25zdCk6CisKIDIwMjAtMDYt
MjQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
IHRoZSBidWlsZCBvbmNlIFJCU1Byb2Nlc3NMaW1pdGF0aW9ucy5oIGlzIGludHJvZHVjZWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNz
SU9TLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJ
T1MubW0KaW5kZXggMTBhYjMyNDRkMWM5MTFiMjc0Njk4OWI3YTJkZGZkNGU1ZWE3N2EwYi4uYTBm
YmY5NzVmOWQ0YWI0NzNiNDA3NWE4YTdmNjk3MmEyNmM0ZjhhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KQEAgLTgx
LDcgKzgxLDcgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzczo6cGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VX
b3JrZXJFbnRpdGxlbWVudCgpIGNvbnN0CiAgICAgaWYgKGRpc2FibGVTZXJ2aWNlV29ya2VyRW50
aXRsZW1lbnRUZXN0aW5nT3ZlcnJpZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0
YXRpYyBib29sIGhhc0VudGl0bGVtZW50ID0gV1RGOjpoYXNFbnRpdGxlbWVudChwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT54cGNDb25uZWN0aW9uKCksICJjb20uYXBwbGUuZGV2ZWxvcGVyLldl
YktpdC5TZXJ2aWNlV29ya2VycyIpOworICAgIHN0YXRpYyBib29sIGhhc0VudGl0bGVtZW50ID0g
V1RGOjpoYXNFbnRpdGxlbWVudChwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT54cGNDb25uZWN0
aW9uKCksICJjb20uYXBwbGUuZGV2ZWxvcGVyLldlYktpdC5TZXJ2aWNlV29ya2VycyIpIHx8IFdU
Rjo6aGFzRW50aXRsZW1lbnQocGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+eHBjQ29ubmVjdGlv
bigpLCAiY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlciIpOwogICAgIHJldHVybiBoYXNF
bnRpdGxlbWVudDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KaW5kZXggMTI4ODRhZTAxNGM1ODAyNTg2YWJiN2M3MjEwNWVkOWE1NjdhYjgz
OS4uMTQ1N2IzOGRkMzM4MzM1NGQ1NzMyYjMwNmZhYTQ5YTY1OTFlYTI0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC01MjEsNyArNTIx
LDggQEAgLSAodm9pZClfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb24+JilwYWdlQ29uZmlndXJhdGlvbgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgaWYgKCghV1RGOjpwcm9jZXNz
SGFzRW50aXRsZW1lbnQoImNvbS5hcHBsZS5kZXZlbG9wZXIuV2ViS2l0LlNlcnZpY2VXb3JrZXJz
IikgfHwgISFbX2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLl9zZXJ2aWNlV29ya2VyRW50aXRs
ZW1lbnREaXNhYmxlZEZvclRlc3RpbmcpICYmICFbX2NvbmZpZ3VyYXRpb24gbGltaXRzTmF2aWdh
dGlvbnNUb0FwcEJvdW5kRG9tYWluc10pCisgICAgYm9vbCBoYXNTZXJ2aWNlV29ya2VyRW50aXRs
ZW1lbnQgPSAoV1RGOjpwcm9jZXNzSGFzRW50aXRsZW1lbnQoImNvbS5hcHBsZS5kZXZlbG9wZXIu
V2ViS2l0LlNlcnZpY2VXb3JrZXJzIikgfHwgV1RGOjpwcm9jZXNzSGFzRW50aXRsZW1lbnQoImNv
bS5hcHBsZS5kZXZlbG9wZXIud2ViLWJyb3dzZXIiKSkgJiYgIVtfY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10uX3NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudERpc2FibGVkRm9yVGVzdGluZzsKKyAg
ICBpZiAoIWhhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCAmJiAhW19jb25maWd1cmF0aW9uIGxp
bWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnNdKQogICAgICAgICBwYWdlQ29uZmlndXJh
dGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0U2VydmljZVdvcmtlcnNFbmFibGVkKGZhbHNlKTsKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+c2V0U2VydmljZVdvcmtlckVudGl0
bGVtZW50RGlzYWJsZWRGb3JUZXN0aW5nKCEhW19jb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5f
c2VydmljZVdvcmtlckVudGl0bGVtZW50RGlzYWJsZWRGb3JUZXN0aW5nKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpp
bmRleCBmZTM3NDM3MDE5Yjg4YWFjMDFhMGQ2MzQ3OGM3MWI1YzBmNDY0NjA5Li5jNzJhNGFlNjUy
Y2I2YjM4MjY5NWNmNjJjYjI2OWRkZWQ4MzMyNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTEwLDcgKzUxMCw3IEBA
IGJvb2wgV2ViUGFnZTo6cGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgp
IGNvbnN0CiAgICAgaWYgKGRpc2FibGVTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnRUZXN0aW5nT3Zl
cnJpZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBzdGF0aWMgYm9vbCBoYXNF
bnRpdGxlbWVudCA9IFdURjo6aGFzRW50aXRsZW1lbnQoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+eHBjQ29ubmVjdGlvbigpLCAiY29tLmFwcGxlLmRl
dmVsb3Blci5XZWJLaXQuU2VydmljZVdvcmtlcnMiKTsKKyAgICBzdGF0aWMgYm9vbCBoYXNFbnRp
dGxlbWVudCA9IFdURjo6aGFzRW50aXRsZW1lbnQoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+eHBjQ29ubmVjdGlvbigpLCAiY29tLmFwcGxlLmRldmVs
b3Blci5XZWJLaXQuU2VydmljZVdvcmtlcnMiKSB8fCBXVEY6Omhhc0VudGl0bGVtZW50KFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnhwY0Nvbm5lY3Rp
b24oKSwgImNvbS5hcHBsZS5kZXZlbG9wZXIud2ViLWJyb3dzZXIiKTsKICAgICByZXR1cm4gaGFz
RW50aXRsZW1lbnQ7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>