<?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>209644</bug_id>
          
          <creation_ts>2020-03-27 01:02:13 -0700</creation_ts>
          <short_desc>Deduplicate WebsiteDataStore::parameters() of Cocoa port and non-Cocoa port</short_desc>
          <delta_ts>2020-03-31 17:08:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209410</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1634767</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-03-27 01:02:13 -0700</bug_when>
    <thetext>[WinCairo] ASSERT(m_resourceLoadStatistics) is failing setThirdPartyCookieBlockingMode

WinCairo WTR is still failing the assertion even after r259076 which fixed the same assertion failure.

WinCairo, debug builds, trunk@259081

fast/dom/window-open-ephemeral.html
http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html
http/tests/cache/disk-cache/disk-cache-vary-cookie-private.html
http/tests/security/cookies/third-party-cookie-blocking-redirect.html
http/tests/security/cookies/third-party-cookie-blocking-user-action.html
http/tests/security/cookies/third-party-cookie-blocking.html
storage/indexeddb/aborted-versionchange-closes-private.html
storage/indexeddb/basics-private.html
storage/indexeddb/clone-exception-private.html
storage/indexeddb/closed-cursor-private.html
storage/indexeddb/connection-leak-private.html


&gt; ASSERTION FAILED: m_resourceLoadStatistics
&gt; ..\..\Source\WebKit\NetworkProcess/NetworkSession.cpp(248) : setThirdPartyCookieBlockingMode
&gt; 1   00007FF926951429 WTFCrash
&gt; 2   00007FF919A21F50 WTFCrashWithInfo
&gt; 3   00007FF91D8B74FD WebKit::NetworkSession::setThirdPartyCookieBlockingMode
&gt; 4   00007FF91D819878 WebKit::NetworkProcess::setShouldBlockThirdPartyCookiesForTesting
&gt; 5   00007FF91D4986A4 IPC::callMemberFunctionImpl&lt;WebKit::NetworkProcess,void (WebKit::NetworkProcess::*)(PAL::SessionID, WebCore::ThirdPartyCookieBlockingMode, WTF::CompletionHandler&lt;void ()&gt; &amp;&amp;),void (),std::tuple&lt;PAL::SessionID,WebCore::ThirdPartyCookieBlockingMode&gt;,0,1&gt;
&gt; 6   00007FF91D496A14 IPC::callMemberFunction&lt;WebKit::NetworkProcess,void (WebKit::NetworkProcess::*)(PAL::SessionID, WebCore::ThirdPartyCookieBlockingMode, WTF::CompletionHandler&lt;void ()&gt; &amp;&amp;),void (),std::tuple&lt;PAL::SessionID,WebCore::ThirdPartyCookieBlockingMode&gt;,std::integer_sequence&lt;unsigned long long,0,1&gt; &gt;
&gt; 7   00007FF91D432B33 IPC::handleMessageAsync&lt;Messages::NetworkProcess::SetShouldBlockThirdPartyCookiesForTesting,WebKit::NetworkProcess,void (WebKit::NetworkProcess::*)(PAL::SessionID, WebCore::ThirdPartyCookieBlockingMode, WTF::CompletionHandler&lt;void ()&gt; &amp;&amp;)&gt;
&gt; 8   00007FF91D427021 WebKit::NetworkProcess::didReceiveNetworkProcessMessage
&gt; 9   00007FF91D81278C WebKit::NetworkProcess::didReceiveMessage
&gt; 10  00007FF91DA3B9F6 IPC::Connection::dispatchMessage
&gt; 11  00007FF91DA3C0DB IPC::Connection::dispatchMessage
&gt; 12  00007FF91DA3C78B IPC::Connection::dispatchOneIncomingMessage
&gt; 13  00007FF91DA3F50C IPC::Connection::enqueueIncomingMessage::&lt;unnamed-tag&gt;::operator()
&gt; 14  00007FF91DA3F467 WTF::Detail::CallableWrapper&lt;`lambda at ..\..\Source\WebKit\Platform\IPC\Connection.cpp:981:30&apos;,void&gt;::call
&gt; 15  00007FF9269645D0 WTF::Function&lt;void ()&gt;::operator()
&gt; 16  00007FF9269C0BBC WTF::RunLoop::performWork
&gt; 17  00007FF926A8D4D5 WTF::RunLoop::wndProc
&gt; 18  00007FF926A8D3E9 WTF::RunLoop::RunLoopWndProc
&gt; 19  00007FF947735C0D CallWindowProcW
&gt; 20  00007FF947735602 DispatchMessageW
&gt; 21  00007FF926A8D6F3 WTF::RunLoop::run
&gt; 22  00007FF91D2DFD8B WebKit::AuxiliaryProcessMain&lt;WebKit::NetworkProcess,WebKit::NetworkProcessMainCurl&gt;
&gt; 23  00007FF91D2DFB1B WebKit::NetworkProcessMain
&gt; 24  00007FF7D6CE101C main
&gt; 25  00007FF7D6CE123C __scrt_common_main_seh
&gt; 26  00007FF948FF7BD4 BaseThreadInitThunk
&gt; 27  00007FF94914CED1 RtlUserThreadStart
&gt; LEAK: 20 WebPageProxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635408</commentid>
    <comment_count>1</comment_count>
      <attachid>394889</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-03-29 23:29:18 -0700</bug_when>
    <thetext>Created attachment 394889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635463</commentid>
    <comment_count>2</comment_count>
      <attachid>394889</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-30 05:21:41 -0700</bug_when>
    <thetext>Comment on attachment 394889
Patch

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

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:2221
&gt; +    };

There is a lot of code shared with WebsiteDataStoreParameters WebsiteDataStore::parameters() in WebsiteDataStoreCocoa.mm.
Can we try sharing it?
GTP seems to have an issue with hasStatisticsTestingCallback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635883</commentid>
    <comment_count>3</comment_count>
      <attachid>394889</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-03-30 17:59:13 -0700</bug_when>
    <thetext>Comment on attachment 394889
Patch

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

&gt;&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:2221
&gt;&gt; +    };
&gt; 
&gt; There is a lot of code shared with WebsiteDataStoreParameters WebsiteDataStore::parameters() in WebsiteDataStoreCocoa.mm.
&gt; Can we try sharing it?
&gt; GTP seems to have an issue with hasStatisticsTestingCallback.

Good idea. Will do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635915</commentid>
    <comment_count>4</comment_count>
      <attachid>395005</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-03-30 19:30:31 -0700</bug_when>
    <thetext>Created attachment 395005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635923</commentid>
    <comment_count>5</comment_count>
      <attachid>395009</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-03-30 20:09:43 -0700</bug_when>
    <thetext>Created attachment 395009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635935</commentid>
    <comment_count>6</comment_count>
      <attachid>395012</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-03-30 20:56:44 -0700</bug_when>
    <thetext>Created attachment 395012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635936</commentid>
    <comment_count>7</comment_count>
      <attachid>395013</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-03-30 21:09:32 -0700</bug_when>
    <thetext>Created attachment 395013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635946</commentid>
    <comment_count>8</comment_count>
      <attachid>395017</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-03-30 22:51:26 -0700</bug_when>
    <thetext>Created attachment 395017
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636303</commentid>
    <comment_count>9</comment_count>
      <attachid>395017</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-03-31 17:05:33 -0700</bug_when>
    <thetext>Comment on attachment 395017
Patch

Clearing flags on attachment: 395017

Committed r259323: &lt;https://trac.webkit.org/changeset/259323&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636304</commentid>
    <comment_count>10</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-03-31 17:05:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636305</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-31 17:08:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/61131748&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394889</attachid>
            <date>2020-03-29 23:29:18 -0700</date>
            <delta_ts>2020-03-30 19:30:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209644-20200330152916.patch</filename>
            <type>text/plain</type>
            <size>3153</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJhNzcyOWZiNWY3MzhlY2Mz
M2E4MmI3NDdiZjRlYzFjNjZiMmVhZmUuLjE4MTI5ZDk2MDkwZGI2OTY5Mjc3ZWI2NDMyNTY5OWQw
NjEzYTdjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDMtMjkgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgV2Vic2l0ZURhdGFT
dG9yZTo6cGFyYW1ldGVycygpIG9mIG5vbi1Db2NvYSBwb3J0IHNob3VsZCBzZXQgcGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTY0
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdpbkNh
aXJvIFdUUiB3YXMgZmFpbGluZyBhbiBhc3NlcnRpb24gZW5zdXJpbmcKKyAgICAgICAgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyB3YXMgZW5hYmxlZCBpbgorICAgICAgICBOZXR3b3JrU2Vzc2lvbjo6
c2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB3aGlsZSBydW5uaW5nCisgICAgICAgIExh
eW91dFRlc3RzIHdpdGggdXNlRXBoZW1lcmFsU2Vzc2lvbj10cnVlLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKTogU2V0CisgICAgICAgIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIGFzIHdlbGwgYXMgQ29jb2EgcG9ydCBkb2VzLgorCiAyMDIw
LTAzLTI5ICBkZGtpbHplckBhcHBsZS5jb20gIDxkZGtpbHplckBhcHBsZS5jb21AMjY4ZjQ1Y2Mt
Y2QwOS0wNDEwLWFiM2MtZDUyNjkxYjRkYmZjPgogCiAgICAgICAgIEJ1aWxkIGZpeCBmb3I6IFtp
T1NdIERlbGF5IHByb2Nlc3Mgc3VzcGVuc2lvbiBmb3IgYSB3aGlsZSBhZnRlciBsb2FkaW5nIGFu
IGFwcCBsaW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDRhZThlZTk3NTQyZTIwNzQ0MDY0NjgyZTky
YmY0MDc4NTE5Njc1NjYuLjI2MWFiNTMxZTYzMGU1OTYxZDJhNTc3NTZjNDgwN2E4M2Y2MWMwZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMTk1LDYgKzIxOTUsMzEgQEAgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgcGFyYW1ldGVy
cy5wZXJUaGlyZFBhcnR5T3JpZ2luU3RvcmFnZVF1b3RhID0gcGVyVGhpcmRQYXJ0eU9yaWdpblN0
b3JhZ2VRdW90YSgpOwogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLm5l
dHdvcmtDYWNoZURpcmVjdG9yeSA9IHJlc29sdmVkTmV0d29ya0NhY2hlRGlyZWN0b3J5KCk7CiAK
KyAgICBhdXRvIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRp
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKTsKKyAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUhhbmRsZTsKKyAgICBp
ZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eUhhbmRsZSk7CisKKyAgICBib29sIHNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBmYWxzZTsKKyAgICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUgPSBmYWxzZTsKKyAgICBhdXRvIGZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlID0gV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU6OkFsbEJ1
dENvb2tpZXM7CisgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlIHsgfTsKKworICAgIHBhcmFtZXRlcnMubmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzID0g
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgeworICAgICAgICBXVEZNb3ZlKHJlc291
cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpLAorICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEaXJlY3RvcnlIYW5kbGUpLAorICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCgpLAorICAgICAgICBpc0l0cFN0YXRlRXhwbGljaXRseVNldCgpLAorICAgICAg
ICBoYXNTdGF0aXN0aWNzVGVzdGluZ0NhbGxiYWNrKCksCisgICAgICAgIHNob3VsZEluY2x1ZGVM
b2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MsCisgICAgICAgIGVuYWJsZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUsCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKKyAgICAgICAgdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSgpLAorI2VuZGlmCisg
ICAgICAgIGZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlLAorICAgICAgICBXVEZNb3Zl
KHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSksCisgICAgfTsK
KwogICAgIHBsYXRmb3JtU2V0TmV0d29ya1BhcmFtZXRlcnMocGFyYW1ldGVycyk7CiAKICAgICBy
ZXR1cm4gcGFyYW1ldGVyczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395005</attachid>
            <date>2020-03-30 19:30:31 -0700</date>
            <delta_ts>2020-03-30 20:09:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209644-20200331113029.patch</filename>
            <type>text/plain</type>
            <size>17441</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmZGEyNmIxNzY2OTljYjIw
OTgxNzg1ODJjNmYzOWNlOWM3YTkxMWEuLmUzYzVjMTM4ZmY1MGM0MjY5MGE4YjU2YTM1OWU1MDY3
ODMzMTJlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDMtMzAgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgRGVkdXBsaWNhdGUg
V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpIG9mIENvY29hIHBvcnQgYW5kIG5vbi1Db2Nv
YSBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDk2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aW5DYWlybyBXVFIgd2FzIGZhaWxpbmcgYW4gYXNzZXJ0aW9uIGVuc3VyaW5nCisgICAgICAgIFJl
c291cmNlTG9hZFN0YXRpc3RpY3Mgd2FzIGVuYWJsZWQgaW4KKyAgICAgICAgTmV0d29ya1Nlc3Np
b246OnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgd2hpbGUgcnVubmluZworICAgICAg
ICBMYXlvdXRUZXN0cyB3aXRoIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBiZWN1YXNlCisgICAg
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHdhcyBub3Qgc2V0IGluCisgICAg
ICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIwMjAtMDMt
MzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQgc2hv
dWxkIHRha2UgYSBmb3JlZ3JvdW5kIGFzc2VydGlvbiBmb3Igb2Zmc2NyZWVuIGxvYWRzIHdoZW4g
dGhlIGFwcCBpcyBmb3JlZ3JvdW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0K
aW5kZXggMDE2ZDEyYzkwMWEwOGY2NWFmZWUwYmZjZGE2YWI3ZDBjOWUyODMwOS4uNDQ4ZTAzMTlk
NjgyMmFiYjc3ZGVjZDQxM2NiOGMyY2ExOWE2MTM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRh
U3RvcmVDb2NvYS5tbQpAQCAtOTAsMTIgKzkwLDEwIEBAIFdlYkNvcmU6OlRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGUgV2Vic2l0ZURhdGFTdG9yZTo6dGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
CiB9CiAjZW5kaWYKIAotV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9y
ZTo6cGFyYW1ldGVycygpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtU2V0TmV0d29y
a1BhcmFtZXRlcnMoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAg
ICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNz
UmF3Q29va2llcykpOwogCi0gICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKLQog
ICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c107CiAgICAgYm9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbiA9IGZhbHNl
OwogICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IGZhbHNl
OwpAQCAtMTQ5LDE2ICsxNDcsNiBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRl
RGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICBpZiAoIWh0dHBzUHJveHkuaXNWYWxpZCgpICYm
IChpc1NhZmFyaSB8fCBpc01pbmlCcm93c2VyKSkKICAgICAgICAgaHR0cHNQcm94eSA9IFVSTChV
UkwoKSwgW2RlZmF1bHRzIHN0cmluZ0ZvcktleTooTlNTdHJpbmcgKilXZWJLaXQySFRUUFNQcm94
eURlZmF1bHRzS2V5XSk7CiAKLSAgICBhdXRvIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkgPSBtX2NvbmZpZ3VyYXRpb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKTsK
LSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeUhhbmRsZTsKLSAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNF
bXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3Jp
dGVEaXJlY3RvcnkocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeUhhbmRsZSk7Ci0KLSAgICBhdXRvIG5ldHdvcmtDYWNoZURpcmVj
dG9yeSA9IHJlc29sdmVkTmV0d29ya0NhY2hlRGlyZWN0b3J5KCk7Ci0gICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBp
ZiAoIW5ldHdvcmtDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShuZXR3b3JrQ2FjaGVEaXJl
Y3RvcnksIG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0KICNpZiBIQVZF
KENGTkVUV09SS19BTFRFUk5BVElWRV9TRVJWSUNFKQogICAgIFN0cmluZyBhbHRlcm5hdGl2ZVNl
cnZpY2VTdG9yYWdlRGlyZWN0b3J5ID0gcmVzb2x2ZWRBbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFn
ZURpcmVjdG9yeSgpOwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBhbHRlcm5hdGl2ZVNl
cnZpY2VTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwpAQCAtMTcwLDUyICsxNTgsMjUg
QEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVy
cygpCiAgICAgYm9vbCBzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzID0gaXNTYWZhcmk7CiAgICAgYm9vbCBpc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkID0g
W2RlZmF1bHRzIGJvb2xGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJXZWJLaXRE
ZWJ1ZyVAIiwgV2ViUHJlZmVyZW5jZXNLZXk6OmlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWRL
ZXkoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpXV07CiAgICAgCi0gICAgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLQotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJh
bWV0ZXJzIHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHsKLSAgICAgICAgV1RGTW92
ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KSwKLSAgICAgICAgV1RGTW92ZShyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFuZGxlKSwKLSAgICAgICAgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoKSwKLSAgICAgICAgaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQoKSwK
LSAgICAgICAgaGFzU3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjaygpLAotICAgICAgICBzaG91bGRJ
bmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLAotICAgICAgICBlbmFibGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlLAotICAgICAgICB0aGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlKCksCi0gICAgICAgIGZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2Rl
LAotICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRS
ZXNvdXJjZSksCi0gICAgfTsKLSAgICAKLSAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycyA9IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKLSAgICAgICAgbV9z
ZXNzaW9uSUQsCi0gICAgICAgIGNvbmZpZ3VyYXRpb24oKS5ib3VuZEludGVyZmFjZUlkZW50aWZp
ZXIoKSwKLSAgICAgICAgY29uZmlndXJhdGlvbigpLmFsbG93c0NlbGx1bGFyQWNjZXNzKCkgPyBB
bGxvd3NDZWxsdWxhckFjY2Vzczo6WWVzIDogQWxsb3dzQ2VsbHVsYXJBY2Nlc3M6Ok5vLAotICAg
ICAgICBjb25maWd1cmF0aW9uKCkucHJveHlDb25maWd1cmF0aW9uKCksCi0gICAgICAgIGNvbmZp
Z3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSwKLSAgICAgICAg
Y29uZmlndXJhdGlvbigpLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigpLAot
ICAgICAgICBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbiwKLSAgICAgICAgU2Vjb25kcyB7IFtk
ZWZhdWx0cyBpbnRlZ2VyRm9yS2V5OldlYktpdE5ldHdvcmtMb2FkVGhyb3R0bGVMYXRlbmN5TWls
bGlzZWNvbmRzRGVmYXVsdHNLZXldIC8gMTAwMC4gfSwKLSAgICAgICAgV1RGTW92ZShodHRwUHJv
eHkpLAotICAgICAgICBXVEZNb3ZlKGh0dHBzUHJveHkpLAorICAgIHBhcmFtZXRlcnMubmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb24oKS5w
cm94eUNvbmZpZ3VyYXRpb24oKTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycy5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCku
c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVy
ID0gY29uZmlndXJhdGlvbigpLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigp
OworICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNob3VsZExvZ0Nvb2tp
ZUluZm9ybWF0aW9uID0gc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb247CisgICAgcGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMubG9hZFRocm90dGxlTGF0ZW5jeSA9IFNlY29uZHMg
eyBbZGVmYXVsdHMgaW50ZWdlckZvcktleTpXZWJLaXROZXR3b3JrTG9hZFRocm90dGxlTGF0ZW5j
eU1pbGxpc2Vjb25kc0RlZmF1bHRzS2V5XSAvIDEwMDAuIH07CisgICAgcGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuaHR0cFByb3h5ID0gV1RGTW92ZShodHRwUHJveHkpOworICAg
IHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmh0dHBzUHJveHkgPSBXVEZNb3Zl
KGh0dHBzUHJveHkpOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCi0g
ICAgICAgIFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2aWNlU3RvcmFnZURpcmVjdG9yeSksCi0gICAg
ICAgIFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2aWNlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSksCi0gICAgICAgIFdURk1vdmUoaHR0cDNFbmFibGVkKSwKKyAgICBwYXJhbWV0ZXJzLm5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VEaXJlY3RvcnkgPSBXVEZN
b3ZlKGFsdGVybmF0aXZlU2VydmljZVN0b3JhZ2VEaXJlY3RvcnkpOworICAgIHBhcmFtZXRlcnMu
bmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2aWNlU3RvcmFnZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
aHR0cDNFbmFibGVkID0gV1RGTW92ZShodHRwM0VuYWJsZWQpOwogI2VuZGlmCi0gICAgICAgIG1f
Y29uZmlndXJhdGlvbi0+ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSwKLSAg
ICAgICAgbV9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNGb3JUZXN0aW5nKCksCi0gICAgICAgIFdURk1vdmUobmV0d29ya0NhY2hlRGly
ZWN0b3J5KSwKLSAgICAgICAgV1RGTW92ZShuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpLAotICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPmRhdGFDb25uZWN0aW9uU2VydmljZVR5
cGUoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT5mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9u
RW5hYmxlZCgpLAotICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPm5ldHdvcmtDYWNoZVNwZWN1bGF0
aXZlVmFsaWRhdGlvbkVuYWJsZWQoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT50ZXN0aW5n
U2Vzc2lvbkVuYWJsZWQoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT5zdGFsZVdoaWxlUmV2
YWxpZGF0ZUVuYWJsZWQoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT50ZXN0U3BlZWRNdWx0
aXBsaWVyKCksCi0gICAgICAgIG1fY29uZmlndXJhdGlvbi0+c3VwcHJlc3Nlc0Nvbm5lY3Rpb25U
ZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlKCksCi0gICAgICAgIG1fY29uZmlndXJhdGlvbi0+YWxs
b3dzU2VydmVyUHJlY29ubmVjdCgpLAotICAgICAgICBpc0luQXBwQnJvd3NlclByaXZhY3lFbmFi
bGVkLAotICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQot
ICAgIH07CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuaXNJbkFwcEJy
b3dzZXJQcml2YWN5RW5hYmxlZCA9IGlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQ7CisgICAg
cGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BhcmFtZXRlcnMuc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA9IHNob3VsZEluY2x1ZGVMb2NhbGhv
c3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3M7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZW5hYmxlRGVidWdN
b2RlID0gZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTsKKyAgICBwYXJhbWV0
ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycy5maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IGZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlOworICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJz
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLm1hbnVhbFByZXZhbGVudFJlc291cmNl
ID0gV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2Up
OworCisgICAgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciA9IG1f
dWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7CiAKICAgICBhdXRvIGNvb2tpZUZpbGUg
PSByZXNvbHZlZENvb2tpZVN0b3JhZ2VGaWxlKCk7CiAKQEAgLTIyNiw0MCArMTg3LDggQEAgV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAg
ICAgICAgIG1fdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIgPSBpZGVudGlmeWluZ0Rh
dGFGcm9tQ29va2llU3RvcmFnZShtX2NmQ29va2llU3RvcmFnZS5nZXQoKSk7CiAgICAgfQogCi0g
ICAgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciA9IG1fdWlQcm9j
ZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gY29uZmlndXJh
dGlvbigpLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpOwotICAgIHBhcmFtZXRl
cnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllciA9IGNvbmZpZ3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50
aWZpZXIoKTsKLQotICAgIHBhcmFtZXRlcnMucGVuZGluZ0Nvb2tpZXMgPSBjb3B5VG9WZWN0b3Io
bV9wZW5kaW5nQ29va2llcyk7Ci0KICAgICBpZiAoIWNvb2tpZUZpbGUuaXNFbXB0eSgpKQogICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3Rvcnko
RmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShjb29raWVGaWxlKSwgcGFyYW1ldGVycy5jb29raWVT
dG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSk7Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLSAgICBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSA9IHJlc29sdmVkSW5k
ZXhlZERhdGFiYXNlRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLmluZGV4ZWREYXRh
YmFzZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURp
cmVjdG9yeSwgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgcGFyYW1ldGVy
cy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5ID0gcmVzb2x2ZWRTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLnNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLnNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotICAgIHBhcmFtZXRlcnMuc2Vy
dmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCA9IG1fY29uZmlndXJhdGlv
bi0+c2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCgpOwotI2VuZGlm
Ci0KLSAgICBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVkTG9jYWxT
dG9yYWdlRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVj
dG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
clJlYWRXcml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSwgcGFy
YW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCi0gICAgcGFy
YW1ldGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSBjYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsK
LSAgICBpZiAoIXBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAg
ICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5
KHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmNhY2hlU3RvcmFn
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAgICBwYXJhbWV0ZXJzLnBlck9yaWdpblN0
b3JhZ2VRdW90YSA9IHBlck9yaWdpblN0b3JhZ2VRdW90YSgpOwotICAgIHBhcmFtZXRlcnMucGVy
VGhpcmRQYXJ0eU9yaWdpblN0b3JhZ2VRdW90YSA9IHBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdl
UXVvdGEoKTsKLQotICAgIHJldHVybiBwYXJhbWV0ZXJzOwogfQogCiBib29sIFdlYnNpdGVEYXRh
U3RvcmU6Omh0dHAzRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDRhZThlZTk3NTQyZTIw
NzQ0MDY0NjgyZTkyYmY0MDc4NTE5Njc1NjYuLmNlZjcxNWU0YTYzZWY4MjBmNWQwM2E1MzdhNDM5
OTkwNzcxZmNiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMTU5LDI1ICsyMTU5LDY2IEBAIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5n
KENhY2hlTW9kZWwgY2FjaGVNb2RlCiAgICAgICAgIHByb2Nlc3NQb29sLT5zZXRDYWNoZU1vZGVs
U3luY2hyb25vdXNseUZvclRlc3RpbmcoY2FjaGVNb2RlbCk7CiB9CiAKLSNpZiAhUExBVEZPUk0o
Q09DT0EpCiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJh
bWV0ZXJzKCkKIHsKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwot
ICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNlc3Npb25JRCA9IG1fc2Vz
c2lvbklEOwogCiAgICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKIAotICAgIGF1
dG8gbG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gcmVzb2x2ZWRMb2NhbFN0b3JhZ2VEaXJlY3Rvcnko
KTsKLSAgICBpZiAoIWxvY2FsU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpIHsKLSAgICAgICAg
cGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSBsb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7
Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVj
dG9yeShsb2NhbFN0b3JhZ2VEaXJlY3RvcnksIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICB9CisgICAgcGFyYW1ldGVycy5wZW5kaW5nQ29va2ll
cyA9IHBlbmRpbmdDb29raWVzKCk7CiAKLSAgICBhdXRvIGNhY2hlU3RvcmFnZURpcmVjdG9yeSA9
IHRoaXMtPmNhY2hlU3RvcmFnZURpcmVjdG9yeSgpOwotICAgIGlmICghY2FjaGVTdG9yYWdlRGly
ZWN0b3J5LmlzRW1wdHkoKSkgewotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJz
LmNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgICAgIHBhcmFtZXRl
cnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gY2FjaGVTdG9yYWdlRGlyZWN0b3J5OwotICAgIH0K
KyAgICBhdXRvIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRp
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKTsKKyAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUhhbmRsZTsKKyAgICBp
ZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eUhhbmRsZSk7CisKKyAgICBhdXRvIG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IHJlc29sdmVkTmV0
d29ya0NhY2hlRGlyZWN0b3J5KCk7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG5ldHdv
cmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIW5ldHdvcmtDYWNoZURp
cmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvclJlYWRXcml0ZURpcmVjdG9yeShuZXR3b3JrQ2FjaGVEaXJlY3RvcnksIG5ldHdvcmtDYWNo
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBib29sIHNob3VsZEluY2x1ZGVMb2Nh
bGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBmYWxzZTsKKyAgICBib29sIGVuYWJsZVJl
c291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPSBmYWxzZTsKKyAgICBhdXRvIGZpcnN0UGFy
dHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlID0gV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGU6OkFsbEJ1dENvb2tpZXM7CisgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlIHsgfTsKKwor
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzID0geworICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkpLAorICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnlIYW5kbGUpLAorICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpLAorICAg
ICAgICBpc0l0cFN0YXRlRXhwbGljaXRseVNldCgpLAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCisgICAgICAgIGhhc1N0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2soKSwKKyNl
bHNlCisgICAgICAgIGZhbHNlLAorI2VuZGlmCisgICAgICAgIHNob3VsZEluY2x1ZGVMb2NhbGhv
c3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MsCisgICAgICAgIGVuYWJsZVJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGUsCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyAgICAgICAgdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSgpLAorI2VuZGlmCisgICAgICAg
IGZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlLAorICAgICAgICBXVEZNb3ZlKHJlc291
cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSksCisgICAgfTsKKworICAg
IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
czsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklEID0gbV9zZXNzaW9uSUQ7
CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllciA9
IGNvbmZpZ3VyYXRpb24oKS5ib3VuZEludGVyZmFjZUlkZW50aWZpZXIoKTsKKyAgICBuZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnMuYWxsb3dzQ2VsbHVsYXJBY2Nlc3MgPSBjb25maWd1cmF0aW9uKCku
YWxsb3dzQ2VsbHVsYXJBY2Nlc3MoKSA/IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpZZXMgOiBBbGxv
d3NDZWxsdWxhckFjY2Vzczo6Tm87CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmRldmlj
ZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkID0gbV9jb25maWd1cmF0aW9uLT5kZXZpY2VN
YW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycy5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0
aW5nID0gbV9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNGb3JUZXN0aW5nKCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLm5l
dHdvcmtDYWNoZURpcmVjdG9yeSA9IFdURk1vdmUobmV0d29ya0NhY2hlRGlyZWN0b3J5KTsKKyAg
ICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMubmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlID0gV1RGTW92ZShuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwor
ICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5kYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlID0g
bV9jb25maWd1cmF0aW9uLT5kYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKCk7CisgICAgbmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzLmZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkID0gbV9j
b25maWd1cmF0aW9uLT5mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9uRW5hYmxlZCgpOworICAgIG5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25F
bmFibGVkID0gbV9jb25maWd1cmF0aW9uLT5uZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRp
b25FbmFibGVkKCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3Rp
bmdOZXR3b3JrU2Vzc2lvbiA9IG1fY29uZmlndXJhdGlvbi0+dGVzdGluZ1Nlc3Npb25FbmFibGVk
KCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnN0YWxlV2hpbGVSZXZhbGlkYXRlRW5h
YmxlZCA9IG1fY29uZmlndXJhdGlvbi0+c3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVkKCk7Cisg
ICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnRlc3RTcGVlZE11bHRpcGxpZXIgPSBtX2NvbmZp
Z3VyYXRpb24tPnRlc3RTcGVlZE11bHRpcGxpZXIoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMuc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlID0gbV9j
b25maWd1cmF0aW9uLT5zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFu
Z2UoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuYWxsb3dzU2VydmVyUHJlY29ubmVj
dCA9IG1fY29uZmlndXJhdGlvbi0+YWxsb3dzU2VydmVyUHJlY29ubmVjdCgpOworICAgIG5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyA9IFdU
Rk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMpOworICAgIHBhcmFtZXRlcnMu
bmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gV1RGTW92ZShuZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgcGFyYW1ldGVycy5pbmRl
eGVkRGF0YWJhc2VEaXJlY3RvcnkgPSByZXNvbHZlZEluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSgp
OwpAQCAtMjE5MSwxNSArMjIzMiwyNSBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJz
aXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFtZXRlcnMuc2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRpcmVjdG9yeSwgcGFyYW1ldGVycy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICNlbmRpZgogCisgICAgYXV0byBsb2NhbFN0b3Jh
Z2VEaXJlY3RvcnkgPSByZXNvbHZlZExvY2FsU3RvcmFnZURpcmVjdG9yeSgpOworICAgIGlmICgh
bG9jYWxTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkgeworICAgICAgICBwYXJhbWV0ZXJzLmxv
Y2FsU3RvcmFnZURpcmVjdG9yeSA9IGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKKyAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGxvY2FsU3Rv
cmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpOworICAgIH0KKworICAgIGF1dG8gY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+
Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7CisgICAgaWYgKCFjYWNoZVN0b3JhZ2VEaXJlY3Rvcnku
aXNFbXB0eSgpKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJl
YWRXcml0ZURpcmVjdG9yeShjYWNoZVN0b3JhZ2VEaXJlY3RvcnksIHBhcmFtZXRlcnMuY2FjaGVT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICAgICAgcGFyYW1ldGVycy5jYWNo
ZVN0b3JhZ2VEaXJlY3RvcnkgPSBjYWNoZVN0b3JhZ2VEaXJlY3Rvcnk7CisgICAgfQorCiAgICAg
cGFyYW1ldGVycy5wZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJPcmlnaW5TdG9yYWdlUXVvdGEo
KTsKICAgICBwYXJhbWV0ZXJzLnBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJU
aGlyZFBhcnR5T3JpZ2luU3RvcmFnZVF1b3RhKCk7Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMubmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gcmVzb2x2ZWROZXR3b3JrQ2Fj
aGVEaXJlY3RvcnkoKTsKIAogICAgIHBsYXRmb3JtU2V0TmV0d29ya1BhcmFtZXRlcnMocGFyYW1l
dGVycyk7CiAKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KLSNlbmRpZgogCiAjaWYgSEFWRShT
RUNfS0VZX1BST1hZKQogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjphZGRTZWNLZXlQcm94eVN0b3Jl
KFJlZjxTZWNLZXlQcm94eVN0b3JlPiYmIHN0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDQ1M2Q4ZjFl
YjdjYjdmNTdiMGZjYTE0YzE0ZDc0MGQxNWE3ZDI5ODEuLjQ3NzNkZjc5YTNjYmUxMWVmY2U2MDQz
MTRhYTRjNDU3N2E5NzY3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTMwMCw5ICszMDAsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcGxhdGZvcm1EZXN0cm95KCk7CiAgICAgc3RhdGljIHZvaWQgcGxhdGZv
cm1SZW1vdmVSZWNlbnRTZWFyY2hlcyhXYWxsVGltZSk7CiAKLSNpZiBVU0UoQ1VSTCkgfHwgVVNF
KFNPVVApCiAgICAgdm9pZCBwbGF0Zm9ybVNldE5ldHdvcmtQYXJhbWV0ZXJzKFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzJik7Ci0jZW5kaWYKIAogICAgIFdlYnNpdGVEYXRhU3RvcmUoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395009</attachid>
            <date>2020-03-30 20:09:43 -0700</date>
            <delta_ts>2020-03-30 20:56:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209644-20200331120942.patch</filename>
            <type>text/plain</type>
            <size>17749</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmZGEyNmIxNzY2OTljYjIw
OTgxNzg1ODJjNmYzOWNlOWM3YTkxMWEuLmUzYzVjMTM4ZmY1MGM0MjY5MGE4YjU2YTM1OWU1MDY3
ODMzMTJlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDMtMzAgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgRGVkdXBsaWNhdGUg
V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpIG9mIENvY29hIHBvcnQgYW5kIG5vbi1Db2Nv
YSBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDk2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aW5DYWlybyBXVFIgd2FzIGZhaWxpbmcgYW4gYXNzZXJ0aW9uIGVuc3VyaW5nCisgICAgICAgIFJl
c291cmNlTG9hZFN0YXRpc3RpY3Mgd2FzIGVuYWJsZWQgaW4KKyAgICAgICAgTmV0d29ya1Nlc3Np
b246OnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgd2hpbGUgcnVubmluZworICAgICAg
ICBMYXlvdXRUZXN0cyB3aXRoIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBiZWN1YXNlCisgICAg
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHdhcyBub3Qgc2V0IGluCisgICAg
ICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIwMjAtMDMt
MzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQgc2hv
dWxkIHRha2UgYSBmb3JlZ3JvdW5kIGFzc2VydGlvbiBmb3Igb2Zmc2NyZWVuIGxvYWRzIHdoZW4g
dGhlIGFwcCBpcyBmb3JlZ3JvdW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0K
aW5kZXggMDE2ZDEyYzkwMWEwOGY2NWFmZWUwYmZjZGE2YWI3ZDBjOWUyODMwOS4uNDQ4ZTAzMTlk
NjgyMmFiYjc3ZGVjZDQxM2NiOGMyY2ExOWE2MTM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRh
U3RvcmVDb2NvYS5tbQpAQCAtOTAsMTIgKzkwLDEwIEBAIFdlYkNvcmU6OlRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGUgV2Vic2l0ZURhdGFTdG9yZTo6dGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
CiB9CiAjZW5kaWYKIAotV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9y
ZTo6cGFyYW1ldGVycygpCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtU2V0TmV0d29y
a1BhcmFtZXRlcnMoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAg
ICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNz
UmF3Q29va2llcykpOwogCi0gICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKLQog
ICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c107CiAgICAgYm9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbiA9IGZhbHNl
OwogICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IGZhbHNl
OwpAQCAtMTQ5LDE2ICsxNDcsNiBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRl
RGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICBpZiAoIWh0dHBzUHJveHkuaXNWYWxpZCgpICYm
IChpc1NhZmFyaSB8fCBpc01pbmlCcm93c2VyKSkKICAgICAgICAgaHR0cHNQcm94eSA9IFVSTChV
UkwoKSwgW2RlZmF1bHRzIHN0cmluZ0ZvcktleTooTlNTdHJpbmcgKilXZWJLaXQySFRUUFNQcm94
eURlZmF1bHRzS2V5XSk7CiAKLSAgICBhdXRvIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkgPSBtX2NvbmZpZ3VyYXRpb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKTsK
LSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeUhhbmRsZTsKLSAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNF
bXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3Jp
dGVEaXJlY3RvcnkocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeUhhbmRsZSk7Ci0KLSAgICBhdXRvIG5ldHdvcmtDYWNoZURpcmVj
dG9yeSA9IHJlc29sdmVkTmV0d29ya0NhY2hlRGlyZWN0b3J5KCk7Ci0gICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBp
ZiAoIW5ldHdvcmtDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShuZXR3b3JrQ2FjaGVEaXJl
Y3RvcnksIG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0KICNpZiBIQVZF
KENGTkVUV09SS19BTFRFUk5BVElWRV9TRVJWSUNFKQogICAgIFN0cmluZyBhbHRlcm5hdGl2ZVNl
cnZpY2VTdG9yYWdlRGlyZWN0b3J5ID0gcmVzb2x2ZWRBbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFn
ZURpcmVjdG9yeSgpOwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBhbHRlcm5hdGl2ZVNl
cnZpY2VTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwpAQCAtMTcwLDUyICsxNTgsMjUg
QEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVy
cygpCiAgICAgYm9vbCBzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzID0gaXNTYWZhcmk7CiAgICAgYm9vbCBpc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkID0g
W2RlZmF1bHRzIGJvb2xGb3JLZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJXZWJLaXRE
ZWJ1ZyVAIiwgV2ViUHJlZmVyZW5jZXNLZXk6OmlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWRL
ZXkoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpXV07CiAgICAgCi0gICAgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLQotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJh
bWV0ZXJzIHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHsKLSAgICAgICAgV1RGTW92
ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KSwKLSAgICAgICAgV1RGTW92ZShyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFuZGxlKSwKLSAgICAgICAgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoKSwKLSAgICAgICAgaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQoKSwK
LSAgICAgICAgaGFzU3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjaygpLAotICAgICAgICBzaG91bGRJ
bmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLAotICAgICAgICBlbmFibGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlLAotICAgICAgICB0aGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlKCksCi0gICAgICAgIGZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2Rl
LAotICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRS
ZXNvdXJjZSksCi0gICAgfTsKLSAgICAKLSAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycyA9IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKLSAgICAgICAgbV9z
ZXNzaW9uSUQsCi0gICAgICAgIGNvbmZpZ3VyYXRpb24oKS5ib3VuZEludGVyZmFjZUlkZW50aWZp
ZXIoKSwKLSAgICAgICAgY29uZmlndXJhdGlvbigpLmFsbG93c0NlbGx1bGFyQWNjZXNzKCkgPyBB
bGxvd3NDZWxsdWxhckFjY2Vzczo6WWVzIDogQWxsb3dzQ2VsbHVsYXJBY2Nlc3M6Ok5vLAotICAg
ICAgICBjb25maWd1cmF0aW9uKCkucHJveHlDb25maWd1cmF0aW9uKCksCi0gICAgICAgIGNvbmZp
Z3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSwKLSAgICAgICAg
Y29uZmlndXJhdGlvbigpLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigpLAot
ICAgICAgICBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbiwKLSAgICAgICAgU2Vjb25kcyB7IFtk
ZWZhdWx0cyBpbnRlZ2VyRm9yS2V5OldlYktpdE5ldHdvcmtMb2FkVGhyb3R0bGVMYXRlbmN5TWls
bGlzZWNvbmRzRGVmYXVsdHNLZXldIC8gMTAwMC4gfSwKLSAgICAgICAgV1RGTW92ZShodHRwUHJv
eHkpLAotICAgICAgICBXVEZNb3ZlKGh0dHBzUHJveHkpLAorICAgIHBhcmFtZXRlcnMubmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzLnByb3h5Q29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb24oKS5w
cm94eUNvbmZpZ3VyYXRpb24oKTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycy5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCku
c291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVy
ID0gY29uZmlndXJhdGlvbigpLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigp
OworICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNob3VsZExvZ0Nvb2tp
ZUluZm9ybWF0aW9uID0gc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb247CisgICAgcGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMubG9hZFRocm90dGxlTGF0ZW5jeSA9IFNlY29uZHMg
eyBbZGVmYXVsdHMgaW50ZWdlckZvcktleTpXZWJLaXROZXR3b3JrTG9hZFRocm90dGxlTGF0ZW5j
eU1pbGxpc2Vjb25kc0RlZmF1bHRzS2V5XSAvIDEwMDAuIH07CisgICAgcGFyYW1ldGVycy5uZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuaHR0cFByb3h5ID0gV1RGTW92ZShodHRwUHJveHkpOworICAg
IHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmh0dHBzUHJveHkgPSBXVEZNb3Zl
KGh0dHBzUHJveHkpOwogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpCi0g
ICAgICAgIFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2aWNlU3RvcmFnZURpcmVjdG9yeSksCi0gICAg
ICAgIFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2aWNlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSksCi0gICAgICAgIFdURk1vdmUoaHR0cDNFbmFibGVkKSwKKyAgICBwYXJhbWV0ZXJzLm5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VEaXJlY3RvcnkgPSBXVEZN
b3ZlKGFsdGVybmF0aXZlU2VydmljZVN0b3JhZ2VEaXJlY3RvcnkpOworICAgIHBhcmFtZXRlcnMu
bmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2aWNlU3RvcmFnZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
aHR0cDNFbmFibGVkID0gV1RGTW92ZShodHRwM0VuYWJsZWQpOwogI2VuZGlmCi0gICAgICAgIG1f
Y29uZmlndXJhdGlvbi0+ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKSwKLSAg
ICAgICAgbV9jb25maWd1cmF0aW9uLT5hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNGb3JUZXN0aW5nKCksCi0gICAgICAgIFdURk1vdmUobmV0d29ya0NhY2hlRGly
ZWN0b3J5KSwKLSAgICAgICAgV1RGTW92ZShuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpLAotICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPmRhdGFDb25uZWN0aW9uU2VydmljZVR5
cGUoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT5mYXN0U2VydmVyVHJ1c3RFdmFsdWF0aW9u
RW5hYmxlZCgpLAotICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPm5ldHdvcmtDYWNoZVNwZWN1bGF0
aXZlVmFsaWRhdGlvbkVuYWJsZWQoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT50ZXN0aW5n
U2Vzc2lvbkVuYWJsZWQoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT5zdGFsZVdoaWxlUmV2
YWxpZGF0ZUVuYWJsZWQoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT50ZXN0U3BlZWRNdWx0
aXBsaWVyKCksCi0gICAgICAgIG1fY29uZmlndXJhdGlvbi0+c3VwcHJlc3Nlc0Nvbm5lY3Rpb25U
ZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlKCksCi0gICAgICAgIG1fY29uZmlndXJhdGlvbi0+YWxs
b3dzU2VydmVyUHJlY29ubmVjdCgpLAotICAgICAgICBpc0luQXBwQnJvd3NlclByaXZhY3lFbmFi
bGVkLAotICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQot
ICAgIH07CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuaXNJbkFwcEJy
b3dzZXJQcml2YWN5RW5hYmxlZCA9IGlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQ7CisgICAg
cGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BhcmFtZXRlcnMuc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA9IHNob3VsZEluY2x1ZGVMb2NhbGhv
c3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3M7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZW5hYmxlRGVidWdN
b2RlID0gZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTsKKyAgICBwYXJhbWV0
ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycy5maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IGZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlOworICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJz
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLm1hbnVhbFByZXZhbGVudFJlc291cmNl
ID0gV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2Up
OworCisgICAgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciA9IG1f
dWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7CiAKICAgICBhdXRvIGNvb2tpZUZpbGUg
PSByZXNvbHZlZENvb2tpZVN0b3JhZ2VGaWxlKCk7CiAKQEAgLTIyNiw0MCArMTg3LDggQEAgV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAg
ICAgICAgIG1fdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIgPSBpZGVudGlmeWluZ0Rh
dGFGcm9tQ29va2llU3RvcmFnZShtX2NmQ29va2llU3RvcmFnZS5nZXQoKSk7CiAgICAgfQogCi0g
ICAgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciA9IG1fdWlQcm9j
ZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyID0gY29uZmlndXJh
dGlvbigpLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpOwotICAgIHBhcmFtZXRl
cnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRl
bnRpZmllciA9IGNvbmZpZ3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50
aWZpZXIoKTsKLQotICAgIHBhcmFtZXRlcnMucGVuZGluZ0Nvb2tpZXMgPSBjb3B5VG9WZWN0b3Io
bV9wZW5kaW5nQ29va2llcyk7Ci0KICAgICBpZiAoIWNvb2tpZUZpbGUuaXNFbXB0eSgpKQogICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3Rvcnko
RmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShjb29raWVGaWxlKSwgcGFyYW1ldGVycy5jb29raWVT
dG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSk7Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLSAgICBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSA9IHJlc29sdmVkSW5k
ZXhlZERhdGFiYXNlRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLmluZGV4ZWREYXRh
YmFzZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURp
cmVjdG9yeSwgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgcGFyYW1ldGVy
cy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5ID0gcmVzb2x2ZWRTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLnNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLnNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotICAgIHBhcmFtZXRlcnMuc2Vy
dmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCA9IG1fY29uZmlndXJhdGlv
bi0+c2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCgpOwotI2VuZGlm
Ci0KLSAgICBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVkTG9jYWxT
dG9yYWdlRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVj
dG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
clJlYWRXcml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSwgcGFy
YW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCi0gICAgcGFy
YW1ldGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSBjYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsK
LSAgICBpZiAoIXBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAg
ICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5
KHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmNhY2hlU3RvcmFn
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAgICBwYXJhbWV0ZXJzLnBlck9yaWdpblN0
b3JhZ2VRdW90YSA9IHBlck9yaWdpblN0b3JhZ2VRdW90YSgpOwotICAgIHBhcmFtZXRlcnMucGVy
VGhpcmRQYXJ0eU9yaWdpblN0b3JhZ2VRdW90YSA9IHBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdl
UXVvdGEoKTsKLQotICAgIHJldHVybiBwYXJhbWV0ZXJzOwogfQogCiBib29sIFdlYnNpdGVEYXRh
U3RvcmU6Omh0dHAzRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDRhZThlZTk3NTQyZTIw
NzQ0MDY0NjgyZTkyYmY0MDc4NTE5Njc1NjYuLjU5MWFiN2Y3ZDU4ZjVjYTEzMmU2YzQ4NjM5ZTFh
NmMzMTk0MWJlZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yMTU5LDI1ICsyMTU5LDY3IEBAIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5n
KENhY2hlTW9kZWwgY2FjaGVNb2RlCiAgICAgICAgIHByb2Nlc3NQb29sLT5zZXRDYWNoZU1vZGVs
U3luY2hyb25vdXNseUZvclRlc3RpbmcoY2FjaGVNb2RlbCk7CiB9CiAKLSNpZiAhUExBVEZPUk0o
Q09DT0EpCiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJh
bWV0ZXJzKCkKIHsKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwot
ICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNlc3Npb25JRCA9IG1fc2Vz
c2lvbklEOwogCiAgICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKIAotICAgIGF1
dG8gbG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gcmVzb2x2ZWRMb2NhbFN0b3JhZ2VEaXJlY3Rvcnko
KTsKLSAgICBpZiAoIWxvY2FsU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpIHsKLSAgICAgICAg
cGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSBsb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7
Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVj
dG9yeShsb2NhbFN0b3JhZ2VEaXJlY3RvcnksIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICB9CisgICAgcGFyYW1ldGVycy5wZW5kaW5nQ29va2ll
cyA9IHBlbmRpbmdDb29raWVzKCk7CiAKLSAgICBhdXRvIGNhY2hlU3RvcmFnZURpcmVjdG9yeSA9
IHRoaXMtPmNhY2hlU3RvcmFnZURpcmVjdG9yeSgpOwotICAgIGlmICghY2FjaGVTdG9yYWdlRGly
ZWN0b3J5LmlzRW1wdHkoKSkgewotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJz
LmNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgICAgIHBhcmFtZXRl
cnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gY2FjaGVTdG9yYWdlRGlyZWN0b3J5OwotICAgIH0K
KyAgICBhdXRvIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRp
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkoKTsKKyAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUhhbmRsZTsKKyAgICBp
ZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eUhhbmRsZSk7CisKKyAgICBhdXRvIG5ldHdvcmtDYWNoZURpcmVjdG9yeSA9IHJlc29sdmVkTmV0
d29ya0NhY2hlRGlyZWN0b3J5KCk7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG5ldHdv
cmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIW5ldHdvcmtDYWNoZURp
cmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvclJlYWRXcml0ZURpcmVjdG9yeShuZXR3b3JrQ2FjaGVEaXJlY3RvcnksIG5ldHdvcmtDYWNo
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBib29sIHNob3VsZEluY2x1ZGVMb2Nh
bGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBmYWxzZTsKKyAgICBib29sIGVuYWJsZVJl
c291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPSBmYWxzZTsKKyAgICBhdXRvIGZpcnN0UGFy
dHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlID0gV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGU6OkFsbEJ1dENvb2tpZXM7CisgICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlIHsgfTsKKwor
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzID0geworICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3RvcnkpLAorICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnlIYW5kbGUpLAorICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpLAorI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgICAgIGlzSXRwU3RhdGVFeHBs
aWNpdGx5U2V0KCksCisgICAgICAgIGhhc1N0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2soKSwKKyNl
bHNlCisgICAgICAgIGZhbHNlLAorICAgICAgICBmYWxzZSwKKyNlbmRpZgorICAgICAgICBzaG91
bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLAorICAgICAgICBlbmFi
bGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlLAorI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCisgICAgICAgIHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoKSwK
KyNlbmRpZgorICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSwKKyAgICAg
ICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2Up
LAorICAgIH07CisKKyAgICBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycyBuZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnM7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNlc3Npb25J
RCA9IG1fc2Vzc2lvbklEOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5ib3VuZEludGVy
ZmFjZUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCkuYm91bmRJbnRlcmZhY2VJZGVudGlmaWVy
KCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsbG93c0NlbGx1bGFyQWNjZXNzID0g
Y29uZmlndXJhdGlvbigpLmFsbG93c0NlbGx1bGFyQWNjZXNzKCkgPyBBbGxvd3NDZWxsdWxhckFj
Y2Vzczo6WWVzIDogQWxsb3dzQ2VsbHVsYXJBY2Nlc3M6Ok5vOworICAgIG5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCA9IG1fY29uZmln
dXJhdGlvbi0+ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKTsKKyAgICBuZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVz
dHJpY3Rpb25zRm9yVGVzdGluZyA9IG1fY29uZmlndXJhdGlvbi0+YWxsTG9hZHNCbG9ja2VkQnlE
ZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZygpOworICAgIG5ldHdvcmtTZXNz
aW9uUGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBXVEZNb3ZlKG5ldHdvcmtDYWNo
ZURpcmVjdG9yeSk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLm5ldHdvcmtDYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuZGF0YUNvbm5lY3Rp
b25TZXJ2aWNlVHlwZSA9IG1fY29uZmlndXJhdGlvbi0+ZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlw
ZSgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5mYXN0U2VydmVyVHJ1c3RFdmFsdWF0
aW9uRW5hYmxlZCA9IG1fY29uZmlndXJhdGlvbi0+ZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVu
YWJsZWQoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMubmV0d29ya0NhY2hlU3BlY3Vs
YXRpdmVWYWxpZGF0aW9uRW5hYmxlZCA9IG1fY29uZmlndXJhdGlvbi0+bmV0d29ya0NhY2hlU3Bl
Y3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24gPSBtX2NvbmZpZ3VyYXRpb24tPnRlc3Rp
bmdTZXNzaW9uRW5hYmxlZCgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zdGFsZVdo
aWxlUmV2YWxpZGF0ZUVuYWJsZWQgPSBtX2NvbmZpZ3VyYXRpb24tPnN0YWxlV2hpbGVSZXZhbGlk
YXRlRW5hYmxlZCgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy50ZXN0U3BlZWRNdWx0
aXBsaWVyID0gbV9jb25maWd1cmF0aW9uLT50ZXN0U3BlZWRNdWx0aXBsaWVyKCk7CisgICAgbmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5
c3RlbUNoYW5nZSA9IG1fY29uZmlndXJhdGlvbi0+c3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5h
dGlvbk9uU3lzdGVtQ2hhbmdlKCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsbG93
c1NlcnZlclByZWNvbm5lY3QgPSBtX2NvbmZpZ3VyYXRpb24tPmFsbG93c1NlcnZlclByZWNvbm5l
Y3QoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BhcmFtZXRlcnMgPSBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKTsK
KyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyA9IFdURk1vdmUobmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzKTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAg
IHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5ID0gcmVzb2x2ZWRJbmRleGVkRGF0
YWJhc2VEaXJlY3RvcnkoKTsKQEAgLTIxODksMTcgKzIyMzEsMjggQEAgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgcGFyYW1ldGVy
cy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5ID0gcmVzb2x2ZWRTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJzLnNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkuaXNFbXB0eSgpKQogICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLnNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgIHBhcmFtZXRlcnMuc2Vy
dmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCA9IG1fY29uZmlndXJhdGlv
bi0+c2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCgpOwogI2VuZGlm
CiAKKyAgICBhdXRvIGxvY2FsU3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVkTG9jYWxTdG9yYWdl
RGlyZWN0b3J5KCk7CisgICAgaWYgKCFsb2NhbFN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKSB7
CisgICAgICAgIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gbG9jYWxTdG9yYWdl
RGlyZWN0b3J5OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFk
V3JpdGVEaXJlY3RvcnkobG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmxvY2FsU3Rv
cmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgfQorCisgICAgYXV0byBjYWNoZVN0
b3JhZ2VEaXJlY3RvcnkgPSB0aGlzLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsKKyAgICBpZiAo
IWNhY2hlU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpIHsKKyAgICAgICAgcGFyYW1ldGVycy5j
YWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSBjYWNoZVN0b3JhZ2VEaXJlY3Rvcnk7CisgICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjYWNoZVN0
b3JhZ2VEaXJlY3RvcnksIHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlKTsKKyAgICB9CisKICAgICBwYXJhbWV0ZXJzLnBlck9yaWdpblN0b3JhZ2VRdW90YSA9
IHBlck9yaWdpblN0b3JhZ2VRdW90YSgpOwogICAgIHBhcmFtZXRlcnMucGVyVGhpcmRQYXJ0eU9y
aWdpblN0b3JhZ2VRdW90YSA9IHBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEoKTsKLSAg
ICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3Rv
cnkgPSByZXNvbHZlZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpOwogCiAgICAgcGxhdGZvcm1TZXRO
ZXR3b3JrUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTsKIAogICAgIHJldHVybiBwYXJhbWV0ZXJzOwog
fQotI2VuZGlmCiAKICNpZiBIQVZFKFNFQ19LRVlfUFJPWFkpCiB2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OmFkZFNlY0tleVByb3h5U3RvcmUoUmVmPFNlY0tleVByb3h5U3RvcmU+JiYgc3RvcmUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKaW5kZXggNDUzZDhmMWViN2NiN2Y1N2IwZmNhMTRjMTRkNzQwZDE1YTdkMjk4MS4u
NDc3M2RmNzlhM2NiZTExZWZjZTYwNDMxNGFhNGM0NTc3YTk3Njc4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApA
QCAtMzAwLDkgKzMwMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybURlc3Ryb3koKTsK
ICAgICBzdGF0aWMgdm9pZCBwbGF0Zm9ybVJlbW92ZVJlY2VudFNlYXJjaGVzKFdhbGxUaW1lKTsK
IAotI2lmIFVTRShDVVJMKSB8fCBVU0UoU09VUCkKICAgICB2b2lkIHBsYXRmb3JtU2V0TmV0d29y
a1BhcmFtZXRlcnMoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmKTsKLSNlbmRpZgogCiAgICAg
V2Vic2l0ZURhdGFTdG9yZSgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395012</attachid>
            <date>2020-03-30 20:56:44 -0700</date>
            <delta_ts>2020-03-30 21:09:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209644-20200331125643.patch</filename>
            <type>text/plain</type>
            <size>17930</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5Mjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4MzBlODNjN2Q3NTY1ZTU5
ZGM3MDZmNzVjMWNiYmFkMmNiZjNlMDQuLmE5NmUwMjRmM2RjYjQ4NjVmMGU5MjIyYTg2NTU1YjZk
MDU1ZmRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDMtMzAgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgRGVkdXBsaWNhdGUg
V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpIG9mIENvY29hIHBvcnQgYW5kIG5vbi1Db2Nv
YSBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDk2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aW5DYWlybyBXVFIgd2FzIGZhaWxpbmcgYW4gYXNzZXJ0aW9uIGVuc3VyaW5nCisgICAgICAgIFJl
c291cmNlTG9hZFN0YXRpc3RpY3Mgd2FzIGVuYWJsZWQgaW4KKyAgICAgICAgTmV0d29ya1Nlc3Np
b246OnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgd2hpbGUgcnVubmluZworICAgICAg
ICBMYXlvdXRUZXN0cyB3aXRoIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBiZWN1YXNlCisgICAg
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHdhcyBub3Qgc2V0IGluCisgICAg
ICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIwMjAtMDMt
MzAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwZXJp
bWVudGFsOiBFbmZvcmNlIFNhbWVTaXRlPXN0cmljdCBmb3IgZG9tYWlucyBjbGFzc2lmaWVkIGFz
IGJvdW5jZSB0cmFja2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4
IDk2ZmY0NGM1M2Y3NjFiZTRhZjkzOWQyNjI0ZWJkZTBkYmUwMTI0NmMuLmExYTg0YjU5ZjRiN2Rl
MGVlMmRlZjFjOTlkZTRjYTJkZTRjNjljZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q29jb2EubW0KQEAgLTkwLDEyICs5MCwxMCBAQCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlIFdlYnNpdGVEYXRhU3RvcmU6OnRoaXJkUGFydHlDb29raWVCbG9ja2luZwogfQog
I2VuZGlmCiAKLVdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBh
cmFtZXRlcnMoKQordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybVNldE5ldHdvcmtQYXJh
bWV0ZXJzKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIEFT
U0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nv
b2tpZXMpKTsKIAotICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7Ci0KICAgICBO
U1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVm
YXVsdHNdOwogICAgIGJvb2wgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24gPSBmYWxzZTsKICAg
ICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPSBmYWxzZTsKQEAg
LTE1NCwxNiArMTUyLDYgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFT
dG9yZTo6cGFyYW1ldGVycygpCiAgICAgaWYgKCFodHRwc1Byb3h5LmlzVmFsaWQoKSAmJiAoaXNT
YWZhcmkgfHwgaXNNaW5pQnJvd3NlcikpCiAgICAgICAgIGh0dHBzUHJveHkgPSBVUkwoVVJMKCks
IFtkZWZhdWx0cyBzdHJpbmdGb3JLZXk6KE5TU3RyaW5nICopV2ViS2l0MkhUVFBTUHJveHlEZWZh
dWx0c0tleV0pOwogCi0gICAgYXV0byByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0g
bV9jb25maWd1cmF0aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7Ci0gICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlI
YW5kbGU7Ci0gICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LmlzRW1wdHko
KSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGly
ZWN0b3J5KHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3RvcnlIYW5kbGUpOwotCi0gICAgYXV0byBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnkg
PSByZXNvbHZlZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpOwotICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFu
ZXR3b3JrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkobmV0d29ya0NhY2hlRGlyZWN0b3J5
LCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCiAjaWYgSEFWRShDRk5F
VFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKICAgICBTdHJpbmcgYWx0ZXJuYXRpdmVTZXJ2aWNl
U3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVkQWx0ZXJuYXRpdmVTZXJ2aWNlc1N0b3JhZ2VEaXJl
Y3RvcnkoKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgYWx0ZXJuYXRpdmVTZXJ2aWNl
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKQEAgLTE3NSw1MyArMTYzLDI2IEBAIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQog
ICAgIGJvb2wgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9
IGlzU2FmYXJpOwogICAgIGJvb2wgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCA9IFtkZWZh
dWx0cyBib29sRm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiV2ViS2l0RGVidWcl
QCIsIFdlYlByZWZlcmVuY2VzS2V5Ojppc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkS2V5KCku
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV1dOwogICAgIAotICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzIHBhcmFtZXRlcnM7Ci0KLSAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
cyByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyB7Ci0gICAgICAgIFdURk1vdmUocmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSksCi0gICAgICAgIFdURk1vdmUocmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeUhhbmRsZSksCi0gICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKCksCi0gICAgICAgIGlzSXRwU3RhdGVFeHBsaWNpdGx5U2V0KCksCi0gICAg
ICAgIGhhc1N0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2soKSwKLSAgICAgICAgc2hvdWxkSW5jbHVk
ZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKLSAgICAgICAgZW5hYmxlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKLSAgICAgICAgdGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZSgpLAotICAgICAgICBzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwKLSAg
ICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsCi0gICAgICAgIFdURk1vdmUo
cmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlKSwKLSAgICB9Owot
ICAgIAotICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewotICAgICAgICBtX3Nlc3Npb25JRCwKLSAgICAgICAg
Y29uZmlndXJhdGlvbigpLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpLAotICAgICAgICBjb25m
aWd1cmF0aW9uKCkuYWxsb3dzQ2VsbHVsYXJBY2Nlc3MoKSA/IEFsbG93c0NlbGx1bGFyQWNjZXNz
OjpZZXMgOiBBbGxvd3NDZWxsdWxhckFjY2Vzczo6Tm8sCi0gICAgICAgIGNvbmZpZ3VyYXRpb24o
KS5wcm94eUNvbmZpZ3VyYXRpb24oKSwKLSAgICAgICAgY29uZmlndXJhdGlvbigpLnNvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpLAotICAgICAgICBjb25maWd1cmF0aW9uKCkuc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCksCi0gICAgICAgIHNob3VsZExvZ0Nv
b2tpZUluZm9ybWF0aW9uLAotICAgICAgICBTZWNvbmRzIHsgW2RlZmF1bHRzIGludGVnZXJGb3JL
ZXk6V2ViS2l0TmV0d29ya0xvYWRUaHJvdHRsZUxhdGVuY3lNaWxsaXNlY29uZHNEZWZhdWx0c0tl
eV0gLyAxMDAwLiB9LAotICAgICAgICBXVEZNb3ZlKGh0dHBQcm94eSksCi0gICAgICAgIFdURk1v
dmUoaHR0cHNQcm94eSksCisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
cHJveHlDb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbigpLnByb3h5Q29uZmlndXJhdGlvbigp
OworICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciA9IGNvbmZpZ3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIoKTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCku
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVycy5u
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24gPSBzaG91
bGRMb2dDb29raWVJbmZvcm1hdGlvbjsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycy5sb2FkVGhyb3R0bGVMYXRlbmN5ID0gU2Vjb25kcyB7IFtkZWZhdWx0cyBpbnRlZ2Vy
Rm9yS2V5OldlYktpdE5ldHdvcmtMb2FkVGhyb3R0bGVMYXRlbmN5TWlsbGlzZWNvbmRzRGVmYXVs
dHNLZXldIC8gMTAwMC4gfTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5odHRwUHJveHkgPSBXVEZNb3ZlKGh0dHBQcm94eSk7CisgICAgcGFyYW1ldGVycy5uZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnMuaHR0cHNQcm94eSA9IFdURk1vdmUoaHR0cHNQcm94eSk7CiAjaWYg
SEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKLSAgICAgICAgV1RGTW92ZShhbHRl
cm5hdGl2ZVNlcnZpY2VTdG9yYWdlRGlyZWN0b3J5KSwKLSAgICAgICAgV1RGTW92ZShhbHRlcm5h
dGl2ZVNlcnZpY2VTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKLSAgICAgICAgV1RG
TW92ZShodHRwM0VuYWJsZWQpLAorICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeSA9IFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2
aWNlU3RvcmFnZURpcmVjdG9yeSk7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92
ZShhbHRlcm5hdGl2ZVNlcnZpY2VTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAg
ICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5odHRwM0VuYWJsZWQgPSBXVEZN
b3ZlKGh0dHAzRW5hYmxlZCk7CiAjZW5kaWYKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT5kZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpLAotICAgICAgICBtX2NvbmZpZ3VyYXRp
b24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rp
bmcoKSwKLSAgICAgICAgV1RGTW92ZShuZXR3b3JrQ2FjaGVEaXJlY3RvcnkpLAotICAgICAgICBX
VEZNb3ZlKG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCi0gICAgICAgIG1f
Y29uZmlndXJhdGlvbi0+ZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSgpLAotICAgICAgICBtX2Nv
bmZpZ3VyYXRpb24tPmZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkKCksCi0gICAgICAg
IG1fY29uZmlndXJhdGlvbi0+bmV0d29ya0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxl
ZCgpLAotICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnRlc3RpbmdTZXNzaW9uRW5hYmxlZCgpLAot
ICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnN0YWxlV2hpbGVSZXZhbGlkYXRlRW5hYmxlZCgpLAot
ICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnRlc3RTcGVlZE11bHRpcGxpZXIoKSwKLSAgICAgICAg
bV9jb25maWd1cmF0aW9uLT5zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1D
aGFuZ2UoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0
KCksCi0gICAgICAgIGlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQsCi0gICAgICAgIFdURk1v
dmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMpCi0gICAgfTsKKyAgICBwYXJhbWV0
ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5pc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVk
ID0gaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZDsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5zaG91bGRJ
bmNsdWRlTG9jYWxob3N0ID0gc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3Rh
dGlzdGljczsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVEZWJ1Z01vZGUgPSBlbmFibGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOworICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25Q
YXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRFbmFibGVkID0gc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ7Cisg
ICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgPSBmaXJzdFBh
cnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5tYW51YWxQcmV2YWxl
bnRSZXNvdXJjZSA9IFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVu
dFJlc291cmNlKTsKKworICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50
aWZpZXIgPSBtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwogCiAgICAgYXV0byBj
b29raWVGaWxlID0gcmVzb2x2ZWRDb29raWVTdG9yYWdlRmlsZSgpOwogCkBAIC0yMzIsNDAgKzE5
Myw4IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFt
ZXRlcnMoKQogICAgICAgICBtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyID0gaWRl
bnRpZnlpbmdEYXRhRnJvbUNvb2tpZVN0b3JhZ2UobV9jZkNvb2tpZVN0b3JhZ2UuZ2V0KCkpOwog
ICAgIH0KIAotICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIg
PSBtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwotICAgIHBhcmFtZXRlcnMubmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9
IGNvbmZpZ3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKLSAg
ICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zb3VyY2VBcHBsaWNhdGlvblNl
Y29uZGFyeUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCkuc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyKCk7Ci0KLSAgICBwYXJhbWV0ZXJzLnBlbmRpbmdDb29raWVzID0gY29w
eVRvVmVjdG9yKG1fcGVuZGluZ0Nvb2tpZXMpOwotCiAgICAgaWYgKCFjb29raWVGaWxlLmlzRW1w
dHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRl
RGlyZWN0b3J5KEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoY29va2llRmlsZSksIHBhcmFtZXRl
cnMuY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGUpOwotCi0jaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCi0gICAgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkgPSBy
ZXNvbHZlZEluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSgpOwotICAgIGlmICghcGFyYW1ldGVycy5p
bmRleGVkRGF0YWJhc2VEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5pbmRleGVk
RGF0YWJhc2VEaXJlY3RvcnksIHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAg
IHBhcmFtZXRlcnMuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSA9IHJlc29sdmVk
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpOwotICAgIGlmICghcGFyYW1ldGVy
cy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFt
ZXRlcnMuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSwgcGFyYW1ldGVycy5zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBwYXJh
bWV0ZXJzLnNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgPSBtX2Nv
bmZpZ3VyYXRpb24tPnNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQo
KTsKLSNlbmRpZgotCi0gICAgcGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSByZXNv
bHZlZExvY2FsU3RvcmFnZURpcmVjdG9yeSgpOwotICAgIGlmICghcGFyYW1ldGVycy5sb2NhbFN0
b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJl
Y3RvcnksIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsK
LQotICAgIHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gY2FjaGVTdG9yYWdlRGly
ZWN0b3J5KCk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLmNhY2hlU3RvcmFnZURpcmVjdG9yeS5pc0Vt
cHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0
ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmNhY2hlU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5j
YWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCi0gICAgcGFyYW1ldGVycy5w
ZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsKLSAgICBwYXJh
bWV0ZXJzLnBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJUaGlyZFBhcnR5T3Jp
Z2luU3RvcmFnZVF1b3RhKCk7Ci0KLSAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIAogYm9vbCBX
ZWJzaXRlRGF0YVN0b3JlOjpodHRwM0VuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBlZGU2
NzI5ZWI1YzkwYmIzZjExNDMyZmQyZmU0ZWRkYjQ0MGFhYWY1Li4xMWI2MTg3YzU0NGY2Y2NkMjEw
NWI0ZTYxOWI1Y2MzMTU3NTE1YTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjE3MCwyNSArMjE3
MCw2NyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENhY2hlTW9kZWxTeW5jaHJvbm91c2x5
Rm9yVGVzdGluZyhDYWNoZU1vZGVsIGNhY2hlTW9kZQogICAgICAgICBwcm9jZXNzUG9vbC0+c2V0
Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKGNhY2hlTW9kZWwpOwogfQogCi0jaWYg
IVBMQVRGT1JNKENPQ09BKQogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFT
dG9yZTo6cGFyYW1ldGVycygpCiB7CiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFy
YW1ldGVyczsKLSAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNzaW9u
SUQgPSBtX3Nlc3Npb25JRDsKIAogICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7
CiAKLSAgICBhdXRvIGxvY2FsU3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVkTG9jYWxTdG9yYWdl
RGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFsb2NhbFN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gbG9jYWxTdG9yYWdl
RGlyZWN0b3J5OwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFk
V3JpdGVEaXJlY3RvcnkobG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmxvY2FsU3Rv
cmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgfQorICAgIHBhcmFtZXRlcnMucGVu
ZGluZ0Nvb2tpZXMgPSBwZW5kaW5nQ29va2llcygpOwogCi0gICAgYXV0byBjYWNoZVN0b3JhZ2VE
aXJlY3RvcnkgPSB0aGlzLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWNhY2hl
U3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpIHsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNhY2hlU3RvcmFnZURpcmVjdG9yeSwg
cGFyYW1ldGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotICAgICAg
ICBwYXJhbWV0ZXJzLmNhY2hlU3RvcmFnZURpcmVjdG9yeSA9IGNhY2hlU3RvcmFnZURpcmVjdG9y
eTsKLSAgICB9CisgICAgYXV0byByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gbV9j
b25maWd1cmF0aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7CisgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlIYW5k
bGU7CisgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LmlzRW1wdHkoKSkK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0
b3J5KHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnlIYW5kbGUpOworCisgICAgYXV0byBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBy
ZXNvbHZlZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpOworICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFuZXR3
b3JrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkobmV0d29ya0NhY2hlRGlyZWN0b3J5LCBu
ZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisgICAgYm9vbCBzaG91bGRJ
bmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gZmFsc2U7CisgICAgYm9v
bCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlID0gZmFsc2U7CisgICAgYXV0
byBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IFdlYkNvcmU6OkZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlOjpBbGxCdXRDb29raWVzOworICAgIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJj
ZSB7IH07CisKKyAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzUGFyYW1ldGVycyA9IHsKKyAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5KSwKKyAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGlyZWN0b3J5SGFuZGxlKSwKKyAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoKSwKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgICAgICBpc0l0
cFN0YXRlRXhwbGljaXRseVNldCgpLAorICAgICAgICBoYXNTdGF0aXN0aWNzVGVzdGluZ0NhbGxi
YWNrKCksCisjZWxzZQorICAgICAgICBmYWxzZSwKKyAgICAgICAgZmFsc2UsCisjZW5kaWYKKyAg
ICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKKyAg
ICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKKyNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgICAgICB0aGlyZFBhcnR5Q29va2llQmxvY2tp
bmdNb2RlKCksCisjZW5kaWYKKyAgICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1v
ZGUsCisgICAgICAgIFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVu
dFJlc291cmNlKSwKKyAgICB9OworCisgICAgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRl
cnMgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25JRDsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
Ym91bmRJbnRlcmZhY2VJZGVudGlmaWVyID0gY29uZmlndXJhdGlvbigpLmJvdW5kSW50ZXJmYWNl
SWRlbnRpZmllcigpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NDZWxsdWxh
ckFjY2VzcyA9IGNvbmZpZ3VyYXRpb24oKS5hbGxvd3NDZWxsdWxhckFjY2VzcygpID8gQWxsb3dz
Q2VsbHVsYXJBY2Nlc3M6OlllcyA6IEFsbG93c0NlbGx1bGFyQWNjZXNzOjpObzsKKyAgICBuZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQg
PSBtX2NvbmZpZ3VyYXRpb24tPmRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCk7
CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFu
YWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgPSBtX2NvbmZpZ3VyYXRpb24tPmFsbExvYWRz
QmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKTsKKyAgICBu
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMubmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gV1RGTW92ZShu
ZXR3b3JrQ2FjaGVEaXJlY3RvcnkpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5uZXR3
b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKG5ldHdvcmtDYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmRh
dGFDb25uZWN0aW9uU2VydmljZVR5cGUgPSBtX2NvbmZpZ3VyYXRpb24tPmRhdGFDb25uZWN0aW9u
U2VydmljZVR5cGUoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuZmFzdFNlcnZlclRy
dXN0RXZhbHVhdGlvbkVuYWJsZWQgPSBtX2NvbmZpZ3VyYXRpb24tPmZhc3RTZXJ2ZXJUcnVzdEV2
YWx1YXRpb25FbmFibGVkKCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLm5ldHdvcmtD
YWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQgPSBtX2NvbmZpZ3VyYXRpb24tPm5ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQoKTsKKyAgICBuZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uID0gbV9jb25maWd1cmF0
aW9uLT50ZXN0aW5nU2Vzc2lvbkVuYWJsZWQoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMuc3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVkID0gbV9jb25maWd1cmF0aW9uLT5zdGFsZVdo
aWxlUmV2YWxpZGF0ZUVuYWJsZWQoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMudGVz
dFNwZWVkTXVsdGlwbGllciA9IG1fY29uZmlndXJhdGlvbi0+dGVzdFNwZWVkTXVsdGlwbGllcigp
OworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1p
bmF0aW9uT25TeXN0ZW1DaGFuZ2UgPSBtX2NvbmZpZ3VyYXRpb24tPnN1cHByZXNzZXNDb25uZWN0
aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZSgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycy5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0ID0gbV9jb25maWd1cmF0aW9uLT5hbGxvd3NTZXJ2
ZXJQcmVjb25uZWN0KCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9h
ZFN0YXRpc3RpY3NQYXJhbWV0ZXJzID0gV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycyk7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSBXVEZN
b3ZlKG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKICAgICBwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSA9IHJlc29sdmVk
SW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KCk7CkBAIC0yMjAwLDE3ICsyMjQyLDI4IEBAIFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAg
IHBhcmFtZXRlcnMuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSA9IHJlc29sdmVk
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpOwogICAgIGlmICghcGFyYW1ldGVy
cy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFt
ZXRlcnMuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSwgcGFyYW1ldGVycy5zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBwYXJh
bWV0ZXJzLnNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgPSBtX2Nv
bmZpZ3VyYXRpb24tPnNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQo
KTsKICNlbmRpZgogCisgICAgYXV0byBsb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSByZXNvbHZlZExv
Y2FsU3RvcmFnZURpcmVjdG9yeSgpOworICAgIGlmICghbG9jYWxTdG9yYWdlRGlyZWN0b3J5Lmlz
RW1wdHkoKSkgeworICAgICAgICBwYXJhbWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSA9IGxv
Y2FsU3RvcmFnZURpcmVjdG9yeTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGxvY2FsU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVy
cy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgIH0KKworICAgIGF1
dG8gY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7
CisgICAgaWYgKCFjYWNoZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKSB7CisgICAgICAgIHBh
cmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gY2FjaGVTdG9yYWdlRGlyZWN0b3J5Owor
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3Rv
cnkoY2FjaGVTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmNhY2hlU3RvcmFnZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSk7CisgICAgfQorCiAgICAgcGFyYW1ldGVycy5wZXJPcmlnaW5TdG9y
YWdlUXVvdGEgPSBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsKICAgICBwYXJhbWV0ZXJzLnBlclRo
aXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJUaGlyZFBhcnR5T3JpZ2luU3RvcmFnZVF1
b3RhKCk7Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMubmV0d29ya0Nh
Y2hlRGlyZWN0b3J5ID0gcmVzb2x2ZWROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsKIAogICAgIHBs
YXRmb3JtU2V0TmV0d29ya1BhcmFtZXRlcnMocGFyYW1ldGVycyk7CiAKICAgICByZXR1cm4gcGFy
YW1ldGVyczsKIH0KLSNlbmRpZgogCiAjaWYgSEFWRShTRUNfS0VZX1BST1hZKQogdm9pZCBXZWJz
aXRlRGF0YVN0b3JlOjphZGRTZWNLZXlQcm94eVN0b3JlKFJlZjxTZWNLZXlQcm94eVN0b3JlPiYm
IHN0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDhkZWQ5NzhjZTFmNjE5OTBiMGExY2FkMGI2NmE5NjA5
OWQxYWY4YWQuLjU1NWQzNTYwZTU1NDRlZGY1ZTA4ZmNmNzllMmIyNzRlMDcwOWEwZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKQEAgLTMwMSw5ICszMDEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1E
ZXN0cm95KCk7CiAgICAgc3RhdGljIHZvaWQgcGxhdGZvcm1SZW1vdmVSZWNlbnRTZWFyY2hlcyhX
YWxsVGltZSk7CiAKLSNpZiBVU0UoQ1VSTCkgfHwgVVNFKFNPVVApCiAgICAgdm9pZCBwbGF0Zm9y
bVNldE5ldHdvcmtQYXJhbWV0ZXJzKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJik7Ci0jZW5k
aWYKIAogICAgIFdlYnNpdGVEYXRhU3RvcmUoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395013</attachid>
            <date>2020-03-30 21:09:32 -0700</date>
            <delta_ts>2020-03-30 22:51:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209644-20200331130930.patch</filename>
            <type>text/plain</type>
            <size>17986</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5Mjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4MzBlODNjN2Q3NTY1ZTU5
ZGM3MDZmNzVjMWNiYmFkMmNiZjNlMDQuLmE5NmUwMjRmM2RjYjQ4NjVmMGU5MjIyYTg2NTU1YjZk
MDU1ZmRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDMtMzAgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgRGVkdXBsaWNhdGUg
V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpIG9mIENvY29hIHBvcnQgYW5kIG5vbi1Db2Nv
YSBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDk2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aW5DYWlybyBXVFIgd2FzIGZhaWxpbmcgYW4gYXNzZXJ0aW9uIGVuc3VyaW5nCisgICAgICAgIFJl
c291cmNlTG9hZFN0YXRpc3RpY3Mgd2FzIGVuYWJsZWQgaW4KKyAgICAgICAgTmV0d29ya1Nlc3Np
b246OnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgd2hpbGUgcnVubmluZworICAgICAg
ICBMYXlvdXRUZXN0cyB3aXRoIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBiZWN1YXNlCisgICAg
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHdhcyBub3Qgc2V0IGluCisgICAg
ICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIwMjAtMDMt
MzAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwZXJp
bWVudGFsOiBFbmZvcmNlIFNhbWVTaXRlPXN0cmljdCBmb3IgZG9tYWlucyBjbGFzc2lmaWVkIGFz
IGJvdW5jZSB0cmFja2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4
IDk2ZmY0NGM1M2Y3NjFiZTRhZjkzOWQyNjI0ZWJkZTBkYmUwMTI0NmMuLmExYTg0YjU5ZjRiN2Rl
MGVlMmRlZjFjOTlkZTRjYTJkZTRjNjljZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q29jb2EubW0KQEAgLTkwLDEyICs5MCwxMCBAQCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlIFdlYnNpdGVEYXRhU3RvcmU6OnRoaXJkUGFydHlDb29raWVCbG9ja2luZwogfQog
I2VuZGlmCiAKLVdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBh
cmFtZXRlcnMoKQordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybVNldE5ldHdvcmtQYXJh
bWV0ZXJzKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIEFT
U0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nv
b2tpZXMpKTsKIAotICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7Ci0KICAgICBO
U1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVm
YXVsdHNdOwogICAgIGJvb2wgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24gPSBmYWxzZTsKICAg
ICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPSBmYWxzZTsKQEAg
LTE1NCwxNiArMTUyLDYgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFT
dG9yZTo6cGFyYW1ldGVycygpCiAgICAgaWYgKCFodHRwc1Byb3h5LmlzVmFsaWQoKSAmJiAoaXNT
YWZhcmkgfHwgaXNNaW5pQnJvd3NlcikpCiAgICAgICAgIGh0dHBzUHJveHkgPSBVUkwoVVJMKCks
IFtkZWZhdWx0cyBzdHJpbmdGb3JLZXk6KE5TU3RyaW5nICopV2ViS2l0MkhUVFBTUHJveHlEZWZh
dWx0c0tleV0pOwogCi0gICAgYXV0byByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0g
bV9jb25maWd1cmF0aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7Ci0gICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlI
YW5kbGU7Ci0gICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LmlzRW1wdHko
KSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGly
ZWN0b3J5KHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3RvcnlIYW5kbGUpOwotCi0gICAgYXV0byBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnkg
PSByZXNvbHZlZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpOwotICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFu
ZXR3b3JrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkobmV0d29ya0NhY2hlRGlyZWN0b3J5
LCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCiAjaWYgSEFWRShDRk5F
VFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKICAgICBTdHJpbmcgYWx0ZXJuYXRpdmVTZXJ2aWNl
U3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVkQWx0ZXJuYXRpdmVTZXJ2aWNlc1N0b3JhZ2VEaXJl
Y3RvcnkoKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgYWx0ZXJuYXRpdmVTZXJ2aWNl
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKQEAgLTE3NSw1MyArMTYzLDI2IEBAIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQog
ICAgIGJvb2wgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9
IGlzU2FmYXJpOwogICAgIGJvb2wgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCA9IFtkZWZh
dWx0cyBib29sRm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiV2ViS2l0RGVidWcl
QCIsIFdlYlByZWZlcmVuY2VzS2V5Ojppc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkS2V5KCku
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV1dOwogICAgIAotICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzIHBhcmFtZXRlcnM7Ci0KLSAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
cyByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyB7Ci0gICAgICAgIFdURk1vdmUocmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSksCi0gICAgICAgIFdURk1vdmUocmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeUhhbmRsZSksCi0gICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKCksCi0gICAgICAgIGlzSXRwU3RhdGVFeHBsaWNpdGx5U2V0KCksCi0gICAg
ICAgIGhhc1N0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2soKSwKLSAgICAgICAgc2hvdWxkSW5jbHVk
ZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKLSAgICAgICAgZW5hYmxlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKLSAgICAgICAgdGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZSgpLAotICAgICAgICBzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwKLSAg
ICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsCi0gICAgICAgIFdURk1vdmUo
cmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlKSwKLSAgICB9Owot
ICAgIAotICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewotICAgICAgICBtX3Nlc3Npb25JRCwKLSAgICAgICAg
Y29uZmlndXJhdGlvbigpLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpLAotICAgICAgICBjb25m
aWd1cmF0aW9uKCkuYWxsb3dzQ2VsbHVsYXJBY2Nlc3MoKSA/IEFsbG93c0NlbGx1bGFyQWNjZXNz
OjpZZXMgOiBBbGxvd3NDZWxsdWxhckFjY2Vzczo6Tm8sCi0gICAgICAgIGNvbmZpZ3VyYXRpb24o
KS5wcm94eUNvbmZpZ3VyYXRpb24oKSwKLSAgICAgICAgY29uZmlndXJhdGlvbigpLnNvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpLAotICAgICAgICBjb25maWd1cmF0aW9uKCkuc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCksCi0gICAgICAgIHNob3VsZExvZ0Nv
b2tpZUluZm9ybWF0aW9uLAotICAgICAgICBTZWNvbmRzIHsgW2RlZmF1bHRzIGludGVnZXJGb3JL
ZXk6V2ViS2l0TmV0d29ya0xvYWRUaHJvdHRsZUxhdGVuY3lNaWxsaXNlY29uZHNEZWZhdWx0c0tl
eV0gLyAxMDAwLiB9LAotICAgICAgICBXVEZNb3ZlKGh0dHBQcm94eSksCi0gICAgICAgIFdURk1v
dmUoaHR0cHNQcm94eSksCisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
cHJveHlDb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbigpLnByb3h5Q29uZmlndXJhdGlvbigp
OworICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciA9IGNvbmZpZ3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIoKTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCku
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVycy5u
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24gPSBzaG91
bGRMb2dDb29raWVJbmZvcm1hdGlvbjsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycy5sb2FkVGhyb3R0bGVMYXRlbmN5ID0gU2Vjb25kcyB7IFtkZWZhdWx0cyBpbnRlZ2Vy
Rm9yS2V5OldlYktpdE5ldHdvcmtMb2FkVGhyb3R0bGVMYXRlbmN5TWlsbGlzZWNvbmRzRGVmYXVs
dHNLZXldIC8gMTAwMC4gfTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5odHRwUHJveHkgPSBXVEZNb3ZlKGh0dHBQcm94eSk7CisgICAgcGFyYW1ldGVycy5uZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnMuaHR0cHNQcm94eSA9IFdURk1vdmUoaHR0cHNQcm94eSk7CiAjaWYg
SEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKLSAgICAgICAgV1RGTW92ZShhbHRl
cm5hdGl2ZVNlcnZpY2VTdG9yYWdlRGlyZWN0b3J5KSwKLSAgICAgICAgV1RGTW92ZShhbHRlcm5h
dGl2ZVNlcnZpY2VTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKLSAgICAgICAgV1RG
TW92ZShodHRwM0VuYWJsZWQpLAorICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeSA9IFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2
aWNlU3RvcmFnZURpcmVjdG9yeSk7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92
ZShhbHRlcm5hdGl2ZVNlcnZpY2VTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAg
ICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5odHRwM0VuYWJsZWQgPSBXVEZN
b3ZlKGh0dHAzRW5hYmxlZCk7CiAjZW5kaWYKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT5kZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpLAotICAgICAgICBtX2NvbmZpZ3VyYXRp
b24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rp
bmcoKSwKLSAgICAgICAgV1RGTW92ZShuZXR3b3JrQ2FjaGVEaXJlY3RvcnkpLAotICAgICAgICBX
VEZNb3ZlKG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCi0gICAgICAgIG1f
Y29uZmlndXJhdGlvbi0+ZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSgpLAotICAgICAgICBtX2Nv
bmZpZ3VyYXRpb24tPmZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkKCksCi0gICAgICAg
IG1fY29uZmlndXJhdGlvbi0+bmV0d29ya0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxl
ZCgpLAotICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnRlc3RpbmdTZXNzaW9uRW5hYmxlZCgpLAot
ICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnN0YWxlV2hpbGVSZXZhbGlkYXRlRW5hYmxlZCgpLAot
ICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnRlc3RTcGVlZE11bHRpcGxpZXIoKSwKLSAgICAgICAg
bV9jb25maWd1cmF0aW9uLT5zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1D
aGFuZ2UoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0
KCksCi0gICAgICAgIGlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQsCi0gICAgICAgIFdURk1v
dmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMpCi0gICAgfTsKKyAgICBwYXJhbWV0
ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5pc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVk
ID0gaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZDsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5zaG91bGRJ
bmNsdWRlTG9jYWxob3N0ID0gc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3Rh
dGlzdGljczsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVEZWJ1Z01vZGUgPSBlbmFibGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOworICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25Q
YXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRFbmFibGVkID0gc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ7Cisg
ICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgPSBmaXJzdFBh
cnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5tYW51YWxQcmV2YWxl
bnRSZXNvdXJjZSA9IFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVu
dFJlc291cmNlKTsKKworICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50
aWZpZXIgPSBtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwogCiAgICAgYXV0byBj
b29raWVGaWxlID0gcmVzb2x2ZWRDb29raWVTdG9yYWdlRmlsZSgpOwogCkBAIC0yMzIsNDAgKzE5
Myw4IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFt
ZXRlcnMoKQogICAgICAgICBtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyID0gaWRl
bnRpZnlpbmdEYXRhRnJvbUNvb2tpZVN0b3JhZ2UobV9jZkNvb2tpZVN0b3JhZ2UuZ2V0KCkpOwog
ICAgIH0KIAotICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIg
PSBtX3VpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwotICAgIHBhcmFtZXRlcnMubmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciA9
IGNvbmZpZ3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKLSAg
ICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zb3VyY2VBcHBsaWNhdGlvblNl
Y29uZGFyeUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCkuc291cmNlQXBwbGljYXRpb25TZWNv
bmRhcnlJZGVudGlmaWVyKCk7Ci0KLSAgICBwYXJhbWV0ZXJzLnBlbmRpbmdDb29raWVzID0gY29w
eVRvVmVjdG9yKG1fcGVuZGluZ0Nvb2tpZXMpOwotCiAgICAgaWYgKCFjb29raWVGaWxlLmlzRW1w
dHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRl
RGlyZWN0b3J5KEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoY29va2llRmlsZSksIHBhcmFtZXRl
cnMuY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGUpOwotCi0jaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCi0gICAgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkgPSBy
ZXNvbHZlZEluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSgpOwotICAgIGlmICghcGFyYW1ldGVycy5p
bmRleGVkRGF0YWJhc2VEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5pbmRleGVk
RGF0YWJhc2VEaXJlY3RvcnksIHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAg
IHBhcmFtZXRlcnMuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSA9IHJlc29sdmVk
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSgpOwotICAgIGlmICghcGFyYW1ldGVy
cy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFt
ZXRlcnMuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSwgcGFyYW1ldGVycy5zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBwYXJh
bWV0ZXJzLnNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgPSBtX2Nv
bmZpZ3VyYXRpb24tPnNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQo
KTsKLSNlbmRpZgotCi0gICAgcGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSByZXNv
bHZlZExvY2FsU3RvcmFnZURpcmVjdG9yeSgpOwotICAgIGlmICghcGFyYW1ldGVycy5sb2NhbFN0
b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJl
Y3RvcnksIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsK
LQotICAgIHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gY2FjaGVTdG9yYWdlRGly
ZWN0b3J5KCk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLmNhY2hlU3RvcmFnZURpcmVjdG9yeS5pc0Vt
cHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0
ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmNhY2hlU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5j
YWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCi0gICAgcGFyYW1ldGVycy5w
ZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsKLSAgICBwYXJh
bWV0ZXJzLnBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJUaGlyZFBhcnR5T3Jp
Z2luU3RvcmFnZVF1b3RhKCk7Ci0KLSAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIAogYm9vbCBX
ZWJzaXRlRGF0YVN0b3JlOjpodHRwM0VuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBlZGU2
NzI5ZWI1YzkwYmIzZjExNDMyZmQyZmU0ZWRkYjQ0MGFhYWY1Li5iZTVmMTdmZjAzYmFjYzFlMjUy
MmVlMDNmODZmZGRmNDc2N2EyNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjE3MCwyNSArMjE3
MCw2OCBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldENhY2hlTW9kZWxTeW5jaHJvbm91c2x5
Rm9yVGVzdGluZyhDYWNoZU1vZGVsIGNhY2hlTW9kZQogICAgICAgICBwcm9jZXNzUG9vbC0+c2V0
Q2FjaGVNb2RlbFN5bmNocm9ub3VzbHlGb3JUZXN0aW5nKGNhY2hlTW9kZWwpOwogfQogCi0jaWYg
IVBMQVRGT1JNKENPQ09BKQogV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFT
dG9yZTo6cGFyYW1ldGVycygpCiB7CiAgICAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFy
YW1ldGVyczsKLSAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNzaW9u
SUQgPSBtX3Nlc3Npb25JRDsKIAogICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7
CiAKLSAgICBhdXRvIGxvY2FsU3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVkTG9jYWxTdG9yYWdl
RGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFsb2NhbFN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gbG9jYWxTdG9yYWdl
RGlyZWN0b3J5OwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFk
V3JpdGVEaXJlY3RvcnkobG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmxvY2FsU3Rv
cmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgfQorICAgIHBhcmFtZXRlcnMucGVu
ZGluZ0Nvb2tpZXMgPSBwZW5kaW5nQ29va2llcygpOwogCi0gICAgYXV0byBjYWNoZVN0b3JhZ2VE
aXJlY3RvcnkgPSB0aGlzLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsKLSAgICBpZiAoIWNhY2hl
U3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpIHsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGNhY2hlU3RvcmFnZURpcmVjdG9yeSwg
cGFyYW1ldGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotICAgICAg
ICBwYXJhbWV0ZXJzLmNhY2hlU3RvcmFnZURpcmVjdG9yeSA9IGNhY2hlU3RvcmFnZURpcmVjdG9y
eTsKLSAgICB9CisgICAgYXV0byByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gbV9j
b25maWd1cmF0aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7CisgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlIYW5k
bGU7CisgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LmlzRW1wdHkoKSkK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0
b3J5KHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnlIYW5kbGUpOworCisgICAgYXV0byBuZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBy
ZXNvbHZlZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpOworICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFuZXR3
b3JrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkobmV0d29ya0NhY2hlRGlyZWN0b3J5LCBu
ZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisgICAgYm9vbCBzaG91bGRJ
bmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gZmFsc2U7CisgICAgYm9v
bCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlID0gZmFsc2U7CisgICAgYXV0
byBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IFdlYkNvcmU6OkZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlOjpBbGxCdXRDb29raWVzOworICAgIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJj
ZSB7IH07CisKKyAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzUGFyYW1ldGVycyA9IHsKKyAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5KSwKKyAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGlyZWN0b3J5SGFuZGxlKSwKKyAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoKSwKKyNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgICAgICBpc0l0
cFN0YXRlRXhwbGljaXRseVNldCgpLAorICAgICAgICBoYXNTdGF0aXN0aWNzVGVzdGluZ0NhbGxi
YWNrKCksCisjZWxzZQorICAgICAgICBmYWxzZSwKKyAgICAgICAgZmFsc2UsCisjZW5kaWYKKyAg
ICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKKyAg
ICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKKyNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQorICAgICAgICB0aGlyZFBhcnR5Q29va2llQmxvY2tp
bmdNb2RlKCksCisgICAgICAgIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFi
bGVkOjpObywKKyNlbmRpZgorICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9k
ZSwKKyAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50
UmVzb3VyY2UpLAorICAgIH07CisKKyAgICBOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cyBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnM7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJz
LnNlc3Npb25JRCA9IG1fc2Vzc2lvbklEOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5i
b3VuZEludGVyZmFjZUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCkuYm91bmRJbnRlcmZhY2VJ
ZGVudGlmaWVyKCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsbG93c0NlbGx1bGFy
QWNjZXNzID0gY29uZmlndXJhdGlvbigpLmFsbG93c0NlbGx1bGFyQWNjZXNzKCkgPyBBbGxvd3ND
ZWxsdWxhckFjY2Vzczo6WWVzIDogQWxsb3dzQ2VsbHVsYXJBY2Nlc3M6Ok5vOworICAgIG5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVycy5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCA9
IG1fY29uZmlndXJhdGlvbi0+ZGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQoKTsK
KyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuYWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5h
Z2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyA9IG1fY29uZmlndXJhdGlvbi0+YWxsTG9hZHNC
bG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZygpOworICAgIG5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBXVEZNb3ZlKG5l
dHdvcmtDYWNoZURpcmVjdG9yeSk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLm5ldHdv
cmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobmV0d29ya0NhY2hlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuZGF0
YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSA9IG1fY29uZmlndXJhdGlvbi0+ZGF0YUNvbm5lY3Rpb25T
ZXJ2aWNlVHlwZSgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5mYXN0U2VydmVyVHJ1
c3RFdmFsdWF0aW9uRW5hYmxlZCA9IG1fY29uZmlndXJhdGlvbi0+ZmFzdFNlcnZlclRydXN0RXZh
bHVhdGlvbkVuYWJsZWQoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMubmV0d29ya0Nh
Y2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCA9IG1fY29uZmlndXJhdGlvbi0+bmV0d29y
a0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCgpOworICAgIG5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24gPSBtX2NvbmZpZ3VyYXRp
b24tPnRlc3RpbmdTZXNzaW9uRW5hYmxlZCgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5zdGFsZVdoaWxlUmV2YWxpZGF0ZUVuYWJsZWQgPSBtX2NvbmZpZ3VyYXRpb24tPnN0YWxlV2hp
bGVSZXZhbGlkYXRlRW5hYmxlZCgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy50ZXN0
U3BlZWRNdWx0aXBsaWVyID0gbV9jb25maWd1cmF0aW9uLT50ZXN0U3BlZWRNdWx0aXBsaWVyKCk7
CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnN1cHByZXNzZXNDb25uZWN0aW9uVGVybWlu
YXRpb25PblN5c3RlbUNoYW5nZSA9IG1fY29uZmlndXJhdGlvbi0+c3VwcHJlc3Nlc0Nvbm5lY3Rp
b25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlKCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLmFsbG93c1NlcnZlclByZWNvbm5lY3QgPSBtX2NvbmZpZ3VyYXRpb24tPmFsbG93c1NlcnZl
clByZWNvbm5lY3QoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhcmFtZXRlcnMgPSBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJh
bWV0ZXJzKTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyA9IFdURk1v
dmUobmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQogICAgIHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5ID0gcmVzb2x2ZWRJ
bmRleGVkRGF0YWJhc2VEaXJlY3RvcnkoKTsKQEAgLTIyMDAsMTcgKzIyNDMsMjggQEAgV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAg
cGFyYW1ldGVycy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5ID0gcmVzb2x2ZWRT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCk7CiAgICAgaWYgKCFwYXJhbWV0ZXJz
LnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkuaXNFbXB0eSgpKQogICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1l
dGVycy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLnNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgIHBhcmFt
ZXRlcnMuc2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCA9IG1fY29u
ZmlndXJhdGlvbi0+c2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCgp
OwogI2VuZGlmCiAKKyAgICBhdXRvIGxvY2FsU3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVkTG9j
YWxTdG9yYWdlRGlyZWN0b3J5KCk7CisgICAgaWYgKCFsb2NhbFN0b3JhZ2VEaXJlY3RvcnkuaXNF
bXB0eSgpKSB7CisgICAgICAgIHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gbG9j
YWxTdG9yYWdlRGlyZWN0b3J5OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkobG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJz
LmxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgfQorCisgICAgYXV0
byBjYWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSB0aGlzLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsK
KyAgICBpZiAoIWNhY2hlU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpIHsKKyAgICAgICAgcGFy
YW1ldGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSBjYWNoZVN0b3JhZ2VEaXJlY3Rvcnk7Cisg
ICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9y
eShjYWNoZVN0b3JhZ2VEaXJlY3RvcnksIHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICB9CisKICAgICBwYXJhbWV0ZXJzLnBlck9yaWdpblN0b3Jh
Z2VRdW90YSA9IHBlck9yaWdpblN0b3JhZ2VRdW90YSgpOwogICAgIHBhcmFtZXRlcnMucGVyVGhp
cmRQYXJ0eU9yaWdpblN0b3JhZ2VRdW90YSA9IHBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVv
dGEoKTsKLSAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5uZXR3b3JrQ2Fj
aGVEaXJlY3RvcnkgPSByZXNvbHZlZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpOwogCiAgICAgcGxh
dGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTsKIAogICAgIHJldHVybiBwYXJh
bWV0ZXJzOwogfQotI2VuZGlmCiAKICNpZiBIQVZFKFNFQ19LRVlfUFJPWFkpCiB2b2lkIFdlYnNp
dGVEYXRhU3RvcmU6OmFkZFNlY0tleVByb3h5U3RvcmUoUmVmPFNlY0tleVByb3h5U3RvcmU+JiYg
c3RvcmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggOGRlZDk3OGNlMWY2MTk5MGIwYTFjYWQwYjY2YTk2MDk5
ZDFhZjhhZC4uNTU1ZDM1NjBlNTU0NGVkZjVlMDhmY2Y3OWUyYjI3NGUwNzA5YTBkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaApAQCAtMzAxLDkgKzMwMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybURl
c3Ryb3koKTsKICAgICBzdGF0aWMgdm9pZCBwbGF0Zm9ybVJlbW92ZVJlY2VudFNlYXJjaGVzKFdh
bGxUaW1lKTsKIAotI2lmIFVTRShDVVJMKSB8fCBVU0UoU09VUCkKICAgICB2b2lkIHBsYXRmb3Jt
U2V0TmV0d29ya1BhcmFtZXRlcnMoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmKTsKLSNlbmRp
ZgogCiAgICAgV2Vic2l0ZURhdGFTdG9yZSgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395017</attachid>
            <date>2020-03-30 22:51:26 -0700</date>
            <delta_ts>2020-03-31 17:05:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209644-20200331145125.patch</filename>
            <type>text/plain</type>
            <size>17792</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5Mjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4MzBlODNjN2Q3NTY1ZTU5
ZGM3MDZmNzVjMWNiYmFkMmNiZjNlMDQuLmE5NmUwMjRmM2RjYjQ4NjVmMGU5MjIyYTg2NTU1YjZk
MDU1ZmRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDMtMzAgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgRGVkdXBsaWNhdGUg
V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpIG9mIENvY29hIHBvcnQgYW5kIG5vbi1Db2Nv
YSBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDk2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
aW5DYWlybyBXVFIgd2FzIGZhaWxpbmcgYW4gYXNzZXJ0aW9uIGVuc3VyaW5nCisgICAgICAgIFJl
c291cmNlTG9hZFN0YXRpc3RpY3Mgd2FzIGVuYWJsZWQgaW4KKyAgICAgICAgTmV0d29ya1Nlc3Np
b246OnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgd2hpbGUgcnVubmluZworICAgICAg
ICBMYXlvdXRUZXN0cyB3aXRoIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBiZWN1YXNlCisgICAg
ICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHdhcyBub3Qgc2V0IGluCisgICAg
ICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIwMjAtMDMt
MzAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwZXJp
bWVudGFsOiBFbmZvcmNlIFNhbWVTaXRlPXN0cmljdCBmb3IgZG9tYWlucyBjbGFzc2lmaWVkIGFz
IGJvdW5jZSB0cmFja2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4
IDk2ZmY0NGM1M2Y3NjFiZTRhZjkzOWQyNjI0ZWJkZTBkYmUwMTI0NmMuLjI2OTJhNDY4ZDMzOWZi
ZGQ4NzAxMTZmNjE3ODQ4NDU3ZTA2YTE0NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q29jb2EubW0KQEAgLTkwLDEyICs5MCwxMCBAQCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmdNb2RlIFdlYnNpdGVEYXRhU3RvcmU6OnRoaXJkUGFydHlDb29raWVCbG9ja2luZwogfQog
I2VuZGlmCiAKLVdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBh
cmFtZXRlcnMoKQordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9ybVNldE5ldHdvcmtQYXJh
bWV0ZXJzKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIEFT
U0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nv
b2tpZXMpKTsKIAotICAgIHJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7Ci0KICAgICBO
U1VzZXJEZWZhdWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVm
YXVsdHNdOwogICAgIGJvb2wgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24gPSBmYWxzZTsKICAg
ICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPSBmYWxzZTsKQEAg
LTE1NCwxNiArMTUyLDYgQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFT
dG9yZTo6cGFyYW1ldGVycygpCiAgICAgaWYgKCFodHRwc1Byb3h5LmlzVmFsaWQoKSAmJiAoaXNT
YWZhcmkgfHwgaXNNaW5pQnJvd3NlcikpCiAgICAgICAgIGh0dHBzUHJveHkgPSBVUkwoVVJMKCks
IFtkZWZhdWx0cyBzdHJpbmdGb3JLZXk6KE5TU3RyaW5nICopV2ViS2l0MkhUVFBTUHJveHlEZWZh
dWx0c0tleV0pOwogCi0gICAgYXV0byByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0g
bV9jb25maWd1cmF0aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7Ci0gICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlI
YW5kbGU7Ci0gICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LmlzRW1wdHko
KSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGly
ZWN0b3J5KHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnksIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NEaXJlY3RvcnlIYW5kbGUpOwotCi0gICAgYXV0byBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnkg
PSByZXNvbHZlZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpOwotICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFu
ZXR3b3JrQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkobmV0d29ya0NhY2hlRGlyZWN0b3J5
LCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCiAjaWYgSEFWRShDRk5F
VFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKICAgICBTdHJpbmcgYWx0ZXJuYXRpdmVTZXJ2aWNl
U3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVkQWx0ZXJuYXRpdmVTZXJ2aWNlc1N0b3JhZ2VEaXJl
Y3RvcnkoKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgYWx0ZXJuYXRpdmVTZXJ2aWNl
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKQEAgLTE3NSw1MyArMTYzLDI0IEBAIFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQog
ICAgIGJvb2wgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9
IGlzU2FmYXJpOwogICAgIGJvb2wgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCA9IFtkZWZh
dWx0cyBib29sRm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiV2ViS2l0RGVidWcl
QCIsIFdlYlByZWZlcmVuY2VzS2V5Ojppc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkS2V5KCku
Y3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKV1dOwogICAgIAotICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzIHBhcmFtZXRlcnM7Ci0KLSAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
cyByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyB7Ci0gICAgICAgIFdURk1vdmUocmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSksCi0gICAgICAgIFdURk1vdmUocmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeUhhbmRsZSksCi0gICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKCksCi0gICAgICAgIGlzSXRwU3RhdGVFeHBsaWNpdGx5U2V0KCksCi0gICAg
ICAgIGhhc1N0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2soKSwKLSAgICAgICAgc2hvdWxkSW5jbHVk
ZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKLSAgICAgICAgZW5hYmxlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKLSAgICAgICAgdGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZSgpLAotICAgICAgICBzYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwKLSAg
ICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsCi0gICAgICAgIFdURk1vdmUo
cmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlKSwKLSAgICB9Owot
ICAgIAotICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gTmV0d29ya1Nl
c3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewotICAgICAgICBtX3Nlc3Npb25JRCwKLSAgICAgICAg
Y29uZmlndXJhdGlvbigpLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpLAotICAgICAgICBjb25m
aWd1cmF0aW9uKCkuYWxsb3dzQ2VsbHVsYXJBY2Nlc3MoKSA/IEFsbG93c0NlbGx1bGFyQWNjZXNz
OjpZZXMgOiBBbGxvd3NDZWxsdWxhckFjY2Vzczo6Tm8sCi0gICAgICAgIGNvbmZpZ3VyYXRpb24o
KS5wcm94eUNvbmZpZ3VyYXRpb24oKSwKLSAgICAgICAgY29uZmlndXJhdGlvbigpLnNvdXJjZUFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpLAotICAgICAgICBjb25maWd1cmF0aW9uKCkuc291
cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCksCi0gICAgICAgIHNob3VsZExvZ0Nv
b2tpZUluZm9ybWF0aW9uLAotICAgICAgICBTZWNvbmRzIHsgW2RlZmF1bHRzIGludGVnZXJGb3JL
ZXk6V2ViS2l0TmV0d29ya0xvYWRUaHJvdHRsZUxhdGVuY3lNaWxsaXNlY29uZHNEZWZhdWx0c0tl
eV0gLyAxMDAwLiB9LAotICAgICAgICBXVEZNb3ZlKGh0dHBQcm94eSksCi0gICAgICAgIFdURk1v
dmUoaHR0cHNQcm94eSksCisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
cHJveHlDb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvbigpLnByb3h5Q29uZmlndXJhdGlvbigp
OworICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNvdXJjZUFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciA9IGNvbmZpZ3VyYXRpb24oKS5zb3VyY2VBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIoKTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5zb3VyY2VBcHBsaWNhdGlvblNlY29uZGFyeUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCku
c291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyKCk7CisgICAgcGFyYW1ldGVycy5u
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24gPSBzaG91
bGRMb2dDb29raWVJbmZvcm1hdGlvbjsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycy5sb2FkVGhyb3R0bGVMYXRlbmN5ID0gU2Vjb25kcyB7IFtkZWZhdWx0cyBpbnRlZ2Vy
Rm9yS2V5OldlYktpdE5ldHdvcmtMb2FkVGhyb3R0bGVMYXRlbmN5TWlsbGlzZWNvbmRzRGVmYXVs
dHNLZXldIC8gMTAwMC4gfTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cy5odHRwUHJveHkgPSBXVEZNb3ZlKGh0dHBQcm94eSk7CisgICAgcGFyYW1ldGVycy5uZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnMuaHR0cHNQcm94eSA9IFdURk1vdmUoaHR0cHNQcm94eSk7CiAjaWYg
SEFWRShDRk5FVFdPUktfQUxURVJOQVRJVkVfU0VSVklDRSkKLSAgICAgICAgV1RGTW92ZShhbHRl
cm5hdGl2ZVNlcnZpY2VTdG9yYWdlRGlyZWN0b3J5KSwKLSAgICAgICAgV1RGTW92ZShhbHRlcm5h
dGl2ZVNlcnZpY2VTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKLSAgICAgICAgV1RG
TW92ZShodHRwM0VuYWJsZWQpLAorICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeSA9IFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2
aWNlU3RvcmFnZURpcmVjdG9yeSk7CisgICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92
ZShhbHRlcm5hdGl2ZVNlcnZpY2VTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAg
ICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5odHRwM0VuYWJsZWQgPSBXVEZN
b3ZlKGh0dHAzRW5hYmxlZCk7CiAjZW5kaWYKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT5kZXZp
Y2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpLAotICAgICAgICBtX2NvbmZpZ3VyYXRp
b24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3Rp
bmcoKSwKLSAgICAgICAgV1RGTW92ZShuZXR3b3JrQ2FjaGVEaXJlY3RvcnkpLAotICAgICAgICBX
VEZNb3ZlKG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCi0gICAgICAgIG1f
Y29uZmlndXJhdGlvbi0+ZGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZSgpLAotICAgICAgICBtX2Nv
bmZpZ3VyYXRpb24tPmZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkKCksCi0gICAgICAg
IG1fY29uZmlndXJhdGlvbi0+bmV0d29ya0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxl
ZCgpLAotICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnRlc3RpbmdTZXNzaW9uRW5hYmxlZCgpLAot
ICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnN0YWxlV2hpbGVSZXZhbGlkYXRlRW5hYmxlZCgpLAot
ICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnRlc3RTcGVlZE11bHRpcGxpZXIoKSwKLSAgICAgICAg
bV9jb25maWd1cmF0aW9uLT5zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1D
aGFuZ2UoKSwKLSAgICAgICAgbV9jb25maWd1cmF0aW9uLT5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0
KCksCi0gICAgICAgIGlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQsCi0gICAgICAgIFdURk1v
dmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMpCi0gICAgfTsKKyAgICBwYXJhbWV0
ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5pc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVk
ID0gaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZDsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5zaG91bGRJ
bmNsdWRlTG9jYWxob3N0ID0gc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3Rh
dGlzdGljczsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVEZWJ1Z01vZGUgPSBlbmFibGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOworICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25Q
YXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRFbmFibGVkID0gc2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ7Cisg
ICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgPSBmaXJzdFBh
cnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKKyAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5tYW51YWxQcmV2YWxl
bnRSZXNvdXJjZSA9IFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVu
dFJlc291cmNlKTsKIAogICAgIGF1dG8gY29va2llRmlsZSA9IHJlc29sdmVkQ29va2llU3RvcmFn
ZUZpbGUoKTsKIApAQCAtMjMzLDM5ICsxOTIsOSBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyBXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKCkKICAgICB9CiAKICAgICBwYXJhbWV0ZXJz
LnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyID0gbV91aVByb2Nlc3NDb29raWVTdG9y
YWdlSWRlbnRpZmllcjsKLSAgICBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5z
b3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBjb25maWd1cmF0aW9uKCkuc291cmNl
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7Ci0gICAgcGFyYW1ldGVycy5uZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMuc291cmNlQXBwbGljYXRpb25TZWNvbmRhcnlJZGVudGlmaWVyID0gY29u
ZmlndXJhdGlvbigpLnNvdXJjZUFwcGxpY2F0aW9uU2Vjb25kYXJ5SWRlbnRpZmllcigpOwotCi0g
ICAgcGFyYW1ldGVycy5wZW5kaW5nQ29va2llcyA9IGNvcHlUb1ZlY3RvcihtX3BlbmRpbmdDb29r
aWVzKTsKIAogICAgIGlmICghY29va2llRmlsZS5pc0VtcHR5KCkpCiAgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShGaWxlU3lzdGVtOjpk
aXJlY3RvcnlOYW1lKGNvb2tpZUZpbGUpLCBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0
ZW5zaW9uSGFuZGxlKTsKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIHBhcmFt
ZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5ID0gcmVzb2x2ZWRJbmRleGVkRGF0YWJhc2VE
aXJlY3RvcnkoKTsKLSAgICBpZiAoIXBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5
LmlzRW1wdHkoKSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVh
ZFdyaXRlRGlyZWN0b3J5KHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5LCBwYXJh
bWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0jZW5kaWYK
LQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBwYXJhbWV0ZXJzLnNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgPSByZXNvbHZlZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EaXJlY3RvcnkoKTsKLSAgICBpZiAoIXBhcmFtZXRlcnMuc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLnNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EaXJlY3RvcnksIHBhcmFtZXRlcnMuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgcGFyYW1ldGVycy5zZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkID0gbV9jb25maWd1cmF0aW9uLT5zZXJ2aWNlV29y
a2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkKCk7Ci0jZW5kaWYKLQotICAgIHBhcmFt
ZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gcmVzb2x2ZWRMb2NhbFN0b3JhZ2VEaXJlY3Rv
cnkoKTsKLSAgICBpZiAoIXBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHko
KSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGly
ZWN0b3J5KHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5LCBwYXJhbWV0ZXJzLmxvY2Fs
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAgICBwYXJhbWV0ZXJzLmNhY2hl
U3RvcmFnZURpcmVjdG9yeSA9IGNhY2hlU3RvcmFnZURpcmVjdG9yeSgpOwotICAgIGlmICghcGFy
YW1ldGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkocGFyYW1ldGVycy5j
YWNoZVN0b3JhZ2VEaXJlY3RvcnksIHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKLQotICAgIHBhcmFtZXRlcnMucGVyT3JpZ2luU3RvcmFnZVF1b3RhID0g
cGVyT3JpZ2luU3RvcmFnZVF1b3RhKCk7Ci0gICAgcGFyYW1ldGVycy5wZXJUaGlyZFBhcnR5T3Jp
Z2luU3RvcmFnZVF1b3RhID0gcGVyVGhpcmRQYXJ0eU9yaWdpblN0b3JhZ2VRdW90YSgpOwotCi0g
ICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9CiAKIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6aHR0cDNF
bmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZWRlNjcyOWViNWM5MGJiM2YxMTQzMmZkMmZl
NGVkZGI0NDBhYWFmNS4uYmU1ZjE3ZmYwM2JhY2MxZTI1MjJlZTAzZjg2ZmRkZjQ3NjdhMjc4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKQEAgLTIxNzAsMjUgKzIxNzAsNjggQEAgdm9pZCBXZWJzaXRlRGF0
YVN0b3JlOjpzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoQ2FjaGVNb2RlbCBj
YWNoZU1vZGUKICAgICAgICAgcHJvY2Vzc1Bvb2wtPnNldENhY2hlTW9kZWxTeW5jaHJvbm91c2x5
Rm9yVGVzdGluZyhjYWNoZU1vZGVsKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKIFdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogewog
ICAgIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7Ci0gICAgcGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2Vzc2lvbklEID0gbV9zZXNzaW9uSUQ7CiAKICAg
ICByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOwogCi0gICAgYXV0byBsb2NhbFN0b3Jh
Z2VEaXJlY3RvcnkgPSByZXNvbHZlZExvY2FsU3RvcmFnZURpcmVjdG9yeSgpOwotICAgIGlmICgh
bG9jYWxTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkgewotICAgICAgICBwYXJhbWV0ZXJzLmxv
Y2FsU3RvcmFnZURpcmVjdG9yeSA9IGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKLSAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KGxvY2FsU3Rv
cmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpOwotICAgIH0KKyAgICBwYXJhbWV0ZXJzLnBlbmRpbmdDb29raWVzID0gcGVuZGluZ0Nv
b2tpZXMoKTsKIAotICAgIGF1dG8gY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+Y2FjaGVT
dG9yYWdlRGlyZWN0b3J5KCk7Ci0gICAgaWYgKCFjYWNoZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0
ZURpcmVjdG9yeShjYWNoZVN0b3JhZ2VEaXJlY3RvcnksIHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICAgICAgcGFyYW1ldGVycy5jYWNoZVN0b3Jh
Z2VEaXJlY3RvcnkgPSBjYWNoZVN0b3JhZ2VEaXJlY3Rvcnk7Ci0gICAgfQorICAgIGF1dG8gcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IG1fY29uZmlndXJhdGlvbi0+cmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpOworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFuZGxlOworICAgIGlmICghcmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGlyZWN0b3J5LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFuZGxlKTsKKwor
ICAgIGF1dG8gbmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gcmVzb2x2ZWROZXR3b3JrQ2FjaGVEaXJl
Y3RvcnkoKTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbmV0d29ya0NhY2hlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghbmV0d29ya0NhY2hlRGlyZWN0b3J5LmlzRW1w
dHkoKSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRl
RGlyZWN0b3J5KG5ldHdvcmtDYWNoZURpcmVjdG9yeSwgbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKKworICAgIGJvb2wgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyA9IGZhbHNlOworICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZSA9IGZhbHNlOworICAgIGF1dG8gZmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGUgPSBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTo6
QWxsQnV0Q29va2llczsKKyAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9OworCisgICAgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMg
PSB7CisgICAgICAgIFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSksCisg
ICAgICAgIFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUhhbmRsZSksCisg
ICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCksCisjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKKyAgICAgICAgaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQoKSwK
KyAgICAgICAgaGFzU3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjaygpLAorI2Vsc2UKKyAgICAgICAg
ZmFsc2UsCisgICAgICAgIGZhbHNlLAorI2VuZGlmCisgICAgICAgIHNob3VsZEluY2x1ZGVMb2Nh
bGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MsCisgICAgICAgIGVuYWJsZVJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEZWJ1Z01vZGUsCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKKyAgICAgICAgdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSgpLAorICAgICAgICBXZWJD
b3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6Tm8sCisjZW5kaWYKKyAgICAg
ICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsCisgICAgICAgIFdURk1vdmUocmVz
b3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlKSwKKyAgICB9OworCisg
ICAgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgbmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNzaW9uSUQgPSBtX3Nlc3Npb25J
RDsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuYm91bmRJbnRlcmZhY2VJZGVudGlmaWVy
ID0gY29uZmlndXJhdGlvbigpLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpOworICAgIG5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NDZWxsdWxhckFjY2VzcyA9IGNvbmZpZ3VyYXRpb24o
KS5hbGxvd3NDZWxsdWxhckFjY2VzcygpID8gQWxsb3dzQ2VsbHVsYXJBY2Nlc3M6OlllcyA6IEFs
bG93c0NlbGx1bGFyQWNjZXNzOjpObzsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuZGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgPSBtX2NvbmZpZ3VyYXRpb24tPmRldmlj
ZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCk7CisgICAgbmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRl
c3RpbmcgPSBtX2NvbmZpZ3VyYXRpb24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMu
bmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gV1RGTW92ZShuZXR3b3JrQ2FjaGVEaXJlY3RvcnkpOwor
ICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5uZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUgPSBXVEZNb3ZlKG5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7
CisgICAgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmRhdGFDb25uZWN0aW9uU2VydmljZVR5cGUg
PSBtX2NvbmZpZ3VyYXRpb24tPmRhdGFDb25uZWN0aW9uU2VydmljZVR5cGUoKTsKKyAgICBuZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMuZmFzdFNlcnZlclRydXN0RXZhbHVhdGlvbkVuYWJsZWQgPSBt
X2NvbmZpZ3VyYXRpb24tPmZhc3RTZXJ2ZXJUcnVzdEV2YWx1YXRpb25FbmFibGVkKCk7CisgICAg
bmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLm5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlv
bkVuYWJsZWQgPSBtX2NvbmZpZ3VyYXRpb24tPm5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlVmFsaWRh
dGlvbkVuYWJsZWQoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc2hvdWxkVXNlVGVz
dGluZ05ldHdvcmtTZXNzaW9uID0gbV9jb25maWd1cmF0aW9uLT50ZXN0aW5nU2Vzc2lvbkVuYWJs
ZWQoKTsKKyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuc3RhbGVXaGlsZVJldmFsaWRhdGVF
bmFibGVkID0gbV9jb25maWd1cmF0aW9uLT5zdGFsZVdoaWxlUmV2YWxpZGF0ZUVuYWJsZWQoKTsK
KyAgICBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMudGVzdFNwZWVkTXVsdGlwbGllciA9IG1fY29u
ZmlndXJhdGlvbi0+dGVzdFNwZWVkTXVsdGlwbGllcigpOworICAgIG5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycy5zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgPSBt
X2NvbmZpZ3VyYXRpb24tPnN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5c3RlbUNo
YW5nZSgpOworICAgIG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbGxvd3NTZXJ2ZXJQcmVjb25u
ZWN0ID0gbV9jb25maWd1cmF0aW9uLT5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KCk7CisgICAgbmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzID0g
V1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyk7CisgICAgcGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMgPSBXVEZNb3ZlKG5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycyk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBwYXJhbWV0ZXJzLmlu
ZGV4ZWREYXRhYmFzZURpcmVjdG9yeSA9IHJlc29sdmVkSW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5
KCk7CkBAIC0yMjAwLDE3ICsyMjQzLDI4IEBAIFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzIFdl
YnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgIHBhcmFtZXRlcnMuc2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRpcmVjdG9yeSA9IHJlc29sdmVkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRpcmVjdG9yeSgpOwogICAgIGlmICghcGFyYW1ldGVycy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFtZXRlcnMuc2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRpcmVjdG9yeSwgcGFyYW1ldGVycy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBwYXJhbWV0ZXJzLnNlcnZpY2VXb3JrZXJQcm9j
ZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQgPSBtX2NvbmZpZ3VyYXRpb24tPnNlcnZpY2VXb3Jr
ZXJQcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQoKTsKICNlbmRpZgogCisgICAgYXV0byBs
b2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSByZXNvbHZlZExvY2FsU3RvcmFnZURpcmVjdG9yeSgpOwor
ICAgIGlmICghbG9jYWxTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkgeworICAgICAgICBwYXJh
bWV0ZXJzLmxvY2FsU3RvcmFnZURpcmVjdG9yeSA9IGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKKyAg
ICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5
KGxvY2FsU3RvcmFnZURpcmVjdG9yeSwgcGFyYW1ldGVycy5sb2NhbFN0b3JhZ2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGUpOworICAgIH0KKworICAgIGF1dG8gY2FjaGVTdG9yYWdlRGlyZWN0b3J5
ID0gdGhpcy0+Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7CisgICAgaWYgKCFjYWNoZVN0b3JhZ2VE
aXJlY3RvcnkuaXNFbXB0eSgpKSB7CisgICAgICAgIHBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGly
ZWN0b3J5ID0gY2FjaGVTdG9yYWdlRGlyZWN0b3J5OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY2FjaGVTdG9yYWdlRGlyZWN0b3J5
LCBwYXJhbWV0ZXJzLmNhY2hlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAg
fQorCiAgICAgcGFyYW1ldGVycy5wZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSBwZXJPcmlnaW5TdG9y
YWdlUXVvdGEoKTsKICAgICBwYXJhbWV0ZXJzLnBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVv
dGEgPSBwZXJUaGlyZFBhcnR5T3JpZ2luU3RvcmFnZVF1b3RhKCk7Ci0gICAgcGFyYW1ldGVycy5u
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMubmV0d29ya0NhY2hlRGlyZWN0b3J5ID0gcmVzb2x2ZWRO
ZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsKIAogICAgIHBsYXRmb3JtU2V0TmV0d29ya1BhcmFtZXRl
cnMocGFyYW1ldGVycyk7CiAKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KLSNlbmRpZgogCiAj
aWYgSEFWRShTRUNfS0VZX1BST1hZKQogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjphZGRTZWNLZXlQ
cm94eVN0b3JlKFJlZjxTZWNLZXlQcm94eVN0b3JlPiYmIHN0b3JlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4
IDhkZWQ5NzhjZTFmNjE5OTBiMGExY2FkMGI2NmE5NjA5OWQxYWY4YWQuLjU1NWQzNTYwZTU1NDRl
ZGY1ZTA4ZmNmNzllMmIyNzRlMDcwOWEwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTMwMSw5ICszMDEs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1EZXN0cm95KCk7CiAgICAgc3RhdGljIHZv
aWQgcGxhdGZvcm1SZW1vdmVSZWNlbnRTZWFyY2hlcyhXYWxsVGltZSk7CiAKLSNpZiBVU0UoQ1VS
TCkgfHwgVVNFKFNPVVApCiAgICAgdm9pZCBwbGF0Zm9ybVNldE5ldHdvcmtQYXJhbWV0ZXJzKFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJik7Ci0jZW5kaWYKIAogICAgIFdlYnNpdGVEYXRhU3Rv
cmUoKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>