<?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>246379</bug_id>
          
          <creation_ts>2022-10-11 18:44:11 -0700</creation_ts>
          <short_desc>REGRESSION(255206@main): [curl] WKProtectionSpaceCopyCertificateInfo is defunct</short_desc>
          <delta_ts>2022-10-13 14:23:19 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>basuke</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1904964</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-11 18:44:11 -0700</bug_when>
    <thetext>[WinCairo WK2 MiniBrowser] crashing in bad cert site

1. Start WinCairo WK2 MiniBrowser
2. Go to https://badssl.com/
3. Click &quot;expired&quot;
4. Crash

&gt; WebKit2.dll!WTF::RawPtrTraits&lt;WTF::StringImpl&gt;::unwrap(WTF::StringImpl * const &amp; ptr) Line 44	C++
&gt; WebKit2.dll!WTF::RefPtr&lt;WTF::StringImpl,WTF::RawPtrTraits&lt;WTF::StringImpl&gt;,WTF::DefaultRefDerefTraits&lt;WTF::StringImpl&gt;&gt;::get() Line 76	C++
&gt; WebKit2.dll!WTF::String::impl() Line 115	C++
&gt; WebKit2.dll!WTF::StringView::StringView(const WTF::String &amp; string) Line 410	C++
&gt; WebKit2.dll!API::String::stringView() Line 54	C++
&gt; WebKit2.dll!WKStringGetLength(const OpaqueWKString * stringRef) Line 53	C++
&gt; MiniBrowserLib.dll!createString(const OpaqueWKString * wkString) Line 33	C++
&gt; MiniBrowserLib.dll!WebKitBrowserWindow::canTrustServerCertificate(const OpaqueWKProtectionSpace * protectionSpace) Line 482	C++
&gt; MiniBrowserLib.dll!WebKitBrowserWindow::didReceiveAuthenticationChallenge(const OpaqueWKPage * page, const OpaqueWKAuthenticationChallenge * challenge, const void * clientInfo) Line 455	C++
&gt; WebKit2.dll!`WKPageSetPageNavigationClient&apos;::`2&apos;::NavigationClient::didReceiveAuthenticationChallenge(WebKit::WebPageProxy &amp; page, WebKit::AuthenticationChallengeProxy &amp; authenticationChallenge) Line 2297	C++
&gt; WebKit2.dll!WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy(WTF::Ref&lt;WebKit::AuthenticationChallengeProxy,WTF::RawPtrTraits&lt;WebKit::AuthenticationChallengeProxy&gt;&gt; &amp;&amp; authenticationChallenge, WebKit::NegotiatedLegacyTLS negotiatedLegacyTLS) Line 8818	C++
&gt; WebKit2.dll!WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge(PAL::SessionID sessionID, WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt; pageID, const std::optional&lt;WebCore::SecurityOriginData&gt; &amp; topOrigin, WebCore::AuthenticationChallenge &amp;&amp; coreChallenge, bool negotiatedLegacyTLS, WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt; challengeID) Line 512	C++
&gt; WebKit2.dll!IPC::callMemberFunctionImpl&lt;WebKit::NetworkProcessProxy,void (__cdecl WebKit::NetworkProcessProxy::*)(PAL::SessionID,WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt;,std::optional&lt;WebCore::SecurityOriginData&gt; const &amp;,WebCore::AuthenticationChallenge &amp;&amp;,bool,WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt;),std::tuple&lt;PAL::SessionID,WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt;,std::optional&lt;WebCore::SecurityOriginData&gt;,WebCore::AuthenticationChallenge,bool,WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt;&gt;,0,1,2,3,4,5&gt;(WebKit::NetworkProcessProxy * object, void(WebKit::NetworkProcessProxy::*)(PAL::SessionID, WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt;, const std::optional&lt;WebCore::SecurityOriginData&gt; &amp;, WebCore::AuthenticationChallenge &amp;&amp;, bool, WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt;) function, std::tuple&lt;PAL::SessionID,WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt;,std::optional&lt;WebCore::SecurityOriginData&gt;,WebCore::AuthenticationChallenge,bool,WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt;&gt; &amp;&amp; args, std::integer_sequence&lt;unsigned __int64,0,1,2,3,4,5&gt; __formal) Line 132	C++
&gt; WebKit2.dll!IPC::callMemberFunction&lt;WebKit::NetworkProcessProxy,void (__cdecl WebKit::NetworkProcessProxy::*)(PAL::SessionID,WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt;,std::optional&lt;WebCore::SecurityOriginData&gt; const &amp;,WebCore::AuthenticationChallenge &amp;&amp;,bool,WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt;),std::tuple&lt;PAL::SessionID,WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt;,std::optional&lt;WebCore::SecurityOriginData&gt;,WebCore::AuthenticationChallenge,bool,WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt;&gt;,std::integer_sequence&lt;unsigned __int64,0,1,2,3,4,5&gt;&gt;(std::tuple&lt;PAL::SessionID,WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt;,std::optional&lt;WebCore::SecurityOriginData&gt;,WebCore::AuthenticationChallenge,bool,WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt;&gt; &amp;&amp; args, WebKit::NetworkProcessProxy * object, void(WebKit::NetworkProcessProxy::*)(PAL::SessionID, WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt;, const std::optional&lt;WebCore::SecurityOriginData&gt; &amp;, WebCore::AuthenticationChallenge &amp;&amp;, bool, WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt;) function) Line 138	C++
&gt; WebKit2.dll!IPC::handleMessage&lt;Messages::NetworkProcessProxy::DidReceiveAuthenticationChallenge,WebKit::NetworkProcessProxy,void (__cdecl WebKit::NetworkProcessProxy::*)(PAL::SessionID,WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt;,std::optional&lt;WebCore::SecurityOriginData&gt; const &amp;,WebCore::AuthenticationChallenge &amp;&amp;,bool,WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt;)&gt;(IPC::Connection &amp; connection, IPC::Decoder &amp; decoder, WebKit::NetworkProcessProxy * object, void(WebKit::NetworkProcessProxy::*)(PAL::SessionID, WTF::ObjectIdentifier&lt;enum WebKit::WebPageProxyIdentifierType&gt;, const std::optional&lt;WebCore::SecurityOriginData&gt; &amp;, WebCore::AuthenticationChallenge &amp;&amp;, bool, WTF::ObjectIdentifier&lt;enum WebKit::AuthenticationChallengeIdentifierType&gt;) function) Line 260	C++
&gt; WebKit2.dll!WebKit::NetworkProcessProxy::didReceiveNetworkProcessProxyMessage(IPC::Connection &amp; connection, IPC::Decoder &amp; decoder) Line 344	C++
&gt; WebKit2.dll!WebKit::NetworkProcessProxy::didReceiveMessage(IPC::Connection &amp; connection, IPC::Decoder &amp; decoder) Line 451	C++
&gt; WebKit2.dll!IPC::Connection::dispatchMessage(IPC::Decoder &amp; decoder) Line 1158	C++
&gt; WebKit2.dll!IPC::Connection::dispatchMessage(std::unique_ptr&lt;IPC::Decoder,std::default_delete&lt;IPC::Decoder&gt;&gt; message) Line 1204	C++
&gt; WebKit2.dll!IPC::Connection::dispatchOneIncomingMessage() Line 1272	C++
&gt; WebKit2.dll!IPC::Connection::enqueueIncomingMessage::__l2::&lt;lambda_1&gt;::operator()() Line 1121	C++
&gt; WebKit2.dll!WTF::Detail::CallableWrapper&lt;`IPC::Connection::enqueueIncomingMessage&apos;::`2&apos;::&lt;lambda_1&gt;,void&gt;::call() Line 53	C++
&gt; WTF.dll!WTF::Function&lt;void __cdecl(void)&gt;::operator()() Line 83	C++
&gt; WTF.dll!WTF::RunLoop::performWork() Line 147	C++
&gt; WTF.dll!WTF::RunLoop::wndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 57	C++
&gt; WTF.dll!WTF::RunLoop::RunLoopWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 39	C++
&gt; [External Code]	
&gt; MiniBrowserLib.dll!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 120	C++
&gt; MiniBrowserLib.dll!dllLauncherEntryPoint(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 140	C++
&gt; MiniBrowser.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 225	C++
&gt; [External Code]	

WKProtectionSpaceCopyCertificateInfo returned nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904965</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-11 18:58:41 -0700</bug_when>
    <thetext>Since 255206@main (bug#245997)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905001</commentid>
    <comment_count>2</comment_count>
      <attachid>462932</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-11 22:43:46 -0700</bug_when>
    <thetext>Created attachment 462932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905015</commentid>
    <comment_count>3</comment_count>
      <attachid>462934</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-11 23:51:05 -0700</bug_when>
    <thetext>Created attachment 462934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905016</commentid>
    <comment_count>4</comment_count>
      <attachid>462935</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-11 23:55:06 -0700</bug_when>
    <thetext>Created attachment 462935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905088</commentid>
    <comment_count>5</comment_count>
      <attachid>462935</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-10-12 09:30:19 -0700</bug_when>
    <thetext>Comment on attachment 462935
Patch

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

&gt; COMMIT_MESSAGE:8
&gt; +255206@main deprecated WKProtectionSpaceCopyCertificateInfo API and
&gt; +WKCertificateInfoRef. But, WinCairo and PlayStation ports are using
&gt; +it. Reverted the part of the change.

Can we find a way to preserve deprecation warnings for uses of these on Apple ports? This is quite valuable to the Apple WebKit team. I suggest we create a variant of WK_C_API_DEPRECATED for cases like this where we want this on some ports but not others. Maybe a &quot;Windows-only&quot; version, or a &quot;non-Apple-ports-only&quot; version, depending on what people maintaining other ports want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905089</commentid>
    <comment_count>6</comment_count>
      <attachid>462935</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-10-12 09:36:20 -0700</bug_when>
    <thetext>Comment on attachment 462935
Patch

Rather than re-introduce the abstraction of WebCertificateInfo, let&apos;s add a function like this instead:
WKArrayRef WKProtectionSpaceCopyCertificateChain(WKProtectionSpaceRef protectionSpace);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905145</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-10-12 12:10:29 -0700</bug_when>
    <thetext>Something like this.  I haven&apos;t gotten it compiling and it has a small piece that still needs implementing, but I think this is a better design:

diff --git a/Source/WebKit/UIProcess/API/C/curl/WKProtectionSpaceCurl.cpp b/Source/WebKit/UIProcess/API/C/curl/WKProtectionSpaceCurl.cpp
index 03ae616a37c6..18e795cf5573 100644
--- a/Source/WebKit/UIProcess/API/C/curl/WKProtectionSpaceCurl.cpp
+++ b/Source/WebKit/UIProcess/API/C/curl/WKProtectionSpaceCurl.cpp
@@ -36,3 +36,22 @@ WKCertificateInfoRef WKProtectionSpaceCopyCertificateInfo(WKProtectionSpaceRef p
 {
     return nullptr;
 }
+
+WKArrayRef WKProtectionSpaceCopyCertificateChain(WKProtectionSpaceRef protectionSpace)
+{
+    auto&amp; certificateInfo = toImpl(protectionSpaceRef)-&gt;protectionSpace().certificateInfo();
+    (void)certificateInfo; // FIXME: Get the data of each certificate here.
+    return nullptr;
+}
+
+int WKProtectionSpaceGetCertificateVerificationError(WKProtectionSpaceRef protectionSpace)
+{
+    auto&amp; certificateInfo = toImpl(protectionSpaceRef)-&gt;protectionSpace().certificateInfo();
+    return certificateInfo.verificationError();
+}
+
+WK_EXPORT WKStringRef WKProtectionSpaceCopyCertificateVerificationErrorDescription(WKProtectionSpaceRef protectionSpace)
+{
+    auto&amp; certificateInfo = toImpl(protectionSpaceRef)-&gt;protectionSpace().certificateInfo();
+    return WebKit::toCopiedAPI(certificateInfo.verificationErrorDescription());
+}
diff --git a/Source/WebKit/UIProcess/API/C/curl/WKProtectionSpaceCurl.h b/Source/WebKit/UIProcess/API/C/curl/WKProtectionSpaceCurl.h
index 3161fc290cdf..c7d88217a738 100644
--- a/Source/WebKit/UIProcess/API/C/curl/WKProtectionSpaceCurl.h
+++ b/Source/WebKit/UIProcess/API/C/curl/WKProtectionSpaceCurl.h
@@ -33,6 +33,9 @@ extern &quot;C&quot; {
 #endif
 
 WK_EXPORT WKCertificateInfoRef WKProtectionSpaceCopyCertificateInfo(WKProtectionSpaceRef) WK_C_API_DEPRECATED;
+WK_EXPORT WKArrayRef WKProtectionSpaceCopyCertificateChain(WKProtectionSpaceRef protectionSpace);
+WK_EXPORT int WKProtectionSpaceGetCertificateVerificationError(WKProtectionSpaceRef protectionSpace);
+WK_EXPORT WKStringRef WKProtectionSpaceCopyCertificateVerificationErrorDescription(WKProtectionSpaceRef protectionSpace);
 
 #ifdef __cplusplus
 }
diff --git a/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp b/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp
index 50565a2e540a..c312d116ec97 100644
--- a/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp
+++ b/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp
@@ -61,16 +61,16 @@ std::string createUTF8String(const wchar_t* src, size_t srcLength)
     return { buffer.data(), actualLength };
 }
 
-std::wstring createPEMString(WKCertificateInfoRef certificateInfo)
+std::wstring createPEMString(WKProtectionSpaceRef protectionSpace)
 {
-    auto chainSize = WKCertificateInfoGetCertificateChainSize(certificateInfo);
+    auto chain = adoptWK(WKProtectionSpaceCopyCertificateChain(protectionSpace));
 
     std::wstring pems;
 
-    for (auto i = 0; i &lt; chainSize; i++) {
-        auto certificate = adoptWK(WKCertificateInfoCopyCertificateAtIndex(certificateInfo, i));
-        auto size = WKDataGetSize(certificate.get());
-        auto data = WKDataGetBytes(certificate.get());
+    for (auto i = 0; i &lt; WKArrayGetSize(chain.get()); i++) {
+        auto certificate = WKArrayGetItemAtIndex(chain.get(), i);
+        auto size = WKDataGetSize(certificate);
+        auto data = WKDataGetBytes(certificate);
 
         for (size_t i = 0; i &lt; size; i++)
             pems.push_back(data[i]);
@@ -477,9 +477,9 @@ void WebKitBrowserWindow::didReceiveAuthenticationChallenge(WKPageRef page, WKAu
 bool WebKitBrowserWindow::canTrustServerCertificate(WKProtectionSpaceRef protectionSpace)
 {
     auto host = createString(adoptWK(WKProtectionSpaceCopyHost(protectionSpace)).get());
-    auto certificateInfo = adoptWK(WKProtectionSpaceCopyCertificateInfo(protectionSpace));
-    auto verificationError = WKCertificateInfoGetVerificationError(certificateInfo.get());
-    auto description = createString(adoptWK(WKCertificateInfoCopyVerificationErrorDescription(certificateInfo.get())).get());
+    auto verificationError = WKProtectionSpaceGetCertificateVerificationError(protectionSpace);
+    auto verificationError = WKProtectionSpaceCopyCertificateVerificationErrorDescription(protectionSpace);
+    auto description = createString(adoptWK(WKProtectionSpaceCopyCertificateVerificationErrorDescription(protectionSpace)).get());
     auto pem = createPEMString(certificateInfo.get());
 
     auto it = m_acceptedServerTrustCerts.find(host);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905162</commentid>
    <comment_count>8</comment_count>
      <attachid>462947</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-10-12 14:12:42 -0700</bug_when>
    <thetext>Created attachment 462947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905417</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-10-13 13:54:45 -0700</bug_when>
    <thetext>Thanks!  This is closer to the API shape of certificate chains on other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905424</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-10-13 14:22:43 -0700</bug_when>
    <thetext>Committed 255505@main (9fa349553d3f): &lt;https://commits.webkit.org/255505@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 462947.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905425</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-10-13 14:23:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/101143266&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462932</attachid>
            <date>2022-10-11 22:43:46 -0700</date>
            <delta_ts>2022-10-11 23:52:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246379-20221012144345.patch</filename>
            <type>text/plain</type>
            <size>13452</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSAxNmZhYWE5MGExYjY2MjMzOTViMDhjMTBmMDc0ZTAxMTc1ODIxYjZjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFdlZCwgMTIgT2N0IDIwMjIgMTQ6MzQ6MTIgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBSRUdSRVNTSU9OKDI1NTIwNkBtYWluKTogW2N1cmxdCiBXS1Byb3RlY3Rpb25TcGFjZUNvcHlD
ZXJ0aWZpY2F0ZUluZm8gaXMgZGVmdW5jdAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI0NjM3OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoyNTUyMDZAbWFp
biBkZXByZWNhdGVkIFdLUHJvdGVjdGlvblNwYWNlQ29weUNlcnRpZmljYXRlSW5mbyBBUEkgYW5k
CldLQ2VydGlmaWNhdGVJbmZvUmVmLiBCdXQsIFdpbkNhaXJvIGFuZCBQbGF5U3RhdGlvbiBwb3J0
cyBhcmUgdXNpbmcKaXQuIFJldmVydGVkIHRoZSBwYXJ0IG9mIHRvIHJlc3RvcmUgaXQuCgoqIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmNwcDoKKFdLQ2VydGlm
aWNhdGVJbmZvR2V0VHlwZUlEKToKKiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRp
ZmljYXRlSW5mby5oOgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oOgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9D
dXJsLmNwcDoKKFdLQ2VydGlmaWNhdGVJbmZvQ3JlYXRlV2l0aENlcnRmaWNhdGVDaGFpbik6CihX
S0NlcnRpZmljYXRlSW5mb0dldFZlcmlmaWNhdGlvbkVycm9yKToKKFdLQ2VydGlmaWNhdGVJbmZv
Q29weVZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24pOgooV0tDZXJ0aWZpY2F0ZUluZm9HZXRD
ZXJ0aWZpY2F0ZUNoYWluU2l6ZSk6CihXS0NlcnRpZmljYXRlSW5mb0NvcHlDZXJ0aWZpY2F0ZUF0
SW5kZXgpOgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUlu
Zm9DdXJsLmg6CiogU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwOgooV2ViS2l0OjpV
c2VyRGF0YTo6ZW5jb2RlKToKKFdlYktpdDo6VXNlckRhdGE6OmRlY29kZSk6CiogU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmguCihXZWJLaXQ6OldlYkNlcnRpZmlj
YXRlSW5mbzo6Y3JlYXRlKToKKFdlYktpdDo6V2ViQ2VydGlmaWNhdGVJbmZvOjpjZXJ0aWZpY2F0
ZUluZm8gY29uc3QpOgooV2ViS2l0OjpXZWJDZXJ0aWZpY2F0ZUluZm86OldlYkNlcnRpZmljYXRl
SW5mbyk6CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3VybC9XS1Byb3RlY3Rpb25T
cGFjZUN1cmwuY3BwOgooV0tQcm90ZWN0aW9uU3BhY2VDb3B5Q2VydGlmaWNhdGVJbmZvKToKKiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNwYWNlQ3VybC5o
OgotLS0KIC4uLi9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmNwcCB8ICA1
ICstCiAuLi4vV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5oICAgfCAgOCAr
LS0KIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oICB8ICAyICsK
IC4uLi9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgICAgICB8IDI0ICsrKysr
KystLQogLi4uL1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5oIHwgMTEg
KystLQogU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwICAgICAgICAgICAgIHwgMTYg
KysrKysrCiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDZXJ0aWZpY2F0ZUluZm8uaCAgICAgfCA1
MiArKysrKysrKysrKysrKysrKysrCiAuLi4vQVBJL0MvY3VybC9XS1Byb3RlY3Rpb25TcGFjZUN1
cmwuY3BwICAgICAgfCAgNCArLQogLi4uL0FQSS9DL2N1cmwvV0tQcm90ZWN0aW9uU3BhY2VDdXJs
LmggICAgICAgIHwgIDMgKy0KIDkgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDIx
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNlcnRpZmljYXRlSW5mby5oCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L2MvV0tDZXJ0aWZpY2F0ZUluZm8uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tD
ZXJ0aWZpY2F0ZUluZm8uY3BwCmluZGV4IDUxZWIwZmM5NDY0OS4uMGUyMzNjZjdlN2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uY3BwCkBA
IC0yNiw3ICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldLQ2VydGlm
aWNhdGVJbmZvLmgiCiAKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJDZXJ0
aWZpY2F0ZUluZm8uaCIKKwogV0tUeXBlSUQgV0tDZXJ0aWZpY2F0ZUluZm9HZXRUeXBlSUQoKQog
ewotICAgIHJldHVybiAwOworICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktpdDo6V2ViQ2Vy
dGlmaWNhdGVJbmZvOjpBUElUeXBlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Yy9XS0NlcnRpZmljYXRlSW5mby5oCmluZGV4IDA5ZWUxMGRhOTMwZC4uZDk3ODMzODFmYjYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmgKQEAg
LTIzLDIwICsyMywxNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CiAKLSNpZm5kZWYgV0tDZXJ0aWZpY2F0ZUluZm9faAotI2RlZmluZSBXS0NlcnRpZmljYXRlSW5m
b19oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KLSNpbmNsdWRl
IDxXZWJLaXQvV0tEZXByZWNhdGVkLmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJD
IiB7CiAjZW5kaWYKIAotV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ2VydGlmaWNhdGVJbmZvR2V0VHlw
ZUlEKCkgV0tfQ19BUElfREVQUkVDQVRFRDsKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0NlcnRpZmlj
YXRlSW5mb0dldFR5cGVJRCgpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgotCi0j
ZW5kaWYgLyogV0tDZXJ0aWZpY2F0ZUluZm9faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS1NoYXJlZEFQSUNhc3QuaAppbmRleCA5ODIxOTBkMmM1YzAuLmI3NzA0NmM0N2RlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKQEAgLTc3
LDYgKzc3LDcgQEAgY2xhc3MgV2ViQXJjaGl2ZVJlc291cmNlOwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIE9iakNPYmplY3RHcmFwaDsKK2NsYXNzIFdlYkNlcnRpZmljYXRlSW5mbzsKIGNs
YXNzIFdlYkNvbm5lY3Rpb247CiBjbGFzcyBXZWJDb250ZXh0TWVudUl0ZW07CiBjbGFzcyBXZWJJ
bWFnZTsKQEAgLTkwLDYgKzkxLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgSW1wbFR5cGU+IHN0cnVj
dCBJbXBsVHlwZUluZm87CiAKIFdLX0FERF9BUElfTUFQUElORyhXS0FycmF5UmVmLCBBUEk6OkFy
cmF5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQm9vbGVhblJlZiwgQVBJOjpCb29sZWFuKQorV0tf
QUREX0FQSV9NQVBQSU5HKFdLQ2VydGlmaWNhdGVJbmZvUmVmLCBXZWJDZXJ0aWZpY2F0ZUluZm8p
CiBXS19BRERfQVBJX01BUFBJTkcoV0tDb25uZWN0aW9uUmVmLCBXZWJDb25uZWN0aW9uKQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLQ29udGV4dE1lbnVJdGVtUmVmLCBXZWJDb250ZXh0TWVudUl0ZW0p
CiBXS19BRERfQVBJX01BUFBJTkcoV0tEYXRhUmVmLCBBUEk6OkRhdGEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5j
cHAKaW5kZXggNjU3YjcxZTQzZTU5Li4zNmI0NWZlODgzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0Fy
cmF5LmgiCiAjaW5jbHVkZSAiV0tEYXRhLmgiCisjaW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZv
LmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogCkBAIC0zOCwyNSAr
MzksMzggQEAgdXNpbmcgQ2VydGlmaWNhdGVDaGFpbiA9IFZlY3RvcjxDZXJ0aWZpY2F0ZT47CiAK
IFdLQ2VydGlmaWNhdGVJbmZvUmVmIFdLQ2VydGlmaWNhdGVJbmZvQ3JlYXRlV2l0aENlcnRmaWNh
dGVDaGFpbihXS0FycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW5SZWYpCiB7Ci0gICAgcmV0dXJuIG51
bGxwdHI7CisgICAgQ2VydGlmaWNhdGVDaGFpbiBjZXJ0aWZpY2F0ZUNoYWluOworICAgIGZvciAo
aW50IGkgPSAwLCBjb3VudCA9IFdLQXJyYXlHZXRTaXplKGNlcnRpZmljYXRlQ2hhaW5SZWYpOyBp
IDwgY291bnQ7IGkrKykgeworICAgICAgICBhdXRvIGRhdGEgPSByZWludGVycHJldF9jYXN0PFdL
RGF0YVJlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KGNlcnRpZmljYXRlQ2hhaW5SZWYsIGkpKTsK
KyAgICAgICAgYXV0byBjZXJ0aWZpY2F0ZSA9IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbzo6bWFr
ZUNlcnRpZmljYXRlKFdLRGF0YUdldEJ5dGVzKGRhdGEpLCBXS0RhdGFHZXRTaXplKGRhdGEpKTsK
KyAgICAgICAgY2VydGlmaWNhdGVDaGFpbi5hcHBlbmQoV1RGTW92ZShjZXJ0aWZpY2F0ZSkpOwor
ICAgIH0KKworICAgIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8geyAw
LCBXVEZNb3ZlKGNlcnRpZmljYXRlQ2hhaW4pIH07CisgICAgUmVmUHRyPFdlYktpdDo6V2ViQ2Vy
dGlmaWNhdGVJbmZvPiBjZXJ0aWZpY2F0ZUluZm9SZWYgPSBXZWJLaXQ6OldlYkNlcnRpZmljYXRl
SW5mbzo6Y3JlYXRlKGNlcnRpZmljYXRlSW5mbyk7CisgICAgcmV0dXJuIFdlYktpdDo6dG9BUEko
Y2VydGlmaWNhdGVJbmZvUmVmLmxlYWtSZWYoKSk7CiB9CiAKIGludCBXS0NlcnRpZmljYXRlSW5m
b0dldFZlcmlmaWNhdGlvbkVycm9yKFdLQ2VydGlmaWNhdGVJbmZvUmVmIGNlcnRpZmljYXRlSW5m
b1JlZikKIHsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoY2VydGlm
aWNhdGVJbmZvUmVmKS0+Y2VydGlmaWNhdGVJbmZvKCkudmVyaWZpY2F0aW9uRXJyb3IoKTsKIH0K
IAogV0tTdHJpbmdSZWYgV0tDZXJ0aWZpY2F0ZUluZm9Db3B5VmVyaWZpY2F0aW9uRXJyb3JEZXNj
cmlwdGlvbihXS0NlcnRpZmljYXRlSW5mb1JlZiBjZXJ0aWZpY2F0ZUluZm9SZWYpCiB7Ci0gICAg
cmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdlYktpdDo6dG9Db3BpZWRBUEkoV2ViS2l0Ojp0
b0ltcGwoY2VydGlmaWNhdGVJbmZvUmVmKS0+Y2VydGlmaWNhdGVJbmZvKCkudmVyaWZpY2F0aW9u
RXJyb3JEZXNjcmlwdGlvbigpKTsKIH0KIAogc2l6ZV90IFdLQ2VydGlmaWNhdGVJbmZvR2V0Q2Vy
dGlmaWNhdGVDaGFpblNpemUoV0tDZXJ0aWZpY2F0ZUluZm9SZWYgY2VydGlmaWNhdGVJbmZvUmVm
KQogewotICAgIHJldHVybiAwOworICAgIHJldHVybiBXZWJLaXQ6OnRvSW1wbChjZXJ0aWZpY2F0
ZUluZm9SZWYpLT5jZXJ0aWZpY2F0ZUluZm8oKS5jZXJ0aWZpY2F0ZUNoYWluKCkuc2l6ZSgpOwog
fQogCiBXS0RhdGFSZWYgV0tDZXJ0aWZpY2F0ZUluZm9Db3B5Q2VydGlmaWNhdGVBdEluZGV4KFdL
Q2VydGlmaWNhdGVJbmZvUmVmIGNlcnRpZmljYXRlSW5mb1JlZiwgc2l6ZV90IGluZGV4KQogewot
ICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChXZWJLaXQ6OnRvSW1wbChjZXJ0aWZpY2F0ZUlu
Zm9SZWYpLT5jZXJ0aWZpY2F0ZUluZm8oKS5jZXJ0aWZpY2F0ZUNoYWluKCkuc2l6ZSgpIDw9IGlu
ZGV4KQorICAgICAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSSgmQVBJOjpEYXRhOjpjcmVhdGUobnVs
bHB0ciwgMCkubGVha1JlZigpKTsKKworICAgIGNvbnN0IGF1dG8mIGNlcnRpZmljYXRlID0gV2Vi
S2l0Ojp0b0ltcGwoY2VydGlmaWNhdGVJbmZvUmVmKS0+Y2VydGlmaWNhdGVJbmZvKCkuY2VydGlm
aWNhdGVDaGFpbigpLmF0KGluZGV4KTsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSSgmQVBJOjpE
YXRhOjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oY2VydGlm
aWNhdGUuZGF0YSgpKSwgY2VydGlmaWNhdGUuc2l6ZSgpKS5sZWFrUmVmKCkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvY3VybC9XS0NlcnRpZmljYXRlSW5mb0N1
cmwuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9D
dXJsLmgKaW5kZXggZGQ4YzhkM2UwNWQwLi4yYzA1ZmE5OGQ1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvY3VybC9XS0NlcnRpZmljYXRlSW5mb0N1cmwuaApA
QCAtMjYsMTggKzI2LDE3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPFdlYktpdC9XS0Jh
c2UuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tEZXByZWNhdGVkLmg+CiAKICNpZmRlZiBfX2NwbHVz
cGx1cwogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotV0tfRVhQT1JUIFdLQ2VydGlmaWNhdGVJbmZv
UmVmIFdLQ2VydGlmaWNhdGVJbmZvQ3JlYXRlV2l0aENlcnRmaWNhdGVDaGFpbihXS0FycmF5UmVm
KSBXS19DX0FQSV9ERVBSRUNBVEVEOworV0tfRVhQT1JUIFdLQ2VydGlmaWNhdGVJbmZvUmVmIFdL
Q2VydGlmaWNhdGVJbmZvQ3JlYXRlV2l0aENlcnRmaWNhdGVDaGFpbihXS0FycmF5UmVmKTsKIAot
V0tfRVhQT1JUIGludCBXS0NlcnRpZmljYXRlSW5mb0dldFZlcmlmaWNhdGlvbkVycm9yKFdLQ2Vy
dGlmaWNhdGVJbmZvUmVmKSBXS19DX0FQSV9ERVBSRUNBVEVEOwotV0tfRVhQT1JUIFdLU3RyaW5n
UmVmIFdLQ2VydGlmaWNhdGVJbmZvQ29weVZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24oV0tD
ZXJ0aWZpY2F0ZUluZm9SZWYpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7Ci1XS19FWFBPUlQgc2l6ZV90
IFdLQ2VydGlmaWNhdGVJbmZvR2V0Q2VydGlmaWNhdGVDaGFpblNpemUoV0tDZXJ0aWZpY2F0ZUlu
Zm9SZWYpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7Ci1XS19FWFBPUlQgV0tEYXRhUmVmIFdLQ2VydGlm
aWNhdGVJbmZvQ29weUNlcnRpZmljYXRlQXRJbmRleChXS0NlcnRpZmljYXRlSW5mb1JlZiwgc2l6
ZV90KSBXS19DX0FQSV9ERVBSRUNBVEVEOworV0tfRVhQT1JUIGludCBXS0NlcnRpZmljYXRlSW5m
b0dldFZlcmlmaWNhdGlvbkVycm9yKFdLQ2VydGlmaWNhdGVJbmZvUmVmKTsKK1dLX0VYUE9SVCBX
S1N0cmluZ1JlZiBXS0NlcnRpZmljYXRlSW5mb0NvcHlWZXJpZmljYXRpb25FcnJvckRlc2NyaXB0
aW9uKFdLQ2VydGlmaWNhdGVJbmZvUmVmKTsKK1dLX0VYUE9SVCBzaXplX3QgV0tDZXJ0aWZpY2F0
ZUluZm9HZXRDZXJ0aWZpY2F0ZUNoYWluU2l6ZShXS0NlcnRpZmljYXRlSW5mb1JlZik7CitXS19F
WFBPUlQgV0tEYXRhUmVmIFdLQ2VydGlmaWNhdGVJbmZvQ29weUNlcnRpZmljYXRlQXRJbmRleChX
S0NlcnRpZmljYXRlSW5mb1JlZiwgc2l6ZV90KTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2VyRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Vc2VyRGF0YS5jcHAKaW5kZXggOGI1MDdmYzliOTlhLi4xZWQzMzQ4NWVhM2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1VzZXJEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Vc2VyRGF0YS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRl
ICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkVuY29kZXIuaCIKICNpbmNsdWRlICJTaGFy
ZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1
ZGUgPHd0Zi9DaGVja2VkQXJpdGhtZXRpYy5oPgpAQCAtMTczLDYgKzE3NCwxMiBAQCB2b2lkIFVz
ZXJEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBUEk6Ok9iamVjdCYg
b2JqZWN0KQogICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBBUEk6OkJvb2xlYW4mPihvYmplY3Qp
LmVuY29kZShlbmNvZGVyKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEFQSTo6T2JqZWN0
OjpUeXBlOjpDZXJ0aWZpY2F0ZUluZm86IHsKKyAgICAgICAgY29uc3QgYXV0byYgY2VydGlmaWNh
dGVJbmZvID0gc3RhdGljX2Nhc3Q8Y29uc3QgV2ViQ2VydGlmaWNhdGVJbmZvJj4ob2JqZWN0KTsK
KyAgICAgICAgZW5jb2RlciA8PCBjZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNhdGVJbmZvKCk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkRhdGE6
CiAgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEFQSTo6RGF0YSY+KG9iamVjdCkuZW5jb2RlKGVu
Y29kZXIpOwogICAgICAgICBicmVhazsKQEAgLTMxOCw2ICszMjUsMTUgQEAgYm9vbCBVc2VyRGF0
YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYgcmVz
dWx0KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBicmVhazsKIAorICAgIGNh
c2UgQVBJOjpPYmplY3Q6OlR5cGU6OkNlcnRpZmljYXRlSW5mbzogeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbz4gY2VydGlmaWNhdGVJbmZvOworICAgICAg
ICBkZWNvZGVyID4+IGNlcnRpZmljYXRlSW5mbzsKKyAgICAgICAgaWYgKCFjZXJ0aWZpY2F0ZUlu
Zm8pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdCA9IFdlYkNlcnRp
ZmljYXRlSW5mbzo6Y3JlYXRlKCpjZXJ0aWZpY2F0ZUluZm8pOworICAgICAgICBicmVhazsKKyAg
ICB9CisKICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpEYXRhOgogICAgICAgICBpZiAoIUFQ
STo6RGF0YTo6ZGVjb2RlKGRlY29kZXIsIHJlc3VsdCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDZXJ0aWZpY2F0ZUluZm8u
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzAxYWU5ODBkM2JjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmgKQEAgLTAsMCAr
MSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KKyNpbmNsdWRlIDx3dGYv
UmVmLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDZXJ0aWZpY2F0ZUluZm8g
OiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpDZXJ0aWZpY2F0ZUlu
Zm8+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNlcnRpZmljYXRlSW5mbz4gY3JlYXRl
KGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgaW5mbykKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYkNlcnRpZmljYXRlSW5mbyhpbmZvKSk7CisgICAgfQorCisg
ICAgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8oKSBjb25z
dCB7IHJldHVybiBtX2NlcnRpZmljYXRlSW5mbzsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IFdlYkNlcnRpZmljYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGluZm8p
CisgICAgICAgIDogbV9jZXJ0aWZpY2F0ZUluZm8oaW5mbykKKyAgICB7CisgICAgfQorCisgICAg
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIG1fY2VydGlmaWNhdGVJbmZvOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9jdXJsL1dLUHJvdGVjdGlvblNwYWNlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNwYWNlQ3VybC5jcHAKaW5kZXggMDNhZTYxNmEzN2M2
Li41M2VkMGVlMzlmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L2N1cmwvV0tQcm90ZWN0aW9uU3BhY2VDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNwYWNlQ3VybC5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJXS1Byb3RlY3Rpb25TcGFjZUN1cmwuaCIKIAogI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYkNy
ZWRlbnRpYWwuaCIKICNpbmNsdWRlICJXZWJQcm90ZWN0aW9uU3BhY2UuaCIKIApAQCAtMzQsNSAr
MzUsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBXS0NlcnRpZmljYXRlSW5mb1JlZiBX
S1Byb3RlY3Rpb25TcGFjZUNvcHlDZXJ0aWZpY2F0ZUluZm8oV0tQcm90ZWN0aW9uU3BhY2VSZWYg
cHJvdGVjdGlvblNwYWNlUmVmKQogewotICAgIHJldHVybiBudWxscHRyOworICAgIFJlZlB0cjxX
ZWJDZXJ0aWZpY2F0ZUluZm8+IGNlcnRpZmljYXRlSW5mbyA9IFdlYkNlcnRpZmljYXRlSW5mbzo6
Y3JlYXRlKHRvSW1wbChwcm90ZWN0aW9uU3BhY2VSZWYpLT5wcm90ZWN0aW9uU3BhY2UoKS5jZXJ0
aWZpY2F0ZUluZm8oKSk7CisgICAgcmV0dXJuIHRvQVBJKGNlcnRpZmljYXRlSW5mby5sZWFrUmVm
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3VybC9X
S1Byb3RlY3Rpb25TcGFjZUN1cmwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1
cmwvV0tQcm90ZWN0aW9uU3BhY2VDdXJsLmgKaW5kZXggMzE2MWZjMjkwY2RmLi40YzBlYmVhNmRi
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQcm90
ZWN0aW9uU3BhY2VDdXJsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3Vy
bC9XS1Byb3RlY3Rpb25TcGFjZUN1cmwuaApAQCAtMjYsMTMgKzI2LDEyIEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KLSNpbmNsdWRlIDxXZWJLaXQvV0tEZXBy
ZWNhdGVkLmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAot
V0tfRVhQT1JUIFdLQ2VydGlmaWNhdGVJbmZvUmVmIFdLUHJvdGVjdGlvblNwYWNlQ29weUNlcnRp
ZmljYXRlSW5mbyhXS1Byb3RlY3Rpb25TcGFjZVJlZikgV0tfQ19BUElfREVQUkVDQVRFRDsKK1dL
X0VYUE9SVCBXS0NlcnRpZmljYXRlSW5mb1JlZiBXS1Byb3RlY3Rpb25TcGFjZUNvcHlDZXJ0aWZp
Y2F0ZUluZm8oV0tQcm90ZWN0aW9uU3BhY2VSZWYpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0K
</data>
<flag name="commit-queue"
          id="491500"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462934</attachid>
            <date>2022-10-11 23:51:05 -0700</date>
            <delta_ts>2022-10-11 23:52:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246379-20221012155104.patch</filename>
            <type>text/plain</type>
            <size>24436</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSBhZDk4NDQzMDQ2NjNiMjE0ODgyODA1YjVlYjk2NzYyMGEzOWVjZmE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFdlZCwgMTIgT2N0IDIwMjIgMTU6MzM6MzggKzA5MDAKU3ViamVjdDogW1BBVENI
IDEvMl0gW1dpbkNhaXJvXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwNDM5CgoqIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnM6Ci0tLQogLi4uL3BsYXRmb3JtL3dpbmNhaXJvL1Rl
c3RFeHBlY3RhdGlvbnMgICAgICAgIHwgMjYgKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNo
YW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNTY4NDNlYjY4NWU5Li4x
NTRjN2EwNWZkMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTQ1Nyw4ICsxNDU3LDggQEAgd2Via2l0Lm9yZy9iLzIzODY0NCBmYXN0
L2V2ZW50cy9tb3VzZS1jbGljay1ldmVudHMuaHRtbCBbIFNraXAgXQogIyBURU1QT1JBUlkgU0tJ
UFMgLS0gdGhlc2UgYXJlYXMgc3RpbGwgbmVlZCB0byBiZSBhZGRyZXNzZWQgaW5kaXZpZHVhbGx5
CiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLWNzczMvZmlsdGVycyBbIElt
YWdlT25seUZhaWx1cmUgRmFpbHVyZSBQYXNzIF0KIGNvbXBvc2l0aW5nIFsgU2tpcCBdCitjc3Mz
L2ZpbHRlcnMgWyBJbWFnZU9ubHlGYWlsdXJlIEZhaWx1cmUgUGFzcyBdCiBmYXN0L2F0dGFjaG1l
bnQgWyBTa2lwIF0KIGZhc3QvYmFja2dyb3VuZHMgWyBTa2lwIF0KIGZhc3QvYmxvY2sgWyBTa2lw
IF0KQEAgLTE1MTMsOCArMTUxMyw4IEBAIGh0dHAvd3B0L2NvbW1vbiBbIFNraXAgXQogaHR0cC93
cHQvY3JlZGVudGlhbC1tYW5hZ2VtZW50IFsgU2tpcCBdCiBodHRwL3dwdC9jcm9zcy1vcmlnaW4t
b3BlbmVyLXBvbGljeSBbIFNraXAgXQogaHR0cC93cHQvY3Jvc3Mtb3JpZ2luLXJlc291cmNlLXBv
bGljeSBbIFNraXAgXQotaHR0cC93cHQvY3NzIFsgU2tpcCBdCiBodHRwL3dwdC9jcnlwdG8gWyBT
a2lwIF0KK2h0dHAvd3B0L2NzcyBbIFNraXAgXQogaHR0cC93cHQvY3Nzb20gWyBTa2lwIF0KIGh0
dHAvd3B0L2VudHJpZXMtYXBpIFsgU2tpcCBdCiBodHRwL3dwdC9nZW9tZXRyeSBbIFNraXAgXQpA
QCAtMTUyOCw2ICsxNTI4LDcgQEAgaHR0cC93cHQvcHJlZmV0Y2ggWyBTa2lwIF0KIGh0dHAvd3B0
L3ByZWxvYWQgWyBTa2lwIF0KIGh0dHAvd3B0L3Jlc291cmNlLXRpbWluZyBbIFNraXAgXQogaHR0
cC93cHQvcmVzb3VyY2VzIFsgU2tpcCBdCitodHRwL3dwdC9zZWxlY3Rpb24tbGl2ZS1yYW5nZSBb
IFNraXAgXQogaHR0cC93cHQvd2ViYXVkaW8gWyBTa2lwIF0KIGh0dHAvd3B0L3dlYmF1dGhuIFsg
U2tpcCBdCiBodHRwL3dwdC93ZWJydGMgWyBTa2lwIF0KQEAgLTE1NjUsNiArMTU2Niw3IEBAIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmVhdHVyZS1wb2xpY3kgWyBTa2lwIF0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2ggWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmlsZS1zeXN0ZW0tYWNjZXNzIFsgU2tpcCBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbnRzIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Z1bGxzY3JlZW4gWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZ2VvbG9jYXRpb24tQVBJIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2hyLXRpbWUgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbCBbIFNraXAgXQpAQCAtMTU5Miw2ICsxNTk0LDcgQEAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wYXltZW50LXJlcXVlc3QgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvcGVyZm9ybWFuY2UtdGltZWxpbmUgWyBTa2lwIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcGljdHVyZS1pbi1waWN0dXJlIFsgU2tpcCBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3BvaW50ZXJldmVudHMgWyBTa2lwIF0KK2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcG9pbnRlcmxvY2sgWyBTa2lwIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcHJlbG9hZCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9xdWlya3MgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVmZXJyZXItcG9saWN5IFsgU2tpcCBdCkBAIC0xNjAwLDYgKzE2MDMsNyBAQCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9ydGluZyBbIFNraXAgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXF1ZXN0aWRsZWNhbGxiYWNrIFsgU2tpcCBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Jlc2l6ZS1vYnNlcnZlciBbIFNraXAgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXNvdXJjZS10aW1pbmcgWyBTa2lwIF0K
K2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2NyZWVuLW9yaWVudGF0aW9uIFsgU2tp
cCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NjcmVlbi13YWtlLWxvY2sgWyBT
a2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VjdXJlLWNvbnRleHRzIFsg
U2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlbGVjdGlvbiBbIFNraXAg
XQpAQCAtMTYzNCw4ICsxNjM4LDggQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
b3JrZXJzIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dvcmtsZXRz
IFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3hociBbIFNraXAgXQog
aW5zcGVjdG9yIFsgU2tpcCBdCi1pbnNwZWN0b3IvbWVtb3J5LyBbIFBhc3MgXQogaW5zcGVjdG9y
L2NwdS1wcm9maWxlci8gWyBQYXNzIF0KK2luc3BlY3Rvci9tZW1vcnkvIFsgUGFzcyBdCiBqcy9k
b20vZGVlcC1yZWN1cnNpb24tdGVzdC5odG1sIFsgRmFpbHVyZSBdCiBtYXRobWwgWyBTa2lwIF0K
IG1lZGlhIFsgU2tpcCBdCkBAIC0xNjU1LDggKzE2NTksOCBAQCBzY3JvbGxpbmdjb29yZGluYXRv
ciBbIFNraXAgXQogc2VjdXJpdHkgWyBTa2lwIF0KIHN2ZyBbIFNraXAgXQogdGFibGVzIFsgU2tp
cCBdCi10cmFuc2l0aW9ucyBbIFNraXAgXQogdHJhbnNmb3JtcyBbIFNraXAgXQordHJhbnNpdGlv
bnMgWyBTa2lwIF0KIHRyYXZlcnNhbCBbIFNraXAgXQogdXNlcnNjcmlwdHMgWyBTa2lwIF0KIHdl
YmFuaW1hdGlvbnMgWyBTa2lwIF0KQEAgLTE3NDcsNyArMTc1MSw2IEBAIGZhc3QvY2FudmFzL2Nh
bnZhcy1tZWFzdXJlVGV4dC0yLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL2NhbnZhcy1x
dWFkcmF0aWMtc2FtZS1lbmRwb2ludC5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy9jYW52
YXMtdG9EYXRhVVJMLXdlYnAuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvd2ViZ2wvYXJy
YXktYm91bmRzLWNsYW1waW5nLmh0bWwgWyBGYWlsdXJlIF0KLWZhc3QvY2FudmFzL3dlYmdsL2Nv
cHlCdWZmZXJTdWJEYXRhLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL2Nzcy13
ZWJraXQtY2FudmFzLXJlcGFpbnQuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvd2ViZ2wv
Y3NzLXdlYmtpdC1jYW52YXMuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvd2ViZ2wvZHJh
d2luZ2J1ZmZlci10ZXN0Lmh0bWwgWyBTa2lwIF0gIyBDcmFzaApAQCAtMTk1NCw3ICsxOTU3LDYg
QEAgZmFzdC90ZXh0L3RhdGVjaHV5b2tvLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogZmFzdC90ZXh0
L3RleHQtaW5kZW50LWluc2lkZS1mbG9hdC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0
L3RleHQvdGV4dC10cmFuc2Zvcm0tdHVya2lzaC1hbmQtYXplcmkuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KLWZhc3QvdGV4dC90cmltbWFibGUtd2hpdGVzcGFjZS1mb2xsb3dlZC1ieS1i
ci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3RleHQvdXBkYXRlTmV3Rm9udC5odG1s
IFsgRmFpbHVyZSBdCiBmYXN0L3RleHQvdXNlci1pbnN0YWxsZWQtZm9udHMvZGlzYWJsZS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3RleHQvdXNlci1pbnN0YWxsZWQtZm9udHMvc3lz
dGVtLXVpLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KQEAgLTIwNTAsNyArMjA1Miw2IEBAIHdl
YmdsLzIuMC4wL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvdGV4dHVyZS1taXBzLmh0bWwgWyBG
YWlsdXJlIFBhc3MgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UvdGV4dHVyZXMvbWlzYy90ZXh0
dXJlLXVwbG9hZC1zaXplLmh0bWwgWyBTa2lwIF0gIyBUaW1lb3V0CiB3ZWJnbC8yLjAuMC9jb25m
b3JtYW5jZS91bmlmb3Jtcy9vdXQtb2YtYm91bmRzLXVuaWZvcm0tYXJyYXktYWNjZXNzLmh0bWwg
WyBTa2lwIF0gIyBUaW1lb3V0CiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvYXR0cmlicy9nbC12
ZXJ0ZXhhdHRyaWJpcG9pbnRlci5odG1sIFsgU2tpcCBdICMgVGltZW91dAotd2ViZ2wvMi4wLjAv
Y29uZm9ybWFuY2UyL2J1ZmZlcnMvYnVmZmVyLWNvcHlpbmctY29udGVudHMuaHRtbCBbIEZhaWx1
cmUgXQogd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL2V4dGVuc2lvbnMvcHJvbW90ZWQtZXh0ZW5z
aW9ucy1pbi1zaGFkZXJzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNl
Mi9nbHNsMy90cmlja3ktbG9vcC1jb25kaXRpb25zLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsLzIu
MC4wL2NvbmZvcm1hbmNlMi9yZW5kZXJpbmcvYmxpdGZyYW1lYnVmZmVyLWZpbHRlci1zcmdiLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQpAQCAtMjEwMSw3ICsyMTAyLDYgQEAgaHR0cC90ZXN0cy9taXNj
L2Z0cC1lcGxmLWRpcmVjdG9yeS5weSBbIEZhaWx1cmUgXQogCiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2Nsb3NlLWFuZC1zZXJ2ZXItc2NyaXB0LWV4Y2VwdGlvbi5odG1sIFsgRmFp
bHVyZSBdCiBodHRwL3dwdC9mZXRjaC9mZXRjaC1tZXRhZGF0YS1zYW1lLW9yaWdpbi1yZWRpcmVj
dC5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbGVhay0xLmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL3RleHR1cmVzL21pc2MvZGVmYXVs
dC10ZXh0dXJlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmdsL2xvc2UtY29udGV4dC1hZnRlci1jb250
ZXh0LWxvc3QuaHRtbCBbIEZhaWx1cmUgXQogd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1nYy5o
dG1sIFsgRmFpbHVyZSBdCkBAIC0yMTI4LDQgKzIxMjgsMTIgQEAgd2ViZ2wvMi4wLnkvY29uZm9y
bWFuY2UyL2V4dGVuc2lvbnMvd2ViZ2wtbXVsdGktZHJhdy1pbnN0YW5jZWQtYmFzZS12ZXJ0ZXgt
YmFzZS0KIHdlYmtpdC5vcmcvYi8yNDM5OTIgZmFzdC90ZXh0L3B1bmN0dWF0aW9uLWJyZWFrLWFs
bC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNDIwODcgZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1k
ZWNvcmF0aW9uLXNraXAtaW5rLWluaGVyaXQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzE0MjA4NyBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9uby1n
YXAtYmV0d2Vlbi10d28tcm91bmRlZC10ZXh0Ym94ZXMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQorCitmYXN0L2Nzcy9iZWZvcmUtYWZ0ZXItcHNldWRvLWVsZW1lbnQtY2FzZS1pbnNlbnNpdGl2
aXR5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KK2Zhc3QvY3NzL2xhbmctcHNldWRvLWNvbnRh
aW5lci1xdWVyeS1tdWx0aXBsZS1kb2N1bWVudC1lbGVtZW50cy1pbnZhbGlkYXRpb24uaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQorZmFzdC9keW5hbWljL2Zsb2F0LWZyb20tZW1wdHktbGluZS5o
dG1sIFsgRmFpbHVyZSBdCitmYXN0L2V2ZW50cy9zdGFuZGFsb25lLWltYWdlLWRyYWctdG8tZWRp
dGFibGUuaHRtbCBbIFRpbWVvdXQgXQorZmFzdC9ncmFkaWVudHMvZ3JhZGllbnQtdXNpbmctc3Bl
Y2lmaWVkLWh1ZS1pbnRlcnBvbGF0aW9uLW1ldGhvZC1oc2wuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQorZmFzdC9ncmFkaWVudHMvZ3JhZGllbnQtdXNpbmctc3BlY2lmaWVkLWh1ZS1pbnRlcnBv
bGF0aW9uLW1ldGhvZC1va2xjaC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCitmYXN0L3RleHQv
Y3Jhc2gtY29tcGxleC10ZXh0LXN1cnJvZ2F0ZS5odG1sIFsgRmFpbHVyZSBdCitmYXN0L3RleHQv
cHVuY3R1YXRpb24tYnJlYWstYWxsLTIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQoKRnJvbSAy
NjY1MjMxY2NkZjA5NjQ1MzlkNTNmNDljZGFiM2I1YzYyMWUwNTcwIE1vbiBTZXAgMTcgMDA6MDA6
MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CkRh
dGU6IFdlZCwgMTIgT2N0IDIwMjIgMTQ6MzQ6MTIgKzA5MDAKU3ViamVjdDogW1BBVENIIDIvMl0g
UkVHUkVTU0lPTigyNTUyMDZAbWFpbik6IFtjdXJsXQogV0tQcm90ZWN0aW9uU3BhY2VDb3B5Q2Vy
dGlmaWNhdGVJbmZvIGlzIGRlZnVuY3QKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNDYzNzkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKMjU1MjA2QG1haW4g
ZGVwcmVjYXRlZCBXS1Byb3RlY3Rpb25TcGFjZUNvcHlDZXJ0aWZpY2F0ZUluZm8gQVBJIGFuZApX
S0NlcnRpZmljYXRlSW5mb1JlZi4gQnV0LCBXaW5DYWlybyBhbmQgUGxheVN0YXRpb24gcG9ydHMg
YXJlIHVzaW5nCml0LiBSZXZlcnRlZCB0aGUgcGFydCBvZiB0aGUgY2hhbmdlLgoKKiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5jcHA6CihXS0NlcnRpZmljYXRl
SW5mb0dldFR5cGVJRCk6CiogU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0
ZUluZm8uaDoKKiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoK
KiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5j
cHA6CihXS0NlcnRpZmljYXRlSW5mb0NyZWF0ZVdpdGhDZXJ0ZmljYXRlQ2hhaW4pOgooV0tDZXJ0
aWZpY2F0ZUluZm9HZXRWZXJpZmljYXRpb25FcnJvcik6CihXS0NlcnRpZmljYXRlSW5mb0NvcHlW
ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKToKKFdLQ2VydGlmaWNhdGVJbmZvR2V0Q2VydGlm
aWNhdGVDaGFpblNpemUpOgooV0tDZXJ0aWZpY2F0ZUluZm9Db3B5Q2VydGlmaWNhdGVBdEluZGV4
KToKKiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3Vy
bC5oOgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1VzZXJEYXRhLmNwcDoKKFdlYktpdDo6VXNlckRh
dGE6OmVuY29kZSk6CihXZWJLaXQ6OlVzZXJEYXRhOjpkZWNvZGUpOgoqIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5oLgooV2ViS2l0OjpXZWJDZXJ0aWZpY2F0ZUlu
Zm86OmNyZWF0ZSk6CihXZWJLaXQ6OldlYkNlcnRpZmljYXRlSW5mbzo6Y2VydGlmaWNhdGVJbmZv
IGNvbnN0KToKKFdlYktpdDo6V2ViQ2VydGlmaWNhdGVJbmZvOjpXZWJDZXJ0aWZpY2F0ZUluZm8p
OgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQcm90ZWN0aW9uU3BhY2VD
dXJsLmNwcDoKKFdLUHJvdGVjdGlvblNwYWNlQ29weUNlcnRpZmljYXRlSW5mbyk6CiogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3VybC9XS1Byb3RlY3Rpb25TcGFjZUN1cmwuaDoKKiBT
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgotLS0KIC4uLi9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmNwcCB8ICA1ICstCiAuLi4vV2Vi
S2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5oICAgfCAgOCArLS0KIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oICB8ICAyICsKIC4uLi9BUEkvYy9j
dXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgICAgICB8IDI0ICsrKysrKystLQogLi4uL1No
YXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5oIHwgMTEgKystLQogU291cmNl
L1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwICAgICAgICAgICAgIHwgMTYgKysrKysrCiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDZXJ0aWZpY2F0ZUluZm8uaCAgICAgfCA1MiArKysrKysrKysr
KysrKysrKysrCiAuLi4vQVBJL0MvY3VybC9XS1Byb3RlY3Rpb25TcGFjZUN1cmwuY3BwICAgICAg
fCAgNCArLQogLi4uL0FQSS9DL2N1cmwvV0tQcm90ZWN0aW9uU3BhY2VDdXJsLmggICAgICAgIHwg
IDMgKy0KIC4uLi9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8ICA0
ICsrCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJ
bmZvLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRpZmlj
YXRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5m
by5jcHAKaW5kZXggNTFlYjBmYzk0NjQ5Li4wZTIzM2NmN2U3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5jcHAKQEAgLTI2LDcgKzI2LDEw
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV0tDZXJ0aWZpY2F0ZUluZm8uaCIK
IAorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5mby5o
IgorCiBXS1R5cGVJRCBXS0NlcnRpZmljYXRlSW5mb0dldFR5cGVJRCgpCiB7Ci0gICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIFdlYktpdDo6dG9BUEkoV2ViS2l0OjpXZWJDZXJ0aWZpY2F0ZUluZm86
OkFQSVR5cGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tD
ZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNh
dGVJbmZvLmgKaW5kZXggMDllZTEwZGE5MzBkLi5kOTc4MzM4MWZiNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uaApAQCAtMjMsMjAgKzIzLDE2
IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBX
S0NlcnRpZmljYXRlSW5mb19oCi0jZGVmaW5lIFdLQ2VydGlmaWNhdGVJbmZvX2gKKyNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgotI2luY2x1ZGUgPFdlYktpdC9XS0Rl
cHJlY2F0ZWQuaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4gIkMiIHsKICNlbmRpZgog
Ci1XS19FWFBPUlQgV0tUeXBlSUQgV0tDZXJ0aWZpY2F0ZUluZm9HZXRUeXBlSUQoKSBXS19DX0FQ
SV9ERVBSRUNBVEVEOworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ2VydGlmaWNhdGVJbmZvR2V0VHlw
ZUlEKCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCi0KLSNlbmRpZiAvKiBXS0Nl
cnRpZmljYXRlSW5mb19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Yy9XS1NoYXJlZEFQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVk
QVBJQ2FzdC5oCmluZGV4IDk4MjE5MGQyYzVjMC4uYjc3MDQ2YzQ3ZGU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtNzcsNiArNzcsNyBAQCBj
bGFzcyBXZWJBcmNoaXZlUmVzb3VyY2U7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgT2Jq
Q09iamVjdEdyYXBoOworY2xhc3MgV2ViQ2VydGlmaWNhdGVJbmZvOwogY2xhc3MgV2ViQ29ubmVj
dGlvbjsKIGNsYXNzIFdlYkNvbnRleHRNZW51SXRlbTsKIGNsYXNzIFdlYkltYWdlOwpAQCAtOTAs
NiArOTEsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBJbXBsVHlwZT4gc3RydWN0IEltcGxUeXBlSW5m
bzsKIAogV0tfQUREX0FQSV9NQVBQSU5HKFdLQXJyYXlSZWYsIEFQSTo6QXJyYXkpCiBXS19BRERf
QVBJX01BUFBJTkcoV0tCb29sZWFuUmVmLCBBUEk6OkJvb2xlYW4pCitXS19BRERfQVBJX01BUFBJ
TkcoV0tDZXJ0aWZpY2F0ZUluZm9SZWYsIFdlYkNlcnRpZmljYXRlSW5mbykKIFdLX0FERF9BUElf
TUFQUElORyhXS0Nvbm5lY3Rpb25SZWYsIFdlYkNvbm5lY3Rpb24pCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tDb250ZXh0TWVudUl0ZW1SZWYsIFdlYkNvbnRleHRNZW51SXRlbSkKIFdLX0FERF9BUElf
TUFQUElORyhXS0RhdGFSZWYsIEFQSTo6RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcAppbmRleCA2NTdi
NzFlNDNlNTkuLjM2YjQ1ZmU4ODNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL2MvY3VybC9XS0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQXJyYXkuaCIKICNpbmNs
dWRlICJXS0RhdGEuaCIKKyNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKIAogI2luY2x1
ZGUgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAKQEAgLTM4LDI1ICszOSwzOCBAQCB1c2lu
ZyBDZXJ0aWZpY2F0ZUNoYWluID0gVmVjdG9yPENlcnRpZmljYXRlPjsKIAogV0tDZXJ0aWZpY2F0
ZUluZm9SZWYgV0tDZXJ0aWZpY2F0ZUluZm9DcmVhdGVXaXRoQ2VydGZpY2F0ZUNoYWluKFdLQXJy
YXlSZWYgY2VydGlmaWNhdGVDaGFpblJlZikKIHsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBD
ZXJ0aWZpY2F0ZUNoYWluIGNlcnRpZmljYXRlQ2hhaW47CisgICAgZm9yIChpbnQgaSA9IDAsIGNv
dW50ID0gV0tBcnJheUdldFNpemUoY2VydGlmaWNhdGVDaGFpblJlZik7IGkgPCBjb3VudDsgaSsr
KSB7CisgICAgICAgIGF1dG8gZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8V0tEYXRhUmVmPihXS0Fy
cmF5R2V0SXRlbUF0SW5kZXgoY2VydGlmaWNhdGVDaGFpblJlZiwgaSkpOworICAgICAgICBhdXRv
IGNlcnRpZmljYXRlID0gV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvOjptYWtlQ2VydGlmaWNhdGUo
V0tEYXRhR2V0Qnl0ZXMoZGF0YSksIFdLRGF0YUdldFNpemUoZGF0YSkpOworICAgICAgICBjZXJ0
aWZpY2F0ZUNoYWluLmFwcGVuZChXVEZNb3ZlKGNlcnRpZmljYXRlKSk7CisgICAgfQorCisgICAg
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbyB7IDAsIFdURk1vdmUoY2Vy
dGlmaWNhdGVDaGFpbikgfTsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJDZXJ0aWZpY2F0ZUluZm8+
IGNlcnRpZmljYXRlSW5mb1JlZiA9IFdlYktpdDo6V2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUo
Y2VydGlmaWNhdGVJbmZvKTsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSShjZXJ0aWZpY2F0ZUlu
Zm9SZWYubGVha1JlZigpKTsKIH0KIAogaW50IFdLQ2VydGlmaWNhdGVJbmZvR2V0VmVyaWZpY2F0
aW9uRXJyb3IoV0tDZXJ0aWZpY2F0ZUluZm9SZWYgY2VydGlmaWNhdGVJbmZvUmVmKQogewotICAg
IHJldHVybiAwOworICAgIHJldHVybiBXZWJLaXQ6OnRvSW1wbChjZXJ0aWZpY2F0ZUluZm9SZWYp
LT5jZXJ0aWZpY2F0ZUluZm8oKS52ZXJpZmljYXRpb25FcnJvcigpOwogfQogCiBXS1N0cmluZ1Jl
ZiBXS0NlcnRpZmljYXRlSW5mb0NvcHlWZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKFdLQ2Vy
dGlmaWNhdGVJbmZvUmVmIGNlcnRpZmljYXRlSW5mb1JlZikKIHsKLSAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0NvcGllZEFQSShXZWJLaXQ6OnRvSW1wbChjZXJ0aWZp
Y2F0ZUluZm9SZWYpLT5jZXJ0aWZpY2F0ZUluZm8oKS52ZXJpZmljYXRpb25FcnJvckRlc2NyaXB0
aW9uKCkpOwogfQogCiBzaXplX3QgV0tDZXJ0aWZpY2F0ZUluZm9HZXRDZXJ0aWZpY2F0ZUNoYWlu
U2l6ZShXS0NlcnRpZmljYXRlSW5mb1JlZiBjZXJ0aWZpY2F0ZUluZm9SZWYpCiB7Ci0gICAgcmV0
dXJuIDA7CisgICAgcmV0dXJuIFdlYktpdDo6dG9JbXBsKGNlcnRpZmljYXRlSW5mb1JlZiktPmNl
cnRpZmljYXRlSW5mbygpLmNlcnRpZmljYXRlQ2hhaW4oKS5zaXplKCk7CiB9CiAKIFdLRGF0YVJl
ZiBXS0NlcnRpZmljYXRlSW5mb0NvcHlDZXJ0aWZpY2F0ZUF0SW5kZXgoV0tDZXJ0aWZpY2F0ZUlu
Zm9SZWYgY2VydGlmaWNhdGVJbmZvUmVmLCBzaXplX3QgaW5kZXgpCiB7Ci0gICAgcmV0dXJuIG51
bGxwdHI7CisgICAgaWYgKFdlYktpdDo6dG9JbXBsKGNlcnRpZmljYXRlSW5mb1JlZiktPmNlcnRp
ZmljYXRlSW5mbygpLmNlcnRpZmljYXRlQ2hhaW4oKS5zaXplKCkgPD0gaW5kZXgpCisgICAgICAg
IHJldHVybiBXZWJLaXQ6OnRvQVBJKCZBUEk6OkRhdGE6OmNyZWF0ZShudWxscHRyLCAwKS5sZWFr
UmVmKCkpOworCisgICAgY29uc3QgYXV0byYgY2VydGlmaWNhdGUgPSBXZWJLaXQ6OnRvSW1wbChj
ZXJ0aWZpY2F0ZUluZm9SZWYpLT5jZXJ0aWZpY2F0ZUluZm8oKS5jZXJ0aWZpY2F0ZUNoYWluKCku
YXQoaW5kZXgpOworICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKCZBUEk6OkRhdGE6OmNyZWF0ZShy
ZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIGNoYXIqPihjZXJ0aWZpY2F0ZS5kYXRhKCkp
LCBjZXJ0aWZpY2F0ZS5zaXplKCkpLmxlYWtSZWYoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL2MvY3VybC9XS0NlcnRpZmljYXRlSW5mb0N1cmwuaAppbmRleCBk
ZDhjOGQzZTA1ZDAuLjJjMDVmYTk4ZDU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL2MvY3VybC9XS0NlcnRpZmljYXRlSW5mb0N1cmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5oCkBAIC0yNiwxOCArMjYs
MTcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgotI2luY2x1
ZGUgPFdlYktpdC9XS0RlcHJlY2F0ZWQuaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4g
IkMiIHsKICNlbmRpZgogCi1XS19FWFBPUlQgV0tDZXJ0aWZpY2F0ZUluZm9SZWYgV0tDZXJ0aWZp
Y2F0ZUluZm9DcmVhdGVXaXRoQ2VydGZpY2F0ZUNoYWluKFdLQXJyYXlSZWYpIFdLX0NfQVBJX0RF
UFJFQ0FURUQ7CitXS19FWFBPUlQgV0tDZXJ0aWZpY2F0ZUluZm9SZWYgV0tDZXJ0aWZpY2F0ZUlu
Zm9DcmVhdGVXaXRoQ2VydGZpY2F0ZUNoYWluKFdLQXJyYXlSZWYpOwogCi1XS19FWFBPUlQgaW50
IFdLQ2VydGlmaWNhdGVJbmZvR2V0VmVyaWZpY2F0aW9uRXJyb3IoV0tDZXJ0aWZpY2F0ZUluZm9S
ZWYpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7Ci1XS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tDZXJ0aWZp
Y2F0ZUluZm9Db3B5VmVyaWZpY2F0aW9uRXJyb3JEZXNjcmlwdGlvbihXS0NlcnRpZmljYXRlSW5m
b1JlZikgV0tfQ19BUElfREVQUkVDQVRFRDsKLVdLX0VYUE9SVCBzaXplX3QgV0tDZXJ0aWZpY2F0
ZUluZm9HZXRDZXJ0aWZpY2F0ZUNoYWluU2l6ZShXS0NlcnRpZmljYXRlSW5mb1JlZikgV0tfQ19B
UElfREVQUkVDQVRFRDsKLVdLX0VYUE9SVCBXS0RhdGFSZWYgV0tDZXJ0aWZpY2F0ZUluZm9Db3B5
Q2VydGlmaWNhdGVBdEluZGV4KFdLQ2VydGlmaWNhdGVJbmZvUmVmLCBzaXplX3QpIFdLX0NfQVBJ
X0RFUFJFQ0FURUQ7CitXS19FWFBPUlQgaW50IFdLQ2VydGlmaWNhdGVJbmZvR2V0VmVyaWZpY2F0
aW9uRXJyb3IoV0tDZXJ0aWZpY2F0ZUluZm9SZWYpOworV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdL
Q2VydGlmaWNhdGVJbmZvQ29weVZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24oV0tDZXJ0aWZp
Y2F0ZUluZm9SZWYpOworV0tfRVhQT1JUIHNpemVfdCBXS0NlcnRpZmljYXRlSW5mb0dldENlcnRp
ZmljYXRlQ2hhaW5TaXplKFdLQ2VydGlmaWNhdGVJbmZvUmVmKTsKK1dLX0VYUE9SVCBXS0RhdGFS
ZWYgV0tDZXJ0aWZpY2F0ZUluZm9Db3B5Q2VydGlmaWNhdGVBdEluZGV4KFdLQ2VydGlmaWNhdGVJ
bmZvUmVmLCBzaXplX3QpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1VzZXJEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Vz
ZXJEYXRhLmNwcAppbmRleCA4YjUwN2ZjOWI5OWEuLjFlZDMzNDg1ZWEzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1VzZXJEYXRhLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5o
IgorI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSA8d3RmL0NoZWNr
ZWRBcml0aG1ldGljLmg+CkBAIC0xNzMsNiArMTc0LDEyIEBAIHZvaWQgVXNlckRhdGE6OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFQSTo6T2JqZWN0JiBvYmplY3QpCiAgICAg
ICAgIHN0YXRpY19jYXN0PGNvbnN0IEFQSTo6Qm9vbGVhbiY+KG9iamVjdCkuZW5jb2RlKGVuY29k
ZXIpOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkNlcnRp
ZmljYXRlSW5mbzogeworICAgICAgICBjb25zdCBhdXRvJiBjZXJ0aWZpY2F0ZUluZm8gPSBzdGF0
aWNfY2FzdDxjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8mPihvYmplY3QpOworICAgICAgICBlbmNv
ZGVyIDw8IGNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZUluZm8oKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorCiAgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6RGF0YToKICAgICAgICAgc3Rh
dGljX2Nhc3Q8Y29uc3QgQVBJOjpEYXRhJj4ob2JqZWN0KS5lbmNvZGUoZW5jb2Rlcik7CiAgICAg
ICAgIGJyZWFrOwpAQCAtMzE4LDYgKzMyNSwxNSBAQCBib29sIFVzZXJEYXRhOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8QVBJOjpPYmplY3Q+JiByZXN1bHQpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBBUEk6Ok9iamVj
dDo6VHlwZTo6Q2VydGlmaWNhdGVJbmZvOiB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvPiBjZXJ0aWZpY2F0ZUluZm87CisgICAgICAgIGRlY29kZXIgPj4g
Y2VydGlmaWNhdGVJbmZvOworICAgICAgICBpZiAoIWNlcnRpZmljYXRlSW5mbykKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVzdWx0ID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpj
cmVhdGUoKmNlcnRpZmljYXRlSW5mbyk7CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNh
c2UgQVBJOjpPYmplY3Q6OlR5cGU6OkRhdGE6CiAgICAgICAgIGlmICghQVBJOjpEYXRhOjpkZWNv
ZGUoZGVjb2RlciwgcmVzdWx0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwLi43MDFhZTk4MGQzYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDZXJ0aWZpY2F0ZUluZm8uaApAQCAtMCwwICsxLDUyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNlcnRpZmljYXRlSW5mbyA6IHB1YmxpYyBBUEk6
Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkNlcnRpZmljYXRlSW5mbz4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8V2ViQ2VydGlmaWNhdGVJbmZvPiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJiBpbmZvKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViQ2VydGlmaWNhdGVJbmZvKGluZm8pKTsKKyAgICB9CisKKyAgICBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1f
Y2VydGlmaWNhdGVJbmZvOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViQ2VydGlmaWNh
dGVJbmZvKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgaW5mbykKKyAgICAgICAgOiBt
X2NlcnRpZmljYXRlSW5mbyhpbmZvKQorICAgIHsKKyAgICB9CisKKyAgICBXZWJDb3JlOjpDZXJ0
aWZpY2F0ZUluZm8gbV9jZXJ0aWZpY2F0ZUluZm87Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQcm90
ZWN0aW9uU3BhY2VDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwv
V0tQcm90ZWN0aW9uU3BhY2VDdXJsLmNwcAppbmRleCAwM2FlNjE2YTM3YzYuLjUzZWQwZWUzOWYy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3VybC9XS1Byb3Rl
Y3Rpb25TcGFjZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1
cmwvV0tQcm90ZWN0aW9uU3BhY2VDdXJsLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg
IldLUHJvdGVjdGlvblNwYWNlQ3VybC5oIgogCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5j
bHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViQ3JlZGVudGlhbC5oIgog
I2luY2x1ZGUgIldlYlByb3RlY3Rpb25TcGFjZS5oIgogCkBAIC0zNCw1ICszNSw2IEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAKIFdLQ2VydGlmaWNhdGVJbmZvUmVmIFdLUHJvdGVjdGlvblNw
YWNlQ29weUNlcnRpZmljYXRlSW5mbyhXS1Byb3RlY3Rpb25TcGFjZVJlZiBwcm90ZWN0aW9uU3Bh
Y2VSZWYpCiB7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgUmVmUHRyPFdlYkNlcnRpZmljYXRl
SW5mbz4gY2VydGlmaWNhdGVJbmZvID0gV2ViQ2VydGlmaWNhdGVJbmZvOjpjcmVhdGUodG9JbXBs
KHByb3RlY3Rpb25TcGFjZVJlZiktPnByb3RlY3Rpb25TcGFjZSgpLmNlcnRpZmljYXRlSW5mbygp
KTsKKyAgICByZXR1cm4gdG9BUEkoY2VydGlmaWNhdGVJbmZvLmxlYWtSZWYoKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNw
YWNlQ3VybC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3VybC9XS1Byb3RlY3Rp
b25TcGFjZUN1cmwuaAppbmRleCAzMTYxZmMyOTBjZGYuLjRjMGViZWE2ZGJlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3VybC9XS1Byb3RlY3Rpb25TcGFjZUN1
cmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLUHJvdGVjdGlv
blNwYWNlQ3VybC5oCkBAIC0yNiwxMyArMjYsMTIgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSA8V2ViS2l0L1dLQmFzZS5oPgotI2luY2x1ZGUgPFdlYktpdC9XS0RlcHJlY2F0ZWQuaD4KIAog
I2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi1XS19FWFBPUlQgV0tD
ZXJ0aWZpY2F0ZUluZm9SZWYgV0tQcm90ZWN0aW9uU3BhY2VDb3B5Q2VydGlmaWNhdGVJbmZvKFdL
UHJvdGVjdGlvblNwYWNlUmVmKSBXS19DX0FQSV9ERVBSRUNBVEVEOworV0tfRVhQT1JUIFdLQ2Vy
dGlmaWNhdGVJbmZvUmVmIFdLUHJvdGVjdGlvblNwYWNlQ29weUNlcnRpZmljYXRlSW5mbyhXS1By
b3RlY3Rpb25TcGFjZVJlZik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzBlZTc1NWI2ZTY3
Li5hMWYzZWVhYWZjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTg5NSw2ICsxODk1LDcgQEAKIAkJQkNGMDQ5RTYxMUZFMjBGNjAw
Rjg2QTU4IC8qIFdLQnVuZGxlRnJhbWVQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0YwNDlFNDExRkUyMEY2MDBGODZBNTggLyogV0tCdW5k
bGVGcmFtZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQ0YwNDlFNzExRkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVQcml2YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0YwNDlFNTEx
RkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNGNERFMjUxNjhGQTQ0ODAwQzk0QUZDIC8q
IFdlYkNvbnRleHRTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0Y0REUyNDE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29udGV4dFN1cHBs
ZW1lbnQuaCAqLzsgfTsKKwkJQkNGNTA3MjgxMjQzMjlBQTAwNTk1NUFFIC8qIFdlYkNlcnRpZmlj
YXRlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNGNTA3MjYxMjQzMjlBQTAwNTk1NUFFIC8qIFdlYkNlcnRpZmljYXRlSW5mby5oICovOyB9Owog
CQlCQ0Y2OUY5QTExNzZDRUQ2MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGOTgxMTc2
Q0VENjAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCAqLzsgfTsKIAkJQkNGNjlG
QTIxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y2OUZBMDExNzZEMDE0MDA0NzFBNTIg
LyogQVBJTmF2aWdhdGlvbkRhdGEuaCAqLzsgfTsKIAkJQkNGNjlGQTkxMTc2RDFDQjAwNDcxQTUy
IC8qIFdLTmF2aWdhdGlvbkRhdGFSZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRjY5RkE3MTE3NkQxQ0IwMDQ3MUE1MiAvKiBXS05hdmlnYXRpb25E
YXRhUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTY2MjIsNiArNjYyMyw3IEBACiAJCUJDRjE4NjM3MTY3RDA3MUUwMEExQTg1QSAvKiBDYWNo
ZU1vZGVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlTW9k
ZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Y0REUyNDE2OEZBNDQ4MDBD
OTRBRkMgLyogV2ViQ29udGV4dFN1cHBsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29udGV4dFN1cHBsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkNGNTA2ODQxMjQzMTg2MTAwNTk1NUFFIC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJh
bWV3b3JrOyBuYW1lID0gU2VjdXJpdHkuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4i
OyB9OworCQlCQ0Y1MDcyNjEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNlcnRpZmljYXRlSW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Y2OUY5ODExNzZDRUQ2MDA0NzFBNTIgLyog
V2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDRjY5RkEwMTE3NkQwMTQwMDQ3MUE1MiAvKiBBUElOYXZpZ2F0aW9uRGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBUElOYXZpZ2F0aW9uRGF0YS5oOyBwYXRoID0gVUlQ
cm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7
IH07CiAJCUJDRjY5RkExMTE3NkQwMTQwMDQ3MUE1MiAvKiBBUElOYXZpZ2F0aW9uRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBUElOYXZpZ2F0aW9uRGF0YS5j
cHA7IHBhdGggPSBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25EYXRhLmNwcDsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtODIxNyw2ICs4MjE5LDcgQEAKIAkJCQk0NkNFM0IxMDIz
RDhDODNEMDAxNkE5NkEgLyogV2ViQmFja0ZvcndhcmRMaXN0Q291bnRzLmggKi8sCiAJCQkJNTE4
RDJDQUIxMkQ1MTUzQjAwM0JCOTNCIC8qIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovLAog
CQkJCTUxOEQyQ0FDMTJENTE1M0IwMDNCQjkzQiAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgg
Ki8sCisJCQkJQkNGNTA3MjYxMjQzMjlBQTAwNTk1NUFFIC8qIFdlYkNlcnRpZmljYXRlSW5mby5o
ICovLAogCQkJCTdDNEFCRUNFMUFBOEU5RjAwMDg4QUEzNyAvKiBXZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdC5jcHAgKi8sCiAJCQkJN0M0QUJFQ0YxQUE4RTlGMDAwODhBQTM3IC8qIFdlYkNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0LmggKi8sCiAJCQkJN0M0QUJFRDIxQUE4RkNCODAwODhBQTM3IC8q
IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5jcHAgKi8sCkBAIC0xNTA0OSw2ICsxNTA1
Miw3IEBACiAJCQkJNDE4OTdFRDExRjQxNUQ2ODAwMTZGQTQyIC8qIFdlYkNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDEyOURBMUYzRDEwMTgwMEQxNUU0NyAv
KiBXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRERBMEEzNTYy
N0U1NUU0RjAwNUUwODZFIC8qIFdlYkNhcmV0Q2hhbmdlTGlzdGVuZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCUJDRjUwNzI4MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMDMyRDc1MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGODdCOUJFMTU4OTQwMTkwMDkwRkY2MiAvKiBX
ZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGODdCOUMwMTU4OTQwRDgwMDkw
RkY2MiAvKiBXZWJDb2xvclBpY2tlci5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462935</attachid>
            <date>2022-10-11 23:55:06 -0700</date>
            <delta_ts>2022-10-12 14:12:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246379-20221012155505.patch</filename>
            <type>text/plain</type>
            <size>17541</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSA3MThmMmUyYzlmODZkOWJiM2Q4MjYyNzYyOGRjMzczNDI4OGRkNzc2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFdlZCwgMTIgT2N0IDIwMjIgMTQ6MzQ6MTIgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBSRUdSRVNTSU9OKDI1NTIwNkBtYWluKTogW2N1cmxdCiBXS1Byb3RlY3Rpb25TcGFjZUNvcHlD
ZXJ0aWZpY2F0ZUluZm8gaXMgZGVmdW5jdAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI0NjM3OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoyNTUyMDZAbWFp
biBkZXByZWNhdGVkIFdLUHJvdGVjdGlvblNwYWNlQ29weUNlcnRpZmljYXRlSW5mbyBBUEkgYW5k
CldLQ2VydGlmaWNhdGVJbmZvUmVmLiBCdXQsIFdpbkNhaXJvIGFuZCBQbGF5U3RhdGlvbiBwb3J0
cyBhcmUgdXNpbmcKaXQuIFJldmVydGVkIHRoZSBwYXJ0IG9mIHRoZSBjaGFuZ2UuCgoqIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmNwcDoKKFdLQ2VydGlmaWNh
dGVJbmZvR2V0VHlwZUlEKToKKiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRpZmlj
YXRlSW5mby5oOgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5o
OgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJs
LmNwcDoKKFdLQ2VydGlmaWNhdGVJbmZvQ3JlYXRlV2l0aENlcnRmaWNhdGVDaGFpbik6CihXS0Nl
cnRpZmljYXRlSW5mb0dldFZlcmlmaWNhdGlvbkVycm9yKToKKFdLQ2VydGlmaWNhdGVJbmZvQ29w
eVZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24pOgooV0tDZXJ0aWZpY2F0ZUluZm9HZXRDZXJ0
aWZpY2F0ZUNoYWluU2l6ZSk6CihXS0NlcnRpZmljYXRlSW5mb0NvcHlDZXJ0aWZpY2F0ZUF0SW5k
ZXgpOgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9D
dXJsLmg6CiogU291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwOgooV2ViS2l0OjpVc2Vy
RGF0YTo6ZW5jb2RlKToKKFdlYktpdDo6VXNlckRhdGE6OmRlY29kZSk6CiogU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmguCihXZWJLaXQ6OldlYkNlcnRpZmljYXRl
SW5mbzo6Y3JlYXRlKToKKFdlYktpdDo6V2ViQ2VydGlmaWNhdGVJbmZvOjpjZXJ0aWZpY2F0ZUlu
Zm8gY29uc3QpOgooV2ViS2l0OjpXZWJDZXJ0aWZpY2F0ZUluZm86OldlYkNlcnRpZmljYXRlSW5m
byk6CiogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3VybC9XS1Byb3RlY3Rpb25TcGFj
ZUN1cmwuY3BwOgooV0tQcm90ZWN0aW9uU3BhY2VDb3B5Q2VydGlmaWNhdGVJbmZvKToKKiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNwYWNlQ3VybC5oOgoq
IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Ci0tLQogLi4u
L1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uY3BwIHwgIDUgKy0KIC4uLi9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmggICB8ICA4ICstLQogU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggIHwgIDIgKwogLi4uL0FQSS9j
L2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcCAgICAgIHwgMjQgKysrKysrKy0tCiAuLi4v
U2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmggfCAxMSArKy0tCiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Vc2VyRGF0YS5jcHAgICAgICAgICAgICAgfCAxNiArKysrKysKIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oICAgICB8IDUyICsrKysrKysr
KysrKysrKysrKysKIC4uLi9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNwYWNlQ3VybC5jcHAgICAg
ICB8ICA0ICstCiAuLi4vQVBJL0MvY3VybC9XS1Byb3RlY3Rpb25TcGFjZUN1cmwuaCAgICAgICAg
fCAgMyArLQogLi4uL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwg
IDQgKysKIDEwIGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMo
LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDZXJ0aWZpY2F0
ZUluZm8uaAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlm
aWNhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJ
bmZvLmNwcAppbmRleCA1MWViMGZjOTQ2NDkuLjBlMjMzY2Y3ZTdiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmNwcApAQCAtMjYsNyArMjYs
MTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXS0NlcnRpZmljYXRlSW5mby5o
IgogCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZv
LmgiCisKIFdLVHlwZUlEIFdLQ2VydGlmaWNhdGVJbmZvR2V0VHlwZUlEKCkKIHsKLSAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSShXZWJLaXQ6OldlYkNlcnRpZmljYXRlSW5m
bzo6QVBJVHlwZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S0NlcnRpZmljYXRlSW5mby5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZp
Y2F0ZUluZm8uaAppbmRleCAwOWVlMTBkYTkzMGQuLmQ5NzgzMzgxZmI2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5oCkBAIC0yMywyMCArMjMs
MTYgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVm
IFdLQ2VydGlmaWNhdGVJbmZvX2gKLSNkZWZpbmUgV0tDZXJ0aWZpY2F0ZUluZm9faAorI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dL
RGVwcmVjYXRlZC5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewogI2VuZGlm
CiAKLVdLX0VYUE9SVCBXS1R5cGVJRCBXS0NlcnRpZmljYXRlSW5mb0dldFR5cGVJRCgpIFdLX0Nf
QVBJX0RFUFJFQ0FURUQ7CitXS19FWFBPUlQgV0tUeXBlSUQgV0tDZXJ0aWZpY2F0ZUluZm9HZXRU
eXBlSUQoKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKLQotI2VuZGlmIC8qIFdL
Q2VydGlmaWNhdGVJbmZvX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFy
ZWRBUElDYXN0LmgKaW5kZXggOTgyMTkwZDJjNWMwLi5iNzcwNDZjNDdkZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCkBAIC03Nyw2ICs3Nyw3IEBA
IGNsYXNzIFdlYkFyY2hpdmVSZXNvdXJjZTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBP
YmpDT2JqZWN0R3JhcGg7CitjbGFzcyBXZWJDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBXZWJDb25u
ZWN0aW9uOwogY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtOwogY2xhc3MgV2ViSW1hZ2U7CkBAIC05
MCw2ICs5MSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEltcGxUeXBlPiBzdHJ1Y3QgSW1wbFR5cGVJ
bmZvOwogCiBXS19BRERfQVBJX01BUFBJTkcoV0tBcnJheVJlZiwgQVBJOjpBcnJheSkKIFdLX0FE
RF9BUElfTUFQUElORyhXS0Jvb2xlYW5SZWYsIEFQSTo6Qm9vbGVhbikKK1dLX0FERF9BUElfTUFQ
UElORyhXS0NlcnRpZmljYXRlSW5mb1JlZiwgV2ViQ2VydGlmaWNhdGVJbmZvKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLQ29ubmVjdGlvblJlZiwgV2ViQ29ubmVjdGlvbikKIFdLX0FERF9BUElfTUFQ
UElORyhXS0NvbnRleHRNZW51SXRlbVJlZiwgV2ViQ29udGV4dE1lbnVJdGVtKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLRGF0YVJlZiwgQVBJOjpEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvY3VybC9XS0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL2MvY3VybC9XS0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCmluZGV4IDY1
N2I3MWU0M2U1OS4uMzZiNDVmZTg4M2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvY3VybC9XS0NlcnRpZmljYXRlSW5mb0N1cmwuY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tBcnJheS5oIgogI2lu
Y2x1ZGUgIldLRGF0YS5oIgorI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgogCiAjaW5j
bHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KIApAQCAtMzgsMjUgKzM5LDM4IEBAIHVz
aW5nIENlcnRpZmljYXRlQ2hhaW4gPSBWZWN0b3I8Q2VydGlmaWNhdGU+OwogCiBXS0NlcnRpZmlj
YXRlSW5mb1JlZiBXS0NlcnRpZmljYXRlSW5mb0NyZWF0ZVdpdGhDZXJ0ZmljYXRlQ2hhaW4oV0tB
cnJheVJlZiBjZXJ0aWZpY2F0ZUNoYWluUmVmKQogewotICAgIHJldHVybiBudWxscHRyOworICAg
IENlcnRpZmljYXRlQ2hhaW4gY2VydGlmaWNhdGVDaGFpbjsKKyAgICBmb3IgKGludCBpID0gMCwg
Y291bnQgPSBXS0FycmF5R2V0U2l6ZShjZXJ0aWZpY2F0ZUNoYWluUmVmKTsgaSA8IGNvdW50OyBp
KyspIHsKKyAgICAgICAgYXV0byBkYXRhID0gcmVpbnRlcnByZXRfY2FzdDxXS0RhdGFSZWY+KFdL
QXJyYXlHZXRJdGVtQXRJbmRleChjZXJ0aWZpY2F0ZUNoYWluUmVmLCBpKSk7CisgICAgICAgIGF1
dG8gY2VydGlmaWNhdGUgPSBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm86Om1ha2VDZXJ0aWZpY2F0
ZShXS0RhdGFHZXRCeXRlcyhkYXRhKSwgV0tEYXRhR2V0U2l6ZShkYXRhKSk7CisgICAgICAgIGNl
cnRpZmljYXRlQ2hhaW4uYXBwZW5kKFdURk1vdmUoY2VydGlmaWNhdGUpKTsKKyAgICB9CisKKyAg
ICBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvIHsgMCwgV1RGTW92ZShj
ZXJ0aWZpY2F0ZUNoYWluKSB9OworICAgIFJlZlB0cjxXZWJLaXQ6OldlYkNlcnRpZmljYXRlSW5m
bz4gY2VydGlmaWNhdGVJbmZvUmVmID0gV2ViS2l0OjpXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0
ZShjZXJ0aWZpY2F0ZUluZm8pOworICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKGNlcnRpZmljYXRl
SW5mb1JlZi5sZWFrUmVmKCkpOwogfQogCiBpbnQgV0tDZXJ0aWZpY2F0ZUluZm9HZXRWZXJpZmlj
YXRpb25FcnJvcihXS0NlcnRpZmljYXRlSW5mb1JlZiBjZXJ0aWZpY2F0ZUluZm9SZWYpCiB7Ci0g
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFdlYktpdDo6dG9JbXBsKGNlcnRpZmljYXRlSW5mb1Jl
ZiktPmNlcnRpZmljYXRlSW5mbygpLnZlcmlmaWNhdGlvbkVycm9yKCk7CiB9CiAKIFdLU3RyaW5n
UmVmIFdLQ2VydGlmaWNhdGVJbmZvQ29weVZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24oV0tD
ZXJ0aWZpY2F0ZUluZm9SZWYgY2VydGlmaWNhdGVJbmZvUmVmKQogewotICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBXZWJLaXQ6OnRvQ29waWVkQVBJKFdlYktpdDo6dG9JbXBsKGNlcnRp
ZmljYXRlSW5mb1JlZiktPmNlcnRpZmljYXRlSW5mbygpLnZlcmlmaWNhdGlvbkVycm9yRGVzY3Jp
cHRpb24oKSk7CiB9CiAKIHNpemVfdCBXS0NlcnRpZmljYXRlSW5mb0dldENlcnRpZmljYXRlQ2hh
aW5TaXplKFdLQ2VydGlmaWNhdGVJbmZvUmVmIGNlcnRpZmljYXRlSW5mb1JlZikKIHsKLSAgICBy
ZXR1cm4gMDsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwoY2VydGlmaWNhdGVJbmZvUmVmKS0+
Y2VydGlmaWNhdGVJbmZvKCkuY2VydGlmaWNhdGVDaGFpbigpLnNpemUoKTsKIH0KIAogV0tEYXRh
UmVmIFdLQ2VydGlmaWNhdGVJbmZvQ29weUNlcnRpZmljYXRlQXRJbmRleChXS0NlcnRpZmljYXRl
SW5mb1JlZiBjZXJ0aWZpY2F0ZUluZm9SZWYsIHNpemVfdCBpbmRleCkKIHsKLSAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICBpZiAoV2ViS2l0Ojp0b0ltcGwoY2VydGlmaWNhdGVJbmZvUmVmKS0+Y2Vy
dGlmaWNhdGVJbmZvKCkuY2VydGlmaWNhdGVDaGFpbigpLnNpemUoKSA8PSBpbmRleCkKKyAgICAg
ICAgcmV0dXJuIFdlYktpdDo6dG9BUEkoJkFQSTo6RGF0YTo6Y3JlYXRlKG51bGxwdHIsIDApLmxl
YWtSZWYoKSk7CisKKyAgICBjb25zdCBhdXRvJiBjZXJ0aWZpY2F0ZSA9IFdlYktpdDo6dG9JbXBs
KGNlcnRpZmljYXRlSW5mb1JlZiktPmNlcnRpZmljYXRlSW5mbygpLmNlcnRpZmljYXRlQ2hhaW4o
KS5hdChpbmRleCk7CisgICAgcmV0dXJuIFdlYktpdDo6dG9BUEkoJkFQSTo6RGF0YTo6Y3JlYXRl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+KGNlcnRpZmljYXRlLmRhdGEo
KSksIGNlcnRpZmljYXRlLnNpemUoKSkubGVha1JlZigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5oCmluZGV4
IGRkOGM4ZDNlMDVkMC4uMmMwNWZhOThkNTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvYy9jdXJsL1dLQ2VydGlmaWNhdGVJbmZvQ3VybC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmgKQEAgLTI2LDE4ICsy
NiwxNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+Ci0jaW5j
bHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVy
biAiQyIgewogI2VuZGlmCiAKLVdLX0VYUE9SVCBXS0NlcnRpZmljYXRlSW5mb1JlZiBXS0NlcnRp
ZmljYXRlSW5mb0NyZWF0ZVdpdGhDZXJ0ZmljYXRlQ2hhaW4oV0tBcnJheVJlZikgV0tfQ19BUElf
REVQUkVDQVRFRDsKK1dLX0VYUE9SVCBXS0NlcnRpZmljYXRlSW5mb1JlZiBXS0NlcnRpZmljYXRl
SW5mb0NyZWF0ZVdpdGhDZXJ0ZmljYXRlQ2hhaW4oV0tBcnJheVJlZik7CiAKLVdLX0VYUE9SVCBp
bnQgV0tDZXJ0aWZpY2F0ZUluZm9HZXRWZXJpZmljYXRpb25FcnJvcihXS0NlcnRpZmljYXRlSW5m
b1JlZikgV0tfQ19BUElfREVQUkVDQVRFRDsKLVdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0NlcnRp
ZmljYXRlSW5mb0NvcHlWZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKFdLQ2VydGlmaWNhdGVJ
bmZvUmVmKSBXS19DX0FQSV9ERVBSRUNBVEVEOwotV0tfRVhQT1JUIHNpemVfdCBXS0NlcnRpZmlj
YXRlSW5mb0dldENlcnRpZmljYXRlQ2hhaW5TaXplKFdLQ2VydGlmaWNhdGVJbmZvUmVmKSBXS19D
X0FQSV9ERVBSRUNBVEVEOwotV0tfRVhQT1JUIFdLRGF0YVJlZiBXS0NlcnRpZmljYXRlSW5mb0Nv
cHlDZXJ0aWZpY2F0ZUF0SW5kZXgoV0tDZXJ0aWZpY2F0ZUluZm9SZWYsIHNpemVfdCkgV0tfQ19B
UElfREVQUkVDQVRFRDsKK1dLX0VYUE9SVCBpbnQgV0tDZXJ0aWZpY2F0ZUluZm9HZXRWZXJpZmlj
YXRpb25FcnJvcihXS0NlcnRpZmljYXRlSW5mb1JlZik7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYg
V0tDZXJ0aWZpY2F0ZUluZm9Db3B5VmVyaWZpY2F0aW9uRXJyb3JEZXNjcmlwdGlvbihXS0NlcnRp
ZmljYXRlSW5mb1JlZik7CitXS19FWFBPUlQgc2l6ZV90IFdLQ2VydGlmaWNhdGVJbmZvR2V0Q2Vy
dGlmaWNhdGVDaGFpblNpemUoV0tDZXJ0aWZpY2F0ZUluZm9SZWYpOworV0tfRVhQT1JUIFdLRGF0
YVJlZiBXS0NlcnRpZmljYXRlSW5mb0NvcHlDZXJ0aWZpY2F0ZUF0SW5kZXgoV0tDZXJ0aWZpY2F0
ZUluZm9SZWYsIHNpemVfdCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvVXNlckRhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
VXNlckRhdGEuY3BwCmluZGV4IDhiNTA3ZmM5Yjk5YS4uMWVkMzM0ODVlYTNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2VyRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvVXNlckRhdGEuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRD
b2RlcnMuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFw
LmgiCisjaW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlIDx3dGYvQ2hl
Y2tlZEFyaXRobWV0aWMuaD4KQEAgLTE3Myw2ICsxNzQsMTIgQEAgdm9pZCBVc2VyRGF0YTo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlciwgY29uc3QgQVBJOjpPYmplY3QmIG9iamVjdCkKICAg
ICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgQVBJOjpCb29sZWFuJj4ob2JqZWN0KS5lbmNvZGUoZW5j
b2Rlcik7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6Q2Vy
dGlmaWNhdGVJbmZvOiB7CisgICAgICAgIGNvbnN0IGF1dG8mIGNlcnRpZmljYXRlSW5mbyA9IHN0
YXRpY19jYXN0PGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyY+KG9iamVjdCk7CisgICAgICAgIGVu
Y29kZXIgPDwgY2VydGlmaWNhdGVJbmZvLmNlcnRpZmljYXRlSW5mbygpOworICAgICAgICBicmVh
azsKKyAgICB9CisKICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpEYXRhOgogICAgICAgICBz
dGF0aWNfY2FzdDxjb25zdCBBUEk6OkRhdGEmPihvYmplY3QpLmVuY29kZShlbmNvZGVyKTsKICAg
ICAgICAgYnJlYWs7CkBAIC0zMTgsNiArMzI1LDE1IEBAIGJvb2wgVXNlckRhdGE6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHJlc3VsdCkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEFQSTo6T2Jq
ZWN0OjpUeXBlOjpDZXJ0aWZpY2F0ZUluZm86IHsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8+IGNlcnRpZmljYXRlSW5mbzsKKyAgICAgICAgZGVjb2RlciA+
PiBjZXJ0aWZpY2F0ZUluZm87CisgICAgICAgIGlmICghY2VydGlmaWNhdGVJbmZvKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXN1bHQgPSBXZWJDZXJ0aWZpY2F0ZUluZm86
OmNyZWF0ZSgqY2VydGlmaWNhdGVJbmZvKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAg
Y2FzZSBBUEk6Ok9iamVjdDo6VHlwZTo6RGF0YToKICAgICAgICAgaWYgKCFBUEk6OkRhdGE6OmRl
Y29kZShkZWNvZGVyLCByZXN1bHQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDZXJ0aWZpY2F0ZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLjcwMWFlOTgwZDNiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oCkBAIC0wLDAgKzEsNTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ2VydGlmaWNhdGVJbmZvIDogcHVibGljIEFQ
STo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Q2VydGlmaWNhdGVJbmZvPiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxXZWJDZXJ0aWZpY2F0ZUluZm8+IGNyZWF0ZShjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGluZm8pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBXZWJDZXJ0aWZpY2F0ZUluZm8oaW5mbykpOworICAgIH0KKworICAgIGNvbnN0IFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKCkgY29uc3QgeyByZXR1cm4g
bV9jZXJ0aWZpY2F0ZUluZm87IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJDZXJ0aWZp
Y2F0ZUluZm8oY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBpbmZvKQorICAgICAgICA6
IG1fY2VydGlmaWNhdGVJbmZvKGluZm8pCisgICAgeworICAgIH0KKworICAgIFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyBtX2NlcnRpZmljYXRlSW5mbzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3VybC9XS1By
b3RlY3Rpb25TcGFjZUN1cmwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3Vy
bC9XS1Byb3RlY3Rpb25TcGFjZUN1cmwuY3BwCmluZGV4IDAzYWU2MTZhMzdjNi4uNTNlZDBlZTM5
ZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLUHJv
dGVjdGlvblNwYWNlQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
Y3VybC9XS1Byb3RlY3Rpb25TcGFjZUN1cmwuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiV0tQcm90ZWN0aW9uU3BhY2VDdXJsLmgiCiAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNp
bmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJDcmVkZW50aWFsLmgi
CiAjaW5jbHVkZSAiV2ViUHJvdGVjdGlvblNwYWNlLmgiCiAKQEAgLTM0LDUgKzM1LDYgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tDZXJ0aWZpY2F0ZUluZm9SZWYgV0tQcm90ZWN0aW9u
U3BhY2VDb3B5Q2VydGlmaWNhdGVJbmZvKFdLUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25T
cGFjZVJlZikKIHsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBSZWZQdHI8V2ViQ2VydGlmaWNh
dGVJbmZvPiBjZXJ0aWZpY2F0ZUluZm8gPSBXZWJDZXJ0aWZpY2F0ZUluZm86OmNyZWF0ZSh0b0lt
cGwocHJvdGVjdGlvblNwYWNlUmVmKS0+cHJvdGVjdGlvblNwYWNlKCkuY2VydGlmaWNhdGVJbmZv
KCkpOworICAgIHJldHVybiB0b0FQSShjZXJ0aWZpY2F0ZUluZm8ubGVha1JlZigpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQcm90ZWN0aW9u
U3BhY2VDdXJsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLUHJvdGVj
dGlvblNwYWNlQ3VybC5oCmluZGV4IDMxNjFmYzI5MGNkZi4uNGMwZWJlYTZkYmVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNwYWNl
Q3VybC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQcm90ZWN0
aW9uU3BhY2VDdXJsLmgKQEAgLTI2LDEzICsyNiwxMiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlIDxXZWJLaXQvV0tCYXNlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgog
CiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKLVdLX0VYUE9SVCBX
S0NlcnRpZmljYXRlSW5mb1JlZiBXS1Byb3RlY3Rpb25TcGFjZUNvcHlDZXJ0aWZpY2F0ZUluZm8o
V0tQcm90ZWN0aW9uU3BhY2VSZWYpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CitXS19FWFBPUlQgV0tD
ZXJ0aWZpY2F0ZUluZm9SZWYgV0tQcm90ZWN0aW9uU3BhY2VDb3B5Q2VydGlmaWNhdGVJbmZvKFdL
UHJvdGVjdGlvblNwYWNlUmVmKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMGVlNzU1YjZl
NjcuLmExZjNlZWFhZmM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xODk1LDYgKzE4OTUsNyBAQAogCQlCQ0YwNDlFNjExRkUyMEY2
MDBGODZBNTggLyogV0tCdW5kbGVGcmFtZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjA0OUU0MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1
bmRsZUZyYW1lUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZVByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjA0OUU1
MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0Y0REUyNTE2OEZBNDQ4MDBDOTRBRkMg
LyogV2ViQ29udGV4dFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRjRERTI0MTY4RkE0NDgwMEM5NEFGQyAvKiBXZWJDb250ZXh0U3Vw
cGxlbWVudC5oICovOyB9OworCQlCQ0Y1MDcyODEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2VydGlm
aWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0Y1MDcyNjEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZvLmggKi87IH07
CiAJCUJDRjY5RjlBMTE3NkNFRDYwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y2OUY5ODEx
NzZDRUQ2MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oICovOyB9OwogCQlCQ0Y2
OUZBMjExNzZEMDE0MDA0NzFBNTIgLyogQVBJTmF2aWdhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjY5RkEwMTE3NkQwMTQwMDQ3MUE1
MiAvKiBBUElOYXZpZ2F0aW9uRGF0YS5oICovOyB9OwogCQlCQ0Y2OUZBOTExNzZEMUNCMDA0NzFB
NTIgLyogV0tOYXZpZ2F0aW9uRGF0YVJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGQTcxMTc2RDFDQjAwNDcxQTUyIC8qIFdLTmF2aWdhdGlv
bkRhdGFSZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtNjYyMiw2ICs2NjIzLDcgQEAKIAkJQkNGMTg2MzcxNjdEMDcxRTAwQTFBODVBIC8qIENh
Y2hlTW9kZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVN
b2RlbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjRERTI0MTY4RkE0NDgw
MEM5NEFGQyAvKiBXZWJDb250ZXh0U3VwcGxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJDb250ZXh0U3VwcGxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0Y1MDY4NDEyNDMxODYxMDA1OTU1QUUgLyogU2VjdXJpdHkuZnJhbWV3b3JrICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5m
cmFtZXdvcms7IG5hbWUgPSBTZWN1cml0eS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9TZWN1cml0eS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRl
PiI7IH07CisJCUJDRjUwNzI2MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUluZm8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ2VydGlmaWNhdGVJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjY5Rjk4MTE3NkNFRDYwMDQ3MUE1MiAv
KiBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkNGNjlGQTAxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFQSU5hdmlnYXRpb25EYXRhLmg7IHBhdGggPSBV
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25EYXRhLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKIAkJQkNGNjlGQTExMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFQSU5hdmlnYXRpb25EYXRh
LmNwcDsgcGF0aCA9IFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkRhdGEuY3BwOyBzb3VyY2VU
cmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC04MjE3LDYgKzgyMTksNyBAQAogCQkJCTQ2Q0UzQjEw
MjNEOEM4M0QwMDE2QTk2QSAvKiBXZWJCYWNrRm9yd2FyZExpc3RDb3VudHMuaCAqLywKIAkJCQk1
MThEMkNBQjEyRDUxNTNCMDAzQkI5M0IgLyogV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgKi8s
CiAJCQkJNTE4RDJDQUMxMkQ1MTUzQjAwM0JCOTNCIC8qIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0u
aCAqLywKKwkJCQlCQ0Y1MDcyNjEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZv
LmggKi8sCiAJCQkJN0M0QUJFQ0UxQUE4RTlGMDAwODhBQTM3IC8qIFdlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0LmNwcCAqLywKIAkJCQk3QzRBQkVDRjFBQThFOUYwMDA4OEFBMzcgLyogV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3QuaCAqLywKIAkJCQk3QzRBQkVEMjFBQThGQ0I4MDA4OEFBMzcg
LyogV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcCAqLywKQEAgLTE1MDQ5LDYgKzE1
MDUyLDcgQEAKIAkJCQk0MTg5N0VEMTFGNDE1RDY4MDAxNkZBNDIgLyogV2ViQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTI5REExRjNEMTAxODAwRDE1RTQ3
IC8qIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlEREEwQTM1
NjI3RTU1RTRGMDA1RTA4NkUgLyogV2ViQ2FyZXRDaGFuZ2VMaXN0ZW5lci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQkNGNTA3MjgxMjQzMjlBQTAwNTk1NUFFIC8qIFdlYkNlcnRpZmljYXRlSW5mby5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJENzUxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9t
ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0Y4N0I5QkUxNTg5NDAxOTAwOTBGRjYyIC8q
IFdlYkNvbG9yQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0Y4N0I5QzAxNTg5NDBEODAw
OTBGRjYyIC8qIFdlYkNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462947</attachid>
            <date>2022-10-12 14:12:42 -0700</date>
            <delta_ts>2022-10-13 14:22:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246379-20221013061241.patch</filename>
            <type>text/plain</type>
            <size>7414</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">RnJvbSBkOWU1M2IwMzU3M2E4OTJjMjlkYTdhNmM2NjFkZTViMTY2OTRhYjUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGdWppaSBIaXJvbm9yaSA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CkRhdGU6IFRodSwgMTMgT2N0IDIwMjIgMDY6MDc6NTAgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBbY3VybF0gQWRkIG5ldyBXSyBDIEFQSSB0byBnZXQgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBj
aGFpbgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NjM3OQoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoyNTUyMDZAbWFpbiBkZXByZWNhdGVkIFdLUHJvdGVj
dGlvblNwYWNlQ29weUNlcnRpZmljYXRlSW5mbyBhbmQKV0tDZXJ0aWZpY2F0ZUluZm9SZWYuIEJ1
dCwgV2luQ2Fpcm8gYW5kIFBsYXlTdGF0aW9uIHBvcnRzIGFyZSB1c2luZwppdC4gQWRkZWQgYWx0
ZXJuYXRpdmUgbmV3IFdLIEMgQVBJLgoKV0tBcnJheVJlZiBXS1Byb3RlY3Rpb25TcGFjZUNvcHlD
ZXJ0aWZpY2F0ZUNoYWluKFdLUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSkKaW50
IFdLUHJvdGVjdGlvblNwYWNlR2V0Q2VydGlmaWNhdGVWZXJpZmljYXRpb25FcnJvcihXS1Byb3Rl
Y3Rpb25TcGFjZVJlZiBwcm90ZWN0aW9uU3BhY2UpCldLU3RyaW5nUmVmIFdLUHJvdGVjdGlvblNw
YWNlQ29weUNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRXJyb3JEZXNjcmlwdGlvbihXS1Byb3RlY3Rp
b25TcGFjZVJlZiBwcm90ZWN0aW9uU3BhY2UpCgoqIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9j
L2N1cmwvV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmNwcDoKKiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNwYWNlQ3VybC5jcHA6CihXS1Byb3RlY3Rpb25TcGFj
ZUNvcHlDZXJ0aWZpY2F0ZUNoYWluKToKKFdLUHJvdGVjdGlvblNwYWNlR2V0Q2VydGlmaWNhdGVW
ZXJpZmljYXRpb25FcnJvcik6CihXS1Byb3RlY3Rpb25TcGFjZUNvcHlDZXJ0aWZpY2F0ZVZlcmlm
aWNhdGlvbkVycm9yRGVzY3JpcHRpb24pOgoqIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L2N1cmwvV0tQcm90ZWN0aW9uU3BhY2VDdXJsLmg6CiogVG9vbHMvTWluaUJyb3dzZXIvd2luL1dl
YktpdEJyb3dzZXJXaW5kb3cuY3BwOgooY3JlYXRlUEVNU3RyaW5nKToKKFdlYktpdEJyb3dzZXJX
aW5kb3c6OmNhblRydXN0U2VydmVyQ2VydGlmaWNhdGUpOgotLS0KIC4uLi9BUEkvYy9jdXJsL1dL
Q2VydGlmaWNhdGVJbmZvQ3VybC5jcHAgICAgICB8IDEwIC0tLS0tLS0KIC4uLi9BUEkvQy9jdXJs
L1dLUHJvdGVjdGlvblNwYWNlQ3VybC5jcHAgICAgICB8IDI2ICsrKysrKysrKysrKysrKysrLS0K
IC4uLi9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNwYWNlQ3VybC5oICAgICAgICB8ICA1ICsrKy0K
IFRvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcCB8IDIxICsrKysr
KysrLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2Vy
dGlmaWNhdGVJbmZvQ3VybC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9jdXJsL1dL
Q2VydGlmaWNhdGVJbmZvQ3VybC5jcHAKaW5kZXggNjU3YjcxZTQzZTU5Li43MWI5Y2ZjMDQ4ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL2N1cmwvV0tDZXJ0aWZpY2F0
ZUluZm9DdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9jdXJsL1dLQ2Vy
dGlmaWNhdGVJbmZvQ3VybC5jcHAKQEAgLTI2LDE2ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiV0tDZXJ0aWZpY2F0ZUluZm9DdXJsLmgiCiAKLSNpbmNsdWRlICJBUElE
YXRhLmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV0tBcnJheS5oIgotI2lu
Y2x1ZGUgIldLRGF0YS5oIgotCi0jaW5jbHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4K
LQotdXNpbmcgQ2VydGlmaWNhdGUgPSBWZWN0b3I8dWludDhfdD47Ci11c2luZyBDZXJ0aWZpY2F0
ZUNoYWluID0gVmVjdG9yPENlcnRpZmljYXRlPjsKLQogV0tDZXJ0aWZpY2F0ZUluZm9SZWYgV0tD
ZXJ0aWZpY2F0ZUluZm9DcmVhdGVXaXRoQ2VydGZpY2F0ZUNoYWluKFdLQXJyYXlSZWYgY2VydGlm
aWNhdGVDaGFpblJlZikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQcm90ZWN0aW9uU3BhY2VDdXJsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQcm90ZWN0aW9uU3BhY2VDdXJs
LmNwcAppbmRleCAwM2FlNjE2YTM3YzYuLjQxOTQ2ZWJjMjI3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvY3VybC9XS1Byb3RlY3Rpb25TcGFjZUN1cmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQcm90ZWN0aW9uU3BhY2VD
dXJsLmNwcApAQCAtMjYsMTMgKzI2LDM1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiV0tQcm90ZWN0aW9uU3BhY2VDdXJsLmgiCiAKKyNpbmNsdWRlICJBUElBcnJheS5oIgorI2lu
Y2x1ZGUgIkFQSURhdGEuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJD
cmVkZW50aWFsLmgiCiAjaW5jbHVkZSAiV2ViUHJvdGVjdGlvblNwYWNlLmgiCi0KLXVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisjaW5jbHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KIAog
V0tDZXJ0aWZpY2F0ZUluZm9SZWYgV0tQcm90ZWN0aW9uU3BhY2VDb3B5Q2VydGlmaWNhdGVJbmZv
KFdLUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZVJlZikKIHsKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KKworV0tBcnJheVJlZiBXS1Byb3RlY3Rpb25TcGFjZUNvcHlDZXJ0aWZpY2F0
ZUNoYWluKFdLUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSkKK3sKKyAgICBhdXRv
JiBjZXJ0aWZpY2F0ZUNoYWluID0gV2ViS2l0Ojp0b0ltcGwocHJvdGVjdGlvblNwYWNlKS0+cHJv
dGVjdGlvblNwYWNlKCkuY2VydGlmaWNhdGVJbmZvKCkuY2VydGlmaWNhdGVDaGFpbigpOworICAg
IGF1dG8gY2VydHMgPSBXVEY6Om1hcChjZXJ0aWZpY2F0ZUNoYWluLCBbXShhdXRvJiYgY2VydGlm
aWNhdGUpIC0+IFJlZlB0cjxBUEk6Ok9iamVjdD4geworICAgICAgICByZXR1cm4gQVBJOjpEYXRh
OjpjcmVhdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oY2VydGlmaWNh
dGUuZGF0YSgpKSwgY2VydGlmaWNhdGUuc2l6ZSgpKTsKKyAgICB9KTsKKyAgICByZXR1cm4gV2Vi
S2l0Ojp0b0FQSShBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShjZXJ0cykpLmxlYWtSZWYoKSk7
Cit9CisKK2ludCBXS1Byb3RlY3Rpb25TcGFjZUdldENlcnRpZmljYXRlVmVyaWZpY2F0aW9uRXJy
b3IoV0tQcm90ZWN0aW9uU3BhY2VSZWYgcHJvdGVjdGlvblNwYWNlKQoreworICAgIGF1dG8mIGNl
cnRpZmljYXRlSW5mbyA9IFdlYktpdDo6dG9JbXBsKHByb3RlY3Rpb25TcGFjZSktPnByb3RlY3Rp
b25TcGFjZSgpLmNlcnRpZmljYXRlSW5mbygpOworICAgIHJldHVybiBjZXJ0aWZpY2F0ZUluZm8u
dmVyaWZpY2F0aW9uRXJyb3IoKTsKK30KKworV0tTdHJpbmdSZWYgV0tQcm90ZWN0aW9uU3BhY2VD
b3B5Q2VydGlmaWNhdGVWZXJpZmljYXRpb25FcnJvckRlc2NyaXB0aW9uKFdLUHJvdGVjdGlvblNw
YWNlUmVmIHByb3RlY3Rpb25TcGFjZSkKK3sKKyAgICBhdXRvJiBjZXJ0aWZpY2F0ZUluZm8gPSBX
ZWJLaXQ6OnRvSW1wbChwcm90ZWN0aW9uU3BhY2UpLT5wcm90ZWN0aW9uU3BhY2UoKS5jZXJ0aWZp
Y2F0ZUluZm8oKTsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b0NvcGllZEFQSShjZXJ0aWZpY2F0ZUlu
Zm8udmVyaWZpY2F0aW9uRXJyb3JEZXNjcmlwdGlvbigpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQcm90ZWN0aW9uU3BhY2VDdXJsLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNwYWNlQ3VybC5o
CmluZGV4IDMxNjFmYzI5MGNkZi4uOWFkNDAwMGFiOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9jdXJsL1dLUHJvdGVjdGlvblNwYWNlQ3VybC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2N1cmwvV0tQcm90ZWN0aW9uU3BhY2VDdXJsLmgK
QEAgLTMyLDcgKzMyLDEwIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi1XS19FWFBPUlQgV0tD
ZXJ0aWZpY2F0ZUluZm9SZWYgV0tQcm90ZWN0aW9uU3BhY2VDb3B5Q2VydGlmaWNhdGVJbmZvKFdL
UHJvdGVjdGlvblNwYWNlUmVmKSBXS19DX0FQSV9ERVBSRUNBVEVEOworV0tfRVhQT1JUIFdLQ2Vy
dGlmaWNhdGVJbmZvUmVmIFdLUHJvdGVjdGlvblNwYWNlQ29weUNlcnRpZmljYXRlSW5mbyhXS1By
b3RlY3Rpb25TcGFjZVJlZiBwcm90ZWN0aW9uU3BhY2UpIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CitX
S19FWFBPUlQgV0tBcnJheVJlZiBXS1Byb3RlY3Rpb25TcGFjZUNvcHlDZXJ0aWZpY2F0ZUNoYWlu
KFdLUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSk7CitXS19FWFBPUlQgaW50IFdL
UHJvdGVjdGlvblNwYWNlR2V0Q2VydGlmaWNhdGVWZXJpZmljYXRpb25FcnJvcihXS1Byb3RlY3Rp
b25TcGFjZVJlZiBwcm90ZWN0aW9uU3BhY2UpOworV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLUHJv
dGVjdGlvblNwYWNlQ29weUNlcnRpZmljYXRlVmVyaWZpY2F0aW9uRXJyb3JEZXNjcmlwdGlvbihX
S1Byb3RlY3Rpb25TcGFjZVJlZiBwcm90ZWN0aW9uU3BhY2UpOwogCiAjaWZkZWYgX19jcGx1c3Bs
dXMKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2lu
ZG93LmNwcCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcApp
bmRleCA1MDU2NWEyZTU0MGEuLjM5NDA4ODllOGE2OCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJy
b3dzZXIvd2luL1dlYktpdEJyb3dzZXJXaW5kb3cuY3BwCisrKyBiL1Rvb2xzL01pbmlCcm93c2Vy
L3dpbi9XZWJLaXRCcm93c2VyV2luZG93LmNwcApAQCAtNjEsMTYgKzYxLDE4IEBAIHN0ZDo6c3Ry
aW5nIGNyZWF0ZVVURjhTdHJpbmcoY29uc3Qgd2NoYXJfdCogc3JjLCBzaXplX3Qgc3JjTGVuZ3Ro
KQogICAgIHJldHVybiB7IGJ1ZmZlci5kYXRhKCksIGFjdHVhbExlbmd0aCB9OwogfQogCi1zdGQ6
OndzdHJpbmcgY3JlYXRlUEVNU3RyaW5nKFdLQ2VydGlmaWNhdGVJbmZvUmVmIGNlcnRpZmljYXRl
SW5mbykKK3N0ZDo6d3N0cmluZyBjcmVhdGVQRU1TdHJpbmcoV0tQcm90ZWN0aW9uU3BhY2VSZWYg
cHJvdGVjdGlvblNwYWNlKQogewotICAgIGF1dG8gY2hhaW5TaXplID0gV0tDZXJ0aWZpY2F0ZUlu
Zm9HZXRDZXJ0aWZpY2F0ZUNoYWluU2l6ZShjZXJ0aWZpY2F0ZUluZm8pOworICAgIGF1dG8gY2hh
aW4gPSBhZG9wdFdLKFdLUHJvdGVjdGlvblNwYWNlQ29weUNlcnRpZmljYXRlQ2hhaW4ocHJvdGVj
dGlvblNwYWNlKSk7CiAKICAgICBzdGQ6OndzdHJpbmcgcGVtczsKIAotICAgIGZvciAoYXV0byBp
ID0gMDsgaSA8IGNoYWluU2l6ZTsgaSsrKSB7Ci0gICAgICAgIGF1dG8gY2VydGlmaWNhdGUgPSBh
ZG9wdFdLKFdLQ2VydGlmaWNhdGVJbmZvQ29weUNlcnRpZmljYXRlQXRJbmRleChjZXJ0aWZpY2F0
ZUluZm8sIGkpKTsKLSAgICAgICAgYXV0byBzaXplID0gV0tEYXRhR2V0U2l6ZShjZXJ0aWZpY2F0
ZS5nZXQoKSk7Ci0gICAgICAgIGF1dG8gZGF0YSA9IFdLRGF0YUdldEJ5dGVzKGNlcnRpZmljYXRl
LmdldCgpKTsKKyAgICBmb3IgKGF1dG8gaSA9IDA7IGkgPCBXS0FycmF5R2V0U2l6ZShjaGFpbi5n
ZXQoKSk7IGkrKykgeworICAgICAgICBhdXRvIGl0ZW0gPSBXS0FycmF5R2V0SXRlbUF0SW5kZXgo
Y2hhaW4uZ2V0KCksIGkpOworICAgICAgICBhc3NlcnQoV0tHZXRUeXBlSUQoaXRlbSkgPT0gV0tE
YXRhR2V0VHlwZUlEKCkpOworICAgICAgICBhdXRvIGNlcnRpZmljYXRlID0gc3RhdGljX2Nhc3Q8
V0tEYXRhUmVmPihpdGVtKTsKKyAgICAgICAgYXV0byBzaXplID0gV0tEYXRhR2V0U2l6ZShjZXJ0
aWZpY2F0ZSk7CisgICAgICAgIGF1dG8gZGF0YSA9IFdLRGF0YUdldEJ5dGVzKGNlcnRpZmljYXRl
KTsKIAogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykKICAgICAgICAg
ICAgIHBlbXMucHVzaF9iYWNrKGRhdGFbaV0pOwpAQCAtNDc3LDEwICs0NzksOSBAQCB2b2lkIFdl
YktpdEJyb3dzZXJXaW5kb3c6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXS1Bh
Z2VSZWYgcGFnZSwgV0tBdQogYm9vbCBXZWJLaXRCcm93c2VyV2luZG93OjpjYW5UcnVzdFNlcnZl
ckNlcnRpZmljYXRlKFdLUHJvdGVjdGlvblNwYWNlUmVmIHByb3RlY3Rpb25TcGFjZSkKIHsKICAg
ICBhdXRvIGhvc3QgPSBjcmVhdGVTdHJpbmcoYWRvcHRXSyhXS1Byb3RlY3Rpb25TcGFjZUNvcHlI
b3N0KHByb3RlY3Rpb25TcGFjZSkpLmdldCgpKTsKLSAgICBhdXRvIGNlcnRpZmljYXRlSW5mbyA9
IGFkb3B0V0soV0tQcm90ZWN0aW9uU3BhY2VDb3B5Q2VydGlmaWNhdGVJbmZvKHByb3RlY3Rpb25T
cGFjZSkpOwotICAgIGF1dG8gdmVyaWZpY2F0aW9uRXJyb3IgPSBXS0NlcnRpZmljYXRlSW5mb0dl
dFZlcmlmaWNhdGlvbkVycm9yKGNlcnRpZmljYXRlSW5mby5nZXQoKSk7Ci0gICAgYXV0byBkZXNj
cmlwdGlvbiA9IGNyZWF0ZVN0cmluZyhhZG9wdFdLKFdLQ2VydGlmaWNhdGVJbmZvQ29weVZlcmlm
aWNhdGlvbkVycm9yRGVzY3JpcHRpb24oY2VydGlmaWNhdGVJbmZvLmdldCgpKSkuZ2V0KCkpOwot
ICAgIGF1dG8gcGVtID0gY3JlYXRlUEVNU3RyaW5nKGNlcnRpZmljYXRlSW5mby5nZXQoKSk7Cisg
ICAgYXV0byB2ZXJpZmljYXRpb25FcnJvciA9IFdLUHJvdGVjdGlvblNwYWNlR2V0Q2VydGlmaWNh
dGVWZXJpZmljYXRpb25FcnJvcihwcm90ZWN0aW9uU3BhY2UpOworICAgIGF1dG8gZGVzY3JpcHRp
b24gPSBjcmVhdGVTdHJpbmcoYWRvcHRXSyhXS1Byb3RlY3Rpb25TcGFjZUNvcHlDZXJ0aWZpY2F0
ZVZlcmlmaWNhdGlvbkVycm9yRGVzY3JpcHRpb24ocHJvdGVjdGlvblNwYWNlKSkuZ2V0KCkpOwor
ICAgIGF1dG8gcGVtID0gY3JlYXRlUEVNU3RyaW5nKHByb3RlY3Rpb25TcGFjZSk7CiAKICAgICBh
dXRvIGl0ID0gbV9hY2NlcHRlZFNlcnZlclRydXN0Q2VydHMuZmluZChob3N0KTsKICAgICBpZiAo
aXQgIT0gbV9hY2NlcHRlZFNlcnZlclRydXN0Q2VydHMuZW5kKCkgJiYgaXQtPnNlY29uZCA9PSBw
ZW0pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>