<?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>222713</bug_id>
          
          <creation_ts>2021-03-03 23:36:49 -0800</creation_ts>
          <short_desc>REGRESSION (r272376): [iOS] ASSERTION FAILED: sessionID.isEphemeral() || !path.isEmpty() in WebKit::NetworkProcess::swServerForSession</short_desc>
          <delta_ts>2021-03-25 10:36:07 -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>New Bugs</component>
          <version>Other</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=221384</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>
          <dependson>223023</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1735696</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-03-03 23:36:49 -0800</bug_when>
    <thetext>The following test is asserting on iOS debug bots:

    TestWebKitAPI.ResourceLoadStatistics.StoreSuspension
        ASSERTION FAILED: sessionID.isEphemeral() || !path.isEmpty()
        /Volumes/Data/worker/ios-simulator-14-debug/build/Source/WebKit/NetworkProcess/NetworkProcess.cpp(2436) : auto WebKit::NetworkProcess::swServerForSession(PAL::SessionID)::(anonymous class)::operator()() const
        1   0x11e91ab09 WTFCrash
        2   0x10949518b WTFCrashWithInfo(int, char const*, char const*, int)
        3   0x10a0f7ea1 WebKit::NetworkProcess::swServerForSession(PAL::SessionID)::$_10::operator()() const
        4   0x10a0f7c8f void WTF::HashMapEnsureTranslator&lt;WTF::HashMap&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::DefaultHash&lt;PAL::SessionID&gt; &gt;::translate&lt;WTF::KeyValuePair&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt;, PAL::SessionID const&amp;, WebKit::NetworkProcess::swServerForSession(PAL::SessionID)::$_10&gt;(WTF::KeyValuePair&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt;&amp;, PAL::SessionID const&amp;, WebKit::NetworkProcess::swServerForSession(PAL::SessionID)::$_10&amp;&amp;)
        5   0x10a0f7963 WTF::HashTableAddResult&lt;WTF::HashTableIterator&lt;PAL::SessionID, WTF::KeyValuePair&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashMap&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;PAL::SessionID&gt; &gt; &gt; WTF::HashTable&lt;PAL::SessionID, WTF::KeyValuePair&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashMap&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;PAL::SessionID&gt; &gt;::add&lt;WTF::HashMapEnsureTranslator&lt;WTF::HashMap&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::DefaultHash&lt;PAL::SessionID&gt; &gt;, PAL::SessionID const&amp;, WebKit::NetworkProcess::swServerForSession(PAL::SessionID)::$_10&gt;(PAL::SessionID const&amp;, WebKit::NetworkProcess::swServerForSession(PAL::SessionID)::$_10&amp;&amp;)
        6   0x10a0f76eb WTF::HashTableAddResult&lt;WTF::HashTableIterator&lt;PAL::SessionID, WTF::KeyValuePair&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashMap&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;PAL::SessionID&gt; &gt; &gt; WTF::HashMap&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;::inlineEnsure&lt;PAL::SessionID const&amp;, WebKit::NetworkProcess::swServerForSession(PAL::SessionID)::$_10&gt;(PAL::SessionID const&amp;, WebKit::NetworkProcess::swServerForSession(PAL::SessionID)::$_10&amp;&amp;)
        7   0x10a0477c6 WTF::HashTableAddResult&lt;WTF::HashTableIterator&lt;PAL::SessionID, WTF::KeyValuePair&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashMap&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;PAL::SessionID&gt; &gt; &gt; WTF::HashMap&lt;PAL::SessionID, std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt;, WTF::DefaultHash&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;PAL::SessionID&gt;, WTF::HashTraits&lt;std::__1::unique_ptr&lt;WebCore::SWServer, std::__1::default_delete&lt;WebCore::SWServer&gt; &gt; &gt; &gt;::ensure&lt;WebKit::NetworkProcess::swServerForSession(PAL::SessionID)::$_10&gt;(PAL::SessionID const&amp;, WebKit::NetworkProcess::swServerForSession(PAL::SessionID)::$_10&amp;&amp;)
        8   0x10a04050d WebKit::NetworkProcess::swServerForSession(PAL::SessionID)
        9   0x109fe3742 WebKit::NetworkConnectionToWebProcess::establishSWServerConnection()
        10  0x109fe348e WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess(WebKit::NetworkProcess&amp;, WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID, IPC::Connection::Identifier)
        11  0x109fe318d WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess(WebKit::NetworkProcess&amp;, WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID, IPC::Connection::Identifier)
        12  0x109fe30ac WebKit::NetworkConnectionToWebProcess::create(WebKit::NetworkProcess&amp;, WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID, IPC::Connection::Identifier)
        13  0x10a03873f WebKit::NetworkProcess::createNetworkConnectionToWebProcess(WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID, WTF::CompletionHandler&lt;void (WTF::Optional&lt;IPC::Attachment&gt;&amp;&amp;, WebCore::HTTPCookieAcceptPolicy)&gt;&amp;&amp;)
        14  0x109a31939 void IPC::callMemberFunctionImpl&lt;WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID, WTF::CompletionHandler&lt;void (WTF::Optional&lt;IPC::Attachment&gt;&amp;&amp;, WebCore::HTTPCookieAcceptPolicy)&gt;&amp;&amp;), void (WTF::Optional&lt;IPC::Attachment&gt; const&amp;, WebCore::HTTPCookieAcceptPolicy), std::__1::tuple&lt;WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID&gt;, 0ul, 1ul&gt;(WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID, WTF::CompletionHandler&lt;void (WTF::Optional&lt;IPC::Attachment&gt;&amp;&amp;, WebCore::HTTPCookieAcceptPolicy)&gt;&amp;&amp;), WTF::CompletionHandler&lt;void (WTF::Optional&lt;IPC::Attachment&gt; const&amp;, WebCore::HTTPCookieAcceptPolicy)&gt;&amp;&amp;, std::__1::tuple&lt;WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul&gt;)
        15  0x109a2fdf5 void IPC::callMemberFunction&lt;WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID, WTF::CompletionHandler&lt;void (WTF::Optional&lt;IPC::Attachment&gt;&amp;&amp;, WebCore::HTTPCookieAcceptPolicy)&gt;&amp;&amp;), void (WTF::Optional&lt;IPC::Attachment&gt; const&amp;, WebCore::HTTPCookieAcceptPolicy), std::__1::tuple&lt;WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul&gt; &gt;(std::__1::tuple&lt;WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID&gt;&amp;&amp;, WTF::CompletionHandler&lt;void (WTF::Optional&lt;IPC::Attachment&gt; const&amp;, WebCore::HTTPCookieAcceptPolicy)&gt;&amp;&amp;, WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID, WTF::CompletionHandler&lt;void (WTF::Optional&lt;IPC::Attachment&gt;&amp;&amp;, WebCore::HTTPCookieAcceptPolicy)&gt;&amp;&amp;))
        16  0x109a21ae1 void IPC::handleMessageAsync&lt;Messages::NetworkProcess::CreateNetworkConnectionToWebProcess, WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID, WTF::CompletionHandler&lt;void (WTF::Optional&lt;IPC::Attachment&gt;&amp;&amp;, WebCore::HTTPCookieAcceptPolicy)&gt;&amp;&amp;)&gt;(IPC::Connection&amp;, IPC::Decoder&amp;, WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(WTF::ObjectIdentifier&lt;WebCore::ProcessIdentifierType&gt;, PAL::SessionID, WTF::CompletionHandler&lt;void (WTF::Optional&lt;IPC::Attachment&gt;&amp;&amp;, WebCore::HTTPCookieAcceptPolicy)&gt;&amp;&amp;))
        17  0x109a1e7ae WebKit::NetworkProcess::didReceiveNetworkProcessMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
        18  0x10a037018 WebKit::NetworkProcess::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
        19  0x10950f1a4 IPC::Connection::dispatchMessage(IPC::Decoder&amp;)
        20  0x10950f98c IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)
        21  0x1095084cc IPC::Connection::SyncMessageState::ConnectionAndIncomingMessage::dispatch()
        22  0x1095086a1 IPC::Connection::SyncMessageState::dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection(IPC::Connection&amp;)
        23  0x10951f751 IPC::Connection::SyncMessageState::processIncomingMessage(IPC::Connection&amp;, std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;&amp;)::$_1::operator()()
        24  0x10951f67e WTF::Detail::CallableWrapper&lt;IPC::Connection::SyncMessageState::processIncomingMessage(IPC::Connection&amp;, std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;&amp;)::$_1, void&gt;::call()
        25  0x11e945f52 WTF::Function&lt;void ()&gt;::operator()() const
        26  0x11e9c6545 WTF::RunLoop::performWork()
        27  0x11e9cae01 WTF::RunLoop::performWork(void*)
        28  0x1029d937a __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
        29  0x1029d9272 __CFRunLoopDoSource0
        30  0x1029d8754 __CFRunLoopDoSources0
        31  0x1029d2f1f __CFRunLoopRun
        ASSERTION FAILED: databaseUpdated
        /Volumes/Data/worker/ios-simulator-14-debug/build/Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm(75) : void WebKit::WebPage::platformDidReceiveLoadParameters(const WebKit::LoadParameters &amp;)
        1   0x1a2802b09 WTFCrash
        2   0x1880ae18b WTFCrashWithInfo(int, char const*, char const*, int)
        3   0x1898ed0d7 WebKit::WebPage::platformDidReceiveLoadParameters(WebKit::LoadParameters const&amp;)
        4   0x18a03a3da WebKit::WebPage::loadData(WebKit::LoadParameters&amp;&amp;)
        5   0x18a11dac0 void IPC::callMemberFunctionImpl&lt;WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::LoadParameters&amp;&amp;), std::__1::tuple&lt;WebKit::LoadParameters&gt;, 0ul&gt;(WebKit::WebPage*, void (WebKit::WebPage::*)(WebKit::LoadParameters&amp;&amp;), std::__1::tuple&lt;WebKit::LoadParameters&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt;)
        6   0x18a11cee0 void IPC::callMemberFunction&lt;WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::LoadParameters&amp;&amp;), std::__1::tuple&lt;WebKit::LoadParameters&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt; &gt;(std::__1::tuple&lt;WebKit::LoadParameters&gt;&amp;&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)(WebKit::LoadParameters&amp;&amp;))
        7   0x18a0b5d8e void IPC::handleMessage&lt;Messages::WebPage::LoadData, WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::LoadParameters&amp;&amp;)&gt;(IPC::Decoder&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)(WebKit::LoadParameters&amp;&amp;))
        8   0x18a0aa884 WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
        9   0x18a0497be WebKit::WebPage::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
        10  0x1885b1491 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
        11  0x189a2eb57 WebKit::WebProcess::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
        12  0x1881281a4 IPC::Connection::dispatchMessage(IPC::Decoder&amp;)
        13  0x18812898c IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)
        14  0x188128fe0 IPC::Connection::dispatchOneIncomingMessage()
        15  0x188147e58 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_9::operator()()
        16  0x188147d6e WTF::Detail::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_9, void&gt;::call()
        17  0x1a282df52 WTF::Function&lt;void ()&gt;::operator()() const
        18  0x1a28ae545 WTF::RunLoop::performWork()
        19  0x1a28b2e01 WTF::RunLoop::performWork(void*)
        20  0x19789437a __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
        21  0x197894272 __CFRunLoopDoSource0
        22  0x197893754 __CFRunLoopDoSources0
        23  0x19788df1f __CFRunLoopRun
        24  0x19788d6c6 CFRunLoopRunSpecific
        25  0x10ae257b9 -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
        26  0x10ae259cd -[NSRunLoop(NSRunLoop) run]
        27  0x1991a8176 _xpc_objc_main
        28  0x1991aa115 xpc_main
        29  0x188d70502 WebKit::XPCServiceMain(int, char const**)
        30  0x18a44b27b WKXPCServiceMain
        31  0x10acfbd42 main

https://results.webkit.org/?suite=api-tests&amp;test=TestWebKitAPI.ResourceLoadStatistics.StoreSuspension</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735697</commentid>
    <comment_count>1</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-03-03 23:37:52 -0800</bug_when>
    <thetext>Test history suggests that this regressed with https://trac.webkit.org/changeset/272376/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735698</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-03 23:38:02 -0800</bug_when>
    <thetext>&lt;rdar://problem/75023048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736348</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-05 08:13:09 -0800</bug_when>
    <thetext>After more tries than I would like to admit, I finally got an iOS simulator and build to reproduce this.  Fixing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1736392</commentid>
    <comment_count>4</comment_count>
      <attachid>422377</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-05 09:57:41 -0800</bug_when>
    <thetext>Created attachment 422377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737836</commentid>
    <comment_count>5</comment_count>
      <attachid>422377</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-09 16:20:45 -0800</bug_when>
    <thetext>Comment on attachment 422377
Patch

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

r=me

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:432
&gt;      if (isNewEntry)
&gt;          SandboxExtension::consumePermanently(cacheRootPathHandle);
&gt; +    else
&gt; +        ASSERT_NOT_REACHED();

I would just ASSERT(isNewEntry). Then no need for if/else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737839</commentid>
    <comment_count>6</comment_count>
      <attachid>422377</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-09 16:23:07 -0800</bug_when>
    <thetext>Comment on attachment 422377
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h:51
&gt; +    ~NetworkProcessCreationParameters();

Why are we adding this?

&gt; Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h:52
&gt; +    NetworkProcessCreationParameters&amp; operator=(NetworkProcessCreationParameters&amp;&amp;);

ditto. Why are we not getting an implicit one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737842</commentid>
    <comment_count>7</comment_count>
      <attachid>422377</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-09 16:25:39 -0800</bug_when>
    <thetext>Comment on attachment 422377
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h:50
&gt; +    NetworkProcessCreationParameters(NetworkProcessCreationParameters&amp;&amp;);

Ditto. We should be getting an implicit one here. Why do we need to define it explicitly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737851</commentid>
    <comment_count>8</comment_count>
      <attachid>422377</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-09 16:35:28 -0800</bug_when>
    <thetext>Comment on attachment 422377
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h:51
&gt;&gt; +    ~NetworkProcessCreationParameters();
&gt; 
&gt; Why are we adding this?

I need to add a non-inline destructor so we don&apos;t need to include the definition of WebsiteDataStoreParameters here.  Because I added that, we need the others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737852</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-09 16:36:11 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #8)
&gt; Comment on attachment 422377 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=422377&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h:51
&gt; &gt;&gt; +    ~NetworkProcessCreationParameters();
&gt; &gt; 
&gt; &gt; Why are we adding this?
&gt; 
&gt; I need to add a non-inline destructor so we don&apos;t need to include the
&gt; definition of WebsiteDataStoreParameters here.  Because I added that, we
&gt; need the others.

OK. Makes sense then. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737854</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-09 16:40:27 -0800</bug_when>
    <thetext>http://trac.webkit.org/r274186</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737994</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-03-10 03:23:19 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 223023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743799</commentid>
    <comment_count>12</comment_count>
      <attachid>424254</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-25 09:34:29 -0700</bug_when>
    <thetext>Created attachment 424254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743817</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-25 10:36:05 -0700</bug_when>
    <thetext>Committed r275047: &lt;https://commits.webkit.org/r275047&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424254.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422377</attachid>
            <date>2021-03-05 09:57:41 -0800</date>
            <delta_ts>2021-03-25 09:34:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222713-20210305095740.patch</filename>
            <type>text/plain</type>
            <size>11748</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3MjBlYzFlMWY2NGQwNDU1
MDk4N2Y2MmNlODYyMzI5ZGYxZDBkMTkuLmZkZmVlMGVhZjY3MDMxZWI4MTA1Y2NhNGI3ZGU1NTE5
NzU3OGMzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDMtMDUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9O
IChyMjcyMzc2KTogW2lPU10gQVNTRVJUSU9OIEZBSUxFRDogc2Vzc2lvbklELmlzRXBoZW1lcmFs
KCkgfHwgIXBhdGguaXNFbXB0eSgpIGluIFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnN3U2VydmVy
Rm9yU2Vzc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIyNzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQmVjYXVzZSBOZXR3b3JrUHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MgaXMgc2VudCB3aXRoIFNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSwgaXQgaXMgcG9zc2libGUKKyAgICAgICAgZm9yIHR3byBtZXNzYWdl
cyBvZiB0eXBlIE5ldHdvcmtQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlIGFuZCB0d28gbWVz
c2FnZXMgb2YgdHlwZSBOZXR3b3JrUHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MgdG8gYmUgaW4gdGhlIHF1ZXVlLAorICAgICAgICBidXQgdGhlIHNlY29uZCBOZXR3
b3JrUHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MganVtcHMgdG8g
dGhlIGZyb250IG9mIHRoZSBsaW5lIHdoaWxlIHRoZSBVSSBwcm9jZXNzIGlzIHdhaXRpbmcgZm9y
IHRoZSByZXBseSB0byB0aGUgZmlyc3QuCisgICAgICAgIFRoZW4sIHdoZW4gY2FsbGluZyBOZXR3
b3JrUHJvY2Vzczo6c3dTZXJ2ZXJGb3JTZXNzaW9uIHdlIGV4cGVjdCB0aGUgc2Vzc2lvbidzIHBh
cmFtZXRlcnMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkIGluIHRoZSBuZXR3b3JrIHByb2Nlc3Mg
YWxyZWFkeSwgYnV0IHdlIGN1dAorICAgICAgICBhaGVhZCBvZiB0aGUgcGFyYW1ldGVyIGluaXRp
YWxpemF0aW9uIG1lc3NhZ2UuICBUaGlzIGlzIGEgcmVhbGlzdGljYWxseSByYXJlIGNvbmRpdGlv
biB0aGF0IGNhbiBvbmx5IGJlIGhpdCB3aGVuIHVzaW5nIFNQSSwgYnV0IGl0IGlzIGhpdCBpbiB0
aGUKKyAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5TdG9yZVN1c3BlbnNpb24gQVBJIHRl
c3QuICBUbyBmaXggdGhpcywgd2Ugc2VuZCB0aGUgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMg
ZnJvbSBlYWNoIFdlYnNpdGVEYXRhU3RvcmUgaW4gdGhlIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLgorICAgICAgICBUbyBhdm9pZCBkb2luZyBleHRyYSB3b3JrLCB3ZSBpbnRyb2R1
Y2UgYW4gZWFybHkgcmV0dXJuIGluIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFkZFNlc3Npb24gaWYg
d2UgaGF2ZSBhbHJlYWR5IGFkZGVkIHBhcmFtZXRlcnMgZnJvbSB0aGlzIHNlc3Npb24gdG8gdGhl
IG5ldHdvcmsgcHJvY2Vzcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3
b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphZGRTZXNzaW9u
U3RvcmFnZVF1b3RhTWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZENyZWF0aW9uUGFyYW1ldGVyc1RvTmV3UHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFkZFNlc3Npb24p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnNGcm9tRWFjaFdlYnNpdGVE
YXRhU3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmg6CisKIDIwMjEtMDMtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWR1Y2UgdXNlIG9mIENGUmV0YWluKCkgLyBDRlJlbGVhc2UoKSAvIENGQXV0b1Jl
bGVhc2UoKSBpbiBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKaW5kZXggMGVhNWZhZmE2N2U5YTRkMWIxZTRlNTYyZGUxNzYyMWUxYTcw
MjNhYy4uZDUxNGFlM2VmZmI4MjlmYjYzNmIwZTk2MDk1NGUzYjE5ZjlmZjk4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTM0OCw2
ICszNDgsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3Mo
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJgogICAgIGZvciAoYXV0byYgc2NoZW1l
IDogcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3MpCiAgICAgICAgIHJl
Z2lzdGVyVVJMU2NoZW1lQXNOb0FjY2VzcyhzY2hlbWUpOwogICAgIAorICAgIGZvciAoYXV0byYm
IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIDogV1RGTW92ZShwYXJhbWV0ZXJzLndlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzKSkKKyAgICAgICAgYWRkV2Vic2l0ZURhdGFTdG9yZShXVEZNb3Zl
KHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKSk7CisKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNz
LCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzOiBQcmVzZW50
aW5nIHByb2Nlc3NQSUQ9JWQiLCB0aGlzLCBXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25Q
SUQoKSk7CiB9CiAKQEAgLTQyNSw2ICs0MjgsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRT
ZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbgog
ICAgIH0pLmlzTmV3RW50cnk7CiAgICAgaWYgKGlzTmV3RW50cnkpCiAgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShjYWNoZVJvb3RQYXRoSGFuZGxlKTsKKyAgICBl
bHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpyZW1vdmVTZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlcihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDA4ZTNmYmQzMjdk
ZjBhNDY2NjI3NzQyZDU5ZDRmZGE0NmNhYTdhYmUuLjgwYjJiMDNmMTdmMWYyZjg2NzNmZDEyZWE3
Mzk0OTMxZTFlMWZmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgiCiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJBcmd1bWVudENvZGVyc0NG
LmgiCkBAIC0zNiw2ICszNyw5IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkg
PSBkZWZhdWx0OworTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6On5OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpID0gZGVmYXVsdDsKK05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyhOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmKSA9IGRlZmF1bHQ7CitOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6Om9wZXJhdG9y
PShOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmKSA9IGRlZmF1bHQ7CiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7CkBAIC02OCw2ICs3Miw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAg
ICBlbmNvZGVyIDw8IGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50OwogICAgIGVuY29kZXIg
PDwgZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGU7CisgICAgZW5jb2RlciA8
PCB3ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIH0KIAogYm9vbCBOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHJlc3VsdCkKQEAgLTEzOCw2ICsxNDMsMTIgQEAgYm9v
bCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgTmV0d29ya1Byb2MKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5lbmFi
bGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudERlYnVnTW9kZSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAorICAgIE9wdGlvbmFsPFZlY3RvcjxXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycz4+IHdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOworICAgIGRlY29kZXIgPj4gd2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM7CisgICAgaWYgKCF3ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdC53ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyA9
IFdURk1vdmUoKndlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKTsKKwogICAgIHJldHVybiB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNTk3ZmM4ZGJkY2JhMDgy
NTc5ZWQwOWFhODFjMzcyODAzNzYzMDg1NS4uNTAyMTU3N2FmZWQ0M2JiOTY2OWU0NDg2NjNlZThl
ZGVmZDlkMzU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNDMsOCArNDMs
MTMgQEAgY2xhc3MgRW5jb2RlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0cnVjdCBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKKwogc3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICAgICBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpOworICAg
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYpOworICAgIH5OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpOwor
ICAgIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBvcGVyYXRvcj0oTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29k
ZXImKSBjb25zdDsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQ
Qzo6RGVjb2RlciYsIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CkBAIC04Miw2
ICs4Nyw4IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAKICAg
ICBib29sIGVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50IHsgdHJ1ZSB9OwogICAgIGJvb2wg
ZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUgeyBmYWxzZSB9OworCisgICAg
VmVjdG9yPFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiB3ZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNzgw
YzkzMThmNDJhNTViZjRjYjcxYmQ1MTkxMWFjMWQ3MjBmZDYxZi4uYWU2ZWYyNGE5NmI2YzQ3ZmY1
Yjk2ZTE2OWVhNTg0YWIwNTkwZDUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xNTgsNiArMTU4LDEw
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZENyZWF0aW9uUGFyYW1ldGVyc1RvTmV3
UHJvY2VzcygpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShwYXJlbnRC
dW5kbGVEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRPbmx5LCBwYXJhbWV0
ZXJzLnBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yVGVtcG9yYXJ5RmlsZShlbXB0eVN0cmluZygpLCBTYW5k
Ym94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIHBhcmFtZXRlcnMudGVtcERpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKKyAgICBwYXJhbWV0ZXJzLndlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzID0gV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVyc0Zyb21FYWNoV2Vic2l0ZURh
dGFTdG9yZSgpOworICAgIFdlYnNpdGVEYXRhU3RvcmU6OmZvckVhY2hXZWJzaXRlRGF0YVN0b3Jl
KFt0aGlzXShhdXRvJiB3ZWJzaXRlRGF0YVN0b3JlKSB7CisgICAgICAgIGFkZFNlc3Npb24od2Vi
c2l0ZURhdGFTdG9yZSwgU2VuZFBhcmFtZXRlcnNUb05ldHdvcmtQcm9jZXNzOjpObyk7CisgICAg
fSk7CiAgICAgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNz
KHBhcmFtZXRlcnMpOwogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyksIDApOwogfQpAQCAtMTMyNywxMSArMTMzMSwx
MyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhjb25zdCBQQUw6OlNl
c3Npb25JRCYgc2Vzc2lvbklELCBDb21wbGV0aQogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkZsdXNoQ29va2llcyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YWRkU2Vz
c2lvbihXZWJzaXRlRGF0YVN0b3JlJiBzdG9yZSkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
YWRkU2Vzc2lvbihXZWJzaXRlRGF0YVN0b3JlJiBzdG9yZSwgU2VuZFBhcmFtZXRlcnNUb05ldHdv
cmtQcm9jZXNzIHNlbmRQYXJhbWV0ZXJzVG9OZXR3b3JrUHJvY2VzcykKIHsKLSAgICBtX3dlYnNp
dGVEYXRhU3RvcmVzLmFkZChzdG9yZSk7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3dlYnNpdGVE
YXRhU3RvcmVzLmFkZChzdG9yZSk7CisgICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkKKyAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGNhblNlbmRNZXNzYWdlKCkpCisgICAgaWYgKGNhblNl
bmRNZXNzYWdlKCkgJiYgc2VuZFBhcmFtZXRlcnNUb05ldHdvcmtQcm9jZXNzID09IFNlbmRQYXJh
bWV0ZXJzVG9OZXR3b3JrUHJvY2Vzczo6WWVzKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6QWRkV2Vic2l0ZURhdGFTdG9yZSB7IHN0b3JlLnBhcmFtZXRlcnMoKSB9LCAw
KTsKICAgICBhdXRvIHNlc3Npb25JRCA9IHN0b3JlLnNlc3Npb25JRCgpOwogICAgIGlmICghc2Vz
c2lvbklELmlzRXBoZW1lcmFsKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggYTFlOTEwODI2NzFhYmZmMDYw
N2NkYjJmOTIzYjk4OThkOTJhMGQ3Mi4uN2M3MGQ5NDBlNDQwZWRmMGJjM2JlOTIxY2RhY2VhZjUy
MzYyMjRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTIyMSw3ICsyMjEsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkaWREZXN0cm95V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkoV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyUHJveHkmKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRTZXNzaW9uKFdlYnNpdGVE
YXRhU3RvcmUmKTsKKyAgICBlbnVtIGNsYXNzIFNlbmRQYXJhbWV0ZXJzVG9OZXR3b3JrUHJvY2Vz
cyA6IGJvb2wgeyBObywgWWVzIH07CisgICAgdm9pZCBhZGRTZXNzaW9uKFdlYnNpdGVEYXRhU3Rv
cmUmLCBTZW5kUGFyYW1ldGVyc1RvTmV0d29ya1Byb2Nlc3MpOwogICAgIHZvaWQgcmVtb3ZlU2Vz
c2lvbihXZWJzaXRlRGF0YVN0b3JlJik7CiAgICAgCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGI1Zjc4MGY1Yjc3NmMzMmFhZTBiMWZkZGNhZWIyN2Vl
NmUyODFiOWIuLmY2NGI2Y2I2M2NkNjBjYjNhMmFmNWJmNWY2NTEwODg1YTU3MTMxZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCkBAIC0yMDgsNyArMjA4LDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2Vi
c2l0ZURhdGFTdG9yZTo6bmV0d29ya1Byb2Nlc3MoKQogewogICAgIGlmICghbV9uZXR3b3JrUHJv
Y2VzcykgewogICAgICAgICBtX25ldHdvcmtQcm9jZXNzID0gbmV0d29ya1Byb2Nlc3NGb3JTZXNz
aW9uKG1fc2Vzc2lvbklEKTsKLSAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YWRkU2Vzc2lvbigq
dGhpcyk7CisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmFkZFNlc3Npb24oKnRoaXMsIE5ldHdv
cmtQcm9jZXNzUHJveHk6OlNlbmRQYXJhbWV0ZXJzVG9OZXR3b3JrUHJvY2Vzczo6WWVzKTsKICAg
ICB9CiAKICAgICByZXR1cm4gKm1fbmV0d29ya1Byb2Nlc3M7CkBAIC0yMTA4LDYgKzIxMDgsMTUg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRl
c3RpbmcoQ2FjaGVNb2RlbCBjYWNoZU1vZGUKICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNldENhY2hl
TW9kZWxTeW5jaHJvbm91c2x5Rm9yVGVzdGluZyhjYWNoZU1vZGVsKTsKIH0KIAorVmVjdG9yPFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzRnJv
bUVhY2hXZWJzaXRlRGF0YVN0b3JlKCkKK3sKKyAgICBWZWN0b3I8V2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnM+IHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVycy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KGFsbERhdGFTdG9yZXMoKS5zaXplKCkpOworICAgIGZvciAoYXV0byogZGF0YVN0b3JlIDog
YWxsRGF0YVN0b3JlcygpLnZhbHVlcygpKQorICAgICAgICBwYXJhbWV0ZXJzLnVuY2hlY2tlZEFw
cGVuZChkYXRhU3RvcmUtPnBhcmFtZXRlcnMoKSk7CisgICAgcmV0dXJuIHBhcmFtZXRlcnM7Cit9
CisKIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRl
cnMoKQogewogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmgKaW5kZXggNDgyMjE2ZmE0ODJmMGE1MjU5YjQwZjNlZjllMjRlODYwMThmMTAzMy4uOTlh
NGRiYzc1ZjZkYjVjY2FiNWUyNjJkMWZiMmYxOThiNWE3YTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAt
MjU4LDYgKzI1OCw3IEBAIHB1YmxpYzoKICAgICBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSYgZGV2
aWNlSWRIYXNoU2FsdFN0b3JhZ2UoKSB7IHJldHVybiBtX2RldmljZUlkSGFzaFNhbHRTdG9yYWdl
LmdldCgpOyB9CiAKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJhbWV0ZXJzKCk7
CisgICAgc3RhdGljIFZlY3RvcjxXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycz4gcGFyYW1ldGVy
c0Zyb21FYWNoV2Vic2l0ZURhdGFTdG9yZSgpOwogCiAgICAgdm9pZCBmbHVzaENvb2tpZXMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVudGlh
bHMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424254</attachid>
            <date>2021-03-25 09:34:29 -0700</date>
            <delta_ts>2021-03-25 10:36:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222713-20210325093428.patch</filename>
            <type>text/plain</type>
            <size>11879</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhYmY2ZjE5Nzk0ZjI0MDdh
N2Q4ODc4OGRmNGExMmFlZmQyYzdiOGMuLmQ5MTEwZmNhY2I3MTJkMTU2MDU2NDk2ODYyNTBjZGFl
NTk5NTgyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMjEtMDMtMjUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSRUdSRVNTSU9O
IChyMjcyMzc2KTogW2lPU10gQVNTRVJUSU9OIEZBSUxFRDogc2Vzc2lvbklELmlzRXBoZW1lcmFs
KCkgfHwgIXBhdGguaXNFbXB0eSgpIGluIFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnN3U2VydmVy
Rm9yU2Vzc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIyNzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCisKKyAgICAgICAg
QmVjYXVzZSBOZXR3b3JrUHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MgaXMgc2VudCB3aXRoIFNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSwgaXQgaXMgcG9zc2libGUKKyAgICAgICAgZm9yIHR3byBtZXNzYWdlcyBv
ZiB0eXBlIE5ldHdvcmtQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlIGFuZCB0d28gbWVzc2Fn
ZXMgb2YgdHlwZSBOZXR3b3JrUHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MgdG8gYmUgaW4gdGhlIHF1ZXVlLAorICAgICAgICBidXQgdGhlIHNlY29uZCBOZXR3b3Jr
UHJvY2Vzczo6Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MganVtcHMgdG8gdGhl
IGZyb250IG9mIHRoZSBsaW5lIHdoaWxlIHRoZSBVSSBwcm9jZXNzIGlzIHdhaXRpbmcgZm9yIHRo
ZSByZXBseSB0byB0aGUgZmlyc3QuCisgICAgICAgIFRoZW4sIHdoZW4gY2FsbGluZyBOZXR3b3Jr
UHJvY2Vzczo6c3dTZXJ2ZXJGb3JTZXNzaW9uIHdlIGV4cGVjdCB0aGUgc2Vzc2lvbidzIHBhcmFt
ZXRlcnMgdG8gaGF2ZSBiZWVuIGluaXRpYWxpemVkIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MgYWxy
ZWFkeSwgYnV0IHdlIGN1dAorICAgICAgICBhaGVhZCBvZiB0aGUgcGFyYW1ldGVyIGluaXRpYWxp
emF0aW9uIG1lc3NhZ2UuICBUaGlzIGlzIGEgcmVhbGlzdGljYWxseSByYXJlIGNvbmRpdGlvbiB0
aGF0IGNhbiBvbmx5IGJlIGhpdCB3aGVuIHVzaW5nIFNQSSwgYnV0IGl0IGlzIGhpdCBpbiB0aGUK
KyAgICAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5TdG9yZVN1c3BlbnNpb24gQVBJIHRlc3Qu
ICBUbyBmaXggdGhpcywgd2Ugc2VuZCB0aGUgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgZnJv
bSBlYWNoIFdlYnNpdGVEYXRhU3RvcmUgaW4gdGhlIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLgorICAgICAgICBUbyBhdm9pZCBkb2luZyBleHRyYSB3b3JrLCB3ZSBpbnRyb2R1Y2Ug
YW4gZWFybHkgcmV0dXJuIGluIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFkZFNlc3Npb24gaWYgd2Ug
aGF2ZSBhbHJlYWR5IGFkZGVkIHBhcmFtZXRlcnMgZnJvbSB0aGlzIHNlc3Npb24gdG8gdGhlIG5l
dHdvcmsgcHJvY2Vzcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3Jr
UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphZGRTZXNzaW9uU3Rv
cmFnZVF1b3RhTWFuYWdlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZENyZWF0aW9uUGFyYW1ldGVyc1RvTmV3UHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFkZFNlc3Npb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnNGcm9tRWFjaFdlYnNpdGVEYXRh
U3RvcmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
Lmg6CisKIDIwMjEtMDMtMjIgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBBU1NFUlRJT04gRkFJTEVEOiBpc01haW5UaHJlYWQo
KSBpbiBHUFUgcHJvY2VzcyBmb3Igc29tZSBjYW52YXMvcGhpbGlwL3Rlc3RzIHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDZh
ZmNjMWU1YTU0M2Q3NGIzNWY5N2Y0MmY1ZjM0NjRlYzFjOTM0ZTguLjQ2Nzk1N2IyNWUxYjdlYmE1
YTMxYzE2ZDU2MGY1NTM5M2YwMWU4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0zNTMsNiArMzUzLDkgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYKICAgICBmb3IgKGF1dG8mIHNjaGVtZSA6IHBhcmFtZXRlcnMudXJsU2NoZW1l
c1JlZ2lzdGVyZWRBc05vQWNjZXNzKQogICAgICAgICByZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nl
c3Moc2NoZW1lKTsKICAgICAKKyAgICBmb3IgKGF1dG8mJiB3ZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycyA6IFdURk1vdmUocGFyYW1ldGVycy53ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycykpCisg
ICAgICAgIGFkZFdlYnNpdGVEYXRhU3RvcmUoV1RGTW92ZSh3ZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycykpOworCiAgICAgUkVMRUFTRV9MT0coUHJvY2VzcywgIiVwIC0gTmV0d29ya1Byb2Nlc3M6
OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzczogUHJlc2VudGluZyBwcm9jZXNzUElEPSVkIiwgdGhp
cywgV2ViQ29yZTo6cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCkpOwogfQogCkBAIC00MzAsNiAr
NDMzLDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRkU2Vzc2lvblN0b3JhZ2VRdW90YU1hbmFn
ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW4KICAgICB9KS5pc05ld0VudHJ5OwogICAg
IGlmIChpc05ld0VudHJ5KQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFu
ZW50bHkoY2FjaGVSb290UGF0aEhhbmRsZSk7CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlU2Vzc2lvblN0b3Jh
Z2VRdW90YU1hbmFnZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAppbmRleCAwOGUzZmJkMzI3ZGYwYTQ2NjYyNzc0MmQ1OWQ0ZmRhNDZj
YWE3YWJlLi44MGIyYjAzZjE3ZjFmMmY4NjczZmQxMmVhNzM5NDkzMWUxZTFmZjM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
KyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNDRi5oIgpAQCAtMzYsNiArMzcsOSBAQAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpID0gZGVmYXVsdDsKK05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjp+TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMo
KSA9IGRlZmF1bHQ7CitOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6TmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
JikgPSBkZWZhdWx0OworTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpvcGVyYXRvcj0oTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmJikgPSBkZWZhdWx0OwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewpAQCAtNjgs
NiArNzIsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8PCBlbmFibGVQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDsKICAgICBlbmNvZGVyIDw8IGVuYWJsZVByaXZhdGVDbGlja01l
YXN1cmVtZW50RGVidWdNb2RlOworICAgIGVuY29kZXIgPDwgd2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnM7CiB9CiAKIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiByZXN1bHQpCkBAIC0xMzgsNiArMTQzLDEyIEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREZWJ1Z01vZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBPcHRpb25hbDxWZWN0
b3I8V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM+PiB3ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
czsKKyAgICBkZWNvZGVyID4+IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOworICAgIGlmICgh
d2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXN1bHQud2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgPSBXVEZNb3ZlKCp3ZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IDU5N2ZjOGRiZGNiYTA4MjU3OWVkMDlhYTgxYzM3MjgwMzc2MzA4
NTUuLjUwMjE1NzdhZmVkNDNiYjk2NjllNDQ4NjYzZWU4ZWRlZmQ5ZDM1OGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTQzLDggKzQzLDEzIEBAIGNsYXNzIEVuY29kZXI7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCitzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7
CisKIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKKyAgICBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmKTsKKyAgICB+TmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKKyAgICBOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYgb3BlcmF0b3I9KE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiYpOwogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGlj
IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwpAQCAtODIsNiArODcsOCBAQCBzdHJ1Y3QgTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogCiAgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCB7IHRydWUgfTsKICAgICBib29sIGVuYWJsZVByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVidWdNb2RlIHsgZmFsc2UgfTsKKworICAgIFZlY3RvcjxXZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycz4gd2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDIwNWYxNjlkYzliM2U2ZTI5ZDY0MWUwMGEw
OTRkMzc2MmQzY2Q1MmQuLjhhNDI2N2IxN2UwMTJkYTJkMjAxM2ExNjlmNDg2YjQ3ZDIwYWI3YjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMTU4LDYgKzE1OCwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRlcnNUb05ld1Byb2Nlc3MoKQogICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUocGFyZW50QnVuZGxlRGlyZWN0b3J5LCBTYW5kYm94
RXh0ZW5zaW9uOjpUeXBlOjpSZWFkT25seSwgcGFyYW1ldGVycy5wYXJlbnRCdW5kbGVEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
clRlbXBvcmFyeUZpbGUoZW1wdHlTdHJpbmcoKSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVh
ZFdyaXRlLCBwYXJhbWV0ZXJzLnRlbXBEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogI2VuZGlm
CisKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKSAvLyBHVEsgYW5kIFdQRSBk
b24ndCB1c2UgZGVmYXVsdE5ldHdvcmtQcm9jZXNzCisgICAgcGFyYW1ldGVycy53ZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyA9IFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnNGcm9tRWFjaFdl
YnNpdGVEYXRhU3RvcmUoKTsKKyAgICBXZWJzaXRlRGF0YVN0b3JlOjpmb3JFYWNoV2Vic2l0ZURh
dGFTdG9yZShbdGhpc10oYXV0byYgd2Vic2l0ZURhdGFTdG9yZSkgeworICAgICAgICBhZGRTZXNz
aW9uKHdlYnNpdGVEYXRhU3RvcmUsIFNlbmRQYXJhbWV0ZXJzVG9OZXR3b3JrUHJvY2Vzczo6Tm8p
OworICAgIH0pOworI2VuZGlmCisKICAgICBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyk7CiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OkluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0ZXJzKSwgMCk7CiB9CkBA
IC0xMzI3LDExICsxMzM1LDEzIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Zmx1c2hDb29r
aWVzKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIENvbXBsZXRpCiAgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Rmx1c2hDb29raWVzKHNlc3Np
b25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjphZGRTZXNzaW9uKFdlYnNpdGVEYXRhU3RvcmUmIHN0b3JlKQordm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjphZGRTZXNzaW9uKFdlYnNpdGVEYXRhU3RvcmUmIHN0b3JlLCBTZW5k
UGFyYW1ldGVyc1RvTmV0d29ya1Byb2Nlc3Mgc2VuZFBhcmFtZXRlcnNUb05ldHdvcmtQcm9jZXNz
KQogewotICAgIG1fd2Vic2l0ZURhdGFTdG9yZXMuYWRkKHN0b3JlKTsKKyAgICBhdXRvIGFkZFJl
c3VsdCA9IG1fd2Vic2l0ZURhdGFTdG9yZXMuYWRkKHN0b3JlKTsKKyAgICBpZiAoIWFkZFJlc3Vs
dC5pc05ld0VudHJ5KQorICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoY2FuU2VuZE1lc3NhZ2Uo
KSkKKyAgICBpZiAoY2FuU2VuZE1lc3NhZ2UoKSAmJiBzZW5kUGFyYW1ldGVyc1RvTmV0d29ya1By
b2Nlc3MgPT0gU2VuZFBhcmFtZXRlcnNUb05ldHdvcmtQcm9jZXNzOjpZZXMpCiAgICAgICAgIHNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBZGRXZWJzaXRlRGF0YVN0b3JlIHsgc3RvcmUu
cGFyYW1ldGVycygpIH0sIDApOwogICAgIGF1dG8gc2Vzc2lvbklEID0gc3RvcmUuc2Vzc2lvbklE
KCk7CiAgICAgaWYgKCFzZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCAw
N2U3MTQzNjRmZWEyNDBkZGJiYzJlYWNiMzNlYjhlYzMzODk3YTc4Li4wYzRlNjI5NmFmMDk1NTU1
ZjNiYTEyM2U3NDU4YzNjZDIyNDZmZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjIxLDcgKzIyMSw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZERlc3Ryb3lXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eShXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSYpOwogI2VuZGlmCiAKLSAgICB2b2lkIGFk
ZFNlc3Npb24oV2Vic2l0ZURhdGFTdG9yZSYpOworICAgIGVudW0gY2xhc3MgU2VuZFBhcmFtZXRl
cnNUb05ldHdvcmtQcm9jZXNzIDogYm9vbCB7IE5vLCBZZXMgfTsKKyAgICB2b2lkIGFkZFNlc3Np
b24oV2Vic2l0ZURhdGFTdG9yZSYsIFNlbmRQYXJhbWV0ZXJzVG9OZXR3b3JrUHJvY2Vzcyk7CiAg
ICAgdm9pZCByZW1vdmVTZXNzaW9uKFdlYnNpdGVEYXRhU3RvcmUmKTsKICAgICAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZjczMjk3ZGViNjkyZTI2
YmIxZjVmNmFlODEwYjZlNGVjNWFkYmZkZS4uODYwZDlmNjI2YjcxYmVmMTRiYmFjZTljZWFiYmQ3
MmRjOTgzNjYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5JiBXZWJzaXRlRGF0YVN0b3JlOjpuZXR3b3JrUHJvY2VzcygpCiB7CiAgICAg
aWYgKCFtX25ldHdvcmtQcm9jZXNzKSB7CiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MgPSBuZXR3
b3JrUHJvY2Vzc0ZvclNlc3Npb24obV9zZXNzaW9uSUQpOwotICAgICAgICBtX25ldHdvcmtQcm9j
ZXNzLT5hZGRTZXNzaW9uKCp0aGlzKTsKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+YWRkU2Vz
c2lvbigqdGhpcywgTmV0d29ya1Byb2Nlc3NQcm94eTo6U2VuZFBhcmFtZXRlcnNUb05ldHdvcmtQ
cm9jZXNzOjpZZXMpOwogICAgIH0KIAogICAgIHJldHVybiAqbV9uZXR3b3JrUHJvY2VzczsKQEAg
LTE5MDYsNiArMTkwNiwxNSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENhY2hlTW9kZWxT
eW5jaHJvbm91c2x5Rm9yVGVzdGluZyhDYWNoZU1vZGVsIGNhY2hlTW9kZQogICAgICAgICBwcm9j
ZXNzUG9vbC0+c2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKGNhY2hlTW9kZWwp
OwogfQogCitWZWN0b3I8V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM+IFdlYnNpdGVEYXRhU3Rv
cmU6OnBhcmFtZXRlcnNGcm9tRWFjaFdlYnNpdGVEYXRhU3RvcmUoKQoreworICAgIFZlY3RvcjxX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycz4gcGFyYW1ldGVyczsKKyAgICBwYXJhbWV0ZXJzLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkoYWxsRGF0YVN0b3JlcygpLnNpemUoKSk7CisgICAgZm9yIChh
dXRvKiBkYXRhU3RvcmUgOiBhbGxEYXRhU3RvcmVzKCkudmFsdWVzKCkpCisgICAgICAgIHBhcmFt
ZXRlcnMudW5jaGVja2VkQXBwZW5kKGRhdGFTdG9yZS0+cGFyYW1ldGVycygpKTsKKyAgICByZXR1
cm4gcGFyYW1ldGVyczsKK30KKwogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURh
dGFTdG9yZTo6cGFyYW1ldGVycygpCiB7CiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMg
cGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCA4MzYxMmIwNTQ4Yjk5YjNlODQxNmIwNjFmOTdl
ODhjN2ViOTE5YjNiLi4wYzBiM2JjYjQ0YmVlMDNhMzAxYTc2ODJlMzMxNDkxMzc0ZGYyNGVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCkBAIC0yNTgsNiArMjU4LDcgQEAgcHVibGljOgogICAgIERldmljZUlkSGFz
aFNhbHRTdG9yYWdlJiBkZXZpY2VJZEhhc2hTYWx0U3RvcmFnZSgpIHsgcmV0dXJuIG1fZGV2aWNl
SWRIYXNoU2FsdFN0b3JhZ2UuZ2V0KCk7IH0KIAogICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzIHBhcmFtZXRlcnMoKTsKKyAgICBzdGF0aWMgVmVjdG9yPFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzPiBwYXJhbWV0ZXJzRnJvbUVhY2hXZWJzaXRlRGF0YVN0b3JlKCk7CiAKICAgICB2b2lk
IGZsdXNoQ29va2llcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2xl
YXJDYWNoZWRDcmVkZW50aWFscygpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>