<?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>185729</bug_id>
          
          <creation_ts>2018-05-17 07:54:28 -0700</creation_ts>
          <short_desc>The effect of writing-mode property remains after the property is removed (on the root element)</short_desc>
          <delta_ts>2022-11-05 05:25:25 -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>CSS</component>
          <version>Safari 11</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BrowserCompat, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="nanto_vi (TOYAMA Nao)">nanto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>karlcow</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>lmoura</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1424720</commentid>
    <comment_count>0</comment_count>
    <who name="nanto_vi (TOYAMA Nao)">nanto</who>
    <bug_when>2018-05-17 07:54:28 -0700</bug_when>
    <thetext>Visit https://jsfiddle.net/7zLr6vsn/ or

1. Set `writing-mode: vertical-rl;` to the root element.
2. Then, remove writing-mode property from the element.

Actual: The text of the document is laid out vertically.

Expected: The text of the document is laid out horizontally.

Chrome, Firefox, and Edge behave as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1884183</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-07-15 13:45:21 -0700</bug_when>
    <thetext>Safari 15.5+ continues to fail this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1884185</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-07-15 13:45:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/97091990&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1884518</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-07-15 20:44:13 -0700</bug_when>
    <thetext>document.documentElement.style.writingMode = &apos;&apos;; is indeed broken. it works as long as a non-empty, value value is set e.g. &quot;horizontal-tb&quot;.
We probably miss re-setting the computed value to the initial value, when &quot;&quot; is passed in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908905</commentid>
    <comment_count>4</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2022-10-27 20:36:46 -0700</bug_when>
    <thetext>*** Bug 247164 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908908</commentid>
    <comment_count>5</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2022-10-27 20:51:39 -0700</bug_when>
    <thetext>There&apos;s a test case attached to Bug 247164 
This is happening only on the html element. 
Can also be tested with 
   document.querySelector(&apos;html&apos;).style.writingMode = &apos;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908988</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-10-28 05:54:07 -0700</bug_when>
    <thetext>My guess is that there is a mistake in the logic in propagateWritingModeToRenderViewIfApplicable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908990</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-10-28 06:09:12 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; My guess is that there is a mistake in the logic in
&gt; propagateWritingModeToRenderViewIfApplicable
The last time I looked into this, the new style still had the old, incorrect (vertical, right-to-left) writing-mode value in styleDidChange. I think the bug is in the style system. Will take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1909110</commentid>
    <comment_count>8</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-10-28 16:58:26 -0700</bug_when>
    <thetext>This bug is not specific to writing-mode. Other properties fail too (e.g. &apos;direction&apos;). I am not a style expert but it looks like when the inline property is &quot;removed&quot; by setting the value to &quot;&quot;, we just take the parent&apos;s property value (see makeResolutionContext()&amp;friends). However in case of the document renderer, the parent&apos;s renderer style(m_document) has the invalid (old) value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1909112</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-10-28 17:11:53 -0700</bug_when>
    <thetext>So I guess we have to add code so if there’s no parent we fetch the initial value?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1909123</commentid>
    <comment_count>10</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-10-28 19:55:35 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; So I guess we have to add code so if there’s no parent we fetch the initial
&gt; value?
Yeah, something along those lines, unless Antti has a better idea (and he can correct me if I missed something).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1909522</commentid>
    <comment_count>11</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2022-11-01 02:13:26 -0700</bug_when>
    <thetext>Looking at the code (mostly for myself, but sharing in case it interests someone else)

https://searchfox.org/wubkat/rev/c4da39ca9400b440d2d14664731fe2b2ed4c45f4/Source/WebCore/style/StyleResolveForDocument.cpp#75-91

https://searchfox.org/wubkat/rev/c4da39ca9400b440d2d14664731fe2b2ed4c45f4/Source/WebCore/rendering/style/RenderStyle.cpp#197-198

https://searchfox.org/wubkat/rev/c4da39ca9400b440d2d14664731fe2b2ed4c45f4/Source/WebCore/style/MatchedDeclarationsCache.cpp#59-60

https://searchfox.org/wubkat/rev/c4da39ca9400b440d2d14664731fe2b2ed4c45f4/Source/WebCore/rendering/RenderBox.cpp#358-396</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1909523</commentid>
    <comment_count>12</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2022-11-01 02:22:57 -0700</bug_when>
    <thetext>The comment on 
https://searchfox.org/wubkat/rev/c4da39ca9400b440d2d14664731fe2b2ed4c45f4/Source/WebCore/style/MatchedDeclarationsCache.cpp#50-51



bool MatchedDeclarationsCache::isCacheable(const Element&amp; element, const RenderStyle&amp; style, const RenderStyle&amp; parentStyle)
{
    // FIXME: Writing mode and direction properties modify state when applying to document element by calling
    // Document::setWritingMode/DirectionSetOnDocumentElement. We can&apos;t skip the applying by caching.

// cut for Brevity
}


Refers to something which has been removed since.
https://github.com/WebKit/WebKit/commit/2d0180a9a3dee52363070c4cc1b8c46012774d59</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910044</commentid>
    <comment_count>13</comment_count>
      <attachid>463387</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-11-03 07:06:28 -0700</bug_when>
    <thetext>Created attachment 463387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910118</commentid>
    <comment_count>14</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2022-11-03 10:54:57 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #13)
&gt; Created attachment 463387 [details]
&gt; Patch

This patch crashes many layout tests in GTK (actually filling the bot with core dumps).

Here&apos;s the build: https://ews-build.webkit.org/#/builders/35/builds/30355

And here&apos;s the thread that crashed for compositing/page-cache-back-crash.html:

Thread 1 (Thread 0x7fededd0ef40 (LWP 8593)):
#0  0x00007fedf98f5bb0 in WebCore::RenderView::repaintRootContents() () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#1  0x00007fedf97a3b84 in WebCore::RenderBox::styleWillChange(WebCore::StyleDifference, WebCore::RenderStyle const&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#2  0x00007fedf97b88ff in WebCore::RenderElement::initializeStyle() () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#3  0x00007fedf9a2415e in WebCore::RenderTreeUpdater::createRenderer(WebCore::Element&amp;, WebCore::RenderStyle&amp;&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#4  0x00007fedf9a242f1 in WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&amp;, WebCore::Style::ElementUpdate const&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#5  0x00007fedf9a26459 in WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#6  0x00007fedf9a26e2b in WebCore::RenderTreeUpdater::commit(std::unique_ptr&lt;WebCore::Style::Update const, std::default_delete&lt;WebCore::Style::Update const&gt; &gt;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#7  0x00007fedf8b9efbf in WebCore::Document::updateRenderTree(std::unique_ptr&lt;WebCore::Style::Update const, std::default_delete&lt;WebCore::Style::Update const&gt; &gt;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#8  0x00007fedf8bbb7bc in WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#9  0x00007fedf8bbed5d in WebCore::Document::didBecomeCurrentDocumentInFrame() () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#10 0x00007fedf92d082c in WebCore::Frame::setDocument(WTF::RefPtr&lt;WebCore::Document, WTF::RawPtrTraits&lt;WebCore::Document&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::Document&gt; &gt;&amp;&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#11 0x00007fedf91b901b in WebCore::FrameLoader::open(WebCore::CachedFrameBase&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#12 0x00007fedf8dc15a8 in WebCore::CachedPage::restore(WebCore::Page&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#13 0x00007fedf91be36e in WebCore::FrameLoader::commitProvisionalLoad() () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#14 0x00007fedf91bf4a9 in WebCore::FrameLoader::continueLoadAfterNavigationPolicy(WebCore::ResourceRequest const&amp;, WebCore::FormState*, WebCore::NavigationPolicyDecision, WebCore::AllowNavigationToInvalidURL) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#15 0x00007fedf91c6c83 in WTF::Detail::CallableWrapper&lt;WebCore::FrameLoader::loadWithDocumentLoader(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::RefPtr&lt;WebCore::FormState, WTF::RawPtrTraits&lt;WebCore::FormState&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::FormState&gt; &gt;&amp;&amp;, WebCore::AllowNavigationToInvalidURL, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)::{lambda(WebCore::ResourceRequest const&amp;, WTF::WeakPtr&lt;WebCore::FormState, WTF::DefaultWeakPtrImpl&gt;&amp;&amp;, WebCore::NavigationPolicyDecision)#2}, void, WebCore::ResourceRequest&amp;&amp;, WTF::WeakPtr&lt;WebCore::FormState, WTF::DefaultWeakPtrImpl&gt;&amp;&amp;, WebCore::NavigationPolicyDecision&gt;::call(WebCore::ResourceRequest&amp;&amp;, WTF::WeakPtr&lt;WebCore::FormState, WTF::DefaultWeakPtrImpl&gt;&amp;&amp;, WebCore::NavigationPolicyDecision) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#16 0x00007fedf91e201a in WebCore::FrameLoader::PolicyChecker::checkNavigationPolicy(WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse const&amp;, WebCore::DocumentLoader*, WTF::RefPtr&lt;WebCore::FormState, WTF::RawPtrTraits&lt;WebCore::FormState&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::FormState&gt; &gt;&amp;&amp;, WTF::CompletionHandler&lt;void (WebCore::ResourceRequest&amp;&amp;, WTF::WeakPtr&lt;WebCore::FormState, WTF::DefaultWeakPtrImpl&gt;&amp;&amp;, WebCore::NavigationPolicyDecision)&gt;&amp;&amp;, WebCore::PolicyDecisionMode)::{lambda(WebCore::PolicyAction, WebCore::ProcessQualified&lt;WTF::ObjectIdentifier&lt;WebCore::LocalPolicyCheckIdentifierType&gt; &gt;)#1}::operator()(WebCore::PolicyAction, WebCore::ProcessQualified&lt;WTF::ObjectIdentifier&lt;WebCore::LocalPolicyCheckIdentifierType&gt; &gt;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#17 0x00007fedf7787584 in WebKit::WebFrame::didReceivePolicyDecision(unsigned long, WebKit::PolicyDecision&amp;&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#18 0x00007fedf70d5ffe in void IPC::handleMessage&lt;Messages::WebPage::DidReceivePolicyDecision, WebKit::WebPage, void (WebKit::WebPage::*)(WebCore::ProcessQualified&lt;WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt; &gt;, unsigned long, WebKit::PolicyDecision&amp;&amp;, WTF::Vector&lt;WebKit::SandboxExtension::Handle, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;)&gt;(IPC::Connection&amp;, IPC::Decoder&amp;, WebKit::WebPage*, void (WebKit::WebPage::*)(WebCore::ProcessQualified&lt;WTF::ObjectIdentifier&lt;WebCore::FrameIdentifierType&gt; &gt;, unsigned long, WebKit::PolicyDecision&amp;&amp;, WTF::Vector&lt;WebKit::SandboxExtension::Handle, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt; const&amp;)) [clone .isra.0] () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#19 0x00007fedf70da1d2 in WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&amp;, IPC::Decoder&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#20 0x00007fedf72dedb8 in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#21 0x00007fedf75cc5b6 in WebKit::WebProcess::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#22 0x00007fedf72d7e05 in IPC::Connection::dispatchMessage(std::unique_ptr&lt;IPC::Decoder, std::default_delete&lt;IPC::Decoder&gt; &gt;) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#23 0x00007fedf72d8ea1 in IPC::Connection::dispatchOneIncomingMessage() () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#24 0x00007fedf48c7c3a in WTF::RunLoop::performWork() () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.1.so.0
#25 0x00007fedf493f1e9 in WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.1.so.0
#26 0x00007fedf493fc6f in WTF::RunLoop::{lambda(_GSource*, int (*)(void*), void*)#1}::_FUN(_GSource*, int (*)(void*), void*) () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.1.so.0
#27 0x00007fedf092cc37 in g_main_dispatch (context=0x55b3d5579f80) at ../glib/gmain.c:3419
#28 g_main_context_dispatch (context=0x55b3d5579f80) at ../glib/gmain.c:4137
#29 0x00007fedf0983028 in g_main_context_iterate.constprop.0 (context=0x55b3d5579f80, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at ../glib/gmain.c:4213
#30 0x00007fedf092c2af in g_main_loop_run (loop=0x55b3d55a8400) at ../glib/gmain.c:4413
#31 0x00007fedf493fda0 in WTF::RunLoop::run() () at /app/webkit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.1.so.0
#32 0x00007fedf77ad3be in int WebKit::AuxiliaryProcessMain&lt;WebKit::WebProcessMainGtk&gt;(int, char**) () at /app/webkit/WebKitBuild/Release/lib/libwebkit2gtk-4.1.so.0
#33 0x00007fedf02c854a in __libc_start_call_main (main=main@entry=0x55b3d3578920 &lt;main&gt;, argc=argc@entry=4, argv=argv@entry=0x7ffc52a45768) at ../sysdeps/nptl/libc_start_call_main.h:58
#34 0x00007fedf02c860b in __libc_start_main_impl (main=0x55b3d3578920</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910318</commentid>
    <comment_count>15</comment_count>
      <attachid>463399</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-11-04 04:01:47 -0700</bug_when>
    <thetext>Created attachment 463399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910321</commentid>
    <comment_count>16</comment_count>
      <attachid>463400</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-11-04 05:20:12 -0700</bug_when>
    <thetext>Created attachment 463400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910353</commentid>
    <comment_count>17</comment_count>
      <attachid>463406</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-11-04 08:20:47 -0700</bug_when>
    <thetext>Created attachment 463406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910354</commentid>
    <comment_count>18</comment_count>
      <attachid>463406</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-11-04 08:30:43 -0700</bug_when>
    <thetext>Comment on attachment 463406
Patch

v.nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910361</commentid>
    <comment_count>19</comment_count>
      <attachid>463409</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-11-04 09:07:37 -0700</bug_when>
    <thetext>Created attachment 463409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910504</commentid>
    <comment_count>20</comment_count>
      <attachid>463418</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-11-05 00:48:33 -0700</bug_when>
    <thetext>Created attachment 463418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910505</commentid>
    <comment_count>21</comment_count>
      <attachid>463419</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-11-05 00:59:47 -0700</bug_when>
    <thetext>Created attachment 463419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910506</commentid>
    <comment_count>22</comment_count>
      <attachid>463420</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-11-05 02:30:33 -0700</bug_when>
    <thetext>Created attachment 463420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910513</commentid>
    <comment_count>23</comment_count>
      <attachid>463421</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-11-05 03:59:10 -0700</bug_when>
    <thetext>Created attachment 463421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1910516</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-11-05 05:25:20 -0700</bug_when>
    <thetext>Committed 256353@main (8e911dbafcc6): &lt;https://commits.webkit.org/256353@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 463421.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463387</attachid>
            <date>2022-11-03 07:06:28 -0700</date>
            <delta_ts>2022-11-04 04:01:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185729-20221103160626.patch</filename>
            <type>text/plain</type>
            <size>11327</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSBmYzRjNTBiZWUzN2JlNDBiNmNhMGNiYTcwZGZlMTBlMGQ1MTRjYTEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBUaHUsIDMgTm92IDIwMjIgMTY6MDA6MjggKzAyMDAKU3ViamVjdDogW1BBVENIXSBUaGUgZWZm
ZWN0IG9mIHdyaXRpbmctbW9kZSBwcm9wZXJ0eSByZW1haW5zIGFmdGVyIHRoZQogcHJvcGVydHkg
aXMgcmVtb3ZlZCAob24gdGhlIHJvb3QgZWxlbWVudCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU3MjkgcmRhcjovLzk3MDkxOTkwCgpSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KClRoZXJlIGlzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSB3aGVyZSB0aGUgcm9v
dCBzdHlsZSAoUmVuZGVyVmlldyBzdHlsZSkgZGVwZW5kcyBvbiA8aHRtbD4gYW5kIDxib2R5PiBz
dHlsZXMKYnV0IHRoZSByb290IHN0eWxlIGFsc28gaXMgdXNlZCBhcyBiYXNlIGZvciBjb21wdXRp
bmcgdGhvc2Ugc3R5bGVzLiBUaGlzIGNvbmZ1c2VzIHRoZSBzdHlsZSB1cGRhdGUgc3lzdGVtLgoK
VGhpcyBwYXRjaCBicmVha3MgdGhlIGRlcGVuZGVuY3kgYnkgbW92aW5nIHRoZSBhZGp1c3RtZW50
cyB0byB0aGUgUmVuZGVyVmlldyBzdHlsZSBiYXNlZCBvbiBvdGhlciBzdHlsZXMKIHRvIGhhcHBl
biBpbiBSZW5kZXJUcmVlVXBkYXRlci4gQW4gdW5tb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSByb290
IHN0eWxlIGlzIHNhdmVkIGluIERvY3VtZW50LgoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc29sdmVTdHlsZSk6CiogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50Lmg6CihXZWJDb3JlOjpEb2N1bWVudDo6cm9vdFN0eWxlIGNvbnN0KToK
KiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3Bw
OgooV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OmNvbW1pdCk6CihXZWJDb3JlOjpSZW5kZXJU
cmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVyVmlld1N0eWxlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHA6CihXZWJDb3JlOjpTdHlsZTo6cmVzb2x2ZUZv
ckRvY3VtZW50KToKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcDoKKFdl
YkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6U3RhdGU6OlN0YXRlKToKKFdlYkNvcmU6OlN0eWxlOjpS
ZXNvbHZlcjo6UmVzb2x2ZXIpOgooV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpzdHlsZUZvclBh
Z2UpOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKFdlYkNv
cmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OlBhcmVudDo6UGFyZW50KToKLS0tCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCAxMyArKysrLS0tCiBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgfCAgMiArKwogLi4uL3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgIHwgMzUgKysrKysrKysrKysrKysr
KysrKwogLi4uL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oICAgIHwgIDEg
KwogLi4uL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwIHwgMjAgKy0t
LS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwICAgICAgICB8
ICA2ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcCAgICB8
ICAyICstCiA3IGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQyZjFhM2U0ZTVjZS4uMTM2MDY1Mjg2Yzhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOTUsMTYgKzIwOTUsMTkgQEAgdm9pZCBE
b2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKICAgICAgICAgICAg
IG1faGFzTm9kZXNXaXRoTm9uRmluYWxTdHlsZSA9IGZhbHNlOwogICAgICAgICAgICAgbV9oYXNO
b2Rlc1dpdGhNaXNzaW5nU3R5bGUgPSBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBkb2N1bWVu
dFN0eWxlID0gU3R5bGU6OnJlc29sdmVGb3JEb2N1bWVudCgqdGhpcyk7CisgICAgICAgICAgICBh
dXRvIHJvb3RTdHlsZSA9IFN0eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQoKnRoaXMpOwogCiAgICAg
ICAgICAgICAvLyBJbnNlcnRpbmcgdGhlIHBpY3RvZ3JhcGggZm9udCBhdCB0aGUgZW5kIG9mIHRo
ZSBmb250IGZhbGxiYWNrIGxpc3QgaXMgZG9uZSBieSB0aGUKICAgICAgICAgICAgIC8vIGZvbnQg
c2VsZWN0b3IsIHNvIHNldCBhIGZvbnQgc2VsZWN0b3IgaWYgbmVlZGVkLgogICAgICAgICAgICAg
aWYgKHNldHRpbmdzKCkuZm9udEZhbGxiYWNrUHJlZmVyc1BpY3RvZ3JhcGhzKCkpCi0gICAgICAg
ICAgICAgICAgZG9jdW1lbnRTdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmZm9udFNlbGVjdG9y
KCkpOworICAgICAgICAgICAgICAgIHJvb3RTdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmZm9u
dFNlbGVjdG9yKCkpOwogCi0gICAgICAgICAgICBhdXRvIGRvY3VtZW50Q2hhbmdlID0gU3R5bGU6
OmRldGVybWluZUNoYW5nZShkb2N1bWVudFN0eWxlLCBtX3JlbmRlclZpZXctPnN0eWxlKCkpOwot
ICAgICAgICAgICAgaWYgKGRvY3VtZW50Q2hhbmdlICE9IFN0eWxlOjpDaGFuZ2U6Ok5vbmUpCi0g
ICAgICAgICAgICAgICAgcmVuZGVyVmlldygpLT5zZXRTdHlsZShXVEZNb3ZlKGRvY3VtZW50U3R5
bGUpKTsKKyAgICAgICAgICAgIGF1dG8gZG9jdW1lbnRDaGFuZ2UgPSBtX3Jvb3RTdHlsZSA/IFN0
eWxlOjpkZXRlcm1pbmVDaGFuZ2Uocm9vdFN0eWxlLCAqbV9yb290U3R5bGUpIDogU3R5bGU6OkNo
YW5nZTo6UmVuZGVyZXI7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnRDaGFuZ2UgIT0gU3R5bGU6
OkNoYW5nZTo6Tm9uZSkgeworICAgICAgICAgICAgICAgIG1fcm9vdFN0eWxlID0gUmVuZGVyU3R5
bGU6OmNsb25lUHRyKHJvb3RTdHlsZSk7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBtYXkgZW5k
IHVwIGRpZmZlcmluZyBmcm9tIG1fcm9vdFN0eWxlIGR1ZSB0byBhZGp1c3RtZW50cy4KKyAgICAg
ICAgICAgICAgICByZW5kZXJWaWV3KCktPnNldFN0eWxlKFdURk1vdmUocm9vdFN0eWxlKSk7Cisg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChSZWZQdHIgZG9jdW1lbnRFbGVtZW50ID0g
dGhpcy0+ZG9jdW1lbnRFbGVtZW50KCkpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnRFbGVtZW50
LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGQx
ODZhMmMxZGRkMy4uYmY3ZDg3YjBmMTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjY3LDYg
KzY2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN1c3BlbmRGb250TG9hZGluZygpOwogCiAgICAg
UmVuZGVyVmlldyogcmVuZGVyVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVmlldy5nZXQo
KTsgfQorICAgIGNvbnN0IFJlbmRlclN0eWxlKiByb290U3R5bGUoKSBjb25zdCB7IHJldHVybiBt
X3Jvb3RTdHlsZS5nZXQoKTsgfSAvLyBUaGlzIG1heSBlbmQgdXAgZGlmZmVyaW5nIGZyb20gcmVu
ZGVyVmlldygpLT5zdHlsZSgpIGR1ZSB0byBhZGp1c3RtZW50cy4KIAogICAgIGJvb2wgcmVuZGVy
VHJlZUJlaW5nRGVzdHJveWVkKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJUcmVlQmVpbmdEZXN0
cm95ZWQ7IH0KICAgICBib29sIGhhc0xpdmluZ1JlbmRlclRyZWUoKSBjb25zdCB7IHJldHVybiBy
ZW5kZXJWaWV3KCkgJiYgIXJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpOyB9CkBAIC0yMDA3LDYg
KzIwMDgsNyBAQCBwcml2YXRlOgogICAgIERvY3VtZW50Q2xhc3NlcyBtX2RvY3VtZW50Q2xhc3Nl
czsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJWaWV3PiBtX3JlbmRlclZpZXc7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBtX3Jvb3RTdHlsZTsKIAogICAgIFdlYWtIYXNoU2V0PE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcj4gbV9tZWRpYUNhblN0YXJ0TGlzdGVuZXJzOwogICAgIFdlYWtI
YXNoU2V0PERpc3BsYXlDaGFuZ2VkT2JzZXJ2ZXI+IG1fZGlzcGxheUNoYW5nZWRPYnNlcnZlcnM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmNwcAppbmRleCBiNDg2MTRiMjc0OTIuLmZmNGFiMjcyYTJjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0
ZXIuY3BwCkBAIC0xMTYsNiArMTE2LDggQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6Y29tbWl0
KHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZSkKIAogICAg
IG1fYnVpbGRlci51cGRhdGVBZnRlckRlc2NlbmRhbnRzKHJlbmRlclZpZXcoKSk7CiAKKyAgICB1
cGRhdGVSZW5kZXJWaWV3U3R5bGUoKTsKKwogICAgIG1fc3R5bGVVcGRhdGUgPSBudWxscHRyOwog
fQogCkBAIC01MTYsNiArNTE4LDM5IEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnN0b3JlUHJl
dmlvdXNSZW5kZXJlcihOb2RlJiBub2RlKQogICAgIHJlbmRlcmluZ1BhcmVudCgpLnByZXZpb3Vz
Q2hpbGRSZW5kZXJlciA9IHJlbmRlcmVyOwogfQogCit2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1
cGRhdGVSZW5kZXJWaWV3U3R5bGUoKQoreworICAgIGF1dG8qIGJvZHkgPSBtX2RvY3VtZW50LmJv
ZHlPckZyYW1lc2V0KCk7CisgICAgYXV0byogYm9keVN0eWxlID0gYm9keSA/IGJvZHktPnJlbmRl
ck9yRGlzcGxheUNvbnRlbnRzU3R5bGUoKSA6IG51bGxwdHI7CisgICAgYXV0byYgZG9jdW1lbnRF
bGVtZW50U3R5bGUgPSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJlcigpLT5z
dHlsZSgpOworCisgICAgYXV0byB3cml0aW5nTW9kZSA9IFsmXSB7CisgICAgICAgIGlmIChkb2N1
bWVudEVsZW1lbnRTdHlsZS5oYXNFeHBsaWNpdGx5U2V0V3JpdGluZ01vZGUoKSkKKyAgICAgICAg
ICAgIHJldHVybiBkb2N1bWVudEVsZW1lbnRTdHlsZS53cml0aW5nTW9kZSgpOworICAgICAgICBp
ZiAoYm9keVN0eWxlKQorICAgICAgICAgICAgcmV0dXJuIGJvZHlTdHlsZS0+d3JpdGluZ01vZGUo
KTsKKyAgICAgICAgcmV0dXJuIFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbTsKKyAgICB9KCk7CisK
KyAgICBhdXRvIGRpcmVjdGlvbiA9IFsmXSB7CisgICAgICAgIGlmIChkb2N1bWVudEVsZW1lbnRT
dHlsZS5oYXNFeHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gZG9j
dW1lbnRFbGVtZW50U3R5bGUuZGlyZWN0aW9uKCk7CisgICAgICAgIGlmIChib2R5U3R5bGUpCisg
ICAgICAgICAgICByZXR1cm4gYm9keVN0eWxlLT5kaXJlY3Rpb24oKTsKKyAgICAgICAgcmV0dXJu
IFRleHREaXJlY3Rpb246OkxUUjsKKyAgICB9KCk7CisKKyAgICBhdXRvJiB2aWV3U3R5bGUgPSBt
X2RvY3VtZW50LnJlbmRlclZpZXcoKS0+c3R5bGUoKTsKKyAgICBpZiAod3JpdGluZ01vZGUgPT0g
dmlld1N0eWxlLndyaXRpbmdNb2RlKCkgJiYgZGlyZWN0aW9uID09IHZpZXdTdHlsZS5kaXJlY3Rp
b24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklNWEU6IFJlbmRlcmluZyBzaG91bGQg
anVzdCByZWFkIHRoZSB2YWx1ZXMgZnJvbSB0aGUgY29ycmVjdCBwbGFjZSBpbnN0ZWFkIG9mIHJl
cXVpcmluZyBwdXNoaW5nIHRoZXNlIHRvIHRoZSBSZW5kZXJWaWV3IHN0eWxlLgorICAgIGF1dG8g
bmV3Vmlld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lKHZpZXdTdHlsZSk7CisgICAgbmV3Vmll
d1N0eWxlLnNldFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKKyAgICBuZXdWaWV3U3R5bGUuc2V0
RGlyZWN0aW9uKGRpcmVjdGlvbik7CisgICAgbV9kb2N1bWVudC5yZW5kZXJWaWV3KCktPnNldFN0
eWxlKFdURk1vdmUobmV3Vmlld1N0eWxlKSk7Cit9CisKIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6
OnRlYXJEb3duUmVuZGVyZXJzKEVsZW1lbnQmIHJvb3QpCiB7CiAgICAgYXV0byogdmlldyA9IHJv
b3QuZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oCmluZGV4IGFiY2M5ZjBlYzJkZi4u
YjU4MjRjMzBkODY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZVVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaApAQCAtNjEsNiArNjEsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgdXBkYXRlRWxlbWVudFJlbmRlcmVyKEVsZW1lbnQmLCBjb25zdCBTdHlsZTo6RWxlbWVu
dFVwZGF0ZSYpOwogICAgIHZvaWQgdXBkYXRlU1ZHUmVuZGVyZXIoRWxlbWVudCYpOwogICAgIHZv
aWQgdXBkYXRlUmVuZGVyZXJTdHlsZShSZW5kZXJFbGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgU3R5
bGVEaWZmZXJlbmNlKTsKKyAgICB2b2lkIHVwZGF0ZVJlbmRlclZpZXdTdHlsZSgpOwogICAgIHZv
aWQgY3JlYXRlUmVuZGVyZXIoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwogICAgIHZvaWQgdXBk
YXRlQmVmb3JlRGVzY2VuZGFudHMoRWxlbWVudCYsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRl
Kik7CiAgICAgdm9pZCB1cGRhdGVBZnRlckRlc2NlbmRhbnRzKEVsZW1lbnQmLCBjb25zdCBTdHls
ZTo6RWxlbWVudFVwZGF0ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNv
bHZlRm9yRG9jdW1lbnQuY3BwCmluZGV4IDFlYTVjYWFlODA1OS4uYTU0M2RhM2M2YmQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCkBA
IC03MSwyNSArNzEsNyBAQCBSZW5kZXJTdHlsZSByZXNvbHZlRm9yRG9jdW1lbnQoY29uc3QgRG9j
dW1lbnQmIGRvY3VtZW50KQogI2VuZGlmCiAKICAgICBBZGp1c3Rlcjo6YWRqdXN0RXZlbnRMaXN0
ZW5lclJlZ2lvblR5cGVzRm9yUm9vdFN0eWxlKGRvY3VtZW50U3R5bGUsIGRvY3VtZW50KTsKLQot
ICAgIEVsZW1lbnQqIGRvY0VsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKTsKLSAg
ICBSZW5kZXJPYmplY3QqIGRvY0VsZW1lbnRSZW5kZXJlciA9IGRvY0VsZW1lbnQgPyBkb2NFbGVt
ZW50LT5yZW5kZXJlcigpIDogbnVsbHB0cjsKLSAgICBpZiAoZG9jRWxlbWVudFJlbmRlcmVyKSB7
Ci0gICAgICAgIC8vIFVzZSB0aGUgZGlyZWN0aW9uIGFuZCB3cml0aW5nLW1vZGUgb2YgdGhlIGJv
ZHkgdG8gc2V0IHRoZQotICAgICAgICAvLyB2aWV3cG9ydCdzIGRpcmVjdGlvbiBhbmQgd3JpdGlu
Zy1tb2RlIHVubGVzcyB0aGUgcHJvcGVydHkgaXMgc2V0IG9uIHRoZSBkb2N1bWVudCBlbGVtZW50
LgotICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBib2R5LCB0aGVuIHVzZSB0aGUgZG9jdW1lbnQg
ZWxlbWVudC4KLSAgICAgICAgYXV0byogYm9keSA9IGRvY3VtZW50LmJvZHlPckZyYW1lc2V0KCk7
Ci0gICAgICAgIFJlbmRlck9iamVjdCogYm9keVJlbmRlcmVyID0gYm9keSA/IGJvZHktPnJlbmRl
cmVyKCkgOiBudWxscHRyOwotICAgICAgICBpZiAoYm9keVJlbmRlcmVyICYmICFkb2NFbGVtZW50
UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpCi0gICAgICAg
ICAgICBkb2N1bWVudFN0eWxlLnNldFdyaXRpbmdNb2RlKGJvZHlSZW5kZXJlci0+c3R5bGUoKS53
cml0aW5nTW9kZSgpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZG9jdW1lbnRTdHlsZS5z
ZXRXcml0aW5nTW9kZShkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkud3JpdGluZ01vZGUoKSk7
Ci0gICAgICAgIGlmIChib2R5UmVuZGVyZXIgJiYgIWRvY0VsZW1lbnRSZW5kZXJlci0+c3R5bGUo
KS5oYXNFeHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpCi0gICAgICAgICAgICBkb2N1bWVudFN0eWxl
LnNldERpcmVjdGlvbihib2R5UmVuZGVyZXItPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBkb2N1bWVudFN0eWxlLnNldERpcmVjdGlvbihkb2NFbGVtZW50
UmVuZGVyZXItPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwotICAgIH0KLQorICAgIAogICAgIGNvbnN0
IFBhZ2luYXRpb24mIHBhZ2luYXRpb24gPSByZW5kZXJWaWV3LmZyYW1lVmlldygpLnBhZ2luYXRp
b24oKTsKICAgICBpZiAocGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5hdGVk
KSB7CiAgICAgICAgIGRvY3VtZW50U3R5bGUuc2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRpb25N
b2RlKHBhZ2luYXRpb24ubW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3Bw
CmluZGV4IDIzMDM3YmI5NWE3MC4uOTMxZmZjZWY3ZDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVyLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICAgICAgYXV0
byYgZG9jdW1lbnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CiAgICAgICAgIGF1dG8qIGRvY3VtZW50
RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpOwogICAgICAgICBpZiAoIWRvY3Vt
ZW50RWxlbWVudCB8fCBkb2N1bWVudEVsZW1lbnQgPT0gJmVsZW1lbnQpCi0gICAgICAgICAgICBt
X3Jvb3RFbGVtZW50U3R5bGUgPSBkb2N1bWVudC5yZW5kZXJTdHlsZSgpOworICAgICAgICAgICAg
bV9yb290RWxlbWVudFN0eWxlID0gZG9jdW1lbnQucm9vdFN0eWxlKCk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIG1fcm9vdEVsZW1lbnRTdHlsZSA9IGRvY3VtZW50RWxlbWVudFN0eWxlID8g
ZG9jdW1lbnRFbGVtZW50U3R5bGUgOiBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CiAg
ICAgfQpAQCAtMTU5LDcgKzE1OSw3IEBAIFJlc29sdmVyOjpSZXNvbHZlcihEb2N1bWVudCYgZG9j
dW1lbnQpCiAgICAgICAgIG1fbWVkaWFRdWVyeUV2YWx1YXRvciA9IExlZ2FjeU1lZGlhUXVlcnlF
dmFsdWF0b3IgeyB9OwogCiAgICAgaWYgKGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IG1fZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50KCkpIHsKLSAgICAgICAgbV9yb290RGVmYXVsdFN0eWxlID0gc3R5
bGVGb3JFbGVtZW50KCpkb2N1bWVudEVsZW1lbnQsIHsgbV9kb2N1bWVudC5yZW5kZXJTdHlsZSgp
IH0sIFJ1bGVNYXRjaGluZ0JlaGF2aW9yOjpNYXRjaE9ubHlVc2VyQWdlbnRSdWxlcykucmVuZGVy
U3R5bGU7CisgICAgICAgIG1fcm9vdERlZmF1bHRTdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgqZG9j
dW1lbnRFbGVtZW50LCB7IG1fZG9jdW1lbnQucm9vdFN0eWxlKCkgfSwgUnVsZU1hdGNoaW5nQmVo
YXZpb3I6Ok1hdGNoT25seVVzZXJBZ2VudFJ1bGVzKS5yZW5kZXJTdHlsZTsKICAgICAgICAgLy8g
VHVybiBvZmYgYXNzZXJ0aW9uIGFnYWluc3QgZm9udCBsb29rdXBzIGR1cmluZyBzdHlsZSByZXNv
bHZlciBpbml0aWFsaXphdGlvbi4gV2UgbWF5IG5lZWQgcm9vdCBzdHlsZSBmb250IGZvciBtZWRp
YSBxdWVyaWVzLgogICAgICAgICBtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpLmluY3JlbWVudElz
Q29tcHV0aW5nUm9vdFN0eWxlRm9udCgpOwogICAgICAgICBtX3Jvb3REZWZhdWx0U3R5bGUtPmZv
bnRDYXNjYWRlKCkudXBkYXRlKCZtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpKTsKQEAgLTQ4MSw3
ICs0ODEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFJlc29sdmVyOjpzdHlsZUZv
clBhZ2UoaW50IHBhZ2VJbmRleCkKICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKICAgICAgICAg
cmV0dXJuIFJlbmRlclN0eWxlOjpjcmVhdGVQdHIoKTsKIAotICAgIGF1dG8gc3RhdGUgPSBTdGF0
ZSgqZG9jdW1lbnRFbGVtZW50LCBtX2RvY3VtZW50LnJlbmRlclN0eWxlKCkpOworICAgIGF1dG8g
c3RhdGUgPSBTdGF0ZSgqZG9jdW1lbnRFbGVtZW50LCBtX2RvY3VtZW50LnJvb3RTdHlsZSgpKTsK
IAogICAgIHN0YXRlLnNldFN0eWxlKFJlbmRlclN0eWxlOjpjcmVhdGVQdHIoKSk7CiAgICAgc3Rh
dGUuc3R5bGUoKS0+aW5oZXJpdEZyb20oKnN0YXRlLnJvb3RFbGVtZW50U3R5bGUoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggZjM0NmZkZjVkZTll
Li4zYzRmOWRmYmZhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJl
ZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZl
ci5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgVHJlZVJlc29sdmVyOjpTY29wZTo6flNjb3BlKCkKIAog
VHJlZVJlc29sdmVyOjpQYXJlbnQ6OlBhcmVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBl
bGVtZW50KG51bGxwdHIpCi0gICAgLCBzdHlsZSgqZG9jdW1lbnQucmVuZGVyU3R5bGUoKSkKKyAg
ICAsIHN0eWxlKCpkb2N1bWVudC5yb290U3R5bGUoKSkKIHsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463399</attachid>
            <date>2022-11-04 04:01:47 -0700</date>
            <delta_ts>2022-11-04 05:20:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185729-20221104130145.patch</filename>
            <type>text/plain</type>
            <size>27165</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSAxMTkwNThkYzJmMjU5MzZkM2M5OWRhYWI3ZTE2NmJhZWZlYzg2M2MxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBGcmksIDQgTm92IDIwMjIgMTM6MDA6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBUaGUgZWZm
ZWN0IG9mIHdyaXRpbmctbW9kZSBwcm9wZXJ0eSByZW1haW5zIGFmdGVyIHRoZQogcHJvcGVydHkg
aXMgcmVtb3ZlZCAob24gdGhlIHJvb3QgZWxlbWVudCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU3MjkgcmRhcjovLzk3MDkxOTkwCgpSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2Rl
LWJvZHktZXhwZWN0ZWQuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1v
ZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0
aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50
LWVsZW1lbnQuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcDoK
KFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnJvb3RTdHlsZSBjb25zdCk6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJCb3g6OnN0
eWxlRGlkQ2hhbmdlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6
CihXZWJDb3JlOjpSZW5kZXJWaWV3OjpzdHlsZURpZENoYW5nZSk6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OmNv
bW1pdCk6CihXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVyVmlld1N0eWxl
KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
aDoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKKFdlYkNvcmU6OlN0
eWxlOjpBZGp1c3Rlcjo6cHJvcGFnYXRlV3JpdGluZ01vZGVBbmREaXJlY3Rpb24pOgooV2ViQ29y
ZTo6U3R5bGU6OkFkanVzdGVyOjpyZW1vdmVJbXBsaWNpdFdyaXRpbmdNb2RlQW5kRGlyZWN0aW9u
KToKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmg6CiogU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6U3R5bGU6OnJl
c29sdmVGb3JEb2N1bWVudCk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5j
cHA6CihXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6OlN0YXRlOjpTdGF0ZSk6CihXZWJDb3JlOjpT
dHlsZTo6UmVzb2x2ZXI6OlJlc29sdmVyKToKKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6c3R5
bGVGb3JQYWdlKToKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6
CihXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpQYXJlbnQ6OlBhcmVudCk6CihXZWJDb3Jl
OjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudCk6CihXZWJDb3JlOjpTdHlsZTo6
VHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKToKKFdlYkNvcmU6OlN0eWxlOjpUcmVl
UmVzb2x2ZXI6OnJlc29sdmUpOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmg6
CihXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjpyb290U3R5bGVVcGRhdGUgY29uc3QpOgooV2ViQ29y
ZTo6U3R5bGU6OlVwZGF0ZTo6YWRkUm9vdFN0eWxlVXBkYXRlKToKLS0tCiBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCAxMyArKystLQogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgIHwgIDIgKwogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgIHwgNTEgLS0tLS0tLS0tLS0tLS0tLS0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCAgICAgICB8IDE5ICsrKysrKysK
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggICAgICAgICB8ICAyICsKIC4u
Li9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwICB8IDM2ICsrKysrKysr
KysrKwogLi4uL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oICAgIHwgIDEg
KwogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgICAgICAgIHwgNTYgKysr
KysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oICAg
ICAgICAgIHwgIDIgKwogLi4uL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQu
Y3BwIHwgMjAgKy0tLS0tLQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAg
ICAgICAgIHwgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cCAgICB8IDEzICsrKystCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oICAgICAg
ICAgICAgfCAgNCArKwogLi4uL3dyaXRpbmctbW9kZS1ib2R5LWV4cGVjdGVkLmh0bWwgICAgICAg
ICAgIHwgIDEgKwogLi4uL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5Lmh0bWwg
IHwgIDcgKysrCiAuLi5yaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50LWV4cGVjdGVkLmh0bWwg
fCAgMSArCiAuLi4vd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbCAgICAgICAgfCAg
NyArKysKIDE3IGZpbGVzIGNoYW5nZWQsIDE2MCBpbnNlcnRpb25zKCspLCA4MSBkZWxldGlvbnMo
LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0
aW5nLW1vZGUtYm9keS1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVu
dC1lbGVtZW50LWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDJmMWEzZTRlNWNlLi4xMzYwNjUyODZjOGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjA5NSwxNiArMjA5NSwxOSBAQCB2b2lkIERvY3VtZW50
OjpyZXNvbHZlU3R5bGUoUmVzb2x2ZVN0eWxlVHlwZSB0eXBlKQogICAgICAgICAgICAgbV9oYXNO
b2Rlc1dpdGhOb25GaW5hbFN0eWxlID0gZmFsc2U7CiAgICAgICAgICAgICBtX2hhc05vZGVzV2l0
aE1pc3NpbmdTdHlsZSA9IGZhbHNlOwogCi0gICAgICAgICAgICBhdXRvIGRvY3VtZW50U3R5bGUg
PSBTdHlsZTo6cmVzb2x2ZUZvckRvY3VtZW50KCp0aGlzKTsKKyAgICAgICAgICAgIGF1dG8gcm9v
dFN0eWxlID0gU3R5bGU6OnJlc29sdmVGb3JEb2N1bWVudCgqdGhpcyk7CiAKICAgICAgICAgICAg
IC8vIEluc2VydGluZyB0aGUgcGljdG9ncmFwaCBmb250IGF0IHRoZSBlbmQgb2YgdGhlIGZvbnQg
ZmFsbGJhY2sgbGlzdCBpcyBkb25lIGJ5IHRoZQogICAgICAgICAgICAgLy8gZm9udCBzZWxlY3Rv
ciwgc28gc2V0IGEgZm9udCBzZWxlY3RvciBpZiBuZWVkZWQuCiAgICAgICAgICAgICBpZiAoc2V0
dGluZ3MoKS5mb250RmFsbGJhY2tQcmVmZXJzUGljdG9ncmFwaHMoKSkKLSAgICAgICAgICAgICAg
ICBkb2N1bWVudFN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRlKCZmb250U2VsZWN0b3IoKSk7Cisg
ICAgICAgICAgICAgICAgcm9vdFN0eWxlLmZvbnRDYXNjYWRlKCkudXBkYXRlKCZmb250U2VsZWN0
b3IoKSk7CiAKLSAgICAgICAgICAgIGF1dG8gZG9jdW1lbnRDaGFuZ2UgPSBTdHlsZTo6ZGV0ZXJt
aW5lQ2hhbmdlKGRvY3VtZW50U3R5bGUsIG1fcmVuZGVyVmlldy0+c3R5bGUoKSk7Ci0gICAgICAg
ICAgICBpZiAoZG9jdW1lbnRDaGFuZ2UgIT0gU3R5bGU6OkNoYW5nZTo6Tm9uZSkKLSAgICAgICAg
ICAgICAgICByZW5kZXJWaWV3KCktPnNldFN0eWxlKFdURk1vdmUoZG9jdW1lbnRTdHlsZSkpOwor
ICAgICAgICAgICAgYXV0byBkb2N1bWVudENoYW5nZSA9IG1fcm9vdFN0eWxlID8gU3R5bGU6OmRl
dGVybWluZUNoYW5nZShyb290U3R5bGUsICptX3Jvb3RTdHlsZSkgOiBTdHlsZTo6Q2hhbmdlOjpS
ZW5kZXJlcjsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudENoYW5nZSAhPSBTdHlsZTo6Q2hhbmdl
OjpOb25lKSB7CisgICAgICAgICAgICAgICAgbV9yb290U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xv
bmVQdHIocm9vdFN0eWxlKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIG1heSBlbmQgdXAgZGlm
ZmVyaW5nIGZyb20gbV9yb290U3R5bGUgZHVlIHRvIGFkanVzdG1lbnRzLgorICAgICAgICAgICAg
ICAgIHJlbmRlclZpZXcoKS0+c2V0U3R5bGUoV1RGTW92ZShyb290U3R5bGUpKTsKKyAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgaWYgKFJlZlB0ciBkb2N1bWVudEVsZW1lbnQgPSB0aGlzLT5k
b2N1bWVudEVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICBkb2N1bWVudEVsZW1lbnQtPmludmFs
aWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZDE4NmEyYzFk
ZGQzLi5iZjdkODdiMGYxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02NjcsNiArNjY3LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZEZvbnRMb2FkaW5nKCk7CiAKICAgICBSZW5kZXJW
aWV3KiByZW5kZXJWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJWaWV3LmdldCgpOyB9Cisg
ICAgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdFN0
eWxlLmdldCgpOyB9IC8vIFRoaXMgbWF5IGVuZCB1cCBkaWZmZXJpbmcgZnJvbSByZW5kZXJWaWV3
KCktPnN0eWxlKCkgZHVlIHRvIGFkanVzdG1lbnRzLgogCiAgICAgYm9vbCByZW5kZXJUcmVlQmVp
bmdEZXN0cm95ZWQoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZDsg
fQogICAgIGJvb2wgaGFzTGl2aW5nUmVuZGVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlclZp
ZXcoKSAmJiAhcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCk7IH0KQEAgLTIwMDcsNiArMjAwOCw3
IEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnRDbGFzc2VzIG1fZG9jdW1lbnRDbGFzc2VzOwogCiAg
ICAgUmVuZGVyUHRyPFJlbmRlclZpZXc+IG1fcmVuZGVyVmlldzsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVuZGVyU3R5bGU+IG1fcm9vdFN0eWxlOwogCiAgICAgV2Vha0hhc2hTZXQ8TWVkaWFDYW5T
dGFydExpc3RlbmVyPiBtX21lZGlhQ2FuU3RhcnRMaXN0ZW5lcnM7CiAgICAgV2Vha0hhc2hTZXQ8
RGlzcGxheUNoYW5nZWRPYnNlcnZlcj4gbV9kaXNwbGF5Q2hhbmdlZE9ic2VydmVyczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggZjEyZjljZjM5MDdhLi5iMzUzMGNm
ZTEyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0zNTYsNDUg
KzM1Niw2IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2Ug
ZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgYm9vbCBpc0RvY0VsZW1lbnRS
ZW5kZXJlciA9IGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKTsKIAogICAgIGlmIChpc0RvY0Vs
ZW1lbnRSZW5kZXJlciB8fCBpc0JvZHlSZW5kZXJlcikgewotICAgICAgICBhdXRvKiBkb2N1bWVu
dEVsZW1lbnRSZW5kZXJlciA9IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCktPnJlbmRlcmVy
KCk7Ci0gICAgICAgIGF1dG8mIHZpZXdTdHlsZSA9IHZpZXcoKS5tdXRhYmxlU3R5bGUoKTsKLSAg
ICAgICAgYm9vbCByb290U3R5bGVDaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgIGJvb2wgdmlld0Rp
cmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgIGF1dG8qIHJvb3RS
ZW5kZXJlciA9IGlzQm9keVJlbmRlcmVyID8gZG9jdW1lbnRFbGVtZW50UmVuZGVyZXIgOiBudWxs
cHRyOwotCi0gICAgICAgIGF1dG8gcHJvcGFnYXRlV3JpdGluZ01vZGVUb1JlbmRlclZpZXdJZkFw
cGxpY2FibGUgPSBbJl0gewotICAgICAgICAgICAgLy8gUHJvcGFnYXRlIHRoZSBuZXcgd3JpdGlu
ZyBtb2RlIGFuZCBkaXJlY3Rpb24gdXAgdG8gdGhlIFJlbmRlclZpZXcuCi0gICAgICAgICAgICBp
ZiAoIWRvY3VtZW50RWxlbWVudFJlbmRlcmVyKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgICAgIGlmICghaXNCb2R5UmVuZGVyZXIgfHwgIShzaG91bGRBcHBseUFueUNvbnRhaW5t
ZW50KCkgfHwgZG9jdW1lbnRFbGVtZW50UmVuZGVyZXItPnNob3VsZEFwcGx5QW55Q29udGFpbm1l
bnQoKSkpIHsKLSAgICAgICAgICAgICAgICBpZiAodmlld1N0eWxlLmRpcmVjdGlvbigpICE9IG5l
d1N0eWxlLmRpcmVjdGlvbigpICYmIChpc0RvY0VsZW1lbnRSZW5kZXJlciB8fCAhZG9jdW1lbnRF
bGVtZW50UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKSkgewot
ICAgICAgICAgICAgICAgICAgICB2aWV3U3R5bGUuc2V0RGlyZWN0aW9uKG5ld1N0eWxlLmRpcmVj
dGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICAgdmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVD
aGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzQm9keVJlbmRlcmVyKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290UmVuZGVyZXItPm11dGFibGVTdHlsZSgpLnNl
dERpcmVjdGlvbihuZXdTdHlsZS5kaXJlY3Rpb24oKSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByb290U3R5bGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLQotICAg
ICAgICAgICAgICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCkudG9wQ29udGVudERpcmVjdGlvbkRp
ZENoYW5nZSgpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmICh2aWV3
U3R5bGUud3JpdGluZ01vZGUoKSAhPSBuZXdTdHlsZS53cml0aW5nTW9kZSgpICYmIChpc0RvY0Vs
ZW1lbnRSZW5kZXJlciB8fCAhZG9jdW1lbnRFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhw
bGljaXRseVNldFdyaXRpbmdNb2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZpZXdTdHls
ZS5zZXRXcml0aW5nTW9kZShuZXdTdHlsZS53cml0aW5nTW9kZSgpKTsKLSAgICAgICAgICAgICAg
ICAgICAgdmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICAgICAgdmlldygpLnNldEhvcml6b250YWxXcml0aW5nTW9kZShuZXdTdHlsZS5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgdmlldygpLm1hcmtB
bGxEZXNjZW5kYW50c1dpdGhGbG9hdHNGb3JMYXlvdXQoKTsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKGlzQm9keVJlbmRlcmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290U3R5bGVD
aGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZW5kZXJlci0+bXV0
YWJsZVN0eWxlKCkuc2V0V3JpdGluZ01vZGUobmV3U3R5bGUud3JpdGluZ01vZGUoKSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICByb290UmVuZGVyZXItPnNldEhvcml6b250YWxXcml0aW5nTW9k
ZShuZXdTdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKTsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNh
bGMoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAg
ICAgIHByb3BhZ2F0ZVdyaXRpbmdNb2RlVG9SZW5kZXJWaWV3SWZBcHBsaWNhYmxlKCk7Ci0KICNp
ZiBFTkFCTEUoREFSS19NT0RFX0NTUykKICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnJlY2Fs
Y3VsYXRlQmFzZUJhY2tncm91bmRDb2xvcigpOwogI2VuZGlmCkBAIC00MDIsMTggKzM2Myw2IEBA
IHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5yZWNh
bGN1bGF0ZVNjcm9sbGJhck92ZXJsYXlTdHlsZSgpOwogICAgICAgICAKICAgICAgICAgY29uc3Qg
UGFnaW5hdGlvbiYgcGFnaW5hdGlvbiA9IHZpZXcoKS5mcmFtZVZpZXcoKS5wYWdpbmF0aW9uKCk7
Ci0gICAgICAgIGlmICh2aWV3RGlyZWN0aW9uT3JXcml0aW5nTW9kZUNoYW5nZWQgJiYgcGFnaW5h
dGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5hdGVkKSB7Ci0gICAgICAgICAgICB2aWV3
U3R5bGUuc2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2luYXRpb24ubW9kZSk7
Ci0gICAgICAgICAgICBpZiAodmlldygpLm11bHRpQ29sdW1uRmxvdygpKQotICAgICAgICAgICAg
ICAgIHZpZXcoKS51cGRhdGVDb2x1bW5Qcm9ncmVzc2lvbkZyb21TdHlsZSh2aWV3U3R5bGUpOwot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAodmlld0RpcmVjdGlvbk9yV3JpdGluZ01v
ZGVDaGFuZ2VkICYmIHZpZXcoKS5tdWx0aUNvbHVtbkZsb3coKSkKLSAgICAgICAgICAgIHZpZXco
KS51cGRhdGVTdHlsZXNGb3JDb2x1bW5DaGlsZHJlbigpOwotICAgICAgICAKLSAgICAgICAgaWYg
KHJvb3RTdHlsZUNoYW5nZWQgJiYgaXM8UmVuZGVyQmxvY2tGbG93Pihyb290UmVuZGVyZXIpICYm
IGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oKnJvb3RSZW5kZXJlcikubXVsdGlDb2x1bW5GbG93
KCkpCi0gICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCpyb290UmVuZGVyZXIp
LnVwZGF0ZVN0eWxlc0ZvckNvbHVtbkNoaWxkcmVuKCk7Ci0gICAgICAgIAogICAgICAgICBpZiAo
aXNCb2R5UmVuZGVyZXIgJiYgcGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5h
dGVkICYmIHBhZ2UoKS5wYWdpbmF0aW9uTGluZUdyaWRFbmFibGVkKCkpIHsKICAgICAgICAgICAg
IC8vIFByb3BhZ2F0ZSB0aGUgYm9keSBmb250IGJhY2sgdXAgdG8gdGhlIFJlbmRlclZpZXcgYW5k
IHVzZSBpdCBhcwogICAgICAgICAgICAgLy8gdGhlIGJhc2lzIG9mIHRoZSBncmlkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDJiZTNhYWU3YTY3YS4uNWJjYWM4
MDNmNDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC05NCw2
ICs5NCwyNSBAQCBSZW5kZXJWaWV3Ojp+UmVuZGVyVmlldygpCiAgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRShtX3JlbmRlcmVyQ291bnQgPT0gMSwgIkFsbCBvdGhlciByZW5kZXJlcnMgaW4gdGhpcyBy
ZW5kZXIgdHJlZSBzaG91bGQgaGF2ZSBiZWVuIGRlc3Ryb3llZCIpOwogfQogCit2b2lkIFJlbmRl
clZpZXc6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpCit7CisgICAgUmVuZGVyQmxvY2tGbG93OjpzdHlsZURpZENoYW5nZShk
aWZmLCBvbGRTdHlsZSk7CisKKyAgICBib29sIHdyaXRpbmdNb2RlQ2hhbmdlZCA9IG9sZFN0eWxl
ICYmIHN0eWxlKCkud3JpdGluZ01vZGUoKSAhPSBvbGRTdHlsZS0+d3JpdGluZ01vZGUoKTsKKyAg
ICBib29sIGRpcmVjdGlvbkNoYW5nZWQgPSBvbGRTdHlsZSAmJiBzdHlsZSgpLmRpcmVjdGlvbigp
ICE9IG9sZFN0eWxlLT5kaXJlY3Rpb24oKTsKKworICAgIGlmICh3cml0aW5nTW9kZUNoYW5nZWQg
fHwgZGlyZWN0aW9uQ2hhbmdlZCkgeworICAgICAgICBhdXRvJiBwYWdpbmF0aW9uID0gZnJhbWVW
aWV3KCkucGFnaW5hdGlvbigpOworICAgICAgICBpZiAocGFnaW5hdGlvbi5tb2RlICE9IFBhZ2lu
YXRpb246OlVucGFnaW5hdGVkKQorICAgICAgICAgICAgbXV0YWJsZVN0eWxlKCkuc2V0Q29sdW1u
U3R5bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2luYXRpb24ubW9kZSk7CisgICAgICAgIGlmICht
dWx0aUNvbHVtbkZsb3coKSkKKyAgICAgICAgICAgIHVwZGF0ZVN0eWxlc0ZvckNvbHVtbkNoaWxk
cmVuKCk7CisgICAgfQorCisgICAgaWYgKGRpcmVjdGlvbkNoYW5nZWQpCisgICAgICAgIGZyYW1l
VmlldygpLnRvcENvbnRlbnREaXJlY3Rpb25EaWRDaGFuZ2UoKTsKK30KKwogdm9pZCBSZW5kZXJW
aWV3OjpzY2hlZHVsZUxhenlSZXBhaW50KFJlbmRlckJveCYgcmVuZGVyZXIpCiB7CiAgICAgaWYg
KHJlbmRlcmVyLnJlbmRlckJveE5lZWRzTGF6eVJlcGFpbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oCmluZGV4IDdhZDExMTQyYTJhZi4uNmRmMzNiYWNhYTdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTIxNCw2ICsyMTQsOCBAQCBwdWJsaWM6
CiAgICAgY29uc3QgV2Vha0hhc2hTZXQ8Y29uc3QgUmVuZGVyQm94PiYgY29udGFpbmVyUXVlcnlC
b3hlcygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbmVyUXVlcnlCb3hlczsgfQogCiBwcml2YXRl
OgorICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOworCiAgICAgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiwgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIGJvb2wqIHdhc0ZpeGVkKSBj
b25zdCBvdmVycmlkZTsKICAgICBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVu
ZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIG1hcEFic29sdXRlVG9M
b2NhbFBvaW50KE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBUcmFuc2Zvcm1TdGF0ZSYp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKaW5kZXggYjQ4NjE0YjI3NDkyLi40MTkwMjA2
MzgxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVVcGRhdGVyLmNwcApAQCAtMTA1LDYgKzEwNSw5IEBAIHZvaWQgUmVuZGVyVHJl
ZVVwZGF0ZXI6OmNvbW1pdChzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5
bGVVcGRhdGUpCiAKICAgICBtX3N0eWxlVXBkYXRlID0gV1RGTW92ZShzdHlsZVVwZGF0ZSk7CiAK
KyAgICBpZiAobV9zdHlsZVVwZGF0ZS0+cm9vdFN0eWxlVXBkYXRlKCkpCisgICAgICAgIG1fZG9j
dW1lbnQucmVuZGVyVmlldygpLT5zZXRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmUoKm1fc3R5bGVV
cGRhdGUtPnJvb3RTdHlsZVVwZGF0ZSgpKSk7CisKICAgICBmb3IgKGF1dG8mIHJvb3QgOiBtX3N0
eWxlVXBkYXRlLT5yb290cygpKSB7CiAgICAgICAgIGF1dG8qIHJlbmRlcmluZ1Jvb3QgPSBmaW5k
UmVuZGVyaW5nUm9vdCgqcm9vdCk7CiAgICAgICAgIGlmICghcmVuZGVyaW5nUm9vdCkKQEAgLTUx
Niw2ICs1MTksMzkgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6c3RvcmVQcmV2aW91c1JlbmRl
cmVyKE5vZGUmIG5vZGUpCiAgICAgcmVuZGVyaW5nUGFyZW50KCkucHJldmlvdXNDaGlsZFJlbmRl
cmVyID0gcmVuZGVyZXI7CiB9CiAKK3ZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVJlbmRl
clZpZXdTdHlsZSgpCit7CisgICAgYXV0byogYm9keSA9IG1fZG9jdW1lbnQuYm9keU9yRnJhbWVz
ZXQoKTsKKyAgICBhdXRvKiBib2R5U3R5bGUgPSBib2R5ID8gYm9keS0+cmVuZGVyT3JEaXNwbGF5
Q29udGVudHNTdHlsZSgpIDogbnVsbHB0cjsKKyAgICBhdXRvJiBkb2N1bWVudEVsZW1lbnRTdHls
ZSA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCktPnJlbmRlcmVyKCktPnN0eWxlKCk7CisK
KyAgICBhdXRvIHdyaXRpbmdNb2RlID0gWyZdIHsKKyAgICAgICAgaWYgKGRvY3VtZW50RWxlbWVu
dFN0eWxlLmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGRvY3VtZW50RWxlbWVudFN0eWxlLndyaXRpbmdNb2RlKCk7CisgICAgICAgIGlmIChib2R5U3R5
bGUpCisgICAgICAgICAgICByZXR1cm4gYm9keVN0eWxlLT53cml0aW5nTW9kZSgpOworICAgICAg
ICByZXR1cm4gV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tOworICAgIH0oKTsKKworICAgIGF1dG8g
ZGlyZWN0aW9uID0gWyZdIHsKKyAgICAgICAgaWYgKGRvY3VtZW50RWxlbWVudFN0eWxlLmhhc0V4
cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVsZW1l
bnRTdHlsZS5kaXJlY3Rpb24oKTsKKyAgICAgICAgaWYgKGJvZHlTdHlsZSkKKyAgICAgICAgICAg
IHJldHVybiBib2R5U3R5bGUtPmRpcmVjdGlvbigpOworICAgICAgICByZXR1cm4gVGV4dERpcmVj
dGlvbjo6TFRSOworICAgIH0oKTsKKworICAgIGF1dG8mIHZpZXdTdHlsZSA9IG1fZG9jdW1lbnQu
cmVuZGVyVmlldygpLT5zdHlsZSgpOworICAgIGlmICh3cml0aW5nTW9kZSA9PSB2aWV3U3R5bGUu
d3JpdGluZ01vZGUoKSAmJiBkaXJlY3Rpb24gPT0gdmlld1N0eWxlLmRpcmVjdGlvbigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBGSU1YRTogUmVuZGVyaW5nIHNob3VsZCBqdXN0IHJlYWQg
dGhlIHZhbHVlcyBmcm9tIHRoZSBjb3JyZWN0IHBsYWNlIGluc3RlYWQgb2YgcmVxdWlyaW5nIHB1
c2hpbmcgdGhlc2UgdG8gdGhlIFJlbmRlclZpZXcgc3R5bGUuCisgICAgYXV0byBuZXdWaWV3U3R5
bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUodmlld1N0eWxlKTsKKyAgICBuZXdWaWV3U3R5bGUuc2V0
V3JpdGluZ01vZGUod3JpdGluZ01vZGUpOworICAgIG5ld1ZpZXdTdHlsZS5zZXREaXJlY3Rpb24o
ZGlyZWN0aW9uKTsKKyAgICBtX2RvY3VtZW50LnJlbmRlclZpZXcoKS0+c2V0U3R5bGUoV1RGTW92
ZShuZXdWaWV3U3R5bGUpKTsKK30KKwogdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dGVhckRvd25S
ZW5kZXJlcnMoRWxlbWVudCYgcm9vdCkKIHsKICAgICBhdXRvKiB2aWV3ID0gcm9vdC5kb2N1bWVu
dCgpLnJlbmRlclZpZXcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgKaW5kZXggYWJjYzlmMGVjMmRmLi5iNTgyNGMzMGQ4
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlVXBkYXRlci5oCkBAIC02MSw2ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRh
dGVFbGVtZW50UmVuZGVyZXIoRWxlbWVudCYsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRlJik7
CiAgICAgdm9pZCB1cGRhdGVTVkdSZW5kZXJlcihFbGVtZW50Jik7CiAgICAgdm9pZCB1cGRhdGVS
ZW5kZXJlclN0eWxlKFJlbmRlckVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBTdHlsZURpZmZlcmVu
Y2UpOworICAgIHZvaWQgdXBkYXRlUmVuZGVyVmlld1N0eWxlKCk7CiAgICAgdm9pZCBjcmVhdGVS
ZW5kZXJlcihFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CiAgICAgdm9pZCB1cGRhdGVCZWZvcmVE
ZXNjZW5kYW50cyhFbGVtZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUqKTsKICAgICB2
b2lkIHVwZGF0ZUFmdGVyRGVzY2VuZGFudHMoRWxlbWVudCYsIGNvbnN0IFN0eWxlOjpFbGVtZW50
VXBkYXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IDE3NTIy
MzJlNTA4MS4uMzBhM2JhNmI5NDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZUFkanVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVy
LmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUg
IlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKKyNpbmNsdWRlICJSZW5k
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0dyYXBoaWNz
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkBAIC02MCw2ICs2MSw3IEBACiAjaW5j
bHVkZSAiU1ZHVVJJUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU3R5bGVVcGRhdGUuaCIKICNpbmNsdWRlICJUZXh0
LmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVHlwZXMuaCIKICNpbmNsdWRlIDx3dGYvUm9iaW5I
b29kSGFzaFNldC5oPgpAQCAtNzcwLDYgKzc3Miw2MCBAQCB2b2lkIEFkanVzdGVyOjphZGp1c3RG
b3JTaXRlU3BlY2lmaWNRdWlya3MoUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAogI2VuZGlmCiB9
CiAKK3ZvaWQgQWRqdXN0ZXI6OnByb3BhZ2F0ZVdyaXRpbmdNb2RlQW5kRGlyZWN0aW9uKFVwZGF0
ZSYgdXBkYXRlLCBjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgYXV0byogYm9keSA9
IGRvY3VtZW50LmJvZHlPckZyYW1lc2V0KCk7CisgICAgYXV0byogYm9keVN0eWxlID0gYm9keSA/
IHVwZGF0ZS5lbGVtZW50U3R5bGUoKmJvZHkpIDogbnVsbHB0cjsKKyAgICBhdXRvKiBkb2N1bWVu
dEVsZW1lbnRTdHlsZSA9IHVwZGF0ZS5lbGVtZW50U3R5bGUoKmRvY3VtZW50LmRvY3VtZW50RWxl
bWVudCgpKTsKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVudFN0eWxlKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvIHdyaXRpbmdNb2RlID0gWyZdIHsKKyAgICAgICAgaWYgKGRvY3VtZW50RWxl
bWVudFN0eWxlLT5oYXNFeHBsaWNpdGx5U2V0V3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgIHJl
dHVybiBkb2N1bWVudEVsZW1lbnRTdHlsZS0+d3JpdGluZ01vZGUoKTsKKyAgICAgICAgaWYgKGJv
ZHlTdHlsZSAmJiBib2R5U3R5bGUtPmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKQorICAg
ICAgICAgICAgcmV0dXJuIGJvZHlTdHlsZS0+d3JpdGluZ01vZGUoKTsKKyAgICAgICAgcmV0dXJu
IFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbTsKKyAgICB9KCk7CisKKyAgICBhdXRvIGRpcmVjdGlv
biA9IFsmXSB7CisgICAgICAgIGlmIChkb2N1bWVudEVsZW1lbnRTdHlsZS0+aGFzRXhwbGljaXRs
eVNldERpcmVjdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50RWxlbWVudFN0eWxl
LT5kaXJlY3Rpb24oKTsKKyAgICAgICAgaWYgKGJvZHlTdHlsZSAmJiBib2R5U3R5bGUtPmhhc0V4
cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBib2R5U3R5bGUtPmRp
cmVjdGlvbigpOworICAgICAgICByZXR1cm4gVGV4dERpcmVjdGlvbjo6TFRSOworICAgIH0oKTsK
KworICAgIC8vIEZJTVhFOiBSZW5kZXJpbmcgc2hvdWxkIGp1c3QgcmVhZCB0aGUgdmFsdWVzIGZy
b20gYm9keS9kb2N1bWVudCBlbGVtZW50IGluc3RlYWQgb2YgcmVxdWlyaW5nIGF3a3dhcmRseSBw
cm9wYWdhdGluZyB0aGVzZSB0byB0aGUgYW5jZXN0b3Igc3R5bGVzLgorICAgIGF1dG8mIHZpZXdT
dHlsZSA9IGRvY3VtZW50LnJlbmRlclZpZXcoKS0+c3R5bGUoKTsKKyAgICBpZiAod3JpdGluZ01v
ZGUgIT0gdmlld1N0eWxlLndyaXRpbmdNb2RlKCkgfHwgZGlyZWN0aW9uICE9IHZpZXdTdHlsZS5k
aXJlY3Rpb24oKSkgeworICAgICAgICBhdXRvIG5ld1Jvb3RTdHlsZSA9IFJlbmRlclN0eWxlOjpj
bG9uZVB0cih2aWV3U3R5bGUpOworICAgICAgICBuZXdSb290U3R5bGUtPnNldFdyaXRpbmdNb2Rl
KHdyaXRpbmdNb2RlKTsKKyAgICAgICAgbmV3Um9vdFN0eWxlLT5zZXREaXJlY3Rpb24oZGlyZWN0
aW9uKTsKKyAgICAgICAgdXBkYXRlLmFkZFJvb3RTdHlsZVVwZGF0ZShXVEZNb3ZlKG5ld1Jvb3RT
dHlsZSkpOworICAgIH0KKworICAgIGlmICh3cml0aW5nTW9kZSAhPSBkb2N1bWVudEVsZW1lbnRT
dHlsZS0+d3JpdGluZ01vZGUoKSB8fCBkaXJlY3Rpb24gIT0gZG9jdW1lbnRFbGVtZW50U3R5bGUt
PmRpcmVjdGlvbigpKSB7CisgICAgICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudFVwZGF0ZSA9IHVw
ZGF0ZS5lbGVtZW50VXBkYXRlKCpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAg
IGlmICghZG9jdW1lbnRFbGVtZW50VXBkYXRlKSB7CisgICAgICAgICAgICB1cGRhdGUuYWRkRWxl
bWVudCgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCksIG51bGxwdHIsIHsgUmVuZGVyU3R5bGU6
OmNsb25lUHRyKCpkb2N1bWVudEVsZW1lbnRTdHlsZSkgfSk7CisgICAgICAgICAgICBkb2N1bWVu
dEVsZW1lbnRVcGRhdGUgPSB1cGRhdGUuZWxlbWVudFVwZGF0ZSgqZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50KCkpOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5z
dHlsZS0+c2V0V3JpdGluZ01vZGUod3JpdGluZ01vZGUpOworICAgICAgICBkb2N1bWVudEVsZW1l
bnRVcGRhdGUtPnN0eWxlLT5zZXREaXJlY3Rpb24oZGlyZWN0aW9uKTsKKyAgICAgICAgZG9jdW1l
bnRFbGVtZW50VXBkYXRlLT5jaGFuZ2UgPSBkZXRlcm1pbmVDaGFuZ2UoKmRvY3VtZW50RWxlbWVu
dFN0eWxlLCAqZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5zdHlsZSk7CisgICAgfQorfQorCit2b2lk
IEFkanVzdGVyOjpyZW1vdmVJbXBsaWNpdFdyaXRpbmdNb2RlQW5kRGlyZWN0aW9uKFJlbmRlclN0
eWxlJiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlLmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9k
ZSgpKQorICAgICAgICBzdHlsZS5zZXRXcml0aW5nTW9kZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdy
aXRpbmdNb2RlKCkpOworICAgIGlmICghc3R5bGUuaGFzRXhwbGljaXRseVNldERpcmVjdGlvbigp
KQorICAgICAgICBzdHlsZS5zZXREaXJlY3Rpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxEaXJlY3Rp
b24oKSk7Cit9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogc3RhdGljIGJvb2wgaGFz
VGV4dENoaWxkKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUFkanVzdGVyLmgKaW5kZXggZGU4YTg1OGQ5NWZmLi44MjkxYjgyY2Q4NWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogCiAgICAg
c3RhdGljIHZvaWQgYWRqdXN0U1ZHRWxlbWVudFN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgU1ZH
RWxlbWVudCYpOwogICAgIHN0YXRpYyB2b2lkIGFkanVzdEV2ZW50TGlzdGVuZXJSZWdpb25UeXBl
c0ZvclJvb3RTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IERvY3VtZW50Jik7CisgICAgc3RhdGlj
IHZvaWQgcHJvcGFnYXRlV3JpdGluZ01vZGVBbmREaXJlY3Rpb24oVXBkYXRlJiwgY29uc3QgRG9j
dW1lbnQmKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVJbXBsaWNpdFdyaXRpbmdNb2RlQW5kRGly
ZWN0aW9uKFJlbmRlclN0eWxlJik7CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAg
IHN0cnVjdCBBZGp1c3RtZW50Rm9yVGV4dEF1dG9zaXppbmcgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCmluZGV4IDFlYTVjYWFlODA1OS4u
YTU0M2RhM2M2YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVGb3JEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZl
Rm9yRG9jdW1lbnQuY3BwCkBAIC03MSwyNSArNzEsNyBAQCBSZW5kZXJTdHlsZSByZXNvbHZlRm9y
RG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQogI2VuZGlmCiAKICAgICBBZGp1c3Rl
cjo6YWRqdXN0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUm9vdFN0eWxlKGRvY3VtZW50U3R5
bGUsIGRvY3VtZW50KTsKLQotICAgIEVsZW1lbnQqIGRvY0VsZW1lbnQgPSBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQoKTsKLSAgICBSZW5kZXJPYmplY3QqIGRvY0VsZW1lbnRSZW5kZXJlciA9IGRv
Y0VsZW1lbnQgPyBkb2NFbGVtZW50LT5yZW5kZXJlcigpIDogbnVsbHB0cjsKLSAgICBpZiAoZG9j
RWxlbWVudFJlbmRlcmVyKSB7Ci0gICAgICAgIC8vIFVzZSB0aGUgZGlyZWN0aW9uIGFuZCB3cml0
aW5nLW1vZGUgb2YgdGhlIGJvZHkgdG8gc2V0IHRoZQotICAgICAgICAvLyB2aWV3cG9ydCdzIGRp
cmVjdGlvbiBhbmQgd3JpdGluZy1tb2RlIHVubGVzcyB0aGUgcHJvcGVydHkgaXMgc2V0IG9uIHRo
ZSBkb2N1bWVudCBlbGVtZW50LgotICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBib2R5LCB0aGVu
IHVzZSB0aGUgZG9jdW1lbnQgZWxlbWVudC4KLSAgICAgICAgYXV0byogYm9keSA9IGRvY3VtZW50
LmJvZHlPckZyYW1lc2V0KCk7Ci0gICAgICAgIFJlbmRlck9iamVjdCogYm9keVJlbmRlcmVyID0g
Ym9keSA/IGJvZHktPnJlbmRlcmVyKCkgOiBudWxscHRyOwotICAgICAgICBpZiAoYm9keVJlbmRl
cmVyICYmICFkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGljaXRseVNldFdyaXRp
bmdNb2RlKCkpCi0gICAgICAgICAgICBkb2N1bWVudFN0eWxlLnNldFdyaXRpbmdNb2RlKGJvZHlS
ZW5kZXJlci0+c3R5bGUoKS53cml0aW5nTW9kZSgpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZG9jdW1lbnRTdHlsZS5zZXRXcml0aW5nTW9kZShkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxl
KCkud3JpdGluZ01vZGUoKSk7Ci0gICAgICAgIGlmIChib2R5UmVuZGVyZXIgJiYgIWRvY0VsZW1l
bnRSZW5kZXJlci0+c3R5bGUoKS5oYXNFeHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpCi0gICAgICAg
ICAgICBkb2N1bWVudFN0eWxlLnNldERpcmVjdGlvbihib2R5UmVuZGVyZXItPnN0eWxlKCkuZGly
ZWN0aW9uKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkb2N1bWVudFN0eWxlLnNldERp
cmVjdGlvbihkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwotICAgIH0K
LQorICAgIAogICAgIGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24gPSByZW5kZXJWaWV3LmZy
YW1lVmlldygpLnBhZ2luYXRpb24oKTsKICAgICBpZiAocGFnaW5hdGlvbi5tb2RlICE9IFBhZ2lu
YXRpb246OlVucGFnaW5hdGVkKSB7CiAgICAgICAgIGRvY3VtZW50U3R5bGUuc2V0Q29sdW1uU3R5
bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2luYXRpb24ubW9kZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDIzMDM3YmI5NWE3MC4uOTMxZmZjZWY3ZDg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1
YmxpYzoKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CiAgICAg
ICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpOwog
ICAgICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCB8fCBkb2N1bWVudEVsZW1lbnQgPT0gJmVsZW1l
bnQpCi0gICAgICAgICAgICBtX3Jvb3RFbGVtZW50U3R5bGUgPSBkb2N1bWVudC5yZW5kZXJTdHls
ZSgpOworICAgICAgICAgICAgbV9yb290RWxlbWVudFN0eWxlID0gZG9jdW1lbnQucm9vdFN0eWxl
KCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcm9vdEVsZW1lbnRTdHlsZSA9IGRvY3Vt
ZW50RWxlbWVudFN0eWxlID8gZG9jdW1lbnRFbGVtZW50U3R5bGUgOiBkb2N1bWVudEVsZW1lbnQt
PnJlbmRlclN0eWxlKCk7CiAgICAgfQpAQCAtMTU5LDcgKzE1OSw3IEBAIFJlc29sdmVyOjpSZXNv
bHZlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIG1fbWVkaWFRdWVyeUV2YWx1YXRvciA9
IExlZ2FjeU1lZGlhUXVlcnlFdmFsdWF0b3IgeyB9OwogCiAgICAgaWYgKGF1dG8qIGRvY3VtZW50
RWxlbWVudCA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpIHsKLSAgICAgICAgbV9yb290
RGVmYXVsdFN0eWxlID0gc3R5bGVGb3JFbGVtZW50KCpkb2N1bWVudEVsZW1lbnQsIHsgbV9kb2N1
bWVudC5yZW5kZXJTdHlsZSgpIH0sIFJ1bGVNYXRjaGluZ0JlaGF2aW9yOjpNYXRjaE9ubHlVc2Vy
QWdlbnRSdWxlcykucmVuZGVyU3R5bGU7CisgICAgICAgIG1fcm9vdERlZmF1bHRTdHlsZSA9IHN0
eWxlRm9yRWxlbWVudCgqZG9jdW1lbnRFbGVtZW50LCB7IG1fZG9jdW1lbnQucm9vdFN0eWxlKCkg
fSwgUnVsZU1hdGNoaW5nQmVoYXZpb3I6Ok1hdGNoT25seVVzZXJBZ2VudFJ1bGVzKS5yZW5kZXJT
dHlsZTsKICAgICAgICAgLy8gVHVybiBvZmYgYXNzZXJ0aW9uIGFnYWluc3QgZm9udCBsb29rdXBz
IGR1cmluZyBzdHlsZSByZXNvbHZlciBpbml0aWFsaXphdGlvbi4gV2UgbWF5IG5lZWQgcm9vdCBz
dHlsZSBmb250IGZvciBtZWRpYSBxdWVyaWVzLgogICAgICAgICBtX2RvY3VtZW50LmZvbnRTZWxl
Y3RvcigpLmluY3JlbWVudElzQ29tcHV0aW5nUm9vdFN0eWxlRm9udCgpOwogICAgICAgICBtX3Jv
b3REZWZhdWx0U3R5bGUtPmZvbnRDYXNjYWRlKCkudXBkYXRlKCZtX2RvY3VtZW50LmZvbnRTZWxl
Y3RvcigpKTsKQEAgLTQ4MSw3ICs0ODEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+
IFJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkKICAgICBpZiAoIWRvY3VtZW50
RWxlbWVudCkKICAgICAgICAgcmV0dXJuIFJlbmRlclN0eWxlOjpjcmVhdGVQdHIoKTsKIAotICAg
IGF1dG8gc3RhdGUgPSBTdGF0ZSgqZG9jdW1lbnRFbGVtZW50LCBtX2RvY3VtZW50LnJlbmRlclN0
eWxlKCkpOworICAgIGF1dG8gc3RhdGUgPSBTdGF0ZSgqZG9jdW1lbnRFbGVtZW50LCBtX2RvY3Vt
ZW50LnJvb3RTdHlsZSgpKTsKIAogICAgIHN0YXRlLnNldFN0eWxlKFJlbmRlclN0eWxlOjpjcmVh
dGVQdHIoKSk7CiAgICAgc3RhdGUuc3R5bGUoKS0+aW5oZXJpdEZyb20oKnN0YXRlLnJvb3RFbGVt
ZW50U3R5bGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVS
ZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAK
aW5kZXggZjM0NmZkZjVkZTllLi41NTg0MmMwNDQ0YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgVHJlZVJlc29sdmVyOjpT
Y29wZTo6flNjb3BlKCkKIAogVHJlZVJlc29sdmVyOjpQYXJlbnQ6OlBhcmVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgOiBlbGVtZW50KG51bGxwdHIpCi0gICAgLCBzdHlsZSgqZG9jdW1lbnQu
cmVuZGVyU3R5bGUoKSkKKyAgICAsIHN0eWxlKCpkb2N1bWVudC5yb290U3R5bGUoKSkKIHsKIH0K
IApAQCAtMjM5LDggKzIzOSw2IEBAIGF1dG8gVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudChF
bGVtZW50JiBlbGVtZW50LCBSZXNvbHV0aW9uVHlwZSByZXNvbHV0aW9uVHlwCiAgICAgYXV0byBk
ZXNjZW5kYW50c1RvUmVzb2x2ZSA9IGNvbXB1dGVEZXNjZW5kYW50c1RvUmVzb2x2ZSh1cGRhdGUu
Y2hhbmdlLCBlbGVtZW50LnN0eWxlVmFsaWRpdHkoKSwgcGFyZW50KCkuZGVzY2VuZGFudHNUb1Jl
c29sdmUpOwogCiAgICAgaWYgKCZlbGVtZW50ID09IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
KCkpIHsKLSAgICAgICAgbV9kb2N1bWVudEVsZW1lbnRTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9u
ZVB0cigqdXBkYXRlLnN0eWxlKTsKLQogICAgICAgICBpZiAoIWV4aXN0aW5nU3R5bGUgfHwgZXhp
c3RpbmdTdHlsZS0+Y29tcHV0ZWRGb250UGl4ZWxTaXplKCkgIT0gdXBkYXRlLnN0eWxlLT5jb21w
dXRlZEZvbnRQaXhlbFNpemUoKSkgewogICAgICAgICAgICAgLy8gInJlbSIgdW5pdHMgYXJlIHJl
bGF0aXZlIHRvIHRoZSBkb2N1bWVudCBlbGVtZW50J3MgZm9udCBzaXplIHNvIHdlIG5lZWQgdG8g
cmVjb21wdXRlIGV2ZXJ5dGhpbmcuCiAgICAgICAgICAgICBzY29wZSgpLnJlc29sdmVyLT5pbnZh
bGlkYXRlTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlKCk7CkBAIC04NDQsNiArODQyLDEzIEBAIHZv
aWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKICAgICAgICAgICAgIGNsZWFy
TmVlZHNTdHlsZVJlc29sdXRpb24oZWxlbWVudCk7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAo
c3R5bGUgJiYgJmVsZW1lbnQgPT0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSkgeworICAg
ICAgICAgICAgbV9kb2N1bWVudEVsZW1lbnRTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cigq
c3R5bGUpOworICAgICAgICAgICAgLy8gRG9jdW1lbnQgZWxlbWVudCBzdHlsZSBtYXkgaGF2ZSBn
b3QgYWRqdXN0ZWQgYmFzZWQgb24gYm9keSBzdHlsZSBidXQgd2UgZG9uJ3Qgd2FudCB0byBpbmhl
cml0IHRob3NlIGFkanVzdG1lbnRzLgorICAgICAgICAgICAgQWRqdXN0ZXI6OnJlbW92ZUltcGxp
Y2l0V3JpdGluZ01vZGVBbmREaXJlY3Rpb24oKm1fZG9jdW1lbnRFbGVtZW50U3R5bGUpOworICAg
ICAgICAgICAgc3R5bGUgPSBtX2RvY3VtZW50RWxlbWVudFN0eWxlLmdldCgpOworICAgICAgICB9
CisKICAgICAgICAgaWYgKCFzdHlsZSkKICAgICAgICAgICAgIHJlc2V0U3R5bGVGb3JOb25SZW5k
ZXJlZERlc2NlbmRhbnRzKGVsZW1lbnQpOwogCkBAIC05NDcsNiArOTUyLDggQEAgc3RkOjp1bmlx
dWVfcHRyPFVwZGF0ZT4gVHJlZVJlc29sdmVyOjpyZXNvbHZlKCkKICAgICBpZiAobV91cGRhdGUt
PnJvb3RzKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCisgICAgQWRqdXN0ZXI6
OnByb3BhZ2F0ZVdyaXRpbmdNb2RlQW5kRGlyZWN0aW9uKCptX3VwZGF0ZSwgbV9kb2N1bWVudCk7
CisKICAgICByZXR1cm4gV1RGTW92ZShtX3VwZGF0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVVwZGF0ZS5oCmluZGV4IGJiMzFkNDdlZDEzZC4uZjdmODk2OWI5OTVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlVXBkYXRlLmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGljOgogCiAgICAgY29uc3Qg
VGV4dFVwZGF0ZSogdGV4dFVwZGF0ZShjb25zdCBUZXh0JikgY29uc3Q7CiAKKyAgICBjb25zdCBS
ZW5kZXJTdHlsZSogcm9vdFN0eWxlVXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9yb290U3R5bGVV
cGRhdGUuZ2V0KCk7IH0KKwogICAgIGNvbnN0IFJlbmRlclN0eWxlKiBlbGVtZW50U3R5bGUoY29u
c3QgRWxlbWVudCYpIGNvbnN0OwogICAgIFJlbmRlclN0eWxlKiBlbGVtZW50U3R5bGUoY29uc3Qg
RWxlbWVudCYpOwogCkBAIC03OCw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFRleHQo
VGV4dCYsIEVsZW1lbnQqIHBhcmVudCwgVGV4dFVwZGF0ZSYmKTsKICAgICB2b2lkIGFkZFRleHQo
VGV4dCYsIFRleHRVcGRhdGUmJik7CiAgICAgdm9pZCBhZGRTVkdSZW5kZXJlclVwZGF0ZShTVkdF
bGVtZW50Jik7CisgICAgdm9pZCBhZGRSb290U3R5bGVVcGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJl
bmRlclN0eWxlPiBzdHlsZSkgeyBtX3Jvb3RTdHlsZVVwZGF0ZSA9IFdURk1vdmUoc3R5bGUpOyB9
CiAKIHByaXZhdGU6CiAgICAgdm9pZCBhZGRQb3NzaWJsZVJvb3QoRWxlbWVudCopOwpAQCAtODYs
NiArODksNyBAQCBwcml2YXRlOgogICAgIExpc3RIYXNoU2V0PFJlZlB0cjxDb250YWluZXJOb2Rl
Pj4gbV9yb290czsKICAgICBIYXNoTWFwPFJlZlB0cjxjb25zdCBFbGVtZW50PiwgRWxlbWVudFVw
ZGF0ZT4gbV9lbGVtZW50czsKICAgICBIYXNoTWFwPFJlZlB0cjxjb25zdCBUZXh0PiwgVGV4dFVw
ZGF0ZT4gbV90ZXh0czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IG1fcm9vdFN0
eWxlVXBkYXRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5n
LW1vZGUvd3JpdGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
d3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iM2U4NjMzYTc0MTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEgQEAKK1RoaXMgc2hvdWxkIGJlIGhvcml6b250YWwuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjZlZTFkNTY1N2FkZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmct
bW9kZS1ib2R5Lmh0bWwKQEAgLTAsMCArMSw3IEBACis8cD5UaGlzIHNob3VsZCBiZSBob3Jpem9u
dGFsLjwvcD4KKzxzY3JpcHQ+Citjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5ib2R5OwordGFyZ2V0
LnN0eWxlLndyaXRpbmdNb2RlID0gJ3ZlcnRpY2FsLXJsJzsKK3RhcmdldC5vZmZzZXRMZWZ0Owor
dGFyZ2V0LnN0eWxlLndyaXRpbmdNb2RlID0gJyc7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1v
ZGUtZG9jdW1lbnQtZWxlbWVudC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uYjNlODYzM2E3NDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxIEBACitUaGlzIHNob3VsZCBiZSBob3Jpem9udGFsLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3Vt
ZW50LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmct
bW9kZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi44YjRmMTg3MGMwOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sCkBAIC0w
LDAgKzEsNyBAQAorPHA+VGhpcyBzaG91bGQgYmUgaG9yaXpvbnRhbC48L3A+Cis8c2NyaXB0Pgor
Y29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwordGFyZ2V0LnN0eWxlLndy
aXRpbmdNb2RlID0gJ3ZlcnRpY2FsLXJsJzsKK3RhcmdldC5vZmZzZXRMZWZ0OwordGFyZ2V0LnN0
eWxlLndyaXRpbmdNb2RlID0gJyc7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463400</attachid>
            <date>2022-11-04 05:20:12 -0700</date>
            <delta_ts>2022-11-04 08:20:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185729-20221104142010.patch</filename>
            <type>text/plain</type>
            <size>27360</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSBmNDQ2Njg5OWZiNGE0MTViY2E1ODhhZTU3OGE5ZjI0NTg0YzZhYTk1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBGcmksIDQgTm92IDIwMjIgMTM6MDA6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBUaGUgZWZm
ZWN0IG9mIHdyaXRpbmctbW9kZSBwcm9wZXJ0eSByZW1haW5zIGFmdGVyIHRoZQogcHJvcGVydHkg
aXMgcmVtb3ZlZCAob24gdGhlIHJvb3QgZWxlbWVudCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU3MjkgcmRhcjovLzk3MDkxOTkwCgpSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2Rl
LWJvZHktZXhwZWN0ZWQuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1v
ZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0
aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50
LWVsZW1lbnQuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcDoK
KFdlYkNvcmU6OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnJvb3RTdHlsZSBjb25zdCk6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJCb3g6OnN0
eWxlRGlkQ2hhbmdlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6
CihXZWJDb3JlOjpSZW5kZXJWaWV3OjpzdHlsZURpZENoYW5nZSk6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwOgooV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OmNv
bW1pdCk6CihXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVyVmlld1N0eWxl
KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
aDoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKKFdlYkNvcmU6OlN0
eWxlOjpBZGp1c3Rlcjo6cHJvcGFnYXRlV3JpdGluZ01vZGVBbmREaXJlY3Rpb24pOgooV2ViQ29y
ZTo6U3R5bGU6OkFkanVzdGVyOjpyZW1vdmVJbXBsaWNpdFdyaXRpbmdNb2RlQW5kRGlyZWN0aW9u
KToKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmg6CiogU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6U3R5bGU6OnJl
c29sdmVGb3JEb2N1bWVudCk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5j
cHA6CihXZWJDb3JlOjpTdHlsZTo6UmVzb2x2ZXI6OlN0YXRlOjpTdGF0ZSk6CihXZWJDb3JlOjpT
dHlsZTo6UmVzb2x2ZXI6OlJlc29sdmVyKToKKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6c3R5
bGVGb3JQYWdlKToKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6
CihXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpQYXJlbnQ6OlBhcmVudCk6CihXZWJDb3Jl
OjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudCk6CihXZWJDb3JlOjpTdHlsZTo6
VHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKToKKFdlYkNvcmU6OlN0eWxlOjpUcmVl
UmVzb2x2ZXI6OnJlc29sdmUpOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmg6
CihXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjpyb290U3R5bGVVcGRhdGUgY29uc3QpOgooV2ViQ29y
ZTo6U3R5bGU6OlVwZGF0ZTo6YWRkUm9vdFN0eWxlVXBkYXRlKToKLS0tCiBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCAxNyArKystLS0KIFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAgICAgICAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwICAgICAgICB8IDUxIC0tLS0tLS0tLS0tLS0tLS0tCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgICAgICAgfCAxOSArKysrKysr
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oICAgICAgICAgfCAgMiArCiAu
Li4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCAgfCAzNiArKysrKysr
KysrKysKIC4uLi9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaCAgICB8ICAx
ICsKIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwICAgICAgICB8IDU2ICsr
KysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaCAg
ICAgICAgICB8ICAyICsKIC4uLi9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50
LmNwcCB8IDIwICstLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3Bw
ICAgICAgICB8ICA2ICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5j
cHAgICAgfCAxMyArKysrLQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaCAgICAg
ICAgICAgIHwgIDQgKysKIC4uLi93cml0aW5nLW1vZGUtYm9keS1leHBlY3RlZC5odG1sICAgICAg
ICAgICB8ICAxICsKIC4uLi9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS5odG1s
ICB8ICA3ICsrKwogLi4ucml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC1leHBlY3RlZC5odG1s
IHwgIDEgKwogLi4uL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwgICAgICAgIHwg
IDcgKysrCiAxNyBmaWxlcyBjaGFuZ2VkLCAxNjAgaW5zZXJ0aW9ucygrKSwgODUgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3Jp
dGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5Lmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1l
bnQtZWxlbWVudC1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbAoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQyZjFhM2U0ZTVjZS4uZmVhZmJlZDg3YjQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOTUsMTYgKzIwOTUsMTQgQEAgdm9pZCBEb2N1bWVu
dDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKICAgICAgICAgICAgIG1faGFz
Tm9kZXNXaXRoTm9uRmluYWxTdHlsZSA9IGZhbHNlOwogICAgICAgICAgICAgbV9oYXNOb2Rlc1dp
dGhNaXNzaW5nU3R5bGUgPSBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBkb2N1bWVudFN0eWxl
ID0gU3R5bGU6OnJlc29sdmVGb3JEb2N1bWVudCgqdGhpcyk7CisgICAgICAgICAgICBhdXRvIHJv
b3RTdHlsZSA9IFN0eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQoKnRoaXMpOwogCi0gICAgICAgICAg
ICAvLyBJbnNlcnRpbmcgdGhlIHBpY3RvZ3JhcGggZm9udCBhdCB0aGUgZW5kIG9mIHRoZSBmb250
IGZhbGxiYWNrIGxpc3QgaXMgZG9uZSBieSB0aGUKLSAgICAgICAgICAgIC8vIGZvbnQgc2VsZWN0
b3IsIHNvIHNldCBhIGZvbnQgc2VsZWN0b3IgaWYgbmVlZGVkLgotICAgICAgICAgICAgaWYgKHNl
dHRpbmdzKCkuZm9udEZhbGxiYWNrUHJlZmVyc1BpY3RvZ3JhcGhzKCkpCi0gICAgICAgICAgICAg
ICAgZG9jdW1lbnRTdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmZm9udFNlbGVjdG9yKCkpOwot
Ci0gICAgICAgICAgICBhdXRvIGRvY3VtZW50Q2hhbmdlID0gU3R5bGU6OmRldGVybWluZUNoYW5n
ZShkb2N1bWVudFN0eWxlLCBtX3JlbmRlclZpZXctPnN0eWxlKCkpOwotICAgICAgICAgICAgaWYg
KGRvY3VtZW50Q2hhbmdlICE9IFN0eWxlOjpDaGFuZ2U6Ok5vbmUpCi0gICAgICAgICAgICAgICAg
cmVuZGVyVmlldygpLT5zZXRTdHlsZShXVEZNb3ZlKGRvY3VtZW50U3R5bGUpKTsKKyAgICAgICAg
ICAgIGF1dG8gZG9jdW1lbnRDaGFuZ2UgPSBtX3Jvb3RTdHlsZSA/IFN0eWxlOjpkZXRlcm1pbmVD
aGFuZ2Uocm9vdFN0eWxlLCAqbV9yb290U3R5bGUpIDogU3R5bGU6OkNoYW5nZTo6UmVuZGVyZXI7
CisgICAgICAgICAgICBpZiAoZG9jdW1lbnRDaGFuZ2UgIT0gU3R5bGU6OkNoYW5nZTo6Tm9uZSkg
eworICAgICAgICAgICAgICAgIG1fcm9vdFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKHJv
b3RTdHlsZSk7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBtYXkgZW5kIHVwIGRpZmZlcmluZyBm
cm9tIG1fcm9vdFN0eWxlIGR1ZSB0byBhZGp1c3RtZW50cy4KKyAgICAgICAgICAgICAgICByZW5k
ZXJWaWV3KCktPnNldFN0eWxlKFdURk1vdmUocm9vdFN0eWxlKSk7CisgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIGlmIChSZWZQdHIgZG9jdW1lbnRFbGVtZW50ID0gdGhpcy0+ZG9jdW1lbnRF
bGVtZW50KCkpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5
bGVGb3JTdWJ0cmVlKCk7CkBAIC0yNjI3LDYgKzI2MjUsNyBAQCB2b2lkIERvY3VtZW50OjpkZXN0
cm95UmVuZGVyVHJlZSgpCiAgICAgICAgIHZpZXcoKS0+d2lsbERlc3Ryb3lSZW5kZXJUcmVlKCk7
CiAKICAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVXBkYXRlID0geyB9OworICAgIG1fcm9vdFN0eWxl
ID0geyB9OwogCiAgICAgaWYgKG1fZG9jdW1lbnRFbGVtZW50KQogICAgICAgICBSZW5kZXJUcmVl
VXBkYXRlcjo6dGVhckRvd25SZW5kZXJlcnMoKm1fZG9jdW1lbnRFbGVtZW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKaW5kZXggZDE4NmEyYzFkZGQzLi5iZjdkODdiMGYxNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC02NjcsNiArNjY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZEZvbnRM
b2FkaW5nKCk7CiAKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3KCkgY29uc3QgeyByZXR1cm4g
bV9yZW5kZXJWaWV3LmdldCgpOyB9CisgICAgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcm9vdFN0eWxlLmdldCgpOyB9IC8vIFRoaXMgbWF5IGVuZCB1cCBk
aWZmZXJpbmcgZnJvbSByZW5kZXJWaWV3KCktPnN0eWxlKCkgZHVlIHRvIGFkanVzdG1lbnRzLgog
CiAgICAgYm9vbCByZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSBjb25zdCB7IHJldHVybiBtX3Jl
bmRlclRyZWVCZWluZ0Rlc3Ryb3llZDsgfQogICAgIGJvb2wgaGFzTGl2aW5nUmVuZGVyVHJlZSgp
IGNvbnN0IHsgcmV0dXJuIHJlbmRlclZpZXcoKSAmJiAhcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVk
KCk7IH0KQEAgLTIwMDcsNiArMjAwOCw3IEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnRDbGFzc2Vz
IG1fZG9jdW1lbnRDbGFzc2VzOwogCiAgICAgUmVuZGVyUHRyPFJlbmRlclZpZXc+IG1fcmVuZGVy
VmlldzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IG1fcm9vdFN0eWxlOwogCiAg
ICAgV2Vha0hhc2hTZXQ8TWVkaWFDYW5TdGFydExpc3RlbmVyPiBtX21lZGlhQ2FuU3RhcnRMaXN0
ZW5lcnM7CiAgICAgV2Vha0hhc2hTZXQ8RGlzcGxheUNoYW5nZWRPYnNlcnZlcj4gbV9kaXNwbGF5
Q2hhbmdlZE9ic2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5k
ZXggZjEyZjljZjM5MDdhLi5iMzUzMGNmZTEyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC0zNTYsNDUgKzM1Niw2IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURp
ZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
CiAgICAgYm9vbCBpc0RvY0VsZW1lbnRSZW5kZXJlciA9IGlzRG9jdW1lbnRFbGVtZW50UmVuZGVy
ZXIoKTsKIAogICAgIGlmIChpc0RvY0VsZW1lbnRSZW5kZXJlciB8fCBpc0JvZHlSZW5kZXJlcikg
ewotICAgICAgICBhdXRvKiBkb2N1bWVudEVsZW1lbnRSZW5kZXJlciA9IGRvY3VtZW50KCkuZG9j
dW1lbnRFbGVtZW50KCktPnJlbmRlcmVyKCk7Ci0gICAgICAgIGF1dG8mIHZpZXdTdHlsZSA9IHZp
ZXcoKS5tdXRhYmxlU3R5bGUoKTsKLSAgICAgICAgYm9vbCByb290U3R5bGVDaGFuZ2VkID0gZmFs
c2U7Ci0gICAgICAgIGJvb2wgdmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkID0gZmFs
c2U7Ci0gICAgICAgIGF1dG8qIHJvb3RSZW5kZXJlciA9IGlzQm9keVJlbmRlcmVyID8gZG9jdW1l
bnRFbGVtZW50UmVuZGVyZXIgOiBudWxscHRyOwotCi0gICAgICAgIGF1dG8gcHJvcGFnYXRlV3Jp
dGluZ01vZGVUb1JlbmRlclZpZXdJZkFwcGxpY2FibGUgPSBbJl0gewotICAgICAgICAgICAgLy8g
UHJvcGFnYXRlIHRoZSBuZXcgd3JpdGluZyBtb2RlIGFuZCBkaXJlY3Rpb24gdXAgdG8gdGhlIFJl
bmRlclZpZXcuCi0gICAgICAgICAgICBpZiAoIWRvY3VtZW50RWxlbWVudFJlbmRlcmVyKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICghaXNCb2R5UmVuZGVyZXIgfHwg
IShzaG91bGRBcHBseUFueUNvbnRhaW5tZW50KCkgfHwgZG9jdW1lbnRFbGVtZW50UmVuZGVyZXIt
PnNob3VsZEFwcGx5QW55Q29udGFpbm1lbnQoKSkpIHsKLSAgICAgICAgICAgICAgICBpZiAodmll
d1N0eWxlLmRpcmVjdGlvbigpICE9IG5ld1N0eWxlLmRpcmVjdGlvbigpICYmIChpc0RvY0VsZW1l
bnRSZW5kZXJlciB8fCAhZG9jdW1lbnRFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGlj
aXRseVNldERpcmVjdGlvbigpKSkgewotICAgICAgICAgICAgICAgICAgICB2aWV3U3R5bGUuc2V0
RGlyZWN0aW9uKG5ld1N0eWxlLmRpcmVjdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICAgdmll
d0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzQm9keVJlbmRlcmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290UmVu
ZGVyZXItPm11dGFibGVTdHlsZSgpLnNldERpcmVjdGlvbihuZXdTdHlsZS5kaXJlY3Rpb24oKSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290U3R5bGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBzZXROZWVkc0xheW91dEFuZFBy
ZWZXaWR0aHNSZWNhbGMoKTsKLQotICAgICAgICAgICAgICAgICAgICB2aWV3KCkuZnJhbWVWaWV3
KCkudG9wQ29udGVudERpcmVjdGlvbkRpZENoYW5nZSgpOwotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIGlmICh2aWV3U3R5bGUud3JpdGluZ01vZGUoKSAhPSBuZXdTdHlsZS53
cml0aW5nTW9kZSgpICYmIChpc0RvY0VsZW1lbnRSZW5kZXJlciB8fCAhZG9jdW1lbnRFbGVtZW50
UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHZpZXdTdHlsZS5zZXRXcml0aW5nTW9kZShuZXdTdHlsZS53cml0aW5n
TW9kZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgdmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVD
aGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgdmlldygpLnNldEhvcml6b250YWxX
cml0aW5nTW9kZShuZXdTdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKTsKLSAgICAgICAg
ICAgICAgICAgICAgdmlldygpLm1hcmtBbGxEZXNjZW5kYW50c1dpdGhGbG9hdHNGb3JMYXlvdXQo
KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzQm9keVJlbmRlcmVyKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICByb290U3R5bGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJvb3RSZW5kZXJlci0+bXV0YWJsZVN0eWxlKCkuc2V0V3JpdGluZ01vZGUobmV3U3R5
bGUud3JpdGluZ01vZGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290UmVuZGVyZXIt
PnNldEhvcml6b250YWxXcml0aW5nTW9kZShuZXdTdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBzZXROZWVk
c0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIHByb3BhZ2F0ZVdyaXRpbmdNb2RlVG9SZW5kZXJW
aWV3SWZBcHBsaWNhYmxlKCk7Ci0KICNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKICAgICAgICAg
dmlldygpLmZyYW1lVmlldygpLnJlY2FsY3VsYXRlQmFzZUJhY2tncm91bmRDb2xvcigpOwogI2Vu
ZGlmCkBAIC00MDIsMTggKzM2Myw2IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgICAg
IHZpZXcoKS5mcmFtZVZpZXcoKS5yZWNhbGN1bGF0ZVNjcm9sbGJhck92ZXJsYXlTdHlsZSgpOwog
ICAgICAgICAKICAgICAgICAgY29uc3QgUGFnaW5hdGlvbiYgcGFnaW5hdGlvbiA9IHZpZXcoKS5m
cmFtZVZpZXcoKS5wYWdpbmF0aW9uKCk7Ci0gICAgICAgIGlmICh2aWV3RGlyZWN0aW9uT3JXcml0
aW5nTW9kZUNoYW5nZWQgJiYgcGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5h
dGVkKSB7Ci0gICAgICAgICAgICB2aWV3U3R5bGUuc2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRp
b25Nb2RlKHBhZ2luYXRpb24ubW9kZSk7Ci0gICAgICAgICAgICBpZiAodmlldygpLm11bHRpQ29s
dW1uRmxvdygpKQotICAgICAgICAgICAgICAgIHZpZXcoKS51cGRhdGVDb2x1bW5Qcm9ncmVzc2lv
bkZyb21TdHlsZSh2aWV3U3R5bGUpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAo
dmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkICYmIHZpZXcoKS5tdWx0aUNvbHVtbkZs
b3coKSkKLSAgICAgICAgICAgIHZpZXcoKS51cGRhdGVTdHlsZXNGb3JDb2x1bW5DaGlsZHJlbigp
OwotICAgICAgICAKLSAgICAgICAgaWYgKHJvb3RTdHlsZUNoYW5nZWQgJiYgaXM8UmVuZGVyQmxv
Y2tGbG93Pihyb290UmVuZGVyZXIpICYmIGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oKnJvb3RS
ZW5kZXJlcikubXVsdGlDb2x1bW5GbG93KCkpCi0gICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJC
bG9ja0Zsb3c+KCpyb290UmVuZGVyZXIpLnVwZGF0ZVN0eWxlc0ZvckNvbHVtbkNoaWxkcmVuKCk7
Ci0gICAgICAgIAogICAgICAgICBpZiAoaXNCb2R5UmVuZGVyZXIgJiYgcGFnaW5hdGlvbi5tb2Rl
ICE9IFBhZ2luYXRpb246OlVucGFnaW5hdGVkICYmIHBhZ2UoKS5wYWdpbmF0aW9uTGluZUdyaWRF
bmFibGVkKCkpIHsKICAgICAgICAgICAgIC8vIFByb3BhZ2F0ZSB0aGUgYm9keSBmb250IGJhY2sg
dXAgdG8gdGhlIFJlbmRlclZpZXcgYW5kIHVzZSBpdCBhcwogICAgICAgICAgICAgLy8gdGhlIGJh
c2lzIG9mIHRoZSBncmlkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmlu
ZGV4IDJiZTNhYWU3YTY3YS4uNWJjYWM4MDNmNDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCkBAIC05NCw2ICs5NCwyNSBAQCBSZW5kZXJWaWV3Ojp+UmVuZGVyVmll
dygpCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3JlbmRlcmVyQ291bnQgPT0gMSwgIkFsbCBv
dGhlciByZW5kZXJlcnMgaW4gdGhpcyByZW5kZXIgdHJlZSBzaG91bGQgaGF2ZSBiZWVuIGRlc3Ry
b3llZCIpOwogfQogCit2b2lkIFJlbmRlclZpZXc6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7CisgICAgUmVuZGVyQmxv
Y2tGbG93OjpzdHlsZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7CisKKyAgICBib29sIHdyaXRp
bmdNb2RlQ2hhbmdlZCA9IG9sZFN0eWxlICYmIHN0eWxlKCkud3JpdGluZ01vZGUoKSAhPSBvbGRT
dHlsZS0+d3JpdGluZ01vZGUoKTsKKyAgICBib29sIGRpcmVjdGlvbkNoYW5nZWQgPSBvbGRTdHls
ZSAmJiBzdHlsZSgpLmRpcmVjdGlvbigpICE9IG9sZFN0eWxlLT5kaXJlY3Rpb24oKTsKKworICAg
IGlmICh3cml0aW5nTW9kZUNoYW5nZWQgfHwgZGlyZWN0aW9uQ2hhbmdlZCkgeworICAgICAgICBh
dXRvJiBwYWdpbmF0aW9uID0gZnJhbWVWaWV3KCkucGFnaW5hdGlvbigpOworICAgICAgICBpZiAo
cGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5hdGVkKQorICAgICAgICAgICAg
bXV0YWJsZVN0eWxlKCkuc2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2luYXRp
b24ubW9kZSk7CisgICAgICAgIGlmIChtdWx0aUNvbHVtbkZsb3coKSkKKyAgICAgICAgICAgIHVw
ZGF0ZVN0eWxlc0ZvckNvbHVtbkNoaWxkcmVuKCk7CisgICAgfQorCisgICAgaWYgKGRpcmVjdGlv
bkNoYW5nZWQpCisgICAgICAgIGZyYW1lVmlldygpLnRvcENvbnRlbnREaXJlY3Rpb25EaWRDaGFu
Z2UoKTsKK30KKwogdm9pZCBSZW5kZXJWaWV3OjpzY2hlZHVsZUxhenlSZXBhaW50KFJlbmRlckJv
eCYgcmVuZGVyZXIpCiB7CiAgICAgaWYgKHJlbmRlcmVyLnJlbmRlckJveE5lZWRzTGF6eVJlcGFp
bnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDdhZDExMTQyYTJh
Zi4uNmRmMzNiYWNhYTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAg
LTIxNCw2ICsyMTQsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2Vha0hhc2hTZXQ8Y29uc3QgUmVu
ZGVyQm94PiYgY29udGFpbmVyUXVlcnlCb3hlcygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbmVy
UXVlcnlCb3hlczsgfQogCiBwcml2YXRlOgorICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVE
aWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOworCiAgICAg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVz
TW9kZT4sIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBvdmVycmlkZTsKICAgICBjb25zdCBSZW5kZXJP
YmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE9wdGlvblNldDxNYXBDb29yZGluYXRl
c01vZGU+LCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKaW5k
ZXggYjQ4NjE0YjI3NDkyLi40MTkwMjA2MzgxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcApAQCAtMTA1LDYg
KzEwNSw5IEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OmNvbW1pdChzdGQ6OnVuaXF1ZV9wdHI8
Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVVcGRhdGUpCiAKICAgICBtX3N0eWxlVXBkYXRlID0g
V1RGTW92ZShzdHlsZVVwZGF0ZSk7CiAKKyAgICBpZiAobV9zdHlsZVVwZGF0ZS0+cm9vdFN0eWxl
VXBkYXRlKCkpCisgICAgICAgIG1fZG9jdW1lbnQucmVuZGVyVmlldygpLT5zZXRTdHlsZShSZW5k
ZXJTdHlsZTo6Y2xvbmUoKm1fc3R5bGVVcGRhdGUtPnJvb3RTdHlsZVVwZGF0ZSgpKSk7CisKICAg
ICBmb3IgKGF1dG8mIHJvb3QgOiBtX3N0eWxlVXBkYXRlLT5yb290cygpKSB7CiAgICAgICAgIGF1
dG8qIHJlbmRlcmluZ1Jvb3QgPSBmaW5kUmVuZGVyaW5nUm9vdCgqcm9vdCk7CiAgICAgICAgIGlm
ICghcmVuZGVyaW5nUm9vdCkKQEAgLTUxNiw2ICs1MTksMzkgQEAgdm9pZCBSZW5kZXJUcmVlVXBk
YXRlcjo6c3RvcmVQcmV2aW91c1JlbmRlcmVyKE5vZGUmIG5vZGUpCiAgICAgcmVuZGVyaW5nUGFy
ZW50KCkucHJldmlvdXNDaGlsZFJlbmRlcmVyID0gcmVuZGVyZXI7CiB9CiAKK3ZvaWQgUmVuZGVy
VHJlZVVwZGF0ZXI6OnVwZGF0ZVJlbmRlclZpZXdTdHlsZSgpCit7CisgICAgYXV0byogYm9keSA9
IG1fZG9jdW1lbnQuYm9keU9yRnJhbWVzZXQoKTsKKyAgICBhdXRvKiBib2R5U3R5bGUgPSBib2R5
ID8gYm9keS0+cmVuZGVyT3JEaXNwbGF5Q29udGVudHNTdHlsZSgpIDogbnVsbHB0cjsKKyAgICBh
dXRvJiBkb2N1bWVudEVsZW1lbnRTdHlsZSA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkt
PnJlbmRlcmVyKCktPnN0eWxlKCk7CisKKyAgICBhdXRvIHdyaXRpbmdNb2RlID0gWyZdIHsKKyAg
ICAgICAgaWYgKGRvY3VtZW50RWxlbWVudFN0eWxlLmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9k
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50RWxlbWVudFN0eWxlLndyaXRpbmdNb2Rl
KCk7CisgICAgICAgIGlmIChib2R5U3R5bGUpCisgICAgICAgICAgICByZXR1cm4gYm9keVN0eWxl
LT53cml0aW5nTW9kZSgpOworICAgICAgICByZXR1cm4gV3JpdGluZ01vZGU6OlRvcFRvQm90dG9t
OworICAgIH0oKTsKKworICAgIGF1dG8gZGlyZWN0aW9uID0gWyZdIHsKKyAgICAgICAgaWYgKGRv
Y3VtZW50RWxlbWVudFN0eWxlLmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKKyAgICAgICAg
ICAgIHJldHVybiBkb2N1bWVudEVsZW1lbnRTdHlsZS5kaXJlY3Rpb24oKTsKKyAgICAgICAgaWYg
KGJvZHlTdHlsZSkKKyAgICAgICAgICAgIHJldHVybiBib2R5U3R5bGUtPmRpcmVjdGlvbigpOwor
ICAgICAgICByZXR1cm4gVGV4dERpcmVjdGlvbjo6TFRSOworICAgIH0oKTsKKworICAgIGF1dG8m
IHZpZXdTdHlsZSA9IG1fZG9jdW1lbnQucmVuZGVyVmlldygpLT5zdHlsZSgpOworICAgIGlmICh3
cml0aW5nTW9kZSA9PSB2aWV3U3R5bGUud3JpdGluZ01vZGUoKSAmJiBkaXJlY3Rpb24gPT0gdmll
d1N0eWxlLmRpcmVjdGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSU1YRTogUmVu
ZGVyaW5nIHNob3VsZCBqdXN0IHJlYWQgdGhlIHZhbHVlcyBmcm9tIHRoZSBjb3JyZWN0IHBsYWNl
IGluc3RlYWQgb2YgcmVxdWlyaW5nIHB1c2hpbmcgdGhlc2UgdG8gdGhlIFJlbmRlclZpZXcgc3R5
bGUuCisgICAgYXV0byBuZXdWaWV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUodmlld1N0eWxl
KTsKKyAgICBuZXdWaWV3U3R5bGUuc2V0V3JpdGluZ01vZGUod3JpdGluZ01vZGUpOworICAgIG5l
d1ZpZXdTdHlsZS5zZXREaXJlY3Rpb24oZGlyZWN0aW9uKTsKKyAgICBtX2RvY3VtZW50LnJlbmRl
clZpZXcoKS0+c2V0U3R5bGUoV1RGTW92ZShuZXdWaWV3U3R5bGUpKTsKK30KKwogdm9pZCBSZW5k
ZXJUcmVlVXBkYXRlcjo6dGVhckRvd25SZW5kZXJlcnMoRWxlbWVudCYgcm9vdCkKIHsKICAgICBh
dXRvKiB2aWV3ID0gcm9vdC5kb2N1bWVudCgpLnJlbmRlclZpZXcoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgKaW5kZXgg
YWJjYzlmMGVjMmRmLi5iNTgyNGMzMGQ4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oCkBAIC02MSw2ICs2MSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVFbGVtZW50UmVuZGVyZXIoRWxlbWVudCYsIGNvbnN0
IFN0eWxlOjpFbGVtZW50VXBkYXRlJik7CiAgICAgdm9pZCB1cGRhdGVTVkdSZW5kZXJlcihFbGVt
ZW50Jik7CiAgICAgdm9pZCB1cGRhdGVSZW5kZXJlclN0eWxlKFJlbmRlckVsZW1lbnQmLCBSZW5k
ZXJTdHlsZSYmLCBTdHlsZURpZmZlcmVuY2UpOworICAgIHZvaWQgdXBkYXRlUmVuZGVyVmlld1N0
eWxlKCk7CiAgICAgdm9pZCBjcmVhdGVSZW5kZXJlcihFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7
CiAgICAgdm9pZCB1cGRhdGVCZWZvcmVEZXNjZW5kYW50cyhFbGVtZW50JiwgY29uc3QgU3R5bGU6
OkVsZW1lbnRVcGRhdGUqKTsKICAgICB2b2lkIHVwZGF0ZUFmdGVyRGVzY2VuZGFudHMoRWxlbWVu
dCYsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QWRqdXN0ZXIuY3BwCmluZGV4IDE3NTIyMzJlNTA4MS4uMzBhM2JhNmI5NDE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUg
IlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKKyNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5o
IgogI2luY2x1ZGUgIlNWR0dyYXBoaWNzRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CkBAIC02MCw2ICs2MSw3IEBACiAjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlLmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU3R5bGVV
cGRhdGUuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVHlwZXMu
aCIKICNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgpAQCAtNzcwLDYgKzc3Miw2MCBA
QCB2b2lkIEFkanVzdGVyOjphZGp1c3RGb3JTaXRlU3BlY2lmaWNRdWlya3MoUmVuZGVyU3R5bGUm
IHN0eWxlKSBjb25zdAogI2VuZGlmCiB9CiAKK3ZvaWQgQWRqdXN0ZXI6OnByb3BhZ2F0ZVdyaXRp
bmdNb2RlQW5kRGlyZWN0aW9uKFVwZGF0ZSYgdXBkYXRlLCBjb25zdCBEb2N1bWVudCYgZG9jdW1l
bnQpCit7CisgICAgYXV0byogYm9keSA9IGRvY3VtZW50LmJvZHlPckZyYW1lc2V0KCk7CisgICAg
YXV0byogYm9keVN0eWxlID0gYm9keSA/IHVwZGF0ZS5lbGVtZW50U3R5bGUoKmJvZHkpIDogbnVs
bHB0cjsKKyAgICBhdXRvKiBkb2N1bWVudEVsZW1lbnRTdHlsZSA9IHVwZGF0ZS5lbGVtZW50U3R5
bGUoKmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpKTsKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVu
dFN0eWxlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHdyaXRpbmdNb2RlID0gWyZdIHsK
KyAgICAgICAgaWYgKGRvY3VtZW50RWxlbWVudFN0eWxlLT5oYXNFeHBsaWNpdGx5U2V0V3JpdGlu
Z01vZGUoKSkKKyAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVsZW1lbnRTdHlsZS0+d3JpdGlu
Z01vZGUoKTsKKyAgICAgICAgaWYgKGJvZHlTdHlsZSAmJiBib2R5U3R5bGUtPmhhc0V4cGxpY2l0
bHlTZXRXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIGJvZHlTdHlsZS0+d3JpdGlu
Z01vZGUoKTsKKyAgICAgICAgcmV0dXJuIFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbTsKKyAgICB9
KCk7CisKKyAgICBhdXRvIGRpcmVjdGlvbiA9IFsmXSB7CisgICAgICAgIGlmIChkb2N1bWVudEVs
ZW1lbnRTdHlsZS0+aGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKQorICAgICAgICAgICAgcmV0
dXJuIGRvY3VtZW50RWxlbWVudFN0eWxlLT5kaXJlY3Rpb24oKTsKKyAgICAgICAgaWYgKGJvZHlT
dHlsZSAmJiBib2R5U3R5bGUtPmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKKyAgICAgICAg
ICAgIHJldHVybiBib2R5U3R5bGUtPmRpcmVjdGlvbigpOworICAgICAgICByZXR1cm4gVGV4dERp
cmVjdGlvbjo6TFRSOworICAgIH0oKTsKKworICAgIC8vIEZJTVhFOiBSZW5kZXJpbmcgc2hvdWxk
IGp1c3QgcmVhZCB0aGUgdmFsdWVzIGZyb20gYm9keS9kb2N1bWVudCBlbGVtZW50IGluc3RlYWQg
b2YgcmVxdWlyaW5nIGF3a3dhcmRseSBwcm9wYWdhdGluZyB0aGVzZSB0byB0aGUgYW5jZXN0b3Ig
c3R5bGVzLgorICAgIGF1dG8mIHZpZXdTdHlsZSA9IGRvY3VtZW50LnJlbmRlclZpZXcoKS0+c3R5
bGUoKTsKKyAgICBpZiAod3JpdGluZ01vZGUgIT0gdmlld1N0eWxlLndyaXRpbmdNb2RlKCkgfHwg
ZGlyZWN0aW9uICE9IHZpZXdTdHlsZS5kaXJlY3Rpb24oKSkgeworICAgICAgICBhdXRvIG5ld1Jv
b3RTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cih2aWV3U3R5bGUpOworICAgICAgICBuZXdS
b290U3R5bGUtPnNldFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKKyAgICAgICAgbmV3Um9vdFN0
eWxlLT5zZXREaXJlY3Rpb24oZGlyZWN0aW9uKTsKKyAgICAgICAgdXBkYXRlLmFkZFJvb3RTdHls
ZVVwZGF0ZShXVEZNb3ZlKG5ld1Jvb3RTdHlsZSkpOworICAgIH0KKworICAgIGlmICh3cml0aW5n
TW9kZSAhPSBkb2N1bWVudEVsZW1lbnRTdHlsZS0+d3JpdGluZ01vZGUoKSB8fCBkaXJlY3Rpb24g
IT0gZG9jdW1lbnRFbGVtZW50U3R5bGUtPmRpcmVjdGlvbigpKSB7CisgICAgICAgIGF1dG8qIGRv
Y3VtZW50RWxlbWVudFVwZGF0ZSA9IHVwZGF0ZS5lbGVtZW50VXBkYXRlKCpkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQoKSk7CisgICAgICAgIGlmICghZG9jdW1lbnRFbGVtZW50VXBkYXRlKSB7Cisg
ICAgICAgICAgICB1cGRhdGUuYWRkRWxlbWVudCgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCks
IG51bGxwdHIsIHsgUmVuZGVyU3R5bGU6OmNsb25lUHRyKCpkb2N1bWVudEVsZW1lbnRTdHlsZSkg
fSk7CisgICAgICAgICAgICBkb2N1bWVudEVsZW1lbnRVcGRhdGUgPSB1cGRhdGUuZWxlbWVudFVw
ZGF0ZSgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICB9CisKKyAgICAgICAg
ZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5zdHlsZS0+c2V0V3JpdGluZ01vZGUod3JpdGluZ01vZGUp
OworICAgICAgICBkb2N1bWVudEVsZW1lbnRVcGRhdGUtPnN0eWxlLT5zZXREaXJlY3Rpb24oZGly
ZWN0aW9uKTsKKyAgICAgICAgZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5jaGFuZ2UgPSBkZXRlcm1p
bmVDaGFuZ2UoKmRvY3VtZW50RWxlbWVudFN0eWxlLCAqZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5z
dHlsZSk7CisgICAgfQorfQorCit2b2lkIEFkanVzdGVyOjpyZW1vdmVJbXBsaWNpdFdyaXRpbmdN
b2RlQW5kRGlyZWN0aW9uKFJlbmRlclN0eWxlJiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlLmhh
c0V4cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKQorICAgICAgICBzdHlsZS5zZXRXcml0aW5nTW9k
ZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdyaXRpbmdNb2RlKCkpOworICAgIGlmICghc3R5bGUuaGFz
RXhwbGljaXRseVNldERpcmVjdGlvbigpKQorICAgICAgICBzdHlsZS5zZXREaXJlY3Rpb24oUmVu
ZGVyU3R5bGU6OmluaXRpYWxEaXJlY3Rpb24oKSk7Cit9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRP
U0laSU5HKQogc3RhdGljIGJvb2wgaGFzVGV4dENoaWxkKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgKaW5kZXggZGU4YTg1OGQ5NWZmLi44
MjkxYjgyY2Q4NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgKQEAgLTUxLDYg
KzUxLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgYWRqdXN0U1ZHRWxlbWVudFN0eWxl
KFJlbmRlclN0eWxlJiwgY29uc3QgU1ZHRWxlbWVudCYpOwogICAgIHN0YXRpYyB2b2lkIGFkanVz
dEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclJvb3RTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0
IERvY3VtZW50Jik7CisgICAgc3RhdGljIHZvaWQgcHJvcGFnYXRlV3JpdGluZ01vZGVBbmREaXJl
Y3Rpb24oVXBkYXRlJiwgY29uc3QgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVJ
bXBsaWNpdFdyaXRpbmdNb2RlQW5kRGlyZWN0aW9uKFJlbmRlclN0eWxlJik7CiAKICNpZiBFTkFC
TEUoVEVYVF9BVVRPU0laSU5HKQogICAgIHN0cnVjdCBBZGp1c3RtZW50Rm9yVGV4dEF1dG9zaXpp
bmcgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQu
Y3BwCmluZGV4IDFlYTVjYWFlODA1OS4uYTU0M2RhM2M2YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCkBAIC03MSwyNSArNzEsNyBA
QCBSZW5kZXJTdHlsZSByZXNvbHZlRm9yRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
KQogI2VuZGlmCiAKICAgICBBZGp1c3Rlcjo6YWRqdXN0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVz
Rm9yUm9vdFN0eWxlKGRvY3VtZW50U3R5bGUsIGRvY3VtZW50KTsKLQotICAgIEVsZW1lbnQqIGRv
Y0VsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKTsKLSAgICBSZW5kZXJPYmplY3Qq
IGRvY0VsZW1lbnRSZW5kZXJlciA9IGRvY0VsZW1lbnQgPyBkb2NFbGVtZW50LT5yZW5kZXJlcigp
IDogbnVsbHB0cjsKLSAgICBpZiAoZG9jRWxlbWVudFJlbmRlcmVyKSB7Ci0gICAgICAgIC8vIFVz
ZSB0aGUgZGlyZWN0aW9uIGFuZCB3cml0aW5nLW1vZGUgb2YgdGhlIGJvZHkgdG8gc2V0IHRoZQot
ICAgICAgICAvLyB2aWV3cG9ydCdzIGRpcmVjdGlvbiBhbmQgd3JpdGluZy1tb2RlIHVubGVzcyB0
aGUgcHJvcGVydHkgaXMgc2V0IG9uIHRoZSBkb2N1bWVudCBlbGVtZW50LgotICAgICAgICAvLyBJ
ZiB0aGVyZSBpcyBubyBib2R5LCB0aGVuIHVzZSB0aGUgZG9jdW1lbnQgZWxlbWVudC4KLSAgICAg
ICAgYXV0byogYm9keSA9IGRvY3VtZW50LmJvZHlPckZyYW1lc2V0KCk7Ci0gICAgICAgIFJlbmRl
ck9iamVjdCogYm9keVJlbmRlcmVyID0gYm9keSA/IGJvZHktPnJlbmRlcmVyKCkgOiBudWxscHRy
OwotICAgICAgICBpZiAoYm9keVJlbmRlcmVyICYmICFkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxl
KCkuaGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpCi0gICAgICAgICAgICBkb2N1bWVudFN0
eWxlLnNldFdyaXRpbmdNb2RlKGJvZHlSZW5kZXJlci0+c3R5bGUoKS53cml0aW5nTW9kZSgpKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgZG9jdW1lbnRTdHlsZS5zZXRXcml0aW5nTW9kZShk
b2NFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkud3JpdGluZ01vZGUoKSk7Ci0gICAgICAgIGlmIChi
b2R5UmVuZGVyZXIgJiYgIWRvY0VsZW1lbnRSZW5kZXJlci0+c3R5bGUoKS5oYXNFeHBsaWNpdGx5
U2V0RGlyZWN0aW9uKCkpCi0gICAgICAgICAgICBkb2N1bWVudFN0eWxlLnNldERpcmVjdGlvbihi
b2R5UmVuZGVyZXItPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBkb2N1bWVudFN0eWxlLnNldERpcmVjdGlvbihkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxl
KCkuZGlyZWN0aW9uKCkpOwotICAgIH0KLQorICAgIAogICAgIGNvbnN0IFBhZ2luYXRpb24mIHBh
Z2luYXRpb24gPSByZW5kZXJWaWV3LmZyYW1lVmlldygpLnBhZ2luYXRpb24oKTsKICAgICBpZiAo
cGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5hdGVkKSB7CiAgICAgICAgIGRv
Y3VtZW50U3R5bGUuc2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2luYXRpb24u
bW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDIzMDM3YmI5
NWE3MC4uOTMxZmZjZWY3ZDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNw
cApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBl
bGVtZW50LmRvY3VtZW50KCk7CiAgICAgICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudCgpOwogICAgICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCB8fCBk
b2N1bWVudEVsZW1lbnQgPT0gJmVsZW1lbnQpCi0gICAgICAgICAgICBtX3Jvb3RFbGVtZW50U3R5
bGUgPSBkb2N1bWVudC5yZW5kZXJTdHlsZSgpOworICAgICAgICAgICAgbV9yb290RWxlbWVudFN0
eWxlID0gZG9jdW1lbnQucm9vdFN0eWxlKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1f
cm9vdEVsZW1lbnRTdHlsZSA9IGRvY3VtZW50RWxlbWVudFN0eWxlID8gZG9jdW1lbnRFbGVtZW50
U3R5bGUgOiBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CiAgICAgfQpAQCAtMTU5LDcg
KzE1OSw3IEBAIFJlc29sdmVyOjpSZXNvbHZlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAg
IG1fbWVkaWFRdWVyeUV2YWx1YXRvciA9IExlZ2FjeU1lZGlhUXVlcnlFdmFsdWF0b3IgeyB9Owog
CiAgICAgaWYgKGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50KCkpIHsKLSAgICAgICAgbV9yb290RGVmYXVsdFN0eWxlID0gc3R5bGVGb3JFbGVtZW50KCpk
b2N1bWVudEVsZW1lbnQsIHsgbV9kb2N1bWVudC5yZW5kZXJTdHlsZSgpIH0sIFJ1bGVNYXRjaGlu
Z0JlaGF2aW9yOjpNYXRjaE9ubHlVc2VyQWdlbnRSdWxlcykucmVuZGVyU3R5bGU7CisgICAgICAg
IG1fcm9vdERlZmF1bHRTdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgqZG9jdW1lbnRFbGVtZW50LCB7
IG1fZG9jdW1lbnQucm9vdFN0eWxlKCkgfSwgUnVsZU1hdGNoaW5nQmVoYXZpb3I6Ok1hdGNoT25s
eVVzZXJBZ2VudFJ1bGVzKS5yZW5kZXJTdHlsZTsKICAgICAgICAgLy8gVHVybiBvZmYgYXNzZXJ0
aW9uIGFnYWluc3QgZm9udCBsb29rdXBzIGR1cmluZyBzdHlsZSByZXNvbHZlciBpbml0aWFsaXph
dGlvbi4gV2UgbWF5IG5lZWQgcm9vdCBzdHlsZSBmb250IGZvciBtZWRpYSBxdWVyaWVzLgogICAg
ICAgICBtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpLmluY3JlbWVudElzQ29tcHV0aW5nUm9vdFN0
eWxlRm9udCgpOwogICAgICAgICBtX3Jvb3REZWZhdWx0U3R5bGUtPmZvbnRDYXNjYWRlKCkudXBk
YXRlKCZtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpKTsKQEAgLTQ4MSw3ICs0ODEsNyBAQCBzdGQ6
OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJ
bmRleCkKICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCkKICAgICAgICAgcmV0dXJuIFJlbmRlclN0
eWxlOjpjcmVhdGVQdHIoKTsKIAotICAgIGF1dG8gc3RhdGUgPSBTdGF0ZSgqZG9jdW1lbnRFbGVt
ZW50LCBtX2RvY3VtZW50LnJlbmRlclN0eWxlKCkpOworICAgIGF1dG8gc3RhdGUgPSBTdGF0ZSgq
ZG9jdW1lbnRFbGVtZW50LCBtX2RvY3VtZW50LnJvb3RTdHlsZSgpKTsKIAogICAgIHN0YXRlLnNl
dFN0eWxlKFJlbmRlclN0eWxlOjpjcmVhdGVQdHIoKSk7CiAgICAgc3RhdGUuc3R5bGUoKS0+aW5o
ZXJpdEZyb20oKnN0YXRlLnJvb3RFbGVtZW50U3R5bGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggZjM0NmZkZjVkZTllLi41NTg0MmMwNDQ0YTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKQEAgLTk3LDcg
Kzk3LDcgQEAgVHJlZVJlc29sdmVyOjpTY29wZTo6flNjb3BlKCkKIAogVHJlZVJlc29sdmVyOjpQ
YXJlbnQ6OlBhcmVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBlbGVtZW50KG51bGxwdHIp
Ci0gICAgLCBzdHlsZSgqZG9jdW1lbnQucmVuZGVyU3R5bGUoKSkKKyAgICAsIHN0eWxlKCpkb2N1
bWVudC5yb290U3R5bGUoKSkKIHsKIH0KIApAQCAtMjM5LDggKzIzOSw2IEBAIGF1dG8gVHJlZVJl
c29sdmVyOjpyZXNvbHZlRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBSZXNvbHV0aW9uVHlwZSBy
ZXNvbHV0aW9uVHlwCiAgICAgYXV0byBkZXNjZW5kYW50c1RvUmVzb2x2ZSA9IGNvbXB1dGVEZXNj
ZW5kYW50c1RvUmVzb2x2ZSh1cGRhdGUuY2hhbmdlLCBlbGVtZW50LnN0eWxlVmFsaWRpdHkoKSwg
cGFyZW50KCkuZGVzY2VuZGFudHNUb1Jlc29sdmUpOwogCiAgICAgaWYgKCZlbGVtZW50ID09IG1f
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpIHsKLSAgICAgICAgbV9kb2N1bWVudEVsZW1lbnRT
dHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cigqdXBkYXRlLnN0eWxlKTsKLQogICAgICAgICBp
ZiAoIWV4aXN0aW5nU3R5bGUgfHwgZXhpc3RpbmdTdHlsZS0+Y29tcHV0ZWRGb250UGl4ZWxTaXpl
KCkgIT0gdXBkYXRlLnN0eWxlLT5jb21wdXRlZEZvbnRQaXhlbFNpemUoKSkgewogICAgICAgICAg
ICAgLy8gInJlbSIgdW5pdHMgYXJlIHJlbGF0aXZlIHRvIHRoZSBkb2N1bWVudCBlbGVtZW50J3Mg
Zm9udCBzaXplIHNvIHdlIG5lZWQgdG8gcmVjb21wdXRlIGV2ZXJ5dGhpbmcuCiAgICAgICAgICAg
ICBzY29wZSgpLnJlc29sdmVyLT5pbnZhbGlkYXRlTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlKCk7
CkBAIC04NDQsNiArODQyLDEzIEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRU
cmVlKCkKICAgICAgICAgICAgIGNsZWFyTmVlZHNTdHlsZVJlc29sdXRpb24oZWxlbWVudCk7CiAg
ICAgICAgIH0KIAorICAgICAgICBpZiAoc3R5bGUgJiYgJmVsZW1lbnQgPT0gbV9kb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQoKSkgeworICAgICAgICAgICAgbV9kb2N1bWVudEVsZW1lbnRTdHlsZSA9
IFJlbmRlclN0eWxlOjpjbG9uZVB0cigqc3R5bGUpOworICAgICAgICAgICAgLy8gRG9jdW1lbnQg
ZWxlbWVudCBzdHlsZSBtYXkgaGF2ZSBnb3QgYWRqdXN0ZWQgYmFzZWQgb24gYm9keSBzdHlsZSBi
dXQgd2UgZG9uJ3Qgd2FudCB0byBpbmhlcml0IHRob3NlIGFkanVzdG1lbnRzLgorICAgICAgICAg
ICAgQWRqdXN0ZXI6OnJlbW92ZUltcGxpY2l0V3JpdGluZ01vZGVBbmREaXJlY3Rpb24oKm1fZG9j
dW1lbnRFbGVtZW50U3R5bGUpOworICAgICAgICAgICAgc3R5bGUgPSBtX2RvY3VtZW50RWxlbWVu
dFN0eWxlLmdldCgpOworICAgICAgICB9CisKICAgICAgICAgaWYgKCFzdHlsZSkKICAgICAgICAg
ICAgIHJlc2V0U3R5bGVGb3JOb25SZW5kZXJlZERlc2NlbmRhbnRzKGVsZW1lbnQpOwogCkBAIC05
NDcsNiArOTUyLDggQEAgc3RkOjp1bmlxdWVfcHRyPFVwZGF0ZT4gVHJlZVJlc29sdmVyOjpyZXNv
bHZlKCkKICAgICBpZiAobV91cGRhdGUtPnJvb3RzKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4geyB9OwogCisgICAgQWRqdXN0ZXI6OnByb3BhZ2F0ZVdyaXRpbmdNb2RlQW5kRGlyZWN0aW9u
KCptX3VwZGF0ZSwgbV9kb2N1bWVudCk7CisKICAgICByZXR1cm4gV1RGTW92ZShtX3VwZGF0ZSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCmluZGV4IGJiMzFkNDdlZDEzZC4uZjdm
ODk2OWI5OTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKQEAgLTY2LDYgKzY2LDgg
QEAgcHVibGljOgogCiAgICAgY29uc3QgVGV4dFVwZGF0ZSogdGV4dFVwZGF0ZShjb25zdCBUZXh0
JikgY29uc3Q7CiAKKyAgICBjb25zdCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlVXBkYXRlKCkgY29u
c3QgeyByZXR1cm4gbV9yb290U3R5bGVVcGRhdGUuZ2V0KCk7IH0KKwogICAgIGNvbnN0IFJlbmRl
clN0eWxlKiBlbGVtZW50U3R5bGUoY29uc3QgRWxlbWVudCYpIGNvbnN0OwogICAgIFJlbmRlclN0
eWxlKiBlbGVtZW50U3R5bGUoY29uc3QgRWxlbWVudCYpOwogCkBAIC03OCw2ICs4MCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGFkZFRleHQoVGV4dCYsIEVsZW1lbnQqIHBhcmVudCwgVGV4dFVwZGF0
ZSYmKTsKICAgICB2b2lkIGFkZFRleHQoVGV4dCYsIFRleHRVcGRhdGUmJik7CiAgICAgdm9pZCBh
ZGRTVkdSZW5kZXJlclVwZGF0ZShTVkdFbGVtZW50Jik7CisgICAgdm9pZCBhZGRSb290U3R5bGVV
cGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZSkgeyBtX3Jvb3RTdHlsZVVw
ZGF0ZSA9IFdURk1vdmUoc3R5bGUpOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBhZGRQb3NzaWJs
ZVJvb3QoRWxlbWVudCopOwpAQCAtODYsNiArODksNyBAQCBwcml2YXRlOgogICAgIExpc3RIYXNo
U2V0PFJlZlB0cjxDb250YWluZXJOb2RlPj4gbV9yb290czsKICAgICBIYXNoTWFwPFJlZlB0cjxj
b25zdCBFbGVtZW50PiwgRWxlbWVudFVwZGF0ZT4gbV9lbGVtZW50czsKICAgICBIYXNoTWFwPFJl
ZlB0cjxjb25zdCBUZXh0PiwgVGV4dFVwZGF0ZT4gbV90ZXh0czsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVuZGVyU3R5bGU+IG1fcm9vdFN0eWxlVXBkYXRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHktZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5LWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iM2U4
NjMzYTc0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9k
ZS93cml0aW5nLW1vZGUtYm9keS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEgQEAKK1RoaXMgc2hv
dWxkIGJlIGhvcml6b250YWwuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmct
bW9kZS93cml0aW5nLW1vZGUtYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1v
ZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjZlZTFkNTY1N2FkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5Lmh0bWwKQEAgLTAsMCArMSw3IEBACis8
cD5UaGlzIHNob3VsZCBiZSBob3Jpem9udGFsLjwvcD4KKzxzY3JpcHQ+Citjb25zdCB0YXJnZXQg
PSBkb2N1bWVudC5ib2R5OwordGFyZ2V0LnN0eWxlLndyaXRpbmdNb2RlID0gJ3ZlcnRpY2FsLXJs
JzsKK3RhcmdldC5vZmZzZXRMZWZ0OwordGFyZ2V0LnN0eWxlLndyaXRpbmdNb2RlID0gJyc7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRp
bmctbW9kZS1kb2N1bWVudC1lbGVtZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjNlODYzM2E3NDE4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1t
b2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxIEBACitUaGlzIHNo
b3VsZCBiZSBob3Jpem9udGFsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5n
LW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44YjRmMTg3MGMwOWYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9j
dW1lbnQtZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPHA+VGhpcyBzaG91bGQgYmUgaG9y
aXpvbnRhbC48L3A+Cis8c2NyaXB0PgorY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50OwordGFyZ2V0LnN0eWxlLndyaXRpbmdNb2RlID0gJ3ZlcnRpY2FsLXJsJzsKK3Rhcmdl
dC5vZmZzZXRMZWZ0OwordGFyZ2V0LnN0eWxlLndyaXRpbmdNb2RlID0gJyc7Cis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463406</attachid>
            <date>2022-11-04 08:20:47 -0700</date>
            <delta_ts>2022-11-04 09:07:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185729-20221104172045.patch</filename>
            <type>text/plain</type>
            <size>28675</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSBjYzc4Y2NhZGUwN2E0NmZkMzNmZDlmZmU0YzgzMTIyNzMwNDE3MzRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBGcmksIDQgTm92IDIwMjIgMTM6MDA6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBUaGUgZWZm
ZWN0IG9mIHdyaXRpbmctbW9kZSBwcm9wZXJ0eSByZW1haW5zIGFmdGVyIHRoZQogcHJvcGVydHkg
aXMgcmVtb3ZlZCAob24gdGhlIHJvb3QgZWxlbWVudCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU3MjkgcmRhcjovLzk3MDkxOTkwCgpSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KClRoZXJlIGlzIGEgc3R5bGUgY3ljbGUgd2hlcmUgdGhlIHJvb3Qgd3JpdGlu
Zy1tb2RlIG1heSBkZXBlbmQgb24gdGhlIGRvY3VtZW50IGVsZW1lbnQgd3JpdGluZy1tb2RlIHdo
aWNoCmluIHR1cm4gbWF5IGRlcGVuZCBvbiB0aGUgYm9keSdzIChjb21wdXRlZCBkdXJpbmcgcHJl
dmlldyBzdHlsZSB1cGRhdGUpLiBUaGVzZSBjYW4gdGhlbiBnZXQgaW5oZXJpdGVkIGJhY2sKdG8g
dGhlIGJvZHkgc3R5bGUuIFRoZSByZXN1bHRpbmcgY29uZnVzaW9uIGNhdXNlcyB2YXJpb3VzIGlz
c3Vlcy4KClRoaXMgcGF0Y2ggZW5zdXJlcyB3ZSBkbyBzdHlsZSByZXNvbHV0aW9uIHVzaW5nIGNs
ZWFuIHJvb3Qgc3R5bGVzIHdpdGhvdXQgd3JpdGluZy1tb2RlL2RpcmVjdGlvbiBtdXRhdGlvbnMu
ClRoZSBwcm9wYWdhdGlvbiB1cHdhcmRzIGlzIGRvbmUgYXQgdGhlIGVuZCBvZiB0aGUgcmVzb2x1
dGlvbi4gVGhpcyByZXBsYWNlcyB0aGUgb2xkIHByb3BhZ2F0aW9uIGNvZGUgaW4KcmVuZGVyIHRy
ZWUuCgoqIExheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5LWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgoqIExheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRp
bmctbW9kZS1ib2R5Lmh0bWw6IEFkZGVkLgoqIExheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2Rl
L3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgoqIExh
eW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50
Lmh0bWw6IEFkZGVkLgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3Jl
OjpEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKToKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aDoKKFdlYkNvcmU6OkRvY3VtZW50Ojpyb290U3R5bGUgY29uc3QpOgoKTWFpbnRhaW4gY2xlYW4g
cm9vdCBzdHlsZS4KCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihX
ZWJDb3JlOjpSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKToKClJlbW92ZSBzdHlsZSBtdXRhdGlu
ZyBwcm9wYWdhdGlvbiBjb2RlLgoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHA6CgpIYW5kbGUgdmlldyBpbnZhbGlkYXRpb24gZm9yIHdyaXRpbmctbW9kZS9kaXJlY3Rp
b24uIFRoaXMgaXMgbW92ZWQgZnJvbSBSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlLgoKKFdlYkNv
cmU6OlJlbmRlclZpZXc6OnN0eWxlRGlkQ2hhbmdlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlVXBkYXRlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6Y29tbWl0KToK
ClVwZGF0ZSB0aGUgdmlldyBzdHlsZSBmaXJzdC4KCihXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRl
cjo6dXBkYXRlUmVuZGVyVmlld1N0eWxlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFk
anVzdGVyLmNwcDoKKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6cHJvcGFnYXRlV3JpdGluZ01v
ZGVBbmREaXJlY3Rpb24pOgoKRG8gdGhlIHByb3BhZ2F0aW9uIGF0IGVuZCBvZiB0aGUgc3R5bGUg
cmVzb2x1dGlvbi4KCihXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OnJlbW92ZUltcGxpY2l0V3Jp
dGluZ01vZGVBbmREaXJlY3Rpb24pOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHA6
CihXZWJDb3JlOjpTdHlsZTo6cmVzb2x2ZUZvckRvY3VtZW50KToKKiBTb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVJlc29sdmVyLmNwcDoKKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6U3RhdGU6
OlN0YXRlKToKKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6UmVzb2x2ZXIpOgooV2ViQ29yZTo6
U3R5bGU6OlJlc29sdmVyOjpzdHlsZUZvclBhZ2UpOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlVHJlZVJlc29sdmVyLmNwcDoKKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OlBhcmVu
dDo6UGFyZW50KToKKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50
KToKKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUpOgoK
U2F2ZSBhbmQgY2xlYW4gdXAgZG9jdW1lbnQgZWxlbWVudCBzdHlsZSB3aGVuIHRyYXZlcnNpbmcg
dGhyb3VnaC4KCihXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNvbHZlKToKKiBTb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oOgooV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6
cm9vdFN0eWxlVXBkYXRlIGNvbnN0KToKKFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmFkZFJvb3RT
dHlsZVVwZGF0ZSk6CgpQYXNzIHRoZSBuZXcgcm9vdCBzdHlsZSB2aWEgc3R5bGUgdXBkYXRlLgot
LS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICB8IDE3ICsr
Ky0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgfCAgMiAr
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAgICAgICAgfCA1MSAtLS0t
LS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCAgICAg
ICB8IDIyICsrKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggICAg
ICAgICB8ICAyICsKIC4uLi9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3Bw
ICB8ICA4ICsrKwogLi4uL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oICAg
IHwgIDEgKwogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgICAgICAgIHwg
NjQgKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rl
ci5oICAgICAgICAgIHwgIDIgKwogLi4uL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9j
dW1lbnQuY3BwIHwgMjAgKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVy
LmNwcCAgICAgICAgfCAxMCArLS0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29s
dmVyLmNwcCAgICB8IDEzICsrKy0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgg
ICAgICAgICAgICB8ICA0ICsrCiAuLi4vd3JpdGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbCAg
ICAgICAgICAgfCAgMSArCiAuLi4vZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHku
aHRtbCAgfCAgNyArKwogLi4ucml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC1leHBlY3RlZC5o
dG1sIHwgIDEgKwogLi4uL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwgICAgICAg
IHwgIDcgKysKIC4uLnJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVkLnR4dCB8
ICAyICstCiAxOCBmaWxlcyBjaGFuZ2VkLCAxNDYgaW5zZXJ0aW9ucygrKSwgODggZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3Jp
dGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5Lmh0bWwKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1l
bnQtZWxlbWVudC1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbAoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQyZjFhM2U0ZTVjZS4uZmVhZmJlZDg3YjQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOTUsMTYgKzIwOTUsMTQgQEAgdm9pZCBEb2N1bWVu
dDo6cmVzb2x2ZVN0eWxlKFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKICAgICAgICAgICAgIG1faGFz
Tm9kZXNXaXRoTm9uRmluYWxTdHlsZSA9IGZhbHNlOwogICAgICAgICAgICAgbV9oYXNOb2Rlc1dp
dGhNaXNzaW5nU3R5bGUgPSBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBkb2N1bWVudFN0eWxl
ID0gU3R5bGU6OnJlc29sdmVGb3JEb2N1bWVudCgqdGhpcyk7CisgICAgICAgICAgICBhdXRvIHJv
b3RTdHlsZSA9IFN0eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQoKnRoaXMpOwogCi0gICAgICAgICAg
ICAvLyBJbnNlcnRpbmcgdGhlIHBpY3RvZ3JhcGggZm9udCBhdCB0aGUgZW5kIG9mIHRoZSBmb250
IGZhbGxiYWNrIGxpc3QgaXMgZG9uZSBieSB0aGUKLSAgICAgICAgICAgIC8vIGZvbnQgc2VsZWN0
b3IsIHNvIHNldCBhIGZvbnQgc2VsZWN0b3IgaWYgbmVlZGVkLgotICAgICAgICAgICAgaWYgKHNl
dHRpbmdzKCkuZm9udEZhbGxiYWNrUHJlZmVyc1BpY3RvZ3JhcGhzKCkpCi0gICAgICAgICAgICAg
ICAgZG9jdW1lbnRTdHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmZm9udFNlbGVjdG9yKCkpOwot
Ci0gICAgICAgICAgICBhdXRvIGRvY3VtZW50Q2hhbmdlID0gU3R5bGU6OmRldGVybWluZUNoYW5n
ZShkb2N1bWVudFN0eWxlLCBtX3JlbmRlclZpZXctPnN0eWxlKCkpOwotICAgICAgICAgICAgaWYg
KGRvY3VtZW50Q2hhbmdlICE9IFN0eWxlOjpDaGFuZ2U6Ok5vbmUpCi0gICAgICAgICAgICAgICAg
cmVuZGVyVmlldygpLT5zZXRTdHlsZShXVEZNb3ZlKGRvY3VtZW50U3R5bGUpKTsKKyAgICAgICAg
ICAgIGF1dG8gZG9jdW1lbnRDaGFuZ2UgPSBtX3Jvb3RTdHlsZSA/IFN0eWxlOjpkZXRlcm1pbmVD
aGFuZ2Uocm9vdFN0eWxlLCAqbV9yb290U3R5bGUpIDogU3R5bGU6OkNoYW5nZTo6UmVuZGVyZXI7
CisgICAgICAgICAgICBpZiAoZG9jdW1lbnRDaGFuZ2UgIT0gU3R5bGU6OkNoYW5nZTo6Tm9uZSkg
eworICAgICAgICAgICAgICAgIG1fcm9vdFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKHJv
b3RTdHlsZSk7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBtYXkgZW5kIHVwIGRpZmZlcmluZyBm
cm9tIG1fcm9vdFN0eWxlIGR1ZSB0byBhZGp1c3RtZW50cy4KKyAgICAgICAgICAgICAgICByZW5k
ZXJWaWV3KCktPnNldFN0eWxlKFdURk1vdmUocm9vdFN0eWxlKSk7CisgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIGlmIChSZWZQdHIgZG9jdW1lbnRFbGVtZW50ID0gdGhpcy0+ZG9jdW1lbnRF
bGVtZW50KCkpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5
bGVGb3JTdWJ0cmVlKCk7CkBAIC0yNjI3LDYgKzI2MjUsNyBAQCB2b2lkIERvY3VtZW50OjpkZXN0
cm95UmVuZGVyVHJlZSgpCiAgICAgICAgIHZpZXcoKS0+d2lsbERlc3Ryb3lSZW5kZXJUcmVlKCk7
CiAKICAgICBtX3BlbmRpbmdSZW5kZXJUcmVlVXBkYXRlID0geyB9OworICAgIG1fcm9vdFN0eWxl
ID0geyB9OwogCiAgICAgaWYgKG1fZG9jdW1lbnRFbGVtZW50KQogICAgICAgICBSZW5kZXJUcmVl
VXBkYXRlcjo6dGVhckRvd25SZW5kZXJlcnMoKm1fZG9jdW1lbnRFbGVtZW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKaW5kZXggZDE4NmEyYzFkZGQzLi5iZjdkODdiMGYxNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC02NjcsNiArNjY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZEZvbnRM
b2FkaW5nKCk7CiAKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3KCkgY29uc3QgeyByZXR1cm4g
bV9yZW5kZXJWaWV3LmdldCgpOyB9CisgICAgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcm9vdFN0eWxlLmdldCgpOyB9IC8vIFRoaXMgbWF5IGVuZCB1cCBk
aWZmZXJpbmcgZnJvbSByZW5kZXJWaWV3KCktPnN0eWxlKCkgZHVlIHRvIGFkanVzdG1lbnRzLgog
CiAgICAgYm9vbCByZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSBjb25zdCB7IHJldHVybiBtX3Jl
bmRlclRyZWVCZWluZ0Rlc3Ryb3llZDsgfQogICAgIGJvb2wgaGFzTGl2aW5nUmVuZGVyVHJlZSgp
IGNvbnN0IHsgcmV0dXJuIHJlbmRlclZpZXcoKSAmJiAhcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVk
KCk7IH0KQEAgLTIwMDcsNiArMjAwOCw3IEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnRDbGFzc2Vz
IG1fZG9jdW1lbnRDbGFzc2VzOwogCiAgICAgUmVuZGVyUHRyPFJlbmRlclZpZXc+IG1fcmVuZGVy
VmlldzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IG1fcm9vdFN0eWxlOwogCiAg
ICAgV2Vha0hhc2hTZXQ8TWVkaWFDYW5TdGFydExpc3RlbmVyPiBtX21lZGlhQ2FuU3RhcnRMaXN0
ZW5lcnM7CiAgICAgV2Vha0hhc2hTZXQ8RGlzcGxheUNoYW5nZWRPYnNlcnZlcj4gbV9kaXNwbGF5
Q2hhbmdlZE9ic2VydmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5k
ZXggZjEyZjljZjM5MDdhLi5iMzUzMGNmZTEyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCkBAIC0zNTYsNDUgKzM1Niw2IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURp
ZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
CiAgICAgYm9vbCBpc0RvY0VsZW1lbnRSZW5kZXJlciA9IGlzRG9jdW1lbnRFbGVtZW50UmVuZGVy
ZXIoKTsKIAogICAgIGlmIChpc0RvY0VsZW1lbnRSZW5kZXJlciB8fCBpc0JvZHlSZW5kZXJlcikg
ewotICAgICAgICBhdXRvKiBkb2N1bWVudEVsZW1lbnRSZW5kZXJlciA9IGRvY3VtZW50KCkuZG9j
dW1lbnRFbGVtZW50KCktPnJlbmRlcmVyKCk7Ci0gICAgICAgIGF1dG8mIHZpZXdTdHlsZSA9IHZp
ZXcoKS5tdXRhYmxlU3R5bGUoKTsKLSAgICAgICAgYm9vbCByb290U3R5bGVDaGFuZ2VkID0gZmFs
c2U7Ci0gICAgICAgIGJvb2wgdmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkID0gZmFs
c2U7Ci0gICAgICAgIGF1dG8qIHJvb3RSZW5kZXJlciA9IGlzQm9keVJlbmRlcmVyID8gZG9jdW1l
bnRFbGVtZW50UmVuZGVyZXIgOiBudWxscHRyOwotCi0gICAgICAgIGF1dG8gcHJvcGFnYXRlV3Jp
dGluZ01vZGVUb1JlbmRlclZpZXdJZkFwcGxpY2FibGUgPSBbJl0gewotICAgICAgICAgICAgLy8g
UHJvcGFnYXRlIHRoZSBuZXcgd3JpdGluZyBtb2RlIGFuZCBkaXJlY3Rpb24gdXAgdG8gdGhlIFJl
bmRlclZpZXcuCi0gICAgICAgICAgICBpZiAoIWRvY3VtZW50RWxlbWVudFJlbmRlcmVyKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICghaXNCb2R5UmVuZGVyZXIgfHwg
IShzaG91bGRBcHBseUFueUNvbnRhaW5tZW50KCkgfHwgZG9jdW1lbnRFbGVtZW50UmVuZGVyZXIt
PnNob3VsZEFwcGx5QW55Q29udGFpbm1lbnQoKSkpIHsKLSAgICAgICAgICAgICAgICBpZiAodmll
d1N0eWxlLmRpcmVjdGlvbigpICE9IG5ld1N0eWxlLmRpcmVjdGlvbigpICYmIChpc0RvY0VsZW1l
bnRSZW5kZXJlciB8fCAhZG9jdW1lbnRFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGlj
aXRseVNldERpcmVjdGlvbigpKSkgewotICAgICAgICAgICAgICAgICAgICB2aWV3U3R5bGUuc2V0
RGlyZWN0aW9uKG5ld1N0eWxlLmRpcmVjdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICAgdmll
d0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzQm9keVJlbmRlcmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290UmVu
ZGVyZXItPm11dGFibGVTdHlsZSgpLnNldERpcmVjdGlvbihuZXdTdHlsZS5kaXJlY3Rpb24oKSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290U3R5bGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBzZXROZWVkc0xheW91dEFuZFBy
ZWZXaWR0aHNSZWNhbGMoKTsKLQotICAgICAgICAgICAgICAgICAgICB2aWV3KCkuZnJhbWVWaWV3
KCkudG9wQ29udGVudERpcmVjdGlvbkRpZENoYW5nZSgpOwotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIGlmICh2aWV3U3R5bGUud3JpdGluZ01vZGUoKSAhPSBuZXdTdHlsZS53
cml0aW5nTW9kZSgpICYmIChpc0RvY0VsZW1lbnRSZW5kZXJlciB8fCAhZG9jdW1lbnRFbGVtZW50
UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHZpZXdTdHlsZS5zZXRXcml0aW5nTW9kZShuZXdTdHlsZS53cml0aW5n
TW9kZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgdmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVD
aGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgdmlldygpLnNldEhvcml6b250YWxX
cml0aW5nTW9kZShuZXdTdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKTsKLSAgICAgICAg
ICAgICAgICAgICAgdmlldygpLm1hcmtBbGxEZXNjZW5kYW50c1dpdGhGbG9hdHNGb3JMYXlvdXQo
KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzQm9keVJlbmRlcmVyKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICByb290U3R5bGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJvb3RSZW5kZXJlci0+bXV0YWJsZVN0eWxlKCkuc2V0V3JpdGluZ01vZGUobmV3U3R5
bGUud3JpdGluZ01vZGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290UmVuZGVyZXIt
PnNldEhvcml6b250YWxXcml0aW5nTW9kZShuZXdTdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBzZXROZWVk
c0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIHByb3BhZ2F0ZVdyaXRpbmdNb2RlVG9SZW5kZXJW
aWV3SWZBcHBsaWNhYmxlKCk7Ci0KICNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKICAgICAgICAg
dmlldygpLmZyYW1lVmlldygpLnJlY2FsY3VsYXRlQmFzZUJhY2tncm91bmRDb2xvcigpOwogI2Vu
ZGlmCkBAIC00MDIsMTggKzM2Myw2IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgICAg
IHZpZXcoKS5mcmFtZVZpZXcoKS5yZWNhbGN1bGF0ZVNjcm9sbGJhck92ZXJsYXlTdHlsZSgpOwog
ICAgICAgICAKICAgICAgICAgY29uc3QgUGFnaW5hdGlvbiYgcGFnaW5hdGlvbiA9IHZpZXcoKS5m
cmFtZVZpZXcoKS5wYWdpbmF0aW9uKCk7Ci0gICAgICAgIGlmICh2aWV3RGlyZWN0aW9uT3JXcml0
aW5nTW9kZUNoYW5nZWQgJiYgcGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5h
dGVkKSB7Ci0gICAgICAgICAgICB2aWV3U3R5bGUuc2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRp
b25Nb2RlKHBhZ2luYXRpb24ubW9kZSk7Ci0gICAgICAgICAgICBpZiAodmlldygpLm11bHRpQ29s
dW1uRmxvdygpKQotICAgICAgICAgICAgICAgIHZpZXcoKS51cGRhdGVDb2x1bW5Qcm9ncmVzc2lv
bkZyb21TdHlsZSh2aWV3U3R5bGUpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAo
dmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkICYmIHZpZXcoKS5tdWx0aUNvbHVtbkZs
b3coKSkKLSAgICAgICAgICAgIHZpZXcoKS51cGRhdGVTdHlsZXNGb3JDb2x1bW5DaGlsZHJlbigp
OwotICAgICAgICAKLSAgICAgICAgaWYgKHJvb3RTdHlsZUNoYW5nZWQgJiYgaXM8UmVuZGVyQmxv
Y2tGbG93Pihyb290UmVuZGVyZXIpICYmIGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oKnJvb3RS
ZW5kZXJlcikubXVsdGlDb2x1bW5GbG93KCkpCi0gICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJC
bG9ja0Zsb3c+KCpyb290UmVuZGVyZXIpLnVwZGF0ZVN0eWxlc0ZvckNvbHVtbkNoaWxkcmVuKCk7
Ci0gICAgICAgIAogICAgICAgICBpZiAoaXNCb2R5UmVuZGVyZXIgJiYgcGFnaW5hdGlvbi5tb2Rl
ICE9IFBhZ2luYXRpb246OlVucGFnaW5hdGVkICYmIHBhZ2UoKS5wYWdpbmF0aW9uTGluZUdyaWRF
bmFibGVkKCkpIHsKICAgICAgICAgICAgIC8vIFByb3BhZ2F0ZSB0aGUgYm9keSBmb250IGJhY2sg
dXAgdG8gdGhlIFJlbmRlclZpZXcgYW5kIHVzZSBpdCBhcwogICAgICAgICAgICAgLy8gdGhlIGJh
c2lzIG9mIHRoZSBncmlkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmlu
ZGV4IDJiZTNhYWU3YTY3YS4uOTBlMzljNzMwMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCkBAIC05NCw2ICs5NCwyOCBAQCBSZW5kZXJWaWV3Ojp+UmVuZGVyVmll
dygpCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3JlbmRlcmVyQ291bnQgPT0gMSwgIkFsbCBv
dGhlciByZW5kZXJlcnMgaW4gdGhpcyByZW5kZXIgdHJlZSBzaG91bGQgaGF2ZSBiZWVuIGRlc3Ry
b3llZCIpOwogfQogCit2b2lkIFJlbmRlclZpZXc6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7CisgICAgUmVuZGVyQmxv
Y2tGbG93OjpzdHlsZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7CisKKyAgICBib29sIHdyaXRp
bmdNb2RlQ2hhbmdlZCA9IG9sZFN0eWxlICYmIHN0eWxlKCkud3JpdGluZ01vZGUoKSAhPSBvbGRT
dHlsZS0+d3JpdGluZ01vZGUoKTsKKyAgICBib29sIGRpcmVjdGlvbkNoYW5nZWQgPSBvbGRTdHls
ZSAmJiBzdHlsZSgpLmRpcmVjdGlvbigpICE9IG9sZFN0eWxlLT5kaXJlY3Rpb24oKTsKKworICAg
IGlmICh3cml0aW5nTW9kZUNoYW5nZWQgfHwgZGlyZWN0aW9uQ2hhbmdlZCkgeworICAgICAgICBh
dXRvJiBwYWdpbmF0aW9uID0gZnJhbWVWaWV3KCkucGFnaW5hdGlvbigpOworICAgICAgICBpZiAo
cGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5hdGVkKSB7CisgICAgICAgICAg
ICBtdXRhYmxlU3R5bGUoKS5zZXRDb2x1bW5TdHlsZXNGcm9tUGFnaW5hdGlvbk1vZGUocGFnaW5h
dGlvbi5tb2RlKTsKKyAgICAgICAgICAgIGlmIChtdWx0aUNvbHVtbkZsb3coKSkKKyAgICAgICAg
ICAgICAgICB1cGRhdGVDb2x1bW5Qcm9ncmVzc2lvbkZyb21TdHlsZShzdHlsZSgpKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAobXVsdGlDb2x1bW5GbG93KCkpCisgICAgICAgICAgICB1cGRhdGVT
dHlsZXNGb3JDb2x1bW5DaGlsZHJlbigpOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb25DaGFu
Z2VkKQorICAgICAgICBmcmFtZVZpZXcoKS50b3BDb250ZW50RGlyZWN0aW9uRGlkQ2hhbmdlKCk7
Cit9CisKIHZvaWQgUmVuZGVyVmlldzo6c2NoZWR1bGVMYXp5UmVwYWludChSZW5kZXJCb3gmIHJl
bmRlcmVyKQogewogICAgIGlmIChyZW5kZXJlci5yZW5kZXJCb3hOZWVkc0xhenlSZXBhaW50KCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA3YWQxMTE0MmEyYWYuLjZk
ZjMzYmFjYWE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC0yMTQs
NiArMjE0LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdlYWtIYXNoU2V0PGNvbnN0IFJlbmRlckJv
eD4mIGNvbnRhaW5lclF1ZXJ5Qm94ZXMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5lclF1ZXJ5
Qm94ZXM7IH0KIAogcHJpdmF0ZToKKyAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsKKwogICAgIHZvaWQg
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+
LCBib29sKiB3YXNGaXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgUmVuZGVyT2JqZWN0
KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2Rl
PiwgVHJhbnNmb3JtU3RhdGUmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IGI0
ODYxNGIyNzQ5Mi4uOGE2NzE3Y2MwODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTEwNSw2ICsxMDUs
OCBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpjb21taXQoc3RkOjp1bmlxdWVfcHRyPGNvbnN0
IFN0eWxlOjpVcGRhdGU+IHN0eWxlVXBkYXRlKQogCiAgICAgbV9zdHlsZVVwZGF0ZSA9IFdURk1v
dmUoc3R5bGVVcGRhdGUpOwogCisgICAgdXBkYXRlUmVuZGVyVmlld1N0eWxlKCk7CisKICAgICBm
b3IgKGF1dG8mIHJvb3QgOiBtX3N0eWxlVXBkYXRlLT5yb290cygpKSB7CiAgICAgICAgIGF1dG8q
IHJlbmRlcmluZ1Jvb3QgPSBmaW5kUmVuZGVyaW5nUm9vdCgqcm9vdCk7CiAgICAgICAgIGlmICgh
cmVuZGVyaW5nUm9vdCkKQEAgLTUxNiw2ICs1MTgsMTIgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRl
cjo6c3RvcmVQcmV2aW91c1JlbmRlcmVyKE5vZGUmIG5vZGUpCiAgICAgcmVuZGVyaW5nUGFyZW50
KCkucHJldmlvdXNDaGlsZFJlbmRlcmVyID0gcmVuZGVyZXI7CiB9CiAKK3ZvaWQgUmVuZGVyVHJl
ZVVwZGF0ZXI6OnVwZGF0ZVJlbmRlclZpZXdTdHlsZSgpCit7CisgICAgaWYgKG1fc3R5bGVVcGRh
dGUtPnJvb3RTdHlsZVVwZGF0ZSgpKQorICAgICAgICBtX2RvY3VtZW50LnJlbmRlclZpZXcoKS0+
c2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lKCptX3N0eWxlVXBkYXRlLT5yb290U3R5bGVVcGRh
dGUoKSkpOworfQorCiB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJlbmRlcmVycyhF
bGVtZW50JiByb290KQogewogICAgIGF1dG8qIHZpZXcgPSByb290LmRvY3VtZW50KCkucmVuZGVy
VmlldygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVu
ZGVyVHJlZVVwZGF0ZXIuaAppbmRleCBhYmNjOWYwZWMyZGYuLmI1ODI0YzMwZDg2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRh
dGVyLmgKQEAgLTYxLDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUVsZW1lbnRS
ZW5kZXJlcihFbGVtZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUmKTsKICAgICB2b2lk
IHVwZGF0ZVNWR1JlbmRlcmVyKEVsZW1lbnQmKTsKICAgICB2b2lkIHVwZGF0ZVJlbmRlcmVyU3R5
bGUoUmVuZGVyRWxlbWVudCYsIFJlbmRlclN0eWxlJiYsIFN0eWxlRGlmZmVyZW5jZSk7CisgICAg
dm9pZCB1cGRhdGVSZW5kZXJWaWV3U3R5bGUoKTsKICAgICB2b2lkIGNyZWF0ZVJlbmRlcmVyKEVs
ZW1lbnQmLCBSZW5kZXJTdHlsZSYmKTsKICAgICB2b2lkIHVwZGF0ZUJlZm9yZURlc2NlbmRhbnRz
KEVsZW1lbnQmLCBjb25zdCBTdHlsZTo6RWxlbWVudFVwZGF0ZSopOwogICAgIHZvaWQgdXBkYXRl
QWZ0ZXJEZXNjZW5kYW50cyhFbGVtZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXggMTc1MjIzMmU1MDgxLi5i
ODhjNDlmYjkxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC01
Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5
bGUuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
ICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKQEAgLTYwLDYgKzYxLDcgQEAKICNpbmNsdWRlICJTVkdV
UklSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKKyNpbmNsdWRlICJTdHlsZVVwZGF0ZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNs
dWRlICJXZWJBbmltYXRpb25UeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0
Lmg+CkBAIC03NzAsNiArNzcyLDY4IEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVj
aWZpY1F1aXJrcyhSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiAjZW5kaWYKIH0KIAordm9pZCBB
ZGp1c3Rlcjo6cHJvcGFnYXRlV3JpdGluZ01vZGVBbmREaXJlY3Rpb24oVXBkYXRlJiB1cGRhdGUs
IGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvKiBib2R5ID0gZG9jdW1lbnQu
Ym9keU9yRnJhbWVzZXQoKTsKKyAgICBhdXRvKiBib2R5U3R5bGUgPSBib2R5ID8gdXBkYXRlLmVs
ZW1lbnRTdHlsZSgqYm9keSkgOiBudWxscHRyOworICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudFN0
eWxlID0gdXBkYXRlLmVsZW1lbnRTdHlsZSgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpOwor
CisgICAgYXV0byBzaG91bGRQcm9wYWdhdGUgPSBbJl0geworICAgICAgICBpZiAoIWRvY3VtZW50
RWxlbWVudFN0eWxlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoYm9k
eVN0eWxlICYmICFib2R5U3R5bGUtPmVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gZG9jdW1lbnRFbGVtZW50
U3R5bGUtPmVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuaXNFbXB0eSgpOworICAgIH0oKTsKKworICAg
IGlmICghc2hvdWxkUHJvcGFnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHdyaXRp
bmdNb2RlID0gWyZdIHsKKyAgICAgICAgaWYgKGRvY3VtZW50RWxlbWVudFN0eWxlLT5oYXNFeHBs
aWNpdGx5U2V0V3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVsZW1l
bnRTdHlsZS0+d3JpdGluZ01vZGUoKTsKKyAgICAgICAgaWYgKGJvZHlTdHlsZSAmJiBib2R5U3R5
bGUtPmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIGJv
ZHlTdHlsZS0+d3JpdGluZ01vZGUoKTsKKyAgICAgICAgcmV0dXJuIFdyaXRpbmdNb2RlOjpUb3BU
b0JvdHRvbTsKKyAgICB9KCk7CisKKyAgICBhdXRvIGRpcmVjdGlvbiA9IFsmXSB7CisgICAgICAg
IGlmIChkb2N1bWVudEVsZW1lbnRTdHlsZS0+aGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKQor
ICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50RWxlbWVudFN0eWxlLT5kaXJlY3Rpb24oKTsKKyAg
ICAgICAgaWYgKGJvZHlTdHlsZSAmJiBib2R5U3R5bGUtPmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rp
b24oKSkKKyAgICAgICAgICAgIHJldHVybiBib2R5U3R5bGUtPmRpcmVjdGlvbigpOworICAgICAg
ICByZXR1cm4gVGV4dERpcmVjdGlvbjo6TFRSOworICAgIH0oKTsKKworICAgIGF1dG8mIHZpZXdT
dHlsZSA9IGRvY3VtZW50LnJlbmRlclZpZXcoKS0+c3R5bGUoKTsKKyAgICBpZiAod3JpdGluZ01v
ZGUgIT0gdmlld1N0eWxlLndyaXRpbmdNb2RlKCkgfHwgZGlyZWN0aW9uICE9IHZpZXdTdHlsZS5k
aXJlY3Rpb24oKSkgeworICAgICAgICBhdXRvIG5ld1Jvb3RTdHlsZSA9IFJlbmRlclN0eWxlOjpj
bG9uZVB0cih2aWV3U3R5bGUpOworICAgICAgICBuZXdSb290U3R5bGUtPnNldFdyaXRpbmdNb2Rl
KHdyaXRpbmdNb2RlKTsKKyAgICAgICAgbmV3Um9vdFN0eWxlLT5zZXREaXJlY3Rpb24oZGlyZWN0
aW9uKTsKKyAgICAgICAgdXBkYXRlLmFkZFJvb3RTdHlsZVVwZGF0ZShXVEZNb3ZlKG5ld1Jvb3RT
dHlsZSkpOworICAgIH0KKworICAgIGlmICh3cml0aW5nTW9kZSAhPSBkb2N1bWVudEVsZW1lbnRT
dHlsZS0+d3JpdGluZ01vZGUoKSB8fCBkaXJlY3Rpb24gIT0gZG9jdW1lbnRFbGVtZW50U3R5bGUt
PmRpcmVjdGlvbigpKSB7CisgICAgICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudFVwZGF0ZSA9IHVw
ZGF0ZS5lbGVtZW50VXBkYXRlKCpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAg
IGlmICghZG9jdW1lbnRFbGVtZW50VXBkYXRlKSB7CisgICAgICAgICAgICB1cGRhdGUuYWRkRWxl
bWVudCgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCksIG51bGxwdHIsIHsgUmVuZGVyU3R5bGU6
OmNsb25lUHRyKCpkb2N1bWVudEVsZW1lbnRTdHlsZSkgfSk7CisgICAgICAgICAgICBkb2N1bWVu
dEVsZW1lbnRVcGRhdGUgPSB1cGRhdGUuZWxlbWVudFVwZGF0ZSgqZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50KCkpOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5z
dHlsZS0+c2V0V3JpdGluZ01vZGUod3JpdGluZ01vZGUpOworICAgICAgICBkb2N1bWVudEVsZW1l
bnRVcGRhdGUtPnN0eWxlLT5zZXREaXJlY3Rpb24oZGlyZWN0aW9uKTsKKyAgICAgICAgZG9jdW1l
bnRFbGVtZW50VXBkYXRlLT5jaGFuZ2UgPSBkZXRlcm1pbmVDaGFuZ2UoKmRvY3VtZW50RWxlbWVu
dFN0eWxlLCAqZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5zdHlsZSk7CisgICAgfQorfQorCit2b2lk
IEFkanVzdGVyOjpyZW1vdmVJbXBsaWNpdFdyaXRpbmdNb2RlQW5kRGlyZWN0aW9uKFJlbmRlclN0
eWxlJiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlLmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9k
ZSgpKQorICAgICAgICBzdHlsZS5zZXRXcml0aW5nTW9kZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdy
aXRpbmdNb2RlKCkpOworICAgIGlmICghc3R5bGUuaGFzRXhwbGljaXRseVNldERpcmVjdGlvbigp
KQorICAgICAgICBzdHlsZS5zZXREaXJlY3Rpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxEaXJlY3Rp
b24oKSk7Cit9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogc3RhdGljIGJvb2wgaGFz
VGV4dENoaWxkKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUFkanVzdGVyLmgKaW5kZXggZGU4YTg1OGQ5NWZmLi44MjkxYjgyY2Q4NWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogCiAgICAg
c3RhdGljIHZvaWQgYWRqdXN0U1ZHRWxlbWVudFN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgU1ZH
RWxlbWVudCYpOwogICAgIHN0YXRpYyB2b2lkIGFkanVzdEV2ZW50TGlzdGVuZXJSZWdpb25UeXBl
c0ZvclJvb3RTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IERvY3VtZW50Jik7CisgICAgc3RhdGlj
IHZvaWQgcHJvcGFnYXRlV3JpdGluZ01vZGVBbmREaXJlY3Rpb24oVXBkYXRlJiwgY29uc3QgRG9j
dW1lbnQmKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVJbXBsaWNpdFdyaXRpbmdNb2RlQW5kRGly
ZWN0aW9uKFJlbmRlclN0eWxlJik7CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAg
IHN0cnVjdCBBZGp1c3RtZW50Rm9yVGV4dEF1dG9zaXppbmcgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCmluZGV4IDFlYTVjYWFlODA1OS4u
YTU0M2RhM2M2YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVGb3JEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZl
Rm9yRG9jdW1lbnQuY3BwCkBAIC03MSwyNSArNzEsNyBAQCBSZW5kZXJTdHlsZSByZXNvbHZlRm9y
RG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQogI2VuZGlmCiAKICAgICBBZGp1c3Rl
cjo6YWRqdXN0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUm9vdFN0eWxlKGRvY3VtZW50U3R5
bGUsIGRvY3VtZW50KTsKLQotICAgIEVsZW1lbnQqIGRvY0VsZW1lbnQgPSBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQoKTsKLSAgICBSZW5kZXJPYmplY3QqIGRvY0VsZW1lbnRSZW5kZXJlciA9IGRv
Y0VsZW1lbnQgPyBkb2NFbGVtZW50LT5yZW5kZXJlcigpIDogbnVsbHB0cjsKLSAgICBpZiAoZG9j
RWxlbWVudFJlbmRlcmVyKSB7Ci0gICAgICAgIC8vIFVzZSB0aGUgZGlyZWN0aW9uIGFuZCB3cml0
aW5nLW1vZGUgb2YgdGhlIGJvZHkgdG8gc2V0IHRoZQotICAgICAgICAvLyB2aWV3cG9ydCdzIGRp
cmVjdGlvbiBhbmQgd3JpdGluZy1tb2RlIHVubGVzcyB0aGUgcHJvcGVydHkgaXMgc2V0IG9uIHRo
ZSBkb2N1bWVudCBlbGVtZW50LgotICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBib2R5LCB0aGVu
IHVzZSB0aGUgZG9jdW1lbnQgZWxlbWVudC4KLSAgICAgICAgYXV0byogYm9keSA9IGRvY3VtZW50
LmJvZHlPckZyYW1lc2V0KCk7Ci0gICAgICAgIFJlbmRlck9iamVjdCogYm9keVJlbmRlcmVyID0g
Ym9keSA/IGJvZHktPnJlbmRlcmVyKCkgOiBudWxscHRyOwotICAgICAgICBpZiAoYm9keVJlbmRl
cmVyICYmICFkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGljaXRseVNldFdyaXRp
bmdNb2RlKCkpCi0gICAgICAgICAgICBkb2N1bWVudFN0eWxlLnNldFdyaXRpbmdNb2RlKGJvZHlS
ZW5kZXJlci0+c3R5bGUoKS53cml0aW5nTW9kZSgpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZG9jdW1lbnRTdHlsZS5zZXRXcml0aW5nTW9kZShkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxl
KCkud3JpdGluZ01vZGUoKSk7Ci0gICAgICAgIGlmIChib2R5UmVuZGVyZXIgJiYgIWRvY0VsZW1l
bnRSZW5kZXJlci0+c3R5bGUoKS5oYXNFeHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpCi0gICAgICAg
ICAgICBkb2N1bWVudFN0eWxlLnNldERpcmVjdGlvbihib2R5UmVuZGVyZXItPnN0eWxlKCkuZGly
ZWN0aW9uKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkb2N1bWVudFN0eWxlLnNldERp
cmVjdGlvbihkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwotICAgIH0K
LQorICAgIAogICAgIGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24gPSByZW5kZXJWaWV3LmZy
YW1lVmlldygpLnBhZ2luYXRpb24oKTsKICAgICBpZiAocGFnaW5hdGlvbi5tb2RlICE9IFBhZ2lu
YXRpb246OlVucGFnaW5hdGVkKSB7CiAgICAgICAgIGRvY3VtZW50U3R5bGUuc2V0Q29sdW1uU3R5
bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2luYXRpb24ubW9kZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDIzMDM3YmI5NWE3MC4uNTcwMThhODk4ODIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1
YmxpYzoKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CiAgICAg
ICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpOwog
ICAgICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCB8fCBkb2N1bWVudEVsZW1lbnQgPT0gJmVsZW1l
bnQpCi0gICAgICAgICAgICBtX3Jvb3RFbGVtZW50U3R5bGUgPSBkb2N1bWVudC5yZW5kZXJTdHls
ZSgpOworICAgICAgICAgICAgbV9yb290RWxlbWVudFN0eWxlID0gZG9jdW1lbnQucm9vdFN0eWxl
KCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcm9vdEVsZW1lbnRTdHlsZSA9IGRvY3Vt
ZW50RWxlbWVudFN0eWxlID8gZG9jdW1lbnRFbGVtZW50U3R5bGUgOiBkb2N1bWVudEVsZW1lbnQt
PnJlbmRlclN0eWxlKCk7CiAgICAgfQpAQCAtMTU5LDcgKzE1OSw3IEBAIFJlc29sdmVyOjpSZXNv
bHZlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIG1fbWVkaWFRdWVyeUV2YWx1YXRvciA9
IExlZ2FjeU1lZGlhUXVlcnlFdmFsdWF0b3IgeyB9OwogCiAgICAgaWYgKGF1dG8qIGRvY3VtZW50
RWxlbWVudCA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpIHsKLSAgICAgICAgbV9yb290
RGVmYXVsdFN0eWxlID0gc3R5bGVGb3JFbGVtZW50KCpkb2N1bWVudEVsZW1lbnQsIHsgbV9kb2N1
bWVudC5yZW5kZXJTdHlsZSgpIH0sIFJ1bGVNYXRjaGluZ0JlaGF2aW9yOjpNYXRjaE9ubHlVc2Vy
QWdlbnRSdWxlcykucmVuZGVyU3R5bGU7CisgICAgICAgIG1fcm9vdERlZmF1bHRTdHlsZSA9IHN0
eWxlRm9yRWxlbWVudCgqZG9jdW1lbnRFbGVtZW50LCB7IG1fZG9jdW1lbnQucm9vdFN0eWxlKCkg
fSwgUnVsZU1hdGNoaW5nQmVoYXZpb3I6Ok1hdGNoT25seVVzZXJBZ2VudFJ1bGVzKS5yZW5kZXJT
dHlsZTsKICAgICAgICAgLy8gVHVybiBvZmYgYXNzZXJ0aW9uIGFnYWluc3QgZm9udCBsb29rdXBz
IGR1cmluZyBzdHlsZSByZXNvbHZlciBpbml0aWFsaXphdGlvbi4gV2UgbWF5IG5lZWQgcm9vdCBz
dHlsZSBmb250IGZvciBtZWRpYSBxdWVyaWVzLgogICAgICAgICBtX2RvY3VtZW50LmZvbnRTZWxl
Y3RvcigpLmluY3JlbWVudElzQ29tcHV0aW5nUm9vdFN0eWxlRm9udCgpOwogICAgICAgICBtX3Jv
b3REZWZhdWx0U3R5bGUtPmZvbnRDYXNjYWRlKCkudXBkYXRlKCZtX2RvY3VtZW50LmZvbnRTZWxl
Y3RvcigpKTsKQEAgLTQ3OCwxNSArNDc4LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHls
ZT4gUmVzb2x2ZXI6OnBzZXVkb1N0eWxlRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtCiBz
dGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBh
Z2VJbmRleCkKIHsKICAgICBhdXRvKiBkb2N1bWVudEVsZW1lbnQgPSBtX2RvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudCgpOwotICAgIGlmICghZG9jdW1lbnRFbGVtZW50KQorICAgIGlmICghZG9jdW1l
bnRFbGVtZW50IHx8ICFkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCkpCiAgICAgICAgIHJl
dHVybiBSZW5kZXJTdHlsZTo6Y3JlYXRlUHRyKCk7CiAKLSAgICBhdXRvIHN0YXRlID0gU3RhdGUo
KmRvY3VtZW50RWxlbWVudCwgbV9kb2N1bWVudC5yZW5kZXJTdHlsZSgpKTsKKyAgICBhdXRvIHN0
YXRlID0gU3RhdGUoKmRvY3VtZW50RWxlbWVudCwgbV9kb2N1bWVudC5yb290U3R5bGUoKSk7CiAK
ICAgICBzdGF0ZS5zZXRTdHlsZShSZW5kZXJTdHlsZTo6Y3JlYXRlUHRyKCkpOwogICAgIHN0YXRl
LnN0eWxlKCktPmluaGVyaXRGcm9tKCpzdGF0ZS5yb290RWxlbWVudFN0eWxlKCkpOwogCi0gICAg
UGFnZVJ1bGVDb2xsZWN0b3IgY29sbGVjdG9yKG1fcnVsZVNldHMsIHN0YXRlLnJvb3RFbGVtZW50
U3R5bGUoKS0+ZGlyZWN0aW9uKCkpOworICAgIFBhZ2VSdWxlQ29sbGVjdG9yIGNvbGxlY3Rvciht
X3J1bGVTZXRzLCBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCktPmRpcmVjdGlvbigpKTsK
ICAgICBjb2xsZWN0b3IubWF0Y2hBbGxQYWdlUnVsZXMocGFnZUluZGV4KTsKIAogICAgIGF1dG8m
IHJlc3VsdCA9IGNvbGxlY3Rvci5tYXRjaFJlc3VsdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IGYzNDZmZGY1ZGU5ZS4uNTU4NDJjMDQ0NGE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC05Nyw3ICs5
Nyw3IEBAIFRyZWVSZXNvbHZlcjo6U2NvcGU6On5TY29wZSgpCiAKIFRyZWVSZXNvbHZlcjo6UGFy
ZW50OjpQYXJlbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogZWxlbWVudChudWxscHRyKQot
ICAgICwgc3R5bGUoKmRvY3VtZW50LnJlbmRlclN0eWxlKCkpCisgICAgLCBzdHlsZSgqZG9jdW1l
bnQucm9vdFN0eWxlKCkpCiB7CiB9CiAKQEAgLTIzOSw4ICsyMzksNiBAQCBhdXRvIFRyZWVSZXNv
bHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgUmVzb2x1dGlvblR5cGUgcmVz
b2x1dGlvblR5cAogICAgIGF1dG8gZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBjb21wdXRlRGVzY2Vu
ZGFudHNUb1Jlc29sdmUodXBkYXRlLmNoYW5nZSwgZWxlbWVudC5zdHlsZVZhbGlkaXR5KCksIHBh
cmVudCgpLmRlc2NlbmRhbnRzVG9SZXNvbHZlKTsKIAogICAgIGlmICgmZWxlbWVudCA9PSBtX2Rv
Y3VtZW50LmRvY3VtZW50RWxlbWVudCgpKSB7Ci0gICAgICAgIG1fZG9jdW1lbnRFbGVtZW50U3R5
bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKnVwZGF0ZS5zdHlsZSk7Ci0KICAgICAgICAgaWYg
KCFleGlzdGluZ1N0eWxlIHx8IGV4aXN0aW5nU3R5bGUtPmNvbXB1dGVkRm9udFBpeGVsU2l6ZSgp
ICE9IHVwZGF0ZS5zdHlsZS0+Y29tcHV0ZWRGb250UGl4ZWxTaXplKCkpIHsKICAgICAgICAgICAg
IC8vICJyZW0iIHVuaXRzIGFyZSByZWxhdGl2ZSB0byB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZv
bnQgc2l6ZSBzbyB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBldmVyeXRoaW5nLgogICAgICAgICAgICAg
c2NvcGUoKS5yZXNvbHZlci0+aW52YWxpZGF0ZU1hdGNoZWREZWNsYXJhdGlvbnNDYWNoZSgpOwpA
QCAtODQ0LDYgKzg0MiwxMyBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJl
ZSgpCiAgICAgICAgICAgICBjbGVhck5lZWRzU3R5bGVSZXNvbHV0aW9uKGVsZW1lbnQpOwogICAg
ICAgICB9CiAKKyAgICAgICAgaWYgKHN0eWxlICYmICZlbGVtZW50ID09IG1fZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50KCkpIHsKKyAgICAgICAgICAgIG1fZG9jdW1lbnRFbGVtZW50U3R5bGUgPSBS
ZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKnN0eWxlKTsKKyAgICAgICAgICAgIC8vIERvY3VtZW50IGVs
ZW1lbnQgc3R5bGUgbWF5IGhhdmUgZ290IGFkanVzdGVkIGJhc2VkIG9uIGJvZHkgc3R5bGUgYnV0
IHdlIGRvbid0IHdhbnQgdG8gaW5oZXJpdCB0aG9zZSBhZGp1c3RtZW50cy4KKyAgICAgICAgICAg
IEFkanVzdGVyOjpyZW1vdmVJbXBsaWNpdFdyaXRpbmdNb2RlQW5kRGlyZWN0aW9uKCptX2RvY3Vt
ZW50RWxlbWVudFN0eWxlKTsKKyAgICAgICAgICAgIHN0eWxlID0gbV9kb2N1bWVudEVsZW1lbnRT
dHlsZS5nZXQoKTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICghc3R5bGUpCiAgICAgICAgICAg
ICByZXNldFN0eWxlRm9yTm9uUmVuZGVyZWREZXNjZW5kYW50cyhlbGVtZW50KTsKIApAQCAtOTQ3
LDYgKzk1Miw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+IFRyZWVSZXNvbHZlcjo6cmVzb2x2
ZSgpCiAgICAgaWYgKG1fdXBkYXRlLT5yb290cygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IHsgfTsKIAorICAgIEFkanVzdGVyOjpwcm9wYWdhdGVXcml0aW5nTW9kZUFuZERpcmVjdGlvbigq
bV91cGRhdGUsIG1fZG9jdW1lbnQpOworCiAgICAgcmV0dXJuIFdURk1vdmUobV91cGRhdGUpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAppbmRleCBiYjMxZDQ3ZWQxM2QuLmY3Zjg5
NjliOTk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCkBAIC02Niw2ICs2Niw4IEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IFRleHRVcGRhdGUqIHRleHRVcGRhdGUoY29uc3QgVGV4dCYp
IGNvbnN0OwogCisgICAgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZVVwZGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcm9vdFN0eWxlVXBkYXRlLmdldCgpOyB9CisKICAgICBjb25zdCBSZW5kZXJT
dHlsZSogZWxlbWVudFN0eWxlKGNvbnN0IEVsZW1lbnQmKSBjb25zdDsKICAgICBSZW5kZXJTdHls
ZSogZWxlbWVudFN0eWxlKGNvbnN0IEVsZW1lbnQmKTsKIApAQCAtNzgsNiArODAsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRUZXh0KFRleHQmLCBFbGVtZW50KiBwYXJlbnQsIFRleHRVcGRhdGUm
Jik7CiAgICAgdm9pZCBhZGRUZXh0KFRleHQmLCBUZXh0VXBkYXRlJiYpOwogICAgIHZvaWQgYWRk
U1ZHUmVuZGVyZXJVcGRhdGUoU1ZHRWxlbWVudCYpOworICAgIHZvaWQgYWRkUm9vdFN0eWxlVXBk
YXRlKHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUpIHsgbV9yb290U3R5bGVVcGRh
dGUgPSBXVEZNb3ZlKHN0eWxlKTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgYWRkUG9zc2libGVS
b290KEVsZW1lbnQqKTsKQEAgLTg2LDYgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBMaXN0SGFzaFNl
dDxSZWZQdHI8Q29udGFpbmVyTm9kZT4+IG1fcm9vdHM7CiAgICAgSGFzaE1hcDxSZWZQdHI8Y29u
c3QgRWxlbWVudD4sIEVsZW1lbnRVcGRhdGU+IG1fZWxlbWVudHM7CiAgICAgSGFzaE1hcDxSZWZQ
dHI8Y29uc3QgVGV4dD4sIFRleHRVcGRhdGU+IG1fdGV4dHM7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFJlbmRlclN0eWxlPiBtX3Jvb3RTdHlsZVVwZGF0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5LWV4cGVjdGVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjNlODYz
M2E3NDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUv
d3JpdGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxIEBACitUaGlzIHNob3Vs
ZCBiZSBob3Jpem9udGFsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1v
ZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2Rl
L3dyaXRpbmctbW9kZS1ib2R5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi42ZWUxZDU2NTdhZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS5odG1sCkBAIC0wLDAgKzEsNyBAQAorPHA+
VGhpcyBzaG91bGQgYmUgaG9yaXpvbnRhbC48L3A+Cis8c2NyaXB0PgorY29uc3QgdGFyZ2V0ID0g
ZG9jdW1lbnQuYm9keTsKK3RhcmdldC5zdHlsZS53cml0aW5nTW9kZSA9ICd2ZXJ0aWNhbC1ybCc7
Cit0YXJnZXQub2Zmc2V0TGVmdDsKK3RhcmdldC5zdHlsZS53cml0aW5nTW9kZSA9ICcnOworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5n
LW1vZGUtZG9jdW1lbnQtZWxlbWVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93
cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIzZTg2MzNhNzQxOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9k
ZS1kb2N1bWVudC1lbGVtZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSBAQAorVGhpcyBzaG91
bGQgYmUgaG9yaXpvbnRhbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1t
b2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGI0ZjE4NzBjMDlmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3Vt
ZW50LWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxwPlRoaXMgc2hvdWxkIGJlIGhvcml6
b250YWwuPC9wPgorPHNjcmlwdD4KK2NvbnN0IHRhcmdldCA9IGRvY3VtZW50LmRvY3VtZW50RWxl
bWVudDsKK3RhcmdldC5zdHlsZS53cml0aW5nTW9kZSA9ICd2ZXJ0aWNhbC1ybCc7Cit0YXJnZXQu
b2Zmc2V0TGVmdDsKK3RhcmdldC5zdHlsZS53cml0aW5nTW9kZSA9ICcnOworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXdyaXRpbmctbW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4
cGVjdGVkLnR4dAppbmRleCA3NTBlMmI5MDk2YTYuLjVjODk5ZjllY2JmYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRp
bmctbW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
d3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhwZWN0ZWQu
dHh0CkBAIC0xLDUgKzEsNSBAQAogCiBQQVNTIENoZWNrIGNvbXB1dGVkIHdyaXRpbmctbW9kZSBm
b3IgYm9keSBlbGVtZW50LgogRkFJTCBDaGVjayBjb21wdXRlZCB3cml0aW5nLW1vZGUgZm9yIGh0
bWwgcm9vdCBlbGVtZW50LiBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUg
InZlcnRpY2FsLWxyIgotRkFJTCBDaGVjayBjb21wdXRlZCB3cml0aW5nLW1vZGUgZm9yIGJvZHkg
ZWxlbWVudCB3aGVuIHN0eWxlIG5vIGxvbmdlciBhcHBsaWVzLiBhc3NlcnRfbm90X2VxdWFsczog
Z290IGRpc2FsbG93ZWQgdmFsdWUgInZlcnRpY2FsLWxyIgorUEFTUyBDaGVjayBjb21wdXRlZCB3
cml0aW5nLW1vZGUgZm9yIGJvZHkgZWxlbWVudCB3aGVuIHN0eWxlIG5vIGxvbmdlciBhcHBsaWVz
LgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463409</attachid>
            <date>2022-11-04 09:07:37 -0700</date>
            <delta_ts>2022-11-05 00:48:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185729-20221104180735.patch</filename>
            <type>text/plain</type>
            <size>32862</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSBkNDE1YzQ3YzEyMTFjNTNhYmZhMmI1ZWY1NWIxMmU0Nzg1MjZjNTY2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBGcmksIDQgTm92IDIwMjIgMTM6MDA6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBUaGUgZWZm
ZWN0IG9mIHdyaXRpbmctbW9kZSBwcm9wZXJ0eSByZW1haW5zIGFmdGVyIHRoZQogcHJvcGVydHkg
aXMgcmVtb3ZlZCAob24gdGhlIHJvb3QgZWxlbWVudCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU3MjkgcmRhcjovLzk3MDkxOTkwCgpSZXZpZXdlZCBieSBBbGFu
IEJhcmFkbGF5LgoKVGhlcmUgaXMgYSBzdHlsZSBjeWNsZSB3aGVyZSB0aGUgcm9vdCB3cml0aW5n
LW1vZGUgbWF5IGRlcGVuZCBvbiB0aGUgZG9jdW1lbnQgZWxlbWVudCB3cml0aW5nLW1vZGUgd2hp
Y2gKaW4gdHVybiBtYXkgZGVwZW5kIG9uIHRoZSBib2R5J3MgKGNvbXB1dGVkIGR1cmluZyBwcmV2
aWV3IHN0eWxlIHVwZGF0ZSkuIFRoZXNlIGNhbiB0aGVuIGdldCBpbmhlcml0ZWQgYmFjawp0byB0
aGUgYm9keSBzdHlsZS4gVGhlIHJlc3VsdGluZyBjb25mdXNpb24gY2F1c2VzIHZhcmlvdXMgaXNz
dWVzLgoKVGhpcyBwYXRjaCBlbnN1cmVzIHdlIGRvIHN0eWxlIHJlc29sdXRpb24gdXNpbmcgY2xl
YW4gcm9vdCBzdHlsZXMgd2l0aG91dCB3cml0aW5nLW1vZGUvZGlyZWN0aW9uIG11dGF0aW9ucy4K
VGhlIHByb3BhZ2F0aW9uIHVwd2FyZHMgaXMgZG9uZSBhdCB0aGUgZW5kIG9mIHRoZSByZXNvbHV0
aW9uLiBUaGlzIHJlcGxhY2VzIHRoZSBvbGQgcHJvcGFnYXRpb24gY29kZSBpbgpyZW5kZXIgdHJl
ZS4KCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHktZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGlu
Zy1tb2RlLWJvZHkuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUv
d3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCiogTGF5
b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQu
aHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6
OkRvY3VtZW50OjpyZXNvbHZlU3R5bGUpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
OgooV2ViQ29yZTo6RG9jdW1lbnQ6OnJvb3RTdHlsZSBjb25zdCk6CgpNYWludGFpbiBjbGVhbiBy
b290IHN0eWxlLgoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKFdl
YkNvcmU6OlJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UpOgoKUmVtb3ZlIHN0eWxlIG11dGF0aW5n
IHByb3BhZ2F0aW9uIGNvZGUuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcDoKCkhhbmRsZSB2aWV3IGludmFsaWRhdGlvbiBmb3Igd3JpdGluZy1tb2RlL2RpcmVjdGlv
bi4gVGhpcyBpcyBtb3ZlZCBmcm9tIFJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UuCgooV2ViQ29y
ZTo6UmVuZGVyVmlldzo6c3R5bGVEaWRDaGFuZ2UpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVVcGRhdGVyLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjpjb21taXQpOgoK
VXBkYXRlIHRoZSB2aWV3IHN0eWxlIGZpcnN0LgoKKFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVy
Ojp1cGRhdGVSZW5kZXJWaWV3U3R5bGUpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlVXBkYXRlci5oOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRq
dXN0ZXIuY3BwOgooV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVyOjpwcm9wYWdhdGVXcml0aW5nTW9k
ZUFuZERpcmVjdGlvbik6CgpEbyB0aGUgcHJvcGFnYXRpb24gYXQgZW5kIG9mIHRoZSBzdHlsZSBy
ZXNvbHV0aW9uLgoKKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6cmVtb3ZlSW1wbGljaXRXcml0
aW5nTW9kZUFuZERpcmVjdGlvbik6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rl
ci5oOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcDoK
KFdlYkNvcmU6OlN0eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQpOgoqIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgooV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpTdGF0ZTo6
U3RhdGUpOgooV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpSZXNvbHZlcik6CihXZWJDb3JlOjpT
dHlsZTo6UmVzb2x2ZXI6OnN0eWxlRm9yUGFnZSk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuY3BwOgooV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6UGFyZW50
OjpQYXJlbnQpOgooV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQp
OgooV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSk6CgpT
YXZlIGFuZCBjbGVhbiB1cCBkb2N1bWVudCBlbGVtZW50IHN0eWxlIHdoZW4gdHJhdmVyc2luZyB0
aHJvdWdoLgoKKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmUpOgoqIFNvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmg6CihXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjpy
b290U3R5bGVVcGRhdGUgY29uc3QpOgooV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6YWRkUm9vdFN0
eWxlVXBkYXRlKToKClBhc3MgdGhlIG5ldyByb290IHN0eWxlIHZpYSBzdHlsZSB1cGRhdGUuCi0t
LQogU291cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwIHwgMjAgKysr
Ky0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCAxNyAr
KystLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgIHwgIDIg
KwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgIHwgNTEgLS0t
LS0tLS0tLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgICAg
ICAgfCAyMiArKysrKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oICAg
ICAgICAgfCAgMiArCiAuLi4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNw
cCAgfCAgOCArKysKIC4uLi9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaCAg
ICB8ICAxICsKIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwICAgICAgICB8
IDY0ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuaCAgICAgICAgICB8ICAyICsKIC4uLi9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRv
Y3VtZW50LmNwcCB8IDIwICstLS0tLQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZl
ci5jcHAgICAgICAgIHwgMTAgKy0tCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5jcHAgICAgfCAxMyArKystCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5o
ICAgICAgICAgICAgfCAgNCArKwogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyAgICAgICAg
ICAgICAgICAgIHwgIDQgKy0KIC4uLi93cml0aW5nLW1vZGUtYm9keS1leHBlY3RlZC5odG1sICAg
ICAgICAgICB8ICAxICsKIC4uLi9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS5o
dG1sICB8ICA3ICsrCiAuLi5yaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50LWV4cGVjdGVkLmh0
bWwgfCAgMSArCiAuLi4vd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbCAgICAgICAg
fCAgNyArKwogLi4ucm9wYWdhdGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhwZWN0ZWQudHh0IHwg
IDQgKy0KIDIwIGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCspLCA5NiBkZWxldGlvbnMo
LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0
aW5nLW1vZGUtYm9keS1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVu
dC1lbGVtZW50LWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9m
YXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwCmluZGV4IGM4OTdj
YjgyZDVjMy4uZGRhNTQzMzdiOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29t
cHV0ZWRTdHlsZUV4dHJhY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVk
U3R5bGVFeHRyYWN0b3IuY3BwCkBAIC0zMTE4LDggKzMxMTgsMTQgQEAgUmVmUHRyPENTU1ZhbHVl
PiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShjb25zdCBS
ZW5kZXJTdHkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q3Vyc29yVmlzaWJpbGl0eToKICAg
ICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5jdXJzb3JWaXNpYmls
aXR5KCkpOwogI2VuZGlmCi0gICAgY2FzZSBDU1NQcm9wZXJ0eURpcmVjdGlvbjoKLSAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5kaXJlY3Rpb24oKSk7CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eURpcmVjdGlvbjogIHsKKyAgICAgICAgYXV0byBkaXJlY3Rpb24gPSBb
Jl0geworICAgICAgICAgICAgaWYgKG1fZWxlbWVudCA9PSBtX2VsZW1lbnQtPmRvY3VtZW50KCku
ZG9jdW1lbnRFbGVtZW50KCkgJiYgIXN0eWxlLmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6OmluaXRpYWxEaXJlY3Rpb24oKTsK
KyAgICAgICAgICAgIHJldHVybiBzdHlsZS5kaXJlY3Rpb24oKTsKKyAgICAgICAgfSgpOworICAg
ICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKGRpcmVjdGlvbik7CisgICAgfQog
ICAgIGNhc2UgQ1NTUHJvcGVydHlEaXNwbGF5OgogICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29s
LmNyZWF0ZVZhbHVlKHN0eWxlLmRpc3BsYXkoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUVtcHR5
Q2VsbHM6CkBAIC0zODYyLDggKzM4NjgsMTQgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0
eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAg
ICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3R5bGUubGluZVNuYXAoKSk7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExpbmVBbGlnbjoKICAgICAgICAgcmV0dXJuIENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3R5bGUubGluZUFsaWduKCkpOwotICAgIGNhc2UgQ1NT
UHJvcGVydHlXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVW
YWx1ZShzdHlsZS53cml0aW5nTW9kZSgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5V3JpdGluZ01v
ZGU6IHsKKyAgICAgICAgYXV0byB3cml0aW5nTW9kZSA9IFsmXSB7CisgICAgICAgICAgICBpZiAo
bV9lbGVtZW50ID09IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiAh
c3R5bGUuaGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIFJlbmRlclN0eWxlOjppbml0aWFsV3JpdGluZ01vZGUoKTsKKyAgICAgICAgICAgIHJldHVy
biBzdHlsZS53cml0aW5nTW9kZSgpOworICAgICAgICB9KCk7CisgICAgICAgIHJldHVybiBjc3NW
YWx1ZVBvb2wuY3JlYXRlVmFsdWUod3JpdGluZ01vZGUpOworICAgIH0KICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0VGV4dENvbWJpbmU6CiAgICAgICAgIGlmIChzdHlsZS50ZXh0Q29tYmluZSgp
ID09IFRleHRDb21iaW5lOjpBbGwpCiAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVIb3Jpem9udGFsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDQyZjFhM2U0ZTVjZS4uZmVhZmJlZDg3YjQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTIwOTUsMTYgKzIwOTUsMTQgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0
eWxlKFJlc29sdmVTdHlsZVR5cGUgdHlwZSkKICAgICAgICAgICAgIG1faGFzTm9kZXNXaXRoTm9u
RmluYWxTdHlsZSA9IGZhbHNlOwogICAgICAgICAgICAgbV9oYXNOb2Rlc1dpdGhNaXNzaW5nU3R5
bGUgPSBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBkb2N1bWVudFN0eWxlID0gU3R5bGU6OnJl
c29sdmVGb3JEb2N1bWVudCgqdGhpcyk7CisgICAgICAgICAgICBhdXRvIHJvb3RTdHlsZSA9IFN0
eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQoKnRoaXMpOwogCi0gICAgICAgICAgICAvLyBJbnNlcnRp
bmcgdGhlIHBpY3RvZ3JhcGggZm9udCBhdCB0aGUgZW5kIG9mIHRoZSBmb250IGZhbGxiYWNrIGxp
c3QgaXMgZG9uZSBieSB0aGUKLSAgICAgICAgICAgIC8vIGZvbnQgc2VsZWN0b3IsIHNvIHNldCBh
IGZvbnQgc2VsZWN0b3IgaWYgbmVlZGVkLgotICAgICAgICAgICAgaWYgKHNldHRpbmdzKCkuZm9u
dEZhbGxiYWNrUHJlZmVyc1BpY3RvZ3JhcGhzKCkpCi0gICAgICAgICAgICAgICAgZG9jdW1lbnRT
dHlsZS5mb250Q2FzY2FkZSgpLnVwZGF0ZSgmZm9udFNlbGVjdG9yKCkpOwotCi0gICAgICAgICAg
ICBhdXRvIGRvY3VtZW50Q2hhbmdlID0gU3R5bGU6OmRldGVybWluZUNoYW5nZShkb2N1bWVudFN0
eWxlLCBtX3JlbmRlclZpZXctPnN0eWxlKCkpOwotICAgICAgICAgICAgaWYgKGRvY3VtZW50Q2hh
bmdlICE9IFN0eWxlOjpDaGFuZ2U6Ok5vbmUpCi0gICAgICAgICAgICAgICAgcmVuZGVyVmlldygp
LT5zZXRTdHlsZShXVEZNb3ZlKGRvY3VtZW50U3R5bGUpKTsKKyAgICAgICAgICAgIGF1dG8gZG9j
dW1lbnRDaGFuZ2UgPSBtX3Jvb3RTdHlsZSA/IFN0eWxlOjpkZXRlcm1pbmVDaGFuZ2Uocm9vdFN0
eWxlLCAqbV9yb290U3R5bGUpIDogU3R5bGU6OkNoYW5nZTo6UmVuZGVyZXI7CisgICAgICAgICAg
ICBpZiAoZG9jdW1lbnRDaGFuZ2UgIT0gU3R5bGU6OkNoYW5nZTo6Tm9uZSkgeworICAgICAgICAg
ICAgICAgIG1fcm9vdFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKHJvb3RTdHlsZSk7Cisg
ICAgICAgICAgICAgICAgLy8gVGhpcyBtYXkgZW5kIHVwIGRpZmZlcmluZyBmcm9tIG1fcm9vdFN0
eWxlIGR1ZSB0byBhZGp1c3RtZW50cy4KKyAgICAgICAgICAgICAgICByZW5kZXJWaWV3KCktPnNl
dFN0eWxlKFdURk1vdmUocm9vdFN0eWxlKSk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IGlmIChSZWZQdHIgZG9jdW1lbnRFbGVtZW50ID0gdGhpcy0+ZG9jdW1lbnRFbGVtZW50KCkpCiAg
ICAgICAgICAgICAgICAgZG9jdW1lbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVl
KCk7CkBAIC0yNjI3LDYgKzI2MjUsNyBAQCB2b2lkIERvY3VtZW50OjpkZXN0cm95UmVuZGVyVHJl
ZSgpCiAgICAgICAgIHZpZXcoKS0+d2lsbERlc3Ryb3lSZW5kZXJUcmVlKCk7CiAKICAgICBtX3Bl
bmRpbmdSZW5kZXJUcmVlVXBkYXRlID0geyB9OworICAgIG1fcm9vdFN0eWxlID0geyB9OwogCiAg
ICAgaWYgKG1fZG9jdW1lbnRFbGVtZW50KQogICAgICAgICBSZW5kZXJUcmVlVXBkYXRlcjo6dGVh
ckRvd25SZW5kZXJlcnMoKm1fZG9jdW1lbnRFbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggZDE4NmEyYzFkZGQzLi5iZjdkODdiMGYxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02
NjcsNiArNjY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZEZvbnRMb2FkaW5nKCk7CiAK
ICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJWaWV3
LmdldCgpOyB9CisgICAgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcm9vdFN0eWxlLmdldCgpOyB9IC8vIFRoaXMgbWF5IGVuZCB1cCBkaWZmZXJpbmcgZnJv
bSByZW5kZXJWaWV3KCktPnN0eWxlKCkgZHVlIHRvIGFkanVzdG1lbnRzLgogCiAgICAgYm9vbCBy
ZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclRyZWVCZWlu
Z0Rlc3Ryb3llZDsgfQogICAgIGJvb2wgaGFzTGl2aW5nUmVuZGVyVHJlZSgpIGNvbnN0IHsgcmV0
dXJuIHJlbmRlclZpZXcoKSAmJiAhcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCk7IH0KQEAgLTIw
MDcsNiArMjAwOCw3IEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnRDbGFzc2VzIG1fZG9jdW1lbnRD
bGFzc2VzOwogCiAgICAgUmVuZGVyUHRyPFJlbmRlclZpZXc+IG1fcmVuZGVyVmlldzsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IG1fcm9vdFN0eWxlOwogCiAgICAgV2Vha0hhc2hT
ZXQ8TWVkaWFDYW5TdGFydExpc3RlbmVyPiBtX21lZGlhQ2FuU3RhcnRMaXN0ZW5lcnM7CiAgICAg
V2Vha0hhc2hTZXQ8RGlzcGxheUNoYW5nZWRPYnNlcnZlcj4gbV9kaXNwbGF5Q2hhbmdlZE9ic2Vy
dmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggZjEyZjljZjM5
MDdhLi5iMzUzMGNmZTEyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CkBAIC0zNTYsNDUgKzM1Niw2IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShTdHls
ZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgYm9vbCBp
c0RvY0VsZW1lbnRSZW5kZXJlciA9IGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKTsKIAogICAg
IGlmIChpc0RvY0VsZW1lbnRSZW5kZXJlciB8fCBpc0JvZHlSZW5kZXJlcikgewotICAgICAgICBh
dXRvKiBkb2N1bWVudEVsZW1lbnRSZW5kZXJlciA9IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50
KCktPnJlbmRlcmVyKCk7Ci0gICAgICAgIGF1dG8mIHZpZXdTdHlsZSA9IHZpZXcoKS5tdXRhYmxl
U3R5bGUoKTsKLSAgICAgICAgYm9vbCByb290U3R5bGVDaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAg
IGJvb2wgdmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAg
IGF1dG8qIHJvb3RSZW5kZXJlciA9IGlzQm9keVJlbmRlcmVyID8gZG9jdW1lbnRFbGVtZW50UmVu
ZGVyZXIgOiBudWxscHRyOwotCi0gICAgICAgIGF1dG8gcHJvcGFnYXRlV3JpdGluZ01vZGVUb1Jl
bmRlclZpZXdJZkFwcGxpY2FibGUgPSBbJl0gewotICAgICAgICAgICAgLy8gUHJvcGFnYXRlIHRo
ZSBuZXcgd3JpdGluZyBtb2RlIGFuZCBkaXJlY3Rpb24gdXAgdG8gdGhlIFJlbmRlclZpZXcuCi0g
ICAgICAgICAgICBpZiAoIWRvY3VtZW50RWxlbWVudFJlbmRlcmVyKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIGlmICghaXNCb2R5UmVuZGVyZXIgfHwgIShzaG91bGRBcHBs
eUFueUNvbnRhaW5tZW50KCkgfHwgZG9jdW1lbnRFbGVtZW50UmVuZGVyZXItPnNob3VsZEFwcGx5
QW55Q29udGFpbm1lbnQoKSkpIHsKLSAgICAgICAgICAgICAgICBpZiAodmlld1N0eWxlLmRpcmVj
dGlvbigpICE9IG5ld1N0eWxlLmRpcmVjdGlvbigpICYmIChpc0RvY0VsZW1lbnRSZW5kZXJlciB8
fCAhZG9jdW1lbnRFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGljaXRseVNldERpcmVj
dGlvbigpKSkgewotICAgICAgICAgICAgICAgICAgICB2aWV3U3R5bGUuc2V0RGlyZWN0aW9uKG5l
d1N0eWxlLmRpcmVjdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICAgdmlld0RpcmVjdGlvbk9y
V3JpdGluZ01vZGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzQm9k
eVJlbmRlcmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290UmVuZGVyZXItPm11dGFi
bGVTdHlsZSgpLnNldERpcmVjdGlvbihuZXdTdHlsZS5kaXJlY3Rpb24oKSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICByb290U3R5bGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNh
bGMoKTsKLQotICAgICAgICAgICAgICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCkudG9wQ29udGVu
dERpcmVjdGlvbkRpZENoYW5nZSgpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICAgIGlmICh2aWV3U3R5bGUud3JpdGluZ01vZGUoKSAhPSBuZXdTdHlsZS53cml0aW5nTW9kZSgp
ICYmIChpc0RvY0VsZW1lbnRSZW5kZXJlciB8fCAhZG9jdW1lbnRFbGVtZW50UmVuZGVyZXItPnN0
eWxlKCkuaGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHZpZXdTdHlsZS5zZXRXcml0aW5nTW9kZShuZXdTdHlsZS53cml0aW5nTW9kZSgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgdmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICAgICAgdmlldygpLnNldEhvcml6b250YWxXcml0aW5nTW9kZShu
ZXdTdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKTsKLSAgICAgICAgICAgICAgICAgICAg
dmlldygpLm1hcmtBbGxEZXNjZW5kYW50c1dpdGhGbG9hdHNGb3JMYXlvdXQoKTsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKGlzQm9keVJlbmRlcmVyKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByb290U3R5bGVDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RS
ZW5kZXJlci0+bXV0YWJsZVN0eWxlKCkuc2V0V3JpdGluZ01vZGUobmV3U3R5bGUud3JpdGluZ01v
ZGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290UmVuZGVyZXItPnNldEhvcml6b250
YWxXcml0aW5nTW9kZShuZXdTdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBzZXROZWVkc0xheW91dEFuZFBy
ZWZXaWR0aHNSZWNhbGMoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH07Ci0gICAgICAgIHByb3BhZ2F0ZVdyaXRpbmdNb2RlVG9SZW5kZXJWaWV3SWZBcHBsaWNh
YmxlKCk7Ci0KICNpZiBFTkFCTEUoREFSS19NT0RFX0NTUykKICAgICAgICAgdmlldygpLmZyYW1l
VmlldygpLnJlY2FsY3VsYXRlQmFzZUJhY2tncm91bmRDb2xvcigpOwogI2VuZGlmCkBAIC00MDIs
MTggKzM2Myw2IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgICAgIHZpZXcoKS5mcmFt
ZVZpZXcoKS5yZWNhbGN1bGF0ZVNjcm9sbGJhck92ZXJsYXlTdHlsZSgpOwogICAgICAgICAKICAg
ICAgICAgY29uc3QgUGFnaW5hdGlvbiYgcGFnaW5hdGlvbiA9IHZpZXcoKS5mcmFtZVZpZXcoKS5w
YWdpbmF0aW9uKCk7Ci0gICAgICAgIGlmICh2aWV3RGlyZWN0aW9uT3JXcml0aW5nTW9kZUNoYW5n
ZWQgJiYgcGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5hdGVkKSB7Ci0gICAg
ICAgICAgICB2aWV3U3R5bGUuc2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2lu
YXRpb24ubW9kZSk7Ci0gICAgICAgICAgICBpZiAodmlldygpLm11bHRpQ29sdW1uRmxvdygpKQot
ICAgICAgICAgICAgICAgIHZpZXcoKS51cGRhdGVDb2x1bW5Qcm9ncmVzc2lvbkZyb21TdHlsZSh2
aWV3U3R5bGUpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAodmlld0RpcmVjdGlv
bk9yV3JpdGluZ01vZGVDaGFuZ2VkICYmIHZpZXcoKS5tdWx0aUNvbHVtbkZsb3coKSkKLSAgICAg
ICAgICAgIHZpZXcoKS51cGRhdGVTdHlsZXNGb3JDb2x1bW5DaGlsZHJlbigpOwotICAgICAgICAK
LSAgICAgICAgaWYgKHJvb3RTdHlsZUNoYW5nZWQgJiYgaXM8UmVuZGVyQmxvY2tGbG93Pihyb290
UmVuZGVyZXIpICYmIGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oKnJvb3RSZW5kZXJlcikubXVs
dGlDb2x1bW5GbG93KCkpCi0gICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCpy
b290UmVuZGVyZXIpLnVwZGF0ZVN0eWxlc0ZvckNvbHVtbkNoaWxkcmVuKCk7Ci0gICAgICAgIAog
ICAgICAgICBpZiAoaXNCb2R5UmVuZGVyZXIgJiYgcGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRp
b246OlVucGFnaW5hdGVkICYmIHBhZ2UoKS5wYWdpbmF0aW9uTGluZUdyaWRFbmFibGVkKCkpIHsK
ICAgICAgICAgICAgIC8vIFByb3BhZ2F0ZSB0aGUgYm9keSBmb250IGJhY2sgdXAgdG8gdGhlIFJl
bmRlclZpZXcgYW5kIHVzZSBpdCBhcwogICAgICAgICAgICAgLy8gdGhlIGJhc2lzIG9mIHRoZSBn
cmlkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDJiZTNhYWU3
YTY3YS4uOTBlMzljNzMwMDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwCkBAIC05NCw2ICs5NCwyOCBAQCBSZW5kZXJWaWV3Ojp+UmVuZGVyVmlldygpCiAgICAgQVNT
RVJUX1dJVEhfTUVTU0FHRShtX3JlbmRlcmVyQ291bnQgPT0gMSwgIkFsbCBvdGhlciByZW5kZXJl
cnMgaW4gdGhpcyByZW5kZXIgdHJlZSBzaG91bGQgaGF2ZSBiZWVuIGRlc3Ryb3llZCIpOwogfQog
Cit2b2lkIFJlbmRlclZpZXc6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7CisgICAgUmVuZGVyQmxvY2tGbG93OjpzdHls
ZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7CisKKyAgICBib29sIHdyaXRpbmdNb2RlQ2hhbmdl
ZCA9IG9sZFN0eWxlICYmIHN0eWxlKCkud3JpdGluZ01vZGUoKSAhPSBvbGRTdHlsZS0+d3JpdGlu
Z01vZGUoKTsKKyAgICBib29sIGRpcmVjdGlvbkNoYW5nZWQgPSBvbGRTdHlsZSAmJiBzdHlsZSgp
LmRpcmVjdGlvbigpICE9IG9sZFN0eWxlLT5kaXJlY3Rpb24oKTsKKworICAgIGlmICh3cml0aW5n
TW9kZUNoYW5nZWQgfHwgZGlyZWN0aW9uQ2hhbmdlZCkgeworICAgICAgICBhdXRvJiBwYWdpbmF0
aW9uID0gZnJhbWVWaWV3KCkucGFnaW5hdGlvbigpOworICAgICAgICBpZiAocGFnaW5hdGlvbi5t
b2RlICE9IFBhZ2luYXRpb246OlVucGFnaW5hdGVkKSB7CisgICAgICAgICAgICBtdXRhYmxlU3R5
bGUoKS5zZXRDb2x1bW5TdHlsZXNGcm9tUGFnaW5hdGlvbk1vZGUocGFnaW5hdGlvbi5tb2RlKTsK
KyAgICAgICAgICAgIGlmIChtdWx0aUNvbHVtbkZsb3coKSkKKyAgICAgICAgICAgICAgICB1cGRh
dGVDb2x1bW5Qcm9ncmVzc2lvbkZyb21TdHlsZShzdHlsZSgpKTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAobXVsdGlDb2x1bW5GbG93KCkpCisgICAgICAgICAgICB1cGRhdGVTdHlsZXNGb3JDb2x1
bW5DaGlsZHJlbigpOworICAgIH0KKworICAgIGlmIChkaXJlY3Rpb25DaGFuZ2VkKQorICAgICAg
ICBmcmFtZVZpZXcoKS50b3BDb250ZW50RGlyZWN0aW9uRGlkQ2hhbmdlKCk7Cit9CisKIHZvaWQg
UmVuZGVyVmlldzo6c2NoZWR1bGVMYXp5UmVwYWludChSZW5kZXJCb3gmIHJlbmRlcmVyKQogewog
ICAgIGlmIChyZW5kZXJlci5yZW5kZXJCb3hOZWVkc0xhenlSZXBhaW50KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA3YWQxMTE0MmEyYWYuLjZkZjMzYmFjYWE3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC0yMTQsNiArMjE0LDggQEAg
cHVibGljOgogICAgIGNvbnN0IFdlYWtIYXNoU2V0PGNvbnN0IFJlbmRlckJveD4mIGNvbnRhaW5l
clF1ZXJ5Qm94ZXMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5lclF1ZXJ5Qm94ZXM7IH0KIAog
cHJpdmF0ZToKKyAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3Qg
UmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsKKwogICAgIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBib29sKiB3YXNG
aXhlZCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9w
QXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBtYXBBYnNv
bHV0ZVRvTG9jYWxQb2ludChPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2RlPiwgVHJhbnNmb3Jt
U3RhdGUmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IGI0ODYxNGIyNzQ5Mi4u
OGE2NzE3Y2MwODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTEwNSw2ICsxMDUsOCBAQCB2b2lkIFJl
bmRlclRyZWVVcGRhdGVyOjpjb21taXQoc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFN0eWxlOjpVcGRh
dGU+IHN0eWxlVXBkYXRlKQogCiAgICAgbV9zdHlsZVVwZGF0ZSA9IFdURk1vdmUoc3R5bGVVcGRh
dGUpOwogCisgICAgdXBkYXRlUmVuZGVyVmlld1N0eWxlKCk7CisKICAgICBmb3IgKGF1dG8mIHJv
b3QgOiBtX3N0eWxlVXBkYXRlLT5yb290cygpKSB7CiAgICAgICAgIGF1dG8qIHJlbmRlcmluZ1Jv
b3QgPSBmaW5kUmVuZGVyaW5nUm9vdCgqcm9vdCk7CiAgICAgICAgIGlmICghcmVuZGVyaW5nUm9v
dCkKQEAgLTUxNiw2ICs1MTgsMTIgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6c3RvcmVQcmV2
aW91c1JlbmRlcmVyKE5vZGUmIG5vZGUpCiAgICAgcmVuZGVyaW5nUGFyZW50KCkucHJldmlvdXND
aGlsZFJlbmRlcmVyID0gcmVuZGVyZXI7CiB9CiAKK3ZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVw
ZGF0ZVJlbmRlclZpZXdTdHlsZSgpCit7CisgICAgaWYgKG1fc3R5bGVVcGRhdGUtPnJvb3RTdHls
ZVVwZGF0ZSgpKQorICAgICAgICBtX2RvY3VtZW50LnJlbmRlclZpZXcoKS0+c2V0U3R5bGUoUmVu
ZGVyU3R5bGU6OmNsb25lKCptX3N0eWxlVXBkYXRlLT5yb290U3R5bGVVcGRhdGUoKSkpOworfQor
CiB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJlbmRlcmVycyhFbGVtZW50JiByb290
KQogewogICAgIGF1dG8qIHZpZXcgPSByb290LmRvY3VtZW50KCkucmVuZGVyVmlldygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRh
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0
ZXIuaAppbmRleCBhYmNjOWYwZWMyZGYuLmI1ODI0YzMwZDg2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgKQEAgLTYx
LDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUVsZW1lbnRSZW5kZXJlcihFbGVt
ZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUmKTsKICAgICB2b2lkIHVwZGF0ZVNWR1Jl
bmRlcmVyKEVsZW1lbnQmKTsKICAgICB2b2lkIHVwZGF0ZVJlbmRlcmVyU3R5bGUoUmVuZGVyRWxl
bWVudCYsIFJlbmRlclN0eWxlJiYsIFN0eWxlRGlmZmVyZW5jZSk7CisgICAgdm9pZCB1cGRhdGVS
ZW5kZXJWaWV3U3R5bGUoKTsKICAgICB2b2lkIGNyZWF0ZVJlbmRlcmVyKEVsZW1lbnQmLCBSZW5k
ZXJTdHlsZSYmKTsKICAgICB2b2lkIHVwZGF0ZUJlZm9yZURlc2NlbmRhbnRzKEVsZW1lbnQmLCBj
b25zdCBTdHlsZTo6RWxlbWVudFVwZGF0ZSopOwogICAgIHZvaWQgdXBkYXRlQWZ0ZXJEZXNjZW5k
YW50cyhFbGVtZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXggMTc1MjIzMmU1MDgxLi5iODhjNDlmYjkxNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC01Myw2ICs1Myw3IEBA
CiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNs
dWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJT
VkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCiAjaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKQEAgLTYwLDYgKzYxLDcgQEAKICNpbmNsdWRlICJTVkdVUklSZWZlcmVuY2Uu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNs
dWRlICJTdHlsZVVwZGF0ZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJXZWJBbmlt
YXRpb25UeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CkBAIC03NzAs
NiArNzcyLDY4IEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZpY1F1aXJrcyhS
ZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiAjZW5kaWYKIH0KIAordm9pZCBBZGp1c3Rlcjo6cHJv
cGFnYXRlV3JpdGluZ01vZGVBbmREaXJlY3Rpb24oVXBkYXRlJiB1cGRhdGUsIGNvbnN0IERvY3Vt
ZW50JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvKiBib2R5ID0gZG9jdW1lbnQuYm9keU9yRnJhbWVz
ZXQoKTsKKyAgICBhdXRvKiBib2R5U3R5bGUgPSBib2R5ID8gdXBkYXRlLmVsZW1lbnRTdHlsZSgq
Ym9keSkgOiBudWxscHRyOworICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudFN0eWxlID0gdXBkYXRl
LmVsZW1lbnRTdHlsZSgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpOworCisgICAgYXV0byBz
aG91bGRQcm9wYWdhdGUgPSBbJl0geworICAgICAgICBpZiAoIWRvY3VtZW50RWxlbWVudFN0eWxl
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoYm9keVN0eWxlICYmICFi
b2R5U3R5bGUtPmVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuaXNFbXB0eSgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gZG9jdW1lbnRFbGVtZW50U3R5bGUtPmVmZmVj
dGl2ZUNvbnRhaW5tZW50KCkuaXNFbXB0eSgpOworICAgIH0oKTsKKworICAgIGlmICghc2hvdWxk
UHJvcGFnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIHdyaXRpbmdNb2RlID0gWyZd
IHsKKyAgICAgICAgaWYgKGRvY3VtZW50RWxlbWVudFN0eWxlLT5oYXNFeHBsaWNpdGx5U2V0V3Jp
dGluZ01vZGUoKSkKKyAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVsZW1lbnRTdHlsZS0+d3Jp
dGluZ01vZGUoKTsKKyAgICAgICAgaWYgKGJvZHlTdHlsZSAmJiBib2R5U3R5bGUtPmhhc0V4cGxp
Y2l0bHlTZXRXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIGJvZHlTdHlsZS0+d3Jp
dGluZ01vZGUoKTsKKyAgICAgICAgcmV0dXJuIFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbTsKKyAg
ICB9KCk7CisKKyAgICBhdXRvIGRpcmVjdGlvbiA9IFsmXSB7CisgICAgICAgIGlmIChkb2N1bWVu
dEVsZW1lbnRTdHlsZS0+aGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKQorICAgICAgICAgICAg
cmV0dXJuIGRvY3VtZW50RWxlbWVudFN0eWxlLT5kaXJlY3Rpb24oKTsKKyAgICAgICAgaWYgKGJv
ZHlTdHlsZSAmJiBib2R5U3R5bGUtPmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKKyAgICAg
ICAgICAgIHJldHVybiBib2R5U3R5bGUtPmRpcmVjdGlvbigpOworICAgICAgICByZXR1cm4gVGV4
dERpcmVjdGlvbjo6TFRSOworICAgIH0oKTsKKworICAgIGF1dG8mIHZpZXdTdHlsZSA9IGRvY3Vt
ZW50LnJlbmRlclZpZXcoKS0+c3R5bGUoKTsKKyAgICBpZiAod3JpdGluZ01vZGUgIT0gdmlld1N0
eWxlLndyaXRpbmdNb2RlKCkgfHwgZGlyZWN0aW9uICE9IHZpZXdTdHlsZS5kaXJlY3Rpb24oKSkg
eworICAgICAgICBhdXRvIG5ld1Jvb3RTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cih2aWV3
U3R5bGUpOworICAgICAgICBuZXdSb290U3R5bGUtPnNldFdyaXRpbmdNb2RlKHdyaXRpbmdNb2Rl
KTsKKyAgICAgICAgbmV3Um9vdFN0eWxlLT5zZXREaXJlY3Rpb24oZGlyZWN0aW9uKTsKKyAgICAg
ICAgdXBkYXRlLmFkZFJvb3RTdHlsZVVwZGF0ZShXVEZNb3ZlKG5ld1Jvb3RTdHlsZSkpOworICAg
IH0KKworICAgIGlmICh3cml0aW5nTW9kZSAhPSBkb2N1bWVudEVsZW1lbnRTdHlsZS0+d3JpdGlu
Z01vZGUoKSB8fCBkaXJlY3Rpb24gIT0gZG9jdW1lbnRFbGVtZW50U3R5bGUtPmRpcmVjdGlvbigp
KSB7CisgICAgICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudFVwZGF0ZSA9IHVwZGF0ZS5lbGVtZW50
VXBkYXRlKCpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAgIGlmICghZG9jdW1l
bnRFbGVtZW50VXBkYXRlKSB7CisgICAgICAgICAgICB1cGRhdGUuYWRkRWxlbWVudCgqZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50KCksIG51bGxwdHIsIHsgUmVuZGVyU3R5bGU6OmNsb25lUHRyKCpk
b2N1bWVudEVsZW1lbnRTdHlsZSkgfSk7CisgICAgICAgICAgICBkb2N1bWVudEVsZW1lbnRVcGRh
dGUgPSB1cGRhdGUuZWxlbWVudFVwZGF0ZSgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpOwor
ICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5zdHlsZS0+c2V0V3Jp
dGluZ01vZGUod3JpdGluZ01vZGUpOworICAgICAgICBkb2N1bWVudEVsZW1lbnRVcGRhdGUtPnN0
eWxlLT5zZXREaXJlY3Rpb24oZGlyZWN0aW9uKTsKKyAgICAgICAgZG9jdW1lbnRFbGVtZW50VXBk
YXRlLT5jaGFuZ2UgPSBkZXRlcm1pbmVDaGFuZ2UoKmRvY3VtZW50RWxlbWVudFN0eWxlLCAqZG9j
dW1lbnRFbGVtZW50VXBkYXRlLT5zdHlsZSk7CisgICAgfQorfQorCit2b2lkIEFkanVzdGVyOjpy
ZW1vdmVJbXBsaWNpdFdyaXRpbmdNb2RlQW5kRGlyZWN0aW9uKFJlbmRlclN0eWxlJiBzdHlsZSkK
K3sKKyAgICBpZiAoIXN0eWxlLmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKQorICAgICAg
ICBzdHlsZS5zZXRXcml0aW5nTW9kZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdyaXRpbmdNb2RlKCkp
OworICAgIGlmICghc3R5bGUuaGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKQorICAgICAgICBz
dHlsZS5zZXREaXJlY3Rpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxEaXJlY3Rpb24oKSk7Cit9CisK
ICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogc3RhdGljIGJvb2wgaGFzVGV4dENoaWxkKGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUFkanVzdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgK
aW5kZXggZGU4YTg1OGQ5NWZmLi44MjkxYjgyY2Q4NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUFkanVzdGVyLmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQg
YWRqdXN0U1ZHRWxlbWVudFN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgU1ZHRWxlbWVudCYpOwog
ICAgIHN0YXRpYyB2b2lkIGFkanVzdEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclJvb3RTdHls
ZShSZW5kZXJTdHlsZSYsIGNvbnN0IERvY3VtZW50Jik7CisgICAgc3RhdGljIHZvaWQgcHJvcGFn
YXRlV3JpdGluZ01vZGVBbmREaXJlY3Rpb24oVXBkYXRlJiwgY29uc3QgRG9jdW1lbnQmKTsKKyAg
ICBzdGF0aWMgdm9pZCByZW1vdmVJbXBsaWNpdFdyaXRpbmdNb2RlQW5kRGlyZWN0aW9uKFJlbmRl
clN0eWxlJik7CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIHN0cnVjdCBBZGp1
c3RtZW50Rm9yVGV4dEF1dG9zaXppbmcgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCmluZGV4IDFlYTVjYWFlODA1OS4uYTU0M2RhM2M2YmQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQu
Y3BwCkBAIC03MSwyNSArNzEsNyBAQCBSZW5kZXJTdHlsZSByZXNvbHZlRm9yRG9jdW1lbnQoY29u
c3QgRG9jdW1lbnQmIGRvY3VtZW50KQogI2VuZGlmCiAKICAgICBBZGp1c3Rlcjo6YWRqdXN0RXZl
bnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUm9vdFN0eWxlKGRvY3VtZW50U3R5bGUsIGRvY3VtZW50
KTsKLQotICAgIEVsZW1lbnQqIGRvY0VsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQo
KTsKLSAgICBSZW5kZXJPYmplY3QqIGRvY0VsZW1lbnRSZW5kZXJlciA9IGRvY0VsZW1lbnQgPyBk
b2NFbGVtZW50LT5yZW5kZXJlcigpIDogbnVsbHB0cjsKLSAgICBpZiAoZG9jRWxlbWVudFJlbmRl
cmVyKSB7Ci0gICAgICAgIC8vIFVzZSB0aGUgZGlyZWN0aW9uIGFuZCB3cml0aW5nLW1vZGUgb2Yg
dGhlIGJvZHkgdG8gc2V0IHRoZQotICAgICAgICAvLyB2aWV3cG9ydCdzIGRpcmVjdGlvbiBhbmQg
d3JpdGluZy1tb2RlIHVubGVzcyB0aGUgcHJvcGVydHkgaXMgc2V0IG9uIHRoZSBkb2N1bWVudCBl
bGVtZW50LgotICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBib2R5LCB0aGVuIHVzZSB0aGUgZG9j
dW1lbnQgZWxlbWVudC4KLSAgICAgICAgYXV0byogYm9keSA9IGRvY3VtZW50LmJvZHlPckZyYW1l
c2V0KCk7Ci0gICAgICAgIFJlbmRlck9iamVjdCogYm9keVJlbmRlcmVyID0gYm9keSA/IGJvZHkt
PnJlbmRlcmVyKCkgOiBudWxscHRyOwotICAgICAgICBpZiAoYm9keVJlbmRlcmVyICYmICFkb2NF
bGVtZW50UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpCi0g
ICAgICAgICAgICBkb2N1bWVudFN0eWxlLnNldFdyaXRpbmdNb2RlKGJvZHlSZW5kZXJlci0+c3R5
bGUoKS53cml0aW5nTW9kZSgpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZG9jdW1lbnRT
dHlsZS5zZXRXcml0aW5nTW9kZShkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkud3JpdGluZ01v
ZGUoKSk7Ci0gICAgICAgIGlmIChib2R5UmVuZGVyZXIgJiYgIWRvY0VsZW1lbnRSZW5kZXJlci0+
c3R5bGUoKS5oYXNFeHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpCi0gICAgICAgICAgICBkb2N1bWVu
dFN0eWxlLnNldERpcmVjdGlvbihib2R5UmVuZGVyZXItPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBkb2N1bWVudFN0eWxlLnNldERpcmVjdGlvbihkb2NF
bGVtZW50UmVuZGVyZXItPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwotICAgIH0KLQorICAgIAogICAg
IGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24gPSByZW5kZXJWaWV3LmZyYW1lVmlldygpLnBh
Z2luYXRpb24oKTsKICAgICBpZiAocGFnaW5hdGlvbi5tb2RlICE9IFBhZ2luYXRpb246OlVucGFn
aW5hdGVkKSB7CiAgICAgICAgIGRvY3VtZW50U3R5bGUuc2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2lu
YXRpb25Nb2RlKHBhZ2luYXRpb24ubW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2
ZXIuY3BwCmluZGV4IDIzMDM3YmI5NWE3MC4uNTcwMThhODk4ODIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICAg
ICAgYXV0byYgZG9jdW1lbnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CiAgICAgICAgIGF1dG8qIGRv
Y3VtZW50RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpOwogICAgICAgICBpZiAo
IWRvY3VtZW50RWxlbWVudCB8fCBkb2N1bWVudEVsZW1lbnQgPT0gJmVsZW1lbnQpCi0gICAgICAg
ICAgICBtX3Jvb3RFbGVtZW50U3R5bGUgPSBkb2N1bWVudC5yZW5kZXJTdHlsZSgpOworICAgICAg
ICAgICAgbV9yb290RWxlbWVudFN0eWxlID0gZG9jdW1lbnQucm9vdFN0eWxlKCk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIG1fcm9vdEVsZW1lbnRTdHlsZSA9IGRvY3VtZW50RWxlbWVudFN0
eWxlID8gZG9jdW1lbnRFbGVtZW50U3R5bGUgOiBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxl
KCk7CiAgICAgfQpAQCAtMTU5LDcgKzE1OSw3IEBAIFJlc29sdmVyOjpSZXNvbHZlcihEb2N1bWVu
dCYgZG9jdW1lbnQpCiAgICAgICAgIG1fbWVkaWFRdWVyeUV2YWx1YXRvciA9IExlZ2FjeU1lZGlh
UXVlcnlFdmFsdWF0b3IgeyB9OwogCiAgICAgaWYgKGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IG1f
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpIHsKLSAgICAgICAgbV9yb290RGVmYXVsdFN0eWxl
ID0gc3R5bGVGb3JFbGVtZW50KCpkb2N1bWVudEVsZW1lbnQsIHsgbV9kb2N1bWVudC5yZW5kZXJT
dHlsZSgpIH0sIFJ1bGVNYXRjaGluZ0JlaGF2aW9yOjpNYXRjaE9ubHlVc2VyQWdlbnRSdWxlcyku
cmVuZGVyU3R5bGU7CisgICAgICAgIG1fcm9vdERlZmF1bHRTdHlsZSA9IHN0eWxlRm9yRWxlbWVu
dCgqZG9jdW1lbnRFbGVtZW50LCB7IG1fZG9jdW1lbnQucm9vdFN0eWxlKCkgfSwgUnVsZU1hdGNo
aW5nQmVoYXZpb3I6Ok1hdGNoT25seVVzZXJBZ2VudFJ1bGVzKS5yZW5kZXJTdHlsZTsKICAgICAg
ICAgLy8gVHVybiBvZmYgYXNzZXJ0aW9uIGFnYWluc3QgZm9udCBsb29rdXBzIGR1cmluZyBzdHls
ZSByZXNvbHZlciBpbml0aWFsaXphdGlvbi4gV2UgbWF5IG5lZWQgcm9vdCBzdHlsZSBmb250IGZv
ciBtZWRpYSBxdWVyaWVzLgogICAgICAgICBtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpLmluY3Jl
bWVudElzQ29tcHV0aW5nUm9vdFN0eWxlRm9udCgpOwogICAgICAgICBtX3Jvb3REZWZhdWx0U3R5
bGUtPmZvbnRDYXNjYWRlKCkudXBkYXRlKCZtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpKTsKQEAg
LTQ3OCwxNSArNDc4LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gUmVzb2x2ZXI6
OnBzZXVkb1N0eWxlRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtCiBzdGQ6OnVuaXF1ZV9w
dHI8UmVuZGVyU3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkKIHsK
ICAgICBhdXRvKiBkb2N1bWVudEVsZW1lbnQgPSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgp
OwotICAgIGlmICghZG9jdW1lbnRFbGVtZW50KQorICAgIGlmICghZG9jdW1lbnRFbGVtZW50IHx8
ICFkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJT
dHlsZTo6Y3JlYXRlUHRyKCk7CiAKLSAgICBhdXRvIHN0YXRlID0gU3RhdGUoKmRvY3VtZW50RWxl
bWVudCwgbV9kb2N1bWVudC5yZW5kZXJTdHlsZSgpKTsKKyAgICBhdXRvIHN0YXRlID0gU3RhdGUo
KmRvY3VtZW50RWxlbWVudCwgbV9kb2N1bWVudC5yb290U3R5bGUoKSk7CiAKICAgICBzdGF0ZS5z
ZXRTdHlsZShSZW5kZXJTdHlsZTo6Y3JlYXRlUHRyKCkpOwogICAgIHN0YXRlLnN0eWxlKCktPmlu
aGVyaXRGcm9tKCpzdGF0ZS5yb290RWxlbWVudFN0eWxlKCkpOwogCi0gICAgUGFnZVJ1bGVDb2xs
ZWN0b3IgY29sbGVjdG9yKG1fcnVsZVNldHMsIHN0YXRlLnJvb3RFbGVtZW50U3R5bGUoKS0+ZGly
ZWN0aW9uKCkpOworICAgIFBhZ2VSdWxlQ29sbGVjdG9yIGNvbGxlY3RvcihtX3J1bGVTZXRzLCBk
b2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCktPmRpcmVjdGlvbigpKTsKICAgICBjb2xsZWN0
b3IubWF0Y2hBbGxQYWdlUnVsZXMocGFnZUluZGV4KTsKIAogICAgIGF1dG8mIHJlc3VsdCA9IGNv
bGxlY3Rvci5tYXRjaFJlc3VsdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuY3BwCmluZGV4IGYzNDZmZGY1ZGU5ZS4uNTU4NDJjMDQ0NGE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIFRyZWVS
ZXNvbHZlcjo6U2NvcGU6On5TY29wZSgpCiAKIFRyZWVSZXNvbHZlcjo6UGFyZW50OjpQYXJlbnQo
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogZWxlbWVudChudWxscHRyKQotICAgICwgc3R5bGUo
KmRvY3VtZW50LnJlbmRlclN0eWxlKCkpCisgICAgLCBzdHlsZSgqZG9jdW1lbnQucm9vdFN0eWxl
KCkpCiB7CiB9CiAKQEAgLTIzOSw4ICsyMzksNiBAQCBhdXRvIFRyZWVSZXNvbHZlcjo6cmVzb2x2
ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgUmVzb2x1dGlvblR5cGUgcmVzb2x1dGlvblR5cAog
ICAgIGF1dG8gZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBjb21wdXRlRGVzY2VuZGFudHNUb1Jlc29s
dmUodXBkYXRlLmNoYW5nZSwgZWxlbWVudC5zdHlsZVZhbGlkaXR5KCksIHBhcmVudCgpLmRlc2Nl
bmRhbnRzVG9SZXNvbHZlKTsKIAogICAgIGlmICgmZWxlbWVudCA9PSBtX2RvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudCgpKSB7Ci0gICAgICAgIG1fZG9jdW1lbnRFbGVtZW50U3R5bGUgPSBSZW5kZXJT
dHlsZTo6Y2xvbmVQdHIoKnVwZGF0ZS5zdHlsZSk7Ci0KICAgICAgICAgaWYgKCFleGlzdGluZ1N0
eWxlIHx8IGV4aXN0aW5nU3R5bGUtPmNvbXB1dGVkRm9udFBpeGVsU2l6ZSgpICE9IHVwZGF0ZS5z
dHlsZS0+Y29tcHV0ZWRGb250UGl4ZWxTaXplKCkpIHsKICAgICAgICAgICAgIC8vICJyZW0iIHVu
aXRzIGFyZSByZWxhdGl2ZSB0byB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6ZSBzbyB3
ZSBuZWVkIHRvIHJlY29tcHV0ZSBldmVyeXRoaW5nLgogICAgICAgICAgICAgc2NvcGUoKS5yZXNv
bHZlci0+aW52YWxpZGF0ZU1hdGNoZWREZWNsYXJhdGlvbnNDYWNoZSgpOwpAQCAtODQ0LDYgKzg0
MiwxMyBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSgpCiAgICAgICAg
ICAgICBjbGVhck5lZWRzU3R5bGVSZXNvbHV0aW9uKGVsZW1lbnQpOwogICAgICAgICB9CiAKKyAg
ICAgICAgaWYgKHN0eWxlICYmICZlbGVtZW50ID09IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
KCkpIHsKKyAgICAgICAgICAgIG1fZG9jdW1lbnRFbGVtZW50U3R5bGUgPSBSZW5kZXJTdHlsZTo6
Y2xvbmVQdHIoKnN0eWxlKTsKKyAgICAgICAgICAgIC8vIERvY3VtZW50IGVsZW1lbnQgc3R5bGUg
bWF5IGhhdmUgZ290IGFkanVzdGVkIGJhc2VkIG9uIGJvZHkgc3R5bGUgYnV0IHdlIGRvbid0IHdh
bnQgdG8gaW5oZXJpdCB0aG9zZSBhZGp1c3RtZW50cy4KKyAgICAgICAgICAgIEFkanVzdGVyOjpy
ZW1vdmVJbXBsaWNpdFdyaXRpbmdNb2RlQW5kRGlyZWN0aW9uKCptX2RvY3VtZW50RWxlbWVudFN0
eWxlKTsKKyAgICAgICAgICAgIHN0eWxlID0gbV9kb2N1bWVudEVsZW1lbnRTdHlsZS5nZXQoKTsK
KyAgICAgICAgfQorCiAgICAgICAgIGlmICghc3R5bGUpCiAgICAgICAgICAgICByZXNldFN0eWxl
Rm9yTm9uUmVuZGVyZWREZXNjZW5kYW50cyhlbGVtZW50KTsKIApAQCAtOTQ3LDYgKzk1Miw4IEBA
IHN0ZDo6dW5pcXVlX3B0cjxVcGRhdGU+IFRyZWVSZXNvbHZlcjo6cmVzb2x2ZSgpCiAgICAgaWYg
KG1fdXBkYXRlLT5yb290cygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAorICAg
IEFkanVzdGVyOjpwcm9wYWdhdGVXcml0aW5nTW9kZUFuZERpcmVjdGlvbigqbV91cGRhdGUsIG1f
ZG9jdW1lbnQpOworCiAgICAgcmV0dXJuIFdURk1vdmUobV91cGRhdGUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVVcGRhdGUuaAppbmRleCBiYjMxZDQ3ZWQxM2QuLmY3Zjg5NjliOTk1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCkBAIC02Niw2ICs2Niw4IEBAIHB1YmxpYzoKIAog
ICAgIGNvbnN0IFRleHRVcGRhdGUqIHRleHRVcGRhdGUoY29uc3QgVGV4dCYpIGNvbnN0OwogCisg
ICAgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZVVwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cm9vdFN0eWxlVXBkYXRlLmdldCgpOyB9CisKICAgICBjb25zdCBSZW5kZXJTdHlsZSogZWxlbWVu
dFN0eWxlKGNvbnN0IEVsZW1lbnQmKSBjb25zdDsKICAgICBSZW5kZXJTdHlsZSogZWxlbWVudFN0
eWxlKGNvbnN0IEVsZW1lbnQmKTsKIApAQCAtNzgsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhZGRUZXh0KFRleHQmLCBFbGVtZW50KiBwYXJlbnQsIFRleHRVcGRhdGUmJik7CiAgICAgdm9p
ZCBhZGRUZXh0KFRleHQmLCBUZXh0VXBkYXRlJiYpOwogICAgIHZvaWQgYWRkU1ZHUmVuZGVyZXJV
cGRhdGUoU1ZHRWxlbWVudCYpOworICAgIHZvaWQgYWRkUm9vdFN0eWxlVXBkYXRlKHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUpIHsgbV9yb290U3R5bGVVcGRhdGUgPSBXVEZNb3Zl
KHN0eWxlKTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgYWRkUG9zc2libGVSb290KEVsZW1lbnQq
KTsKQEAgLTg2LDYgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBMaXN0SGFzaFNldDxSZWZQdHI8Q29u
dGFpbmVyTm9kZT4+IG1fcm9vdHM7CiAgICAgSGFzaE1hcDxSZWZQdHI8Y29uc3QgRWxlbWVudD4s
IEVsZW1lbnRVcGRhdGU+IG1fZWxlbWVudHM7CiAgICAgSGFzaE1hcDxSZWZQdHI8Y29uc3QgVGV4
dD4sIFRleHRVcGRhdGU+IG1fdGV4dHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxl
PiBtX3Jvb3RTdHlsZVVwZGF0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA2NmIx
NGU2N2ZmYy4uMmNmMzcwOWFlYmQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ1NTUsOCArNDU1
NSw2IEBAIHdlYmtpdC5vcmcvYi8yMTQyOTEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvc3JsLWFsCiB3ZWJraXQub3JnL2IvMjE0MjkxIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3RjeS13aGl0
ZS1zcGFjZS1wcm9jZXNzaW5nLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMjE0MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0
aW5nLW1vZGVzL3RleHQtb3JpZW50YXRpb24taW5pdGlhbC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvMjE0MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLTAwMS5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjE0MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktMDMyLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8yMTQyOTEgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvd20tcHJvcGFnYXRpb24tYm9k
eS0wMzMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9w
YWdhdGlvbi1ib2R5LTAzNC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
MjE0MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1v
ZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktMDM1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8yMTQyOTEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXdyaXRpbmctbW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS0wMzYuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQpAQCAtNjA0OCw0ICs2MDQ2LDQgQEAgZnVsbHNjcmVlbi9mdWxsc2NyZWVuLWVudGVy
LWJvdHRvbS1wYWRkaW5nLWFuaW1hdGlvbi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2xvYWRp
bmcvb2F1dGguaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby13aXRoLWh0dHBzLXVybC1hbGxvd2Vk
LWJ5LWNzcC1tZWRpYS1zcmMtc3Rhci5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY2xpcGJvYXJkLWFwaXMvZmVhdHVyZS1w
b2xpY3kvY2xpcGJvYXJkLXdyaXRlL2NsaXBib2FyZC13cml0ZS1kaXNhYmxlZC1ieS1mZWF0dXJl
LXBvbGljeS50ZW50YXRpdmUuaHR0cHMuc3ViLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRF
cnIgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJl
L3VybHMvdGVybWlub2xvZ3ktMC9kb2N1bWVudC1iYXNlLXVybC1pbml0aWF0ZWQtZ3JhbmQtcGFy
ZW50Lmh0dHBzLndpbmRvdy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscy90ZXJtaW5vbG9neS0wL2RvY3VtZW50LWJhc2UtdXJsLWlu
aXRpYXRlZC1ncmFuZC1wYXJlbnQuaHR0cHMud2luZG93Lmh0bWwgWyBEdW1wSlNDb25zb2xlTG9n
SW5TdGRFcnIgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3Jp
dGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1t
b2RlL3dyaXRpbmctbW9kZS1ib2R5LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi5iM2U4NjMzYTc0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEgQEAKK1RoaXMgc2hvdWxkIGJlIGhvcml6b250YWwuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjZlZTFkNTY1N2FkZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5
Lmh0bWwKQEAgLTAsMCArMSw3IEBACis8cD5UaGlzIHNob3VsZCBiZSBob3Jpem9udGFsLjwvcD4K
KzxzY3JpcHQ+Citjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5ib2R5OwordGFyZ2V0LnN0eWxlLndy
aXRpbmdNb2RlID0gJ3ZlcnRpY2FsLXJsJzsKK3RhcmdldC5vZmZzZXRMZWZ0OwordGFyZ2V0LnN0
eWxlLndyaXRpbmdNb2RlID0gJyc7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50LWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1l
bnQtZWxlbWVudC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uYjNlODYzM2E3NDE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxIEBACitUaGlzIHNob3VsZCBiZSBob3Jpem9udGFsLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1l
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1
bWVudC1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li44YjRmMTg3MGMwOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRp
bmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsNyBA
QAorPHA+VGhpcyBzaG91bGQgYmUgaG9yaXpvbnRhbC48L3A+Cis8c2NyaXB0PgorY29uc3QgdGFy
Z2V0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwordGFyZ2V0LnN0eWxlLndyaXRpbmdNb2Rl
ID0gJ3ZlcnRpY2FsLXJsJzsKK3RhcmdldC5vZmZzZXRMZWZ0OwordGFyZ2V0LnN0eWxlLndyaXRp
bmdNb2RlID0gJyc7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0
aW9uLWJvZHktY29tcHV0ZWQtcm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdh
dGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhwZWN0ZWQudHh0CmluZGV4IDc1MGUyYjkwOTZhNi4u
NDk1YTg0MGMyYmFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LWNv
bXB1dGVkLXJvb3QtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJv
ZHktY29tcHV0ZWQtcm9vdC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKIFBBU1MgQ2hl
Y2sgY29tcHV0ZWQgd3JpdGluZy1tb2RlIGZvciBib2R5IGVsZW1lbnQuCi1GQUlMIENoZWNrIGNv
bXB1dGVkIHdyaXRpbmctbW9kZSBmb3IgaHRtbCByb290IGVsZW1lbnQuIGFzc2VydF9ub3RfZXF1
YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAidmVydGljYWwtbHIiCi1GQUlMIENoZWNrIGNvbXB1
dGVkIHdyaXRpbmctbW9kZSBmb3IgYm9keSBlbGVtZW50IHdoZW4gc3R5bGUgbm8gbG9uZ2VyIGFw
cGxpZXMuIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAidmVydGljYWwt
bHIiCitQQVNTIENoZWNrIGNvbXB1dGVkIHdyaXRpbmctbW9kZSBmb3IgaHRtbCByb290IGVsZW1l
bnQuCitQQVNTIENoZWNrIGNvbXB1dGVkIHdyaXRpbmctbW9kZSBmb3IgYm9keSBlbGVtZW50IHdo
ZW4gc3R5bGUgbm8gbG9uZ2VyIGFwcGxpZXMuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463418</attachid>
            <date>2022-11-05 00:48:33 -0700</date>
            <delta_ts>2022-11-05 00:59:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185729-20221105094831.patch</filename>
            <type>text/plain</type>
            <size>41499</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSAwMzE4NDhlYjM1YTY2NDI2NWExMGIxYjg5ZjIzMWYxY2E2N2E1ZjRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBGcmksIDQgTm92IDIwMjIgMTM6MDA6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBUaGUgZWZm
ZWN0IG9mIHdyaXRpbmctbW9kZSBwcm9wZXJ0eSByZW1haW5zIGFmdGVyIHRoZQogcHJvcGVydHkg
aXMgcmVtb3ZlZCAob24gdGhlIHJvb3QgZWxlbWVudCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU3MjkgcmRhcjovLzk3MDkxOTkwCgpSZXZpZXdlZCBieSBBbGFu
IEJhcmFkbGF5LgoKVGhlcmUgaXMgYSBzdHlsZSBjeWNsZSB3aGVyZSB0aGUgcm9vdCB3cml0aW5n
LW1vZGUgbWF5IGRlcGVuZCBvbiB0aGUgZG9jdW1lbnQgZWxlbWVudCB3cml0aW5nLW1vZGUgd2hp
Y2gKaW4gdHVybiBtYXkgZGVwZW5kIG9uIHRoZSBib2R5J3MgKGNvbXB1dGVkIGR1cmluZyBwcmV2
aWV3IHN0eWxlIHVwZGF0ZSkuIFRoZXNlIGNhbiB0aGVuIGdldCBpbmhlcml0ZWQgYmFjawp0byB0
aGUgYm9keSBzdHlsZS4gVGhlIHJlc3VsdGluZyBjb25mdXNpb24gY2F1c2VzIHZhcmlvdXMgaXNz
dWVzLgoKVGhpcyBwYXRjaCBlbnN1cmVzIHdlIGRvIHN0eWxlIHJlc29sdXRpb24gdXNpbmcgY2xl
YW4gcm9vdCBzdHlsZXMgd2l0aG91dCB3cml0aW5nLW1vZGUvZGlyZWN0aW9uIG11dGF0aW9ucy4K
VGhlIHByb3BhZ2F0aW9uIHVwd2FyZHMgaXMgZG9uZSBhdCB0aGUgZW5kIG9mIHRoZSByZXNvbHV0
aW9uLiBUaGlzIHJlcGxhY2VzIHRoZSBvbGQgcHJvcGFnYXRpb24gY29kZSBpbgpyZW5kZXIgdHJl
ZS4KCiogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9uczoKKiBMYXlvdXRUZXN0cy9mYXN0L3dy
aXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKiBMYXlv
dXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS5odG1sOiBBZGRlZC4K
KiBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxl
bWVudC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKiBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9k
ZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sOiBBZGRlZC4KKiBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93
bS1wcm9wYWdhdGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1bWVudDo6cmVzb2x2ZVN0eWxl
KToKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50Ojpy
b290U3R5bGUgY29uc3QpOgoKTWFpbnRhaW4gY2xlYW4gcm9vdCBzdHlsZS4KCiogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CihXZWJDb3JlOjpSZW5kZXJCb3g6OnN0eWxl
RGlkQ2hhbmdlKToKClJlbW92ZSBzdHlsZSBtdXRhdGluZyBwcm9wYWdhdGlvbiBjb2RlLgoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CgpIYW5kbGUgdmlldyBpbnZh
bGlkYXRpb24gZm9yIHdyaXRpbmctbW9kZS9kaXJlY3Rpb24uIFRoaXMgaXMgbW92ZWQgZnJvbSBS
ZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlLgoKKFdlYkNvcmU6OlJlbmRlclZpZXc6OnN0eWxlRGlk
Q2hhbmdlKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oOgoqIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHA6CihXZWJD
b3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6Y29tbWl0KToKClVwZGF0ZSB0aGUgdmlldyBzdHlsZSBm
aXJzdC4KCihXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVyVmlld1N0eWxl
KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
aDoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcDoKKFdlYkNvcmU6OlN0
eWxlOjpBZGp1c3Rlcjo6cHJvcGFnYXRlVG9Eb2N1bWVudEVsZW1lbnRBbmRJbml0aWFsQ29udGFp
bmluZ0Jsb2NrKToKCkRvIHRoZSBwcm9wYWdhdGlvbiBhdCBlbmQgb2YgdGhlIHN0eWxlIHJlc29s
dXRpb24uCgooV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVyOjpyZXN0b3JlVXNlZERvY3VtZW50RWxl
bWVudFN0eWxlVG9Db21wdXRlZCk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rl
ci5oOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcDoK
KFdlYkNvcmU6OlN0eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQpOgoqIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlUmVzb2x2ZXIuY3BwOgooV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpTdGF0ZTo6
U3RhdGUpOgooV2ViQ29yZTo6U3R5bGU6OlJlc29sdmVyOjpSZXNvbHZlcik6CihXZWJDb3JlOjpT
dHlsZTo6UmVzb2x2ZXI6OnN0eWxlRm9yUGFnZSk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuY3BwOgooV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6UGFyZW50
OjpQYXJlbnQpOgooV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQp
OgooV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSk6CgpT
YXZlIGFuZCBjbGVhbiB1cCBkb2N1bWVudCBlbGVtZW50IHN0eWxlIHdoZW4gdHJhdmVyc2luZyB0
aHJvdWdoLgoKKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmUpOgoqIFNvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmg6CihXZWJDb3JlOjpTdHlsZTo6VXBkYXRlOjpp
bml0aWFsQ29udGFpbmluZ0Jsb2NrVXBkYXRlIGNvbnN0KToKKFdlYkNvcmU6OlN0eWxlOjpVcGRh
dGU6OmFkZEluaXRpYWxDb250YWluaW5nQmxvY2tVcGRhdGUpOgoKUGFzcyB0aGUgbmV3IHJvb3Qg
c3R5bGUgdmlhIHN0eWxlIHVwZGF0ZS4KLS0tCiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29tcHV0ZWRT
dHlsZUV4dHJhY3Rvci5jcHAgfCAyMCArKysrLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCAgICAgICAgICAgICAgIHwgMTcgKystLS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oICAgICAgICAgICAgICAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwICAgICAgICB8IDUxIC0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcCAgICAgICB8IDIyICsrKysrKwogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuaCAgICAgICAgIHwgIDIgKwogLi4uL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgIHwgIDggKysKIC4uLi9yZW5kZXJpbmcvdXBkYXRpbmcv
UmVuZGVyVHJlZVVwZGF0ZXIuaCAgICB8ICAxICsKIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QWRqdXN0ZXIuY3BwICAgICAgICB8IDc0ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaCAgICAgICAgICB8ICAyICsKIC4uLi9XZWJDb3JlL3N0
eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcCB8IDIwICstLS0tCiBTb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCAgICAgICAgfCAxMCArLS0KIFNvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcCAgICB8IDQyICsrKysrKystLS0tCiBTb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oICAgICAgfCAgNiArLQogU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaCAgICAgICAgICAgIHwgIDQgKwogTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucyAgICAgICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi93cml0aW5nLW1v
ZGUtYm9keS1leHBlY3RlZC5odG1sICAgICAgICAgICB8ICAxICsKIC4uLi9mYXN0L3dyaXRpbmct
bW9kZS93cml0aW5nLW1vZGUtYm9keS5odG1sICB8ICA3ICsrCiAuLi5yaXRpbmctbW9kZS1kb2N1
bWVudC1lbGVtZW50LWV4cGVjdGVkLmh0bWwgfCAgMSArCiAuLi4vd3JpdGluZy1tb2RlLWRvY3Vt
ZW50LWVsZW1lbnQuaHRtbCAgICAgICAgfCAgNyArKwogLi4ucm9wYWdhdGlvbi1ib2R5LWNvbXB1
dGVkLXJvb3QtZXhwZWN0ZWQudHh0IHwgIDQgKy0KIDIxIGZpbGVzIGNoYW5nZWQsIDE5NSBpbnNl
cnRpb25zKCspLCAxMTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9k
ZS1ib2R5Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmct
bW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC1leHBlY3RlZC5odG1sCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRv
Y3VtZW50LWVsZW1lbnQuaHRtbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db21w
dXRlZFN0eWxlRXh0cmFjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db21wdXRlZFN0eWxl
RXh0cmFjdG9yLmNwcAppbmRleCBjODk3Y2I4MmQ1YzMuLmRkYTU0MzM3YjhhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9Db21wdXRlZFN0eWxlRXh0cmFjdG9yLmNwcApAQCAtMzExOCw4ICsz
MTE4LDE0IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVG
b3JQcm9wZXJ0eUluU3R5bGUoY29uc3QgUmVuZGVyU3R5CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEN1cnNvclZpc2liaWxpdHk6CiAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRl
VmFsdWUoc3R5bGUuY3Vyc29yVmlzaWJpbGl0eSgpKTsKICNlbmRpZgotICAgIGNhc2UgQ1NTUHJv
cGVydHlEaXJlY3Rpb246Ci0gICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUo
c3R5bGUuZGlyZWN0aW9uKCkpOworICAgIGNhc2UgQ1NTUHJvcGVydHlEaXJlY3Rpb246ICB7Cisg
ICAgICAgIGF1dG8gZGlyZWN0aW9uID0gWyZdIHsKKyAgICAgICAgICAgIGlmIChtX2VsZW1lbnQg
PT0gbV9lbGVtZW50LT5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICYmICFzdHlsZS5oYXNF
eHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFJlbmRlclN0
eWxlOjppbml0aWFsRGlyZWN0aW9uKCk7CisgICAgICAgICAgICByZXR1cm4gc3R5bGUuZGlyZWN0
aW9uKCk7CisgICAgICAgIH0oKTsKKyAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVW
YWx1ZShkaXJlY3Rpb24pOworICAgIH0KICAgICBjYXNlIENTU1Byb3BlcnR5RGlzcGxheToKICAg
ICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5kaXNwbGF5KCkpOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlFbXB0eUNlbGxzOgpAQCAtMzg2Miw4ICszODY4LDE0IEBAIFJl
ZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0eUlu
U3R5bGUoY29uc3QgUmVuZGVyU3R5CiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKHN0eWxlLmxpbmVTbmFwKCkpOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMaW5l
QWxpZ246CiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHN0eWxlLmxp
bmVBbGlnbigpKTsKLSAgICBjYXNlIENTU1Byb3BlcnR5V3JpdGluZ01vZGU6Ci0gICAgICAgIHJl
dHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoc3R5bGUud3JpdGluZ01vZGUoKSk7CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdyaXRpbmdNb2RlOiB7CisgICAgICAgIGF1dG8gd3JpdGluZ01vZGUg
PSBbJl0geworICAgICAgICAgICAgaWYgKG1fZWxlbWVudCA9PSBtX2VsZW1lbnQtPmRvY3VtZW50
KCkuZG9jdW1lbnRFbGVtZW50KCkgJiYgIXN0eWxlLmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9k
ZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBSZW5kZXJTdHlsZTo6aW5pdGlhbFdyaXRpbmdN
b2RlKCk7CisgICAgICAgICAgICByZXR1cm4gc3R5bGUud3JpdGluZ01vZGUoKTsKKyAgICAgICAg
fSgpOworICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHdyaXRpbmdNb2Rl
KTsKKyAgICB9CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRDb21iaW5lOgogICAgICAg
ICBpZiAoc3R5bGUudGV4dENvbWJpbmUoKSA9PSBUZXh0Q29tYmluZTo6QWxsKQogICAgICAgICAg
ICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKENTU1ZhbHVlSG9y
aXpvbnRhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA0MmYxYTNlNGU1Y2UuLjI2ZDcz
ZTliYTlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMDk1LDE2ICsyMDk1LDE0IEBA
IHZvaWQgRG9jdW1lbnQ6OnJlc29sdmVTdHlsZShSZXNvbHZlU3R5bGVUeXBlIHR5cGUpCiAgICAg
ICAgICAgICBtX2hhc05vZGVzV2l0aE5vbkZpbmFsU3R5bGUgPSBmYWxzZTsKICAgICAgICAgICAg
IG1faGFzTm9kZXNXaXRoTWlzc2luZ1N0eWxlID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8g
ZG9jdW1lbnRTdHlsZSA9IFN0eWxlOjpyZXNvbHZlRm9yRG9jdW1lbnQoKnRoaXMpOworICAgICAg
ICAgICAgYXV0byBpbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUgPSBTdHlsZTo6cmVzb2x2ZUZv
ckRvY3VtZW50KCp0aGlzKTsKIAotICAgICAgICAgICAgLy8gSW5zZXJ0aW5nIHRoZSBwaWN0b2dy
YXBoIGZvbnQgYXQgdGhlIGVuZCBvZiB0aGUgZm9udCBmYWxsYmFjayBsaXN0IGlzIGRvbmUgYnkg
dGhlCi0gICAgICAgICAgICAvLyBmb250IHNlbGVjdG9yLCBzbyBzZXQgYSBmb250IHNlbGVjdG9y
IGlmIG5lZWRlZC4KLSAgICAgICAgICAgIGlmIChzZXR0aW5ncygpLmZvbnRGYWxsYmFja1ByZWZl
cnNQaWN0b2dyYXBocygpKQotICAgICAgICAgICAgICAgIGRvY3VtZW50U3R5bGUuZm9udENhc2Nh
ZGUoKS51cGRhdGUoJmZvbnRTZWxlY3RvcigpKTsKLQotICAgICAgICAgICAgYXV0byBkb2N1bWVu
dENoYW5nZSA9IFN0eWxlOjpkZXRlcm1pbmVDaGFuZ2UoZG9jdW1lbnRTdHlsZSwgbV9yZW5kZXJW
aWV3LT5zdHlsZSgpKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudENoYW5nZSAhPSBTdHlsZTo6
Q2hhbmdlOjpOb25lKQotICAgICAgICAgICAgICAgIHJlbmRlclZpZXcoKS0+c2V0U3R5bGUoV1RG
TW92ZShkb2N1bWVudFN0eWxlKSk7CisgICAgICAgICAgICBhdXRvIGRvY3VtZW50Q2hhbmdlID0g
bV9pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUgPyBTdHlsZTo6ZGV0ZXJtaW5lQ2hhbmdlKGlu
aXRpYWxDb250YWluaW5nQmxvY2tTdHlsZSwgKm1faW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxl
KSA6IFN0eWxlOjpDaGFuZ2U6OlJlbmRlcmVyOworICAgICAgICAgICAgaWYgKGRvY3VtZW50Q2hh
bmdlICE9IFN0eWxlOjpDaGFuZ2U6Ok5vbmUpIHsKKyAgICAgICAgICAgICAgICBtX2luaXRpYWxD
b250YWluaW5nQmxvY2tTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cihpbml0aWFsQ29udGFp
bmluZ0Jsb2NrU3R5bGUpOworICAgICAgICAgICAgICAgIC8vIFRoaXMgbWF5IGVuZCB1cCBkaWZm
ZXJpbmcgZnJvbSBtX3Jvb3RTdHlsZSBkdWUgdG8gYWRqdXN0bWVudHMuCisgICAgICAgICAgICAg
ICAgcmVuZGVyVmlldygpLT5zZXRTdHlsZShXVEZNb3ZlKGluaXRpYWxDb250YWluaW5nQmxvY2tT
dHlsZSkpOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoUmVmUHRyIGRvY3VtZW50
RWxlbWVudCA9IHRoaXMtPmRvY3VtZW50RWxlbWVudCgpKQogICAgICAgICAgICAgICAgIGRvY3Vt
ZW50RWxlbWVudC0+aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwpAQCAtMjYyNyw2ICsyNjI1
LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGVzdHJveVJlbmRlclRyZWUoKQogICAgICAgICB2aWV3KCkt
PndpbGxEZXN0cm95UmVuZGVyVHJlZSgpOwogCiAgICAgbV9wZW5kaW5nUmVuZGVyVHJlZVVwZGF0
ZSA9IHsgfTsKKyAgICBtX2luaXRpYWxDb250YWluaW5nQmxvY2tTdHlsZSA9IHsgfTsKIAogICAg
IGlmIChtX2RvY3VtZW50RWxlbWVudCkKICAgICAgICAgUmVuZGVyVHJlZVVwZGF0ZXI6OnRlYXJE
b3duUmVuZGVyZXJzKCptX2RvY3VtZW50RWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IGQxODZhMmMxZGRkMy4uM2E3ZmVjNmQ3ZjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjY3
LDYgKzY2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN1c3BlbmRGb250TG9hZGluZygpOwogCiAg
ICAgUmVuZGVyVmlldyogcmVuZGVyVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVmlldy5n
ZXQoKTsgfQorICAgIGNvbnN0IFJlbmRlclN0eWxlKiBpbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5
bGUoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWxDb250YWluaW5nQmxvY2tTdHlsZS5nZXQoKTsg
fSAvLyBUaGlzIG1heSBlbmQgdXAgZGlmZmVyaW5nIGZyb20gcmVuZGVyVmlldygpLT5zdHlsZSgp
IGR1ZSB0byBhZGp1c3RtZW50cy4KIAogICAgIGJvb2wgcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVk
KCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQ7IH0KICAgICBib29s
IGhhc0xpdmluZ1JlbmRlclRyZWUoKSBjb25zdCB7IHJldHVybiByZW5kZXJWaWV3KCkgJiYgIXJl
bmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpOyB9CkBAIC0yMDA3LDYgKzIwMDgsNyBAQCBwcml2YXRl
OgogICAgIERvY3VtZW50Q2xhc3NlcyBtX2RvY3VtZW50Q2xhc3NlczsKIAogICAgIFJlbmRlclB0
cjxSZW5kZXJWaWV3PiBtX3JlbmRlclZpZXc7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0
eWxlPiBtX2luaXRpYWxDb250YWluaW5nQmxvY2tTdHlsZTsKIAogICAgIFdlYWtIYXNoU2V0PE1l
ZGlhQ2FuU3RhcnRMaXN0ZW5lcj4gbV9tZWRpYUNhblN0YXJ0TGlzdGVuZXJzOwogICAgIFdlYWtI
YXNoU2V0PERpc3BsYXlDaGFuZ2VkT2JzZXJ2ZXI+IG1fZGlzcGxheUNoYW5nZWRPYnNlcnZlcnM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGYxMmY5Y2YzOTA3YS4u
YjM1MzBjZmUxMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAt
MzU2LDQ1ICszNTYsNiBAQCB2b2lkIFJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgIGJvb2wgaXNEb2NF
bGVtZW50UmVuZGVyZXIgPSBpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCk7CiAKICAgICBpZiAo
aXNEb2NFbGVtZW50UmVuZGVyZXIgfHwgaXNCb2R5UmVuZGVyZXIpIHsKLSAgICAgICAgYXV0byog
ZG9jdW1lbnRFbGVtZW50UmVuZGVyZXIgPSBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpLT5y
ZW5kZXJlcigpOwotICAgICAgICBhdXRvJiB2aWV3U3R5bGUgPSB2aWV3KCkubXV0YWJsZVN0eWxl
KCk7Ci0gICAgICAgIGJvb2wgcm9vdFN0eWxlQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICBib29s
IHZpZXdEaXJlY3Rpb25PcldyaXRpbmdNb2RlQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICBhdXRv
KiByb290UmVuZGVyZXIgPSBpc0JvZHlSZW5kZXJlciA/IGRvY3VtZW50RWxlbWVudFJlbmRlcmVy
IDogbnVsbHB0cjsKLQotICAgICAgICBhdXRvIHByb3BhZ2F0ZVdyaXRpbmdNb2RlVG9SZW5kZXJW
aWV3SWZBcHBsaWNhYmxlID0gWyZdIHsKLSAgICAgICAgICAgIC8vIFByb3BhZ2F0ZSB0aGUgbmV3
IHdyaXRpbmcgbW9kZSBhbmQgZGlyZWN0aW9uIHVwIHRvIHRoZSBSZW5kZXJWaWV3LgotICAgICAg
ICAgICAgaWYgKCFkb2N1bWVudEVsZW1lbnRSZW5kZXJlcikKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICBpZiAoIWlzQm9keVJlbmRlcmVyIHx8ICEoc2hvdWxkQXBwbHlBbnlD
b250YWlubWVudCgpIHx8IGRvY3VtZW50RWxlbWVudFJlbmRlcmVyLT5zaG91bGRBcHBseUFueUNv
bnRhaW5tZW50KCkpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZpZXdTdHlsZS5kaXJlY3Rpb24o
KSAhPSBuZXdTdHlsZS5kaXJlY3Rpb24oKSAmJiAoaXNEb2NFbGVtZW50UmVuZGVyZXIgfHwgIWRv
Y3VtZW50RWxlbWVudFJlbmRlcmVyLT5zdHlsZSgpLmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24o
KSkpIHsKLSAgICAgICAgICAgICAgICAgICAgdmlld1N0eWxlLnNldERpcmVjdGlvbihuZXdTdHls
ZS5kaXJlY3Rpb24oKSk7Ci0gICAgICAgICAgICAgICAgICAgIHZpZXdEaXJlY3Rpb25PcldyaXRp
bmdNb2RlQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc0JvZHlSZW5k
ZXJlcikgewotICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFJlbmRlcmVyLT5tdXRhYmxlU3R5
bGUoKS5zZXREaXJlY3Rpb24obmV3U3R5bGUuZGlyZWN0aW9uKCkpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgcm9vdFN0eWxlQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7
Ci0KLSAgICAgICAgICAgICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnRvcENvbnRlbnREaXJl
Y3Rpb25EaWRDaGFuZ2UoKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBp
ZiAodmlld1N0eWxlLndyaXRpbmdNb2RlKCkgIT0gbmV3U3R5bGUud3JpdGluZ01vZGUoKSAmJiAo
aXNEb2NFbGVtZW50UmVuZGVyZXIgfHwgIWRvY3VtZW50RWxlbWVudFJlbmRlcmVyLT5zdHlsZSgp
Lmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKSkgewotICAgICAgICAgICAgICAgICAgICB2
aWV3U3R5bGUuc2V0V3JpdGluZ01vZGUobmV3U3R5bGUud3JpdGluZ01vZGUoKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIHZpZXdEaXJlY3Rpb25PcldyaXRpbmdNb2RlQ2hhbmdlZCA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgICAgIHZpZXcoKS5zZXRIb3Jpem9udGFsV3JpdGluZ01vZGUobmV3U3R5
bGUuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHZpZXco
KS5tYXJrQWxsRGVzY2VuZGFudHNXaXRoRmxvYXRzRm9yTGF5b3V0KCk7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChpc0JvZHlSZW5kZXJlcikgewotICAgICAgICAgICAgICAgICAgICAgICAgcm9v
dFN0eWxlQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290UmVuZGVy
ZXItPm11dGFibGVTdHlsZSgpLnNldFdyaXRpbmdNb2RlKG5ld1N0eWxlLndyaXRpbmdNb2RlKCkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFJlbmRlcmVyLT5zZXRIb3Jpem9udGFsV3Jp
dGluZ01vZGUobmV3U3R5bGUuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lk
dGhzUmVjYWxjKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9
OwotICAgICAgICBwcm9wYWdhdGVXcml0aW5nTW9kZVRvUmVuZGVyVmlld0lmQXBwbGljYWJsZSgp
OwotCiAjaWYgRU5BQkxFKERBUktfTU9ERV9DU1MpCiAgICAgICAgIHZpZXcoKS5mcmFtZVZpZXco
KS5yZWNhbGN1bGF0ZUJhc2VCYWNrZ3JvdW5kQ29sb3IoKTsKICNlbmRpZgpAQCAtNDAyLDE4ICsz
NjMsNiBAQCB2b2lkIFJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgICAgICB2aWV3KCkuZnJhbWVWaWV3
KCkucmVjYWxjdWxhdGVTY3JvbGxiYXJPdmVybGF5U3R5bGUoKTsKICAgICAgICAgCiAgICAgICAg
IGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24gPSB2aWV3KCkuZnJhbWVWaWV3KCkucGFnaW5h
dGlvbigpOwotICAgICAgICBpZiAodmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkICYm
IHBhZ2luYXRpb24ubW9kZSAhPSBQYWdpbmF0aW9uOjpVbnBhZ2luYXRlZCkgewotICAgICAgICAg
ICAgdmlld1N0eWxlLnNldENvbHVtblN0eWxlc0Zyb21QYWdpbmF0aW9uTW9kZShwYWdpbmF0aW9u
Lm1vZGUpOwotICAgICAgICAgICAgaWYgKHZpZXcoKS5tdWx0aUNvbHVtbkZsb3coKSkKLSAgICAg
ICAgICAgICAgICB2aWV3KCkudXBkYXRlQ29sdW1uUHJvZ3Jlc3Npb25Gcm9tU3R5bGUodmlld1N0
eWxlKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKHZpZXdEaXJlY3Rpb25Pcldy
aXRpbmdNb2RlQ2hhbmdlZCAmJiB2aWV3KCkubXVsdGlDb2x1bW5GbG93KCkpCi0gICAgICAgICAg
ICB2aWV3KCkudXBkYXRlU3R5bGVzRm9yQ29sdW1uQ2hpbGRyZW4oKTsKLSAgICAgICAgCi0gICAg
ICAgIGlmIChyb290U3R5bGVDaGFuZ2VkICYmIGlzPFJlbmRlckJsb2NrRmxvdz4ocm9vdFJlbmRl
cmVyKSAmJiBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCpyb290UmVuZGVyZXIpLm11bHRpQ29s
dW1uRmxvdygpKQotICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93Pigqcm9vdFJl
bmRlcmVyKS51cGRhdGVTdHlsZXNGb3JDb2x1bW5DaGlsZHJlbigpOwotICAgICAgICAKICAgICAg
ICAgaWYgKGlzQm9keVJlbmRlcmVyICYmIHBhZ2luYXRpb24ubW9kZSAhPSBQYWdpbmF0aW9uOjpV
bnBhZ2luYXRlZCAmJiBwYWdlKCkucGFnaW5hdGlvbkxpbmVHcmlkRW5hYmxlZCgpKSB7CiAgICAg
ICAgICAgICAvLyBQcm9wYWdhdGUgdGhlIGJvZHkgZm9udCBiYWNrIHVwIHRvIHRoZSBSZW5kZXJW
aWV3IGFuZCB1c2UgaXQgYXMKICAgICAgICAgICAgIC8vIHRoZSBiYXNpcyBvZiB0aGUgZ3JpZC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAyYmUzYWFlN2E2N2Eu
LjkwZTM5YzczMDAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApA
QCAtOTQsNiArOTQsMjggQEAgUmVuZGVyVmlldzo6flJlbmRlclZpZXcoKQogICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UobV9yZW5kZXJlckNvdW50ID09IDEsICJBbGwgb3RoZXIgcmVuZGVyZXJzIGlu
IHRoaXMgcmVuZGVyIHRyZWUgc2hvdWxkIGhhdmUgYmVlbiBkZXN0cm95ZWQiKTsKIH0KIAordm9p
ZCBSZW5kZXJWaWV3OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3Qg
UmVuZGVyU3R5bGUqIG9sZFN0eWxlKQoreworICAgIFJlbmRlckJsb2NrRmxvdzo6c3R5bGVEaWRD
aGFuZ2UoZGlmZiwgb2xkU3R5bGUpOworCisgICAgYm9vbCB3cml0aW5nTW9kZUNoYW5nZWQgPSBv
bGRTdHlsZSAmJiBzdHlsZSgpLndyaXRpbmdNb2RlKCkgIT0gb2xkU3R5bGUtPndyaXRpbmdNb2Rl
KCk7CisgICAgYm9vbCBkaXJlY3Rpb25DaGFuZ2VkID0gb2xkU3R5bGUgJiYgc3R5bGUoKS5kaXJl
Y3Rpb24oKSAhPSBvbGRTdHlsZS0+ZGlyZWN0aW9uKCk7CisKKyAgICBpZiAod3JpdGluZ01vZGVD
aGFuZ2VkIHx8IGRpcmVjdGlvbkNoYW5nZWQpIHsKKyAgICAgICAgYXV0byYgcGFnaW5hdGlvbiA9
IGZyYW1lVmlldygpLnBhZ2luYXRpb24oKTsKKyAgICAgICAgaWYgKHBhZ2luYXRpb24ubW9kZSAh
PSBQYWdpbmF0aW9uOjpVbnBhZ2luYXRlZCkgeworICAgICAgICAgICAgbXV0YWJsZVN0eWxlKCku
c2V0Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2luYXRpb24ubW9kZSk7CisgICAg
ICAgICAgICBpZiAobXVsdGlDb2x1bW5GbG93KCkpCisgICAgICAgICAgICAgICAgdXBkYXRlQ29s
dW1uUHJvZ3Jlc3Npb25Gcm9tU3R5bGUoc3R5bGUoKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KG11bHRpQ29sdW1uRmxvdygpKQorICAgICAgICAgICAgdXBkYXRlU3R5bGVzRm9yQ29sdW1uQ2hp
bGRyZW4oKTsKKyAgICB9CisKKyAgICBpZiAoZGlyZWN0aW9uQ2hhbmdlZCkKKyAgICAgICAgZnJh
bWVWaWV3KCkudG9wQ29udGVudERpcmVjdGlvbkRpZENoYW5nZSgpOworfQorCiB2b2lkIFJlbmRl
clZpZXc6OnNjaGVkdWxlTGF6eVJlcGFpbnQoUmVuZGVyQm94JiByZW5kZXJlcikKIHsKICAgICBp
ZiAocmVuZGVyZXIucmVuZGVyQm94TmVlZHNMYXp5UmVwYWludCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgKaW5kZXggN2FkMTExNDJhMmFmLi42ZGYzM2JhY2FhN2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMjE0LDYgKzIxNCw4IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBXZWFrSGFzaFNldDxjb25zdCBSZW5kZXJCb3g+JiBjb250YWluZXJRdWVy
eUJveGVzKCkgY29uc3QgeyByZXR1cm4gbV9jb250YWluZXJRdWVyeUJveGVzOyB9CiAKIHByaXZh
dGU6CisgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CisKICAgICB2b2lkIG1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmLCBPcHRpb25TZXQ8TWFwQ29vcmRpbmF0ZXNNb2RlPiwgYm9vbCogd2FzRml4ZWQp
IGNvbnN0IG92ZXJyaWRlOwogICAgIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBS
ZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgbWFwQWJzb2x1dGVU
b0xvY2FsUG9pbnQoT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIFRyYW5zZm9ybVN0YXRl
JikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAppbmRleCBiNDg2MTRiMjc0OTIuLmJlYTIx
YzM3NzFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRp
bmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC0xMDUsNiArMTA1LDggQEAgdm9pZCBSZW5kZXJU
cmVlVXBkYXRlcjo6Y29tbWl0KHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPiBz
dHlsZVVwZGF0ZSkKIAogICAgIG1fc3R5bGVVcGRhdGUgPSBXVEZNb3ZlKHN0eWxlVXBkYXRlKTsK
IAorICAgIHVwZGF0ZVJlbmRlclZpZXdTdHlsZSgpOworCiAgICAgZm9yIChhdXRvJiByb290IDog
bV9zdHlsZVVwZGF0ZS0+cm9vdHMoKSkgewogICAgICAgICBhdXRvKiByZW5kZXJpbmdSb290ID0g
ZmluZFJlbmRlcmluZ1Jvb3QoKnJvb3QpOwogICAgICAgICBpZiAoIXJlbmRlcmluZ1Jvb3QpCkBA
IC01MTYsNiArNTE4LDEyIEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnN0b3JlUHJldmlvdXNS
ZW5kZXJlcihOb2RlJiBub2RlKQogICAgIHJlbmRlcmluZ1BhcmVudCgpLnByZXZpb3VzQ2hpbGRS
ZW5kZXJlciA9IHJlbmRlcmVyOwogfQogCit2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVS
ZW5kZXJWaWV3U3R5bGUoKQoreworICAgIGlmIChtX3N0eWxlVXBkYXRlLT5pbml0aWFsQ29udGFp
bmluZ0Jsb2NrVXBkYXRlKCkpCisgICAgICAgIG1fZG9jdW1lbnQucmVuZGVyVmlldygpLT5zZXRT
dHlsZShSZW5kZXJTdHlsZTo6Y2xvbmUoKm1fc3R5bGVVcGRhdGUtPmluaXRpYWxDb250YWluaW5n
QmxvY2tVcGRhdGUoKSkpOworfQorCiB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJl
bmRlcmVycyhFbGVtZW50JiByb290KQogewogICAgIGF1dG8qIHZpZXcgPSByb290LmRvY3VtZW50
KCkucmVuZGVyVmlldygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaAppbmRleCBhYmNjOWYwZWMyZGYuLmI1ODI0YzMwZDg2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVVcGRhdGVyLmgKQEAgLTYxLDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0
ZUVsZW1lbnRSZW5kZXJlcihFbGVtZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUmKTsK
ICAgICB2b2lkIHVwZGF0ZVNWR1JlbmRlcmVyKEVsZW1lbnQmKTsKICAgICB2b2lkIHVwZGF0ZVJl
bmRlcmVyU3R5bGUoUmVuZGVyRWxlbWVudCYsIFJlbmRlclN0eWxlJiYsIFN0eWxlRGlmZmVyZW5j
ZSk7CisgICAgdm9pZCB1cGRhdGVSZW5kZXJWaWV3U3R5bGUoKTsKICAgICB2b2lkIGNyZWF0ZVJl
bmRlcmVyKEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmKTsKICAgICB2b2lkIHVwZGF0ZUJlZm9yZURl
c2NlbmRhbnRzKEVsZW1lbnQmLCBjb25zdCBTdHlsZTo6RWxlbWVudFVwZGF0ZSopOwogICAgIHZv
aWQgdXBkYXRlQWZ0ZXJEZXNjZW5kYW50cyhFbGVtZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRV
cGRhdGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXggMTc1MjIz
MmU1MDgxLi45ZjkwY2JmODAyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiRWxlbWVudE5hbWUuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSFRNTEJv
ZHlFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERpYWxvZ0VsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKQEAgLTUzLDYg
KzU0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5o
IgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2lu
Y2x1ZGUgIlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdHcmFwaGljc0VsZW1lbnQuaCIKICNp
bmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtNjAsNiArNjIsNyBAQAogI2luY2x1ZGUgIlNWR1VSSVJl
ZmVyZW5jZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgorI2luY2x1ZGUgIlN0eWxlVXBkYXRlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
IldlYkFuaW1hdGlvblR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4K
QEAgLTc3MCw2ICs3NzMsNzcgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0Rm9yU2l0ZVNwZWNpZmlj
UXVpcmtzKFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKICNlbmRpZgogfQogCit2b2lkIEFkanVz
dGVyOjpwcm9wYWdhdGVUb0RvY3VtZW50RWxlbWVudEFuZEluaXRpYWxDb250YWluaW5nQmxvY2so
VXBkYXRlJiB1cGRhdGUsIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvKiBi
b2R5ID0gZG9jdW1lbnQuYm9keSgpOworICAgIGF1dG8qIGJvZHlTdHlsZSA9IGJvZHkgPyB1cGRh
dGUuZWxlbWVudFN0eWxlKCpib2R5KSA6IG51bGxwdHI7CisgICAgYXV0byogZG9jdW1lbnRFbGVt
ZW50U3R5bGUgPSB1cGRhdGUuZWxlbWVudFN0eWxlKCpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQo
KSk7CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4tMi8jY29u
dGFpbi1wcm9wZXJ0eQorICAgIC8vICJBZGRpdGlvbmFsbHksIHdoZW4gYW55IGNvbnRhaW5tZW50
cyBhcmUgYWN0aXZlIG9uIGVpdGhlciB0aGUgSFRNTCBodG1sIG9yIGJvZHkgZWxlbWVudHMsIHBy
b3BhZ2F0aW9uIG9mCisgICAgLy8gcHJvcGVydGllcyBmcm9tIHRoZSBib2R5IGVsZW1lbnQgdG8g
dGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jaywgdGhlIHZpZXdwb3J0LCBvciB0aGUgY2FudmFz
IGJhY2tncm91bmQsIGlzIGRpc2FibGVkLiIKKyAgICBhdXRvIHNob3VsZFByb3BhZ2F0ZUZyb21C
b2R5ID0gWyZdIHsKKyAgICAgICAgaWYgKCFkb2N1bWVudEVsZW1lbnRTdHlsZSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGJvZHlTdHlsZSAmJiAhYm9keVN0eWxlLT5l
ZmZlY3RpdmVDb250YWlubWVudCgpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50RWxlbWVudFN0eWxlLT5lZmZlY3RpdmVDb250YWlu
bWVudCgpLmlzRW1wdHkoKTsKKyAgICB9KCk7CisKKyAgICBhdXRvIHdyaXRpbmdNb2RlID0gWyZd
IHsKKyAgICAgICAgLy8gRklYTUU6IFRoZSBzcGVjIHNheXMgYm9keSBzaG91bGQgd2luLgorICAg
ICAgICBpZiAoZG9jdW1lbnRFbGVtZW50U3R5bGUtPmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9k
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50RWxlbWVudFN0eWxlLT53cml0aW5nTW9k
ZSgpOworICAgICAgICBpZiAoc2hvdWxkUHJvcGFnYXRlRnJvbUJvZHkgJiYgYm9keVN0eWxlICYm
IGJvZHlTdHlsZS0+aGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICBy
ZXR1cm4gYm9keVN0eWxlLT53cml0aW5nTW9kZSgpOworICAgICAgICByZXR1cm4gUmVuZGVyU3R5
bGU6OmluaXRpYWxXcml0aW5nTW9kZSgpOworICAgIH0oKTsKKworICAgIGF1dG8gZGlyZWN0aW9u
ID0gWyZdIHsKKyAgICAgICAgaWYgKGRvY3VtZW50RWxlbWVudFN0eWxlLT5oYXNFeHBsaWNpdGx5
U2V0RGlyZWN0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnRFbGVtZW50U3R5bGUt
PmRpcmVjdGlvbigpOworICAgICAgICBpZiAoc2hvdWxkUHJvcGFnYXRlRnJvbUJvZHkgJiYgYm9k
eVN0eWxlICYmIGJvZHlTdHlsZS0+aGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKQorICAgICAg
ICAgICAgcmV0dXJuIGJvZHlTdHlsZS0+ZGlyZWN0aW9uKCk7CisgICAgICAgIHJldHVybiBSZW5k
ZXJTdHlsZTo6aW5pdGlhbERpcmVjdGlvbigpOworICAgIH0oKTsKKworICAgIC8vIGh0dHBzOi8v
ZHJhZnRzLmNzc3dnLm9yZy9jc3Mtd3JpdGluZy1tb2Rlcy0zLyNpY2IKKyAgICBhdXRvJiB2aWV3
U3R5bGUgPSBkb2N1bWVudC5yZW5kZXJWaWV3KCktPnN0eWxlKCk7CisgICAgaWYgKHdyaXRpbmdN
b2RlICE9IHZpZXdTdHlsZS53cml0aW5nTW9kZSgpIHx8IGRpcmVjdGlvbiAhPSB2aWV3U3R5bGUu
ZGlyZWN0aW9uKCkpIHsKKyAgICAgICAgYXV0byBuZXdSb290U3R5bGUgPSBSZW5kZXJTdHlsZTo6
Y2xvbmVQdHIodmlld1N0eWxlKTsKKyAgICAgICAgbmV3Um9vdFN0eWxlLT5zZXRXcml0aW5nTW9k
ZSh3cml0aW5nTW9kZSk7CisgICAgICAgIG5ld1Jvb3RTdHlsZS0+c2V0RGlyZWN0aW9uKGRpcmVj
dGlvbik7CisgICAgICAgIHVwZGF0ZS5hZGRJbml0aWFsQ29udGFpbmluZ0Jsb2NrVXBkYXRlKFdU
Rk1vdmUobmV3Um9vdFN0eWxlKSk7CisgICAgfQorCisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzcy13cml0aW5nLW1vZGVzLTMvI3ByaW5jaXBhbC1mbG93CisgICAgaWYgKHdyaXRp
bmdNb2RlICE9IGRvY3VtZW50RWxlbWVudFN0eWxlLT53cml0aW5nTW9kZSgpIHx8IGRpcmVjdGlv
biAhPSBkb2N1bWVudEVsZW1lbnRTdHlsZS0+ZGlyZWN0aW9uKCkpIHsKKyAgICAgICAgYXV0byog
ZG9jdW1lbnRFbGVtZW50VXBkYXRlID0gdXBkYXRlLmVsZW1lbnRVcGRhdGUoKmRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudCgpKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudEVsZW1lbnRVcGRhdGUpIHsK
KyAgICAgICAgICAgIHVwZGF0ZS5hZGRFbGVtZW50KCpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQo
KSwgbnVsbHB0ciwgeyBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKmRvY3VtZW50RWxlbWVudFN0eWxl
KSB9KTsKKyAgICAgICAgICAgIGRvY3VtZW50RWxlbWVudFVwZGF0ZSA9IHVwZGF0ZS5lbGVtZW50
VXBkYXRlKCpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAgIH0KKworICAgICAg
ICBkb2N1bWVudEVsZW1lbnRVcGRhdGUtPnN0eWxlLT5zZXRXcml0aW5nTW9kZSh3cml0aW5nTW9k
ZSk7CisgICAgICAgIGRvY3VtZW50RWxlbWVudFVwZGF0ZS0+c3R5bGUtPnNldERpcmVjdGlvbihk
aXJlY3Rpb24pOworICAgICAgICBkb2N1bWVudEVsZW1lbnRVcGRhdGUtPmNoYW5nZSA9IGRldGVy
bWluZUNoYW5nZSgqZG9jdW1lbnRFbGVtZW50U3R5bGUsICpkb2N1bWVudEVsZW1lbnRVcGRhdGUt
PnN0eWxlKTsKKyAgICB9Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gQWRqdXN0
ZXI6OnJlc3RvcmVVc2VkRG9jdW1lbnRFbGVtZW50U3R5bGVUb0NvbXB1dGVkKGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSkKK3sKKyAgICBpZiAoc3R5bGUud3JpdGluZ01vZGUoKSA9PSBSZW5kZXJT
dHlsZTo6aW5pdGlhbFdyaXRpbmdNb2RlKCkgJiYgc3R5bGUuZGlyZWN0aW9uKCkgPT0gUmVuZGVy
U3R5bGU6OmluaXRpYWxEaXJlY3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1
dG8gYWRqdXN0ZWQgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoc3R5bGUpOworICAgIGlmICghc3R5
bGUuaGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpCisgICAgICAgIGFkanVzdGVkLT5zZXRX
cml0aW5nTW9kZShSZW5kZXJTdHlsZTo6aW5pdGlhbFdyaXRpbmdNb2RlKCkpOworICAgIGlmICgh
c3R5bGUuaGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKQorICAgICAgICBhZGp1c3RlZC0+c2V0
RGlyZWN0aW9uKFJlbmRlclN0eWxlOjppbml0aWFsRGlyZWN0aW9uKCkpOworCisgICAgcmV0dXJu
IGFkanVzdGVkOworfQorCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKIHN0YXRpYyBib29s
IGhhc1RleHRDaGlsZChjb25zdCBFbGVtZW50JiBlbGVtZW50KQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVBZGp1c3Rlci5oCmluZGV4IGRlOGE4NThkOTVmZi4uYzZlN2FkMDE0OTVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oCkBAIC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKIAog
ICAgIHN0YXRpYyB2b2lkIGFkanVzdFNWR0VsZW1lbnRTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0
IFNWR0VsZW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCBhZGp1c3RFdmVudExpc3RlbmVyUmVnaW9u
VHlwZXNGb3JSb290U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBEb2N1bWVudCYpOworICAgIHN0
YXRpYyB2b2lkIHByb3BhZ2F0ZVRvRG9jdW1lbnRFbGVtZW50QW5kSW5pdGlhbENvbnRhaW5pbmdC
bG9jayhVcGRhdGUmLCBjb25zdCBEb2N1bWVudCYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8UmVuZGVyU3R5bGU+IHJlc3RvcmVVc2VkRG9jdW1lbnRFbGVtZW50U3R5bGVUb0NvbXB1dGVk
KGNvbnN0IFJlbmRlclN0eWxlJik7CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAg
IHN0cnVjdCBBZGp1c3RtZW50Rm9yVGV4dEF1dG9zaXppbmcgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCmluZGV4IDFlYTVjYWFlODA1OS4u
YTU0M2RhM2M2YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVGb3JEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZl
Rm9yRG9jdW1lbnQuY3BwCkBAIC03MSwyNSArNzEsNyBAQCBSZW5kZXJTdHlsZSByZXNvbHZlRm9y
RG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQogI2VuZGlmCiAKICAgICBBZGp1c3Rl
cjo6YWRqdXN0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUm9vdFN0eWxlKGRvY3VtZW50U3R5
bGUsIGRvY3VtZW50KTsKLQotICAgIEVsZW1lbnQqIGRvY0VsZW1lbnQgPSBkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQoKTsKLSAgICBSZW5kZXJPYmplY3QqIGRvY0VsZW1lbnRSZW5kZXJlciA9IGRv
Y0VsZW1lbnQgPyBkb2NFbGVtZW50LT5yZW5kZXJlcigpIDogbnVsbHB0cjsKLSAgICBpZiAoZG9j
RWxlbWVudFJlbmRlcmVyKSB7Ci0gICAgICAgIC8vIFVzZSB0aGUgZGlyZWN0aW9uIGFuZCB3cml0
aW5nLW1vZGUgb2YgdGhlIGJvZHkgdG8gc2V0IHRoZQotICAgICAgICAvLyB2aWV3cG9ydCdzIGRp
cmVjdGlvbiBhbmQgd3JpdGluZy1tb2RlIHVubGVzcyB0aGUgcHJvcGVydHkgaXMgc2V0IG9uIHRo
ZSBkb2N1bWVudCBlbGVtZW50LgotICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBib2R5LCB0aGVu
IHVzZSB0aGUgZG9jdW1lbnQgZWxlbWVudC4KLSAgICAgICAgYXV0byogYm9keSA9IGRvY3VtZW50
LmJvZHlPckZyYW1lc2V0KCk7Ci0gICAgICAgIFJlbmRlck9iamVjdCogYm9keVJlbmRlcmVyID0g
Ym9keSA/IGJvZHktPnJlbmRlcmVyKCkgOiBudWxscHRyOwotICAgICAgICBpZiAoYm9keVJlbmRl
cmVyICYmICFkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkuaGFzRXhwbGljaXRseVNldFdyaXRp
bmdNb2RlKCkpCi0gICAgICAgICAgICBkb2N1bWVudFN0eWxlLnNldFdyaXRpbmdNb2RlKGJvZHlS
ZW5kZXJlci0+c3R5bGUoKS53cml0aW5nTW9kZSgpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZG9jdW1lbnRTdHlsZS5zZXRXcml0aW5nTW9kZShkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxl
KCkud3JpdGluZ01vZGUoKSk7Ci0gICAgICAgIGlmIChib2R5UmVuZGVyZXIgJiYgIWRvY0VsZW1l
bnRSZW5kZXJlci0+c3R5bGUoKS5oYXNFeHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpCi0gICAgICAg
ICAgICBkb2N1bWVudFN0eWxlLnNldERpcmVjdGlvbihib2R5UmVuZGVyZXItPnN0eWxlKCkuZGly
ZWN0aW9uKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkb2N1bWVudFN0eWxlLnNldERp
cmVjdGlvbihkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwotICAgIH0K
LQorICAgIAogICAgIGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24gPSByZW5kZXJWaWV3LmZy
YW1lVmlldygpLnBhZ2luYXRpb24oKTsKICAgICBpZiAocGFnaW5hdGlvbi5tb2RlICE9IFBhZ2lu
YXRpb246OlVucGFnaW5hdGVkKSB7CiAgICAgICAgIGRvY3VtZW50U3R5bGUuc2V0Q29sdW1uU3R5
bGVzRnJvbVBhZ2luYXRpb25Nb2RlKHBhZ2luYXRpb24ubW9kZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDIzMDM3YmI5NWE3MC4uYjJhYmJhNWJlNDU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHB1
YmxpYzoKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CiAgICAg
ICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpOwog
ICAgICAgICBpZiAoIWRvY3VtZW50RWxlbWVudCB8fCBkb2N1bWVudEVsZW1lbnQgPT0gJmVsZW1l
bnQpCi0gICAgICAgICAgICBtX3Jvb3RFbGVtZW50U3R5bGUgPSBkb2N1bWVudC5yZW5kZXJTdHls
ZSgpOworICAgICAgICAgICAgbV9yb290RWxlbWVudFN0eWxlID0gZG9jdW1lbnQuaW5pdGlhbENv
bnRhaW5pbmdCbG9ja1N0eWxlKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fcm9vdEVs
ZW1lbnRTdHlsZSA9IGRvY3VtZW50RWxlbWVudFN0eWxlID8gZG9jdW1lbnRFbGVtZW50U3R5bGUg
OiBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CiAgICAgfQpAQCAtMTU5LDcgKzE1OSw3
IEBAIFJlc29sdmVyOjpSZXNvbHZlcihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIG1fbWVk
aWFRdWVyeUV2YWx1YXRvciA9IExlZ2FjeU1lZGlhUXVlcnlFdmFsdWF0b3IgeyB9OwogCiAgICAg
aWYgKGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkp
IHsKLSAgICAgICAgbV9yb290RGVmYXVsdFN0eWxlID0gc3R5bGVGb3JFbGVtZW50KCpkb2N1bWVu
dEVsZW1lbnQsIHsgbV9kb2N1bWVudC5yZW5kZXJTdHlsZSgpIH0sIFJ1bGVNYXRjaGluZ0JlaGF2
aW9yOjpNYXRjaE9ubHlVc2VyQWdlbnRSdWxlcykucmVuZGVyU3R5bGU7CisgICAgICAgIG1fcm9v
dERlZmF1bHRTdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgqZG9jdW1lbnRFbGVtZW50LCB7IG1fZG9j
dW1lbnQuaW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxlKCkgfSwgUnVsZU1hdGNoaW5nQmVoYXZp
b3I6Ok1hdGNoT25seVVzZXJBZ2VudFJ1bGVzKS5yZW5kZXJTdHlsZTsKICAgICAgICAgLy8gVHVy
biBvZmYgYXNzZXJ0aW9uIGFnYWluc3QgZm9udCBsb29rdXBzIGR1cmluZyBzdHlsZSByZXNvbHZl
ciBpbml0aWFsaXphdGlvbi4gV2UgbWF5IG5lZWQgcm9vdCBzdHlsZSBmb250IGZvciBtZWRpYSBx
dWVyaWVzLgogICAgICAgICBtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpLmluY3JlbWVudElzQ29t
cHV0aW5nUm9vdFN0eWxlRm9udCgpOwogICAgICAgICBtX3Jvb3REZWZhdWx0U3R5bGUtPmZvbnRD
YXNjYWRlKCkudXBkYXRlKCZtX2RvY3VtZW50LmZvbnRTZWxlY3RvcigpKTsKQEAgLTQ3OCwxNSAr
NDc4LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gUmVzb2x2ZXI6OnBzZXVkb1N0
eWxlRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtCiBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVy
U3R5bGU+IFJlc29sdmVyOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkKIHsKICAgICBhdXRv
KiBkb2N1bWVudEVsZW1lbnQgPSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpOwotICAgIGlm
ICghZG9jdW1lbnRFbGVtZW50KQorICAgIGlmICghZG9jdW1lbnRFbGVtZW50IHx8ICFkb2N1bWVu
dEVsZW1lbnQtPnJlbmRlclN0eWxlKCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJTdHlsZTo6Y3Jl
YXRlUHRyKCk7CiAKLSAgICBhdXRvIHN0YXRlID0gU3RhdGUoKmRvY3VtZW50RWxlbWVudCwgbV9k
b2N1bWVudC5yZW5kZXJTdHlsZSgpKTsKKyAgICBhdXRvIHN0YXRlID0gU3RhdGUoKmRvY3VtZW50
RWxlbWVudCwgbV9kb2N1bWVudC5pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUoKSk7CiAKICAg
ICBzdGF0ZS5zZXRTdHlsZShSZW5kZXJTdHlsZTo6Y3JlYXRlUHRyKCkpOwogICAgIHN0YXRlLnN0
eWxlKCktPmluaGVyaXRGcm9tKCpzdGF0ZS5yb290RWxlbWVudFN0eWxlKCkpOwogCi0gICAgUGFn
ZVJ1bGVDb2xsZWN0b3IgY29sbGVjdG9yKG1fcnVsZVNldHMsIHN0YXRlLnJvb3RFbGVtZW50U3R5
bGUoKS0+ZGlyZWN0aW9uKCkpOworICAgIFBhZ2VSdWxlQ29sbGVjdG9yIGNvbGxlY3RvcihtX3J1
bGVTZXRzLCBkb2N1bWVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCktPmRpcmVjdGlvbigpKTsKICAg
ICBjb2xsZWN0b3IubWF0Y2hBbGxQYWdlUnVsZXMocGFnZUluZGV4KTsKIAogICAgIGF1dG8mIHJl
c3VsdCA9IGNvbGxlY3Rvci5tYXRjaFJlc3VsdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IGYzNDZmZGY1ZGU5ZS4uNzZjNjRiZGU5NWE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC05Nyw3ICs5Nyw3
IEBAIFRyZWVSZXNvbHZlcjo6U2NvcGU6On5TY29wZSgpCiAKIFRyZWVSZXNvbHZlcjo6UGFyZW50
OjpQYXJlbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogZWxlbWVudChudWxscHRyKQotICAg
ICwgc3R5bGUoKmRvY3VtZW50LnJlbmRlclN0eWxlKCkpCisgICAgLCBzdHlsZSgqZG9jdW1lbnQu
aW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxlKCkpCiB7CiB9CiAKQEAgLTE0MSw4ICsxNDEsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFRyZWVSZXNvbHZlcjo6c3R5bGVGb3JTdHls
ZWFibGUoY29uc3QgU3R5bGVhYmxlJiBzdAogCiAgICAgaWYgKHJlc29sdXRpb25UeXBlID09IFJl
c29sdXRpb25UeXBlOjpGYXN0UGF0aEluaGVyaXQpIHsKICAgICAgICAgLy8gSWYgdGhlIG9ubHkg
cmVhc29uIHdlIGFyZSBjb21wdXRpbmcgdGhlIHN0eWxlIGlzIHRoYXQgc29tZSBwYXJlbnQgaW5o
ZXJpdGVkIHByb3BlcnRpZXMgY2hhbmdlZCwgd2UgY2FuIGp1c3QgY29weSB0aGVtLgotICAgICAg
ICBhdXRvJiBleGlzdGluZ1N0eWxlID0gKmVsZW1lbnQucmVuZGVyT3JEaXNwbGF5Q29udGVudHNT
dHlsZSgpOwotICAgICAgICBhdXRvIHN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKGV4aXN0
aW5nU3R5bGUpOworICAgICAgICBhdXRvIHN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKCpl
eGlzdGluZ1N0eWxlKGVsZW1lbnQpKTsKICAgICAgICAgc3R5bGUtPmZhc3RQYXRoSW5oZXJpdEZy
b20ocGFyZW50KCkuc3R5bGUpOwogICAgICAgICByZXR1cm4gc3R5bGU7CiAgICAgfQpAQCAtMjEw
LDcgKzIwOSw3IEBAIGF1dG8gVHJlZVJlc29sdmVyOjpjb21wdXRlRGVzY2VuZGFudHNUb1Jlc29s
dmUoQ2hhbmdlIGNoYW5nZSwgVmFsaWRpdHkgdmFsaWRpdHksCiAgICAgcmV0dXJuIERlc2NlbmRh
bnRzVG9SZXNvbHZlOjpOb25lOwogfTsKIAotYXV0byBUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVt
ZW50KEVsZW1lbnQmIGVsZW1lbnQsIFJlc29sdXRpb25UeXBlIHJlc29sdXRpb25UeXBlKSAtPiBz
dGQ6OnBhaXI8RWxlbWVudFVwZGF0ZSwgRGVzY2VuZGFudHNUb1Jlc29sdmU+CithdXRvIFRyZWVS
ZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyU3R5
bGUqIGV4aXN0aW5nU3R5bGUsIFJlc29sdXRpb25UeXBlIHJlc29sdXRpb25UeXBlKSAtPiBzdGQ6
OnBhaXI8RWxlbWVudFVwZGF0ZSwgRGVzY2VuZGFudHNUb1Jlc29sdmU+CiB7CiAgICAgaWYgKG1f
ZGlkU2VlUGVuZGluZ1N0eWxlc2hlZXQgJiYgIWVsZW1lbnQucmVuZGVyT3JEaXNwbGF5Q29udGVu
dHNTdHlsZSgpICYmICFtX2RvY3VtZW50LmlzSWdub3JpbmdQZW5kaW5nU3R5bGVzaGVldHMoKSkg
ewogICAgICAgICBtX2RvY3VtZW50LnNldEhhc05vZGVzV2l0aE1pc3NpbmdTdHlsZSgpOwpAQCAt
MjI4LDggKzIyNyw2IEBAIGF1dG8gVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudChFbGVtZW50
JiBlbGVtZW50LCBSZXNvbHV0aW9uVHlwZSByZXNvbHV0aW9uVHlwCiAgICAgaWYgKCFhZmZlY3Rz
UmVuZGVyZWRTdWJ0cmVlKGVsZW1lbnQsICpuZXdTdHlsZSkpCiAgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICBhdXRvKiBleGlzdGluZ1N0eWxlID0gZWxlbWVudC5yZW5kZXJPckRpc3BsYXlDb250
ZW50c1N0eWxlKCk7Ci0KICAgICBpZiAobV9kaWRTZWVQZW5kaW5nU3R5bGVzaGVldCAmJiAoIWV4
aXN0aW5nU3R5bGUgfHwgZXhpc3RpbmdTdHlsZS0+aXNOb3RGaW5hbCgpKSkgewogICAgICAgICBu
ZXdTdHlsZS0+c2V0SXNOb3RGaW5hbCgpOwogICAgICAgICBtX2RvY3VtZW50LnNldEhhc05vZGVz
V2l0aE5vbkZpbmFsU3R5bGUoKTsKQEAgLTIzOSw4ICsyMzYsNiBAQCBhdXRvIFRyZWVSZXNvbHZl
cjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgUmVzb2x1dGlvblR5cGUgcmVzb2x1
dGlvblR5cAogICAgIGF1dG8gZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBjb21wdXRlRGVzY2VuZGFu
dHNUb1Jlc29sdmUodXBkYXRlLmNoYW5nZSwgZWxlbWVudC5zdHlsZVZhbGlkaXR5KCksIHBhcmVu
dCgpLmRlc2NlbmRhbnRzVG9SZXNvbHZlKTsKIAogICAgIGlmICgmZWxlbWVudCA9PSBtX2RvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudCgpKSB7Ci0gICAgICAgIG1fZG9jdW1lbnRFbGVtZW50U3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKnVwZGF0ZS5zdHlsZSk7Ci0KICAgICAgICAgaWYgKCFl
eGlzdGluZ1N0eWxlIHx8IGV4aXN0aW5nU3R5bGUtPmNvbXB1dGVkRm9udFBpeGVsU2l6ZSgpICE9
IHVwZGF0ZS5zdHlsZS0+Y29tcHV0ZWRGb250UGl4ZWxTaXplKCkpIHsKICAgICAgICAgICAgIC8v
ICJyZW0iIHVuaXRzIGFyZSByZWxhdGl2ZSB0byB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQg
c2l6ZSBzbyB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBldmVyeXRoaW5nLgogICAgICAgICAgICAgc2Nv
cGUoKS5yZXNvbHZlci0+aW52YWxpZGF0ZU1hdGNoZWREZWNsYXJhdGlvbnNDYWNoZSgpOwpAQCAt
Njg4LDcgKzY4Myw3IEBAIHN0YXRpYyBib29sIHNob3VsZFJlc29sdmVQc2V1ZG9FbGVtZW50KGNv
bnN0IFBzZXVkb0VsZW1lbnQqIHBzZXVkb0VsZW1lbnQpCiAgICAgcmV0dXJuIHBzZXVkb0VsZW1l
bnQtPm5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAotYXV0byBUcmVlUmVzb2x2ZXI6OmRldGVybWlu
ZVJlc29sdXRpb25UeXBlKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIERlc2NlbmRhbnRzVG9SZXNv
bHZlIHBhcmVudERlc2NlbmRhbnRzVG9SZXNvbHZlLCBDaGFuZ2UgcGFyZW50Q2hhbmdlKSAtPiBz
dGQ6Om9wdGlvbmFsPFJlc29sdXRpb25UeXBlPgorYXV0byBUcmVlUmVzb2x2ZXI6OmRldGVybWlu
ZVJlc29sdXRpb25UeXBlKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlclN0eWxl
KiBleGlzdGluZ1N0eWxlLCBEZXNjZW5kYW50c1RvUmVzb2x2ZSBwYXJlbnREZXNjZW5kYW50c1Rv
UmVzb2x2ZSwgQ2hhbmdlIHBhcmVudENoYW5nZSkgLT4gc3RkOjpvcHRpb25hbDxSZXNvbHV0aW9u
VHlwZT4KIHsKICAgICBpZiAoZWxlbWVudC5zdHlsZVZhbGlkaXR5KCkgIT0gVmFsaWRpdHk6OlZh
bGlkKQogICAgICAgICByZXR1cm4gUmVzb2x1dGlvblR5cGU6OkZ1bGw7CkBAIC03MDIsNyArNjk3
LDYgQEAgYXV0byBUcmVlUmVzb2x2ZXI6OmRldGVybWluZVJlc29sdXRpb25UeXBlKGNvbnN0IEVs
ZW1lbnQmIGVsZW1lbnQsIERlc2NlbmRhbnRzVG8KICAgICAgICAgcmV0dXJuIHsgfTsKICAgICBj
YXNlIERlc2NlbmRhbnRzVG9SZXNvbHZlOjpDaGlsZHJlbjoKICAgICAgICAgaWYgKHBhcmVudENo
YW5nZSA9PSBDaGFuZ2U6OkZhc3RQYXRoSW5oZXJpdGVkKSB7Ci0gICAgICAgICAgICBhdXRvKiBl
eGlzdGluZ1N0eWxlID0gZWxlbWVudC5yZW5kZXJPckRpc3BsYXlDb250ZW50c1N0eWxlKCk7CiAg
ICAgICAgICAgICBpZiAoZXhpc3RpbmdTdHlsZSAmJiAhZXhpc3RpbmdTdHlsZS0+ZGlzYWxsb3dz
RmFzdFBhdGhJbmhlcml0YW5jZSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBSZXNvbHV0aW9u
VHlwZTo6RmFzdFBhdGhJbmhlcml0OwogICAgICAgICB9CkBAIC03MTAsNyArNzA0LDYgQEAgYXV0
byBUcmVlUmVzb2x2ZXI6OmRldGVybWluZVJlc29sdXRpb25UeXBlKGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQsIERlc2NlbmRhbnRzVG8KICAgICBjYXNlIERlc2NlbmRhbnRzVG9SZXNvbHZlOjpBbGw6
CiAgICAgICAgIHJldHVybiBSZXNvbHV0aW9uVHlwZTo6RnVsbDsKICAgICBjYXNlIERlc2NlbmRh
bnRzVG9SZXNvbHZlOjpDaGlsZHJlbldpdGhFeHBsaWNpdEluaGVyaXQ6Ci0gICAgICAgIGF1dG8q
IGV4aXN0aW5nU3R5bGUgPSBlbGVtZW50LnJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUoKTsK
ICAgICAgICAgaWYgKGV4aXN0aW5nU3R5bGUgJiYgZXhpc3RpbmdTdHlsZS0+aGFzRXhwbGljaXRs
eUluaGVyaXRlZFByb3BlcnRpZXMoKSkKICAgICAgICAgICAgIHJldHVybiBSZXNvbHV0aW9uVHlw
ZTo6RnVsbDsKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTgxNSwxMiArODA4LDEzIEBAIHZvaWQg
VHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAKLSAgICAgICAgYXV0byogc3R5bGUgPSBlbGVtZW50LnJlbmRlck9yRGlz
cGxheUNvbnRlbnRzU3R5bGUoKTsKKyAgICAgICAgYXV0byogc3R5bGUgPSBleGlzdGluZ1N0eWxl
KGVsZW1lbnQpOworCiAgICAgICAgIGF1dG8gY2hhbmdlID0gQ2hhbmdlOjpOb25lOwogICAgICAg
ICBhdXRvIGRlc2NlbmRhbnRzVG9SZXNvbHZlID0gRGVzY2VuZGFudHNUb1Jlc29sdmU6Ok5vbmU7
CiAgICAgICAgIGF1dG8gcHJldmlvdXNDb250YWluZXJUeXBlID0gc3R5bGUgPyBzdHlsZS0+Y29u
dGFpbmVyVHlwZSgpIDogQ29udGFpbmVyVHlwZTo6Tm9ybWFsOwogCi0gICAgICAgIGF1dG8gcmVz
b2x1dGlvblR5cGUgPSBkZXRlcm1pbmVSZXNvbHV0aW9uVHlwZShlbGVtZW50LCBwYXJlbnQuZGVz
Y2VuZGFudHNUb1Jlc29sdmUsIHBhcmVudC5jaGFuZ2UpOworICAgICAgICBhdXRvIHJlc29sdXRp
b25UeXBlID0gZGV0ZXJtaW5lUmVzb2x1dGlvblR5cGUoZWxlbWVudCwgc3R5bGUsIHBhcmVudC5k
ZXNjZW5kYW50c1RvUmVzb2x2ZSwgcGFyZW50LmNoYW5nZSk7CiAgICAgICAgIGlmIChyZXNvbHV0
aW9uVHlwZSkgewogICAgICAgICAgICAgaWYgKCFlbGVtZW50Lmhhc0Rpc3BsYXlDb250ZW50cygp
KQogICAgICAgICAgICAgICAgIGVsZW1lbnQucmVzZXRDb21wdXRlZFN0eWxlKCk7CkBAIC04Mjks
NyArODIzLDcgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUoKQogICAg
ICAgICAgICAgaWYgKGVsZW1lbnQuaGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCkpCiAg
ICAgICAgICAgICAgICAgZWxlbWVudC53aWxsUmVjYWxjU3R5bGUocGFyZW50LmNoYW5nZSk7CiAK
LSAgICAgICAgICAgIGF1dG8gW2VsZW1lbnRVcGRhdGUsIGVsZW1lbnREZXNjZW5kYW50c1RvUmVz
b2x2ZV0gPSByZXNvbHZlRWxlbWVudChlbGVtZW50LCAqcmVzb2x1dGlvblR5cGUpOworICAgICAg
ICAgICAgYXV0byBbZWxlbWVudFVwZGF0ZSwgZWxlbWVudERlc2NlbmRhbnRzVG9SZXNvbHZlXSA9
IHJlc29sdmVFbGVtZW50KGVsZW1lbnQsIHN0eWxlLCAqcmVzb2x1dGlvblR5cGUpOwogCiAgICAg
ICAgICAgICBpZiAoZWxlbWVudC5oYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKSkKICAg
ICAgICAgICAgICAgICBlbGVtZW50LmRpZFJlY2FsY1N0eWxlKGVsZW1lbnRVcGRhdGUuY2hhbmdl
KTsKQEAgLTgzOCw5ICs4MzIsMTIgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3Nl
ZFRyZWUoKQogICAgICAgICAgICAgY2hhbmdlID0gZWxlbWVudFVwZGF0ZS5jaGFuZ2U7CiAgICAg
ICAgICAgICBkZXNjZW5kYW50c1RvUmVzb2x2ZSA9IGVsZW1lbnREZXNjZW5kYW50c1RvUmVzb2x2
ZTsKIAotICAgICAgICAgICAgaWYgKGVsZW1lbnRVcGRhdGUuc3R5bGUpCisgICAgICAgICAgICBp
ZiAoc3R5bGUpIHsKICAgICAgICAgICAgICAgICBtX3VwZGF0ZS0+YWRkRWxlbWVudChlbGVtZW50
LCBwYXJlbnQuZWxlbWVudCwgV1RGTW92ZShlbGVtZW50VXBkYXRlKSk7CiAKKyAgICAgICAgICAg
ICAgICBpZiAoJmVsZW1lbnQgPT0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSkKKyAgICAg
ICAgICAgICAgICAgICAgbV9kb2N1bWVudEVsZW1lbnRTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9u
ZVB0cigqc3R5bGUpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgY2xlYXJOZWVkc1N0eWxl
UmVzb2x1dGlvbihlbGVtZW50KTsKICAgICAgICAgfQogCkBAIC04ODEsNiArODc4LDE5IEBAIHZv
aWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKICAgICBwb3BQYXJlbnRzVG9E
ZXB0aCgxKTsKIH0KIAorY29uc3QgUmVuZGVyU3R5bGUqIFRyZWVSZXNvbHZlcjo6ZXhpc3RpbmdT
dHlsZShjb25zdCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIGF1dG8qIHN0eWxlID0gZWxlbWVu
dC5yZW5kZXJPckRpc3BsYXlDb250ZW50c1N0eWxlKCk7CisKKyAgICBpZiAoc3R5bGUgJiYgJmVs
ZW1lbnQgPT0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSkgeworICAgICAgICAvLyBEb2N1
bWVudCBlbGVtZW50IHN0eWxlIG1heSBoYXZlIGdvdCBhZGp1c3RlZCBiYXNlZCBvbiBib2R5IHN0
eWxlIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGluaGVyaXQgdGhvc2UgYWRqdXN0bWVudHMuCisgICAg
ICAgIG1fZG9jdW1lbnRFbGVtZW50U3R5bGUgPSBBZGp1c3Rlcjo6cmVzdG9yZVVzZWREb2N1bWVu
dEVsZW1lbnRTdHlsZVRvQ29tcHV0ZWQoKnN0eWxlKTsKKyAgICAgICAgaWYgKG1fZG9jdW1lbnRF
bGVtZW50U3R5bGUpCisgICAgICAgICAgICBzdHlsZSA9IG1fZG9jdW1lbnRFbGVtZW50U3R5bGUu
Z2V0KCk7CisgICAgfQorCisgICAgcmV0dXJuIHN0eWxlOworfQogCiBhdXRvIFRyZWVSZXNvbHZl
cjo6dXBkYXRlU3RhdGVGb3JRdWVyeUNvbnRhaW5lcihFbGVtZW50JiBlbGVtZW50LCBjb25zdCBS
ZW5kZXJTdHlsZSogc3R5bGUsIENvbnRhaW5lclR5cGUgcHJldmlvdXNDb250YWluZXJUeXBlLCBD
aGFuZ2UmIGNoYW5nZSwgRGVzY2VuZGFudHNUb1Jlc29sdmUmIGRlc2NlbmRhbnRzVG9SZXNvbHZl
KSAtPiBRdWVyeUNvbnRhaW5lckFjdGlvbgogewpAQCAtOTQ3LDYgKzk1Nyw4IEBAIHN0ZDo6dW5p
cXVlX3B0cjxVcGRhdGU+IFRyZWVSZXNvbHZlcjo6cmVzb2x2ZSgpCiAgICAgaWYgKG1fdXBkYXRl
LT5yb290cygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIAorICAgIEFkanVzdGVy
Ojpwcm9wYWdhdGVUb0RvY3VtZW50RWxlbWVudEFuZEluaXRpYWxDb250YWluaW5nQmxvY2soKm1f
dXBkYXRlLCBtX2RvY3VtZW50KTsKKwogICAgIHJldHVybiBXVEZNb3ZlKG1fdXBkYXRlKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKaW5kZXggY2VkNGJiNmFl
MzA0Li45NWFiYmE0NjNmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VHJlZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuaApAQCAtNjMsMTIgKzYzLDE0IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlc29sdmVDb21w
b3NlZFRyZWUoKTsKIAorICAgIGNvbnN0IFJlbmRlclN0eWxlKiBleGlzdGluZ1N0eWxlKGNvbnN0
IEVsZW1lbnQmKTsKKwogICAgIGVudW0gY2xhc3MgUXVlcnlDb250YWluZXJBY3Rpb24gOiB1aW50
OF90IHsgTm9uZSwgUmVzb2x2ZSwgQ29udGludWUgfTsKICAgICBlbnVtIGNsYXNzIERlc2NlbmRh
bnRzVG9SZXNvbHZlIDogdWludDhfdCB7IE5vbmUsIENoaWxkcmVuV2l0aEV4cGxpY2l0SW5oZXJp
dCwgQ2hpbGRyZW4sIEFsbCB9OwogCiAgICAgUXVlcnlDb250YWluZXJBY3Rpb24gdXBkYXRlU3Rh
dGVGb3JRdWVyeUNvbnRhaW5lcihFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUqLCBDb250YWlu
ZXJUeXBlIHByZXZpb3VzQ29udGFpbmVyVHlwZSwgQ2hhbmdlJiwgRGVzY2VuZGFudHNUb1Jlc29s
dmUmKTsKIAotICAgIHN0ZDo6cGFpcjxFbGVtZW50VXBkYXRlLCBEZXNjZW5kYW50c1RvUmVzb2x2
ZT4gcmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYsIFJlc29sdXRpb25UeXBlKTsKKyAgICBzdGQ6OnBh
aXI8RWxlbWVudFVwZGF0ZSwgRGVzY2VuZGFudHNUb1Jlc29sdmU+IHJlc29sdmVFbGVtZW50KEVs
ZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSogZXhpc3RpbmdTdHlsZSwgUmVzb2x1dGlvblR5cGUp
OwogCiAgICAgRWxlbWVudFVwZGF0ZSBjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRhdGUoc3RkOjp1
bmlxdWVfcHRyPFJlbmRlclN0eWxlPiwgY29uc3QgU3R5bGVhYmxlJiwgQ2hhbmdlLCBjb25zdCBS
ZXNvbHV0aW9uQ29udGV4dCYpOwogICAgIHN0ZDo6b3B0aW9uYWw8RWxlbWVudFVwZGF0ZT4gcmVz
b2x2ZVBzZXVkb0VsZW1lbnQoRWxlbWVudCYsIFBzZXVkb0lkLCBjb25zdCBFbGVtZW50VXBkYXRl
Jik7CkBAIC0xMTQsNyArMTE2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvcFBhcmVudHNUb0Rl
cHRoKHVuc2lnbmVkIGRlcHRoKTsKIAogICAgIHN0YXRpYyBEZXNjZW5kYW50c1RvUmVzb2x2ZSBj
b21wdXRlRGVzY2VuZGFudHNUb1Jlc29sdmUoQ2hhbmdlLCBWYWxpZGl0eSwgRGVzY2VuZGFudHNU
b1Jlc29sdmUpOwotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlc29sdXRpb25UeXBlPiBkZXRl
cm1pbmVSZXNvbHV0aW9uVHlwZShjb25zdCBFbGVtZW50JiwgRGVzY2VuZGFudHNUb1Jlc29sdmUs
IENoYW5nZSBwYXJlbnRDaGFuZ2UpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlc29sdXRp
b25UeXBlPiBkZXRlcm1pbmVSZXNvbHV0aW9uVHlwZShjb25zdCBFbGVtZW50JiwgY29uc3QgUmVu
ZGVyU3R5bGUqLCBEZXNjZW5kYW50c1RvUmVzb2x2ZSwgQ2hhbmdlIHBhcmVudENoYW5nZSk7CiAg
ICAgc3RhdGljIHZvaWQgcmVzZXREZXNjZW5kYW50U3R5bGVSZWxhdGlvbnMoRWxlbWVudCYsIERl
c2NlbmRhbnRzVG9SZXNvbHZlKTsKIAogICAgIFJlc29sdXRpb25Db250ZXh0IG1ha2VSZXNvbHV0
aW9uQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKaW5kZXggYmIzMWQ0N2Vk
MTNkLi5mNTYwNDhhYjRmNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VXBkYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaApAQCAtNjYs
NiArNjYsOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBUZXh0VXBkYXRlKiB0ZXh0VXBkYXRlKGNv
bnN0IFRleHQmKSBjb25zdDsKIAorICAgIGNvbnN0IFJlbmRlclN0eWxlKiBpbml0aWFsQ29udGFp
bmluZ0Jsb2NrVXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWFsQ29udGFpbmluZ0Jsb2Nr
VXBkYXRlLmdldCgpOyB9CisKICAgICBjb25zdCBSZW5kZXJTdHlsZSogZWxlbWVudFN0eWxlKGNv
bnN0IEVsZW1lbnQmKSBjb25zdDsKICAgICBSZW5kZXJTdHlsZSogZWxlbWVudFN0eWxlKGNvbnN0
IEVsZW1lbnQmKTsKIApAQCAtNzgsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRUZXh0
KFRleHQmLCBFbGVtZW50KiBwYXJlbnQsIFRleHRVcGRhdGUmJik7CiAgICAgdm9pZCBhZGRUZXh0
KFRleHQmLCBUZXh0VXBkYXRlJiYpOwogICAgIHZvaWQgYWRkU1ZHUmVuZGVyZXJVcGRhdGUoU1ZH
RWxlbWVudCYpOworICAgIHZvaWQgYWRkSW5pdGlhbENvbnRhaW5pbmdCbG9ja1VwZGF0ZShzdGQ6
OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlKSB7IG1faW5pdGlhbENvbnRhaW5pbmdCbG9j
a1VwZGF0ZSA9IFdURk1vdmUoc3R5bGUpOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBhZGRQb3Nz
aWJsZVJvb3QoRWxlbWVudCopOwpAQCAtODYsNiArODksNyBAQCBwcml2YXRlOgogICAgIExpc3RI
YXNoU2V0PFJlZlB0cjxDb250YWluZXJOb2RlPj4gbV9yb290czsKICAgICBIYXNoTWFwPFJlZlB0
cjxjb25zdCBFbGVtZW50PiwgRWxlbWVudFVwZGF0ZT4gbV9lbGVtZW50czsKICAgICBIYXNoTWFw
PFJlZlB0cjxjb25zdCBUZXh0PiwgVGV4dFVwZGF0ZT4gbV90ZXh0czsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVuZGVyU3R5bGU+IG1faW5pdGlhbENvbnRhaW5pbmdCbG9ja1VwZGF0ZTsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA2NmIxNGU2N2ZmYy4uMmNmMzcwOWFlYmQ5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTQ1NTUsOCArNDU1NSw2IEBAIHdlYmtpdC5vcmcvYi8yMTQyOTEg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvc3Js
LWFsCiB3ZWJraXQub3JnL2IvMjE0MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy13cml0aW5nLW1vZGVzL3RjeS13aGl0ZS1zcGFjZS1wcm9jZXNzaW5nLTAwMS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjE0MjkxIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3RleHQtb3JpZW50YXRpb24t
aW5pdGlhbC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjE0MjkxIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXBy
b3BhZ2F0aW9uLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjE0
MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVz
L3dtLXByb3BhZ2F0aW9uLWJvZHktMDMyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi8yMTQyOTEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdy
aXRpbmctbW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS0wMzMuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LTAzNC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjE0MjkxIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktMDM1
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTQyOTEgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvd20tcHJvcGFnYXRp
b24tYm9keS0wMzYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpAQCAtNjA0OCw0ICs2MDQ2LDQg
QEAgZnVsbHNjcmVlbi9mdWxsc2NyZWVuLWVudGVyLWJvdHRvbS1wYWRkaW5nLWFuaW1hdGlvbi5o
dG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2xvYWRpbmcvb2F1dGguaHRtbCBbIER1bXBKU0NvbnNv
bGVMb2dJblN0ZEVyciBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS92aWRlby13aXRoLWh0dHBzLXVybC1hbGxvd2VkLWJ5LWNzcC1tZWRpYS1zcmMtc3Rhci5odG1s
IFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY2xpcGJvYXJkLWFwaXMvZmVhdHVyZS1wb2xpY3kvY2xpcGJvYXJkLXdyaXRlL2NsaXBi
b2FyZC13cml0ZS1kaXNhYmxlZC1ieS1mZWF0dXJlLXBvbGljeS50ZW50YXRpdmUuaHR0cHMuc3Vi
Lmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3VybHMvdGVybWlub2xvZ3ktMC9kb2N1bWVu
dC1iYXNlLXVybC1pbml0aWF0ZWQtZ3JhbmQtcGFyZW50Lmh0dHBzLndpbmRvdy5odG1sIFsgRHVt
cEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscy90ZXJt
aW5vbG9neS0wL2RvY3VtZW50LWJhc2UtdXJsLWluaXRpYXRlZC1ncmFuZC1wYXJlbnQuaHR0cHMu
d2luZG93Lmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5LWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iM2U4NjMz
YTc0MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93
cml0aW5nLW1vZGUtYm9keS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEgQEAKK1RoaXMgc2hvdWxk
IGJlIGhvcml6b250YWwuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9k
ZS93cml0aW5nLW1vZGUtYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUv
d3JpdGluZy1tb2RlLWJvZHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjZlZTFkNTY1N2FkZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
d3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5Lmh0bWwKQEAgLTAsMCArMSw3IEBACis8cD5U
aGlzIHNob3VsZCBiZSBob3Jpem9udGFsLjwvcD4KKzxzY3JpcHQ+Citjb25zdCB0YXJnZXQgPSBk
b2N1bWVudC5ib2R5OwordGFyZ2V0LnN0eWxlLndyaXRpbmdNb2RlID0gJ3ZlcnRpY2FsLXJsJzsK
K3RhcmdldC5vZmZzZXRMZWZ0OwordGFyZ2V0LnN0eWxlLndyaXRpbmdNb2RlID0gJyc7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmct
bW9kZS1kb2N1bWVudC1lbGVtZW50LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dy
aXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjNlODYzM2E3NDE4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2Rl
LWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxIEBACitUaGlzIHNob3Vs
ZCBiZSBob3Jpem9udGFsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1v
ZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
d3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44YjRmMTg3MGMwOWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1l
bnQtZWxlbWVudC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPHA+VGhpcyBzaG91bGQgYmUgaG9yaXpv
bnRhbC48L3A+Cis8c2NyaXB0PgorY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50OwordGFyZ2V0LnN0eWxlLndyaXRpbmdNb2RlID0gJ3ZlcnRpY2FsLXJsJzsKK3RhcmdldC5v
ZmZzZXRMZWZ0OwordGFyZ2V0LnN0eWxlLndyaXRpbmdNb2RlID0gJyc7Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktY29tcHV0ZWQtcm9vdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhw
ZWN0ZWQudHh0CmluZGV4IDc1MGUyYjkwOTZhNi4uNDk1YTg0MGMyYmFlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGlu
Zy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13
cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktY29tcHV0ZWQtcm9vdC1leHBlY3RlZC50
eHQKQEAgLTEsNSArMSw1IEBACiAKIFBBU1MgQ2hlY2sgY29tcHV0ZWQgd3JpdGluZy1tb2RlIGZv
ciBib2R5IGVsZW1lbnQuCi1GQUlMIENoZWNrIGNvbXB1dGVkIHdyaXRpbmctbW9kZSBmb3IgaHRt
bCByb290IGVsZW1lbnQuIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAi
dmVydGljYWwtbHIiCi1GQUlMIENoZWNrIGNvbXB1dGVkIHdyaXRpbmctbW9kZSBmb3IgYm9keSBl
bGVtZW50IHdoZW4gc3R5bGUgbm8gbG9uZ2VyIGFwcGxpZXMuIGFzc2VydF9ub3RfZXF1YWxzOiBn
b3QgZGlzYWxsb3dlZCB2YWx1ZSAidmVydGljYWwtbHIiCitQQVNTIENoZWNrIGNvbXB1dGVkIHdy
aXRpbmctbW9kZSBmb3IgaHRtbCByb290IGVsZW1lbnQuCitQQVNTIENoZWNrIGNvbXB1dGVkIHdy
aXRpbmctbW9kZSBmb3IgYm9keSBlbGVtZW50IHdoZW4gc3R5bGUgbm8gbG9uZ2VyIGFwcGxpZXMu
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463419</attachid>
            <date>2022-11-05 00:59:47 -0700</date>
            <delta_ts>2022-11-05 02:30:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185729-20221105095946.patch</filename>
            <type>text/plain</type>
            <size>41608</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSA1YzcwZjFlZWJjNDU1YzkxZDdiOTA1MTk4ZmNlNDliM2YxMjBlMjg5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBGcmksIDQgTm92IDIwMjIgMTM6MDA6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBUaGUgZWZm
ZWN0IG9mIHdyaXRpbmctbW9kZSBwcm9wZXJ0eSByZW1haW5zIGFmdGVyIHRoZQogcHJvcGVydHkg
aXMgcmVtb3ZlZCAob24gdGhlIHJvb3QgZWxlbWVudCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU3MjkgcmRhcjovLzk3MDkxOTkwCgpSZXZpZXdlZCBieSBBbGFu
IEJhcmFkbGF5LgoKVGhlcmUgaXMgYSBzdHlsZSBjeWNsZSB3aGVyZSB0aGUgcm9vdCB3cml0aW5n
LW1vZGUgbWF5IGRlcGVuZCBvbiB0aGUgZG9jdW1lbnQgZWxlbWVudCB3cml0aW5nLW1vZGUgd2hp
Y2gKaW4gdHVybiBtYXkgZGVwZW5kIG9uIHRoZSBib2R5J3MgKGNvbXB1dGVkIGR1cmluZyBwcmV2
aW91cyBzdHlsZSB1cGRhdGUpLiBUaGVzZSBjYW4gdGhlbiBnZXQgaW5oZXJpdGVkIGJhY2sKdG8g
dGhlIGJvZHkgc3R5bGUuIFRoZSByZXN1bHRpbmcgY29uZnVzaW9uIGNhdXNlcyB2YXJpb3VzIGlz
c3Vlcy4KClRoaXMgcGF0Y2ggZW5zdXJlcyB3ZSBkbyBzdHlsZSByZXNvbHV0aW9uIHVzaW5nIGNs
ZWFuIHJvb3Qgc3R5bGVzIHdpdGhvdXQgd3JpdGluZy1tb2RlL2RpcmVjdGlvbiBtdXRhdGlvbnMu
ClRoZSBwcm9wYWdhdGlvbiB1cHdhcmRzIGlzIGRvbmUgYXQgdGhlIGVuZCBvZiB0aGUgcmVzb2x1
dGlvbi4gVGhpcyByZXBsYWNlcyB0aGUgb2xkIHByb3BhZ2F0aW9uIGNvZGUgaW4KcmVuZGVyIHRy
ZWUuCgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvZmFzdC93
cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbDogQWRkZWQuCiogTGF5
b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbDogQWRkZWQu
CiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVs
ZW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1v
ZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMv
d20tcHJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVkLnR4dDoKKiBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc29sdmVTdHls
ZSk6CiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CihXZWJDb3JlOjpEb2N1bWVudDo6
cm9vdFN0eWxlIGNvbnN0KToKCk1haW50YWluIGNsZWFuIHJvb3Qgc3R5bGUuCgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94OjpzdHls
ZURpZENoYW5nZSk6CgpSZW1vdmUgc3R5bGUgbXV0YXRpbmcgcHJvcGFnYXRpb24gY29kZS4KCiog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgoKSGFuZGxlIHZpZXcgaW52
YWxpZGF0aW9uIGZvciB3cml0aW5nLW1vZGUvZGlyZWN0aW9uLiBUaGlzIGlzIG1vdmVkIGZyb20g
UmVuZGVyQm94OjpzdHlsZURpZENoYW5nZS4KCihXZWJDb3JlOjpSZW5kZXJWaWV3OjpzdHlsZURp
ZENoYW5nZSk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OmNvbW1pdCk6CgpVcGRhdGUgdGhlIHZpZXcgc3R5bGUg
Zmlyc3QuCgooV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVJlbmRlclZpZXdTdHls
ZSk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
Lmg6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CihXZWJDb3JlOjpT
dHlsZTo6QWRqdXN0ZXI6OnByb3BhZ2F0ZVRvRG9jdW1lbnRFbGVtZW50QW5kSW5pdGlhbENvbnRh
aW5pbmdCbG9jayk6CgpEbyB0aGUgcHJvcGFnYXRpb24gYXQgZW5kIG9mIHRoZSBzdHlsZSByZXNv
bHV0aW9uLgoKKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6cmVzdG9yZVVzZWREb2N1bWVudEVs
ZW1lbnRTdHlsZVRvQ29tcHV0ZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHA6
CihXZWJDb3JlOjpTdHlsZTo6cmVzb2x2ZUZvckRvY3VtZW50KToKClJlbW92ZSB0aGUgYWRqdXN0
bWVudHMgYmFzZWQgb24gZGVzY2VuZGFudCBzdHlsZXMuIFRoaXMgd2FzIG5vdCBjb3JyZWN0IGFz
IHRoZXNlIHZhbHVlcyBhcmUgZnJvbSB0aGUgcHJldmlvdXMgcm91bmQgb2Ygc3R5bGUgcmVzb2x1
dGlvbi4KCiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHA6CihXZWJDb3Jl
OjpTdHlsZTo6UmVzb2x2ZXI6OlN0YXRlOjpTdGF0ZSk6CihXZWJDb3JlOjpTdHlsZTo6UmVzb2x2
ZXI6OlJlc29sdmVyKToKKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKToK
KiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CihXZWJDb3JlOjpT
dHlsZTo6VHJlZVJlc29sdmVyOjpQYXJlbnQ6OlBhcmVudCk6CihXZWJDb3JlOjpTdHlsZTo6VHJl
ZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudCk6CihXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVy
OjpyZXNvbHZlQ29tcG9zZWRUcmVlKToKClNhdmUgYW5kIGNsZWFuIHVwIGRvY3VtZW50IGVsZW1l
bnQgc3R5bGUgd2hlbiB0cmF2ZXJzaW5nIHRocm91Z2guCgooV2ViQ29yZTo6U3R5bGU6OlRyZWVS
ZXNvbHZlcjo6cmVzb2x2ZSk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaDoK
KFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmluaXRpYWxDb250YWluaW5nQmxvY2tVcGRhdGUgY29u
c3QpOgooV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6YWRkSW5pdGlhbENvbnRhaW5pbmdCbG9ja1Vw
ZGF0ZSk6CgpQYXNzIHRoZSBuZXcgcm9vdCBzdHlsZSB2aWEgc3R5bGUgdXBkYXRlLgotLS0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9Db21wdXRlZFN0eWxlRXh0cmFjdG9yLmNwcCB8IDIwICsrKystCiBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCAxNyArKy0tLQog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgIHwgIDIgKwogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgIHwgNTEgLS0tLS0tLS0t
LS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwICAgICAgIHwgMjIg
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oICAgICAgICAgfCAg
MiArCiAuLi4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCAgfCAgOCAr
KwogLi4uL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oICAgIHwgIDEgKwog
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgICAgICAgIHwgNzQgKysrKysr
KysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oICAgICAg
ICAgIHwgIDIgKwogLi4uL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3Bw
IHwgMjAgKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwICAgICAg
ICB8IDEwICstLQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwICAg
IHwgNDIgKysrKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmggICAgICB8ICA2ICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oICAgICAg
ICAgICAgfCAgNCArCiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zICAgICAgICAgICAgICAg
ICAgfCAgNCArLQogLi4uL3dyaXRpbmctbW9kZS1ib2R5LWV4cGVjdGVkLmh0bWwgICAgICAgICAg
IHwgIDEgKwogLi4uL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5Lmh0bWwgIHwg
IDcgKysKIC4uLnJpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbCB8ICAx
ICsKIC4uLi93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sICAgICAgICB8ICA3ICsr
CiAuLi5yb3BhZ2F0aW9uLWJvZHktY29tcHV0ZWQtcm9vdC1leHBlY3RlZC50eHQgfCAgNCArLQog
MjEgZmlsZXMgY2hhbmdlZCwgMTk1IGluc2VydGlvbnMoKyksIDExMCBkZWxldGlvbnMoLSkKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1v
ZGUtYm9keS1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVt
ZW50LWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3dy
aXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwCmluZGV4IGM4OTdjYjgyZDVj
My4uZGRhNTQzMzdiOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29tcHV0ZWRT
dHlsZUV4dHJhY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVF
eHRyYWN0b3IuY3BwCkBAIC0zMTE4LDggKzMxMTgsMTQgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJT
dHkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q3Vyc29yVmlzaWJpbGl0eToKICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5jdXJzb3JWaXNpYmlsaXR5KCkp
OwogI2VuZGlmCi0gICAgY2FzZSBDU1NQcm9wZXJ0eURpcmVjdGlvbjoKLSAgICAgICAgcmV0dXJu
IGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5kaXJlY3Rpb24oKSk7CisgICAgY2FzZSBD
U1NQcm9wZXJ0eURpcmVjdGlvbjogIHsKKyAgICAgICAgYXV0byBkaXJlY3Rpb24gPSBbJl0gewor
ICAgICAgICAgICAgaWYgKG1fZWxlbWVudCA9PSBtX2VsZW1lbnQtPmRvY3VtZW50KCkuZG9jdW1l
bnRFbGVtZW50KCkgJiYgIXN0eWxlLmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6OmluaXRpYWxEaXJlY3Rpb24oKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdHlsZS5kaXJlY3Rpb24oKTsKKyAgICAgICAgfSgpOworICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKGRpcmVjdGlvbik7CisgICAgfQogICAgIGNh
c2UgQ1NTUHJvcGVydHlEaXNwbGF5OgogICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZVZhbHVlKHN0eWxlLmRpc3BsYXkoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUVtcHR5Q2VsbHM6
CkBAIC0zODYyLDggKzM4NjgsMTQgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0
cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAg
cmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3R5bGUubGluZVNuYXAoKSk7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExpbmVBbGlnbjoKICAgICAgICAgcmV0dXJuIENTU1ByaW1p
dGl2ZVZhbHVlOjpjcmVhdGUoc3R5bGUubGluZUFsaWduKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVy
dHlXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShz
dHlsZS53cml0aW5nTW9kZSgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5V3JpdGluZ01vZGU6IHsK
KyAgICAgICAgYXV0byB3cml0aW5nTW9kZSA9IFsmXSB7CisgICAgICAgICAgICBpZiAobV9lbGVt
ZW50ID09IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiAhc3R5bGUu
aGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFJl
bmRlclN0eWxlOjppbml0aWFsV3JpdGluZ01vZGUoKTsKKyAgICAgICAgICAgIHJldHVybiBzdHls
ZS53cml0aW5nTW9kZSgpOworICAgICAgICB9KCk7CisgICAgICAgIHJldHVybiBjc3NWYWx1ZVBv
b2wuY3JlYXRlVmFsdWUod3JpdGluZ01vZGUpOworICAgIH0KICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VGV4dENvbWJpbmU6CiAgICAgICAgIGlmIChzdHlsZS50ZXh0Q29tYmluZSgpID09IFRl
eHRDb21iaW5lOjpBbGwpCiAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVIb3Jpem9udGFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IDQyZjFhM2U0ZTVjZS4uYWMzY2NiMmNlYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTIwOTUsMTYgKzIwOTUsMTQgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJl
c29sdmVTdHlsZVR5cGUgdHlwZSkKICAgICAgICAgICAgIG1faGFzTm9kZXNXaXRoTm9uRmluYWxT
dHlsZSA9IGZhbHNlOwogICAgICAgICAgICAgbV9oYXNOb2Rlc1dpdGhNaXNzaW5nU3R5bGUgPSBm
YWxzZTsKIAotICAgICAgICAgICAgYXV0byBkb2N1bWVudFN0eWxlID0gU3R5bGU6OnJlc29sdmVG
b3JEb2N1bWVudCgqdGhpcyk7CisgICAgICAgICAgICBhdXRvIG5ld1N0eWxlID0gU3R5bGU6OnJl
c29sdmVGb3JEb2N1bWVudCgqdGhpcyk7CiAKLSAgICAgICAgICAgIC8vIEluc2VydGluZyB0aGUg
cGljdG9ncmFwaCBmb250IGF0IHRoZSBlbmQgb2YgdGhlIGZvbnQgZmFsbGJhY2sgbGlzdCBpcyBk
b25lIGJ5IHRoZQotICAgICAgICAgICAgLy8gZm9udCBzZWxlY3Rvciwgc28gc2V0IGEgZm9udCBz
ZWxlY3RvciBpZiBuZWVkZWQuCi0gICAgICAgICAgICBpZiAoc2V0dGluZ3MoKS5mb250RmFsbGJh
Y2tQcmVmZXJzUGljdG9ncmFwaHMoKSkKLSAgICAgICAgICAgICAgICBkb2N1bWVudFN0eWxlLmZv
bnRDYXNjYWRlKCkudXBkYXRlKCZmb250U2VsZWN0b3IoKSk7Ci0KLSAgICAgICAgICAgIGF1dG8g
ZG9jdW1lbnRDaGFuZ2UgPSBTdHlsZTo6ZGV0ZXJtaW5lQ2hhbmdlKGRvY3VtZW50U3R5bGUsIG1f
cmVuZGVyVmlldy0+c3R5bGUoKSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnRDaGFuZ2UgIT0g
U3R5bGU6OkNoYW5nZTo6Tm9uZSkKLSAgICAgICAgICAgICAgICByZW5kZXJWaWV3KCktPnNldFN0
eWxlKFdURk1vdmUoZG9jdW1lbnRTdHlsZSkpOworICAgICAgICAgICAgYXV0byBkb2N1bWVudENo
YW5nZSA9IG1faW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxlID8gU3R5bGU6OmRldGVybWluZUNo
YW5nZShuZXdTdHlsZSwgKm1faW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxlKSA6IFN0eWxlOjpD
aGFuZ2U6OlJlbmRlcmVyOworICAgICAgICAgICAgaWYgKGRvY3VtZW50Q2hhbmdlICE9IFN0eWxl
OjpDaGFuZ2U6Ok5vbmUpIHsKKyAgICAgICAgICAgICAgICBtX2luaXRpYWxDb250YWluaW5nQmxv
Y2tTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cihuZXdTdHlsZSk7CisgICAgICAgICAgICAg
ICAgLy8gVGhlIHVzZWQgc3R5bGUgbWF5IGVuZCB1cCBkaWZmZXJpbmcgZnJvbSB0aGUgY29tcHV0
ZWQgc3R5bGUgZHVlIHRvIHByb3BhZ2F0aW9uIG9mIHByb3BlcnRpZXMgZnJvbSBlbGVtZW50cy4K
KyAgICAgICAgICAgICAgICByZW5kZXJWaWV3KCktPnNldFN0eWxlKFdURk1vdmUobmV3U3R5bGUp
KTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKFJlZlB0ciBkb2N1bWVudEVsZW1l
bnQgPSB0aGlzLT5kb2N1bWVudEVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICBkb2N1bWVudEVs
ZW1lbnQtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKQEAgLTI2MjcsNiArMjYyNSw3IEBA
IHZvaWQgRG9jdW1lbnQ6OmRlc3Ryb3lSZW5kZXJUcmVlKCkKICAgICAgICAgdmlldygpLT53aWxs
RGVzdHJveVJlbmRlclRyZWUoKTsKIAogICAgIG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGUgPSB7
IH07CisgICAgbV9pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUgPSB7IH07CiAKICAgICBpZiAo
bV9kb2N1bWVudEVsZW1lbnQpCiAgICAgICAgIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJl
bmRlcmVycygqbV9kb2N1bWVudEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkMTg2
YTJjMWRkZDMuLjNhN2ZlYzZkN2Y1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTY2Nyw2ICs2
NjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kRm9udExvYWRpbmcoKTsKIAogICAgIFJl
bmRlclZpZXcqIHJlbmRlclZpZXcoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclZpZXcuZ2V0KCk7
IH0KKyAgICBjb25zdCBSZW5kZXJTdHlsZSogaW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxlKCkg
Y29uc3QgeyByZXR1cm4gbV9pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUuZ2V0KCk7IH0gLy8g
VGhpcyBtYXkgZW5kIHVwIGRpZmZlcmluZyBmcm9tIHJlbmRlclZpZXcoKS0+c3R5bGUoKSBkdWUg
dG8gYWRqdXN0bWVudHMuCiAKICAgICBib29sIHJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkOyB9CiAgICAgYm9vbCBoYXNM
aXZpbmdSZW5kZXJUcmVlKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyVmlldygpICYmICFyZW5kZXJU
cmVlQmVpbmdEZXN0cm95ZWQoKTsgfQpAQCAtMjAwNyw2ICsyMDA4LDcgQEAgcHJpdmF0ZToKICAg
ICBEb2N1bWVudENsYXNzZXMgbV9kb2N1bWVudENsYXNzZXM7CiAKICAgICBSZW5kZXJQdHI8UmVu
ZGVyVmlldz4gbV9yZW5kZXJWaWV3OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4g
bV9pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGU7CiAKICAgICBXZWFrSGFzaFNldDxNZWRpYUNh
blN0YXJ0TGlzdGVuZXI+IG1fbWVkaWFDYW5TdGFydExpc3RlbmVyczsKICAgICBXZWFrSGFzaFNl
dDxEaXNwbGF5Q2hhbmdlZE9ic2VydmVyPiBtX2Rpc3BsYXlDaGFuZ2VkT2JzZXJ2ZXJzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBmMTJmOWNmMzkwN2EuLmIzNTMw
Y2ZlMTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTM1Niw0
NSArMzU2LDYgQEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5j
ZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICBib29sIGlzRG9jRWxlbWVu
dFJlbmRlcmVyID0gaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpOwogCiAgICAgaWYgKGlzRG9j
RWxlbWVudFJlbmRlcmVyIHx8IGlzQm9keVJlbmRlcmVyKSB7Ci0gICAgICAgIGF1dG8qIGRvY3Vt
ZW50RWxlbWVudFJlbmRlcmVyID0gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVy
ZXIoKTsKLSAgICAgICAgYXV0byYgdmlld1N0eWxlID0gdmlldygpLm11dGFibGVTdHlsZSgpOwot
ICAgICAgICBib29sIHJvb3RTdHlsZUNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAgYm9vbCB2aWV3
RGlyZWN0aW9uT3JXcml0aW5nTW9kZUNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAgYXV0byogcm9v
dFJlbmRlcmVyID0gaXNCb2R5UmVuZGVyZXIgPyBkb2N1bWVudEVsZW1lbnRSZW5kZXJlciA6IG51
bGxwdHI7Ci0KLSAgICAgICAgYXV0byBwcm9wYWdhdGVXcml0aW5nTW9kZVRvUmVuZGVyVmlld0lm
QXBwbGljYWJsZSA9IFsmXSB7Ci0gICAgICAgICAgICAvLyBQcm9wYWdhdGUgdGhlIG5ldyB3cml0
aW5nIG1vZGUgYW5kIGRpcmVjdGlvbiB1cCB0byB0aGUgUmVuZGVyVmlldy4KLSAgICAgICAgICAg
IGlmICghZG9jdW1lbnRFbGVtZW50UmVuZGVyZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgaWYgKCFpc0JvZHlSZW5kZXJlciB8fCAhKHNob3VsZEFwcGx5QW55Q29udGFp
bm1lbnQoKSB8fCBkb2N1bWVudEVsZW1lbnRSZW5kZXJlci0+c2hvdWxkQXBwbHlBbnlDb250YWlu
bWVudCgpKSkgewotICAgICAgICAgICAgICAgIGlmICh2aWV3U3R5bGUuZGlyZWN0aW9uKCkgIT0g
bmV3U3R5bGUuZGlyZWN0aW9uKCkgJiYgKGlzRG9jRWxlbWVudFJlbmRlcmVyIHx8ICFkb2N1bWVu
dEVsZW1lbnRSZW5kZXJlci0+c3R5bGUoKS5oYXNFeHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHZpZXdTdHlsZS5zZXREaXJlY3Rpb24obmV3U3R5bGUuZGly
ZWN0aW9uKCkpOwotICAgICAgICAgICAgICAgICAgICB2aWV3RGlyZWN0aW9uT3JXcml0aW5nTW9k
ZUNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBpZiAoaXNCb2R5UmVuZGVyZXIp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZW5kZXJlci0+bXV0YWJsZVN0eWxlKCku
c2V0RGlyZWN0aW9uKG5ld1N0eWxlLmRpcmVjdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJvb3RTdHlsZUNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwotCi0g
ICAgICAgICAgICAgICAgICAgIHZpZXcoKS5mcmFtZVZpZXcoKS50b3BDb250ZW50RGlyZWN0aW9u
RGlkQ2hhbmdlKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKHZp
ZXdTdHlsZS53cml0aW5nTW9kZSgpICE9IG5ld1N0eWxlLndyaXRpbmdNb2RlKCkgJiYgKGlzRG9j
RWxlbWVudFJlbmRlcmVyIHx8ICFkb2N1bWVudEVsZW1lbnRSZW5kZXJlci0+c3R5bGUoKS5oYXNF
eHBsaWNpdGx5U2V0V3JpdGluZ01vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgdmlld1N0
eWxlLnNldFdyaXRpbmdNb2RlKG5ld1N0eWxlLndyaXRpbmdNb2RlKCkpOwotICAgICAgICAgICAg
ICAgICAgICB2aWV3RGlyZWN0aW9uT3JXcml0aW5nTW9kZUNoYW5nZWQgPSB0cnVlOwotICAgICAg
ICAgICAgICAgICAgICB2aWV3KCkuc2V0SG9yaXpvbnRhbFdyaXRpbmdNb2RlKG5ld1N0eWxlLmlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpOwotICAgICAgICAgICAgICAgICAgICB2aWV3KCkubWFy
a0FsbERlc2NlbmRhbnRzV2l0aEZsb2F0c0ZvckxheW91dCgpOwotICAgICAgICAgICAgICAgICAg
ICBpZiAoaXNCb2R5UmVuZGVyZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RTdHls
ZUNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFJlbmRlcmVyLT5t
dXRhYmxlU3R5bGUoKS5zZXRXcml0aW5nTW9kZShuZXdTdHlsZS53cml0aW5nTW9kZSgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZW5kZXJlci0+c2V0SG9yaXpvbnRhbFdyaXRpbmdN
b2RlKG5ld1N0eWxlLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpOwotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1Jl
Y2FsYygpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAg
ICAgICAgcHJvcGFnYXRlV3JpdGluZ01vZGVUb1JlbmRlclZpZXdJZkFwcGxpY2FibGUoKTsKLQog
I2lmIEVOQUJMRShEQVJLX01PREVfQ1NTKQogICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCkucmVj
YWxjdWxhdGVCYXNlQmFja2dyb3VuZENvbG9yKCk7CiAjZW5kaWYKQEAgLTQwMiwxOCArMzYzLDYg
QEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnJl
Y2FsY3VsYXRlU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCk7CiAgICAgICAgIAogICAgICAgICBjb25z
dCBQYWdpbmF0aW9uJiBwYWdpbmF0aW9uID0gdmlldygpLmZyYW1lVmlldygpLnBhZ2luYXRpb24o
KTsKLSAgICAgICAgaWYgKHZpZXdEaXJlY3Rpb25PcldyaXRpbmdNb2RlQ2hhbmdlZCAmJiBwYWdp
bmF0aW9uLm1vZGUgIT0gUGFnaW5hdGlvbjo6VW5wYWdpbmF0ZWQpIHsKLSAgICAgICAgICAgIHZp
ZXdTdHlsZS5zZXRDb2x1bW5TdHlsZXNGcm9tUGFnaW5hdGlvbk1vZGUocGFnaW5hdGlvbi5tb2Rl
KTsKLSAgICAgICAgICAgIGlmICh2aWV3KCkubXVsdGlDb2x1bW5GbG93KCkpCi0gICAgICAgICAg
ICAgICAgdmlldygpLnVwZGF0ZUNvbHVtblByb2dyZXNzaW9uRnJvbVN0eWxlKHZpZXdTdHlsZSk7
Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmICh2aWV3RGlyZWN0aW9uT3JXcml0aW5n
TW9kZUNoYW5nZWQgJiYgdmlldygpLm11bHRpQ29sdW1uRmxvdygpKQotICAgICAgICAgICAgdmll
dygpLnVwZGF0ZVN0eWxlc0ZvckNvbHVtbkNoaWxkcmVuKCk7Ci0gICAgICAgIAotICAgICAgICBp
ZiAocm9vdFN0eWxlQ2hhbmdlZCAmJiBpczxSZW5kZXJCbG9ja0Zsb3c+KHJvb3RSZW5kZXJlcikg
JiYgZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93Pigqcm9vdFJlbmRlcmVyKS5tdWx0aUNvbHVtbkZs
b3coKSkKLSAgICAgICAgICAgIGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oKnJvb3RSZW5kZXJl
cikudXBkYXRlU3R5bGVzRm9yQ29sdW1uQ2hpbGRyZW4oKTsKLSAgICAgICAgCiAgICAgICAgIGlm
IChpc0JvZHlSZW5kZXJlciAmJiBwYWdpbmF0aW9uLm1vZGUgIT0gUGFnaW5hdGlvbjo6VW5wYWdp
bmF0ZWQgJiYgcGFnZSgpLnBhZ2luYXRpb25MaW5lR3JpZEVuYWJsZWQoKSkgewogICAgICAgICAg
ICAgLy8gUHJvcGFnYXRlIHRoZSBib2R5IGZvbnQgYmFjayB1cCB0byB0aGUgUmVuZGVyVmlldyBh
bmQgdXNlIGl0IGFzCiAgICAgICAgICAgICAvLyB0aGUgYmFzaXMgb2YgdGhlIGdyaWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggMmJlM2FhZTdhNjdhLi45MGUz
OWM3MzAwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTk0
LDYgKzk0LDI4IEBAIFJlbmRlclZpZXc6On5SZW5kZXJWaWV3KCkKICAgICBBU1NFUlRfV0lUSF9N
RVNTQUdFKG1fcmVuZGVyZXJDb3VudCA9PSAxLCAiQWxsIG90aGVyIHJlbmRlcmVycyBpbiB0aGlz
IHJlbmRlciB0cmVlIHNob3VsZCBoYXZlIGJlZW4gZGVzdHJveWVkIik7CiB9CiAKK3ZvaWQgUmVu
ZGVyVmlldzo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBSZW5kZXJCbG9ja0Zsb3c6OnN0eWxlRGlkQ2hhbmdl
KGRpZmYsIG9sZFN0eWxlKTsKKworICAgIGJvb2wgd3JpdGluZ01vZGVDaGFuZ2VkID0gb2xkU3R5
bGUgJiYgc3R5bGUoKS53cml0aW5nTW9kZSgpICE9IG9sZFN0eWxlLT53cml0aW5nTW9kZSgpOwor
ICAgIGJvb2wgZGlyZWN0aW9uQ2hhbmdlZCA9IG9sZFN0eWxlICYmIHN0eWxlKCkuZGlyZWN0aW9u
KCkgIT0gb2xkU3R5bGUtPmRpcmVjdGlvbigpOworCisgICAgaWYgKHdyaXRpbmdNb2RlQ2hhbmdl
ZCB8fCBkaXJlY3Rpb25DaGFuZ2VkKSB7CisgICAgICAgIGF1dG8mIHBhZ2luYXRpb24gPSBmcmFt
ZVZpZXcoKS5wYWdpbmF0aW9uKCk7CisgICAgICAgIGlmIChwYWdpbmF0aW9uLm1vZGUgIT0gUGFn
aW5hdGlvbjo6VW5wYWdpbmF0ZWQpIHsKKyAgICAgICAgICAgIG11dGFibGVTdHlsZSgpLnNldENv
bHVtblN0eWxlc0Zyb21QYWdpbmF0aW9uTW9kZShwYWdpbmF0aW9uLm1vZGUpOworICAgICAgICAg
ICAgaWYgKG11bHRpQ29sdW1uRmxvdygpKQorICAgICAgICAgICAgICAgIHVwZGF0ZUNvbHVtblBy
b2dyZXNzaW9uRnJvbVN0eWxlKHN0eWxlKCkpOworICAgICAgICB9CisgICAgICAgIGlmIChtdWx0
aUNvbHVtbkZsb3coKSkKKyAgICAgICAgICAgIHVwZGF0ZVN0eWxlc0ZvckNvbHVtbkNoaWxkcmVu
KCk7CisgICAgfQorCisgICAgaWYgKGRpcmVjdGlvbkNoYW5nZWQpCisgICAgICAgIGZyYW1lVmll
dygpLnRvcENvbnRlbnREaXJlY3Rpb25EaWRDaGFuZ2UoKTsKK30KKwogdm9pZCBSZW5kZXJWaWV3
OjpzY2hlZHVsZUxhenlSZXBhaW50KFJlbmRlckJveCYgcmVuZGVyZXIpCiB7CiAgICAgaWYgKHJl
bmRlcmVyLnJlbmRlckJveE5lZWRzTGF6eVJlcGFpbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oCmluZGV4IDdhZDExMTQyYTJhZi4uNmRmMzNiYWNhYTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTIxNCw2ICsyMTQsOCBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgV2Vha0hhc2hTZXQ8Y29uc3QgUmVuZGVyQm94PiYgY29udGFpbmVyUXVlcnlCb3hl
cygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbmVyUXVlcnlCb3hlczsgfQogCiBwcml2YXRlOgor
ICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpIG92ZXJyaWRlOworCiAgICAgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIGJvb2wqIHdhc0ZpeGVkKSBjb25z
dCBvdmVycmlkZTsKICAgICBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVy
R2VvbWV0cnlNYXAmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIG1hcEFic29sdXRlVG9Mb2Nh
bFBvaW50KE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBUcmFuc2Zvcm1TdGF0ZSYpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKaW5kZXggYjQ4NjE0YjI3NDkyLi5iZWEyMWMzNzcx
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVVcGRhdGVyLmNwcApAQCAtMTA1LDYgKzEwNSw4IEBAIHZvaWQgUmVuZGVyVHJlZVVw
ZGF0ZXI6OmNvbW1pdChzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVV
cGRhdGUpCiAKICAgICBtX3N0eWxlVXBkYXRlID0gV1RGTW92ZShzdHlsZVVwZGF0ZSk7CiAKKyAg
ICB1cGRhdGVSZW5kZXJWaWV3U3R5bGUoKTsKKwogICAgIGZvciAoYXV0byYgcm9vdCA6IG1fc3R5
bGVVcGRhdGUtPnJvb3RzKCkpIHsKICAgICAgICAgYXV0byogcmVuZGVyaW5nUm9vdCA9IGZpbmRS
ZW5kZXJpbmdSb290KCpyb290KTsKICAgICAgICAgaWYgKCFyZW5kZXJpbmdSb290KQpAQCAtNTE2
LDYgKzUxOCwxMiBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpzdG9yZVByZXZpb3VzUmVuZGVy
ZXIoTm9kZSYgbm9kZSkKICAgICByZW5kZXJpbmdQYXJlbnQoKS5wcmV2aW91c0NoaWxkUmVuZGVy
ZXIgPSByZW5kZXJlcjsKIH0KIAordm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVy
Vmlld1N0eWxlKCkKK3sKKyAgICBpZiAobV9zdHlsZVVwZGF0ZS0+aW5pdGlhbENvbnRhaW5pbmdC
bG9ja1VwZGF0ZSgpKQorICAgICAgICBtX2RvY3VtZW50LnJlbmRlclZpZXcoKS0+c2V0U3R5bGUo
UmVuZGVyU3R5bGU6OmNsb25lKCptX3N0eWxlVXBkYXRlLT5pbml0aWFsQ29udGFpbmluZ0Jsb2Nr
VXBkYXRlKCkpKTsKK30KKwogdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dGVhckRvd25SZW5kZXJl
cnMoRWxlbWVudCYgcm9vdCkKIHsKICAgICBhdXRvKiB2aWV3ID0gcm9vdC5kb2N1bWVudCgpLnJl
bmRlclZpZXcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVVcGRhdGVyLmgKaW5kZXggYWJjYzlmMGVjMmRmLi5iNTgyNGMzMGQ4NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
VXBkYXRlci5oCkBAIC02MSw2ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVFbGVt
ZW50UmVuZGVyZXIoRWxlbWVudCYsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRlJik7CiAgICAg
dm9pZCB1cGRhdGVTVkdSZW5kZXJlcihFbGVtZW50Jik7CiAgICAgdm9pZCB1cGRhdGVSZW5kZXJl
clN0eWxlKFJlbmRlckVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBTdHlsZURpZmZlcmVuY2UpOwor
ICAgIHZvaWQgdXBkYXRlUmVuZGVyVmlld1N0eWxlKCk7CiAgICAgdm9pZCBjcmVhdGVSZW5kZXJl
cihFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CiAgICAgdm9pZCB1cGRhdGVCZWZvcmVEZXNjZW5k
YW50cyhFbGVtZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUqKTsKICAgICB2b2lkIHVw
ZGF0ZUFmdGVyRGVzY2VuZGFudHMoRWxlbWVudCYsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRl
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IDE3NTIyMzJlNTA4
MS4uOWY5MGNiZjgwMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFk
anVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnROYW1lLmgiCiAjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUTUxCb2R5RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxEaWFsb2dFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERp
dkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCkBAIC01Myw2ICs1NCw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKQEAgLTYwLDYgKzYyLDcgQEAKICNpbmNsdWRlICJTVkdVUklSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNp
bmNsdWRlICJTdHlsZVVwZGF0ZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJXZWJB
bmltYXRpb25UeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CkBAIC03
NzAsNiArNzczLDc3IEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZpY1F1aXJr
cyhSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiAjZW5kaWYKIH0KIAordm9pZCBBZGp1c3Rlcjo6
cHJvcGFnYXRlVG9Eb2N1bWVudEVsZW1lbnRBbmRJbml0aWFsQ29udGFpbmluZ0Jsb2NrKFVwZGF0
ZSYgdXBkYXRlLCBjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgYXV0byogYm9keSA9
IGRvY3VtZW50LmJvZHkoKTsKKyAgICBhdXRvKiBib2R5U3R5bGUgPSBib2R5ID8gdXBkYXRlLmVs
ZW1lbnRTdHlsZSgqYm9keSkgOiBudWxscHRyOworICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudFN0
eWxlID0gdXBkYXRlLmVsZW1lbnRTdHlsZSgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpOwor
CisgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLTIvI2NvbnRhaW4t
cHJvcGVydHkKKyAgICAvLyAiQWRkaXRpb25hbGx5LCB3aGVuIGFueSBjb250YWlubWVudHMgYXJl
IGFjdGl2ZSBvbiBlaXRoZXIgdGhlIEhUTUwgaHRtbCBvciBib2R5IGVsZW1lbnRzLCBwcm9wYWdh
dGlvbiBvZgorICAgIC8vIHByb3BlcnRpZXMgZnJvbSB0aGUgYm9keSBlbGVtZW50IHRvIHRoZSBp
bml0aWFsIGNvbnRhaW5pbmcgYmxvY2ssIHRoZSB2aWV3cG9ydCwgb3IgdGhlIGNhbnZhcyBiYWNr
Z3JvdW5kLCBpcyBkaXNhYmxlZC4iCisgICAgYXV0byBzaG91bGRQcm9wYWdhdGVGcm9tQm9keSA9
IFsmXSB7CisgICAgICAgIGlmICghZG9jdW1lbnRFbGVtZW50U3R5bGUpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChib2R5U3R5bGUgJiYgIWJvZHlTdHlsZS0+ZWZmZWN0
aXZlQ29udGFpbm1lbnQoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHJldHVybiBkb2N1bWVudEVsZW1lbnRTdHlsZS0+ZWZmZWN0aXZlQ29udGFpbm1lbnQo
KS5pc0VtcHR5KCk7CisgICAgfSgpOworCisgICAgYXV0byB3cml0aW5nTW9kZSA9IFsmXSB7Cisg
ICAgICAgIC8vIEZJWE1FOiBUaGUgc3BlYyBzYXlzIGJvZHkgc2hvdWxkIHdpbi4KKyAgICAgICAg
aWYgKGRvY3VtZW50RWxlbWVudFN0eWxlLT5oYXNFeHBsaWNpdGx5U2V0V3JpdGluZ01vZGUoKSkK
KyAgICAgICAgICAgIHJldHVybiBkb2N1bWVudEVsZW1lbnRTdHlsZS0+d3JpdGluZ01vZGUoKTsK
KyAgICAgICAgaWYgKHNob3VsZFByb3BhZ2F0ZUZyb21Cb2R5ICYmIGJvZHlTdHlsZSAmJiBib2R5
U3R5bGUtPmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGJvZHlTdHlsZS0+d3JpdGluZ01vZGUoKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlclN0eWxlOjpp
bml0aWFsV3JpdGluZ01vZGUoKTsKKyAgICB9KCk7CisKKyAgICBhdXRvIGRpcmVjdGlvbiA9IFsm
XSB7CisgICAgICAgIGlmIChkb2N1bWVudEVsZW1lbnRTdHlsZS0+aGFzRXhwbGljaXRseVNldERp
cmVjdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50RWxlbWVudFN0eWxlLT5kaXJl
Y3Rpb24oKTsKKyAgICAgICAgaWYgKHNob3VsZFByb3BhZ2F0ZUZyb21Cb2R5ICYmIGJvZHlTdHls
ZSAmJiBib2R5U3R5bGUtPmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKKyAgICAgICAgICAg
IHJldHVybiBib2R5U3R5bGUtPmRpcmVjdGlvbigpOworICAgICAgICByZXR1cm4gUmVuZGVyU3R5
bGU6OmluaXRpYWxEaXJlY3Rpb24oKTsKKyAgICB9KCk7CisKKyAgICAvLyBodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3NzLXdyaXRpbmctbW9kZXMtMy8jaWNiCisgICAgYXV0byYgdmlld1N0eWxl
ID0gZG9jdW1lbnQucmVuZGVyVmlldygpLT5zdHlsZSgpOworICAgIGlmICh3cml0aW5nTW9kZSAh
PSB2aWV3U3R5bGUud3JpdGluZ01vZGUoKSB8fCBkaXJlY3Rpb24gIT0gdmlld1N0eWxlLmRpcmVj
dGlvbigpKSB7CisgICAgICAgIGF1dG8gbmV3Um9vdFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25l
UHRyKHZpZXdTdHlsZSk7CisgICAgICAgIG5ld1Jvb3RTdHlsZS0+c2V0V3JpdGluZ01vZGUod3Jp
dGluZ01vZGUpOworICAgICAgICBuZXdSb290U3R5bGUtPnNldERpcmVjdGlvbihkaXJlY3Rpb24p
OworICAgICAgICB1cGRhdGUuYWRkSW5pdGlhbENvbnRhaW5pbmdCbG9ja1VwZGF0ZShXVEZNb3Zl
KG5ld1Jvb3RTdHlsZSkpOworICAgIH0KKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3Mtd3JpdGluZy1tb2Rlcy0zLyNwcmluY2lwYWwtZmxvdworICAgIGlmICh3cml0aW5nTW9k
ZSAhPSBkb2N1bWVudEVsZW1lbnRTdHlsZS0+d3JpdGluZ01vZGUoKSB8fCBkaXJlY3Rpb24gIT0g
ZG9jdW1lbnRFbGVtZW50U3R5bGUtPmRpcmVjdGlvbigpKSB7CisgICAgICAgIGF1dG8qIGRvY3Vt
ZW50RWxlbWVudFVwZGF0ZSA9IHVwZGF0ZS5lbGVtZW50VXBkYXRlKCpkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQoKSk7CisgICAgICAgIGlmICghZG9jdW1lbnRFbGVtZW50VXBkYXRlKSB7CisgICAg
ICAgICAgICB1cGRhdGUuYWRkRWxlbWVudCgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCksIG51
bGxwdHIsIHsgUmVuZGVyU3R5bGU6OmNsb25lUHRyKCpkb2N1bWVudEVsZW1lbnRTdHlsZSkgfSk7
CisgICAgICAgICAgICBkb2N1bWVudEVsZW1lbnRVcGRhdGUgPSB1cGRhdGUuZWxlbWVudFVwZGF0
ZSgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICB9CisKKyAgICAgICAgZG9j
dW1lbnRFbGVtZW50VXBkYXRlLT5zdHlsZS0+c2V0V3JpdGluZ01vZGUod3JpdGluZ01vZGUpOwor
ICAgICAgICBkb2N1bWVudEVsZW1lbnRVcGRhdGUtPnN0eWxlLT5zZXREaXJlY3Rpb24oZGlyZWN0
aW9uKTsKKyAgICAgICAgZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5jaGFuZ2UgPSBkZXRlcm1pbmVD
aGFuZ2UoKmRvY3VtZW50RWxlbWVudFN0eWxlLCAqZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5zdHls
ZSk7CisgICAgfQorfQorCitzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IEFkanVzdGVyOjpy
ZXN0b3JlVXNlZERvY3VtZW50RWxlbWVudFN0eWxlVG9Db21wdXRlZChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpCit7CisgICAgaWYgKHN0eWxlLndyaXRpbmdNb2RlKCkgPT0gUmVuZGVyU3R5bGU6
OmluaXRpYWxXcml0aW5nTW9kZSgpICYmIHN0eWxlLmRpcmVjdGlvbigpID09IFJlbmRlclN0eWxl
Ojppbml0aWFsRGlyZWN0aW9uKCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvIGFk
anVzdGVkID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKHN0eWxlKTsKKyAgICBpZiAoIXN0eWxlLmhh
c0V4cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKQorICAgICAgICBhZGp1c3RlZC0+c2V0V3JpdGlu
Z01vZGUoUmVuZGVyU3R5bGU6OmluaXRpYWxXcml0aW5nTW9kZSgpKTsKKyAgICBpZiAoIXN0eWxl
Lmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKKyAgICAgICAgYWRqdXN0ZWQtPnNldERpcmVj
dGlvbihSZW5kZXJTdHlsZTo6aW5pdGlhbERpcmVjdGlvbigpKTsKKworICAgIHJldHVybiBhZGp1
c3RlZDsKK30KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiBzdGF0aWMgYm9vbCBoYXNU
ZXh0Q2hpbGQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QWRqdXN0ZXIuaAppbmRleCBkZThhODU4ZDk1ZmYuLmM2ZTdhZDAxNDk1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlQWRqdXN0ZXIuaApAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgdm9pZCBhZGp1c3RTVkdFbGVtZW50U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBTVkdF
bGVtZW50Jik7CiAgICAgc3RhdGljIHZvaWQgYWRqdXN0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVz
Rm9yUm9vdFN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMg
dm9pZCBwcm9wYWdhdGVUb0RvY3VtZW50RWxlbWVudEFuZEluaXRpYWxDb250YWluaW5nQmxvY2so
VXBkYXRlJiwgY29uc3QgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJl
bmRlclN0eWxlPiByZXN0b3JlVXNlZERvY3VtZW50RWxlbWVudFN0eWxlVG9Db21wdXRlZChjb25z
dCBSZW5kZXJTdHlsZSYpOwogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBzdHJ1
Y3QgQWRqdXN0bWVudEZvclRleHRBdXRvc2l6aW5nIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcAppbmRleCAxZWE1Y2FhZTgwNTkuLmE1NDNk
YTNjNmJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9y
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRv
Y3VtZW50LmNwcApAQCAtNzEsMjUgKzcxLDcgQEAgUmVuZGVyU3R5bGUgcmVzb2x2ZUZvckRvY3Vt
ZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICNlbmRpZgogCiAgICAgQWRqdXN0ZXI6OmFk
anVzdEV2ZW50TGlzdGVuZXJSZWdpb25UeXBlc0ZvclJvb3RTdHlsZShkb2N1bWVudFN0eWxlLCBk
b2N1bWVudCk7Ci0KLSAgICBFbGVtZW50KiBkb2NFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50KCk7Ci0gICAgUmVuZGVyT2JqZWN0KiBkb2NFbGVtZW50UmVuZGVyZXIgPSBkb2NFbGVt
ZW50ID8gZG9jRWxlbWVudC0+cmVuZGVyZXIoKSA6IG51bGxwdHI7Ci0gICAgaWYgKGRvY0VsZW1l
bnRSZW5kZXJlcikgewotICAgICAgICAvLyBVc2UgdGhlIGRpcmVjdGlvbiBhbmQgd3JpdGluZy1t
b2RlIG9mIHRoZSBib2R5IHRvIHNldCB0aGUKLSAgICAgICAgLy8gdmlld3BvcnQncyBkaXJlY3Rp
b24gYW5kIHdyaXRpbmctbW9kZSB1bmxlc3MgdGhlIHByb3BlcnR5IGlzIHNldCBvbiB0aGUgZG9j
dW1lbnQgZWxlbWVudC4KLSAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYm9keSwgdGhlbiB1c2Ug
dGhlIGRvY3VtZW50IGVsZW1lbnQuCi0gICAgICAgIGF1dG8qIGJvZHkgPSBkb2N1bWVudC5ib2R5
T3JGcmFtZXNldCgpOwotICAgICAgICBSZW5kZXJPYmplY3QqIGJvZHlSZW5kZXJlciA9IGJvZHkg
PyBib2R5LT5yZW5kZXJlcigpIDogbnVsbHB0cjsKLSAgICAgICAgaWYgKGJvZHlSZW5kZXJlciAm
JiAhZG9jRWxlbWVudFJlbmRlcmVyLT5zdHlsZSgpLmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9k
ZSgpKQotICAgICAgICAgICAgZG9jdW1lbnRTdHlsZS5zZXRXcml0aW5nTW9kZShib2R5UmVuZGVy
ZXItPnN0eWxlKCkud3JpdGluZ01vZGUoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRv
Y3VtZW50U3R5bGUuc2V0V3JpdGluZ01vZGUoZG9jRWxlbWVudFJlbmRlcmVyLT5zdHlsZSgpLndy
aXRpbmdNb2RlKCkpOwotICAgICAgICBpZiAoYm9keVJlbmRlcmVyICYmICFkb2NFbGVtZW50UmVu
ZGVyZXItPnN0eWxlKCkuaGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKQotICAgICAgICAgICAg
ZG9jdW1lbnRTdHlsZS5zZXREaXJlY3Rpb24oYm9keVJlbmRlcmVyLT5zdHlsZSgpLmRpcmVjdGlv
bigpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZG9jdW1lbnRTdHlsZS5zZXREaXJlY3Rp
b24oZG9jRWxlbWVudFJlbmRlcmVyLT5zdHlsZSgpLmRpcmVjdGlvbigpKTsKLSAgICB9Ci0KKyAg
ICAKICAgICBjb25zdCBQYWdpbmF0aW9uJiBwYWdpbmF0aW9uID0gcmVuZGVyVmlldy5mcmFtZVZp
ZXcoKS5wYWdpbmF0aW9uKCk7CiAgICAgaWYgKHBhZ2luYXRpb24ubW9kZSAhPSBQYWdpbmF0aW9u
OjpVbnBhZ2luYXRlZCkgewogICAgICAgICBkb2N1bWVudFN0eWxlLnNldENvbHVtblN0eWxlc0Zy
b21QYWdpbmF0aW9uTW9kZShwYWdpbmF0aW9uLm1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVJlc29sdmVyLmNwcAppbmRleCAyMzAzN2JiOTVhNzAuLmIyYWJiYTViZTQ1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGF1dG8mIGRvY3VtZW50ID0gZWxlbWVudC5kb2N1bWVudCgpOwogICAgICAgICBh
dXRvKiBkb2N1bWVudEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKTsKICAgICAg
ICAgaWYgKCFkb2N1bWVudEVsZW1lbnQgfHwgZG9jdW1lbnRFbGVtZW50ID09ICZlbGVtZW50KQot
ICAgICAgICAgICAgbV9yb290RWxlbWVudFN0eWxlID0gZG9jdW1lbnQucmVuZGVyU3R5bGUoKTsK
KyAgICAgICAgICAgIG1fcm9vdEVsZW1lbnRTdHlsZSA9IGRvY3VtZW50LmluaXRpYWxDb250YWlu
aW5nQmxvY2tTdHlsZSgpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3Jvb3RFbGVtZW50
U3R5bGUgPSBkb2N1bWVudEVsZW1lbnRTdHlsZSA/IGRvY3VtZW50RWxlbWVudFN0eWxlIDogZG9j
dW1lbnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpOwogICAgIH0KQEAgLTE1OSw3ICsxNTksNyBAQCBS
ZXNvbHZlcjo6UmVzb2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICBtX21lZGlhUXVl
cnlFdmFsdWF0b3IgPSBMZWdhY3lNZWRpYVF1ZXJ5RXZhbHVhdG9yIHsgfTsKIAogICAgIGlmIChh
dXRvKiBkb2N1bWVudEVsZW1lbnQgPSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpKSB7Ci0g
ICAgICAgIG1fcm9vdERlZmF1bHRTdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgqZG9jdW1lbnRFbGVt
ZW50LCB7IG1fZG9jdW1lbnQucmVuZGVyU3R5bGUoKSB9LCBSdWxlTWF0Y2hpbmdCZWhhdmlvcjo6
TWF0Y2hPbmx5VXNlckFnZW50UnVsZXMpLnJlbmRlclN0eWxlOworICAgICAgICBtX3Jvb3REZWZh
dWx0U3R5bGUgPSBzdHlsZUZvckVsZW1lbnQoKmRvY3VtZW50RWxlbWVudCwgeyBtX2RvY3VtZW50
LmluaXRpYWxDb250YWluaW5nQmxvY2tTdHlsZSgpIH0sIFJ1bGVNYXRjaGluZ0JlaGF2aW9yOjpN
YXRjaE9ubHlVc2VyQWdlbnRSdWxlcykucmVuZGVyU3R5bGU7CiAgICAgICAgIC8vIFR1cm4gb2Zm
IGFzc2VydGlvbiBhZ2FpbnN0IGZvbnQgbG9va3VwcyBkdXJpbmcgc3R5bGUgcmVzb2x2ZXIgaW5p
dGlhbGl6YXRpb24uIFdlIG1heSBuZWVkIHJvb3Qgc3R5bGUgZm9udCBmb3IgbWVkaWEgcXVlcmll
cy4KICAgICAgICAgbV9kb2N1bWVudC5mb250U2VsZWN0b3IoKS5pbmNyZW1lbnRJc0NvbXB1dGlu
Z1Jvb3RTdHlsZUZvbnQoKTsKICAgICAgICAgbV9yb290RGVmYXVsdFN0eWxlLT5mb250Q2FzY2Fk
ZSgpLnVwZGF0ZSgmbV9kb2N1bWVudC5mb250U2VsZWN0b3IoKSk7CkBAIC00NzgsMTUgKzQ3OCwx
NSBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFJlc29sdmVyOjpwc2V1ZG9TdHlsZUZv
ckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbQogc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxl
PiBSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpCiB7CiAgICAgYXV0byogZG9j
dW1lbnRFbGVtZW50ID0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKTsKLSAgICBpZiAoIWRv
Y3VtZW50RWxlbWVudCkKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVudCB8fCAhZG9jdW1lbnRFbGVt
ZW50LT5yZW5kZXJTdHlsZSgpKQogICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6OmNyZWF0ZVB0
cigpOwogCi0gICAgYXV0byBzdGF0ZSA9IFN0YXRlKCpkb2N1bWVudEVsZW1lbnQsIG1fZG9jdW1l
bnQucmVuZGVyU3R5bGUoKSk7CisgICAgYXV0byBzdGF0ZSA9IFN0YXRlKCpkb2N1bWVudEVsZW1l
bnQsIG1fZG9jdW1lbnQuaW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxlKCkpOwogCiAgICAgc3Rh
dGUuc2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNyZWF0ZVB0cigpKTsKICAgICBzdGF0ZS5zdHlsZSgp
LT5pbmhlcml0RnJvbSgqc3RhdGUucm9vdEVsZW1lbnRTdHlsZSgpKTsKIAotICAgIFBhZ2VSdWxl
Q29sbGVjdG9yIGNvbGxlY3RvcihtX3J1bGVTZXRzLCBzdGF0ZS5yb290RWxlbWVudFN0eWxlKCkt
PmRpcmVjdGlvbigpKTsKKyAgICBQYWdlUnVsZUNvbGxlY3RvciBjb2xsZWN0b3IobV9ydWxlU2V0
cywgZG9jdW1lbnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpLT5kaXJlY3Rpb24oKSk7CiAgICAgY29s
bGVjdG9yLm1hdGNoQWxsUGFnZVJ1bGVzKHBhZ2VJbmRleCk7CiAKICAgICBhdXRvJiByZXN1bHQg
PSBjb2xsZWN0b3IubWF0Y2hSZXN1bHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJl
ZVJlc29sdmVyLmNwcAppbmRleCBmMzQ2ZmRmNWRlOWUuLjc2YzY0YmRlOTVhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtOTcsNyArOTcsNyBAQCBU
cmVlUmVzb2x2ZXI6OlNjb3BlOjp+U2NvcGUoKQogCiBUcmVlUmVzb2x2ZXI6OlBhcmVudDo6UGFy
ZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IGVsZW1lbnQobnVsbHB0cikKLSAgICAsIHN0
eWxlKCpkb2N1bWVudC5yZW5kZXJTdHlsZSgpKQorICAgICwgc3R5bGUoKmRvY3VtZW50LmluaXRp
YWxDb250YWluaW5nQmxvY2tTdHlsZSgpKQogewogfQogCkBAIC0xNDEsOCArMTQxLDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBUcmVlUmVzb2x2ZXI6OnN0eWxlRm9yU3R5bGVhYmxl
KGNvbnN0IFN0eWxlYWJsZSYgc3QKIAogICAgIGlmIChyZXNvbHV0aW9uVHlwZSA9PSBSZXNvbHV0
aW9uVHlwZTo6RmFzdFBhdGhJbmhlcml0KSB7CiAgICAgICAgIC8vIElmIHRoZSBvbmx5IHJlYXNv
biB3ZSBhcmUgY29tcHV0aW5nIHRoZSBzdHlsZSBpcyB0aGF0IHNvbWUgcGFyZW50IGluaGVyaXRl
ZCBwcm9wZXJ0aWVzIGNoYW5nZWQsIHdlIGNhbiBqdXN0IGNvcHkgdGhlbS4KLSAgICAgICAgYXV0
byYgZXhpc3RpbmdTdHlsZSA9ICplbGVtZW50LnJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUo
KTsKLSAgICAgICAgYXV0byBzdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cihleGlzdGluZ1N0
eWxlKTsKKyAgICAgICAgYXV0byBzdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cigqZXhpc3Rp
bmdTdHlsZShlbGVtZW50KSk7CiAgICAgICAgIHN0eWxlLT5mYXN0UGF0aEluaGVyaXRGcm9tKHBh
cmVudCgpLnN0eWxlKTsKICAgICAgICAgcmV0dXJuIHN0eWxlOwogICAgIH0KQEAgLTIxMCw3ICsy
MDksNyBAQCBhdXRvIFRyZWVSZXNvbHZlcjo6Y29tcHV0ZURlc2NlbmRhbnRzVG9SZXNvbHZlKENo
YW5nZSBjaGFuZ2UsIFZhbGlkaXR5IHZhbGlkaXR5LAogICAgIHJldHVybiBEZXNjZW5kYW50c1Rv
UmVzb2x2ZTo6Tm9uZTsKIH07CiAKLWF1dG8gVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudChF
bGVtZW50JiBlbGVtZW50LCBSZXNvbHV0aW9uVHlwZSByZXNvbHV0aW9uVHlwZSkgLT4gc3RkOjpw
YWlyPEVsZW1lbnRVcGRhdGUsIERlc2NlbmRhbnRzVG9SZXNvbHZlPgorYXV0byBUcmVlUmVzb2x2
ZXI6OnJlc29sdmVFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlclN0eWxlKiBl
eGlzdGluZ1N0eWxlLCBSZXNvbHV0aW9uVHlwZSByZXNvbHV0aW9uVHlwZSkgLT4gc3RkOjpwYWly
PEVsZW1lbnRVcGRhdGUsIERlc2NlbmRhbnRzVG9SZXNvbHZlPgogewogICAgIGlmIChtX2RpZFNl
ZVBlbmRpbmdTdHlsZXNoZWV0ICYmICFlbGVtZW50LnJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5
bGUoKSAmJiAhbV9kb2N1bWVudC5pc0lnbm9yaW5nUGVuZGluZ1N0eWxlc2hlZXRzKCkpIHsKICAg
ICAgICAgbV9kb2N1bWVudC5zZXRIYXNOb2Rlc1dpdGhNaXNzaW5nU3R5bGUoKTsKQEAgLTIyOCw4
ICsyMjcsNiBAQCBhdXRvIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxl
bWVudCwgUmVzb2x1dGlvblR5cGUgcmVzb2x1dGlvblR5cAogICAgIGlmICghYWZmZWN0c1JlbmRl
cmVkU3VidHJlZShlbGVtZW50LCAqbmV3U3R5bGUpKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgYXV0byogZXhpc3RpbmdTdHlsZSA9IGVsZW1lbnQucmVuZGVyT3JEaXNwbGF5Q29udGVudHNT
dHlsZSgpOwotCiAgICAgaWYgKG1fZGlkU2VlUGVuZGluZ1N0eWxlc2hlZXQgJiYgKCFleGlzdGlu
Z1N0eWxlIHx8IGV4aXN0aW5nU3R5bGUtPmlzTm90RmluYWwoKSkpIHsKICAgICAgICAgbmV3U3R5
bGUtPnNldElzTm90RmluYWwoKTsKICAgICAgICAgbV9kb2N1bWVudC5zZXRIYXNOb2Rlc1dpdGhO
b25GaW5hbFN0eWxlKCk7CkBAIC0yMzksOCArMjM2LDYgQEAgYXV0byBUcmVlUmVzb2x2ZXI6OnJl
c29sdmVFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIFJlc29sdXRpb25UeXBlIHJlc29sdXRpb25U
eXAKICAgICBhdXRvIGRlc2NlbmRhbnRzVG9SZXNvbHZlID0gY29tcHV0ZURlc2NlbmRhbnRzVG9S
ZXNvbHZlKHVwZGF0ZS5jaGFuZ2UsIGVsZW1lbnQuc3R5bGVWYWxpZGl0eSgpLCBwYXJlbnQoKS5k
ZXNjZW5kYW50c1RvUmVzb2x2ZSk7CiAKICAgICBpZiAoJmVsZW1lbnQgPT0gbV9kb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQoKSkgewotICAgICAgICBtX2RvY3VtZW50RWxlbWVudFN0eWxlID0gUmVu
ZGVyU3R5bGU6OmNsb25lUHRyKCp1cGRhdGUuc3R5bGUpOwotCiAgICAgICAgIGlmICghZXhpc3Rp
bmdTdHlsZSB8fCBleGlzdGluZ1N0eWxlLT5jb21wdXRlZEZvbnRQaXhlbFNpemUoKSAhPSB1cGRh
dGUuc3R5bGUtPmNvbXB1dGVkRm9udFBpeGVsU2l6ZSgpKSB7CiAgICAgICAgICAgICAvLyAicmVt
IiB1bml0cyBhcmUgcmVsYXRpdmUgdG8gdGhlIGRvY3VtZW50IGVsZW1lbnQncyBmb250IHNpemUg
c28gd2UgbmVlZCB0byByZWNvbXB1dGUgZXZlcnl0aGluZy4KICAgICAgICAgICAgIHNjb3BlKCku
cmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVkRGVjbGFyYXRpb25zQ2FjaGUoKTsKQEAgLTY4OCw3
ICs2ODMsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXNvbHZlUHNldWRvRWxlbWVudChjb25zdCBQ
c2V1ZG9FbGVtZW50KiBwc2V1ZG9FbGVtZW50KQogICAgIHJldHVybiBwc2V1ZG9FbGVtZW50LT5u
ZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKLWF1dG8gVHJlZVJlc29sdmVyOjpkZXRlcm1pbmVSZXNv
bHV0aW9uVHlwZShjb25zdCBFbGVtZW50JiBlbGVtZW50LCBEZXNjZW5kYW50c1RvUmVzb2x2ZSBw
YXJlbnREZXNjZW5kYW50c1RvUmVzb2x2ZSwgQ2hhbmdlIHBhcmVudENoYW5nZSkgLT4gc3RkOjpv
cHRpb25hbDxSZXNvbHV0aW9uVHlwZT4KK2F1dG8gVHJlZVJlc29sdmVyOjpkZXRlcm1pbmVSZXNv
bHV0aW9uVHlwZShjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSogZXhp
c3RpbmdTdHlsZSwgRGVzY2VuZGFudHNUb1Jlc29sdmUgcGFyZW50RGVzY2VuZGFudHNUb1Jlc29s
dmUsIENoYW5nZSBwYXJlbnRDaGFuZ2UpIC0+IHN0ZDo6b3B0aW9uYWw8UmVzb2x1dGlvblR5cGU+
CiB7CiAgICAgaWYgKGVsZW1lbnQuc3R5bGVWYWxpZGl0eSgpICE9IFZhbGlkaXR5OjpWYWxpZCkK
ICAgICAgICAgcmV0dXJuIFJlc29sdXRpb25UeXBlOjpGdWxsOwpAQCAtNzAyLDcgKzY5Nyw2IEBA
IGF1dG8gVHJlZVJlc29sdmVyOjpkZXRlcm1pbmVSZXNvbHV0aW9uVHlwZShjb25zdCBFbGVtZW50
JiBlbGVtZW50LCBEZXNjZW5kYW50c1RvCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgY2FzZSBE
ZXNjZW5kYW50c1RvUmVzb2x2ZTo6Q2hpbGRyZW46CiAgICAgICAgIGlmIChwYXJlbnRDaGFuZ2Ug
PT0gQ2hhbmdlOjpGYXN0UGF0aEluaGVyaXRlZCkgewotICAgICAgICAgICAgYXV0byogZXhpc3Rp
bmdTdHlsZSA9IGVsZW1lbnQucmVuZGVyT3JEaXNwbGF5Q29udGVudHNTdHlsZSgpOwogICAgICAg
ICAgICAgaWYgKGV4aXN0aW5nU3R5bGUgJiYgIWV4aXN0aW5nU3R5bGUtPmRpc2FsbG93c0Zhc3RQ
YXRoSW5oZXJpdGFuY2UoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvblR5cGU6
OkZhc3RQYXRoSW5oZXJpdDsKICAgICAgICAgfQpAQCAtNzEwLDcgKzcwNCw2IEBAIGF1dG8gVHJl
ZVJlc29sdmVyOjpkZXRlcm1pbmVSZXNvbHV0aW9uVHlwZShjb25zdCBFbGVtZW50JiBlbGVtZW50
LCBEZXNjZW5kYW50c1RvCiAgICAgY2FzZSBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6QWxsOgogICAg
ICAgICByZXR1cm4gUmVzb2x1dGlvblR5cGU6OkZ1bGw7CiAgICAgY2FzZSBEZXNjZW5kYW50c1Rv
UmVzb2x2ZTo6Q2hpbGRyZW5XaXRoRXhwbGljaXRJbmhlcml0OgotICAgICAgICBhdXRvKiBleGlz
dGluZ1N0eWxlID0gZWxlbWVudC5yZW5kZXJPckRpc3BsYXlDb250ZW50c1N0eWxlKCk7CiAgICAg
ICAgIGlmIChleGlzdGluZ1N0eWxlICYmIGV4aXN0aW5nU3R5bGUtPmhhc0V4cGxpY2l0bHlJbmhl
cml0ZWRQcm9wZXJ0aWVzKCkpCiAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvblR5cGU6OkZ1
bGw7CiAgICAgICAgIHJldHVybiB7IH07CkBAIC04MTUsMTIgKzgwOCwxMyBAQCB2b2lkIFRyZWVS
ZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSgpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCi0gICAgICAgIGF1dG8qIHN0eWxlID0gZWxlbWVudC5yZW5kZXJPckRpc3BsYXlD
b250ZW50c1N0eWxlKCk7CisgICAgICAgIGF1dG8qIHN0eWxlID0gZXhpc3RpbmdTdHlsZShlbGVt
ZW50KTsKKwogICAgICAgICBhdXRvIGNoYW5nZSA9IENoYW5nZTo6Tm9uZTsKICAgICAgICAgYXV0
byBkZXNjZW5kYW50c1RvUmVzb2x2ZSA9IERlc2NlbmRhbnRzVG9SZXNvbHZlOjpOb25lOwogICAg
ICAgICBhdXRvIHByZXZpb3VzQ29udGFpbmVyVHlwZSA9IHN0eWxlID8gc3R5bGUtPmNvbnRhaW5l
clR5cGUoKSA6IENvbnRhaW5lclR5cGU6Ok5vcm1hbDsKIAotICAgICAgICBhdXRvIHJlc29sdXRp
b25UeXBlID0gZGV0ZXJtaW5lUmVzb2x1dGlvblR5cGUoZWxlbWVudCwgcGFyZW50LmRlc2NlbmRh
bnRzVG9SZXNvbHZlLCBwYXJlbnQuY2hhbmdlKTsKKyAgICAgICAgYXV0byByZXNvbHV0aW9uVHlw
ZSA9IGRldGVybWluZVJlc29sdXRpb25UeXBlKGVsZW1lbnQsIHN0eWxlLCBwYXJlbnQuZGVzY2Vu
ZGFudHNUb1Jlc29sdmUsIHBhcmVudC5jaGFuZ2UpOwogICAgICAgICBpZiAocmVzb2x1dGlvblR5
cGUpIHsKICAgICAgICAgICAgIGlmICghZWxlbWVudC5oYXNEaXNwbGF5Q29udGVudHMoKSkKICAg
ICAgICAgICAgICAgICBlbGVtZW50LnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwpAQCAtODI5LDcgKzgy
Myw3IEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKICAgICAgICAg
ICAgIGlmIChlbGVtZW50Lmhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpKQogICAgICAg
ICAgICAgICAgIGVsZW1lbnQud2lsbFJlY2FsY1N0eWxlKHBhcmVudC5jaGFuZ2UpOwogCi0gICAg
ICAgICAgICBhdXRvIFtlbGVtZW50VXBkYXRlLCBlbGVtZW50RGVzY2VuZGFudHNUb1Jlc29sdmVd
ID0gcmVzb2x2ZUVsZW1lbnQoZWxlbWVudCwgKnJlc29sdXRpb25UeXBlKTsKKyAgICAgICAgICAg
IGF1dG8gW2VsZW1lbnRVcGRhdGUsIGVsZW1lbnREZXNjZW5kYW50c1RvUmVzb2x2ZV0gPSByZXNv
bHZlRWxlbWVudChlbGVtZW50LCBzdHlsZSwgKnJlc29sdXRpb25UeXBlKTsKIAogICAgICAgICAg
ICAgaWYgKGVsZW1lbnQuaGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCkpCiAgICAgICAg
ICAgICAgICAgZWxlbWVudC5kaWRSZWNhbGNTdHlsZShlbGVtZW50VXBkYXRlLmNoYW5nZSk7CkBA
IC04MzgsOSArODMyLDEyIEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVl
KCkKICAgICAgICAgICAgIGNoYW5nZSA9IGVsZW1lbnRVcGRhdGUuY2hhbmdlOwogICAgICAgICAg
ICAgZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBlbGVtZW50RGVzY2VuZGFudHNUb1Jlc29sdmU7CiAK
LSAgICAgICAgICAgIGlmIChlbGVtZW50VXBkYXRlLnN0eWxlKQorICAgICAgICAgICAgaWYgKHN0
eWxlKSB7CiAgICAgICAgICAgICAgICAgbV91cGRhdGUtPmFkZEVsZW1lbnQoZWxlbWVudCwgcGFy
ZW50LmVsZW1lbnQsIFdURk1vdmUoZWxlbWVudFVwZGF0ZSkpOwogCisgICAgICAgICAgICAgICAg
aWYgKCZlbGVtZW50ID09IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpCisgICAgICAgICAg
ICAgICAgICAgIG1fZG9jdW1lbnRFbGVtZW50U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIo
KnN0eWxlKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNsZWFyTmVlZHNTdHlsZVJlc29s
dXRpb24oZWxlbWVudCk7CiAgICAgICAgIH0KIApAQCAtODgxLDYgKzg3OCwxOSBAQCB2b2lkIFRy
ZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSgpCiAgICAgcG9wUGFyZW50c1RvRGVwdGgo
MSk7CiB9CiAKK2NvbnN0IFJlbmRlclN0eWxlKiBUcmVlUmVzb2x2ZXI6OmV4aXN0aW5nU3R5bGUo
Y29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBhdXRvKiBzdHlsZSA9IGVsZW1lbnQucmVu
ZGVyT3JEaXNwbGF5Q29udGVudHNTdHlsZSgpOworCisgICAgaWYgKHN0eWxlICYmICZlbGVtZW50
ID09IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpIHsKKyAgICAgICAgLy8gRG9jdW1lbnQg
ZWxlbWVudCBzdHlsZSBtYXkgaGF2ZSBnb3QgYWRqdXN0ZWQgYmFzZWQgb24gYm9keSBzdHlsZSBi
dXQgd2UgZG9uJ3Qgd2FudCB0byBpbmhlcml0IHRob3NlIGFkanVzdG1lbnRzLgorICAgICAgICBt
X2RvY3VtZW50RWxlbWVudFN0eWxlID0gQWRqdXN0ZXI6OnJlc3RvcmVVc2VkRG9jdW1lbnRFbGVt
ZW50U3R5bGVUb0NvbXB1dGVkKCpzdHlsZSk7CisgICAgICAgIGlmIChtX2RvY3VtZW50RWxlbWVu
dFN0eWxlKQorICAgICAgICAgICAgc3R5bGUgPSBtX2RvY3VtZW50RWxlbWVudFN0eWxlLmdldCgp
OworICAgIH0KKworICAgIHJldHVybiBzdHlsZTsKK30KIAogYXV0byBUcmVlUmVzb2x2ZXI6OnVw
ZGF0ZVN0YXRlRm9yUXVlcnlDb250YWluZXIoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVy
U3R5bGUqIHN0eWxlLCBDb250YWluZXJUeXBlIHByZXZpb3VzQ29udGFpbmVyVHlwZSwgQ2hhbmdl
JiBjaGFuZ2UsIERlc2NlbmRhbnRzVG9SZXNvbHZlJiBkZXNjZW5kYW50c1RvUmVzb2x2ZSkgLT4g
UXVlcnlDb250YWluZXJBY3Rpb24KIHsKQEAgLTk0Nyw2ICs5NTcsOCBAQCBzdGQ6OnVuaXF1ZV9w
dHI8VXBkYXRlPiBUcmVlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgIGlmIChtX3VwZGF0ZS0+cm9v
dHMoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKKyAgICBBZGp1c3Rlcjo6cHJv
cGFnYXRlVG9Eb2N1bWVudEVsZW1lbnRBbmRJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCptX3VwZGF0
ZSwgbV9kb2N1bWVudCk7CisKICAgICByZXR1cm4gV1RGTW92ZShtX3VwZGF0ZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCmluZGV4IGNlZDRiYjZhZTMwNC4u
OTVhYmJhNDYzZmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVS
ZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgK
QEAgLTYzLDEyICs2MywxNCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXNvbHZlQ29tcG9zZWRU
cmVlKCk7CiAKKyAgICBjb25zdCBSZW5kZXJTdHlsZSogZXhpc3RpbmdTdHlsZShjb25zdCBFbGVt
ZW50Jik7CisKICAgICBlbnVtIGNsYXNzIFF1ZXJ5Q29udGFpbmVyQWN0aW9uIDogdWludDhfdCB7
IE5vbmUsIFJlc29sdmUsIENvbnRpbnVlIH07CiAgICAgZW51bSBjbGFzcyBEZXNjZW5kYW50c1Rv
UmVzb2x2ZSA6IHVpbnQ4X3QgeyBOb25lLCBDaGlsZHJlbldpdGhFeHBsaWNpdEluaGVyaXQsIENo
aWxkcmVuLCBBbGwgfTsKIAogICAgIFF1ZXJ5Q29udGFpbmVyQWN0aW9uIHVwZGF0ZVN0YXRlRm9y
UXVlcnlDb250YWluZXIoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlKiwgQ29udGFpbmVyVHlw
ZSBwcmV2aW91c0NvbnRhaW5lclR5cGUsIENoYW5nZSYsIERlc2NlbmRhbnRzVG9SZXNvbHZlJik7
CiAKLSAgICBzdGQ6OnBhaXI8RWxlbWVudFVwZGF0ZSwgRGVzY2VuZGFudHNUb1Jlc29sdmU+IHJl
c29sdmVFbGVtZW50KEVsZW1lbnQmLCBSZXNvbHV0aW9uVHlwZSk7CisgICAgc3RkOjpwYWlyPEVs
ZW1lbnRVcGRhdGUsIERlc2NlbmRhbnRzVG9SZXNvbHZlPiByZXNvbHZlRWxlbWVudChFbGVtZW50
JiwgY29uc3QgUmVuZGVyU3R5bGUqIGV4aXN0aW5nU3R5bGUsIFJlc29sdXRpb25UeXBlKTsKIAog
ICAgIEVsZW1lbnRVcGRhdGUgY3JlYXRlQW5pbWF0ZWRFbGVtZW50VXBkYXRlKHN0ZDo6dW5pcXVl
X3B0cjxSZW5kZXJTdHlsZT4sIGNvbnN0IFN0eWxlYWJsZSYsIENoYW5nZSwgY29uc3QgUmVzb2x1
dGlvbkNvbnRleHQmKTsKICAgICBzdGQ6Om9wdGlvbmFsPEVsZW1lbnRVcGRhdGU+IHJlc29sdmVQ
c2V1ZG9FbGVtZW50KEVsZW1lbnQmLCBQc2V1ZG9JZCwgY29uc3QgRWxlbWVudFVwZGF0ZSYpOwpA
QCAtMTE0LDcgKzExNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3BQYXJlbnRzVG9EZXB0aCh1
bnNpZ25lZCBkZXB0aCk7CiAKICAgICBzdGF0aWMgRGVzY2VuZGFudHNUb1Jlc29sdmUgY29tcHV0
ZURlc2NlbmRhbnRzVG9SZXNvbHZlKENoYW5nZSwgVmFsaWRpdHksIERlc2NlbmRhbnRzVG9SZXNv
bHZlKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXNvbHV0aW9uVHlwZT4gZGV0ZXJtaW5l
UmVzb2x1dGlvblR5cGUoY29uc3QgRWxlbWVudCYsIERlc2NlbmRhbnRzVG9SZXNvbHZlLCBDaGFu
Z2UgcGFyZW50Q2hhbmdlKTsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXNvbHV0aW9uVHlw
ZT4gZGV0ZXJtaW5lUmVzb2x1dGlvblR5cGUoY29uc3QgRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0
eWxlKiwgRGVzY2VuZGFudHNUb1Jlc29sdmUsIENoYW5nZSBwYXJlbnRDaGFuZ2UpOwogICAgIHN0
YXRpYyB2b2lkIHJlc2V0RGVzY2VuZGFudFN0eWxlUmVsYXRpb25zKEVsZW1lbnQmLCBEZXNjZW5k
YW50c1RvUmVzb2x2ZSk7CiAKICAgICBSZXNvbHV0aW9uQ29udGV4dCBtYWtlUmVzb2x1dGlvbkNv
bnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCmluZGV4IGJiMzFkNDdlZDEzZC4u
ZjU2MDQ4YWI0ZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKQEAgLTY2LDYgKzY2
LDggQEAgcHVibGljOgogCiAgICAgY29uc3QgVGV4dFVwZGF0ZSogdGV4dFVwZGF0ZShjb25zdCBU
ZXh0JikgY29uc3Q7CiAKKyAgICBjb25zdCBSZW5kZXJTdHlsZSogaW5pdGlhbENvbnRhaW5pbmdC
bG9ja1VwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbENvbnRhaW5pbmdCbG9ja1VwZGF0
ZS5nZXQoKTsgfQorCiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIGVsZW1lbnRTdHlsZShjb25zdCBF
bGVtZW50JikgY29uc3Q7CiAgICAgUmVuZGVyU3R5bGUqIGVsZW1lbnRTdHlsZShjb25zdCBFbGVt
ZW50Jik7CiAKQEAgLTc4LDYgKzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkVGV4dChUZXh0
JiwgRWxlbWVudCogcGFyZW50LCBUZXh0VXBkYXRlJiYpOwogICAgIHZvaWQgYWRkVGV4dChUZXh0
JiwgVGV4dFVwZGF0ZSYmKTsKICAgICB2b2lkIGFkZFNWR1JlbmRlcmVyVXBkYXRlKFNWR0VsZW1l
bnQmKTsKKyAgICB2b2lkIGFkZEluaXRpYWxDb250YWluaW5nQmxvY2tVcGRhdGUoc3RkOjp1bmlx
dWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZSkgeyBtX2luaXRpYWxDb250YWluaW5nQmxvY2tVcGRh
dGUgPSBXVEZNb3ZlKHN0eWxlKTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgYWRkUG9zc2libGVS
b290KEVsZW1lbnQqKTsKQEAgLTg2LDYgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBMaXN0SGFzaFNl
dDxSZWZQdHI8Q29udGFpbmVyTm9kZT4+IG1fcm9vdHM7CiAgICAgSGFzaE1hcDxSZWZQdHI8Y29u
c3QgRWxlbWVudD4sIEVsZW1lbnRVcGRhdGU+IG1fZWxlbWVudHM7CiAgICAgSGFzaE1hcDxSZWZQ
dHI8Y29uc3QgVGV4dD4sIFRleHRVcGRhdGU+IG1fdGV4dHM7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFJlbmRlclN0eWxlPiBtX2luaXRpYWxDb250YWluaW5nQmxvY2tVcGRhdGU7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAwNjZiMTRlNjdmZmMuLjJjZjM3MDlhZWJkOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC00NTU1LDggKzQ1NTUsNiBAQCB3ZWJraXQub3JnL2IvMjE0MjkxIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3NybC1hbAog
d2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtd3JpdGluZy1tb2Rlcy90Y3ktd2hpdGUtc3BhY2UtcHJvY2Vzc2luZy0wMDEuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy90ZXh0LW9yaWVudGF0aW9uLWluaXRp
YWwuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdh
dGlvbi0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIxNDI5MSBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1w
cm9wYWdhdGlvbi1ib2R5LTAzMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvMjE0MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5n
LW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktMDMzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi8yMTQyOTEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXdyaXRpbmctbW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS0wMzQuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LTAzNS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjE0MjkxIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJv
ZHktMDM2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KQEAgLTYwNDgsNCArNjA0Niw0IEBAIGZ1
bGxzY3JlZW4vZnVsbHNjcmVlbi1lbnRlci1ib3R0b20tcGFkZGluZy1hbmltYXRpb24uaHRtbCBb
IFNraXAgXQogaHR0cC90ZXN0cy9sb2FkaW5nL29hdXRoLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9n
SW5TdGRFcnIgXQogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlk
ZW8td2l0aC1odHRwcy11cmwtYWxsb3dlZC1ieS1jc3AtbWVkaWEtc3JjLXN0YXIuaHRtbCBbIER1
bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2NsaXBib2FyZC1hcGlzL2ZlYXR1cmUtcG9saWN5L2NsaXBib2FyZC13cml0ZS9jbGlwYm9hcmQt
d3JpdGUtZGlzYWJsZWQtYnktZmVhdHVyZS1wb2xpY3kudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1s
IFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS91cmxzL3Rlcm1pbm9sb2d5LTAvZG9jdW1lbnQtYmFz
ZS11cmwtaW5pdGlhdGVkLWdyYW5kLXBhcmVudC5odHRwcy53aW5kb3cuaHRtbCBbIER1bXBKU0Nv
bnNvbGVMb2dJblN0ZEVyciBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3VybHMvdGVybWlub2xv
Z3ktMC9kb2N1bWVudC1iYXNlLXVybC1pbml0aWF0ZWQtZ3JhbmQtcGFyZW50Lmh0dHBzLndpbmRv
dy5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5LWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjNlODYzM2E3NDE4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGlu
Zy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxIEBACitUaGlzIHNob3VsZCBiZSBo
b3Jpem9udGFsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3Jp
dGluZy1tb2RlLWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRp
bmctbW9kZS1ib2R5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
Li42ZWUxZDU2NTdhZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRp
bmctbW9kZS93cml0aW5nLW1vZGUtYm9keS5odG1sCkBAIC0wLDAgKzEsNyBAQAorPHA+VGhpcyBz
aG91bGQgYmUgaG9yaXpvbnRhbC48L3A+Cis8c2NyaXB0PgorY29uc3QgdGFyZ2V0ID0gZG9jdW1l
bnQuYm9keTsKK3RhcmdldC5zdHlsZS53cml0aW5nTW9kZSA9ICd2ZXJ0aWNhbC1ybCc7Cit0YXJn
ZXQub2Zmc2V0TGVmdDsKK3RhcmdldC5zdHlsZS53cml0aW5nTW9kZSA9ICcnOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUt
ZG9jdW1lbnQtZWxlbWVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5n
LW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIzZTg2MzNhNzQxOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1
bWVudC1lbGVtZW50LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSBAQAorVGhpcyBzaG91bGQgYmUg
aG9yaXpvbnRhbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dy
aXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRp
bmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGI0ZjE4NzBjMDlmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVs
ZW1lbnQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxwPlRoaXMgc2hvdWxkIGJlIGhvcml6b250YWwu
PC9wPgorPHNjcmlwdD4KK2NvbnN0IHRhcmdldCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsK
K3RhcmdldC5zdHlsZS53cml0aW5nTW9kZSA9ICd2ZXJ0aWNhbC1ybCc7Cit0YXJnZXQub2Zmc2V0
TGVmdDsKK3RhcmdldC5zdHlsZS53cml0aW5nTW9kZSA9ICcnOworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
d3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXdyaXRpbmctbW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVk
LnR4dAppbmRleCA3NTBlMmI5MDk2YTYuLjQ5NWE4NDBjMmJhZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9k
ZXMvd20tcHJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGlu
Zy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhwZWN0ZWQudHh0CkBA
IC0xLDUgKzEsNSBAQAogCiBQQVNTIENoZWNrIGNvbXB1dGVkIHdyaXRpbmctbW9kZSBmb3IgYm9k
eSBlbGVtZW50LgotRkFJTCBDaGVjayBjb21wdXRlZCB3cml0aW5nLW1vZGUgZm9yIGh0bWwgcm9v
dCBlbGVtZW50LiBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgInZlcnRp
Y2FsLWxyIgotRkFJTCBDaGVjayBjb21wdXRlZCB3cml0aW5nLW1vZGUgZm9yIGJvZHkgZWxlbWVu
dCB3aGVuIHN0eWxlIG5vIGxvbmdlciBhcHBsaWVzLiBhc3NlcnRfbm90X2VxdWFsczogZ290IGRp
c2FsbG93ZWQgdmFsdWUgInZlcnRpY2FsLWxyIgorUEFTUyBDaGVjayBjb21wdXRlZCB3cml0aW5n
LW1vZGUgZm9yIGh0bWwgcm9vdCBlbGVtZW50LgorUEFTUyBDaGVjayBjb21wdXRlZCB3cml0aW5n
LW1vZGUgZm9yIGJvZHkgZWxlbWVudCB3aGVuIHN0eWxlIG5vIGxvbmdlciBhcHBsaWVzLgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463420</attachid>
            <date>2022-11-05 02:30:33 -0700</date>
            <delta_ts>2022-11-05 03:59:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185729-20221105113031.patch</filename>
            <type>text/plain</type>
            <size>41596</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSA1NzYyOThmNDhkMDQ4N2FmNDIxODE5Mzk1ZDkxMDFhZjc5YWQ1NmE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBGcmksIDQgTm92IDIwMjIgMTM6MDA6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBUaGUgZWZm
ZWN0IG9mIHdyaXRpbmctbW9kZSBwcm9wZXJ0eSByZW1haW5zIGFmdGVyIHRoZQogcHJvcGVydHkg
aXMgcmVtb3ZlZCAob24gdGhlIHJvb3QgZWxlbWVudCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU3MjkgcmRhcjovLzk3MDkxOTkwCgpSZXZpZXdlZCBieSBBbGFu
IEJhcmFkbGF5LgoKVGhlcmUgaXMgYSBzdHlsZSBjeWNsZSB3aGVyZSB0aGUgcm9vdCB3cml0aW5n
LW1vZGUgbWF5IGRlcGVuZCBvbiB0aGUgZG9jdW1lbnQgZWxlbWVudCB3cml0aW5nLW1vZGUgd2hp
Y2gKaW4gdHVybiBtYXkgZGVwZW5kIG9uIHRoZSBib2R5J3MgKGNvbXB1dGVkIGR1cmluZyBwcmV2
aW91cyBzdHlsZSB1cGRhdGUpLiBUaGVzZSBjYW4gdGhlbiBnZXQgaW5oZXJpdGVkIGJhY2sKdG8g
dGhlIGJvZHkgc3R5bGUuIFRoZSByZXN1bHRpbmcgY29uZnVzaW9uIGNhdXNlcyB2YXJpb3VzIGlz
c3Vlcy4KClRoaXMgcGF0Y2ggZW5zdXJlcyB3ZSBkbyBzdHlsZSByZXNvbHV0aW9uIHVzaW5nIGNs
ZWFuIHJvb3Qgc3R5bGVzIHdpdGhvdXQgd3JpdGluZy1tb2RlL2RpcmVjdGlvbiBtdXRhdGlvbnMu
ClRoZSBwcm9wYWdhdGlvbiB1cHdhcmRzIGlzIGRvbmUgYXQgdGhlIGVuZCBvZiB0aGUgcmVzb2x1
dGlvbi4gVGhpcyByZXBsYWNlcyB0aGUgb2xkIHByb3BhZ2F0aW9uIGNvZGUgaW4KcmVuZGVyIHRy
ZWUuCgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvZmFzdC93
cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbDogQWRkZWQuCiogTGF5
b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbDogQWRkZWQu
CiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVs
ZW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1v
ZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMv
d20tcHJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVkLnR4dDoKKiBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc29sdmVTdHls
ZSk6CiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CihXZWJDb3JlOjpEb2N1bWVudDo6
cm9vdFN0eWxlIGNvbnN0KToKCk1haW50YWluIGNsZWFuIHJvb3Qgc3R5bGUuCgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94OjpzdHls
ZURpZENoYW5nZSk6CgpSZW1vdmUgc3R5bGUgbXV0YXRpbmcgcHJvcGFnYXRpb24gY29kZS4KCiog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgoKSGFuZGxlIHZpZXcgaW52
YWxpZGF0aW9uIGZvciB3cml0aW5nLW1vZGUvZGlyZWN0aW9uLiBUaGlzIGlzIG1vdmVkIGZyb20g
UmVuZGVyQm94OjpzdHlsZURpZENoYW5nZS4KCihXZWJDb3JlOjpSZW5kZXJWaWV3OjpzdHlsZURp
ZENoYW5nZSk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OmNvbW1pdCk6CgpVcGRhdGUgdGhlIHZpZXcgc3R5bGUg
Zmlyc3QuCgooV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVJlbmRlclZpZXdTdHls
ZSk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
Lmg6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CihXZWJDb3JlOjpT
dHlsZTo6QWRqdXN0ZXI6OnByb3BhZ2F0ZVRvRG9jdW1lbnRFbGVtZW50QW5kSW5pdGlhbENvbnRh
aW5pbmdCbG9jayk6CgpEbyB0aGUgcHJvcGFnYXRpb24gYXQgZW5kIG9mIHRoZSBzdHlsZSByZXNv
bHV0aW9uLgoKKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6cmVzdG9yZVVzZWREb2N1bWVudEVs
ZW1lbnRTdHlsZVRvQ29tcHV0ZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHA6
CihXZWJDb3JlOjpTdHlsZTo6cmVzb2x2ZUZvckRvY3VtZW50KToKClJlbW92ZSB0aGUgYWRqdXN0
bWVudHMgYmFzZWQgb24gZGVzY2VuZGFudCBzdHlsZXMuIFRoaXMgd2FzIG5vdCBjb3JyZWN0IGFz
IHRoZXNlIHZhbHVlcyBhcmUgZnJvbSB0aGUgcHJldmlvdXMgcm91bmQgb2Ygc3R5bGUgcmVzb2x1
dGlvbi4KCiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHA6CihXZWJDb3Jl
OjpTdHlsZTo6UmVzb2x2ZXI6OlN0YXRlOjpTdGF0ZSk6CihXZWJDb3JlOjpTdHlsZTo6UmVzb2x2
ZXI6OlJlc29sdmVyKToKKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKToK
KiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CihXZWJDb3JlOjpT
dHlsZTo6VHJlZVJlc29sdmVyOjpQYXJlbnQ6OlBhcmVudCk6CihXZWJDb3JlOjpTdHlsZTo6VHJl
ZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudCk6CihXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVy
OjpyZXNvbHZlQ29tcG9zZWRUcmVlKToKClNhdmUgYW5kIGNsZWFuIHVwIGRvY3VtZW50IGVsZW1l
bnQgc3R5bGUgd2hlbiB0cmF2ZXJzaW5nIHRocm91Z2guCgooV2ViQ29yZTo6U3R5bGU6OlRyZWVS
ZXNvbHZlcjo6cmVzb2x2ZSk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaDoK
KFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmluaXRpYWxDb250YWluaW5nQmxvY2tVcGRhdGUgY29u
c3QpOgooV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6YWRkSW5pdGlhbENvbnRhaW5pbmdCbG9ja1Vw
ZGF0ZSk6CgpQYXNzIHRoZSBuZXcgcm9vdCBzdHlsZSB2aWEgc3R5bGUgdXBkYXRlLgotLS0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9Db21wdXRlZFN0eWxlRXh0cmFjdG9yLmNwcCB8IDIwICsrKystCiBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCAxNyArKy0tLQog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgIHwgIDIgKwogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgIHwgNTEgLS0tLS0tLS0t
LS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwICAgICAgIHwgMjIg
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oICAgICAgICAgfCAg
MiArCiAuLi4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCAgfCAgOCAr
KwogLi4uL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oICAgIHwgIDEgKwog
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgICAgICAgIHwgNzUgKysrKysr
KysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oICAgICAg
ICAgIHwgIDIgKwogLi4uL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3Bw
IHwgMjAgKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwICAgICAg
ICB8IDEwICstLQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwICAg
IHwgNDIgKysrKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmggICAgICB8ICA2ICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oICAgICAg
ICAgICAgfCAgNCArCiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zICAgICAgICAgICAgICAg
ICAgfCAgNCArLQogLi4uL3dyaXRpbmctbW9kZS1ib2R5LWV4cGVjdGVkLmh0bWwgICAgICAgICAg
IHwgIDEgKwogLi4uL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5Lmh0bWwgIHwg
IDcgKysKIC4uLnJpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbCB8ICAx
ICsKIC4uLi93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sICAgICAgICB8ICA3ICsr
CiAuLi5yb3BhZ2F0aW9uLWJvZHktY29tcHV0ZWQtcm9vdC1leHBlY3RlZC50eHQgfCAgNCArLQog
MjEgZmlsZXMgY2hhbmdlZCwgMTk2IGluc2VydGlvbnMoKyksIDExMCBkZWxldGlvbnMoLSkKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1v
ZGUtYm9keS1leHBlY3RlZC5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVt
ZW50LWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L3dy
aXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVFeHRyYWN0b3IuY3BwCmluZGV4IGM4OTdjYjgyZDVj
My4uZGRhNTQzMzdiOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29tcHV0ZWRT
dHlsZUV4dHJhY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbXB1dGVkU3R5bGVF
eHRyYWN0b3IuY3BwCkBAIC0zMTE4LDggKzMxMTgsMTQgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21w
dXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJT
dHkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Q3Vyc29yVmlzaWJpbGl0eToKICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5jdXJzb3JWaXNpYmlsaXR5KCkp
OwogI2VuZGlmCi0gICAgY2FzZSBDU1NQcm9wZXJ0eURpcmVjdGlvbjoKLSAgICAgICAgcmV0dXJu
IGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShzdHlsZS5kaXJlY3Rpb24oKSk7CisgICAgY2FzZSBD
U1NQcm9wZXJ0eURpcmVjdGlvbjogIHsKKyAgICAgICAgYXV0byBkaXJlY3Rpb24gPSBbJl0gewor
ICAgICAgICAgICAgaWYgKG1fZWxlbWVudCA9PSBtX2VsZW1lbnQtPmRvY3VtZW50KCkuZG9jdW1l
bnRFbGVtZW50KCkgJiYgIXN0eWxlLmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6OmluaXRpYWxEaXJlY3Rpb24oKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdHlsZS5kaXJlY3Rpb24oKTsKKyAgICAgICAgfSgpOworICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKGRpcmVjdGlvbik7CisgICAgfQogICAgIGNh
c2UgQ1NTUHJvcGVydHlEaXNwbGF5OgogICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0
ZVZhbHVlKHN0eWxlLmRpc3BsYXkoKSk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUVtcHR5Q2VsbHM6
CkBAIC0zODYyLDggKzM4NjgsMTQgQEAgUmVmUHRyPENTU1ZhbHVlPiBDb21wdXRlZFN0eWxlRXh0
cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShjb25zdCBSZW5kZXJTdHkKICAgICAgICAg
cmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoc3R5bGUubGluZVNuYXAoKSk7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExpbmVBbGlnbjoKICAgICAgICAgcmV0dXJuIENTU1ByaW1p
dGl2ZVZhbHVlOjpjcmVhdGUoc3R5bGUubGluZUFsaWduKCkpOwotICAgIGNhc2UgQ1NTUHJvcGVy
dHlXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbC5jcmVhdGVWYWx1ZShz
dHlsZS53cml0aW5nTW9kZSgpKTsKKyAgICBjYXNlIENTU1Byb3BlcnR5V3JpdGluZ01vZGU6IHsK
KyAgICAgICAgYXV0byB3cml0aW5nTW9kZSA9IFsmXSB7CisgICAgICAgICAgICBpZiAobV9lbGVt
ZW50ID09IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSAmJiAhc3R5bGUu
aGFzRXhwbGljaXRseVNldFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFJl
bmRlclN0eWxlOjppbml0aWFsV3JpdGluZ01vZGUoKTsKKyAgICAgICAgICAgIHJldHVybiBzdHls
ZS53cml0aW5nTW9kZSgpOworICAgICAgICB9KCk7CisgICAgICAgIHJldHVybiBjc3NWYWx1ZVBv
b2wuY3JlYXRlVmFsdWUod3JpdGluZ01vZGUpOworICAgIH0KICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0VGV4dENvbWJpbmU6CiAgICAgICAgIGlmIChzdHlsZS50ZXh0Q29tYmluZSgpID09IFRl
eHRDb21iaW5lOjpBbGwpCiAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZUlkZW50aWZpZXIoQ1NTVmFsdWVIb3Jpem9udGFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IDQyZjFhM2U0ZTVjZS4uYWMzY2NiMmNlYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTIwOTUsMTYgKzIwOTUsMTQgQEAgdm9pZCBEb2N1bWVudDo6cmVzb2x2ZVN0eWxlKFJl
c29sdmVTdHlsZVR5cGUgdHlwZSkKICAgICAgICAgICAgIG1faGFzTm9kZXNXaXRoTm9uRmluYWxT
dHlsZSA9IGZhbHNlOwogICAgICAgICAgICAgbV9oYXNOb2Rlc1dpdGhNaXNzaW5nU3R5bGUgPSBm
YWxzZTsKIAotICAgICAgICAgICAgYXV0byBkb2N1bWVudFN0eWxlID0gU3R5bGU6OnJlc29sdmVG
b3JEb2N1bWVudCgqdGhpcyk7CisgICAgICAgICAgICBhdXRvIG5ld1N0eWxlID0gU3R5bGU6OnJl
c29sdmVGb3JEb2N1bWVudCgqdGhpcyk7CiAKLSAgICAgICAgICAgIC8vIEluc2VydGluZyB0aGUg
cGljdG9ncmFwaCBmb250IGF0IHRoZSBlbmQgb2YgdGhlIGZvbnQgZmFsbGJhY2sgbGlzdCBpcyBk
b25lIGJ5IHRoZQotICAgICAgICAgICAgLy8gZm9udCBzZWxlY3Rvciwgc28gc2V0IGEgZm9udCBz
ZWxlY3RvciBpZiBuZWVkZWQuCi0gICAgICAgICAgICBpZiAoc2V0dGluZ3MoKS5mb250RmFsbGJh
Y2tQcmVmZXJzUGljdG9ncmFwaHMoKSkKLSAgICAgICAgICAgICAgICBkb2N1bWVudFN0eWxlLmZv
bnRDYXNjYWRlKCkudXBkYXRlKCZmb250U2VsZWN0b3IoKSk7Ci0KLSAgICAgICAgICAgIGF1dG8g
ZG9jdW1lbnRDaGFuZ2UgPSBTdHlsZTo6ZGV0ZXJtaW5lQ2hhbmdlKGRvY3VtZW50U3R5bGUsIG1f
cmVuZGVyVmlldy0+c3R5bGUoKSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnRDaGFuZ2UgIT0g
U3R5bGU6OkNoYW5nZTo6Tm9uZSkKLSAgICAgICAgICAgICAgICByZW5kZXJWaWV3KCktPnNldFN0
eWxlKFdURk1vdmUoZG9jdW1lbnRTdHlsZSkpOworICAgICAgICAgICAgYXV0byBkb2N1bWVudENo
YW5nZSA9IG1faW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxlID8gU3R5bGU6OmRldGVybWluZUNo
YW5nZShuZXdTdHlsZSwgKm1faW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxlKSA6IFN0eWxlOjpD
aGFuZ2U6OlJlbmRlcmVyOworICAgICAgICAgICAgaWYgKGRvY3VtZW50Q2hhbmdlICE9IFN0eWxl
OjpDaGFuZ2U6Ok5vbmUpIHsKKyAgICAgICAgICAgICAgICBtX2luaXRpYWxDb250YWluaW5nQmxv
Y2tTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cihuZXdTdHlsZSk7CisgICAgICAgICAgICAg
ICAgLy8gVGhlIHVzZWQgc3R5bGUgbWF5IGVuZCB1cCBkaWZmZXJpbmcgZnJvbSB0aGUgY29tcHV0
ZWQgc3R5bGUgZHVlIHRvIHByb3BhZ2F0aW9uIG9mIHByb3BlcnRpZXMgZnJvbSBlbGVtZW50cy4K
KyAgICAgICAgICAgICAgICByZW5kZXJWaWV3KCktPnNldFN0eWxlKFdURk1vdmUobmV3U3R5bGUp
KTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKFJlZlB0ciBkb2N1bWVudEVsZW1l
bnQgPSB0aGlzLT5kb2N1bWVudEVsZW1lbnQoKSkKICAgICAgICAgICAgICAgICBkb2N1bWVudEVs
ZW1lbnQtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKQEAgLTI2MjcsNiArMjYyNSw3IEBA
IHZvaWQgRG9jdW1lbnQ6OmRlc3Ryb3lSZW5kZXJUcmVlKCkKICAgICAgICAgdmlldygpLT53aWxs
RGVzdHJveVJlbmRlclRyZWUoKTsKIAogICAgIG1fcGVuZGluZ1JlbmRlclRyZWVVcGRhdGUgPSB7
IH07CisgICAgbV9pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUgPSB7IH07CiAKICAgICBpZiAo
bV9kb2N1bWVudEVsZW1lbnQpCiAgICAgICAgIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJl
bmRlcmVycygqbV9kb2N1bWVudEVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkMTg2
YTJjMWRkZDMuLjNhN2ZlYzZkN2Y1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTY2Nyw2ICs2
NjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdXNwZW5kRm9udExvYWRpbmcoKTsKIAogICAgIFJl
bmRlclZpZXcqIHJlbmRlclZpZXcoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclZpZXcuZ2V0KCk7
IH0KKyAgICBjb25zdCBSZW5kZXJTdHlsZSogaW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxlKCkg
Y29uc3QgeyByZXR1cm4gbV9pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUuZ2V0KCk7IH0gLy8g
VGhpcyBtYXkgZW5kIHVwIGRpZmZlcmluZyBmcm9tIHJlbmRlclZpZXcoKS0+c3R5bGUoKSBkdWUg
dG8gYWRqdXN0bWVudHMuCiAKICAgICBib29sIHJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkOyB9CiAgICAgYm9vbCBoYXNM
aXZpbmdSZW5kZXJUcmVlKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyVmlldygpICYmICFyZW5kZXJU
cmVlQmVpbmdEZXN0cm95ZWQoKTsgfQpAQCAtMjAwNyw2ICsyMDA4LDcgQEAgcHJpdmF0ZToKICAg
ICBEb2N1bWVudENsYXNzZXMgbV9kb2N1bWVudENsYXNzZXM7CiAKICAgICBSZW5kZXJQdHI8UmVu
ZGVyVmlldz4gbV9yZW5kZXJWaWV3OworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4g
bV9pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGU7CiAKICAgICBXZWFrSGFzaFNldDxNZWRpYUNh
blN0YXJ0TGlzdGVuZXI+IG1fbWVkaWFDYW5TdGFydExpc3RlbmVyczsKICAgICBXZWFrSGFzaFNl
dDxEaXNwbGF5Q2hhbmdlZE9ic2VydmVyPiBtX2Rpc3BsYXlDaGFuZ2VkT2JzZXJ2ZXJzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBmMTJmOWNmMzkwN2EuLmIzNTMw
Y2ZlMTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTM1Niw0
NSArMzU2LDYgQEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5j
ZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICBib29sIGlzRG9jRWxlbWVu
dFJlbmRlcmVyID0gaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpOwogCiAgICAgaWYgKGlzRG9j
RWxlbWVudFJlbmRlcmVyIHx8IGlzQm9keVJlbmRlcmVyKSB7Ci0gICAgICAgIGF1dG8qIGRvY3Vt
ZW50RWxlbWVudFJlbmRlcmVyID0gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVy
ZXIoKTsKLSAgICAgICAgYXV0byYgdmlld1N0eWxlID0gdmlldygpLm11dGFibGVTdHlsZSgpOwot
ICAgICAgICBib29sIHJvb3RTdHlsZUNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAgYm9vbCB2aWV3
RGlyZWN0aW9uT3JXcml0aW5nTW9kZUNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAgYXV0byogcm9v
dFJlbmRlcmVyID0gaXNCb2R5UmVuZGVyZXIgPyBkb2N1bWVudEVsZW1lbnRSZW5kZXJlciA6IG51
bGxwdHI7Ci0KLSAgICAgICAgYXV0byBwcm9wYWdhdGVXcml0aW5nTW9kZVRvUmVuZGVyVmlld0lm
QXBwbGljYWJsZSA9IFsmXSB7Ci0gICAgICAgICAgICAvLyBQcm9wYWdhdGUgdGhlIG5ldyB3cml0
aW5nIG1vZGUgYW5kIGRpcmVjdGlvbiB1cCB0byB0aGUgUmVuZGVyVmlldy4KLSAgICAgICAgICAg
IGlmICghZG9jdW1lbnRFbGVtZW50UmVuZGVyZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgaWYgKCFpc0JvZHlSZW5kZXJlciB8fCAhKHNob3VsZEFwcGx5QW55Q29udGFp
bm1lbnQoKSB8fCBkb2N1bWVudEVsZW1lbnRSZW5kZXJlci0+c2hvdWxkQXBwbHlBbnlDb250YWlu
bWVudCgpKSkgewotICAgICAgICAgICAgICAgIGlmICh2aWV3U3R5bGUuZGlyZWN0aW9uKCkgIT0g
bmV3U3R5bGUuZGlyZWN0aW9uKCkgJiYgKGlzRG9jRWxlbWVudFJlbmRlcmVyIHx8ICFkb2N1bWVu
dEVsZW1lbnRSZW5kZXJlci0+c3R5bGUoKS5oYXNFeHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHZpZXdTdHlsZS5zZXREaXJlY3Rpb24obmV3U3R5bGUuZGly
ZWN0aW9uKCkpOwotICAgICAgICAgICAgICAgICAgICB2aWV3RGlyZWN0aW9uT3JXcml0aW5nTW9k
ZUNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBpZiAoaXNCb2R5UmVuZGVyZXIp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZW5kZXJlci0+bXV0YWJsZVN0eWxlKCku
c2V0RGlyZWN0aW9uKG5ld1N0eWxlLmRpcmVjdGlvbigpKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJvb3RTdHlsZUNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwotCi0g
ICAgICAgICAgICAgICAgICAgIHZpZXcoKS5mcmFtZVZpZXcoKS50b3BDb250ZW50RGlyZWN0aW9u
RGlkQ2hhbmdlKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKHZp
ZXdTdHlsZS53cml0aW5nTW9kZSgpICE9IG5ld1N0eWxlLndyaXRpbmdNb2RlKCkgJiYgKGlzRG9j
RWxlbWVudFJlbmRlcmVyIHx8ICFkb2N1bWVudEVsZW1lbnRSZW5kZXJlci0+c3R5bGUoKS5oYXNF
eHBsaWNpdGx5U2V0V3JpdGluZ01vZGUoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgdmlld1N0
eWxlLnNldFdyaXRpbmdNb2RlKG5ld1N0eWxlLndyaXRpbmdNb2RlKCkpOwotICAgICAgICAgICAg
ICAgICAgICB2aWV3RGlyZWN0aW9uT3JXcml0aW5nTW9kZUNoYW5nZWQgPSB0cnVlOwotICAgICAg
ICAgICAgICAgICAgICB2aWV3KCkuc2V0SG9yaXpvbnRhbFdyaXRpbmdNb2RlKG5ld1N0eWxlLmlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpOwotICAgICAgICAgICAgICAgICAgICB2aWV3KCkubWFy
a0FsbERlc2NlbmRhbnRzV2l0aEZsb2F0c0ZvckxheW91dCgpOwotICAgICAgICAgICAgICAgICAg
ICBpZiAoaXNCb2R5UmVuZGVyZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RTdHls
ZUNoYW5nZWQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFJlbmRlcmVyLT5t
dXRhYmxlU3R5bGUoKS5zZXRXcml0aW5nTW9kZShuZXdTdHlsZS53cml0aW5nTW9kZSgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJvb3RSZW5kZXJlci0+c2V0SG9yaXpvbnRhbFdyaXRpbmdN
b2RlKG5ld1N0eWxlLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpOwotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1Jl
Y2FsYygpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAg
ICAgICAgcHJvcGFnYXRlV3JpdGluZ01vZGVUb1JlbmRlclZpZXdJZkFwcGxpY2FibGUoKTsKLQog
I2lmIEVOQUJMRShEQVJLX01PREVfQ1NTKQogICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCkucmVj
YWxjdWxhdGVCYXNlQmFja2dyb3VuZENvbG9yKCk7CiAjZW5kaWYKQEAgLTQwMiwxOCArMzYzLDYg
QEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnJl
Y2FsY3VsYXRlU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCk7CiAgICAgICAgIAogICAgICAgICBjb25z
dCBQYWdpbmF0aW9uJiBwYWdpbmF0aW9uID0gdmlldygpLmZyYW1lVmlldygpLnBhZ2luYXRpb24o
KTsKLSAgICAgICAgaWYgKHZpZXdEaXJlY3Rpb25PcldyaXRpbmdNb2RlQ2hhbmdlZCAmJiBwYWdp
bmF0aW9uLm1vZGUgIT0gUGFnaW5hdGlvbjo6VW5wYWdpbmF0ZWQpIHsKLSAgICAgICAgICAgIHZp
ZXdTdHlsZS5zZXRDb2x1bW5TdHlsZXNGcm9tUGFnaW5hdGlvbk1vZGUocGFnaW5hdGlvbi5tb2Rl
KTsKLSAgICAgICAgICAgIGlmICh2aWV3KCkubXVsdGlDb2x1bW5GbG93KCkpCi0gICAgICAgICAg
ICAgICAgdmlldygpLnVwZGF0ZUNvbHVtblByb2dyZXNzaW9uRnJvbVN0eWxlKHZpZXdTdHlsZSk7
Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmICh2aWV3RGlyZWN0aW9uT3JXcml0aW5n
TW9kZUNoYW5nZWQgJiYgdmlldygpLm11bHRpQ29sdW1uRmxvdygpKQotICAgICAgICAgICAgdmll
dygpLnVwZGF0ZVN0eWxlc0ZvckNvbHVtbkNoaWxkcmVuKCk7Ci0gICAgICAgIAotICAgICAgICBp
ZiAocm9vdFN0eWxlQ2hhbmdlZCAmJiBpczxSZW5kZXJCbG9ja0Zsb3c+KHJvb3RSZW5kZXJlcikg
JiYgZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93Pigqcm9vdFJlbmRlcmVyKS5tdWx0aUNvbHVtbkZs
b3coKSkKLSAgICAgICAgICAgIGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oKnJvb3RSZW5kZXJl
cikudXBkYXRlU3R5bGVzRm9yQ29sdW1uQ2hpbGRyZW4oKTsKLSAgICAgICAgCiAgICAgICAgIGlm
IChpc0JvZHlSZW5kZXJlciAmJiBwYWdpbmF0aW9uLm1vZGUgIT0gUGFnaW5hdGlvbjo6VW5wYWdp
bmF0ZWQgJiYgcGFnZSgpLnBhZ2luYXRpb25MaW5lR3JpZEVuYWJsZWQoKSkgewogICAgICAgICAg
ICAgLy8gUHJvcGFnYXRlIHRoZSBib2R5IGZvbnQgYmFjayB1cCB0byB0aGUgUmVuZGVyVmlldyBh
bmQgdXNlIGl0IGFzCiAgICAgICAgICAgICAvLyB0aGUgYmFzaXMgb2YgdGhlIGdyaWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggMmJlM2FhZTdhNjdhLi45MGUz
OWM3MzAwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTk0
LDYgKzk0LDI4IEBAIFJlbmRlclZpZXc6On5SZW5kZXJWaWV3KCkKICAgICBBU1NFUlRfV0lUSF9N
RVNTQUdFKG1fcmVuZGVyZXJDb3VudCA9PSAxLCAiQWxsIG90aGVyIHJlbmRlcmVycyBpbiB0aGlz
IHJlbmRlciB0cmVlIHNob3VsZCBoYXZlIGJlZW4gZGVzdHJveWVkIik7CiB9CiAKK3ZvaWQgUmVu
ZGVyVmlldzo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBSZW5kZXJCbG9ja0Zsb3c6OnN0eWxlRGlkQ2hhbmdl
KGRpZmYsIG9sZFN0eWxlKTsKKworICAgIGJvb2wgd3JpdGluZ01vZGVDaGFuZ2VkID0gb2xkU3R5
bGUgJiYgc3R5bGUoKS53cml0aW5nTW9kZSgpICE9IG9sZFN0eWxlLT53cml0aW5nTW9kZSgpOwor
ICAgIGJvb2wgZGlyZWN0aW9uQ2hhbmdlZCA9IG9sZFN0eWxlICYmIHN0eWxlKCkuZGlyZWN0aW9u
KCkgIT0gb2xkU3R5bGUtPmRpcmVjdGlvbigpOworCisgICAgaWYgKHdyaXRpbmdNb2RlQ2hhbmdl
ZCB8fCBkaXJlY3Rpb25DaGFuZ2VkKSB7CisgICAgICAgIGF1dG8mIHBhZ2luYXRpb24gPSBmcmFt
ZVZpZXcoKS5wYWdpbmF0aW9uKCk7CisgICAgICAgIGlmIChwYWdpbmF0aW9uLm1vZGUgIT0gUGFn
aW5hdGlvbjo6VW5wYWdpbmF0ZWQpIHsKKyAgICAgICAgICAgIG11dGFibGVTdHlsZSgpLnNldENv
bHVtblN0eWxlc0Zyb21QYWdpbmF0aW9uTW9kZShwYWdpbmF0aW9uLm1vZGUpOworICAgICAgICAg
ICAgaWYgKG11bHRpQ29sdW1uRmxvdygpKQorICAgICAgICAgICAgICAgIHVwZGF0ZUNvbHVtblBy
b2dyZXNzaW9uRnJvbVN0eWxlKHN0eWxlKCkpOworICAgICAgICB9CisgICAgICAgIGlmIChtdWx0
aUNvbHVtbkZsb3coKSkKKyAgICAgICAgICAgIHVwZGF0ZVN0eWxlc0ZvckNvbHVtbkNoaWxkcmVu
KCk7CisgICAgfQorCisgICAgaWYgKGRpcmVjdGlvbkNoYW5nZWQpCisgICAgICAgIGZyYW1lVmll
dygpLnRvcENvbnRlbnREaXJlY3Rpb25EaWRDaGFuZ2UoKTsKK30KKwogdm9pZCBSZW5kZXJWaWV3
OjpzY2hlZHVsZUxhenlSZXBhaW50KFJlbmRlckJveCYgcmVuZGVyZXIpCiB7CiAgICAgaWYgKHJl
bmRlcmVyLnJlbmRlckJveE5lZWRzTGF6eVJlcGFpbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oCmluZGV4IDdhZDExMTQyYTJhZi4uNmRmMzNiYWNhYTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTIxNCw2ICsyMTQsOCBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgV2Vha0hhc2hTZXQ8Y29uc3QgUmVuZGVyQm94PiYgY29udGFpbmVyUXVlcnlCb3hl
cygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbmVyUXVlcnlCb3hlczsgfQogCiBwcml2YXRlOgor
ICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpIG92ZXJyaWRlOworCiAgICAgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgT3B0aW9uU2V0PE1hcENvb3JkaW5hdGVzTW9kZT4sIGJvb2wqIHdhc0ZpeGVkKSBjb25z
dCBvdmVycmlkZTsKICAgICBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVy
R2VvbWV0cnlNYXAmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIG1hcEFic29sdXRlVG9Mb2Nh
bFBvaW50KE9wdGlvblNldDxNYXBDb29yZGluYXRlc01vZGU+LCBUcmFuc2Zvcm1TdGF0ZSYpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0
aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRh
dGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKaW5kZXggYjQ4NjE0YjI3NDkyLi5iZWEyMWMzNzcx
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVVcGRhdGVyLmNwcApAQCAtMTA1LDYgKzEwNSw4IEBAIHZvaWQgUmVuZGVyVHJlZVVw
ZGF0ZXI6OmNvbW1pdChzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgU3R5bGU6OlVwZGF0ZT4gc3R5bGVV
cGRhdGUpCiAKICAgICBtX3N0eWxlVXBkYXRlID0gV1RGTW92ZShzdHlsZVVwZGF0ZSk7CiAKKyAg
ICB1cGRhdGVSZW5kZXJWaWV3U3R5bGUoKTsKKwogICAgIGZvciAoYXV0byYgcm9vdCA6IG1fc3R5
bGVVcGRhdGUtPnJvb3RzKCkpIHsKICAgICAgICAgYXV0byogcmVuZGVyaW5nUm9vdCA9IGZpbmRS
ZW5kZXJpbmdSb290KCpyb290KTsKICAgICAgICAgaWYgKCFyZW5kZXJpbmdSb290KQpAQCAtNTE2
LDYgKzUxOCwxMiBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpzdG9yZVByZXZpb3VzUmVuZGVy
ZXIoTm9kZSYgbm9kZSkKICAgICByZW5kZXJpbmdQYXJlbnQoKS5wcmV2aW91c0NoaWxkUmVuZGVy
ZXIgPSByZW5kZXJlcjsKIH0KIAordm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVy
Vmlld1N0eWxlKCkKK3sKKyAgICBpZiAobV9zdHlsZVVwZGF0ZS0+aW5pdGlhbENvbnRhaW5pbmdC
bG9ja1VwZGF0ZSgpKQorICAgICAgICBtX2RvY3VtZW50LnJlbmRlclZpZXcoKS0+c2V0U3R5bGUo
UmVuZGVyU3R5bGU6OmNsb25lKCptX3N0eWxlVXBkYXRlLT5pbml0aWFsQ29udGFpbmluZ0Jsb2Nr
VXBkYXRlKCkpKTsKK30KKwogdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dGVhckRvd25SZW5kZXJl
cnMoRWxlbWVudCYgcm9vdCkKIHsKICAgICBhdXRvKiB2aWV3ID0gcm9vdC5kb2N1bWVudCgpLnJl
bmRlclZpZXcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGlu
Zy9SZW5kZXJUcmVlVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVVcGRhdGVyLmgKaW5kZXggYWJjYzlmMGVjMmRmLi5iNTgyNGMzMGQ4NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
VXBkYXRlci5oCkBAIC02MSw2ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVFbGVt
ZW50UmVuZGVyZXIoRWxlbWVudCYsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRlJik7CiAgICAg
dm9pZCB1cGRhdGVTVkdSZW5kZXJlcihFbGVtZW50Jik7CiAgICAgdm9pZCB1cGRhdGVSZW5kZXJl
clN0eWxlKFJlbmRlckVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBTdHlsZURpZmZlcmVuY2UpOwor
ICAgIHZvaWQgdXBkYXRlUmVuZGVyVmlld1N0eWxlKCk7CiAgICAgdm9pZCBjcmVhdGVSZW5kZXJl
cihFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CiAgICAgdm9pZCB1cGRhdGVCZWZvcmVEZXNjZW5k
YW50cyhFbGVtZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUqKTsKICAgICB2b2lkIHVw
ZGF0ZUFmdGVyRGVzY2VuZGFudHMoRWxlbWVudCYsIGNvbnN0IFN0eWxlOjpFbGVtZW50VXBkYXRl
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCmluZGV4IDE3NTIyMzJlNTA4
MS4uNTY0OWI0YzY4MDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFk
anVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnROYW1lLmgiCiAjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUTUxCb2R5RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxEaWFsb2dFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERp
dkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCkBAIC01Myw2ICs1NCw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJTVkdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHR3JhcGhpY3NFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKQEAgLTYwLDYgKzYyLDcgQEAKICNpbmNsdWRlICJTVkdVUklSZWZlcmVu
Y2UuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNp
bmNsdWRlICJTdHlsZVVwZGF0ZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJXZWJB
bmltYXRpb25UeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNoU2V0Lmg+CkBAIC03
NzAsNiArNzczLDc4IEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdEZvclNpdGVTcGVjaWZpY1F1aXJr
cyhSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiAjZW5kaWYKIH0KIAordm9pZCBBZGp1c3Rlcjo6
cHJvcGFnYXRlVG9Eb2N1bWVudEVsZW1lbnRBbmRJbml0aWFsQ29udGFpbmluZ0Jsb2NrKFVwZGF0
ZSYgdXBkYXRlLCBjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgYXV0byogYm9keSA9
IGRvY3VtZW50LmJvZHkoKTsKKyAgICBhdXRvKiBib2R5U3R5bGUgPSBib2R5ID8gdXBkYXRlLmVs
ZW1lbnRTdHlsZSgqYm9keSkgOiBudWxscHRyOworICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudFN0
eWxlID0gdXBkYXRlLmVsZW1lbnRTdHlsZSgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpOwor
CisgICAgaWYgKCFkb2N1bWVudEVsZW1lbnRTdHlsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb250YWluLTIvI2NvbnRhaW4tcHJvcGVy
dHkKKyAgICAvLyAiQWRkaXRpb25hbGx5LCB3aGVuIGFueSBjb250YWlubWVudHMgYXJlIGFjdGl2
ZSBvbiBlaXRoZXIgdGhlIEhUTUwgaHRtbCBvciBib2R5IGVsZW1lbnRzLCBwcm9wYWdhdGlvbiBv
ZgorICAgIC8vIHByb3BlcnRpZXMgZnJvbSB0aGUgYm9keSBlbGVtZW50IHRvIHRoZSBpbml0aWFs
IGNvbnRhaW5pbmcgYmxvY2ssIHRoZSB2aWV3cG9ydCwgb3IgdGhlIGNhbnZhcyBiYWNrZ3JvdW5k
LCBpcyBkaXNhYmxlZC4iCisgICAgYXV0byBzaG91bGRQcm9wYWdhdGVGcm9tQm9keSA9IFsmXSB7
CisgICAgICAgIGlmIChib2R5U3R5bGUgJiYgIWJvZHlTdHlsZS0+ZWZmZWN0aXZlQ29udGFpbm1l
bnQoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVy
biBkb2N1bWVudEVsZW1lbnRTdHlsZS0+ZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5pc0VtcHR5KCk7
CisgICAgfSgpOworCisgICAgYXV0byB3cml0aW5nTW9kZSA9IFsmXSB7CisgICAgICAgIC8vIEZJ
WE1FOiBUaGUgc3BlYyBzYXlzIGJvZHkgc2hvdWxkIHdpbi4KKyAgICAgICAgaWYgKGRvY3VtZW50
RWxlbWVudFN0eWxlLT5oYXNFeHBsaWNpdGx5U2V0V3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAg
IHJldHVybiBkb2N1bWVudEVsZW1lbnRTdHlsZS0+d3JpdGluZ01vZGUoKTsKKyAgICAgICAgaWYg
KHNob3VsZFByb3BhZ2F0ZUZyb21Cb2R5ICYmIGJvZHlTdHlsZSAmJiBib2R5U3R5bGUtPmhhc0V4
cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIGJvZHlTdHlsZS0+
d3JpdGluZ01vZGUoKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlclN0eWxlOjppbml0aWFsV3JpdGlu
Z01vZGUoKTsKKyAgICB9KCk7CisKKyAgICBhdXRvIGRpcmVjdGlvbiA9IFsmXSB7CisgICAgICAg
IGlmIChkb2N1bWVudEVsZW1lbnRTdHlsZS0+aGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKQor
ICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50RWxlbWVudFN0eWxlLT5kaXJlY3Rpb24oKTsKKyAg
ICAgICAgaWYgKHNob3VsZFByb3BhZ2F0ZUZyb21Cb2R5ICYmIGJvZHlTdHlsZSAmJiBib2R5U3R5
bGUtPmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBib2R5
U3R5bGUtPmRpcmVjdGlvbigpOworICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6OmluaXRpYWxE
aXJlY3Rpb24oKTsKKyAgICB9KCk7CisKKyAgICAvLyBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcv
Y3NzLXdyaXRpbmctbW9kZXMtMy8jaWNiCisgICAgYXV0byYgdmlld1N0eWxlID0gZG9jdW1lbnQu
cmVuZGVyVmlldygpLT5zdHlsZSgpOworICAgIGlmICh3cml0aW5nTW9kZSAhPSB2aWV3U3R5bGUu
d3JpdGluZ01vZGUoKSB8fCBkaXJlY3Rpb24gIT0gdmlld1N0eWxlLmRpcmVjdGlvbigpKSB7Cisg
ICAgICAgIGF1dG8gbmV3Um9vdFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKHZpZXdTdHls
ZSk7CisgICAgICAgIG5ld1Jvb3RTdHlsZS0+c2V0V3JpdGluZ01vZGUod3JpdGluZ01vZGUpOwor
ICAgICAgICBuZXdSb290U3R5bGUtPnNldERpcmVjdGlvbihkaXJlY3Rpb24pOworICAgICAgICB1
cGRhdGUuYWRkSW5pdGlhbENvbnRhaW5pbmdCbG9ja1VwZGF0ZShXVEZNb3ZlKG5ld1Jvb3RTdHls
ZSkpOworICAgIH0KKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtd3JpdGlu
Zy1tb2Rlcy0zLyNwcmluY2lwYWwtZmxvdworICAgIGlmICh3cml0aW5nTW9kZSAhPSBkb2N1bWVu
dEVsZW1lbnRTdHlsZS0+d3JpdGluZ01vZGUoKSB8fCBkaXJlY3Rpb24gIT0gZG9jdW1lbnRFbGVt
ZW50U3R5bGUtPmRpcmVjdGlvbigpKSB7CisgICAgICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudFVw
ZGF0ZSA9IHVwZGF0ZS5lbGVtZW50VXBkYXRlKCpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSk7
CisgICAgICAgIGlmICghZG9jdW1lbnRFbGVtZW50VXBkYXRlKSB7CisgICAgICAgICAgICB1cGRh
dGUuYWRkRWxlbWVudCgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCksIG51bGxwdHIsIHsgUmVu
ZGVyU3R5bGU6OmNsb25lUHRyKCpkb2N1bWVudEVsZW1lbnRTdHlsZSkgfSk7CisgICAgICAgICAg
ICBkb2N1bWVudEVsZW1lbnRVcGRhdGUgPSB1cGRhdGUuZWxlbWVudFVwZGF0ZSgqZG9jdW1lbnQu
ZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnRFbGVtZW50
VXBkYXRlLT5zdHlsZS0+c2V0V3JpdGluZ01vZGUod3JpdGluZ01vZGUpOworICAgICAgICBkb2N1
bWVudEVsZW1lbnRVcGRhdGUtPnN0eWxlLT5zZXREaXJlY3Rpb24oZGlyZWN0aW9uKTsKKyAgICAg
ICAgZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5jaGFuZ2UgPSBkZXRlcm1pbmVDaGFuZ2UoKmRvY3Vt
ZW50RWxlbWVudFN0eWxlLCAqZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5zdHlsZSk7CisgICAgfQor
fQorCitzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IEFkanVzdGVyOjpyZXN0b3JlVXNlZERv
Y3VtZW50RWxlbWVudFN0eWxlVG9Db21wdXRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCit7
CisgICAgaWYgKHN0eWxlLndyaXRpbmdNb2RlKCkgPT0gUmVuZGVyU3R5bGU6OmluaXRpYWxXcml0
aW5nTW9kZSgpICYmIHN0eWxlLmRpcmVjdGlvbigpID09IFJlbmRlclN0eWxlOjppbml0aWFsRGly
ZWN0aW9uKCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvIGFkanVzdGVkID0gUmVu
ZGVyU3R5bGU6OmNsb25lUHRyKHN0eWxlKTsKKyAgICBpZiAoIXN0eWxlLmhhc0V4cGxpY2l0bHlT
ZXRXcml0aW5nTW9kZSgpKQorICAgICAgICBhZGp1c3RlZC0+c2V0V3JpdGluZ01vZGUoUmVuZGVy
U3R5bGU6OmluaXRpYWxXcml0aW5nTW9kZSgpKTsKKyAgICBpZiAoIXN0eWxlLmhhc0V4cGxpY2l0
bHlTZXREaXJlY3Rpb24oKSkKKyAgICAgICAgYWRqdXN0ZWQtPnNldERpcmVjdGlvbihSZW5kZXJT
dHlsZTo6aW5pdGlhbERpcmVjdGlvbigpKTsKKworICAgIHJldHVybiBhZGp1c3RlZDsKK30KKwog
I2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiBzdGF0aWMgYm9vbCBoYXNUZXh0Q2hpbGQoY29u
c3QgRWxlbWVudCYgZWxlbWVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQWRqdXN0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaApp
bmRleCBkZThhODU4ZDk1ZmYuLmM2ZTdhZDAxNDk1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
QWRqdXN0ZXIuaApAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBh
ZGp1c3RTVkdFbGVtZW50U3R5bGUoUmVuZGVyU3R5bGUmLCBjb25zdCBTVkdFbGVtZW50Jik7CiAg
ICAgc3RhdGljIHZvaWQgYWRqdXN0RXZlbnRMaXN0ZW5lclJlZ2lvblR5cGVzRm9yUm9vdFN0eWxl
KFJlbmRlclN0eWxlJiwgY29uc3QgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgdm9pZCBwcm9wYWdh
dGVUb0RvY3VtZW50RWxlbWVudEFuZEluaXRpYWxDb250YWluaW5nQmxvY2soVXBkYXRlJiwgY29u
c3QgRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBy
ZXN0b3JlVXNlZERvY3VtZW50RWxlbWVudFN0eWxlVG9Db21wdXRlZChjb25zdCBSZW5kZXJTdHls
ZSYpOwogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBzdHJ1Y3QgQWRqdXN0bWVu
dEZvclRleHRBdXRvc2l6aW5nIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVz
b2x2ZUZvckRvY3VtZW50LmNwcAppbmRleCAxZWE1Y2FhZTgwNTkuLmE1NDNkYTNjNmJkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcApA
QCAtNzEsMjUgKzcxLDcgQEAgUmVuZGVyU3R5bGUgcmVzb2x2ZUZvckRvY3VtZW50KGNvbnN0IERv
Y3VtZW50JiBkb2N1bWVudCkKICNlbmRpZgogCiAgICAgQWRqdXN0ZXI6OmFkanVzdEV2ZW50TGlz
dGVuZXJSZWdpb25UeXBlc0ZvclJvb3RTdHlsZShkb2N1bWVudFN0eWxlLCBkb2N1bWVudCk7Ci0K
LSAgICBFbGVtZW50KiBkb2NFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCk7Ci0g
ICAgUmVuZGVyT2JqZWN0KiBkb2NFbGVtZW50UmVuZGVyZXIgPSBkb2NFbGVtZW50ID8gZG9jRWxl
bWVudC0+cmVuZGVyZXIoKSA6IG51bGxwdHI7Ci0gICAgaWYgKGRvY0VsZW1lbnRSZW5kZXJlcikg
ewotICAgICAgICAvLyBVc2UgdGhlIGRpcmVjdGlvbiBhbmQgd3JpdGluZy1tb2RlIG9mIHRoZSBi
b2R5IHRvIHNldCB0aGUKLSAgICAgICAgLy8gdmlld3BvcnQncyBkaXJlY3Rpb24gYW5kIHdyaXRp
bmctbW9kZSB1bmxlc3MgdGhlIHByb3BlcnR5IGlzIHNldCBvbiB0aGUgZG9jdW1lbnQgZWxlbWVu
dC4KLSAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gYm9keSwgdGhlbiB1c2UgdGhlIGRvY3VtZW50
IGVsZW1lbnQuCi0gICAgICAgIGF1dG8qIGJvZHkgPSBkb2N1bWVudC5ib2R5T3JGcmFtZXNldCgp
OwotICAgICAgICBSZW5kZXJPYmplY3QqIGJvZHlSZW5kZXJlciA9IGJvZHkgPyBib2R5LT5yZW5k
ZXJlcigpIDogbnVsbHB0cjsKLSAgICAgICAgaWYgKGJvZHlSZW5kZXJlciAmJiAhZG9jRWxlbWVu
dFJlbmRlcmVyLT5zdHlsZSgpLmhhc0V4cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKQotICAgICAg
ICAgICAgZG9jdW1lbnRTdHlsZS5zZXRXcml0aW5nTW9kZShib2R5UmVuZGVyZXItPnN0eWxlKCku
d3JpdGluZ01vZGUoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRvY3VtZW50U3R5bGUu
c2V0V3JpdGluZ01vZGUoZG9jRWxlbWVudFJlbmRlcmVyLT5zdHlsZSgpLndyaXRpbmdNb2RlKCkp
OwotICAgICAgICBpZiAoYm9keVJlbmRlcmVyICYmICFkb2NFbGVtZW50UmVuZGVyZXItPnN0eWxl
KCkuaGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKQotICAgICAgICAgICAgZG9jdW1lbnRTdHls
ZS5zZXREaXJlY3Rpb24oYm9keVJlbmRlcmVyLT5zdHlsZSgpLmRpcmVjdGlvbigpKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgZG9jdW1lbnRTdHlsZS5zZXREaXJlY3Rpb24oZG9jRWxlbWVu
dFJlbmRlcmVyLT5zdHlsZSgpLmRpcmVjdGlvbigpKTsKLSAgICB9Ci0KKyAgICAKICAgICBjb25z
dCBQYWdpbmF0aW9uJiBwYWdpbmF0aW9uID0gcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5wYWdpbmF0
aW9uKCk7CiAgICAgaWYgKHBhZ2luYXRpb24ubW9kZSAhPSBQYWdpbmF0aW9uOjpVbnBhZ2luYXRl
ZCkgewogICAgICAgICBkb2N1bWVudFN0eWxlLnNldENvbHVtblN0eWxlc0Zyb21QYWdpbmF0aW9u
TW9kZShwYWdpbmF0aW9uLm1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmNw
cAppbmRleCAyMzAzN2JiOTVhNzAuLmIyYWJiYTViZTQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlci5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGF1
dG8mIGRvY3VtZW50ID0gZWxlbWVudC5kb2N1bWVudCgpOwogICAgICAgICBhdXRvKiBkb2N1bWVu
dEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKTsKICAgICAgICAgaWYgKCFkb2N1
bWVudEVsZW1lbnQgfHwgZG9jdW1lbnRFbGVtZW50ID09ICZlbGVtZW50KQotICAgICAgICAgICAg
bV9yb290RWxlbWVudFN0eWxlID0gZG9jdW1lbnQucmVuZGVyU3R5bGUoKTsKKyAgICAgICAgICAg
IG1fcm9vdEVsZW1lbnRTdHlsZSA9IGRvY3VtZW50LmluaXRpYWxDb250YWluaW5nQmxvY2tTdHls
ZSgpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3Jvb3RFbGVtZW50U3R5bGUgPSBkb2N1
bWVudEVsZW1lbnRTdHlsZSA/IGRvY3VtZW50RWxlbWVudFN0eWxlIDogZG9jdW1lbnRFbGVtZW50
LT5yZW5kZXJTdHlsZSgpOwogICAgIH0KQEAgLTE1OSw3ICsxNTksNyBAQCBSZXNvbHZlcjo6UmVz
b2x2ZXIoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICBtX21lZGlhUXVlcnlFdmFsdWF0b3Ig
PSBMZWdhY3lNZWRpYVF1ZXJ5RXZhbHVhdG9yIHsgfTsKIAogICAgIGlmIChhdXRvKiBkb2N1bWVu
dEVsZW1lbnQgPSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpKSB7Ci0gICAgICAgIG1fcm9v
dERlZmF1bHRTdHlsZSA9IHN0eWxlRm9yRWxlbWVudCgqZG9jdW1lbnRFbGVtZW50LCB7IG1fZG9j
dW1lbnQucmVuZGVyU3R5bGUoKSB9LCBSdWxlTWF0Y2hpbmdCZWhhdmlvcjo6TWF0Y2hPbmx5VXNl
ckFnZW50UnVsZXMpLnJlbmRlclN0eWxlOworICAgICAgICBtX3Jvb3REZWZhdWx0U3R5bGUgPSBz
dHlsZUZvckVsZW1lbnQoKmRvY3VtZW50RWxlbWVudCwgeyBtX2RvY3VtZW50LmluaXRpYWxDb250
YWluaW5nQmxvY2tTdHlsZSgpIH0sIFJ1bGVNYXRjaGluZ0JlaGF2aW9yOjpNYXRjaE9ubHlVc2Vy
QWdlbnRSdWxlcykucmVuZGVyU3R5bGU7CiAgICAgICAgIC8vIFR1cm4gb2ZmIGFzc2VydGlvbiBh
Z2FpbnN0IGZvbnQgbG9va3VwcyBkdXJpbmcgc3R5bGUgcmVzb2x2ZXIgaW5pdGlhbGl6YXRpb24u
IFdlIG1heSBuZWVkIHJvb3Qgc3R5bGUgZm9udCBmb3IgbWVkaWEgcXVlcmllcy4KICAgICAgICAg
bV9kb2N1bWVudC5mb250U2VsZWN0b3IoKS5pbmNyZW1lbnRJc0NvbXB1dGluZ1Jvb3RTdHlsZUZv
bnQoKTsKICAgICAgICAgbV9yb290RGVmYXVsdFN0eWxlLT5mb250Q2FzY2FkZSgpLnVwZGF0ZSgm
bV9kb2N1bWVudC5mb250U2VsZWN0b3IoKSk7CkBAIC00NzgsMTUgKzQ3OCwxNSBAQCBzdGQ6OnVu
aXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFJlc29sdmVyOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQoY29u
c3QgRWxlbWVudCYgZWxlbQogc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBSZXNvbHZlcjo6
c3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpCiB7CiAgICAgYXV0byogZG9jdW1lbnRFbGVtZW50
ID0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKTsKLSAgICBpZiAoIWRvY3VtZW50RWxlbWVu
dCkKKyAgICBpZiAoIWRvY3VtZW50RWxlbWVudCB8fCAhZG9jdW1lbnRFbGVtZW50LT5yZW5kZXJT
dHlsZSgpKQogICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6OmNyZWF0ZVB0cigpOwogCi0gICAg
YXV0byBzdGF0ZSA9IFN0YXRlKCpkb2N1bWVudEVsZW1lbnQsIG1fZG9jdW1lbnQucmVuZGVyU3R5
bGUoKSk7CisgICAgYXV0byBzdGF0ZSA9IFN0YXRlKCpkb2N1bWVudEVsZW1lbnQsIG1fZG9jdW1l
bnQuaW5pdGlhbENvbnRhaW5pbmdCbG9ja1N0eWxlKCkpOwogCiAgICAgc3RhdGUuc2V0U3R5bGUo
UmVuZGVyU3R5bGU6OmNyZWF0ZVB0cigpKTsKICAgICBzdGF0ZS5zdHlsZSgpLT5pbmhlcml0RnJv
bSgqc3RhdGUucm9vdEVsZW1lbnRTdHlsZSgpKTsKIAotICAgIFBhZ2VSdWxlQ29sbGVjdG9yIGNv
bGxlY3RvcihtX3J1bGVTZXRzLCBzdGF0ZS5yb290RWxlbWVudFN0eWxlKCktPmRpcmVjdGlvbigp
KTsKKyAgICBQYWdlUnVsZUNvbGxlY3RvciBjb2xsZWN0b3IobV9ydWxlU2V0cywgZG9jdW1lbnRF
bGVtZW50LT5yZW5kZXJTdHlsZSgpLT5kaXJlY3Rpb24oKSk7CiAgICAgY29sbGVjdG9yLm1hdGNo
QWxsUGFnZVJ1bGVzKHBhZ2VJbmRleCk7CiAKICAgICBhdXRvJiByZXN1bHQgPSBjb2xsZWN0b3Iu
bWF0Y2hSZXN1bHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJl
ZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cAppbmRleCBmMzQ2ZmRmNWRlOWUuLjc2YzY0YmRlOTVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtOTcsNyArOTcsNyBAQCBUcmVlUmVzb2x2ZXI6
OlNjb3BlOjp+U2NvcGUoKQogCiBUcmVlUmVzb2x2ZXI6OlBhcmVudDo6UGFyZW50KERvY3VtZW50
JiBkb2N1bWVudCkKICAgICA6IGVsZW1lbnQobnVsbHB0cikKLSAgICAsIHN0eWxlKCpkb2N1bWVu
dC5yZW5kZXJTdHlsZSgpKQorICAgICwgc3R5bGUoKmRvY3VtZW50LmluaXRpYWxDb250YWluaW5n
QmxvY2tTdHlsZSgpKQogewogfQogCkBAIC0xNDEsOCArMTQxLDcgQEAgc3RkOjp1bmlxdWVfcHRy
PFJlbmRlclN0eWxlPiBUcmVlUmVzb2x2ZXI6OnN0eWxlRm9yU3R5bGVhYmxlKGNvbnN0IFN0eWxl
YWJsZSYgc3QKIAogICAgIGlmIChyZXNvbHV0aW9uVHlwZSA9PSBSZXNvbHV0aW9uVHlwZTo6RmFz
dFBhdGhJbmhlcml0KSB7CiAgICAgICAgIC8vIElmIHRoZSBvbmx5IHJlYXNvbiB3ZSBhcmUgY29t
cHV0aW5nIHRoZSBzdHlsZSBpcyB0aGF0IHNvbWUgcGFyZW50IGluaGVyaXRlZCBwcm9wZXJ0aWVz
IGNoYW5nZWQsIHdlIGNhbiBqdXN0IGNvcHkgdGhlbS4KLSAgICAgICAgYXV0byYgZXhpc3RpbmdT
dHlsZSA9ICplbGVtZW50LnJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUoKTsKLSAgICAgICAg
YXV0byBzdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cihleGlzdGluZ1N0eWxlKTsKKyAgICAg
ICAgYXV0byBzdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cigqZXhpc3RpbmdTdHlsZShlbGVt
ZW50KSk7CiAgICAgICAgIHN0eWxlLT5mYXN0UGF0aEluaGVyaXRGcm9tKHBhcmVudCgpLnN0eWxl
KTsKICAgICAgICAgcmV0dXJuIHN0eWxlOwogICAgIH0KQEAgLTIxMCw3ICsyMDksNyBAQCBhdXRv
IFRyZWVSZXNvbHZlcjo6Y29tcHV0ZURlc2NlbmRhbnRzVG9SZXNvbHZlKENoYW5nZSBjaGFuZ2Us
IFZhbGlkaXR5IHZhbGlkaXR5LAogICAgIHJldHVybiBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6Tm9u
ZTsKIH07CiAKLWF1dG8gVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudChFbGVtZW50JiBlbGVt
ZW50LCBSZXNvbHV0aW9uVHlwZSByZXNvbHV0aW9uVHlwZSkgLT4gc3RkOjpwYWlyPEVsZW1lbnRV
cGRhdGUsIERlc2NlbmRhbnRzVG9SZXNvbHZlPgorYXV0byBUcmVlUmVzb2x2ZXI6OnJlc29sdmVF
bGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlclN0eWxlKiBleGlzdGluZ1N0eWxl
LCBSZXNvbHV0aW9uVHlwZSByZXNvbHV0aW9uVHlwZSkgLT4gc3RkOjpwYWlyPEVsZW1lbnRVcGRh
dGUsIERlc2NlbmRhbnRzVG9SZXNvbHZlPgogewogICAgIGlmIChtX2RpZFNlZVBlbmRpbmdTdHls
ZXNoZWV0ICYmICFlbGVtZW50LnJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUoKSAmJiAhbV9k
b2N1bWVudC5pc0lnbm9yaW5nUGVuZGluZ1N0eWxlc2hlZXRzKCkpIHsKICAgICAgICAgbV9kb2N1
bWVudC5zZXRIYXNOb2Rlc1dpdGhNaXNzaW5nU3R5bGUoKTsKQEAgLTIyOCw4ICsyMjcsNiBAQCBh
dXRvIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgUmVzb2x1
dGlvblR5cGUgcmVzb2x1dGlvblR5cAogICAgIGlmICghYWZmZWN0c1JlbmRlcmVkU3VidHJlZShl
bGVtZW50LCAqbmV3U3R5bGUpKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgYXV0byogZXhp
c3RpbmdTdHlsZSA9IGVsZW1lbnQucmVuZGVyT3JEaXNwbGF5Q29udGVudHNTdHlsZSgpOwotCiAg
ICAgaWYgKG1fZGlkU2VlUGVuZGluZ1N0eWxlc2hlZXQgJiYgKCFleGlzdGluZ1N0eWxlIHx8IGV4
aXN0aW5nU3R5bGUtPmlzTm90RmluYWwoKSkpIHsKICAgICAgICAgbmV3U3R5bGUtPnNldElzTm90
RmluYWwoKTsKICAgICAgICAgbV9kb2N1bWVudC5zZXRIYXNOb2Rlc1dpdGhOb25GaW5hbFN0eWxl
KCk7CkBAIC0yMzksOCArMjM2LDYgQEAgYXV0byBUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50
KEVsZW1lbnQmIGVsZW1lbnQsIFJlc29sdXRpb25UeXBlIHJlc29sdXRpb25UeXAKICAgICBhdXRv
IGRlc2NlbmRhbnRzVG9SZXNvbHZlID0gY29tcHV0ZURlc2NlbmRhbnRzVG9SZXNvbHZlKHVwZGF0
ZS5jaGFuZ2UsIGVsZW1lbnQuc3R5bGVWYWxpZGl0eSgpLCBwYXJlbnQoKS5kZXNjZW5kYW50c1Rv
UmVzb2x2ZSk7CiAKICAgICBpZiAoJmVsZW1lbnQgPT0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQoKSkgewotICAgICAgICBtX2RvY3VtZW50RWxlbWVudFN0eWxlID0gUmVuZGVyU3R5bGU6OmNs
b25lUHRyKCp1cGRhdGUuc3R5bGUpOwotCiAgICAgICAgIGlmICghZXhpc3RpbmdTdHlsZSB8fCBl
eGlzdGluZ1N0eWxlLT5jb21wdXRlZEZvbnRQaXhlbFNpemUoKSAhPSB1cGRhdGUuc3R5bGUtPmNv
bXB1dGVkRm9udFBpeGVsU2l6ZSgpKSB7CiAgICAgICAgICAgICAvLyAicmVtIiB1bml0cyBhcmUg
cmVsYXRpdmUgdG8gdGhlIGRvY3VtZW50IGVsZW1lbnQncyBmb250IHNpemUgc28gd2UgbmVlZCB0
byByZWNvbXB1dGUgZXZlcnl0aGluZy4KICAgICAgICAgICAgIHNjb3BlKCkucmVzb2x2ZXItPmlu
dmFsaWRhdGVNYXRjaGVkRGVjbGFyYXRpb25zQ2FjaGUoKTsKQEAgLTY4OCw3ICs2ODMsNyBAQCBz
dGF0aWMgYm9vbCBzaG91bGRSZXNvbHZlUHNldWRvRWxlbWVudChjb25zdCBQc2V1ZG9FbGVtZW50
KiBwc2V1ZG9FbGVtZW50KQogICAgIHJldHVybiBwc2V1ZG9FbGVtZW50LT5uZWVkc1N0eWxlUmVj
YWxjKCk7CiB9CiAKLWF1dG8gVHJlZVJlc29sdmVyOjpkZXRlcm1pbmVSZXNvbHV0aW9uVHlwZShj
b25zdCBFbGVtZW50JiBlbGVtZW50LCBEZXNjZW5kYW50c1RvUmVzb2x2ZSBwYXJlbnREZXNjZW5k
YW50c1RvUmVzb2x2ZSwgQ2hhbmdlIHBhcmVudENoYW5nZSkgLT4gc3RkOjpvcHRpb25hbDxSZXNv
bHV0aW9uVHlwZT4KK2F1dG8gVHJlZVJlc29sdmVyOjpkZXRlcm1pbmVSZXNvbHV0aW9uVHlwZShj
b25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSogZXhpc3RpbmdTdHlsZSwg
RGVzY2VuZGFudHNUb1Jlc29sdmUgcGFyZW50RGVzY2VuZGFudHNUb1Jlc29sdmUsIENoYW5nZSBw
YXJlbnRDaGFuZ2UpIC0+IHN0ZDo6b3B0aW9uYWw8UmVzb2x1dGlvblR5cGU+CiB7CiAgICAgaWYg
KGVsZW1lbnQuc3R5bGVWYWxpZGl0eSgpICE9IFZhbGlkaXR5OjpWYWxpZCkKICAgICAgICAgcmV0
dXJuIFJlc29sdXRpb25UeXBlOjpGdWxsOwpAQCAtNzAyLDcgKzY5Nyw2IEBAIGF1dG8gVHJlZVJl
c29sdmVyOjpkZXRlcm1pbmVSZXNvbHV0aW9uVHlwZShjb25zdCBFbGVtZW50JiBlbGVtZW50LCBE
ZXNjZW5kYW50c1RvCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgY2FzZSBEZXNjZW5kYW50c1Rv
UmVzb2x2ZTo6Q2hpbGRyZW46CiAgICAgICAgIGlmIChwYXJlbnRDaGFuZ2UgPT0gQ2hhbmdlOjpG
YXN0UGF0aEluaGVyaXRlZCkgewotICAgICAgICAgICAgYXV0byogZXhpc3RpbmdTdHlsZSA9IGVs
ZW1lbnQucmVuZGVyT3JEaXNwbGF5Q29udGVudHNTdHlsZSgpOwogICAgICAgICAgICAgaWYgKGV4
aXN0aW5nU3R5bGUgJiYgIWV4aXN0aW5nU3R5bGUtPmRpc2FsbG93c0Zhc3RQYXRoSW5oZXJpdGFu
Y2UoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvblR5cGU6OkZhc3RQYXRoSW5o
ZXJpdDsKICAgICAgICAgfQpAQCAtNzEwLDcgKzcwNCw2IEBAIGF1dG8gVHJlZVJlc29sdmVyOjpk
ZXRlcm1pbmVSZXNvbHV0aW9uVHlwZShjb25zdCBFbGVtZW50JiBlbGVtZW50LCBEZXNjZW5kYW50
c1RvCiAgICAgY2FzZSBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6QWxsOgogICAgICAgICByZXR1cm4g
UmVzb2x1dGlvblR5cGU6OkZ1bGw7CiAgICAgY2FzZSBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6Q2hp
bGRyZW5XaXRoRXhwbGljaXRJbmhlcml0OgotICAgICAgICBhdXRvKiBleGlzdGluZ1N0eWxlID0g
ZWxlbWVudC5yZW5kZXJPckRpc3BsYXlDb250ZW50c1N0eWxlKCk7CiAgICAgICAgIGlmIChleGlz
dGluZ1N0eWxlICYmIGV4aXN0aW5nU3R5bGUtPmhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0
aWVzKCkpCiAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvblR5cGU6OkZ1bGw7CiAgICAgICAg
IHJldHVybiB7IH07CkBAIC04MTUsMTIgKzgwOCwxMyBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVz
b2x2ZUNvbXBvc2VkVHJlZSgpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0g
ICAgICAgIGF1dG8qIHN0eWxlID0gZWxlbWVudC5yZW5kZXJPckRpc3BsYXlDb250ZW50c1N0eWxl
KCk7CisgICAgICAgIGF1dG8qIHN0eWxlID0gZXhpc3RpbmdTdHlsZShlbGVtZW50KTsKKwogICAg
ICAgICBhdXRvIGNoYW5nZSA9IENoYW5nZTo6Tm9uZTsKICAgICAgICAgYXV0byBkZXNjZW5kYW50
c1RvUmVzb2x2ZSA9IERlc2NlbmRhbnRzVG9SZXNvbHZlOjpOb25lOwogICAgICAgICBhdXRvIHBy
ZXZpb3VzQ29udGFpbmVyVHlwZSA9IHN0eWxlID8gc3R5bGUtPmNvbnRhaW5lclR5cGUoKSA6IENv
bnRhaW5lclR5cGU6Ok5vcm1hbDsKIAotICAgICAgICBhdXRvIHJlc29sdXRpb25UeXBlID0gZGV0
ZXJtaW5lUmVzb2x1dGlvblR5cGUoZWxlbWVudCwgcGFyZW50LmRlc2NlbmRhbnRzVG9SZXNvbHZl
LCBwYXJlbnQuY2hhbmdlKTsKKyAgICAgICAgYXV0byByZXNvbHV0aW9uVHlwZSA9IGRldGVybWlu
ZVJlc29sdXRpb25UeXBlKGVsZW1lbnQsIHN0eWxlLCBwYXJlbnQuZGVzY2VuZGFudHNUb1Jlc29s
dmUsIHBhcmVudC5jaGFuZ2UpOwogICAgICAgICBpZiAocmVzb2x1dGlvblR5cGUpIHsKICAgICAg
ICAgICAgIGlmICghZWxlbWVudC5oYXNEaXNwbGF5Q29udGVudHMoKSkKICAgICAgICAgICAgICAg
ICBlbGVtZW50LnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwpAQCAtODI5LDcgKzgyMyw3IEBAIHZvaWQg
VHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKICAgICAgICAgICAgIGlmIChlbGVt
ZW50Lmhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpKQogICAgICAgICAgICAgICAgIGVs
ZW1lbnQud2lsbFJlY2FsY1N0eWxlKHBhcmVudC5jaGFuZ2UpOwogCi0gICAgICAgICAgICBhdXRv
IFtlbGVtZW50VXBkYXRlLCBlbGVtZW50RGVzY2VuZGFudHNUb1Jlc29sdmVdID0gcmVzb2x2ZUVs
ZW1lbnQoZWxlbWVudCwgKnJlc29sdXRpb25UeXBlKTsKKyAgICAgICAgICAgIGF1dG8gW2VsZW1l
bnRVcGRhdGUsIGVsZW1lbnREZXNjZW5kYW50c1RvUmVzb2x2ZV0gPSByZXNvbHZlRWxlbWVudChl
bGVtZW50LCBzdHlsZSwgKnJlc29sdXRpb25UeXBlKTsKIAogICAgICAgICAgICAgaWYgKGVsZW1l
bnQuaGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCkpCiAgICAgICAgICAgICAgICAgZWxl
bWVudC5kaWRSZWNhbGNTdHlsZShlbGVtZW50VXBkYXRlLmNoYW5nZSk7CkBAIC04MzgsOSArODMy
LDEyIEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKICAgICAgICAg
ICAgIGNoYW5nZSA9IGVsZW1lbnRVcGRhdGUuY2hhbmdlOwogICAgICAgICAgICAgZGVzY2VuZGFu
dHNUb1Jlc29sdmUgPSBlbGVtZW50RGVzY2VuZGFudHNUb1Jlc29sdmU7CiAKLSAgICAgICAgICAg
IGlmIChlbGVtZW50VXBkYXRlLnN0eWxlKQorICAgICAgICAgICAgaWYgKHN0eWxlKSB7CiAgICAg
ICAgICAgICAgICAgbV91cGRhdGUtPmFkZEVsZW1lbnQoZWxlbWVudCwgcGFyZW50LmVsZW1lbnQs
IFdURk1vdmUoZWxlbWVudFVwZGF0ZSkpOwogCisgICAgICAgICAgICAgICAgaWYgKCZlbGVtZW50
ID09IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpCisgICAgICAgICAgICAgICAgICAgIG1f
ZG9jdW1lbnRFbGVtZW50U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKnN0eWxlKTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGNsZWFyTmVlZHNTdHlsZVJlc29sdXRpb24oZWxlbWVu
dCk7CiAgICAgICAgIH0KIApAQCAtODgxLDYgKzg3OCwxOSBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6
cmVzb2x2ZUNvbXBvc2VkVHJlZSgpCiAgICAgcG9wUGFyZW50c1RvRGVwdGgoMSk7CiB9CiAKK2Nv
bnN0IFJlbmRlclN0eWxlKiBUcmVlUmVzb2x2ZXI6OmV4aXN0aW5nU3R5bGUoY29uc3QgRWxlbWVu
dCYgZWxlbWVudCkKK3sKKyAgICBhdXRvKiBzdHlsZSA9IGVsZW1lbnQucmVuZGVyT3JEaXNwbGF5
Q29udGVudHNTdHlsZSgpOworCisgICAgaWYgKHN0eWxlICYmICZlbGVtZW50ID09IG1fZG9jdW1l
bnQuZG9jdW1lbnRFbGVtZW50KCkpIHsKKyAgICAgICAgLy8gRG9jdW1lbnQgZWxlbWVudCBzdHls
ZSBtYXkgaGF2ZSBnb3QgYWRqdXN0ZWQgYmFzZWQgb24gYm9keSBzdHlsZSBidXQgd2UgZG9uJ3Qg
d2FudCB0byBpbmhlcml0IHRob3NlIGFkanVzdG1lbnRzLgorICAgICAgICBtX2RvY3VtZW50RWxl
bWVudFN0eWxlID0gQWRqdXN0ZXI6OnJlc3RvcmVVc2VkRG9jdW1lbnRFbGVtZW50U3R5bGVUb0Nv
bXB1dGVkKCpzdHlsZSk7CisgICAgICAgIGlmIChtX2RvY3VtZW50RWxlbWVudFN0eWxlKQorICAg
ICAgICAgICAgc3R5bGUgPSBtX2RvY3VtZW50RWxlbWVudFN0eWxlLmdldCgpOworICAgIH0KKwor
ICAgIHJldHVybiBzdHlsZTsKK30KIAogYXV0byBUcmVlUmVzb2x2ZXI6OnVwZGF0ZVN0YXRlRm9y
UXVlcnlDb250YWluZXIoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxl
LCBDb250YWluZXJUeXBlIHByZXZpb3VzQ29udGFpbmVyVHlwZSwgQ2hhbmdlJiBjaGFuZ2UsIERl
c2NlbmRhbnRzVG9SZXNvbHZlJiBkZXNjZW5kYW50c1RvUmVzb2x2ZSkgLT4gUXVlcnlDb250YWlu
ZXJBY3Rpb24KIHsKQEAgLTk0Nyw2ICs5NTcsOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8VXBkYXRlPiBU
cmVlUmVzb2x2ZXI6OnJlc29sdmUoKQogICAgIGlmIChtX3VwZGF0ZS0+cm9vdHMoKS5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKKyAgICBBZGp1c3Rlcjo6cHJvcGFnYXRlVG9Eb2N1
bWVudEVsZW1lbnRBbmRJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCptX3VwZGF0ZSwgbV9kb2N1bWVu
dCk7CisKICAgICByZXR1cm4gV1RGTW92ZShtX3VwZGF0ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCmluZGV4IGNlZDRiYjZhZTMwNC4uOTVhYmJhNDYzZmIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgKQEAgLTYzLDEyICs2
MywxNCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXNvbHZlQ29tcG9zZWRUcmVlKCk7CiAKKyAg
ICBjb25zdCBSZW5kZXJTdHlsZSogZXhpc3RpbmdTdHlsZShjb25zdCBFbGVtZW50Jik7CisKICAg
ICBlbnVtIGNsYXNzIFF1ZXJ5Q29udGFpbmVyQWN0aW9uIDogdWludDhfdCB7IE5vbmUsIFJlc29s
dmUsIENvbnRpbnVlIH07CiAgICAgZW51bSBjbGFzcyBEZXNjZW5kYW50c1RvUmVzb2x2ZSA6IHVp
bnQ4X3QgeyBOb25lLCBDaGlsZHJlbldpdGhFeHBsaWNpdEluaGVyaXQsIENoaWxkcmVuLCBBbGwg
fTsKIAogICAgIFF1ZXJ5Q29udGFpbmVyQWN0aW9uIHVwZGF0ZVN0YXRlRm9yUXVlcnlDb250YWlu
ZXIoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlKiwgQ29udGFpbmVyVHlwZSBwcmV2aW91c0Nv
bnRhaW5lclR5cGUsIENoYW5nZSYsIERlc2NlbmRhbnRzVG9SZXNvbHZlJik7CiAKLSAgICBzdGQ6
OnBhaXI8RWxlbWVudFVwZGF0ZSwgRGVzY2VuZGFudHNUb1Jlc29sdmU+IHJlc29sdmVFbGVtZW50
KEVsZW1lbnQmLCBSZXNvbHV0aW9uVHlwZSk7CisgICAgc3RkOjpwYWlyPEVsZW1lbnRVcGRhdGUs
IERlc2NlbmRhbnRzVG9SZXNvbHZlPiByZXNvbHZlRWxlbWVudChFbGVtZW50JiwgY29uc3QgUmVu
ZGVyU3R5bGUqIGV4aXN0aW5nU3R5bGUsIFJlc29sdXRpb25UeXBlKTsKIAogICAgIEVsZW1lbnRV
cGRhdGUgY3JlYXRlQW5pbWF0ZWRFbGVtZW50VXBkYXRlKHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJT
dHlsZT4sIGNvbnN0IFN0eWxlYWJsZSYsIENoYW5nZSwgY29uc3QgUmVzb2x1dGlvbkNvbnRleHQm
KTsKICAgICBzdGQ6Om9wdGlvbmFsPEVsZW1lbnRVcGRhdGU+IHJlc29sdmVQc2V1ZG9FbGVtZW50
KEVsZW1lbnQmLCBQc2V1ZG9JZCwgY29uc3QgRWxlbWVudFVwZGF0ZSYpOwpAQCAtMTE0LDcgKzEx
Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3BQYXJlbnRzVG9EZXB0aCh1bnNpZ25lZCBkZXB0
aCk7CiAKICAgICBzdGF0aWMgRGVzY2VuZGFudHNUb1Jlc29sdmUgY29tcHV0ZURlc2NlbmRhbnRz
VG9SZXNvbHZlKENoYW5nZSwgVmFsaWRpdHksIERlc2NlbmRhbnRzVG9SZXNvbHZlKTsKLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxSZXNvbHV0aW9uVHlwZT4gZGV0ZXJtaW5lUmVzb2x1dGlvblR5
cGUoY29uc3QgRWxlbWVudCYsIERlc2NlbmRhbnRzVG9SZXNvbHZlLCBDaGFuZ2UgcGFyZW50Q2hh
bmdlKTsKKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxSZXNvbHV0aW9uVHlwZT4gZGV0ZXJtaW5l
UmVzb2x1dGlvblR5cGUoY29uc3QgRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlKiwgRGVzY2Vu
ZGFudHNUb1Jlc29sdmUsIENoYW5nZSBwYXJlbnRDaGFuZ2UpOwogICAgIHN0YXRpYyB2b2lkIHJl
c2V0RGVzY2VuZGFudFN0eWxlUmVsYXRpb25zKEVsZW1lbnQmLCBEZXNjZW5kYW50c1RvUmVzb2x2
ZSk7CiAKICAgICBSZXNvbHV0aW9uQ29udGV4dCBtYWtlUmVzb2x1dGlvbkNvbnRleHQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCmluZGV4IGJiMzFkNDdlZDEzZC4uZjU2MDQ4YWI0ZjQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKQEAgLTY2LDYgKzY2LDggQEAgcHVibGlj
OgogCiAgICAgY29uc3QgVGV4dFVwZGF0ZSogdGV4dFVwZGF0ZShjb25zdCBUZXh0JikgY29uc3Q7
CiAKKyAgICBjb25zdCBSZW5kZXJTdHlsZSogaW5pdGlhbENvbnRhaW5pbmdCbG9ja1VwZGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbENvbnRhaW5pbmdCbG9ja1VwZGF0ZS5nZXQoKTsgfQor
CiAgICAgY29uc3QgUmVuZGVyU3R5bGUqIGVsZW1lbnRTdHlsZShjb25zdCBFbGVtZW50JikgY29u
c3Q7CiAgICAgUmVuZGVyU3R5bGUqIGVsZW1lbnRTdHlsZShjb25zdCBFbGVtZW50Jik7CiAKQEAg
LTc4LDYgKzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkVGV4dChUZXh0JiwgRWxlbWVudCog
cGFyZW50LCBUZXh0VXBkYXRlJiYpOwogICAgIHZvaWQgYWRkVGV4dChUZXh0JiwgVGV4dFVwZGF0
ZSYmKTsKICAgICB2b2lkIGFkZFNWR1JlbmRlcmVyVXBkYXRlKFNWR0VsZW1lbnQmKTsKKyAgICB2
b2lkIGFkZEluaXRpYWxDb250YWluaW5nQmxvY2tVcGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRl
clN0eWxlPiBzdHlsZSkgeyBtX2luaXRpYWxDb250YWluaW5nQmxvY2tVcGRhdGUgPSBXVEZNb3Zl
KHN0eWxlKTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgYWRkUG9zc2libGVSb290KEVsZW1lbnQq
KTsKQEAgLTg2LDYgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBMaXN0SGFzaFNldDxSZWZQdHI8Q29u
dGFpbmVyTm9kZT4+IG1fcm9vdHM7CiAgICAgSGFzaE1hcDxSZWZQdHI8Y29uc3QgRWxlbWVudD4s
IEVsZW1lbnRVcGRhdGU+IG1fZWxlbWVudHM7CiAgICAgSGFzaE1hcDxSZWZQdHI8Y29uc3QgVGV4
dD4sIFRleHRVcGRhdGU+IG1fdGV4dHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxl
PiBtX2luaXRpYWxDb250YWluaW5nQmxvY2tVcGRhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAwNjZiMTRlNjdmZmMuLjJjZjM3MDlhZWJkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBA
IC00NTU1LDggKzQ1NTUsNiBAQCB3ZWJraXQub3JnL2IvMjE0MjkxIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3NybC1hbAogd2Via2l0Lm9yZy9i
LzIxNDI5MSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1t
b2Rlcy90Y3ktd2hpdGUtc3BhY2UtcHJvY2Vzc2luZy0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogd2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy90ZXh0LW9yaWVudGF0aW9uLWluaXRpYWwuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi0wMDEuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1i
b2R5LTAzMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjE0MjkxIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXBy
b3BhZ2F0aW9uLWJvZHktMDMzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcv
Yi8yMTQyOTEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmct
bW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS0wMzQuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQog
d2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LTAzNS5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjE0MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktMDM2Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KQEAgLTYwNDgsNCArNjA0Niw0IEBAIGZ1bGxzY3JlZW4vZnVs
bHNjcmVlbi1lbnRlci1ib3R0b20tcGFkZGluZy1hbmltYXRpb24uaHRtbCBbIFNraXAgXQogaHR0
cC90ZXN0cy9sb2FkaW5nL29hdXRoLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQog
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8td2l0aC1odHRw
cy11cmwtYWxsb3dlZC1ieS1jc3AtbWVkaWEtc3JjLXN0YXIuaHRtbCBbIER1bXBKU0NvbnNvbGVM
b2dJblN0ZEVyciBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NsaXBib2FyZC1h
cGlzL2ZlYXR1cmUtcG9saWN5L2NsaXBib2FyZC13cml0ZS9jbGlwYm9hcmQtd3JpdGUtZGlzYWJs
ZWQtYnktZmVhdHVyZS1wb2xpY3kudGVudGF0aXZlLmh0dHBzLnN1Yi5odG1sIFsgRHVtcEpTQ29u
c29sZUxvZ0luU3RkRXJyIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9p
bmZyYXN0cnVjdHVyZS91cmxzL3Rlcm1pbm9sb2d5LTAvZG9jdW1lbnQtYmFzZS11cmwtaW5pdGlh
dGVkLWdyYW5kLXBhcmVudC5odHRwcy53aW5kb3cuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0
ZEVyciBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2luZnJhc3RydWN0dXJlL3VybHMvdGVybWlub2xvZ3ktMC9kb2N1bWVu
dC1iYXNlLXVybC1pbml0aWF0ZWQtZ3JhbmQtcGFyZW50Lmh0dHBzLndpbmRvdy5odG1sIFsgRHVt
cEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd3Jp
dGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjNlODYzM2E3NDE4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkt
ZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxIEBACitUaGlzIHNob3VsZCBiZSBob3Jpem9udGFsLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJv
ZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1ib2R5
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42ZWUxZDU2NTdh
ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0
aW5nLW1vZGUtYm9keS5odG1sCkBAIC0wLDAgKzEsNyBAQAorPHA+VGhpcyBzaG91bGQgYmUgaG9y
aXpvbnRhbC48L3A+Cis8c2NyaXB0PgorY29uc3QgdGFyZ2V0ID0gZG9jdW1lbnQuYm9keTsKK3Rh
cmdldC5zdHlsZS53cml0aW5nTW9kZSA9ICd2ZXJ0aWNhbC1ybCc7Cit0YXJnZXQub2Zmc2V0TGVm
dDsKK3RhcmdldC5zdHlsZS53cml0aW5nTW9kZSA9ICcnOworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxl
bWVudC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGlu
Zy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLmIzZTg2MzNhNzQxOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSBAQAorVGhpcyBzaG91bGQgYmUgaG9yaXpvbnRhbC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1k
b2N1bWVudC1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0
aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uOGI0ZjE4NzBjMDlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbApA
QCAtMCwwICsxLDcgQEAKKzxwPlRoaXMgc2hvdWxkIGJlIGhvcml6b250YWwuPC9wPgorPHNjcmlw
dD4KK2NvbnN0IHRhcmdldCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKK3RhcmdldC5zdHls
ZS53cml0aW5nTW9kZSA9ICd2ZXJ0aWNhbC1ybCc7Cit0YXJnZXQub2Zmc2V0TGVmdDsKK3Rhcmdl
dC5zdHlsZS53cml0aW5nTW9kZSA9ICcnOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rl
cy93bS1wcm9wYWdhdGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9k
ZXMvd20tcHJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVkLnR4dAppbmRleCA3
NTBlMmI5MDk2YTYuLjQ5NWE4NDBjMmJhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvd20tcHJvcGFn
YXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1w
cm9wYWdhdGlvbi1ib2R5LWNvbXB1dGVkLXJvb3QtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBA
QAogCiBQQVNTIENoZWNrIGNvbXB1dGVkIHdyaXRpbmctbW9kZSBmb3IgYm9keSBlbGVtZW50Lgot
RkFJTCBDaGVjayBjb21wdXRlZCB3cml0aW5nLW1vZGUgZm9yIGh0bWwgcm9vdCBlbGVtZW50LiBh
c3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgInZlcnRpY2FsLWxyIgotRkFJ
TCBDaGVjayBjb21wdXRlZCB3cml0aW5nLW1vZGUgZm9yIGJvZHkgZWxlbWVudCB3aGVuIHN0eWxl
IG5vIGxvbmdlciBhcHBsaWVzLiBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFs
dWUgInZlcnRpY2FsLWxyIgorUEFTUyBDaGVjayBjb21wdXRlZCB3cml0aW5nLW1vZGUgZm9yIGh0
bWwgcm9vdCBlbGVtZW50LgorUEFTUyBDaGVjayBjb21wdXRlZCB3cml0aW5nLW1vZGUgZm9yIGJv
ZHkgZWxlbWVudCB3aGVuIHN0eWxlIG5vIGxvbmdlciBhcHBsaWVzLgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463421</attachid>
            <date>2022-11-05 03:59:10 -0700</date>
            <delta_ts>2022-11-05 05:25:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-185729-20221105125908.patch</filename>
            <type>text/plain</type>
            <size>41501</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSBiYjlmM2U3NDIzMDc0NGM2M2RiYTFlODc5ZmRhY2RmNTYyMWExMGUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBGcmksIDQgTm92IDIwMjIgMTM6MDA6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIXSBUaGUgZWZm
ZWN0IG9mIHdyaXRpbmctbW9kZSBwcm9wZXJ0eSByZW1haW5zIGFmdGVyIHRoZQogcHJvcGVydHkg
aXMgcmVtb3ZlZCAob24gdGhlIHJvb3QgZWxlbWVudCkKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODU3MjkgcmRhcjovLzk3MDkxOTkwCgpSZXZpZXdlZCBieSBBbGFu
IEJhcmFkbGF5LgoKVGhlcmUgaXMgYSBzdHlsZSBjeWNsZSB3aGVyZSB0aGUgcm9vdCB3cml0aW5n
LW1vZGUgbWF5IGRlcGVuZCBvbiB0aGUgZG9jdW1lbnQgZWxlbWVudCB3cml0aW5nLW1vZGUgd2hp
Y2gKaW4gdHVybiBtYXkgZGVwZW5kIG9uIHRoZSBib2R5J3MgKGNvbXB1dGVkIGR1cmluZyBwcmV2
aW91cyBzdHlsZSB1cGRhdGUpLiBUaGVzZSBjYW4gdGhlbiBnZXQgaW5oZXJpdGVkIGJhY2sKdG8g
dGhlIGJvZHkgc3R5bGUuIFRoZSByZXN1bHRpbmcgY29uZnVzaW9uIGNhdXNlcyB2YXJpb3VzIGlz
c3Vlcy4KClRoaXMgcGF0Y2ggZW5zdXJlcyB3ZSBkbyBzdHlsZSByZXNvbHV0aW9uIHVzaW5nIGNs
ZWFuIHJvb3Qgc3R5bGVzIHdpdGhvdXQgd3JpdGluZy1tb2RlL2RpcmVjdGlvbiBtdXRhdGlvbnMu
ClRoZSBwcm9wYWdhdGlvbiB1cHdhcmRzIGlzIGRvbmUgYXQgdGhlIGVuZCBvZiB0aGUgcmVzb2x1
dGlvbi4gVGhpcyByZXBsYWNlcyB0aGUgb2xkIHByb3BhZ2F0aW9uIGNvZGUgaW4KcmVuZGVyIHRy
ZWUuCgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvZmFzdC93
cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbDogQWRkZWQuCiogTGF5
b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbDogQWRkZWQu
CiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVs
ZW1lbnQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1v
ZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbDogQWRkZWQuCiogTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMv
d20tcHJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVkLnR4dDoKKiBTb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc29sdmVTdHls
ZSk6CiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CihXZWJDb3JlOjpEb2N1bWVudDo6
cm9vdFN0eWxlIGNvbnN0KToKCk1haW50YWluIGNsZWFuIHJvb3Qgc3R5bGUuCgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwOgooV2ViQ29yZTo6UmVuZGVyQm94OjpzdHls
ZURpZENoYW5nZSk6CgpSZW1vdmUgc3R5bGUgbXV0YXRpbmcgcHJvcGFnYXRpb24gY29kZS4KCiog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgoKSGFuZGxlIHZpZXcgaW52
YWxpZGF0aW9uIGZvciB3cml0aW5nLW1vZGUvZGlyZWN0aW9uLiBUaGlzIGlzIG1vdmVkIGZyb20g
UmVuZGVyQm94OjpzdHlsZURpZENoYW5nZS4KCihXZWJDb3JlOjpSZW5kZXJWaWV3OjpzdHlsZURp
ZENoYW5nZSk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OmNvbW1pdCk6CgpVcGRhdGUgdGhlIHZpZXcgc3R5bGUg
Zmlyc3QuCgooV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVJlbmRlclZpZXdTdHls
ZSk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
Lmg6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CihXZWJDb3JlOjpT
dHlsZTo6QWRqdXN0ZXI6OnByb3BhZ2F0ZVRvRG9jdW1lbnRFbGVtZW50QW5kSW5pdGlhbENvbnRh
aW5pbmdCbG9jayk6CgpEbyB0aGUgcHJvcGFnYXRpb24gYXQgZW5kIG9mIHRoZSBzdHlsZSByZXNv
bHV0aW9uLgoKKFdlYkNvcmU6OlN0eWxlOjpBZGp1c3Rlcjo6cmVzdG9yZVVzZWREb2N1bWVudEVs
ZW1lbnRTdHlsZVRvQ29tcHV0ZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0
ZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHA6
CihXZWJDb3JlOjpTdHlsZTo6cmVzb2x2ZUZvckRvY3VtZW50KToKClJlbW92ZSB0aGUgYWRqdXN0
bWVudHMgYmFzZWQgb24gZGVzY2VuZGFudCBzdHlsZXMuIFRoaXMgd2FzIG5vdCBjb3JyZWN0IGFz
IHRoZXNlIHZhbHVlcyBhcmUgZnJvbSB0aGUgcHJldmlvdXMgcm91bmQgb2Ygc3R5bGUgcmVzb2x1
dGlvbi4KCiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHA6CihXZWJDb3Jl
OjpTdHlsZTo6UmVzb2x2ZXI6OlN0YXRlOjpTdGF0ZSk6CihXZWJDb3JlOjpTdHlsZTo6UmVzb2x2
ZXI6OlJlc29sdmVyKToKKFdlYkNvcmU6OlN0eWxlOjpSZXNvbHZlcjo6c3R5bGVGb3JQYWdlKToK
KiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CihXZWJDb3JlOjpT
dHlsZTo6VHJlZVJlc29sdmVyOjpQYXJlbnQ6OlBhcmVudCk6CihXZWJDb3JlOjpTdHlsZTo6VHJl
ZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudCk6CihXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVy
OjpyZXNvbHZlQ29tcG9zZWRUcmVlKToKClNhdmUgYW5kIGNsZWFuIHVwIGRvY3VtZW50IGVsZW1l
bnQgc3R5bGUgd2hlbiB0cmF2ZXJzaW5nIHRocm91Z2guCgooV2ViQ29yZTo6U3R5bGU6OlRyZWVS
ZXNvbHZlcjo6cmVzb2x2ZSk6CiogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaDoK
KFdlYkNvcmU6OlN0eWxlOjpVcGRhdGU6OmluaXRpYWxDb250YWluaW5nQmxvY2tVcGRhdGUgY29u
c3QpOgooV2ViQ29yZTo6U3R5bGU6OlVwZGF0ZTo6YWRkSW5pdGlhbENvbnRhaW5pbmdCbG9ja1Vw
ZGF0ZSk6CgpQYXNzIHRoZSBuZXcgcm9vdCBzdHlsZSB2aWEgc3R5bGUgdXBkYXRlLgotLS0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9Db21wdXRlZFN0eWxlRXh0cmFjdG9yLmNwcCB8IDIwICsrKystCiBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCAxNyArKy0tLQog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgIHwgIDIgKwogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgICAgICAgIHwgNTEgLS0tLS0tLS0t
LS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwICAgICAgIHwgMTcg
KysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggICAgICAgICB8ICAy
ICsKIC4uLi9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwICB8ICA4ICsr
CiAuLi4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmggICAgfCAgMSArCiBT
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcCAgICAgICAgfCA3NSArKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmggICAgICAg
ICAgfCAgMiArCiAuLi4vV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAg
fCAyMCArLS0tLQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlci5jcHAgICAgICAg
IHwgMTAgKy0tCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgICAg
fCA0MiArKysrKysrLS0tLQogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIu
aCAgICAgIHwgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmggICAgICAg
ICAgICB8ICA0ICsKIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgICAgICAg
ICB8ICA0ICstCiAuLi4vd3JpdGluZy1tb2RlLWJvZHktZXhwZWN0ZWQuaHRtbCAgICAgICAgICAg
fCAgMSArCiAuLi4vZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbCAgfCAg
NyArKwogLi4ucml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC1leHBlY3RlZC5odG1sIHwgIDEg
KwogLi4uL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwgICAgICAgIHwgIDcgKysK
IC4uLnJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVkLnR4dCB8ICA0ICstCiAy
MSBmaWxlcyBjaGFuZ2VkLCAxOTEgaW5zZXJ0aW9ucygrKSwgMTEwIGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9k
ZS1ib2R5LWV4cGVjdGVkLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0
L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1l
bnQtZXhwZWN0ZWQuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3Qvd3Jp
dGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50Lmh0bWwKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvci5jcHAKaW5kZXggYzg5N2NiODJkNWMz
Li5kZGE1NDMzN2I4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db21wdXRlZFN0
eWxlRXh0cmFjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29tcHV0ZWRTdHlsZUV4
dHJhY3Rvci5jcHAKQEAgLTMxMTgsOCArMzExOCwxNCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1
dGVkU3R5bGVFeHRyYWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0
eQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDdXJzb3JWaXNpYmlsaXR5OgogICAgICAgICBy
ZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLmN1cnNvclZpc2liaWxpdHkoKSk7
CiAjZW5kaWYKLSAgICBjYXNlIENTU1Byb3BlcnR5RGlyZWN0aW9uOgotICAgICAgICByZXR1cm4g
Y3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0eWxlLmRpcmVjdGlvbigpKTsKKyAgICBjYXNlIENT
U1Byb3BlcnR5RGlyZWN0aW9uOiAgeworICAgICAgICBhdXRvIGRpcmVjdGlvbiA9IFsmXSB7Cisg
ICAgICAgICAgICBpZiAobV9lbGVtZW50ID09IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS5kb2N1bWVu
dEVsZW1lbnQoKSAmJiAhc3R5bGUuaGFzRXhwbGljaXRseVNldERpcmVjdGlvbigpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBSZW5kZXJTdHlsZTo6aW5pdGlhbERpcmVjdGlvbigpOworICAgICAg
ICAgICAgcmV0dXJuIHN0eWxlLmRpcmVjdGlvbigpOworICAgICAgICB9KCk7CisgICAgICAgIHJl
dHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRlVmFsdWUoZGlyZWN0aW9uKTsKKyAgICB9CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eURpc3BsYXk6CiAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wuY3JlYXRl
VmFsdWUoc3R5bGUuZGlzcGxheSgpKTsKICAgICBjYXNlIENTU1Byb3BlcnR5RW1wdHlDZWxsczoK
QEAgLTM4NjIsOCArMzg2OCwxNCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRy
YWN0b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAgICBy
ZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShzdHlsZS5saW5lU25hcCgpKTsKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0TGluZUFsaWduOgogICAgICAgICByZXR1cm4gQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZShzdHlsZS5saW5lQWxpZ24oKSk7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0
eVdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sLmNyZWF0ZVZhbHVlKHN0
eWxlLndyaXRpbmdNb2RlKCkpOworICAgIGNhc2UgQ1NTUHJvcGVydHlXcml0aW5nTW9kZTogewor
ICAgICAgICBhdXRvIHdyaXRpbmdNb2RlID0gWyZdIHsKKyAgICAgICAgICAgIGlmIChtX2VsZW1l
bnQgPT0gbV9lbGVtZW50LT5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpICYmICFzdHlsZS5o
YXNFeHBsaWNpdGx5U2V0V3JpdGluZ01vZGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUmVu
ZGVyU3R5bGU6OmluaXRpYWxXcml0aW5nTW9kZSgpOworICAgICAgICAgICAgcmV0dXJuIHN0eWxl
LndyaXRpbmdNb2RlKCk7CisgICAgICAgIH0oKTsKKyAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9v
bC5jcmVhdGVWYWx1ZSh3cml0aW5nTW9kZSk7CisgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRUZXh0Q29tYmluZToKICAgICAgICAgaWYgKHN0eWxlLnRleHRDb21iaW5lKCkgPT0gVGV4
dENvbWJpbmU6OkFsbCkKICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlSWRlbnRpZmllcihDU1NWYWx1ZUhvcml6b250YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggNDJmMWEzZTRlNWNlLi5hYzNjY2IyY2VjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtMjA5NSwxNiArMjA5NSwxNCBAQCB2b2lkIERvY3VtZW50OjpyZXNvbHZlU3R5bGUoUmVz
b2x2ZVN0eWxlVHlwZSB0eXBlKQogICAgICAgICAgICAgbV9oYXNOb2Rlc1dpdGhOb25GaW5hbFN0
eWxlID0gZmFsc2U7CiAgICAgICAgICAgICBtX2hhc05vZGVzV2l0aE1pc3NpbmdTdHlsZSA9IGZh
bHNlOwogCi0gICAgICAgICAgICBhdXRvIGRvY3VtZW50U3R5bGUgPSBTdHlsZTo6cmVzb2x2ZUZv
ckRvY3VtZW50KCp0aGlzKTsKKyAgICAgICAgICAgIGF1dG8gbmV3U3R5bGUgPSBTdHlsZTo6cmVz
b2x2ZUZvckRvY3VtZW50KCp0aGlzKTsKIAotICAgICAgICAgICAgLy8gSW5zZXJ0aW5nIHRoZSBw
aWN0b2dyYXBoIGZvbnQgYXQgdGhlIGVuZCBvZiB0aGUgZm9udCBmYWxsYmFjayBsaXN0IGlzIGRv
bmUgYnkgdGhlCi0gICAgICAgICAgICAvLyBmb250IHNlbGVjdG9yLCBzbyBzZXQgYSBmb250IHNl
bGVjdG9yIGlmIG5lZWRlZC4KLSAgICAgICAgICAgIGlmIChzZXR0aW5ncygpLmZvbnRGYWxsYmFj
a1ByZWZlcnNQaWN0b2dyYXBocygpKQotICAgICAgICAgICAgICAgIGRvY3VtZW50U3R5bGUuZm9u
dENhc2NhZGUoKS51cGRhdGUoJmZvbnRTZWxlY3RvcigpKTsKLQotICAgICAgICAgICAgYXV0byBk
b2N1bWVudENoYW5nZSA9IFN0eWxlOjpkZXRlcm1pbmVDaGFuZ2UoZG9jdW1lbnRTdHlsZSwgbV9y
ZW5kZXJWaWV3LT5zdHlsZSgpKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudENoYW5nZSAhPSBT
dHlsZTo6Q2hhbmdlOjpOb25lKQotICAgICAgICAgICAgICAgIHJlbmRlclZpZXcoKS0+c2V0U3R5
bGUoV1RGTW92ZShkb2N1bWVudFN0eWxlKSk7CisgICAgICAgICAgICBhdXRvIGRvY3VtZW50Q2hh
bmdlID0gbV9pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUgPyBTdHlsZTo6ZGV0ZXJtaW5lQ2hh
bmdlKG5ld1N0eWxlLCAqbV9pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUpIDogU3R5bGU6OkNo
YW5nZTo6UmVuZGVyZXI7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnRDaGFuZ2UgIT0gU3R5bGU6
OkNoYW5nZTo6Tm9uZSkgeworICAgICAgICAgICAgICAgIG1faW5pdGlhbENvbnRhaW5pbmdCbG9j
a1N0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKG5ld1N0eWxlKTsKKyAgICAgICAgICAgICAg
ICAvLyBUaGUgdXNlZCBzdHlsZSBtYXkgZW5kIHVwIGRpZmZlcmluZyBmcm9tIHRoZSBjb21wdXRl
ZCBzdHlsZSBkdWUgdG8gcHJvcGFnYXRpb24gb2YgcHJvcGVydGllcyBmcm9tIGVsZW1lbnRzLgor
ICAgICAgICAgICAgICAgIHJlbmRlclZpZXcoKS0+c2V0U3R5bGUoV1RGTW92ZShuZXdTdHlsZSkp
OworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoUmVmUHRyIGRvY3VtZW50RWxlbWVu
dCA9IHRoaXMtPmRvY3VtZW50RWxlbWVudCgpKQogICAgICAgICAgICAgICAgIGRvY3VtZW50RWxl
bWVudC0+aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwpAQCAtMjYyNyw2ICsyNjI1LDcgQEAg
dm9pZCBEb2N1bWVudDo6ZGVzdHJveVJlbmRlclRyZWUoKQogICAgICAgICB2aWV3KCktPndpbGxE
ZXN0cm95UmVuZGVyVHJlZSgpOwogCiAgICAgbV9wZW5kaW5nUmVuZGVyVHJlZVVwZGF0ZSA9IHsg
fTsKKyAgICBtX2luaXRpYWxDb250YWluaW5nQmxvY2tTdHlsZSA9IHsgfTsKIAogICAgIGlmICht
X2RvY3VtZW50RWxlbWVudCkKICAgICAgICAgUmVuZGVyVHJlZVVwZGF0ZXI6OnRlYXJEb3duUmVu
ZGVyZXJzKCptX2RvY3VtZW50RWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGQxODZh
MmMxZGRkMy4uM2E3ZmVjNmQ3ZjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjY3LDYgKzY2
Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN1c3BlbmRGb250TG9hZGluZygpOwogCiAgICAgUmVu
ZGVyVmlldyogcmVuZGVyVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVmlldy5nZXQoKTsg
fQorICAgIGNvbnN0IFJlbmRlclN0eWxlKiBpbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUoKSBj
b25zdCB7IHJldHVybiBtX2luaXRpYWxDb250YWluaW5nQmxvY2tTdHlsZS5nZXQoKTsgfSAvLyBU
aGlzIG1heSBlbmQgdXAgZGlmZmVyaW5nIGZyb20gcmVuZGVyVmlldygpLT5zdHlsZSgpIGR1ZSB0
byBhZGp1c3RtZW50cy4KIAogICAgIGJvb2wgcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkgY29u
c3QgeyByZXR1cm4gbV9yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQ7IH0KICAgICBib29sIGhhc0xp
dmluZ1JlbmRlclRyZWUoKSBjb25zdCB7IHJldHVybiByZW5kZXJWaWV3KCkgJiYgIXJlbmRlclRy
ZWVCZWluZ0Rlc3Ryb3llZCgpOyB9CkBAIC0yMDA3LDYgKzIwMDgsNyBAQCBwcml2YXRlOgogICAg
IERvY3VtZW50Q2xhc3NlcyBtX2RvY3VtZW50Q2xhc3NlczsKIAogICAgIFJlbmRlclB0cjxSZW5k
ZXJWaWV3PiBtX3JlbmRlclZpZXc7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBt
X2luaXRpYWxDb250YWluaW5nQmxvY2tTdHlsZTsKIAogICAgIFdlYWtIYXNoU2V0PE1lZGlhQ2Fu
U3RhcnRMaXN0ZW5lcj4gbV9tZWRpYUNhblN0YXJ0TGlzdGVuZXJzOwogICAgIFdlYWtIYXNoU2V0
PERpc3BsYXlDaGFuZ2VkT2JzZXJ2ZXI+IG1fZGlzcGxheUNoYW5nZWRPYnNlcnZlcnM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGYxMmY5Y2YzOTA3YS4uYjM1MzBj
ZmUxMjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMzU2LDQ1
ICszNTYsNiBAQCB2b2lkIFJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNl
IGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgIGJvb2wgaXNEb2NFbGVtZW50
UmVuZGVyZXIgPSBpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCk7CiAKICAgICBpZiAoaXNEb2NF
bGVtZW50UmVuZGVyZXIgfHwgaXNCb2R5UmVuZGVyZXIpIHsKLSAgICAgICAgYXV0byogZG9jdW1l
bnRFbGVtZW50UmVuZGVyZXIgPSBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJl
cigpOwotICAgICAgICBhdXRvJiB2aWV3U3R5bGUgPSB2aWV3KCkubXV0YWJsZVN0eWxlKCk7Ci0g
ICAgICAgIGJvb2wgcm9vdFN0eWxlQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICBib29sIHZpZXdE
aXJlY3Rpb25PcldyaXRpbmdNb2RlQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICBhdXRvKiByb290
UmVuZGVyZXIgPSBpc0JvZHlSZW5kZXJlciA/IGRvY3VtZW50RWxlbWVudFJlbmRlcmVyIDogbnVs
bHB0cjsKLQotICAgICAgICBhdXRvIHByb3BhZ2F0ZVdyaXRpbmdNb2RlVG9SZW5kZXJWaWV3SWZB
cHBsaWNhYmxlID0gWyZdIHsKLSAgICAgICAgICAgIC8vIFByb3BhZ2F0ZSB0aGUgbmV3IHdyaXRp
bmcgbW9kZSBhbmQgZGlyZWN0aW9uIHVwIHRvIHRoZSBSZW5kZXJWaWV3LgotICAgICAgICAgICAg
aWYgKCFkb2N1bWVudEVsZW1lbnRSZW5kZXJlcikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICBpZiAoIWlzQm9keVJlbmRlcmVyIHx8ICEoc2hvdWxkQXBwbHlBbnlDb250YWlu
bWVudCgpIHx8IGRvY3VtZW50RWxlbWVudFJlbmRlcmVyLT5zaG91bGRBcHBseUFueUNvbnRhaW5t
ZW50KCkpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZpZXdTdHlsZS5kaXJlY3Rpb24oKSAhPSBu
ZXdTdHlsZS5kaXJlY3Rpb24oKSAmJiAoaXNEb2NFbGVtZW50UmVuZGVyZXIgfHwgIWRvY3VtZW50
RWxlbWVudFJlbmRlcmVyLT5zdHlsZSgpLmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkpIHsK
LSAgICAgICAgICAgICAgICAgICAgdmlld1N0eWxlLnNldERpcmVjdGlvbihuZXdTdHlsZS5kaXJl
Y3Rpb24oKSk7Ci0gICAgICAgICAgICAgICAgICAgIHZpZXdEaXJlY3Rpb25PcldyaXRpbmdNb2Rl
Q2hhbmdlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc0JvZHlSZW5kZXJlcikg
ewotICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFJlbmRlcmVyLT5tdXRhYmxlU3R5bGUoKS5z
ZXREaXJlY3Rpb24obmV3U3R5bGUuZGlyZWN0aW9uKCkpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgcm9vdFN0eWxlQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7Ci0KLSAg
ICAgICAgICAgICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnRvcENvbnRlbnREaXJlY3Rpb25E
aWRDaGFuZ2UoKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAodmll
d1N0eWxlLndyaXRpbmdNb2RlKCkgIT0gbmV3U3R5bGUud3JpdGluZ01vZGUoKSAmJiAoaXNEb2NF
bGVtZW50UmVuZGVyZXIgfHwgIWRvY3VtZW50RWxlbWVudFJlbmRlcmVyLT5zdHlsZSgpLmhhc0V4
cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKSkgewotICAgICAgICAgICAgICAgICAgICB2aWV3U3R5
bGUuc2V0V3JpdGluZ01vZGUobmV3U3R5bGUud3JpdGluZ01vZGUoKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIHZpZXdEaXJlY3Rpb25PcldyaXRpbmdNb2RlQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgICAgIHZpZXcoKS5zZXRIb3Jpem9udGFsV3JpdGluZ01vZGUobmV3U3R5bGUuaXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHZpZXcoKS5tYXJr
QWxsRGVzY2VuZGFudHNXaXRoRmxvYXRzRm9yTGF5b3V0KCk7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChpc0JvZHlSZW5kZXJlcikgewotICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFN0eWxl
Q2hhbmdlZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICByb290UmVuZGVyZXItPm11
dGFibGVTdHlsZSgpLnNldFdyaXRpbmdNb2RlKG5ld1N0eWxlLndyaXRpbmdNb2RlKCkpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgcm9vdFJlbmRlcmVyLT5zZXRIb3Jpem9udGFsV3JpdGluZ01v
ZGUobmV3U3R5bGUuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVj
YWxjKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAg
ICAgICBwcm9wYWdhdGVXcml0aW5nTW9kZVRvUmVuZGVyVmlld0lmQXBwbGljYWJsZSgpOwotCiAj
aWYgRU5BQkxFKERBUktfTU9ERV9DU1MpCiAgICAgICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5yZWNh
bGN1bGF0ZUJhc2VCYWNrZ3JvdW5kQ29sb3IoKTsKICNlbmRpZgpAQCAtNDAyLDE4ICszNjMsNiBA
QCB2b2lkIFJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCkucmVj
YWxjdWxhdGVTY3JvbGxiYXJPdmVybGF5U3R5bGUoKTsKICAgICAgICAgCiAgICAgICAgIGNvbnN0
IFBhZ2luYXRpb24mIHBhZ2luYXRpb24gPSB2aWV3KCkuZnJhbWVWaWV3KCkucGFnaW5hdGlvbigp
OwotICAgICAgICBpZiAodmlld0RpcmVjdGlvbk9yV3JpdGluZ01vZGVDaGFuZ2VkICYmIHBhZ2lu
YXRpb24ubW9kZSAhPSBQYWdpbmF0aW9uOjpVbnBhZ2luYXRlZCkgewotICAgICAgICAgICAgdmll
d1N0eWxlLnNldENvbHVtblN0eWxlc0Zyb21QYWdpbmF0aW9uTW9kZShwYWdpbmF0aW9uLm1vZGUp
OwotICAgICAgICAgICAgaWYgKHZpZXcoKS5tdWx0aUNvbHVtbkZsb3coKSkKLSAgICAgICAgICAg
ICAgICB2aWV3KCkudXBkYXRlQ29sdW1uUHJvZ3Jlc3Npb25Gcm9tU3R5bGUodmlld1N0eWxlKTsK
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKHZpZXdEaXJlY3Rpb25PcldyaXRpbmdN
b2RlQ2hhbmdlZCAmJiB2aWV3KCkubXVsdGlDb2x1bW5GbG93KCkpCi0gICAgICAgICAgICB2aWV3
KCkudXBkYXRlU3R5bGVzRm9yQ29sdW1uQ2hpbGRyZW4oKTsKLSAgICAgICAgCi0gICAgICAgIGlm
IChyb290U3R5bGVDaGFuZ2VkICYmIGlzPFJlbmRlckJsb2NrRmxvdz4ocm9vdFJlbmRlcmVyKSAm
JiBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCpyb290UmVuZGVyZXIpLm11bHRpQ29sdW1uRmxv
dygpKQotICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93Pigqcm9vdFJlbmRlcmVy
KS51cGRhdGVTdHlsZXNGb3JDb2x1bW5DaGlsZHJlbigpOwotICAgICAgICAKICAgICAgICAgaWYg
KGlzQm9keVJlbmRlcmVyICYmIHBhZ2luYXRpb24ubW9kZSAhPSBQYWdpbmF0aW9uOjpVbnBhZ2lu
YXRlZCAmJiBwYWdlKCkucGFnaW5hdGlvbkxpbmVHcmlkRW5hYmxlZCgpKSB7CiAgICAgICAgICAg
ICAvLyBQcm9wYWdhdGUgdGhlIGJvZHkgZm9udCBiYWNrIHVwIHRvIHRoZSBSZW5kZXJWaWV3IGFu
ZCB1c2UgaXQgYXMKICAgICAgICAgICAgIC8vIHRoZSBiYXNpcyBvZiB0aGUgZ3JpZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAyYmUzYWFlN2E2N2EuLjFlNmYy
NTJiMTJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtOTQs
NiArOTQsMjMgQEAgUmVuZGVyVmlldzo6flJlbmRlclZpZXcoKQogICAgIEFTU0VSVF9XSVRIX01F
U1NBR0UobV9yZW5kZXJlckNvdW50ID09IDEsICJBbGwgb3RoZXIgcmVuZGVyZXJzIGluIHRoaXMg
cmVuZGVyIHRyZWUgc2hvdWxkIGhhdmUgYmVlbiBkZXN0cm95ZWQiKTsKIH0KIAordm9pZCBSZW5k
ZXJWaWV3OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKQoreworICAgIFJlbmRlckJsb2NrRmxvdzo6c3R5bGVEaWRDaGFuZ2Uo
ZGlmZiwgb2xkU3R5bGUpOworCisgICAgYm9vbCB3cml0aW5nTW9kZUNoYW5nZWQgPSBvbGRTdHls
ZSAmJiBzdHlsZSgpLndyaXRpbmdNb2RlKCkgIT0gb2xkU3R5bGUtPndyaXRpbmdNb2RlKCk7Cisg
ICAgYm9vbCBkaXJlY3Rpb25DaGFuZ2VkID0gb2xkU3R5bGUgJiYgc3R5bGUoKS5kaXJlY3Rpb24o
KSAhPSBvbGRTdHlsZS0+ZGlyZWN0aW9uKCk7CisKKyAgICBpZiAoKHdyaXRpbmdNb2RlQ2hhbmdl
ZCB8fCBkaXJlY3Rpb25DaGFuZ2VkKSAmJiBtdWx0aUNvbHVtbkZsb3coKSkgeworICAgICAgICBp
ZiAoZnJhbWVWaWV3KCkucGFnaW5hdGlvbigpLm1vZGUgIT0gUGFnaW5hdGlvbjo6VW5wYWdpbmF0
ZWQpCisgICAgICAgICAgICB1cGRhdGVDb2x1bW5Qcm9ncmVzc2lvbkZyb21TdHlsZShzdHlsZSgp
KTsKKyAgICAgICAgdXBkYXRlU3R5bGVzRm9yQ29sdW1uQ2hpbGRyZW4oKTsKKyAgICB9CisKKyAg
ICBpZiAoZGlyZWN0aW9uQ2hhbmdlZCkKKyAgICAgICAgZnJhbWVWaWV3KCkudG9wQ29udGVudERp
cmVjdGlvbkRpZENoYW5nZSgpOworfQorCiB2b2lkIFJlbmRlclZpZXc6OnNjaGVkdWxlTGF6eVJl
cGFpbnQoUmVuZGVyQm94JiByZW5kZXJlcikKIHsKICAgICBpZiAocmVuZGVyZXIucmVuZGVyQm94
TmVlZHNMYXp5UmVwYWludCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5k
ZXggN2FkMTExNDJhMmFmLi42ZGYzM2JhY2FhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaApAQCAtMjE0LDYgKzIxNCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWFrSGFz
aFNldDxjb25zdCBSZW5kZXJCb3g+JiBjb250YWluZXJRdWVyeUJveGVzKCkgY29uc3QgeyByZXR1
cm4gbV9jb250YWluZXJRdWVyeUJveGVzOyB9CiAKIHByaXZhdGU6CisgICAgdm9pZCBzdHlsZURp
ZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgb3Zl
cnJpZGU7CisKICAgICB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBPcHRpb25TZXQ8
TWFwQ29vcmRpbmF0ZXNNb2RlPiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0IG92ZXJyaWRlOwogICAg
IGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoT3B0aW9uU2V0
PE1hcENvb3JkaW5hdGVzTW9kZT4sIFRyYW5zZm9ybVN0YXRlJikgY29uc3Qgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVw
ZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVV
cGRhdGVyLmNwcAppbmRleCBiNDg2MTRiMjc0OTIuLmJlYTIxYzM3NzFiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
Y3BwCkBAIC0xMDUsNiArMTA1LDggQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6Y29tbWl0KHN0
ZDo6dW5pcXVlX3B0cjxjb25zdCBTdHlsZTo6VXBkYXRlPiBzdHlsZVVwZGF0ZSkKIAogICAgIG1f
c3R5bGVVcGRhdGUgPSBXVEZNb3ZlKHN0eWxlVXBkYXRlKTsKIAorICAgIHVwZGF0ZVJlbmRlclZp
ZXdTdHlsZSgpOworCiAgICAgZm9yIChhdXRvJiByb290IDogbV9zdHlsZVVwZGF0ZS0+cm9vdHMo
KSkgewogICAgICAgICBhdXRvKiByZW5kZXJpbmdSb290ID0gZmluZFJlbmRlcmluZ1Jvb3QoKnJv
b3QpOwogICAgICAgICBpZiAoIXJlbmRlcmluZ1Jvb3QpCkBAIC01MTYsNiArNTE4LDEyIEBAIHZv
aWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnN0b3JlUHJldmlvdXNSZW5kZXJlcihOb2RlJiBub2RlKQog
ICAgIHJlbmRlcmluZ1BhcmVudCgpLnByZXZpb3VzQ2hpbGRSZW5kZXJlciA9IHJlbmRlcmVyOwog
fQogCit2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVSZW5kZXJWaWV3U3R5bGUoKQorewor
ICAgIGlmIChtX3N0eWxlVXBkYXRlLT5pbml0aWFsQ29udGFpbmluZ0Jsb2NrVXBkYXRlKCkpCisg
ICAgICAgIG1fZG9jdW1lbnQucmVuZGVyVmlldygpLT5zZXRTdHlsZShSZW5kZXJTdHlsZTo6Y2xv
bmUoKm1fc3R5bGVVcGRhdGUtPmluaXRpYWxDb250YWluaW5nQmxvY2tVcGRhdGUoKSkpOworfQor
CiB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp0ZWFyRG93blJlbmRlcmVycyhFbGVtZW50JiByb290
KQogewogICAgIGF1dG8qIHZpZXcgPSByb290LmRvY3VtZW50KCkucmVuZGVyVmlldygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRh
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0
ZXIuaAppbmRleCBhYmNjOWYwZWMyZGYuLmI1ODI0YzMwZDg2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgKQEAgLTYx
LDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUVsZW1lbnRSZW5kZXJlcihFbGVt
ZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUmKTsKICAgICB2b2lkIHVwZGF0ZVNWR1Jl
bmRlcmVyKEVsZW1lbnQmKTsKICAgICB2b2lkIHVwZGF0ZVJlbmRlcmVyU3R5bGUoUmVuZGVyRWxl
bWVudCYsIFJlbmRlclN0eWxlJiYsIFN0eWxlRGlmZmVyZW5jZSk7CisgICAgdm9pZCB1cGRhdGVS
ZW5kZXJWaWV3U3R5bGUoKTsKICAgICB2b2lkIGNyZWF0ZVJlbmRlcmVyKEVsZW1lbnQmLCBSZW5k
ZXJTdHlsZSYmKTsKICAgICB2b2lkIHVwZGF0ZUJlZm9yZURlc2NlbmRhbnRzKEVsZW1lbnQmLCBj
b25zdCBTdHlsZTo6RWxlbWVudFVwZGF0ZSopOwogICAgIHZvaWQgdXBkYXRlQWZ0ZXJEZXNjZW5k
YW50cyhFbGVtZW50JiwgY29uc3QgU3R5bGU6OkVsZW1lbnRVcGRhdGUqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAKaW5kZXggMTc1MjIzMmU1MDgxLi5iMWExMDgyNDAzNWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiRWxlbWVudE5hbWUuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTERpYWxvZ0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKQEAgLTUzLDYgKzU0LDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclRo
ZW1lLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJTVkdHcmFwaGljc0VsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpA
QCAtNjAsNiArNjIsNyBAQAogI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlN0eWxlVXBk
YXRlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIldlYkFuaW1hdGlvblR5cGVzLmgi
CiAjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hTZXQuaD4KQEAgLTc3MCw2ICs3NzMsNzggQEAg
dm9pZCBBZGp1c3Rlcjo6YWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVpcmtzKFJlbmRlclN0eWxlJiBz
dHlsZSkgY29uc3QKICNlbmRpZgogfQogCit2b2lkIEFkanVzdGVyOjpwcm9wYWdhdGVUb0RvY3Vt
ZW50RWxlbWVudEFuZEluaXRpYWxDb250YWluaW5nQmxvY2soVXBkYXRlJiB1cGRhdGUsIGNvbnN0
IERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBhdXRvKiBib2R5ID0gZG9jdW1lbnQuYm9keSgp
OworICAgIGF1dG8qIGJvZHlTdHlsZSA9IGJvZHkgPyB1cGRhdGUuZWxlbWVudFN0eWxlKCpib2R5
KSA6IG51bGxwdHI7CisgICAgYXV0byogZG9jdW1lbnRFbGVtZW50U3R5bGUgPSB1cGRhdGUuZWxl
bWVudFN0eWxlKCpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSk7CisKKyAgICBpZiAoIWRvY3Vt
ZW50RWxlbWVudFN0eWxlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3NzLWNvbnRhaW4tMi8jY29udGFpbi1wcm9wZXJ0eQorICAgIC8vICJBZGRp
dGlvbmFsbHksIHdoZW4gYW55IGNvbnRhaW5tZW50cyBhcmUgYWN0aXZlIG9uIGVpdGhlciB0aGUg
SFRNTCBodG1sIG9yIGJvZHkgZWxlbWVudHMsIHByb3BhZ2F0aW9uIG9mCisgICAgLy8gcHJvcGVy
dGllcyBmcm9tIHRoZSBib2R5IGVsZW1lbnQgdG8gdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9j
aywgdGhlIHZpZXdwb3J0LCBvciB0aGUgY2FudmFzIGJhY2tncm91bmQsIGlzIGRpc2FibGVkLiIK
KyAgICBhdXRvIHNob3VsZFByb3BhZ2F0ZUZyb21Cb2R5ID0gWyZdIHsKKyAgICAgICAgaWYgKGJv
ZHlTdHlsZSAmJiAhYm9keVN0eWxlLT5lZmZlY3RpdmVDb250YWlubWVudCgpLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50RWxlbWVu
dFN0eWxlLT5lZmZlY3RpdmVDb250YWlubWVudCgpLmlzRW1wdHkoKTsKKyAgICB9KCk7CisKKyAg
ICBhdXRvIHdyaXRpbmdNb2RlID0gWyZdIHsKKyAgICAgICAgLy8gRklYTUU6IFRoZSBzcGVjIHNh
eXMgYm9keSBzaG91bGQgd2luLgorICAgICAgICBpZiAoZG9jdW1lbnRFbGVtZW50U3R5bGUtPmhh
c0V4cGxpY2l0bHlTZXRXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50
RWxlbWVudFN0eWxlLT53cml0aW5nTW9kZSgpOworICAgICAgICBpZiAoc2hvdWxkUHJvcGFnYXRl
RnJvbUJvZHkgJiYgYm9keVN0eWxlICYmIGJvZHlTdHlsZS0+aGFzRXhwbGljaXRseVNldFdyaXRp
bmdNb2RlKCkpCisgICAgICAgICAgICByZXR1cm4gYm9keVN0eWxlLT53cml0aW5nTW9kZSgpOwor
ICAgICAgICByZXR1cm4gUmVuZGVyU3R5bGU6OmluaXRpYWxXcml0aW5nTW9kZSgpOworICAgIH0o
KTsKKworICAgIGF1dG8gZGlyZWN0aW9uID0gWyZdIHsKKyAgICAgICAgaWYgKGRvY3VtZW50RWxl
bWVudFN0eWxlLT5oYXNFeHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpCisgICAgICAgICAgICByZXR1
cm4gZG9jdW1lbnRFbGVtZW50U3R5bGUtPmRpcmVjdGlvbigpOworICAgICAgICBpZiAoc2hvdWxk
UHJvcGFnYXRlRnJvbUJvZHkgJiYgYm9keVN0eWxlICYmIGJvZHlTdHlsZS0+aGFzRXhwbGljaXRs
eVNldERpcmVjdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGJvZHlTdHlsZS0+ZGlyZWN0aW9u
KCk7CisgICAgICAgIHJldHVybiBSZW5kZXJTdHlsZTo6aW5pdGlhbERpcmVjdGlvbigpOworICAg
IH0oKTsKKworICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3Mtd3JpdGluZy1tb2Rl
cy0zLyNpY2IKKyAgICBhdXRvJiB2aWV3U3R5bGUgPSBkb2N1bWVudC5yZW5kZXJWaWV3KCktPnN0
eWxlKCk7CisgICAgaWYgKHdyaXRpbmdNb2RlICE9IHZpZXdTdHlsZS53cml0aW5nTW9kZSgpIHx8
IGRpcmVjdGlvbiAhPSB2aWV3U3R5bGUuZGlyZWN0aW9uKCkpIHsKKyAgICAgICAgYXV0byBuZXdS
b290U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIodmlld1N0eWxlKTsKKyAgICAgICAgbmV3
Um9vdFN0eWxlLT5zZXRXcml0aW5nTW9kZSh3cml0aW5nTW9kZSk7CisgICAgICAgIG5ld1Jvb3RT
dHlsZS0+c2V0RGlyZWN0aW9uKGRpcmVjdGlvbik7CisgICAgICAgIG5ld1Jvb3RTdHlsZS0+c2V0
Q29sdW1uU3R5bGVzRnJvbVBhZ2luYXRpb25Nb2RlKGRvY3VtZW50LnZpZXcoKS0+cGFnaW5hdGlv
bigpLm1vZGUpOworICAgICAgICB1cGRhdGUuYWRkSW5pdGlhbENvbnRhaW5pbmdCbG9ja1VwZGF0
ZShXVEZNb3ZlKG5ld1Jvb3RTdHlsZSkpOworICAgIH0KKworICAgIC8vIGh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3Mtd3JpdGluZy1tb2Rlcy0zLyNwcmluY2lwYWwtZmxvdworICAgIGlmICh3
cml0aW5nTW9kZSAhPSBkb2N1bWVudEVsZW1lbnRTdHlsZS0+d3JpdGluZ01vZGUoKSB8fCBkaXJl
Y3Rpb24gIT0gZG9jdW1lbnRFbGVtZW50U3R5bGUtPmRpcmVjdGlvbigpKSB7CisgICAgICAgIGF1
dG8qIGRvY3VtZW50RWxlbWVudFVwZGF0ZSA9IHVwZGF0ZS5lbGVtZW50VXBkYXRlKCpkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQoKSk7CisgICAgICAgIGlmICghZG9jdW1lbnRFbGVtZW50VXBkYXRl
KSB7CisgICAgICAgICAgICB1cGRhdGUuYWRkRWxlbWVudCgqZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50KCksIG51bGxwdHIsIHsgUmVuZGVyU3R5bGU6OmNsb25lUHRyKCpkb2N1bWVudEVsZW1lbnRT
dHlsZSkgfSk7CisgICAgICAgICAgICBkb2N1bWVudEVsZW1lbnRVcGRhdGUgPSB1cGRhdGUuZWxl
bWVudFVwZGF0ZSgqZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpOworICAgICAgICB9CisgICAg
ICAgIGRvY3VtZW50RWxlbWVudFVwZGF0ZS0+c3R5bGUtPnNldFdyaXRpbmdNb2RlKHdyaXRpbmdN
b2RlKTsKKyAgICAgICAgZG9jdW1lbnRFbGVtZW50VXBkYXRlLT5zdHlsZS0+c2V0RGlyZWN0aW9u
KGRpcmVjdGlvbik7CisgICAgICAgIGRvY3VtZW50RWxlbWVudFVwZGF0ZS0+Y2hhbmdlID0gZGV0
ZXJtaW5lQ2hhbmdlKCpkb2N1bWVudEVsZW1lbnRTdHlsZSwgKmRvY3VtZW50RWxlbWVudFVwZGF0
ZS0+c3R5bGUpOworICAgIH0KK30KKworc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBBZGp1
c3Rlcjo6cmVzdG9yZVVzZWREb2N1bWVudEVsZW1lbnRTdHlsZVRvQ29tcHV0ZWQoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlKQoreworICAgIGlmIChzdHlsZS53cml0aW5nTW9kZSgpID09IFJlbmRl
clN0eWxlOjppbml0aWFsV3JpdGluZ01vZGUoKSAmJiBzdHlsZS5kaXJlY3Rpb24oKSA9PSBSZW5k
ZXJTdHlsZTo6aW5pdGlhbERpcmVjdGlvbigpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
YXV0byBhZGp1c3RlZCA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cihzdHlsZSk7CisgICAgaWYgKCFz
dHlsZS5oYXNFeHBsaWNpdGx5U2V0V3JpdGluZ01vZGUoKSkKKyAgICAgICAgYWRqdXN0ZWQtPnNl
dFdyaXRpbmdNb2RlKFJlbmRlclN0eWxlOjppbml0aWFsV3JpdGluZ01vZGUoKSk7CisgICAgaWYg
KCFzdHlsZS5oYXNFeHBsaWNpdGx5U2V0RGlyZWN0aW9uKCkpCisgICAgICAgIGFkanVzdGVkLT5z
ZXREaXJlY3Rpb24oUmVuZGVyU3R5bGU6OmluaXRpYWxEaXJlY3Rpb24oKSk7CisKKyAgICByZXR1
cm4gYWRqdXN0ZWQ7Cit9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogc3RhdGljIGJv
b2wgaGFzVGV4dENoaWxkKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUFkanVzdGVyLmgKaW5kZXggZGU4YTg1OGQ5NWZmLi5jNmU3YWQwMTQ5NWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgog
CiAgICAgc3RhdGljIHZvaWQgYWRqdXN0U1ZHRWxlbWVudFN0eWxlKFJlbmRlclN0eWxlJiwgY29u
c3QgU1ZHRWxlbWVudCYpOwogICAgIHN0YXRpYyB2b2lkIGFkanVzdEV2ZW50TGlzdGVuZXJSZWdp
b25UeXBlc0ZvclJvb3RTdHlsZShSZW5kZXJTdHlsZSYsIGNvbnN0IERvY3VtZW50Jik7CisgICAg
c3RhdGljIHZvaWQgcHJvcGFnYXRlVG9Eb2N1bWVudEVsZW1lbnRBbmRJbml0aWFsQ29udGFpbmlu
Z0Jsb2NrKFVwZGF0ZSYsIGNvbnN0IERvY3VtZW50Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxSZW5kZXJTdHlsZT4gcmVzdG9yZVVzZWREb2N1bWVudEVsZW1lbnRTdHlsZVRvQ29tcHV0
ZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKIAogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAg
ICAgc3RydWN0IEFkanVzdG1lbnRGb3JUZXh0QXV0b3NpemluZyB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKaW5kZXggMWVhNWNhYWU4MDU5
Li5hNTQzZGEzYzZiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVz
b2x2ZUZvckRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVGb3JEb2N1bWVudC5jcHAKQEAgLTcxLDI1ICs3MSw3IEBAIFJlbmRlclN0eWxlIHJlc29sdmVG
b3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiAjZW5kaWYKIAogICAgIEFkanVz
dGVyOjphZGp1c3RFdmVudExpc3RlbmVyUmVnaW9uVHlwZXNGb3JSb290U3R5bGUoZG9jdW1lbnRT
dHlsZSwgZG9jdW1lbnQpOwotCi0gICAgRWxlbWVudCogZG9jRWxlbWVudCA9IGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudCgpOwotICAgIFJlbmRlck9iamVjdCogZG9jRWxlbWVudFJlbmRlcmVyID0g
ZG9jRWxlbWVudCA/IGRvY0VsZW1lbnQtPnJlbmRlcmVyKCkgOiBudWxscHRyOwotICAgIGlmIChk
b2NFbGVtZW50UmVuZGVyZXIpIHsKLSAgICAgICAgLy8gVXNlIHRoZSBkaXJlY3Rpb24gYW5kIHdy
aXRpbmctbW9kZSBvZiB0aGUgYm9keSB0byBzZXQgdGhlCi0gICAgICAgIC8vIHZpZXdwb3J0J3Mg
ZGlyZWN0aW9uIGFuZCB3cml0aW5nLW1vZGUgdW5sZXNzIHRoZSBwcm9wZXJ0eSBpcyBzZXQgb24g
dGhlIGRvY3VtZW50IGVsZW1lbnQuCi0gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIGJvZHksIHRo
ZW4gdXNlIHRoZSBkb2N1bWVudCBlbGVtZW50LgotICAgICAgICBhdXRvKiBib2R5ID0gZG9jdW1l
bnQuYm9keU9yRnJhbWVzZXQoKTsKLSAgICAgICAgUmVuZGVyT2JqZWN0KiBib2R5UmVuZGVyZXIg
PSBib2R5ID8gYm9keS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7Ci0gICAgICAgIGlmIChib2R5UmVu
ZGVyZXIgJiYgIWRvY0VsZW1lbnRSZW5kZXJlci0+c3R5bGUoKS5oYXNFeHBsaWNpdGx5U2V0V3Jp
dGluZ01vZGUoKSkKLSAgICAgICAgICAgIGRvY3VtZW50U3R5bGUuc2V0V3JpdGluZ01vZGUoYm9k
eVJlbmRlcmVyLT5zdHlsZSgpLndyaXRpbmdNb2RlKCkpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBkb2N1bWVudFN0eWxlLnNldFdyaXRpbmdNb2RlKGRvY0VsZW1lbnRSZW5kZXJlci0+c3R5
bGUoKS53cml0aW5nTW9kZSgpKTsKLSAgICAgICAgaWYgKGJvZHlSZW5kZXJlciAmJiAhZG9jRWxl
bWVudFJlbmRlcmVyLT5zdHlsZSgpLmhhc0V4cGxpY2l0bHlTZXREaXJlY3Rpb24oKSkKLSAgICAg
ICAgICAgIGRvY3VtZW50U3R5bGUuc2V0RGlyZWN0aW9uKGJvZHlSZW5kZXJlci0+c3R5bGUoKS5k
aXJlY3Rpb24oKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRvY3VtZW50U3R5bGUuc2V0
RGlyZWN0aW9uKGRvY0VsZW1lbnRSZW5kZXJlci0+c3R5bGUoKS5kaXJlY3Rpb24oKSk7Ci0gICAg
fQotCisgICAgCiAgICAgY29uc3QgUGFnaW5hdGlvbiYgcGFnaW5hdGlvbiA9IHJlbmRlclZpZXcu
ZnJhbWVWaWV3KCkucGFnaW5hdGlvbigpOwogICAgIGlmIChwYWdpbmF0aW9uLm1vZGUgIT0gUGFn
aW5hdGlvbjo6VW5wYWdpbmF0ZWQpIHsKICAgICAgICAgZG9jdW1lbnRTdHlsZS5zZXRDb2x1bW5T
dHlsZXNGcm9tUGFnaW5hdGlvbk1vZGUocGFnaW5hdGlvbi5tb2RlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggMjMwMzdiYjk1YTcwLi5iMmFiYmE1YmU0NTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAg
cHVibGljOgogICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGVsZW1lbnQuZG9jdW1lbnQoKTsKICAg
ICAgICAgYXV0byogZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCk7
CiAgICAgICAgIGlmICghZG9jdW1lbnRFbGVtZW50IHx8IGRvY3VtZW50RWxlbWVudCA9PSAmZWxl
bWVudCkKLSAgICAgICAgICAgIG1fcm9vdEVsZW1lbnRTdHlsZSA9IGRvY3VtZW50LnJlbmRlclN0
eWxlKCk7CisgICAgICAgICAgICBtX3Jvb3RFbGVtZW50U3R5bGUgPSBkb2N1bWVudC5pbml0aWFs
Q29udGFpbmluZ0Jsb2NrU3R5bGUoKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9yb290
RWxlbWVudFN0eWxlID0gZG9jdW1lbnRFbGVtZW50U3R5bGUgPyBkb2N1bWVudEVsZW1lbnRTdHls
ZSA6IGRvY3VtZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsKICAgICB9CkBAIC0xNTksNyArMTU5
LDcgQEAgUmVzb2x2ZXI6OlJlc29sdmVyKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgbV9t
ZWRpYVF1ZXJ5RXZhbHVhdG9yID0gTGVnYWN5TWVkaWFRdWVyeUV2YWx1YXRvciB7IH07CiAKICAg
ICBpZiAoYXV0byogZG9jdW1lbnRFbGVtZW50ID0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQo
KSkgewotICAgICAgICBtX3Jvb3REZWZhdWx0U3R5bGUgPSBzdHlsZUZvckVsZW1lbnQoKmRvY3Vt
ZW50RWxlbWVudCwgeyBtX2RvY3VtZW50LnJlbmRlclN0eWxlKCkgfSwgUnVsZU1hdGNoaW5nQmVo
YXZpb3I6Ok1hdGNoT25seVVzZXJBZ2VudFJ1bGVzKS5yZW5kZXJTdHlsZTsKKyAgICAgICAgbV9y
b290RGVmYXVsdFN0eWxlID0gc3R5bGVGb3JFbGVtZW50KCpkb2N1bWVudEVsZW1lbnQsIHsgbV9k
b2N1bWVudC5pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUoKSB9LCBSdWxlTWF0Y2hpbmdCZWhh
dmlvcjo6TWF0Y2hPbmx5VXNlckFnZW50UnVsZXMpLnJlbmRlclN0eWxlOwogICAgICAgICAvLyBU
dXJuIG9mZiBhc3NlcnRpb24gYWdhaW5zdCBmb250IGxvb2t1cHMgZHVyaW5nIHN0eWxlIHJlc29s
dmVyIGluaXRpYWxpemF0aW9uLiBXZSBtYXkgbmVlZCByb290IHN0eWxlIGZvbnQgZm9yIG1lZGlh
IHF1ZXJpZXMuCiAgICAgICAgIG1fZG9jdW1lbnQuZm9udFNlbGVjdG9yKCkuaW5jcmVtZW50SXND
b21wdXRpbmdSb290U3R5bGVGb250KCk7CiAgICAgICAgIG1fcm9vdERlZmF1bHRTdHlsZS0+Zm9u
dENhc2NhZGUoKS51cGRhdGUoJm1fZG9jdW1lbnQuZm9udFNlbGVjdG9yKCkpOwpAQCAtNDc4LDE1
ICs0NzgsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBSZXNvbHZlcjo6cHNldWRv
U3R5bGVGb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW0KIHN0ZDo6dW5pcXVlX3B0cjxSZW5k
ZXJTdHlsZT4gUmVzb2x2ZXI6OnN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KQogewogICAgIGF1
dG8qIGRvY3VtZW50RWxlbWVudCA9IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCk7Ci0gICAg
aWYgKCFkb2N1bWVudEVsZW1lbnQpCisgICAgaWYgKCFkb2N1bWVudEVsZW1lbnQgfHwgIWRvY3Vt
ZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlclN0eWxlOjpj
cmVhdGVQdHIoKTsKIAotICAgIGF1dG8gc3RhdGUgPSBTdGF0ZSgqZG9jdW1lbnRFbGVtZW50LCBt
X2RvY3VtZW50LnJlbmRlclN0eWxlKCkpOworICAgIGF1dG8gc3RhdGUgPSBTdGF0ZSgqZG9jdW1l
bnRFbGVtZW50LCBtX2RvY3VtZW50LmluaXRpYWxDb250YWluaW5nQmxvY2tTdHlsZSgpKTsKIAog
ICAgIHN0YXRlLnNldFN0eWxlKFJlbmRlclN0eWxlOjpjcmVhdGVQdHIoKSk7CiAgICAgc3RhdGUu
c3R5bGUoKS0+aW5oZXJpdEZyb20oKnN0YXRlLnJvb3RFbGVtZW50U3R5bGUoKSk7CiAKLSAgICBQ
YWdlUnVsZUNvbGxlY3RvciBjb2xsZWN0b3IobV9ydWxlU2V0cywgc3RhdGUucm9vdEVsZW1lbnRT
dHlsZSgpLT5kaXJlY3Rpb24oKSk7CisgICAgUGFnZVJ1bGVDb2xsZWN0b3IgY29sbGVjdG9yKG1f
cnVsZVNldHMsIGRvY3VtZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKS0+ZGlyZWN0aW9uKCkpOwog
ICAgIGNvbGxlY3Rvci5tYXRjaEFsbFBhZ2VSdWxlcyhwYWdlSW5kZXgpOwogCiAgICAgYXV0byYg
cmVzdWx0ID0gY29sbGVjdG9yLm1hdGNoUmVzdWx0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggZjM0NmZkZjVkZTllLi43NmM2NGJkZTk1YTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKQEAgLTk3LDcgKzk3
LDcgQEAgVHJlZVJlc29sdmVyOjpTY29wZTo6flNjb3BlKCkKIAogVHJlZVJlc29sdmVyOjpQYXJl
bnQ6OlBhcmVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBlbGVtZW50KG51bGxwdHIpCi0g
ICAgLCBzdHlsZSgqZG9jdW1lbnQucmVuZGVyU3R5bGUoKSkKKyAgICAsIHN0eWxlKCpkb2N1bWVu
dC5pbml0aWFsQ29udGFpbmluZ0Jsb2NrU3R5bGUoKSkKIHsKIH0KIApAQCAtMTQxLDggKzE0MSw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gVHJlZVJlc29sdmVyOjpzdHlsZUZvclN0
eWxlYWJsZShjb25zdCBTdHlsZWFibGUmIHN0CiAKICAgICBpZiAocmVzb2x1dGlvblR5cGUgPT0g
UmVzb2x1dGlvblR5cGU6OkZhc3RQYXRoSW5oZXJpdCkgewogICAgICAgICAvLyBJZiB0aGUgb25s
eSByZWFzb24gd2UgYXJlIGNvbXB1dGluZyB0aGUgc3R5bGUgaXMgdGhhdCBzb21lIHBhcmVudCBp
bmhlcml0ZWQgcHJvcGVydGllcyBjaGFuZ2VkLCB3ZSBjYW4ganVzdCBjb3B5IHRoZW0uCi0gICAg
ICAgIGF1dG8mIGV4aXN0aW5nU3R5bGUgPSAqZWxlbWVudC5yZW5kZXJPckRpc3BsYXlDb250ZW50
c1N0eWxlKCk7Ci0gICAgICAgIGF1dG8gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoZXhp
c3RpbmdTdHlsZSk7CisgICAgICAgIGF1dG8gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIo
KmV4aXN0aW5nU3R5bGUoZWxlbWVudCkpOwogICAgICAgICBzdHlsZS0+ZmFzdFBhdGhJbmhlcml0
RnJvbShwYXJlbnQoKS5zdHlsZSk7CiAgICAgICAgIHJldHVybiBzdHlsZTsKICAgICB9CkBAIC0y
MTAsNyArMjA5LDcgQEAgYXV0byBUcmVlUmVzb2x2ZXI6OmNvbXB1dGVEZXNjZW5kYW50c1RvUmVz
b2x2ZShDaGFuZ2UgY2hhbmdlLCBWYWxpZGl0eSB2YWxpZGl0eSwKICAgICByZXR1cm4gRGVzY2Vu
ZGFudHNUb1Jlc29sdmU6Ok5vbmU7CiB9OwogCi1hdXRvIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVs
ZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgUmVzb2x1dGlvblR5cGUgcmVzb2x1dGlvblR5cGUpIC0+
IHN0ZDo6cGFpcjxFbGVtZW50VXBkYXRlLCBEZXNjZW5kYW50c1RvUmVzb2x2ZT4KK2F1dG8gVHJl
ZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJT
dHlsZSogZXhpc3RpbmdTdHlsZSwgUmVzb2x1dGlvblR5cGUgcmVzb2x1dGlvblR5cGUpIC0+IHN0
ZDo6cGFpcjxFbGVtZW50VXBkYXRlLCBEZXNjZW5kYW50c1RvUmVzb2x2ZT4KIHsKICAgICBpZiAo
bV9kaWRTZWVQZW5kaW5nU3R5bGVzaGVldCAmJiAhZWxlbWVudC5yZW5kZXJPckRpc3BsYXlDb250
ZW50c1N0eWxlKCkgJiYgIW1fZG9jdW1lbnQuaXNJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0cygp
KSB7CiAgICAgICAgIG1fZG9jdW1lbnQuc2V0SGFzTm9kZXNXaXRoTWlzc2luZ1N0eWxlKCk7CkBA
IC0yMjgsOCArMjI3LDYgQEAgYXV0byBUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50KEVsZW1l
bnQmIGVsZW1lbnQsIFJlc29sdXRpb25UeXBlIHJlc29sdXRpb25UeXAKICAgICBpZiAoIWFmZmVj
dHNSZW5kZXJlZFN1YnRyZWUoZWxlbWVudCwgKm5ld1N0eWxlKSkKICAgICAgICAgcmV0dXJuIHsg
fTsKIAotICAgIGF1dG8qIGV4aXN0aW5nU3R5bGUgPSBlbGVtZW50LnJlbmRlck9yRGlzcGxheUNv
bnRlbnRzU3R5bGUoKTsKLQogICAgIGlmIChtX2RpZFNlZVBlbmRpbmdTdHlsZXNoZWV0ICYmICgh
ZXhpc3RpbmdTdHlsZSB8fCBleGlzdGluZ1N0eWxlLT5pc05vdEZpbmFsKCkpKSB7CiAgICAgICAg
IG5ld1N0eWxlLT5zZXRJc05vdEZpbmFsKCk7CiAgICAgICAgIG1fZG9jdW1lbnQuc2V0SGFzTm9k
ZXNXaXRoTm9uRmluYWxTdHlsZSgpOwpAQCAtMjM5LDggKzIzNiw2IEBAIGF1dG8gVHJlZVJlc29s
dmVyOjpyZXNvbHZlRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBSZXNvbHV0aW9uVHlwZSByZXNv
bHV0aW9uVHlwCiAgICAgYXV0byBkZXNjZW5kYW50c1RvUmVzb2x2ZSA9IGNvbXB1dGVEZXNjZW5k
YW50c1RvUmVzb2x2ZSh1cGRhdGUuY2hhbmdlLCBlbGVtZW50LnN0eWxlVmFsaWRpdHkoKSwgcGFy
ZW50KCkuZGVzY2VuZGFudHNUb1Jlc29sdmUpOwogCiAgICAgaWYgKCZlbGVtZW50ID09IG1fZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpIHsKLSAgICAgICAgbV9kb2N1bWVudEVsZW1lbnRTdHls
ZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cigqdXBkYXRlLnN0eWxlKTsKLQogICAgICAgICBpZiAo
IWV4aXN0aW5nU3R5bGUgfHwgZXhpc3RpbmdTdHlsZS0+Y29tcHV0ZWRGb250UGl4ZWxTaXplKCkg
IT0gdXBkYXRlLnN0eWxlLT5jb21wdXRlZEZvbnRQaXhlbFNpemUoKSkgewogICAgICAgICAgICAg
Ly8gInJlbSIgdW5pdHMgYXJlIHJlbGF0aXZlIHRvIHRoZSBkb2N1bWVudCBlbGVtZW50J3MgZm9u
dCBzaXplIHNvIHdlIG5lZWQgdG8gcmVjb21wdXRlIGV2ZXJ5dGhpbmcuCiAgICAgICAgICAgICBz
Y29wZSgpLnJlc29sdmVyLT5pbnZhbGlkYXRlTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlKCk7CkBA
IC02ODgsNyArNjgzLDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVzb2x2ZVBzZXVkb0VsZW1lbnQo
Y29uc3QgUHNldWRvRWxlbWVudCogcHNldWRvRWxlbWVudCkKICAgICByZXR1cm4gcHNldWRvRWxl
bWVudC0+bmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1hdXRvIFRyZWVSZXNvbHZlcjo6ZGV0ZXJt
aW5lUmVzb2x1dGlvblR5cGUoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgRGVzY2VuZGFudHNUb1Jl
c29sdmUgcGFyZW50RGVzY2VuZGFudHNUb1Jlc29sdmUsIENoYW5nZSBwYXJlbnRDaGFuZ2UpIC0+
IHN0ZDo6b3B0aW9uYWw8UmVzb2x1dGlvblR5cGU+CithdXRvIFRyZWVSZXNvbHZlcjo6ZGV0ZXJt
aW5lUmVzb2x1dGlvblR5cGUoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyU3R5
bGUqIGV4aXN0aW5nU3R5bGUsIERlc2NlbmRhbnRzVG9SZXNvbHZlIHBhcmVudERlc2NlbmRhbnRz
VG9SZXNvbHZlLCBDaGFuZ2UgcGFyZW50Q2hhbmdlKSAtPiBzdGQ6Om9wdGlvbmFsPFJlc29sdXRp
b25UeXBlPgogewogICAgIGlmIChlbGVtZW50LnN0eWxlVmFsaWRpdHkoKSAhPSBWYWxpZGl0eTo6
VmFsaWQpCiAgICAgICAgIHJldHVybiBSZXNvbHV0aW9uVHlwZTo6RnVsbDsKQEAgLTcwMiw3ICs2
OTcsNiBAQCBhdXRvIFRyZWVSZXNvbHZlcjo6ZGV0ZXJtaW5lUmVzb2x1dGlvblR5cGUoY29uc3Qg
RWxlbWVudCYgZWxlbWVudCwgRGVzY2VuZGFudHNUbwogICAgICAgICByZXR1cm4geyB9OwogICAg
IGNhc2UgRGVzY2VuZGFudHNUb1Jlc29sdmU6OkNoaWxkcmVuOgogICAgICAgICBpZiAocGFyZW50
Q2hhbmdlID09IENoYW5nZTo6RmFzdFBhdGhJbmhlcml0ZWQpIHsKLSAgICAgICAgICAgIGF1dG8q
IGV4aXN0aW5nU3R5bGUgPSBlbGVtZW50LnJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUoKTsK
ICAgICAgICAgICAgIGlmIChleGlzdGluZ1N0eWxlICYmICFleGlzdGluZ1N0eWxlLT5kaXNhbGxv
d3NGYXN0UGF0aEluaGVyaXRhbmNlKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc29sdXRp
b25UeXBlOjpGYXN0UGF0aEluaGVyaXQ7CiAgICAgICAgIH0KQEAgLTcxMCw3ICs3MDQsNiBAQCBh
dXRvIFRyZWVSZXNvbHZlcjo6ZGV0ZXJtaW5lUmVzb2x1dGlvblR5cGUoY29uc3QgRWxlbWVudCYg
ZWxlbWVudCwgRGVzY2VuZGFudHNUbwogICAgIGNhc2UgRGVzY2VuZGFudHNUb1Jlc29sdmU6OkFs
bDoKICAgICAgICAgcmV0dXJuIFJlc29sdXRpb25UeXBlOjpGdWxsOwogICAgIGNhc2UgRGVzY2Vu
ZGFudHNUb1Jlc29sdmU6OkNoaWxkcmVuV2l0aEV4cGxpY2l0SW5oZXJpdDoKLSAgICAgICAgYXV0
byogZXhpc3RpbmdTdHlsZSA9IGVsZW1lbnQucmVuZGVyT3JEaXNwbGF5Q29udGVudHNTdHlsZSgp
OwogICAgICAgICBpZiAoZXhpc3RpbmdTdHlsZSAmJiBleGlzdGluZ1N0eWxlLT5oYXNFeHBsaWNp
dGx5SW5oZXJpdGVkUHJvcGVydGllcygpKQogICAgICAgICAgICAgcmV0dXJuIFJlc29sdXRpb25U
eXBlOjpGdWxsOwogICAgICAgICByZXR1cm4geyB9OwpAQCAtODE1LDEyICs4MDgsMTMgQEAgdm9p
ZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUoKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvKiBzdHlsZSA9IGVsZW1lbnQucmVuZGVyT3JE
aXNwbGF5Q29udGVudHNTdHlsZSgpOworICAgICAgICBhdXRvKiBzdHlsZSA9IGV4aXN0aW5nU3R5
bGUoZWxlbWVudCk7CisKICAgICAgICAgYXV0byBjaGFuZ2UgPSBDaGFuZ2U6Ok5vbmU7CiAgICAg
ICAgIGF1dG8gZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6Tm9u
ZTsKICAgICAgICAgYXV0byBwcmV2aW91c0NvbnRhaW5lclR5cGUgPSBzdHlsZSA/IHN0eWxlLT5j
b250YWluZXJUeXBlKCkgOiBDb250YWluZXJUeXBlOjpOb3JtYWw7CiAKLSAgICAgICAgYXV0byBy
ZXNvbHV0aW9uVHlwZSA9IGRldGVybWluZVJlc29sdXRpb25UeXBlKGVsZW1lbnQsIHBhcmVudC5k
ZXNjZW5kYW50c1RvUmVzb2x2ZSwgcGFyZW50LmNoYW5nZSk7CisgICAgICAgIGF1dG8gcmVzb2x1
dGlvblR5cGUgPSBkZXRlcm1pbmVSZXNvbHV0aW9uVHlwZShlbGVtZW50LCBzdHlsZSwgcGFyZW50
LmRlc2NlbmRhbnRzVG9SZXNvbHZlLCBwYXJlbnQuY2hhbmdlKTsKICAgICAgICAgaWYgKHJlc29s
dXRpb25UeXBlKSB7CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnQuaGFzRGlzcGxheUNvbnRlbnRz
KCkpCiAgICAgICAgICAgICAgICAgZWxlbWVudC5yZXNldENvbXB1dGVkU3R5bGUoKTsKQEAgLTgy
OSw3ICs4MjMsNyBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSgpCiAg
ICAgICAgICAgICBpZiAoZWxlbWVudC5oYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKSkK
ICAgICAgICAgICAgICAgICBlbGVtZW50LndpbGxSZWNhbGNTdHlsZShwYXJlbnQuY2hhbmdlKTsK
IAotICAgICAgICAgICAgYXV0byBbZWxlbWVudFVwZGF0ZSwgZWxlbWVudERlc2NlbmRhbnRzVG9S
ZXNvbHZlXSA9IHJlc29sdmVFbGVtZW50KGVsZW1lbnQsICpyZXNvbHV0aW9uVHlwZSk7CisgICAg
ICAgICAgICBhdXRvIFtlbGVtZW50VXBkYXRlLCBlbGVtZW50RGVzY2VuZGFudHNUb1Jlc29sdmVd
ID0gcmVzb2x2ZUVsZW1lbnQoZWxlbWVudCwgc3R5bGUsICpyZXNvbHV0aW9uVHlwZSk7CiAKICAg
ICAgICAgICAgIGlmIChlbGVtZW50Lmhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpKQog
ICAgICAgICAgICAgICAgIGVsZW1lbnQuZGlkUmVjYWxjU3R5bGUoZWxlbWVudFVwZGF0ZS5jaGFu
Z2UpOwpAQCAtODM4LDkgKzgzMiwxMiBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBv
c2VkVHJlZSgpCiAgICAgICAgICAgICBjaGFuZ2UgPSBlbGVtZW50VXBkYXRlLmNoYW5nZTsKICAg
ICAgICAgICAgIGRlc2NlbmRhbnRzVG9SZXNvbHZlID0gZWxlbWVudERlc2NlbmRhbnRzVG9SZXNv
bHZlOwogCi0gICAgICAgICAgICBpZiAoZWxlbWVudFVwZGF0ZS5zdHlsZSkKKyAgICAgICAgICAg
IGlmIChzdHlsZSkgewogICAgICAgICAgICAgICAgIG1fdXBkYXRlLT5hZGRFbGVtZW50KGVsZW1l
bnQsIHBhcmVudC5lbGVtZW50LCBXVEZNb3ZlKGVsZW1lbnRVcGRhdGUpKTsKIAorICAgICAgICAg
ICAgICAgIGlmICgmZWxlbWVudCA9PSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpKQorICAg
ICAgICAgICAgICAgICAgICBtX2RvY3VtZW50RWxlbWVudFN0eWxlID0gUmVuZGVyU3R5bGU6OmNs
b25lUHRyKCpzdHlsZSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjbGVhck5lZWRzU3R5
bGVSZXNvbHV0aW9uKGVsZW1lbnQpOwogICAgICAgICB9CiAKQEAgLTg4MSw2ICs4NzgsMTkgQEAg
dm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUoKQogICAgIHBvcFBhcmVudHNU
b0RlcHRoKDEpOwogfQogCitjb25zdCBSZW5kZXJTdHlsZSogVHJlZVJlc29sdmVyOjpleGlzdGlu
Z1N0eWxlKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgYXV0byogc3R5bGUgPSBlbGVt
ZW50LnJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUoKTsKKworICAgIGlmIChzdHlsZSAmJiAm
ZWxlbWVudCA9PSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpKSB7CisgICAgICAgIC8vIERv
Y3VtZW50IGVsZW1lbnQgc3R5bGUgbWF5IGhhdmUgZ290IGFkanVzdGVkIGJhc2VkIG9uIGJvZHkg
c3R5bGUgYnV0IHdlIGRvbid0IHdhbnQgdG8gaW5oZXJpdCB0aG9zZSBhZGp1c3RtZW50cy4KKyAg
ICAgICAgbV9kb2N1bWVudEVsZW1lbnRTdHlsZSA9IEFkanVzdGVyOjpyZXN0b3JlVXNlZERvY3Vt
ZW50RWxlbWVudFN0eWxlVG9Db21wdXRlZCgqc3R5bGUpOworICAgICAgICBpZiAobV9kb2N1bWVu
dEVsZW1lbnRTdHlsZSkKKyAgICAgICAgICAgIHN0eWxlID0gbV9kb2N1bWVudEVsZW1lbnRTdHls
ZS5nZXQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3R5bGU7Cit9CiAKIGF1dG8gVHJlZVJlc29s
dmVyOjp1cGRhdGVTdGF0ZUZvclF1ZXJ5Q29udGFpbmVyKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0
IFJlbmRlclN0eWxlKiBzdHlsZSwgQ29udGFpbmVyVHlwZSBwcmV2aW91c0NvbnRhaW5lclR5cGUs
IENoYW5nZSYgY2hhbmdlLCBEZXNjZW5kYW50c1RvUmVzb2x2ZSYgZGVzY2VuZGFudHNUb1Jlc29s
dmUpIC0+IFF1ZXJ5Q29udGFpbmVyQWN0aW9uCiB7CkBAIC05NDcsNiArOTU3LDggQEAgc3RkOjp1
bmlxdWVfcHRyPFVwZGF0ZT4gVHJlZVJlc29sdmVyOjpyZXNvbHZlKCkKICAgICBpZiAobV91cGRh
dGUtPnJvb3RzKCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4geyB9OwogCisgICAgQWRqdXN0
ZXI6OnByb3BhZ2F0ZVRvRG9jdW1lbnRFbGVtZW50QW5kSW5pdGlhbENvbnRhaW5pbmdCbG9jaygq
bV91cGRhdGUsIG1fZG9jdW1lbnQpOworCiAgICAgcmV0dXJuIFdURk1vdmUobV91cGRhdGUpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5o
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaAppbmRleCBjZWQ0YmI2
YWUzMDQuLjk1YWJiYTQ2M2ZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5oCkBAIC02MywxMiArNjMsMTQgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVzb2x2ZUNv
bXBvc2VkVHJlZSgpOwogCisgICAgY29uc3QgUmVuZGVyU3R5bGUqIGV4aXN0aW5nU3R5bGUoY29u
c3QgRWxlbWVudCYpOworCiAgICAgZW51bSBjbGFzcyBRdWVyeUNvbnRhaW5lckFjdGlvbiA6IHVp
bnQ4X3QgeyBOb25lLCBSZXNvbHZlLCBDb250aW51ZSB9OwogICAgIGVudW0gY2xhc3MgRGVzY2Vu
ZGFudHNUb1Jlc29sdmUgOiB1aW50OF90IHsgTm9uZSwgQ2hpbGRyZW5XaXRoRXhwbGljaXRJbmhl
cml0LCBDaGlsZHJlbiwgQWxsIH07CiAKICAgICBRdWVyeUNvbnRhaW5lckFjdGlvbiB1cGRhdGVT
dGF0ZUZvclF1ZXJ5Q29udGFpbmVyKEVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSosIENvbnRh
aW5lclR5cGUgcHJldmlvdXNDb250YWluZXJUeXBlLCBDaGFuZ2UmLCBEZXNjZW5kYW50c1RvUmVz
b2x2ZSYpOwogCi0gICAgc3RkOjpwYWlyPEVsZW1lbnRVcGRhdGUsIERlc2NlbmRhbnRzVG9SZXNv
bHZlPiByZXNvbHZlRWxlbWVudChFbGVtZW50JiwgUmVzb2x1dGlvblR5cGUpOworICAgIHN0ZDo6
cGFpcjxFbGVtZW50VXBkYXRlLCBEZXNjZW5kYW50c1RvUmVzb2x2ZT4gcmVzb2x2ZUVsZW1lbnQo
RWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlKiBleGlzdGluZ1N0eWxlLCBSZXNvbHV0aW9uVHlw
ZSk7CiAKICAgICBFbGVtZW50VXBkYXRlIGNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0ZShzdGQ6
OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+LCBjb25zdCBTdHlsZWFibGUmLCBDaGFuZ2UsIGNvbnN0
IFJlc29sdXRpb25Db250ZXh0Jik7CiAgICAgc3RkOjpvcHRpb25hbDxFbGVtZW50VXBkYXRlPiBy
ZXNvbHZlUHNldWRvRWxlbWVudChFbGVtZW50JiwgUHNldWRvSWQsIGNvbnN0IEVsZW1lbnRVcGRh
dGUmKTsKQEAgLTExNCw3ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9wUGFyZW50c1Rv
RGVwdGgodW5zaWduZWQgZGVwdGgpOwogCiAgICAgc3RhdGljIERlc2NlbmRhbnRzVG9SZXNvbHZl
IGNvbXB1dGVEZXNjZW5kYW50c1RvUmVzb2x2ZShDaGFuZ2UsIFZhbGlkaXR5LCBEZXNjZW5kYW50
c1RvUmVzb2x2ZSk7Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVzb2x1dGlvblR5cGU+IGRl
dGVybWluZVJlc29sdXRpb25UeXBlKGNvbnN0IEVsZW1lbnQmLCBEZXNjZW5kYW50c1RvUmVzb2x2
ZSwgQ2hhbmdlIHBhcmVudENoYW5nZSk7CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVzb2x1
dGlvblR5cGU+IGRldGVybWluZVJlc29sdXRpb25UeXBlKGNvbnN0IEVsZW1lbnQmLCBjb25zdCBS
ZW5kZXJTdHlsZSosIERlc2NlbmRhbnRzVG9SZXNvbHZlLCBDaGFuZ2UgcGFyZW50Q2hhbmdlKTsK
ICAgICBzdGF0aWMgdm9pZCByZXNldERlc2NlbmRhbnRTdHlsZVJlbGF0aW9ucyhFbGVtZW50Jiwg
RGVzY2VuZGFudHNUb1Jlc29sdmUpOwogCiAgICAgUmVzb2x1dGlvbkNvbnRleHQgbWFrZVJlc29s
dXRpb25Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVw
ZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAppbmRleCBiYjMxZDQ3
ZWQxM2QuLmY1NjA0OGFiNGY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVVcGRhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCkBAIC02
Niw2ICs2Niw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFRleHRVcGRhdGUqIHRleHRVcGRhdGUo
Y29uc3QgVGV4dCYpIGNvbnN0OwogCisgICAgY29uc3QgUmVuZGVyU3R5bGUqIGluaXRpYWxDb250
YWluaW5nQmxvY2tVcGRhdGUoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWxDb250YWluaW5nQmxv
Y2tVcGRhdGUuZ2V0KCk7IH0KKwogICAgIGNvbnN0IFJlbmRlclN0eWxlKiBlbGVtZW50U3R5bGUo
Y29uc3QgRWxlbWVudCYpIGNvbnN0OwogICAgIFJlbmRlclN0eWxlKiBlbGVtZW50U3R5bGUoY29u
c3QgRWxlbWVudCYpOwogCkBAIC03OCw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFRl
eHQoVGV4dCYsIEVsZW1lbnQqIHBhcmVudCwgVGV4dFVwZGF0ZSYmKTsKICAgICB2b2lkIGFkZFRl
eHQoVGV4dCYsIFRleHRVcGRhdGUmJik7CiAgICAgdm9pZCBhZGRTVkdSZW5kZXJlclVwZGF0ZShT
VkdFbGVtZW50Jik7CisgICAgdm9pZCBhZGRJbml0aWFsQ29udGFpbmluZ0Jsb2NrVXBkYXRlKHN0
ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUpIHsgbV9pbml0aWFsQ29udGFpbmluZ0Js
b2NrVXBkYXRlID0gV1RGTW92ZShzdHlsZSk7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGFkZFBv
c3NpYmxlUm9vdChFbGVtZW50Kik7CkBAIC04Niw2ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgTGlz
dEhhc2hTZXQ8UmVmUHRyPENvbnRhaW5lck5vZGU+PiBtX3Jvb3RzOwogICAgIEhhc2hNYXA8UmVm
UHRyPGNvbnN0IEVsZW1lbnQ+LCBFbGVtZW50VXBkYXRlPiBtX2VsZW1lbnRzOwogICAgIEhhc2hN
YXA8UmVmUHRyPGNvbnN0IFRleHQ+LCBUZXh0VXBkYXRlPiBtX3RleHRzOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gbV9pbml0aWFsQ29udGFpbmluZ0Jsb2NrVXBkYXRlOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMDY2YjE0ZTY3ZmZjLi4yY2YzNzA5YWViZDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNDU1NSw4ICs0NTU1LDYgQEAgd2Via2l0Lm9yZy9iLzIxNDI5
MSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy9z
cmwtYWwKIHdlYmtpdC5vcmcvYi8yMTQyOTEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvdGN5LXdoaXRlLXNwYWNlLXByb2Nlc3NpbmctMDAxLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTQyOTEgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvdGV4dC1vcmllbnRhdGlv
bi1pbml0aWFsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTQyOTEg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvd20t
cHJvcGFnYXRpb24tMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8y
MTQyOTEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9k
ZXMvd20tcHJvcGFnYXRpb24tYm9keS0wMzIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
d3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LTAzMy5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMjE0MjkxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktMDM0Lmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTQyOTEgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmctbW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS0w
MzUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIxNDI5MSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdh
dGlvbi1ib2R5LTAzNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCkBAIC02MDQ4LDQgKzYwNDYs
NCBAQCBmdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZW50ZXItYm90dG9tLXBhZGRpbmctYW5pbWF0aW9u
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvbG9hZGluZy9vYXV0aC5odG1sIFsgRHVtcEpTQ29u
c29sZUxvZ0luU3RkRXJyIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3ZpZGVvLXdpdGgtaHR0cHMtdXJsLWFsbG93ZWQtYnktY3NwLW1lZGlhLXNyYy1zdGFyLmh0
bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jbGlwYm9hcmQtYXBpcy9mZWF0dXJlLXBvbGljeS9jbGlwYm9hcmQtd3JpdGUvY2xp
cGJvYXJkLXdyaXRlLWRpc2FibGVkLWJ5LWZlYXR1cmUtcG9saWN5LnRlbnRhdGl2ZS5odHRwcy5z
dWIuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscy90ZXJtaW5vbG9neS0wL2RvY3Vt
ZW50LWJhc2UtdXJsLWluaXRpYXRlZC1ncmFuZC1wYXJlbnQuaHR0cHMud2luZG93Lmh0bWwgWyBE
dW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS91cmxzL3Rl
cm1pbm9sb2d5LTAvZG9jdW1lbnQtYmFzZS11cmwtaW5pdGlhdGVkLWdyYW5kLXBhcmVudC5odHRw
cy53aW5kb3cuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1vZGUtYm9keS1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHktZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmIzZTg2
MzNhNzQxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2Rl
L3dyaXRpbmctbW9kZS1ib2R5LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSBAQAorVGhpcyBzaG91
bGQgYmUgaG9yaXpvbnRhbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1t
b2RlL3dyaXRpbmctbW9kZS1ib2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9k
ZS93cml0aW5nLW1vZGUtYm9keS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMC4uNmVlMWQ1NjU3YWRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWJvZHkuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxw
PlRoaXMgc2hvdWxkIGJlIGhvcml6b250YWwuPC9wPgorPHNjcmlwdD4KK2NvbnN0IHRhcmdldCA9
IGRvY3VtZW50LmJvZHk7Cit0YXJnZXQuc3R5bGUud3JpdGluZ01vZGUgPSAndmVydGljYWwtcmwn
OwordGFyZ2V0Lm9mZnNldExlZnQ7Cit0YXJnZXQuc3R5bGUud3JpdGluZ01vZGUgPSAnJzsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93cml0aW5nLW1vZGUvd3JpdGlu
Zy1tb2RlLWRvY3VtZW50LWVsZW1lbnQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
d3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1bWVudC1lbGVtZW50LWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iM2U4NjMzYTc0MTgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmctbW9kZS93cml0aW5nLW1v
ZGUtZG9jdW1lbnQtZWxlbWVudC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEgQEAKK1RoaXMgc2hv
dWxkIGJlIGhvcml6b250YWwuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3dyaXRpbmct
bW9kZS93cml0aW5nLW1vZGUtZG9jdW1lbnQtZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC93cml0aW5nLW1vZGUvd3JpdGluZy1tb2RlLWRvY3VtZW50LWVsZW1lbnQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhiNGYxODcwYzA5ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd3JpdGluZy1tb2RlL3dyaXRpbmctbW9kZS1kb2N1
bWVudC1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSw3IEBACis8cD5UaGlzIHNob3VsZCBiZSBob3Jp
em9udGFsLjwvcD4KKzxzY3JpcHQ+Citjb25zdCB0YXJnZXQgPSBkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQ7Cit0YXJnZXQuc3R5bGUud3JpdGluZ01vZGUgPSAndmVydGljYWwtcmwnOwordGFyZ2V0
Lm9mZnNldExlZnQ7Cit0YXJnZXQuc3R5bGUud3JpdGluZ01vZGUgPSAnJzsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXdyaXRpbmctbW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktY29tcHV0ZWQtcm9vdC1l
eHBlY3RlZC50eHQKaW5kZXggNzUwZTJiOTA5NmE2Li40OTVhODQwYzJiYWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0
aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktY29tcHV0ZWQtcm9vdC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXdyaXRpbmctbW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS1jb21wdXRlZC1yb290LWV4cGVjdGVk
LnR4dApAQCAtMSw1ICsxLDUgQEAKIAogUEFTUyBDaGVjayBjb21wdXRlZCB3cml0aW5nLW1vZGUg
Zm9yIGJvZHkgZWxlbWVudC4KLUZBSUwgQ2hlY2sgY29tcHV0ZWQgd3JpdGluZy1tb2RlIGZvciBo
dG1sIHJvb3QgZWxlbWVudC4gYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVl
ICJ2ZXJ0aWNhbC1sciIKLUZBSUwgQ2hlY2sgY29tcHV0ZWQgd3JpdGluZy1tb2RlIGZvciBib2R5
IGVsZW1lbnQgd2hlbiBzdHlsZSBubyBsb25nZXIgYXBwbGllcy4gYXNzZXJ0X25vdF9lcXVhbHM6
IGdvdCBkaXNhbGxvd2VkIHZhbHVlICJ2ZXJ0aWNhbC1sciIKK1BBU1MgQ2hlY2sgY29tcHV0ZWQg
d3JpdGluZy1tb2RlIGZvciBodG1sIHJvb3QgZWxlbWVudC4KK1BBU1MgQ2hlY2sgY29tcHV0ZWQg
d3JpdGluZy1tb2RlIGZvciBib2R5IGVsZW1lbnQgd2hlbiBzdHlsZSBubyBsb25nZXIgYXBwbGll
cy4KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>