<?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>226798</bug_id>
          
          <creation_ts>2021-06-08 17:11:39 -0700</creation_ts>
          <short_desc>Nullptr crash in Page::libWebRTCProvider via RTCPeerConnection::generateCertificate</short_desc>
          <delta_ts>2021-06-09 21:53:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>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="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gpoo</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>product-security</cc>
    
    <cc>rbuis</cc>
    
    <cc>sergio</cc>
    
    <cc>svillar</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1767977</commentid>
    <comment_count>0</comment_count>
      <attachid>430917</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-06-08 17:11:39 -0700</bug_when>
    <thetext>Created attachment 430917
Test

e.g.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x000000010b51ef1e std::__1::unique_ptr&lt;WebCore::LibWebRTCProvider, std::__1::default_delete&lt;WebCore::LibWebRTCProvider&gt; &gt;::operator*() const + 0 (memory:2310) [inlined]
1   com.apple.WebCore             	0x000000010b51ef1e WTF::UniqueRef&lt;WebCore::LibWebRTCProvider&gt;::get() + 0 (UniqueRef.h:70) [inlined]
2   com.apple.WebCore             	0x000000010b51ef1e WebCore::Page::libWebRTCProvider() + 0 (Page.h:313) [inlined]
3   com.apple.WebCore             	0x000000010b51ef1e WebCore::PeerConnectionBackend::generateCertificate(WebCore::Document&amp;, WebCore::PeerConnectionBackend::CertificateInformation const&amp;, WebCore::DOMPromiseDeferred&lt;WebCore::IDLInterface&lt;WebCore::RTCCertificate&gt; &gt;&amp;&amp;) + 46 (PeerConnectionBackend.cpp:609)
4   com.apple.WebCore             	0x000000010b5482a4 WebCore::RTCPeerConnection::generateCertificate(JSC::JSGlobalObject&amp;, WTF::Variant&lt;JSC::Strong&lt;JSC::JSObject, (JSC::ShouldStrongDestructorGrabLock)0&gt;, WTF::String&gt;&amp;&amp;, WebCore::DOMPromiseDeferred&lt;WebCore::IDLInterface&lt;WebCore::RTCCertificate&gt; &gt;&amp;&amp;) + 964 (RTCPeerConnection.cpp:772)
5   com.apple.WebCore             	0x000000010afa34fd WebCore::jsRTCPeerConnectionConstructorFunction_generateCertificateBody(JSC::JSGlobalObject*, JSC::CallFrame*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)::&apos;lambda&apos;()::operator()() const + 20 (JSRTCPeerConnection.cpp:1079) [inlined]
6   com.apple.WebCore             	0x000000010afa34fd JSC::JSValue WebCore::toJS&lt;WebCore::IDLPromise&lt;WebCore::IDLInterface&lt;WebCore::RTCCertificate&gt; &gt;, WebCore::jsRTCPeerConnectionConstructorFunction_generateCertificateBody(JSC::JSGlobalObject*, JSC::CallFrame*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)::&apos;lambda&apos;()&gt;(JSC::JSGlobalObject&amp;, WebCore::JSDOMGlobalObject&amp;, JSC::ThrowScope&amp;, WebCore::jsRTCPeerConnectionConstructorFunction_generateCertificateBody(JSC::JSGlobalObject*, JSC::CallFrame*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)::&apos;lambda&apos;()&amp;&amp;) + 20 (JSDOMConvertBase.h:195) [inlined]
7   com.apple.WebCore             	0x000000010afa34fd WebCore::jsRTCPeerConnectionConstructorFunction_generateCertificateBody(JSC::JSGlobalObject*, JSC::CallFrame*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;) + 71 (JSRTCPeerConnection.cpp:1079) [inlined]
8   com.apple.WebCore             	0x000000010afa34fd long long WebCore::IDLOperationReturningPromise&lt;WebCore::JSRTCPeerConnection&gt;::callStatic&lt;&amp;(WebCore::jsRTCPeerConnectionConstructorFunction_generateCertificateBody(JSC::JSGlobalObject*, JSC::CallFrame*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)), (WebCore::CastedThisErrorBehavior)2&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*)::&apos;lambda&apos;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)::operator()(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;) const + 71 (JSDOMOperationReturningPromise.h:79) [inlined]
9   com.apple.WebCore             	0x000000010afa34fd JSC::JSValue WebCore::callPromiseFunction&lt;long long WebCore::IDLOperationReturningPromise&lt;WebCore::JSRTCPeerConnection&gt;::callStatic&lt;&amp;(WebCore::jsRTCPeerConnectionConstructorFunction_generateCertificateBody(JSC::JSGlobalObject*, JSC::CallFrame*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)), (WebCore::CastedThisErrorBehavior)2&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*)::&apos;lambda&apos;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, &amp;(WebCore::jsRTCPeerConnectionConstructorFunction_generateCertificateBody(JSC::JSGlobalObject*, JSC::CallFrame*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;))) + 251 (JSDOMPromiseDeferred.h:337) [inlined]
10  com.apple.WebCore             	0x000000010afa34fd long long WebCore::IDLOperationReturningPromise&lt;WebCore::JSRTCPeerConnection&gt;::callStatic&lt;&amp;(WebCore::jsRTCPeerConnectionConstructorFunction_generateCertificateBody(JSC::JSGlobalObject*, JSC::CallFrame*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)), (WebCore::CastedThisErrorBehavior)2&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*) + 251 (JSDOMOperationReturningPromise.h:77) [inlined]
11  com.apple.WebCore             	0x000000010afa34fd WebCore::jsRTCPeerConnectionConstructorFunction_generateCertificate(JSC::JSGlobalObject*, JSC::CallFrame*) + 285 (JSRTCPeerConnection.cpp:1084)

&lt;rdar://78765971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767978</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-06-08 17:12:45 -0700</bug_when>
    <thetext>Reproduced with non-ASAN release build of WebKitTestRunner at r278627.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768100</commentid>
    <comment_count>2</comment_count>
      <attachid>430946</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-06-09 01:29:20 -0700</bug_when>
    <thetext>Created attachment 430946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768108</commentid>
    <comment_count>3</comment_count>
      <attachid>430946</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-09 01:51:59 -0700</bug_when>
    <thetext>Comment on attachment 430946
Patch

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

&gt; Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:612
&gt; +        promise.reject(InvalidStateError);

I would go with something like:
auto* page = document.page();
if (!page) {
    promise.reject(InvalidStateError);
    return;
}
LibWebRTCCertificateGenerator::generateCertificate(...);

&gt; LayoutTests/ChangeLog:8
&gt; +        Add test for this.

Comment not really needed

&gt; LayoutTests/webrtc/RTCPeerConnection-generateCertificate-crash.html:7
&gt; +        await RTCPeerConnection.generateCertificate({

We can probably have a simpler test using an iframe that we detached before calling generateCertificate, something like:

promise_test(async (t) =&gt; {
  const iframe = await with_iframe(&apos;/&apos;); //requires http.
  const pc = iframe.contentWindow.RTCPeerConnection;
  iframe.remove();
  return promise_rejects(... pc.generateCertificate...)
});</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768116</commentid>
    <comment_count>4</comment_count>
      <attachid>430949</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-06-09 02:53:20 -0700</bug_when>
    <thetext>Created attachment 430949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768117</commentid>
    <comment_count>5</comment_count>
      <attachid>430946</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-06-09 02:54:14 -0700</bug_when>
    <thetext>Comment on attachment 430946
Patch

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

&gt;&gt; Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:612
&gt;&gt; +        promise.reject(InvalidStateError);
&gt; 
&gt; I would go with something like:
&gt; auto* page = document.page();
&gt; if (!page) {
&gt;     promise.reject(InvalidStateError);
&gt;     return;
&gt; }
&gt; LibWebRTCCertificateGenerator::generateCertificate(...);

Sure, done.

&gt;&gt; LayoutTests/ChangeLog:8
&gt;&gt; +        Add test for this.
&gt; 
&gt; Comment not really needed

Removed.

&gt;&gt; LayoutTests/webrtc/RTCPeerConnection-generateCertificate-crash.html:7
&gt;&gt; +        await RTCPeerConnection.generateCertificate({
&gt; 
&gt; We can probably have a simpler test using an iframe that we detached before calling generateCertificate, something like:
&gt; 
&gt; promise_test(async (t) =&gt; {
&gt;   const iframe = await with_iframe(&apos;/&apos;); //requires http.
&gt;   const pc = iframe.contentWindow.RTCPeerConnection;
&gt;   iframe.remove();
&gt;   return promise_rejects(... pc.generateCertificate...)
&gt; });

Nice! Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768118</commentid>
    <comment_count>6</comment_count>
      <attachid>430949</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-09 02:55:54 -0700</bug_when>
    <thetext>Comment on attachment 430949
Patch

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

&gt; LayoutTests/http/wpt/webrtc/RTCPeerConnection-generateCertificate-crash.html:31
&gt; +  return promise_rejects(pc.generateCertificate({ name: &apos;ECDSA&apos;, namedCurve: &apos;P-256&apos;}));

promise_rejects_js is directly available in testharness.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768124</commentid>
    <comment_count>7</comment_count>
      <attachid>430949</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-06-09 03:14:24 -0700</bug_when>
    <thetext>Comment on attachment 430949
Patch

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

&gt;&gt; LayoutTests/http/wpt/webrtc/RTCPeerConnection-generateCertificate-crash.html:31
&gt;&gt; +  return promise_rejects(pc.generateCertificate({ name: &apos;ECDSA&apos;, namedCurve: &apos;P-256&apos;}));
&gt; 
&gt; promise_rejects_js is directly available in testharness.js

Sadly that does not work as InvalidStateError is not exposed to JS (like TypeError etc.).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768139</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-09 05:00:25 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768142</commentid>
    <comment_count>9</comment_count>
      <attachid>430954</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-06-09 05:18:55 -0700</bug_when>
    <thetext>Created attachment 430954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768239</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-09 10:58:53 -0700</bug_when>
    <thetext>Found 1 new test failure: imported/w3c/web-platform-tests/navigation-timing/nav2_test_attributes_values.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768444</commentid>
    <comment_count>11</comment_count>
      <attachid>431045</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-06-09 19:58:02 -0700</bug_when>
    <thetext>Created attachment 431045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768461</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-09 21:53:03 -0700</bug_when>
    <thetext>Committed r278692 (238666@main): &lt;https://commits.webkit.org/238666@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431045.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>430917</attachid>
            <date>2021-06-08 17:11:39 -0700</date>
            <delta_ts>2021-06-08 17:11:39 -0700</delta_ts>
            <desc>Test</desc>
            <filename>repro_668.html</filename>
            <type>text/html</type>
            <size>363</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KICB3aW5kb3cudGVzdFJ1bm5lcj8ud2FpdFVudGlsRG9uZSgpOwogIChhc3luYyAo
KSA9PiB7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKICAgICAgYXdhaXQg
UlRDUGVlckNvbm5lY3Rpb24uZ2VuZXJhdGVDZXJ0aWZpY2F0ZSh7CiAgICAgICAgbmFtZTogJ0VD
RFNBJywKICAgICAgICBuYW1lZEN1cnZlOiAnUC0yNTYnCiAgICAgIH0pOwogICAgfQogIH0pKCk7
CiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICB9LCAxMDApOwog
IHNldFRpbWVvdXQoKCkgPT4gewogICAgd2luZG93LnRlc3RSdW5uZXI/Lm5vdGlmeURvbmUoKTsK
ICB9LCAyMDApOwo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430946</attachid>
            <date>2021-06-09 01:29:20 -0700</date>
            <delta_ts>2021-06-09 02:53:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226798-20210609102918.patch</filename>
            <type>text/plain</type>
            <size>3927</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2YzOGEzNTBkOTdlODM0
OWJmZGM1YWVjMjgxYWI4YmFjNjQ1YTU0ZS4uZmRhNWFkMjc5ZDU2N2RiYTMyN2U1NWRkZTc3OGJk
ZWY4Y2ZiYjg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA2LTA5ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTnVsbCBjaGVjayBwYWdlIGluIGdl
bmVyYXRlQ2VydGlmaWNhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE51bGwgY2hlY2sgcGFnZSBpbiBnZW5lcmF0ZUNlcnRpZmljYXRlLgorCisgICAg
ICAgIFRlc3RzOiB3ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1j
cmFzaC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9u
QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6Omdl
bmVyYXRlQ2VydGlmaWNhdGUpOgorCiAyMDIxLTA2LTA3ICBBbGljaWEgQm95YSBHYXJjw61hICA8
YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBBZGQgY2xhbmcgVFNBIGFu
bm90YXRpb25zOiBNYWluVGhyZWFkTm90aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRl
eCA2ZGFiMWVmN2I2ZWU2Yjg3NmYyOGM0Y2EzODc4ZWQwMWI1ODQyNGFmLi41NzRmYjM5OWU2ZDNk
MmJiZjMzOWM5OTgzYTM5ZTY3NTY0Yjc2N2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBA
IC02MDYsNyArNjA2LDEwIEBAIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBUcmFuc2NlaXZlcj4+IFBl
ZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkVHJhbnNjZWl2ZXIoUmVmPE1lCiB2b2lkIFBlZXJDb25u
ZWN0aW9uQmFja2VuZDo6Z2VuZXJhdGVDZXJ0aWZpY2F0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IENlcnRpZmljYXRlSW5mb3JtYXRpb24mIGluZm8sIERPTVByb21pc2VEZWZlcnJlZDxJRExJ
bnRlcmZhY2U8UlRDQ2VydGlmaWNhdGU+PiYmIHByb21pc2UpCiB7CiAjaWYgVVNFKExJQldFQlJU
QykKLSAgICBMaWJXZWJSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvcjo6Z2VuZXJhdGVDZXJ0aWZpY2F0
ZShkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCBkb2N1bWVudC5wYWdlKCktPmxpYldlYlJUQ1By
b3ZpZGVyKCksIGluZm8sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGlmIChkb2N1bWVudC5wYWdl
KCkpCisgICAgICAgIExpYldlYlJUQ0NlcnRpZmljYXRlR2VuZXJhdG9yOjpnZW5lcmF0ZUNlcnRp
ZmljYXRlKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIGRvY3VtZW50LnBhZ2UoKS0+bGliV2Vi
UlRDUHJvdmlkZXIoKSwgaW5mbywgV1RGTW92ZShwcm9taXNlKSk7CisgICAgZWxzZQorICAgICAg
ICBwcm9taXNlLnJlamVjdChJbnZhbGlkU3RhdGVFcnJvcik7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShkb2N1bWVudCk7CiAgICAgVU5VU0VEX1BBUkFNKGV4cGlyZXMpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdjN2I4
Mzc5MGNmM2JmYWM1NzkxMDVjNmM5ODMzYTc4ZjFhNmEzNDAuLmFjMDIxMTI0N2JiNTQzM2Q0NzNl
ZDRjZmIzMzMwODM0MzhkMjRkZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0wNi0wOSAg
Um9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE51bGwgY2hlY2sgcGFnZSBp
biBnZW5lcmF0ZUNlcnRpZmljYXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjY3OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgdGVzdCBmb3IgdGhpcy4KKworICAgICAgICAqIHdlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNh
dGUtY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMjEtMDYtMDcgIEFkaXR5YSBLZWVydGhpICA8YWtl
ZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFVuZXhwZWN0ZWQgc2Nyb2xsaW5nIHdo
ZW4gc3dpdGNoaW5nIGZvY3VzIGZyb20gYSB0ZXh0IGlucHV0IHRvIGEgc2VsZWN0IGVsZW1lbnQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0
ZUNlcnRpZmljYXRlLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZmE1OTM2ZmQwMGNlZGFlNjNjMTQyMzAzZmVhODE1ZTQ0NDIzNzJlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRl
Q2VydGlmaWNhdGUtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1Bhc3NlcyBpZiBp
dCBkb2Vzbid0IGNyYXNoIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLWNyYXNoLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTBhYzI0YzcwYTdjZjIwOWY3OTMzYmUxMmIwNDJlMWYwOGRlZTJlZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0
ZUNlcnRpZmljYXRlLWNyYXNoLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPHNjcmlwdD4KKyAgd2lu
ZG93LnRlc3RSdW5uZXI/LmR1bXBBc1RleHQoKTsKKyAgd2luZG93LnRlc3RSdW5uZXI/LndhaXRV
bnRpbERvbmUoKTsKKyAgKGFzeW5jICgpID0+IHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEw
MDAwOyBpKyspIHsKKyAgICAgIHRyeSB7CisgICAgICAgIGF3YWl0IFJUQ1BlZXJDb25uZWN0aW9u
LmdlbmVyYXRlQ2VydGlmaWNhdGUoeworICAgICAgICAgIG5hbWU6ICdFQ0RTQScsCisgICAgICAg
ICAgbmFtZWRDdXJ2ZTogJ1AtMjU2JworICAgICAgICB9KTsKKyAgICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgd2luZG93LnRlc3RSdW5uZXI/Lm5vdGlmeURvbmUoKTsKKyAgICAgIH0KKyAgICB9
CisgIH0pKCk7CisgIHNldFRpbWVvdXQoKCkgPT4geworICAgIGxvY2F0aW9uLnJlbG9hZCgpOwor
ICB9LCAxMDApOworPC9zY3JpcHQ+CitQYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaCEK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430949</attachid>
            <date>2021-06-09 02:53:20 -0700</date>
            <delta_ts>2021-06-09 05:18:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226798-20210609115318.patch</filename>
            <type>text/plain</type>
            <size>4533</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTZmZTUwMWU3NjRhYTU4
ODBlOGUzMTUzYzkyNmJhMDZjMTkxYjE1OS4uMzVlYzkxNGNhNTA5NzNjMTA2Mjk1YWQyMzQ3MGJh
NTg1ZTBmYjliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA2LTA5ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTnVsbCBjaGVjayBwYWdlIGluIGdl
bmVyYXRlQ2VydGlmaWNhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisK
KyAgICAgICAgTnVsbCBjaGVjayBwYWdlIGluIGdlbmVyYXRlQ2VydGlmaWNhdGUuCisKKyAgICAg
ICAgVGVzdDogaHR0cC93cHQvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlm
aWNhdGUtY3Jhc2guaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpnZW5lcmF0ZUNlcnRpZmljYXRlKToKKwogMjAyMS0wNi0wOSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbHkgb24gU1FMaXRlRGF0YWJhc2U6OnNldE1h
eGltdW1TaXplKCkgZm9yIHF1b3RhIG1hbmFnZW1lbnQgaW4gTG9jYWxTdG9yYWdlRGF0YWJhc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5l
Y3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCA2ZGFiMWVmN2I2ZWU2Yjg3NmYyOGM0Y2EzODc4
ZWQwMWI1ODQyNGFmLi42YTgyM2Q2MWFkMTAxMDMyYmJlMTk0YTYyYjViNjE1NmQyM2NhYjEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Q
ZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC02MDYsNyArNjA2LDEyIEBAIEV4Y2VwdGlvbk9y
PFJlZjxSVENSdHBUcmFuc2NlaXZlcj4+IFBlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkVHJhbnNj
ZWl2ZXIoUmVmPE1lCiB2b2lkIFBlZXJDb25uZWN0aW9uQmFja2VuZDo6Z2VuZXJhdGVDZXJ0aWZp
Y2F0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IENlcnRpZmljYXRlSW5mb3JtYXRpb24mIGlu
Zm8sIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8UlRDQ2VydGlmaWNhdGU+PiYmIHBy
b21pc2UpCiB7CiAjaWYgVVNFKExJQldFQlJUQykKLSAgICBMaWJXZWJSVENDZXJ0aWZpY2F0ZUdl
bmVyYXRvcjo6Z2VuZXJhdGVDZXJ0aWZpY2F0ZShkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCBk
b2N1bWVudC5wYWdlKCktPmxpYldlYlJUQ1Byb3ZpZGVyKCksIGluZm8sIFdURk1vdmUocHJvbWlz
ZSkpOworICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKSB7
CisgICAgICAgIHByb21pc2UucmVqZWN0KEludmFsaWRTdGF0ZUVycm9yKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBMaWJXZWJSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvcjo6Z2VuZXJhdGVD
ZXJ0aWZpY2F0ZShkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCBwYWdlLT5saWJXZWJSVENQcm92
aWRlcigpLCBpbmZvLCBXVEZNb3ZlKHByb21pc2UpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KGRvY3VtZW50KTsKICAgICBVTlVTRURfUEFSQU0oZXhwaXJlcyk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmFhM2E5YjZj
NDFlZmJkOGVjYjhmMWU1MmRmN2ZjZGM3ODE5MDdmMy4uZjg5NGE4NzJhOTgwYjJmOWMyMThmYzc4
M2EyNmE2NmYwNGQ3MjliZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTA5ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTnVsbCBjaGVjayBwYWdlIGluIGdl
bmVyYXRlQ2VydGlmaWNhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2Vy
dGlmaWNhdGUtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1jcmFzaC5odG1sOiBB
ZGRlZC4KKwogMjAyMS0wNi0wOSAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHTElCXVtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIE1hcmsg
Zmxha2V5IHRlc3RzIGFzIHRpbWVvdXQgb25seS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLWNyYXNo
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MGY2ZDdjMDljMmEzZDEwZjdiMTEyOGU1MjA0NjBhMjc0ZDhiNTMzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRl
Q2VydGlmaWNhdGUtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorUGFzc2VzIGlm
IGl0IGRvZXNuJ3QgY3Jhc2ghCisKK1BBU1MgUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0
aWZpY2F0ZS1jcmFzaAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1jcmFzaC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNh
dGUtY3Jhc2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmRiMTU2OWYwMGQ5NjM5NTBjOGMyYTYxNjZhMjgy
OWIwY2U0ZTgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUtY3Jhc2guaHRtbApAQCAtMCww
ICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK2FzeW5jIGZ1bmN0aW9uIHByb21pc2VfcmVqZWN0cyhwcm9taXNlKQor
eworICAgIHJldHVybiBwcm9taXNlLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gIkZBSUwi
OworICAgIH0sIChlKSA9PiB7CisgICAgICAgIHJldHVybiBlLm5hbWUgPT09ICdUeXBlRXJyb3In
ID8gJ1BBU1MnIDogJ0dvdCBlcnJvciAnICsgZTsKKyAgICB9KSAgCit9CisKK2Z1bmN0aW9uIHdp
dGhfaWZyYW1lKHVybCkgeworICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkg
eworICAgICAgdmFyIGZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Cisg
ICAgICBmcmFtZS5zcmMgPSB1cmw7CisgICAgICBmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsg
cmVzb2x2ZShmcmFtZSk7IH07CisgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZyYW1l
KTsKKyAgICB9KTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IGlm
cmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKCcvJyk7CisgIGNvbnN0IHBjID0gaWZyYW1lLmNvbnRl
bnRXaW5kb3cuUlRDUGVlckNvbm5lY3Rpb247CisgIGlmcmFtZS5yZW1vdmUoKTsKKyAgcmV0dXJu
IHByb21pc2VfcmVqZWN0cyhwYy5nZW5lcmF0ZUNlcnRpZmljYXRlKHsgbmFtZTogJ0VDRFNBJywg
bmFtZWRDdXJ2ZTogJ1AtMjU2J30pKTsKK30pOworPC9zY3JpcHQ+CitQYXNzZXMgaWYgaXQgZG9l
c24ndCBjcmFzaCEKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430954</attachid>
            <date>2021-06-09 05:18:55 -0700</date>
            <delta_ts>2021-06-09 19:57:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226798-20210609141853.patch</filename>
            <type>text/plain</type>
            <size>4508</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc2NjBmZTg3MWM3YjRj
NWVjNjlmOGZkZDYyNzZlZjEzNDliOTE1Yy4uZjBkY2M1N2VkMmRmMDVmYTEwZDMxNWE5YTMyYmNj
MWRkYTZkZGRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA2LTA5ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTnVsbCBjaGVjayBwYWdlIGluIGdl
bmVyYXRlQ2VydGlmaWNhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisK
KyAgICAgICAgTnVsbCBjaGVjayBwYWdlIGluIGdlbmVyYXRlQ2VydGlmaWNhdGUuCisKKyAgICAg
ICAgVGVzdDogaHR0cC93cHQvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlm
aWNhdGUtY3Jhc2guaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpnZW5lcmF0ZUNlcnRpZmljYXRlKToKKwogMjAyMS0wNi0wOSAgQWxpY2lhIEJveWEgR2Fy
Y8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dURl1bR1N0cmVhbWVyXSBBZGQg
UkFJSSBsb2NrZXJzIGZvciAzcmQgcGFydHkgbG9ja3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApp
bmRleCA2ZGFiMWVmN2I2ZWU2Yjg3NmYyOGM0Y2EzODc4ZWQwMWI1ODQyNGFmLi42YTgyM2Q2MWFk
MTAxMDMyYmJlMTk0YTYyYjViNjE1NmQyM2NhYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
CkBAIC02MDYsNyArNjA2LDEyIEBAIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBUcmFuc2NlaXZlcj4+
IFBlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkVHJhbnNjZWl2ZXIoUmVmPE1lCiB2b2lkIFBlZXJD
b25uZWN0aW9uQmFja2VuZDo6Z2VuZXJhdGVDZXJ0aWZpY2F0ZShEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IENlcnRpZmljYXRlSW5mb3JtYXRpb24mIGluZm8sIERPTVByb21pc2VEZWZlcnJlZDxJ
RExJbnRlcmZhY2U8UlRDQ2VydGlmaWNhdGU+PiYmIHByb21pc2UpCiB7CiAjaWYgVVNFKExJQldF
QlJUQykKLSAgICBMaWJXZWJSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvcjo6Z2VuZXJhdGVDZXJ0aWZp
Y2F0ZShkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCBkb2N1bWVudC5wYWdlKCktPmxpYldlYlJU
Q1Byb3ZpZGVyKCksIGluZm8sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8qIHBhZ2UgPSBk
b2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0
KEludmFsaWRTdGF0ZUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBMaWJXZWJS
VENDZXJ0aWZpY2F0ZUdlbmVyYXRvcjo6Z2VuZXJhdGVDZXJ0aWZpY2F0ZShkb2N1bWVudC5zZWN1
cml0eU9yaWdpbigpLCBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLCBpbmZvLCBXVEZNb3ZlKHBy
b21pc2UpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKICAgICBVTlVTRURf
UEFSQU0oZXhwaXJlcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmFhM2E5YjZjNDFlZmJkOGVjYjhmMWU1MmRmN2ZjZGM3
ODE5MDdmMy4uOWI0MzA2MWQ4MjY2NTYyMTA1ZmM5YTg4Yzc2OWQzZmQ0OTZmZTc2YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTA5ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+
CisKKyAgICAgICAgTnVsbCBjaGVjayBwYWdlIGluIGdlbmVyYXRlQ2VydGlmaWNhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjc5OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBodHRwL3dwdC93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1jcmFzaC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1n
ZW5lcmF0ZUNlcnRpZmljYXRlLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA2LTA5ICBEaWVn
byBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdW0dUS10g
VW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4gTWFyayBmbGFrZXkgdGVzdHMgYXMgdGltZW91dCBv
bmx5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUt
Y3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwZjZkN2MwOWMyYTNkMTBmN2IxMTI4ZTUy
MDQ2MGEyNzRkOGI1MzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1jcmFzaC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitQYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaCEKKworUEFT
UyBSVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLWNyYXNoCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0
ZUNlcnRpZmljYXRlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1jcmFzaC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJmZGIxNTY5ZjAwZDk2Mzk1MGM4YzJhNjE2NmEyODI5YjBjZTRlODMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJh
dGVDZXJ0aWZpY2F0ZS1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorYXN5bmMgZnVu
Y3Rpb24gcHJvbWlzZV9yZWplY3RzKHByb21pc2UpCit7CisgICAgcmV0dXJuIHByb21pc2UudGhl
bigoKSA9PiB7CisgICAgICAgIHJldHVybiAiRkFJTCI7CisgICAgfSwgKGUpID0+IHsKKyAgICAg
ICAgcmV0dXJuIGUubmFtZSA9PT0gJ1R5cGVFcnJvcicgPyAnUEFTUycgOiAnR290IGVycm9yICcg
KyBlOworICAgIH0pICAKK30KKworZnVuY3Rpb24gd2l0aF9pZnJhbWUodXJsKSB7CisgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICB2YXIgZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICAgIGZyYW1lLnNyYyA9IHVybDsKKyAg
ICAgIGZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyByZXNvbHZlKGZyYW1lKTsgfTsKKyAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgIH0pOworfQorCitwcm9taXNl
X3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgaWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUo
Jy8nKTsKKyAgY29uc3QgcGMgPSBpZnJhbWUuY29udGVudFdpbmRvdy5SVENQZWVyQ29ubmVjdGlv
bjsKKyAgaWZyYW1lLnJlbW92ZSgpOworICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHBjLmdlbmVy
YXRlQ2VydGlmaWNhdGUoeyBuYW1lOiAnRUNEU0EnLCBuYW1lZEN1cnZlOiAnUC0yNTYnfSkpOwor
fSk7Cis8L3NjcmlwdD4KK1Bhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoIQorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431045</attachid>
            <date>2021-06-09 19:58:02 -0700</date>
            <delta_ts>2021-06-09 21:53:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226798-20210610045801.patch</filename>
            <type>text/plain</type>
            <size>4508</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc2NjBmZTg3MWM3YjRj
NWVjNjlmOGZkZDYyNzZlZjEzNDliOTE1Yy4uZjBkY2M1N2VkMmRmMDVmYTEwZDMxNWE5YTMyYmNj
MWRkYTZkZGRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA2LTA5ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTnVsbCBjaGVjayBwYWdlIGluIGdl
bmVyYXRlQ2VydGlmaWNhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNjc5OAorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisK
KyAgICAgICAgTnVsbCBjaGVjayBwYWdlIGluIGdlbmVyYXRlQ2VydGlmaWNhdGUuCisKKyAgICAg
ICAgVGVzdDogaHR0cC93cHQvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlm
aWNhdGUtY3Jhc2guaHRtbAorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVlckNvbm5lY3Rpb25CYWNr
ZW5kOjpnZW5lcmF0ZUNlcnRpZmljYXRlKToKKwogMjAyMS0wNi0wOSAgQWxpY2lhIEJveWEgR2Fy
Y8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dURl1bR1N0cmVhbWVyXSBBZGQg
UkFJSSBsb2NrZXJzIGZvciAzcmQgcGFydHkgbG9ja3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApp
bmRleCA2ZGFiMWVmN2I2ZWU2Yjg3NmYyOGM0Y2EzODc4ZWQwMWI1ODQyNGFmLi42YTgyM2Q2MWFk
MTAxMDMyYmJlMTk0YTYyYjViNjE1NmQyM2NhYjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
CkBAIC02MDYsNyArNjA2LDEyIEBAIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBUcmFuc2NlaXZlcj4+
IFBlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkVHJhbnNjZWl2ZXIoUmVmPE1lCiB2b2lkIFBlZXJD
b25uZWN0aW9uQmFja2VuZDo6Z2VuZXJhdGVDZXJ0aWZpY2F0ZShEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IENlcnRpZmljYXRlSW5mb3JtYXRpb24mIGluZm8sIERPTVByb21pc2VEZWZlcnJlZDxJ
RExJbnRlcmZhY2U8UlRDQ2VydGlmaWNhdGU+PiYmIHByb21pc2UpCiB7CiAjaWYgVVNFKExJQldF
QlJUQykKLSAgICBMaWJXZWJSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvcjo6Z2VuZXJhdGVDZXJ0aWZp
Y2F0ZShkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLCBkb2N1bWVudC5wYWdlKCktPmxpYldlYlJU
Q1Byb3ZpZGVyKCksIGluZm8sIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8qIHBhZ2UgPSBk
b2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKSB7CisgICAgICAgIHByb21pc2UucmVqZWN0
KEludmFsaWRTdGF0ZUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBMaWJXZWJS
VENDZXJ0aWZpY2F0ZUdlbmVyYXRvcjo6Z2VuZXJhdGVDZXJ0aWZpY2F0ZShkb2N1bWVudC5zZWN1
cml0eU9yaWdpbigpLCBwYWdlLT5saWJXZWJSVENQcm92aWRlcigpLCBpbmZvLCBXVEZNb3ZlKHBy
b21pc2UpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKICAgICBVTlVTRURf
UEFSQU0oZXhwaXJlcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmFhM2E5YjZjNDFlZmJkOGVjYjhmMWU1MmRmN2ZjZGM3
ODE5MDdmMy4uOWI0MzA2MWQ4MjY2NTYyMTA1ZmM5YTg4Yzc2OWQzZmQ0OTZmZTc2YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTA5ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+
CisKKyAgICAgICAgTnVsbCBjaGVjayBwYWdlIGluIGdlbmVyYXRlQ2VydGlmaWNhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjc5OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBodHRwL3dwdC93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1jcmFzaC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1n
ZW5lcmF0ZUNlcnRpZmljYXRlLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA2LTA5ICBEaWVn
byBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dMSUJdW0dUS10g
VW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4gTWFyayBmbGFrZXkgdGVzdHMgYXMgdGltZW91dCBv
bmx5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdlbmVyYXRlQ2VydGlmaWNhdGUt
Y3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwZjZkN2MwOWMyYTNkMTBmN2IxMTI4ZTUy
MDQ2MGEyNzRkOGI1MzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1jcmFzaC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitQYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaCEKKworUEFT
UyBSVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLWNyYXNoCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZW5lcmF0
ZUNlcnRpZmljYXRlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS1jcmFzaC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJmZGIxNTY5ZjAwZDk2Mzk1MGM4YzJhNjE2NmEyODI5YjBjZTRlODMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2VuZXJh
dGVDZXJ0aWZpY2F0ZS1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorYXN5bmMgZnVu
Y3Rpb24gcHJvbWlzZV9yZWplY3RzKHByb21pc2UpCit7CisgICAgcmV0dXJuIHByb21pc2UudGhl
bigoKSA9PiB7CisgICAgICAgIHJldHVybiAiRkFJTCI7CisgICAgfSwgKGUpID0+IHsKKyAgICAg
ICAgcmV0dXJuIGUubmFtZSA9PT0gJ1R5cGVFcnJvcicgPyAnUEFTUycgOiAnR290IGVycm9yICcg
KyBlOworICAgIH0pICAKK30KKworZnVuY3Rpb24gd2l0aF9pZnJhbWUodXJsKSB7CisgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7CisgICAgICB2YXIgZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICAgIGZyYW1lLnNyYyA9IHVybDsKKyAg
ICAgIGZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyByZXNvbHZlKGZyYW1lKTsgfTsKKyAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgIH0pOworfQorCitwcm9taXNl
X3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgaWZyYW1lID0gYXdhaXQgd2l0aF9pZnJhbWUo
Jy8nKTsKKyAgY29uc3QgcGMgPSBpZnJhbWUuY29udGVudFdpbmRvdy5SVENQZWVyQ29ubmVjdGlv
bjsKKyAgaWZyYW1lLnJlbW92ZSgpOworICByZXR1cm4gcHJvbWlzZV9yZWplY3RzKHBjLmdlbmVy
YXRlQ2VydGlmaWNhdGUoeyBuYW1lOiAnRUNEU0EnLCBuYW1lZEN1cnZlOiAnUC0yNTYnfSkpOwor
fSk7Cis8L3NjcmlwdD4KK1Bhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoIQorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>