<?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>224377</bug_id>
          
          <creation_ts>2021-04-09 10:24:35 -0700</creation_ts>
          <short_desc>Crash under WebProcessProxy::shouldSendPendingMessage()</short_desc>
          <delta_ts>2021-04-12 13:20:20 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=222992</see_also>
          <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>
          
          <blocked>224448</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1748775</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-09 10:24:35 -0700</bug_when>
    <thetext>Crash under WebProcessProxy::shouldSendPendingMessage():
```
Thread[0] EXC_BAD_ACCESS (SIGSEGV) (KERN_INVALID_ADDRESS at 0x0000000000000000)
[  0] 0x0000000190ba03cc WebKit`WebKit::WebProcessProxy::shouldSendPendingMessage(WebKit::AuxiliaryProcessProxy::PendingMessage const&amp;) [inlined] IPC::Encoder::messageName() const at Encoder.h:50:46
       46  	    Encoder(MessageName, uint64_t destinationID);
       47  	    ~Encoder();
       48  	
       49  	    ReceiverName messageReceiverName() const { return receiverName(m_messageName); }
    -&gt; 50  	    MessageName messageName() const { return m_messageName; }
       51  	    uint64_t destinationID() const { return m_destinationID; }
       52  	
       53  	    bool isSyncMessage() const { return messageIsSync(messageName()); }
       54  	
    

     0x0000000190ba03bc:      stp x29, x30, [sp, #0x40]
     0x0000000190ba03c0:      add x29, sp, #0x40       ; =0x40 
     0x0000000190ba03c4:      sub sp, sp, #0x240       ; =0x240 
     0x0000000190ba03c8:      ldr x8, [x1]
 -&gt;  0x0000000190ba03cc:     ldrh w22, [x8]
     0x0000000190ba03d0:      cmp w22, #0x65a          ; =0x65a 
     0x0000000190ba03d4:     b.ne 0x4395d0             ; &lt;+552&gt; at WebProcessProxy.cpp:396:40
     0x0000000190ba03d8:      mov x19, x0
     0x0000000190ba03dc:      ldr x0, [x8, #0x210]

[  0] 0x0000000190ba03cc WebKit`WebKit::WebProcessProxy::shouldSendPendingMessage(WebKit::AuxiliaryProcessProxy::PendingMessage const&amp;) + 36 at WebProcessProxy.cpp:396
       392 	#endif
       393 	
       394 	bool WebProcessProxy::shouldSendPendingMessage(const PendingMessage&amp; message)
       395 	{
    -&gt; 396 	    if (message.encoder-&gt;messageName() == IPC::MessageName::WebPage_LoadRequestWaitingForProcessLaunch) {
       397 	        auto buffer = message.encoder-&gt;buffer();
       398 	        auto bufferSize = message.encoder-&gt;bufferSize();
       399 	        auto decoder = IPC::Decoder::create(buffer, bufferSize, nullptr, { });
       400 	        ASSERT(decoder);
    
[  1] 0x0000000190abd88b WebKit`WebKit::AuxiliaryProcessProxy::didFinishLaunching(WebKit::ProcessLauncher*, IPC::Connection::Identifier) + 351 at AuxiliaryProcessProxy.cpp:242:14
       238 	    connectionWillOpen(*m_connection);
       239 	    m_connection-&gt;open();
       240 	
       241 	    for (auto&amp;&amp; pendingMessage : std::exchange(m_pendingMessages, { })) {
    -&gt; 242 	        if (!shouldSendPendingMessage(pendingMessage))
       243 	            continue;
       244 	        auto encoder = WTFMove(pendingMessage.encoder);
       245 	        auto sendOptions = pendingMessage.sendOptions;
       246 	        if (pendingMessage.asyncReplyInfo)
    
[  2] 0x0000000190abd88b WebKit`WebKit::AuxiliaryProcessProxy::didFinishLaunching(WebKit::ProcessLauncher*, IPC::Connection::Identifier) + 351 at AuxiliaryProcessProxy.cpp:242:14
       238 	    connectionWillOpen(*m_connection);
       239 	    m_connection-&gt;open();
       240 	
       241 	    for (auto&amp;&amp; pendingMessage : std::exchange(m_pendingMessages, { })) {
    -&gt; 242 	        if (!shouldSendPendingMessage(pendingMessage))
       243 	            continue;
       244 	        auto encoder = WTFMove(pendingMessage.encoder);
       245 	        auto sendOptions = pendingMessage.sendOptions;
       246 	        if (pendingMessage.asyncReplyInfo)
    
[  3] 0x0000000190ba3163 WebKit`WebKit::WebProcessProxy::didFinishLaunching(WebKit::ProcessLauncher*, IPC::Connection::Identifier) + 123 at WebProcessProxy.cpp:1010:28
       1006	{
       1007	    RELEASE_ASSERT(isMainThreadOrCheckDisabled());
       1008	
       1009	    auto protectedThis = makeRef(*this);
    -&gt; 1010	    AuxiliaryProcessProxy::didFinishLaunching(launcher, connectionIdentifier);
       1011	
       1012	    if (!IPC::Connection::identifierIsValid(connectionIdentifier)) {
       1013	        RELEASE_LOG_IF(isReleaseLoggingAllowed(), Process, &quot;%p - WebProcessProxy didFinishLaunching - invalid connection identifier (web process failed to launch)&quot;, this);
       1014	        processDidTerminateOrFailedToLaunch(ProcessTerminationReason::Crash);
    
[  4] 0x0000000190801643 WebKit`WebKit::ProcessLauncher::didFinishLaunchingProcess(int, IPC::Connection::Identifier) + 163 at ProcessLauncher.cpp:59:15
       55  	#endif
       56  	        return;
       57  	    }
       58  	    
    -&gt; 59  	    m_client-&gt;didFinishLaunching(this, identifier);
       60  	}
       61  	
       62  	void ProcessLauncher::invalidate()
       63  	{
    
[  5] 0x0000000190b1f51b WebKit`invocation function for block in WebKit::ProcessLauncher::launchProcess() + 131 at ProcessLauncherMac.mm:311:13
       307 	
       308 	            // The process has finished launching, grab the pid from the connection.
       309 	            pid_t processIdentifier = xpc_connection_get_pid(m_xpcConnection.get());
       310 	
    -&gt; 311 	            didFinishLaunchingProcess(processIdentifier, IPC::Connection::Identifier(listeningPort, m_xpcConnection));
       312 	            m_xpcConnection = nullptr;
       313 	        }
       314 	
       315 	        deref();
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748776</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-09 10:24:53 -0700</bug_when>
    <thetext>&lt;rdar://75329251&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748777</commentid>
    <comment_count>2</comment_count>
      <attachid>425630</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-09 10:33:57 -0700</bug_when>
    <thetext>Created attachment 425630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748808</commentid>
    <comment_count>3</comment_count>
      <attachid>425630</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-09 11:41:28 -0700</bug_when>
    <thetext>Comment on attachment 425630
Patch

Actually, sendMessage() relies on state() so it is still not thread-safe. I&apos;ll rework this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748838</commentid>
    <comment_count>4</comment_count>
      <attachid>425644</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-09 13:11:26 -0700</bug_when>
    <thetext>Created attachment 425644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749002</commentid>
    <comment_count>5</comment_count>
      <attachid>425644</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-04-10 10:00:39 -0700</bug_when>
    <thetext>Comment on attachment 425644
Patch

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

r=me

&gt; Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:254
&gt; -        auto encoder = WTFMove(pendingMessage.encoder);
&gt;          auto sendOptions = pendingMessage.sendOptions;
&gt;          if (pendingMessage.asyncReplyInfo)
&gt;              IPC::addAsyncReplyHandler(*connection(), pendingMessage.asyncReplyInfo-&gt;second, WTFMove(pendingMessage.asyncReplyInfo-&gt;first));
&gt; -        m_connection-&gt;sendMessage(WTFMove(encoder), sendOptions);
&gt; +        m_connection-&gt;sendMessage(WTFMove(pendingMessage.encoder), sendOptions);

Super nit:  Why not just inline `sendOptions` as well if you&apos;re inlining `encoder`?  Or move it after the if statement?  Not necessary to change to land, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749003</commentid>
    <comment_count>6</comment_count>
      <attachid>425644</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2021-04-10 10:01:28 -0700</bug_when>
    <thetext>Comment on attachment 425644
Patch

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

&gt;&gt; Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:254
&gt;&gt; +        m_connection-&gt;sendMessage(WTFMove(pendingMessage.encoder), sendOptions);
&gt; 
&gt; Super nit:  Why not just inline `sendOptions` as well if you&apos;re inlining `encoder`?  Or move it after the if statement?  Not necessary to change to land, though.

Oh, maybe IPC::addAsyncReplyHandler() alters `sendOptions`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749030</commentid>
    <comment_count>7</comment_count>
      <attachid>425690</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-10 15:35:57 -0700</bug_when>
    <thetext>Created attachment 425690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749034</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-10 15:42:38 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #5)
&gt; Comment on attachment 425644 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425644&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:254
&gt; &gt; -        auto encoder = WTFMove(pendingMessage.encoder);
&gt; &gt;          auto sendOptions = pendingMessage.sendOptions;
&gt; &gt;          if (pendingMessage.asyncReplyInfo)
&gt; &gt;              IPC::addAsyncReplyHandler(*connection(), pendingMessage.asyncReplyInfo-&gt;second, WTFMove(pendingMessage.asyncReplyInfo-&gt;first));
&gt; &gt; -        m_connection-&gt;sendMessage(WTFMove(encoder), sendOptions);
&gt; &gt; +        m_connection-&gt;sendMessage(WTFMove(pendingMessage.encoder), sendOptions);
&gt; 
&gt; Super nit:  Why not just inline `sendOptions` as well if you&apos;re inlining
&gt; `encoder`?  Or move it after the if statement?  Not necessary to change to
&gt; land, though.

I made the change. I see no good reason why this couldn&apos;t be inlined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749044</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-10 17:48:34 -0700</bug_when>
    <thetext>Committed r275805 (236376@main): &lt;https://commits.webkit.org/236376@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425690.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425630</attachid>
            <date>2021-04-09 10:33:57 -0700</date>
            <delta_ts>2021-04-09 13:11:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224377-20210409103357.patch</filename>
            <type>text/plain</type>
            <size>5208</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ2MjlmNzY5MTI4Njk5NDRk
MjJjMTU0MGZhNmY5OTIxNGRkNzQ1YWIuLjk3MGEzMDVhMmQzNWM3ZWRiZmQyZTRkZGY1ZjU1NjNi
NzMxYjRkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEtMDQtMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCB1bmRlciBXZWJQcm9jZXNz
UHJveHk6OnNob3VsZFNlbmRQZW5kaW5nTWVzc2FnZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQzNzcKKyAgICAgICAgPHJkYXI6Ly83NTMyOTI1
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBh
cmUgY3Jhc2hpbmcgd2l0aCBhIG51bGwtZGVyZWZlcmVuY2Ugb2YgcGVuZGluZ01lc3NhZ2UuZW5j
b2RlciBpbnNpZGUgV2ViUHJvY2Vzc1Byb3h5OjpzaG91bGRTZW5kUGVuZGluZ01lc3NhZ2UoKS4K
KyAgICAgICAgSG93ZXZlciwgcGVuZGluZ01lc3NhZ2UuZW5jb2RlciBpcyBhIFVuaXF1ZVJlZjw+
IGFuZCB0aHVzIGNhbm5vdCBiZSBudWxsLiBBbHNvLCB3ZSBrbm93IHRoYXQgdGhlIFdlYlByb2Nl
c3NQcm94eQorICAgICAgICBpcyBhbGl2ZSBiZWNhdXNlIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmlu
aXNoTGF1bmNoaW5nKCkgaGFzIGEgcHJvdGVjdG9yLgorCisgICAgICAgIE9uZSB0aGluZyB0aGF0
IEkgYmVsaWV2ZSBjYW4gdG90YWxseSBoYXBwZW4gYW5kIHdvdWxkIG5vdCBiZSBzYWZlIHRob3Vn
aCBpcyBpZiBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnNlbmRNZXNzYWdlKCkKKyAgICAgICAgd2Fz
IGNhbGxlZCBvbiBhIG5vbi1tYWluIHRocmVhZCBiZWNhdXNlIHRoZXJlIGlzIGN1cnJlbnRseSBu
byBzeW5jaHJvbml6YXRpb24gd2hlbiBhY2Nlc3NpbmcgbV9wZW5kaW5nTWVzc2FnZXMuCisgICAg
ICAgIFNlbmRpbmcgSVBDIG9mZiB0aGUgbWFpbiB0aHJlYWQgaXMgc2FmZSBpbiBnZW5lcmFsIGFu
ZCBzb21ldGhpbmcgd2UgY29tbW9ubHkgZG8uIFRvIG1ha2UgdGhpcyBzYWZlLCBJUEM6OkNvbm5l
Y3Rpb24KKyAgICAgICAgdXNlcyBhIExvY2sgdG8gcHJvdGVjdCBpdHMgdmVjdG9yIG9mIG1lc3Nh
Z2VzLiBIb3dldmVyLCBpZiB0aGUgcHJvY2VzcyBoYXMgbm90IGZpbmlzaGVkIGxhdW5jaGluZyB5
ZXQsCisgICAgICAgIEF1eGlsaWFyeVByb2Nlc3NQcm94eSBkb2VzIG5vdCBoYXZlIGFuIElQQzo6
Q29ubmVjdGlvbiB5ZXQgYW5kIHdpbGwgaW5zdGVhZCBhcHBlbmQgdGhlIElQQyBtZXNzYWdlIHRv
IGl0cyBvd24KKyAgICAgICAgbV9wZW5kaW5nTWVzc2FnZXMgVmVjdG9yLgorCisgICAgICAgIEkg
aGF2ZSBhZGRlZCBhIExvY2sgdG8gc3luY2hyb25pemUgYWNjZXNzIHRvIEF1eGlsaWFyeVByb2Nl
c3NQcm94eTo6bV9wZW5kaW5nTWVzc2FnZXMsIGFzIGEgc3BlY3VsYXRpdmUgZml4IGZvciB0aGlz
CisgICAgICAgIGNyYXNoLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3NQcm94eTo6c2VuZE1l
c3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnRha2VQZW5k
aW5nTWVzc2FnZXMpOgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmRp
ZEZpbmlzaExhdW5jaGluZyk6CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3NQcm94
eTo6cmVwbHlUb1BlbmRpbmdNZXNzYWdlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0F1eGlsaWFy
eVByb2Nlc3NQcm94eS5oOgorCiAyMDIxLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgTmVlZCB0byBwcm9wYWdhdGUgYW5kIHVzZSAnY2FuU2hvd1doaWxl
TG9ja2VkJyBpbiB0aGUgR1BVIFByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQwYzgwZTNiYzhlNGI0NjRhMWZmZDYx
N2FkMzFjZDM4N2EzY2U2NzUuLmM3NzFlYjY1ZDY4OTc1YjEyMTEyNmVjZjczNDA4NDgzOGVhMDQ2
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1By
b3h5LmNwcApAQCAtMTY4LDExICsxNjgsMTIgQEAgYm9vbCBBdXhpbGlhcnlQcm9jZXNzUHJveHk6
OnNlbmRNZXNzYWdlKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiYgZW5jb2RlciwgT3B0aW8KICAg
ICB9CiAKICAgICBzd2l0Y2ggKHN0YXRlKCkpIHsKLSAgICBjYXNlIFN0YXRlOjpMYXVuY2hpbmc6
CisgICAgY2FzZSBTdGF0ZTo6TGF1bmNoaW5nOiB7CiAgICAgICAgIC8vIElmIHdlJ3JlIHdhaXRp
bmcgZm9yIHRoZSBjaGlsZCBwcm9jZXNzIHRvIGxhdW5jaCwgd2UgbmVlZCB0byBzdGFzaCBhd2F5
IHRoZSBtZXNzYWdlcyBzbyB3ZSBjYW4gc2VuZCB0aGVtIG9uY2Ugd2UgaGF2ZSBhIGNvbm5lY3Rp
b24uCisgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wZW5kaW5nTWVzc2FnZXNMb2Nr
KTsKICAgICAgICAgbV9wZW5kaW5nTWVzc2FnZXMuYXBwZW5kKHsgV1RGTW92ZShlbmNvZGVyKSwg
c2VuZE9wdGlvbnMsIFdURk1vdmUoYXN5bmNSZXBseUluZm8pIH0pOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKLQorICAgIH0KICAgICBjYXNlIFN0YXRlOjpSdW5uaW5nOgogICAgICAgICBpZiAoYXN5
bmNSZXBseUluZm8pCiAgICAgICAgICAgICBJUEM6OmFkZEFzeW5jUmVwbHlIYW5kbGVyKCpjb25u
ZWN0aW9uKCksIGFzeW5jUmVwbHlJbmZvLT5zZWNvbmQsIHN0ZDo6ZXhjaGFuZ2UoYXN5bmNSZXBs
eUluZm8tPmZpcnN0LCBudWxscHRyKSk7CkBAIC0yMjMsNiArMjI0LDEyIEBAIGJvb2wgQXV4aWxp
YXJ5UHJvY2Vzc1Byb3h5OjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDCiAgICAgcmV0dXJuIG1fbWVzc2FnZVJlY2VpdmVyTWFwLmRpc3BhdGNoU3lu
Y01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKIH0KIAorYXV0byBB
dXhpbGlhcnlQcm9jZXNzUHJveHk6OnRha2VQZW5kaW5nTWVzc2FnZXMoKSAtPiBWZWN0b3I8UGVu
ZGluZ01lc3NhZ2U+Cit7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BlbmRpbmdNZXNz
YWdlc0xvY2spOworICAgIHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fcGVuZGluZ01lc3NhZ2VzLCB7
IH0pOworfQorCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5n
KFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIW1fY29ubmVjdGlvbik7CkBAIC0yMzUsNyArMjQy
LDcgQEAgdm9pZCBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9j
ZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb24KICAgICBjb25uZWN0aW9uV2lsbE9wZW4oKm1f
Y29ubmVjdGlvbik7CiAgICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7CiAKLSAgICBmb3IgKGF1dG8m
JiBwZW5kaW5nTWVzc2FnZSA6IHN0ZDo6ZXhjaGFuZ2UobV9wZW5kaW5nTWVzc2FnZXMsIHsgfSkp
IHsKKyAgICBmb3IgKGF1dG8mJiBwZW5kaW5nTWVzc2FnZSA6IHRha2VQZW5kaW5nTWVzc2FnZXMo
KSkgewogICAgICAgICBpZiAoIXNob3VsZFNlbmRQZW5kaW5nTWVzc2FnZShwZW5kaW5nTWVzc2Fn
ZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgYXV0byBlbmNvZGVyID0gV1RGTW92
ZShwZW5kaW5nTWVzc2FnZS5lbmNvZGVyKTsKQEAgLTI0OCw4ICsyNTUsNyBAQCB2b2lkIEF1eGls
aWFyeVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQ
Qzo6Q29ubmVjdGlvbgogCiB2b2lkIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6cmVwbHlUb1BlbmRp
bmdNZXNzYWdlcygpCiB7Ci0gICAgYXV0byBwZW5kaW5nTWVzc2FnZXMgPSBXVEZNb3ZlKG1fcGVu
ZGluZ01lc3NhZ2VzKTsKLSAgICBmb3IgKGF1dG8mIHBlbmRpbmdNZXNzYWdlIDogcGVuZGluZ01l
c3NhZ2VzKSB7CisgICAgZm9yIChhdXRvJiBwZW5kaW5nTWVzc2FnZSA6IHRha2VQZW5kaW5nTWVz
c2FnZXMoKSkgewogICAgICAgICBpZiAocGVuZGluZ01lc3NhZ2UuYXN5bmNSZXBseUluZm8pCiAg
ICAgICAgICAgICBwZW5kaW5nTWVzc2FnZS5hc3luY1JlcGx5SW5mby0+Zmlyc3QobnVsbHB0cik7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJv
Y2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJv
eHkuaAppbmRleCBmM2VmZTcwYjIzZGJlNmYyOThlNGQ1YzI3MjZjNzBkZTM0ZTVjODFkLi40ZjQw
ZGQ4ZjQ5MjU3NTg0MWNkYzgzMTZhYjgxNjAwMzJjMTExMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaApAQCAtMTUxLDcgKzE1MSw5IEBA
IHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25XaWxsT3Bl
bihJUEM6OkNvbm5lY3Rpb24mKTsKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1dpbGxTaHV0RG93
bihJUEM6OkNvbm5lY3Rpb24mKSA9IDA7CisgICAgVmVjdG9yPFBlbmRpbmdNZXNzYWdlPiB0YWtl
UGVuZGluZ01lc3NhZ2VzKCk7CiAKKyAgICBMb2NrIG1fcGVuZGluZ01lc3NhZ2VzTG9jazsKICAg
ICBWZWN0b3I8UGVuZGluZ01lc3NhZ2U+IG1fcGVuZGluZ01lc3NhZ2VzOwogICAgIFJlZlB0cjxQ
cm9jZXNzTGF1bmNoZXI+IG1fcHJvY2Vzc0xhdW5jaGVyOwogICAgIFJlZlB0cjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425644</attachid>
            <date>2021-04-09 13:11:26 -0700</date>
            <delta_ts>2021-04-10 15:35:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224377-20210409131126.patch</filename>
            <type>text/plain</type>
            <size>11244</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1NzcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ4ZTNlYzNjNmNjNDg0ZDll
ODY2OWFkOTE2YTllNTdjNTk3OTY2ZWIuLmIzNWU1ZGJlMzA5MzgzMDNiYTM0NWYwZjQ5ZjFhMDgx
NTNiMTQxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDQtMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCB1bmRlciBXZWJQcm9jZXNz
UHJveHk6OnNob3VsZFNlbmRQZW5kaW5nTWVzc2FnZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQzNzcKKyAgICAgICAgPHJkYXI6Ly83NTMyOTI1
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBh
cmUgY3Jhc2hpbmcgd2l0aCBhIG51bGwtZGVyZWZlcmVuY2Ugb2YgcGVuZGluZ01lc3NhZ2UuZW5j
b2RlciBpbnNpZGUgV2ViUHJvY2Vzc1Byb3h5OjpzaG91bGRTZW5kUGVuZGluZ01lc3NhZ2UoKS4K
KyAgICAgICAgSG93ZXZlciwgcGVuZGluZ01lc3NhZ2UuZW5jb2RlciBpcyBhIFVuaXF1ZVJlZjw+
IGFuZCB0aHVzIGNhbm5vdCBiZSBudWxsLiBBbHNvLCB3ZSBrbm93IHRoYXQgdGhlIFdlYlByb2Nl
c3NQcm94eQorICAgICAgICBpcyBhbGl2ZSBiZWNhdXNlIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmlu
aXNoTGF1bmNoaW5nKCkgaGFzIGEgcHJvdGVjdG9yLgorCisgICAgICAgIE9uZSB0aGluZyB0aGF0
IEkgYmVsaWV2ZSBjb3VsZCB0aGVvcmV0aWNhbGx5IGhhcHBlbiBhbmQgd291bGQgbm90IGJlIHNh
ZmUgdGhvdWdoIGlzIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6c2VuZE1lc3NhZ2UoKQorICAgICAg
ICBiZWluZyBjYWxsZWQgb24gYSBub24tbWFpbiB0aHJlYWQuIFNlbmRpbmcgSVBDIG9mZiB0aGUg
bWFpbiB0aHJlYWQgaXMgc2FmZSBpbiBnZW5lcmFsIGFuZCBzb21ldGhpbmcgd2UgY29tbW9ubHkg
ZG8gd2l0aAorICAgICAgICBhbiBJUEM6OkNvbm5lY3Rpb24uIFRvIG1ha2UgdGhpcyBzYWZlLCBJ
UEM6OkNvbm5lY3Rpb24gdXNlcyBhIExvY2sgdG8gcHJvdGVjdCBpdHMgdmVjdG9yIG9mIG1lc3Nh
Z2VzLiBIb3dldmVyLCBzZW5kaW5nCisgICAgICAgIElQQyB2aWEgYW4gQXV4aWxpYXJ5UHJvY2Vz
c1Byb3h5IGlzIGN1cnJlbnRseSBub3QgdGhyZWFkIHNhZmUgYXMgaXQgcmVsaWVzIG9uIHRoZSBw
cm9jZXNzIHN0YXRlICh3aGljaCBnZXRzIHVwZGF0ZWQgb24KKyAgICAgICAgdGhlIG1haW4gdGhy
ZWFkKSBhbmQgYWNjZXNzIHRvIHRoZSBtX3BlbmRpbmdNZXNzYWdlcyBpcyBub3Qgc3luY2hyb25p
emVkLgorICAgICAgICAKKyAgICAgICAgQXMgYSBzcGVjdWxhdGl2ZSBmaXgsIEkgaGF2ZSBhZGRl
ZCBsb2dpYyBpbiBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnNlbmRNZXNzYWdlKCkgdG8gZGlzcGF0
Y2ggdG8gdGhlIG1haW4gdGhyZWFkIGlmCisgICAgICAgIHdlJ3JlIG5vdCBhbHJlYWR5IG9uIGl0
LiBJIGhhdmUgYWxzbyB1c2VkIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wIHRv
IG1ha2Ugc3VyZSBhbGwgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5CisgICAgICAgIG9iamVjdHMgZ2V0
IGRlc3Ryb3llZCBvbiB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgSW4gYSBmb2xsb3ctdXAs
IEkgYW0gcGxhbm5pbmcgdG8gYWRkIGEgcmVsZWFzZSBhc3NlcnRpb24gaW4gQXV4aWxpYXJ5UHJv
Y2Vzc1Byb3h5OjpzZW5kTWVzc2FnZSgpIHRvIG1ha2Ugc3VyZSB3ZSdyZQorICAgICAgICBvbiBh
IG1haW4gdGhyZWFkLiBXZSdsbCB0aGVuIGJlIGFibGUgdG8gZHJvcCB0aGUgImRpc3BhdGNoaW5n
IHRoZSBtYWluIHRocmVhZCIgbG9naWMuIEZvciBub3cgdGhvdWdoLCBJIHRoaW5rIHdlCisgICAg
ICAgIHNob3VsZCBzdGFydCB3aXRoIHRoZSAiZGlzcGF0Y2ggdG8gbWFpbiB0aHJlYWQiIGxvZ2lj
LCBzbyB0aGF0IHdlIGhhdmUgYSBwYXRjaCB0aGF0IHdlIGNhbiBjaGVycnktcGljayB0byBhIGJy
YW5jaC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnNlbmRNZXNzYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcp
OgorICAgICAgICAoV2ViS2l0OjpBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnJlcGx5VG9QZW5kaW5n
TWVzc2FnZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lmg6CisKIDIwMjEtMDQtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBOZWVkIHRvIHByb3BhZ2F0ZSBhbmQgdXNlICdjYW5TaG93V2hp
bGVMb2NrZWQnIGluIHRoZSBHUFUgUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKaW5kZXggZDBjODBlM2JjOGU0YjQ2NGExZmZk
NjE3YWQzMWNkMzg3YTNjZTY3NS4uMTQ4MzcwMWExODI4YTg2YTQ2Y2RlNjE4YmIyMDA1OGI2YTY2
ZDMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNz
UHJveHkuY3BwCkBAIC0xNjAsNiArMTYwLDE1IEBAIGJvb2wgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
Ojp3YXNUZXJtaW5hdGVkKCkgY29uc3QKIAogYm9vbCBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnNl
bmRNZXNzYWdlKFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiYgZW5jb2RlciwgT3B0aW9uU2V0PElQ
Qzo6U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMsIE9wdGlvbmFsPHN0ZDo6cGFpcjxDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKElQQzo6RGVjb2RlciopPiwgdWludDY0X3Q+PiYmIGFzeW5jUmVwbHlJbmZv
LCBTaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJBY3Rpdml0eSBzaG91bGRTdGFydFByb2Nlc3NU
aHJvdHRsZXJBY3Rpdml0eSkKIHsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHR1cm4gdGhpcyBp
bnRvIGEgUkVMRUFTRV9BU1NFUlQoKS4KKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKyAg
ICBpZiAoIWlzTWFpblJ1bkxvb3AoKSkgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlbmNvZGVyID0gV1RGTW92ZShlbmNvZGVyKSwg
c2VuZE9wdGlvbnMsIGFzeW5jUmVwbHlJbmZvID0gV1RGTW92ZShhc3luY1JlcGx5SW5mbyksIHNo
b3VsZFN0YXJ0UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5XSgpIG11dGFibGUgeworICAgICAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+c2VuZE1lc3NhZ2UoV1RGTW92ZShlbmNvZGVyKSwgc2VuZE9wdGlv
bnMsIFdURk1vdmUoYXN5bmNSZXBseUluZm8pLCBzaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJB
Y3Rpdml0eSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAg
ICBpZiAoYXN5bmNSZXBseUluZm8gJiYgY2FuU2VuZE1lc3NhZ2UoKSAmJiBzaG91bGRTdGFydFBy
b2Nlc3NUaHJvdHRsZXJBY3Rpdml0eSA9PSBTaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJBY3Rp
dml0eTo6WWVzKSB7CiAgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hh
bmdlKGFzeW5jUmVwbHlJbmZvLT5maXJzdCwgbnVsbHB0cik7CiAgICAgICAgIGFzeW5jUmVwbHlJ
bmZvLT5maXJzdCA9IFthY3Rpdml0eSA9IHRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eShB
U0NJSUxpdGVyYWw6Om51bGwoKSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKElQQzo6RGVjb2RlciogZGVjb2RlcikgbXV0YWJsZSB7CkBAIC0yMjYsNiAr
MjM1LDcgQEAgYm9vbCBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmRpc3BhdGNoU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEMKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzc1By
b3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewogICAgIEFTU0VSVCghbV9jb25u
ZWN0aW9uKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghSVBDOjpD
b25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpCiAgICAg
ICAgIHJldHVybjsKQEAgLTIzOCwxOCArMjQ4LDE3IEBAIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzc1By
b3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9u
CiAgICAgZm9yIChhdXRvJiYgcGVuZGluZ01lc3NhZ2UgOiBzdGQ6OmV4Y2hhbmdlKG1fcGVuZGlu
Z01lc3NhZ2VzLCB7IH0pKSB7CiAgICAgICAgIGlmICghc2hvdWxkU2VuZFBlbmRpbmdNZXNzYWdl
KHBlbmRpbmdNZXNzYWdlKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBhdXRvIGVu
Y29kZXIgPSBXVEZNb3ZlKHBlbmRpbmdNZXNzYWdlLmVuY29kZXIpOwogICAgICAgICBhdXRvIHNl
bmRPcHRpb25zID0gcGVuZGluZ01lc3NhZ2Uuc2VuZE9wdGlvbnM7CiAgICAgICAgIGlmIChwZW5k
aW5nTWVzc2FnZS5hc3luY1JlcGx5SW5mbykKICAgICAgICAgICAgIElQQzo6YWRkQXN5bmNSZXBs
eUhhbmRsZXIoKmNvbm5lY3Rpb24oKSwgcGVuZGluZ01lc3NhZ2UuYXN5bmNSZXBseUluZm8tPnNl
Y29uZCwgV1RGTW92ZShwZW5kaW5nTWVzc2FnZS5hc3luY1JlcGx5SW5mby0+Zmlyc3QpKTsKLSAg
ICAgICAgbV9jb25uZWN0aW9uLT5zZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpLCBzZW5kT3B0
aW9ucyk7CisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZE1lc3NhZ2UoV1RGTW92ZShwZW5kaW5n
TWVzc2FnZS5lbmNvZGVyKSwgc2VuZE9wdGlvbnMpOwogICAgIH0KIH0KIAogdm9pZCBBdXhpbGlh
cnlQcm9jZXNzUHJveHk6OnJlcGx5VG9QZW5kaW5nTWVzc2FnZXMoKQogewotICAgIGF1dG8gcGVu
ZGluZ01lc3NhZ2VzID0gV1RGTW92ZShtX3BlbmRpbmdNZXNzYWdlcyk7Ci0gICAgZm9yIChhdXRv
JiBwZW5kaW5nTWVzc2FnZSA6IHBlbmRpbmdNZXNzYWdlcykgeworICAgIEFTU0VSVChpc01haW5S
dW5Mb29wKCkpOworICAgIGZvciAoYXV0byYgcGVuZGluZ01lc3NhZ2UgOiBzdGQ6OmV4Y2hhbmdl
KG1fcGVuZGluZ01lc3NhZ2VzLCB7IH0pKSB7CiAgICAgICAgIGlmIChwZW5kaW5nTWVzc2FnZS5h
c3luY1JlcGx5SW5mbykKICAgICAgICAgICAgIHBlbmRpbmdNZXNzYWdlLmFzeW5jUmVwbHlJbmZv
LT5maXJzdChudWxscHRyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
eGlsaWFyeVByb2Nlc3NQcm94eS5oCmluZGV4IGYzZWZlNzBiMjNkYmU2ZjI5OGU0ZDVjMjcyNmM3
MGRlMzRlNWM4MWQuLmQ5NTM3NDQ4N2E0ZTgxMGZhM2QyZWE0NWY5ZTZlYmI0NTBlYWFmZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5oCkBA
IC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBQcm9jZXNzVGhyb3R0
bGVyOwogCi1jbGFzcyBBdXhpbGlhcnlQcm9jZXNzUHJveHkgOiBQcm9jZXNzTGF1bmNoZXI6OkNs
aWVudCwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKK2NsYXNzIEF1eGlsaWFyeVBy
b2Nlc3NQcm94eSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBdXhpbGlhcnlQcm9jZXNz
UHJveHksIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPiwgcHJpdmF0ZSBQcm9j
ZXNzTGF1bmNoZXI6OkNsaWVudCwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdXhpbGlhcnlQcm9jZXNzUHJveHkpOwogCiBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggZTQzZjM0Zjg3YjhlM2EwNzdiNzE0MTA4NDExMWE0YmIxZmRhNWRjOS4uNTdkY2EzZWEyMDUx
ODI5NDJiODAyN2RlMWUwNDczMGYwYzM4OGNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApAQCAtNTYsNyArNTYsNyBAQCBjbGFzcyBXZWJzaXRl
RGF0YVN0b3JlOwogc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVyczsKIHN0cnVj
dCBHUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogCi1jbGFzcyBHUFVQcm9jZXNzUHJveHkg
ZmluYWwgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJv
dHRsZXJDbGllbnQsIHB1YmxpYyBSZWZDb3VudGVkPEdQVVByb2Nlc3NQcm94eT4geworY2xhc3Mg
R1BVUHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJp
dmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShHUFVQcm9jZXNzUHJveHkpOwogICAgIGZyaWVu
ZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8R1BVUHJvY2Vzc1Byb3h5PjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNzA4
ZTk5OTFjY2VhNWJjYjFkMjI3NmQwZjEzNWRjYjBkN2Q0MTNlYi4uMDVkYzhmMjFkMDNmNjQzMWIw
YmUyYTAwMjZhYjhkMjViNDQwYWNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTkzLDcgKzkzLDcgQEAgc3Ry
dWN0IFJlc291cmNlTG9hZEluZm87CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiBzdHJ1Y3QgV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKLWNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHkgZmluYWwg
OiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJD
bGllbnQsIHB1YmxpYyBSZWZDb3VudGVkPE5ldHdvcmtQcm9jZXNzUHJveHk+IHsKK2NsYXNzIE5l
dHdvcmtQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBw
cml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIHVzaW5nIFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkuaAppbmRleCA3ZTQ4MDZjMDE3ODNlYjIwZDA3MmJiZWYwNTQ2
YjRlMzc0NWY4ZTMxLi4zYjRhMmFlZDE0MWJlYTgyNDI1ZGFhMjY1MDJhYmEyZWE3MmU5MzA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5LmgKQEAgLTYzLDcgKzYzLDcgQEAgaW50IHBsdWdpblByb2Nlc3NMYXRlbmN5UU9TKCk7
CiBpbnQgcGx1Z2luUHJvY2Vzc1Rocm91Z2hwdXRRT1MoKTsKICNlbmRpZgogCi1jbGFzcyBQbHVn
aW5Qcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UGx1Z2luUHJvY2Vzc1Byb3h5PiwgcHJpdmF0ZSBQcm9j
ZXNzVGhyb3R0bGVyQ2xpZW50IHsKK2NsYXNzIFBsdWdpblByb2Nlc3NQcm94eSBmaW5hbCA6IHB1
YmxpYyBBdXhpbGlhcnlQcm9jZXNzUHJveHksIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVu
dCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxQbHVnaW5Qcm9jZXNzUHJveHk+IGNyZWF0ZShQ
bHVnaW5Qcm9jZXNzTWFuYWdlciosIGNvbnN0IFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzJiwgdWlu
dDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKTsKICAgICB+UGx1Z2luUHJvY2Vzc1Byb3h5KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoblByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHAKaW5kZXggOTEzMzMyYmJjMDZhNTM0ZWQ4
YWM2MGE1M2YyNjYwMmQwMjZmMzMxOC4uNjk1Njk0YWIxYTg5MmM1ZDQ4NDc2Mzc3Mjk5ZWMzY2Y4
MzM3OWU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTYsMTYg
KzU2LDE2IEBAIFdlYkF1dGhuUHJvY2Vzc1Byb3h5JiBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2lu
Z2xldG9uKCkKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8V2Vi
QXV0aG5Qcm9jZXNzUHJveHk+IHdlYkF1dGhuUHJvY2VzczsKKyAgICBzdGF0aWMgTGF6eU5ldmVy
RGVzdHJveWVkPFJlZjxXZWJBdXRoblByb2Nlc3NQcm94eT4+IHdlYkF1dGhuUHJvY2VzczsKIAog
ICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIHdlYkF1dGhuUHJvY2Vz
cy5jb25zdHJ1Y3QoKTsKKyAgICAgICAgd2ViQXV0aG5Qcm9jZXNzLmNvbnN0cnVjdChhZG9wdFJl
ZigqbmV3IFdlYkF1dGhuUHJvY2Vzc1Byb3h5KSk7CiAKICAgICAgICAgV2ViQXV0aG5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAKICAgICAgICAgLy8gSW5pdGlhbGl6ZSB0
aGUgV2ViQXV0aG4gcHJvY2Vzcy4KLSAgICAgICAgd2ViQXV0aG5Qcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJBdXRoblByb2Nlc3M6OkluaXRpYWxpemVXZWJBdXRoblByb2Nlc3MocGFyYW1ldGVy
cyksIDApOwotICAgICAgICB3ZWJBdXRoblByb2Nlc3MtPnVwZGF0ZVByb2Nlc3NBc3NlcnRpb24o
KTsKKyAgICAgICAgd2ViQXV0aG5Qcm9jZXNzLmdldCgpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRo
blByb2Nlc3M6OkluaXRpYWxpemVXZWJBdXRoblByb2Nlc3MocGFyYW1ldGVycyksIDApOworICAg
ICAgICB3ZWJBdXRoblByb2Nlc3MuZ2V0KCktPnVwZGF0ZVByb2Nlc3NBc3NlcnRpb24oKTsKICAg
ICB9KTsKIAogICAgIHJldHVybiB3ZWJBdXRoblByb2Nlc3MuZ2V0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGM3NmM4MTUzNTI0MmY5YzU3MWY1MTJj
NWRkNDViZmQzMzIyODY1YjkuLmM4ZGY0ZGY0YmIxOTE4ZDgwMWRiZWQyYjg3MTRjMTI0M2M3ZmIx
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xMTgs
NyArMTE4LDcgQEAgdXNpbmcgV2ViUHJvY2Vzc1dpdGhBdWRpYmxlTWVkaWFDb3VudGVyID0gUmVm
Q291bnRlcjxXZWJQcm9jZXNzV2l0aEF1ZGlibGVNZWRpYUMKIHVzaW5nIFdlYlByb2Nlc3NXaXRo
QXVkaWJsZU1lZGlhVG9rZW4gPSBXZWJQcm9jZXNzV2l0aEF1ZGlibGVNZWRpYUNvdW50ZXI6OlRv
a2VuOwogZW51bSBjbGFzcyBDaGVja0JhY2tGb3J3YXJkTGlzdCA6IGJvb2wgeyBObywgWWVzIH07
CiAKLWNsYXNzIFdlYlByb2Nlc3NQcm94eSA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzUHJveHks
IHB1YmxpYyBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxXZWJQcm9jZXNzUHJveHk+LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQg
eworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5IDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwg
cHVibGljIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0
bGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4+IFdlYkZyYW1lUHJveHlNYXA7CiAgICAg
dHlwZWRlZiBIYXNoTWFwPFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eSo+IFdl
YlBhZ2VQcm94eU1hcDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425690</attachid>
            <date>2021-04-10 15:35:57 -0700</date>
            <delta_ts>2021-04-10 17:48:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224377-20210410153556.patch</filename>
            <type>text/plain</type>
            <size>11269</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE2NjIyZTg3YTVlNGQ3YTFk
NmRmNDI2MDA5NmNhZDk1OTQ0MmQxOGMuLjk3NDRjYTIxYTdkNWEwMzE1ZDY2N2I2ZDg2ZTM0MDNj
ODIxNWJhMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDQtMTAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDcmFzaCB1bmRlciBXZWJQcm9jZXNz
UHJveHk6OnNob3VsZFNlbmRQZW5kaW5nTWVzc2FnZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQzNzcKKyAgICAgICAgPHJkYXI6Ly83NTMyOTI1
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCisKKyAgICAgICAgV2UgYXJl
IGNyYXNoaW5nIHdpdGggYSBudWxsLWRlcmVmZXJlbmNlIG9mIHBlbmRpbmdNZXNzYWdlLmVuY29k
ZXIgaW5zaWRlIFdlYlByb2Nlc3NQcm94eTo6c2hvdWxkU2VuZFBlbmRpbmdNZXNzYWdlKCkuCisg
ICAgICAgIEhvd2V2ZXIsIHBlbmRpbmdNZXNzYWdlLmVuY29kZXIgaXMgYSBVbmlxdWVSZWY8PiBh
bmQgdGh1cyBjYW5ub3QgYmUgbnVsbC4gQWxzbywgd2Uga25vdyB0aGF0IHRoZSBXZWJQcm9jZXNz
UHJveHkKKyAgICAgICAgaXMgYWxpdmUgYmVjYXVzZSBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlz
aExhdW5jaGluZygpIGhhcyBhIHByb3RlY3Rvci4KKworICAgICAgICBPbmUgdGhpbmcgdGhhdCBJ
IGJlbGlldmUgY291bGQgdGhlb3JldGljYWxseSBoYXBwZW4gYW5kIHdvdWxkIG5vdCBiZSBzYWZl
IHRob3VnaCBpcyBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnNlbmRNZXNzYWdlKCkKKyAgICAgICAg
YmVpbmcgY2FsbGVkIG9uIGEgbm9uLW1haW4gdGhyZWFkLiBTZW5kaW5nIElQQyBvZmYgdGhlIG1h
aW4gdGhyZWFkIGlzIHNhZmUgaW4gZ2VuZXJhbCBhbmQgc29tZXRoaW5nIHdlIGNvbW1vbmx5IGRv
IHdpdGgKKyAgICAgICAgYW4gSVBDOjpDb25uZWN0aW9uLiBUbyBtYWtlIHRoaXMgc2FmZSwgSVBD
OjpDb25uZWN0aW9uIHVzZXMgYSBMb2NrIHRvIHByb3RlY3QgaXRzIHZlY3RvciBvZiBtZXNzYWdl
cy4gSG93ZXZlciwgc2VuZGluZworICAgICAgICBJUEMgdmlhIGFuIEF1eGlsaWFyeVByb2Nlc3NQ
cm94eSBpcyBjdXJyZW50bHkgbm90IHRocmVhZCBzYWZlIGFzIGl0IHJlbGllcyBvbiB0aGUgcHJv
Y2VzcyBzdGF0ZSAod2hpY2ggZ2V0cyB1cGRhdGVkIG9uCisgICAgICAgIHRoZSBtYWluIHRocmVh
ZCkgYW5kIGFjY2VzcyB0byB0aGUgbV9wZW5kaW5nTWVzc2FnZXMgaXMgbm90IHN5bmNocm9uaXpl
ZC4KKyAgICAgICAgCisgICAgICAgIEFzIGEgc3BlY3VsYXRpdmUgZml4LCBJIGhhdmUgYWRkZWQg
bG9naWMgaW4gQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpzZW5kTWVzc2FnZSgpIHRvIGRpc3BhdGNo
IHRvIHRoZSBtYWluIHRocmVhZCBpZgorICAgICAgICB3ZSdyZSBub3QgYWxyZWFkeSBvbiBpdC4g
SSBoYXZlIGFsc28gdXNlZCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVuTG9vcCB0byBt
YWtlIHN1cmUgYWxsIEF1eGlsaWFyeVByb2Nlc3NQcm94eQorICAgICAgICBvYmplY3RzIGdldCBk
ZXN0cm95ZWQgb24gdGhlIG1haW4gdGhyZWFkLgorCisgICAgICAgIEluIGEgZm9sbG93LXVwLCBJ
IGFtIHBsYW5uaW5nIHRvIGFkZCBhIHJlbGVhc2UgYXNzZXJ0aW9uIGluIEF1eGlsaWFyeVByb2Nl
c3NQcm94eTo6c2VuZE1lc3NhZ2UoKSB0byBtYWtlIHN1cmUgd2UncmUKKyAgICAgICAgb24gYSBt
YWluIHRocmVhZC4gV2UnbGwgdGhlbiBiZSBhYmxlIHRvIGRyb3AgdGhlICJkaXNwYXRjaGluZyB0
aGUgbWFpbiB0aHJlYWQiIGxvZ2ljLiBGb3Igbm93IHRob3VnaCwgSSB0aGluayB3ZQorICAgICAg
ICBzaG91bGQgc3RhcnQgd2l0aCB0aGUgImRpc3BhdGNoIHRvIG1haW4gdGhyZWFkIiBsb2dpYywg
c28gdGhhdCB3ZSBoYXZlIGEgcGF0Y2ggdGhhdCB3ZSBjYW4gY2hlcnJ5LXBpY2sgdG8gYSBicmFu
Y2guCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpzZW5kTWVzc2FnZSk6CisgICAg
ICAgIChXZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKToK
KyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpyZXBseVRvUGVuZGluZ01l
c3NhZ2VzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorCiAyMDIxLTA0LTEwICBDaGFybMOobmUgV2VuZGxpbmcgIDxqdWxp
YW5haXRvQHBvc3Rlby5qcD4KIAogICAgICAgICBQcm9wZXJseSB1c2UgQ29tcGxldGlvbkhhbmRs
ZXIgd2hlbiBVU0VfT1BFTkdMX09SX0VTIGlzIHNldCB0byBPRkYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQwYzgwZTNiYzhl
NGI0NjRhMWZmZDYxN2FkMzFjZDM4N2EzY2U2NzUuLjI3ZDZhNmNlNjA2NWY3ZjIyZTkxMDU5ZTM2
ZGRkNDQwNTYxN2E1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGls
aWFyeVByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxp
YXJ5UHJvY2Vzc1Byb3h5LmNwcApAQCAtMTYwLDYgKzE2MCwxNSBAQCBib29sIEF1eGlsaWFyeVBy
b2Nlc3NQcm94eTo6d2FzVGVybWluYXRlZCgpIGNvbnN0CiAKIGJvb2wgQXV4aWxpYXJ5UHJvY2Vz
c1Byb3h5OjpzZW5kTWVzc2FnZShVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYmIGVuY29kZXIsIE9w
dGlvblNldDxJUEM6OlNlbmRPcHRpb24+IHNlbmRPcHRpb25zLCBPcHRpb25hbDxzdGQ6OnBhaXI8
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEM6OkRlY29kZXIqKT4sIHVpbnQ2NF90Pj4mJiBhc3lu
Y1JlcGx5SW5mbywgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHkgc2hvdWxkU3Rh
cnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHkpCiB7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCB0
dXJuIHRoaXMgaW50byBhIFJFTEVBU0VfQVNTRVJUKCkuCisgICAgQVNTRVJUKGlzTWFpblJ1bkxv
b3AoKSk7CisgICAgaWYgKCFpc01haW5SdW5Mb29wKCkpIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZW5jb2RlciA9IFdURk1vdmUo
ZW5jb2RlciksIHNlbmRPcHRpb25zLCBhc3luY1JlcGx5SW5mbyA9IFdURk1vdmUoYXN5bmNSZXBs
eUluZm8pLCBzaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJBY3Rpdml0eV0oKSBtdXRhYmxlIHsK
KyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnNlbmRNZXNzYWdlKFdURk1vdmUoZW5jb2Rlciks
IHNlbmRPcHRpb25zLCBXVEZNb3ZlKGFzeW5jUmVwbHlJbmZvKSwgc2hvdWxkU3RhcnRQcm9jZXNz
VGhyb3R0bGVyQWN0aXZpdHkpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCiAgICAgaWYgKGFzeW5jUmVwbHlJbmZvICYmIGNhblNlbmRNZXNzYWdlKCkgJiYgc2hv
dWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHkgPT0gU2hvdWxkU3RhcnRQcm9jZXNzVGhy
b3R0bGVyQWN0aXZpdHk6OlllcykgewogICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0g
c3RkOjpleGNoYW5nZShhc3luY1JlcGx5SW5mby0+Zmlyc3QsIG51bGxwdHIpOwogICAgICAgICBh
c3luY1JlcGx5SW5mby0+Zmlyc3QgPSBbYWN0aXZpdHkgPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5k
QWN0aXZpdHkoQVNDSUlMaXRlcmFsOjpudWxsKCkpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShJUEM6OkRlY29kZXIqIGRlY29kZXIpIG11dGFibGUgewpA
QCAtMjI2LDYgKzIzNSw3IEBAIGJvb2wgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpkaXNwYXRjaFN5
bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDCiB2b2lkIEF1eGlsaWFy
eVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBBU1NF
UlQoIW1fY29ubmVjdGlvbik7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICBp
ZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZp
ZXIpKQogICAgICAgICByZXR1cm47CkBAIC0yMzgsMTggKzI0OCwxNiBAQCB2b2lkIEF1eGlsaWFy
eVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6
Q29ubmVjdGlvbgogICAgIGZvciAoYXV0byYmIHBlbmRpbmdNZXNzYWdlIDogc3RkOjpleGNoYW5n
ZShtX3BlbmRpbmdNZXNzYWdlcywgeyB9KSkgewogICAgICAgICBpZiAoIXNob3VsZFNlbmRQZW5k
aW5nTWVzc2FnZShwZW5kaW5nTWVzc2FnZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgYXV0byBlbmNvZGVyID0gV1RGTW92ZShwZW5kaW5nTWVzc2FnZS5lbmNvZGVyKTsKLSAgICAg
ICAgYXV0byBzZW5kT3B0aW9ucyA9IHBlbmRpbmdNZXNzYWdlLnNlbmRPcHRpb25zOwogICAgICAg
ICBpZiAocGVuZGluZ01lc3NhZ2UuYXN5bmNSZXBseUluZm8pCiAgICAgICAgICAgICBJUEM6OmFk
ZEFzeW5jUmVwbHlIYW5kbGVyKCpjb25uZWN0aW9uKCksIHBlbmRpbmdNZXNzYWdlLmFzeW5jUmVw
bHlJbmZvLT5zZWNvbmQsIFdURk1vdmUocGVuZGluZ01lc3NhZ2UuYXN5bmNSZXBseUluZm8tPmZp
cnN0KSk7Ci0gICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZE1lc3NhZ2UoV1RGTW92ZShlbmNvZGVy
KSwgc2VuZE9wdGlvbnMpOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmRNZXNzYWdlKFdURk1v
dmUocGVuZGluZ01lc3NhZ2UuZW5jb2RlciksIHBlbmRpbmdNZXNzYWdlLnNlbmRPcHRpb25zKTsK
ICAgICB9CiB9CiAKIHZvaWQgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpyZXBseVRvUGVuZGluZ01l
c3NhZ2VzKCkKIHsKLSAgICBhdXRvIHBlbmRpbmdNZXNzYWdlcyA9IFdURk1vdmUobV9wZW5kaW5n
TWVzc2FnZXMpOwotICAgIGZvciAoYXV0byYgcGVuZGluZ01lc3NhZ2UgOiBwZW5kaW5nTWVzc2Fn
ZXMpIHsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKyAgICBmb3IgKGF1dG8mIHBlbmRp
bmdNZXNzYWdlIDogc3RkOjpleGNoYW5nZShtX3BlbmRpbmdNZXNzYWdlcywgeyB9KSkgewogICAg
ICAgICBpZiAocGVuZGluZ01lc3NhZ2UuYXN5bmNSZXBseUluZm8pCiAgICAgICAgICAgICBwZW5k
aW5nTWVzc2FnZS5hc3luY1JlcGx5SW5mby0+Zmlyc3QobnVsbHB0cik7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaAppbmRleCBmM2Vm
ZTcwYjIzZGJlNmYyOThlNGQ1YzI3MjZjNzBkZTM0ZTVjODFkLi5kOTUzNzQ0ODdhNGU4MTBmYTNk
MmVhNDVmOWU2ZWJiNDUwZWFhZmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXhpbGlhcnlQcm9jZXNzUHJveHkuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgUHJvY2Vzc1Rocm90dGxlcjsKIAotY2xhc3MgQXV4aWxpYXJ5UHJvY2Vzc1By
b3h5IDogUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQsIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OkNs
aWVudCB7CitjbGFzcyBBdXhpbGlhcnlQcm9jZXNzUHJveHkgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpN
YWluUnVuTG9vcD4sIHByaXZhdGUgUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQsIHB1YmxpYyBJUEM6
OkNvbm5lY3Rpb246OkNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQXV4aWxpYXJ5
UHJvY2Vzc1Byb3h5KTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5oCmluZGV4IGU0M2YzNGY4N2I4ZTNhMDc3YjcxNDEwODQxMTFh
NGJiMWZkYTVkYzkuLjU3ZGNhM2VhMjA1MTgyOTQyYjgwMjdkZTFlMDQ3MzBmMGMzODhjZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTU2
LDcgKzU2LDcgQEAgY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKIHN0cnVjdCBHUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsK
IAotY2xhc3MgR1BVUHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQ
cm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LCBwdWJsaWMgUmVmQ291bnRlZDxH
UFVQcm9jZXNzUHJveHk+IHsKK2NsYXNzIEdQVVByb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBB
dXhpbGlhcnlQcm9jZXNzUHJveHksIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVudCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR1BV
UHJvY2Vzc1Byb3h5KTsKICAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPEdQVVByb2Nlc3NQ
cm94eT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCmluZGV4IDcwOGU5OTkxY2NlYTViY2IxZDIyNzZkMGYxMzVkY2IwZDdk
NDEzZWIuLjA1ZGM4ZjIxZDAzZjY0MzFiMGJlMmEwMDI2YWI4ZDI1YjQ0MGFjYjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oCkBAIC05Myw3ICs5Myw3IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRJbmZvOwogc3RydWN0IFdl
YnNpdGVEYXRhOwogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCi1jbGFzcyBO
ZXR3b3JrUHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwg
cHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LCBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3Jr
UHJvY2Vzc1Byb3h5PiB7CitjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVibGlj
IEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB1c2luZyBSZWdpc3Ry
YWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggN2U0
ODA2YzAxNzgzZWIyMGQwNzJiYmVmMDU0NmI0ZTM3NDVmOGUzMS4uM2I0YTJhZWQxNDFiZWE4MjQy
NWRhYTI2NTAyYWJhMmVhNzJlOTMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oCkBAIC02Myw3ICs2Myw3IEBAIGludCBw
bHVnaW5Qcm9jZXNzTGF0ZW5jeVFPUygpOwogaW50IHBsdWdpblByb2Nlc3NUaHJvdWdocHV0UU9T
KCk7CiAjZW5kaWYKIAotY2xhc3MgUGx1Z2luUHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVibGljIEF1
eGlsaWFyeVByb2Nlc3NQcm94eSwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBsdWdpblBy
b2Nlc3NQcm94eT4sIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVudCB7CitjbGFzcyBQbHVn
aW5Qcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwcml2
YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8UGx1
Z2luUHJvY2Vzc1Byb3h5PiBjcmVhdGUoUGx1Z2luUHJvY2Vzc01hbmFnZXIqLCBjb25zdCBQbHVn
aW5Qcm9jZXNzQXR0cmlidXRlcyYsIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbik7CiAgICAg
flBsdWdpblByb2Nlc3NQcm94eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3Bw
CmluZGV4IDkxMzMzMmJiYzA2YTUzNGVkOGFjNjBhNTNmMjY2MDJkMDI2ZjMzMTguLjY5NTY5NGFi
MWE4OTJjNWQ0ODQ3NjM3NzI5OWVjM2NmODMzNzllNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblBy
b2Nlc3NQcm94eS5jcHAKQEAgLTU2LDE2ICs1NiwxNiBAQCBXZWJBdXRoblByb2Nlc3NQcm94eSYg
V2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpCiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKIAogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGF0
aWMgTGF6eU5ldmVyRGVzdHJveWVkPFdlYkF1dGhuUHJvY2Vzc1Byb3h5PiB3ZWJBdXRoblByb2Nl
c3M7CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxSZWY8V2ViQXV0aG5Qcm9jZXNzUHJv
eHk+PiB3ZWJBdXRoblByb2Nlc3M7CiAKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10g
ewotICAgICAgICB3ZWJBdXRoblByb2Nlc3MuY29uc3RydWN0KCk7CisgICAgICAgIHdlYkF1dGhu
UHJvY2Vzcy5jb25zdHJ1Y3QoYWRvcHRSZWYoKm5ldyBXZWJBdXRoblByb2Nlc3NQcm94eSkpOwog
CiAgICAgICAgIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwog
CiAgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIFdlYkF1dGhuIHByb2Nlc3MuCi0gICAgICAgIHdl
YkF1dGhuUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQXV0aG5Qcm9jZXNzOjpJbml0aWFsaXpl
V2ViQXV0aG5Qcm9jZXNzKHBhcmFtZXRlcnMpLCAwKTsKLSAgICAgICAgd2ViQXV0aG5Qcm9jZXNz
LT51cGRhdGVQcm9jZXNzQXNzZXJ0aW9uKCk7CisgICAgICAgIHdlYkF1dGhuUHJvY2Vzcy5nZXQo
KS0+c2VuZChNZXNzYWdlczo6V2ViQXV0aG5Qcm9jZXNzOjpJbml0aWFsaXplV2ViQXV0aG5Qcm9j
ZXNzKHBhcmFtZXRlcnMpLCAwKTsKKyAgICAgICAgd2ViQXV0aG5Qcm9jZXNzLmdldCgpLT51cGRh
dGVQcm9jZXNzQXNzZXJ0aW9uKCk7CiAgICAgfSk7CiAKICAgICByZXR1cm4gd2ViQXV0aG5Qcm9j
ZXNzLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRl
eCBjNzZjODE1MzUyNDJmOWM1NzFmNTEyYzVkZDQ1YmZkMzMyMjg2NWI5Li5jOGRmNGRmNGJiMTkx
OGQ4MDFkYmVkMmI4NzE0YzEyNDNjN2ZiMTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaApAQCAtMTE4LDcgKzExOCw3IEBAIHVzaW5nIFdlYlByb2Nlc3NXaXRo
QXVkaWJsZU1lZGlhQ291bnRlciA9IFJlZkNvdW50ZXI8V2ViUHJvY2Vzc1dpdGhBdWRpYmxlTWVk
aWFDCiB1c2luZyBXZWJQcm9jZXNzV2l0aEF1ZGlibGVNZWRpYVRva2VuID0gV2ViUHJvY2Vzc1dp
dGhBdWRpYmxlTWVkaWFDb3VudGVyOjpUb2tlbjsKIGVudW0gY2xhc3MgQ2hlY2tCYWNrRm9yd2Fy
ZExpc3QgOiBib29sIHsgTm8sIFllcyB9OwogCi1jbGFzcyBXZWJQcm9jZXNzUHJveHkgOiBwdWJs
aWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwdWJsaWMgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xp
ZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViUHJvY2Vzc1Byb3h5PiwgcHJpdmF0
ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50IHsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eSA6IHB1Ymxp
YyBBdXhpbGlhcnlQcm9jZXNzUHJveHksIHB1YmxpYyBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGll
bnQsIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPFdlYkZyYW1lUHJveHk+
PiBXZWJGcmFtZVByb3h5TWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJQYWdlUHJveHlJZGVu
dGlmaWVyLCBXZWJQYWdlUHJveHkqPiBXZWJQYWdlUHJveHlNYXA7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>