<?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>184838</bug_id>
          
          <creation_ts>2018-04-20 14:14:24 -0700</creation_ts>
          <short_desc>Add facility for tracking times and results of page and resource loading</short_desc>
          <delta_ts>2018-05-03 15:08:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1416414</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-04-20 14:14:24 -0700</bug_when>
    <thetext>Add a facility for tracking and reporting page and resource loads.

&lt;rdar://problem/36548974&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417293</commentid>
    <comment_count>1</comment_count>
      <attachid>338673</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-04-24 14:49:41 -0700</bug_when>
    <thetext>Created attachment 338673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417321</commentid>
    <comment_count>2</comment_count>
      <attachid>338681</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-04-24 15:49:52 -0700</bug_when>
    <thetext>Created attachment 338681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417672</commentid>
    <comment_count>3</comment_count>
      <attachid>338768</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-04-25 12:09:15 -0700</bug_when>
    <thetext>Created attachment 338768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417834</commentid>
    <comment_count>4</comment_count>
      <attachid>338814</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-04-25 16:06:06 -0700</bug_when>
    <thetext>Created attachment 338814
Rebase to fix merge conflicts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418066</commentid>
    <comment_count>5</comment_count>
      <attachid>338814</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-04-26 09:31:49 -0700</bug_when>
    <thetext>Comment on attachment 338814
Rebase to fix merge conflicts.

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

Looks good! r- to fix the iterator stuff and clean up the struct a little. Nice job!

&gt; Source/WebKit/Configurations/WebKit.xcconfig:115
&gt; +FRAMEWORK_AND_LIBRARY_LDFLAGS = -lobjc -framework CFNetwork -framework CoreAudio -framework CoreFoundation -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework IOKit -framework WebKitLegacy -lnetwork $(WK_ACCESSIBILITY_LDFLAGS) $(WK_APPKIT_LDFLAGS) $(WK_ASSERTION_SERVICES_LDFLAGS) $(WK_CARBON_LDFLAGS) $(WK_CORE_PDF_LDFLAGS) $(WK_CORE_PREDICTION_LDFLAGS) $(WK_CORE_SERVICES_LDFLAGS) $(WK_GRAPHICS_SERVICES_LDFLAGS) $(WK_IOSURFACE_LDFLAGS) $(WK_LIBWEBRTC_LDFLAGS) $(WK_MOBILE_CORE_SERVICES_LDFLAGS) $(WK_MOBILE_GESTALT_LDFLAGS) $(WK_OPENGL_LDFLAGS) $(WK_PDFKIT_LDFLAGS) $(WK_SAFE_BROWSING_LDFLAGS) $(WK_UIKIT_LDFLAGS);

Is it safe to add &quot;-lnetwork&quot; unconditionally? Based on EWS I assume it&apos;s fine.

&gt; Source/WebKit/NetworkProcess/NetworkActivityTracker.h:73
&gt; +    nw_activity_t get() { return m_networkActivity.get(); }

I wonder if Soup or Curl has any similar network health features? If so, we could make this a &apos;PlatformActivity&apos; type that would vary based on platform. But that&apos;s not something we need for this patch.

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:586
&gt; +            return std::nullopt;

If the network process crashed, shouldn&apos;t we create a new activity tracker so that we can at least capture whatever data comes in for the remaining loads?

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:630
&gt; +        m_networkActivityTrackers[itemIndex].m_networkActivity.complete(NetworkActivityTracker::CompletionCode::None);

This would be better as:

for (auto&amp; activityTracker : m_networkActivityTrackers)
    activityTracker.m_networkActivity.complete(...)

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:644
&gt; +            m_networkActivityTrackers.remove(itemIndex);

I really hate this kind of iterating over a container while removing elements. We have had so many security and stability bugs due to this kind of stuff.

Instead, I propose:

for (auto&amp; activityTracker : m_networkActivityTrackers) {
    if (activityTracker.m_pageID == pageID)
        acitivityTracker.m_networkActivity.complete(NetworkActivityTracker::CompletionCode::None);
}

m_networkActivityTrackers.removeAllMatching([&amp;](const auto&amp; activityTracker) { return activityTracker.pageID == pageID; });

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:654
&gt; +    }

return m_networkActivityTrackers.findMatching([&amp;](const auto&amp; item) { return item.m_isRootActivity &amp;&amp; item.m_pageID == pageID; });

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:664
&gt; +    }

return m_networkActivityTrackers.findMatching([&amp;](const auto&amp; item) { return item.m_resourceID == resourceID; });

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:211
&gt; +        NetworkActivityTracker m_networkActivity;

Since this is a struct and doesn&apos;t encapsulate these members behind accessors, they should be renamed without the &quot;m_*&quot; prefix.

&gt; Source/WebKit/NetworkProcess/NetworkLoadParameters.h:28
&gt; +#include &quot;NetworkActivityTracker.h&quot;

Could this just be a forward declaration?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418109</commentid>
    <comment_count>6</comment_count>
      <attachid>338814</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-04-26 10:23:24 -0700</bug_when>
    <thetext>Comment on attachment 338814
Rebase to fix merge conflicts.

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

&gt; Source/WTF/wtf/Platform.h:1274
&gt; +#if USE(APPLE_INTERNAL_SDK) &amp;&amp; __has_include(&lt;nw/activity.h&gt;)

Will this make aI think this will make each file check for the existence of &lt;nw/activity.h&gt; which could slow down the build a bit.  Is there a better way to describe when we expect it to be available?

&gt; Source/WebCore/loader/FrameLoader.cpp:263
&gt;      Frame&amp; m_frame;
&gt; +    FrameLoaderClient&amp; m_client;

We shouldn&apos;t need to keep both of these.  We can access the FrameLoaderClient through m_frame.loader().client()

&gt; Source/WebKit/NetworkProcess/NetworkActivityTracker.cpp:2
&gt; + * Copyright (C) 22018 Apple Inc. All rights reserved.

ditto

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:194
&gt; +            , m_resourceID(0)

Please use c++11-style &quot;resourceID { 0 };&quot; declaration instead of this.

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkActivityTrackerCocoa.mm:2
&gt; + * Copyright (C) 22018 Apple Inc. All rights reserved.

Wow, that&apos;s planning ahead!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418951</commentid>
    <comment_count>7</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-04-29 22:37:22 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #5)
&gt; Comment on attachment 338814 [details]
&gt; Rebase to fix merge conflicts.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=338814&amp;action=review
&gt; 
&gt; Looks good! r- to fix the iterator stuff and clean up the struct a little.
&gt; Nice job!
&gt; 
&gt; &gt; Source/WebKit/Configurations/WebKit.xcconfig:115
&gt; &gt; +FRAMEWORK_AND_LIBRARY_LDFLAGS = -lobjc -framework CFNetwork -framework CoreAudio -framework CoreFoundation -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework IOKit -framework WebKitLegacy -lnetwork $(WK_ACCESSIBILITY_LDFLAGS) $(WK_APPKIT_LDFLAGS) $(WK_ASSERTION_SERVICES_LDFLAGS) $(WK_CARBON_LDFLAGS) $(WK_CORE_PDF_LDFLAGS) $(WK_CORE_PREDICTION_LDFLAGS) $(WK_CORE_SERVICES_LDFLAGS) $(WK_GRAPHICS_SERVICES_LDFLAGS) $(WK_IOSURFACE_LDFLAGS) $(WK_LIBWEBRTC_LDFLAGS) $(WK_MOBILE_CORE_SERVICES_LDFLAGS) $(WK_MOBILE_GESTALT_LDFLAGS) $(WK_OPENGL_LDFLAGS) $(WK_PDFKIT_LDFLAGS) $(WK_SAFE_BROWSING_LDFLAGS) $(WK_UIKIT_LDFLAGS);
&gt; 
&gt; Is it safe to add &quot;-lnetwork&quot; unconditionally? Based on EWS I assume it&apos;s
&gt; fine.

I&apos;ve built locally under multiple versions of macOS and iOS in both debug and release modes, and it succeeds.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkActivityTracker.h:73
&gt; &gt; +    nw_activity_t get() { return m_networkActivity.get(); }
&gt; 
&gt; I wonder if Soup or Curl has any similar network health features? If so, we
&gt; could make this a &apos;PlatformActivity&apos; type that would vary based on platform.
&gt; But that&apos;s not something we need for this patch.

I strove to structure the code to support this mechanism on other platforms if people wanted to figure out how such support should be implemented. There&apos;s a NetworkActivityTracker object which comes with a dummy/empty implementation for non-Cocoa and a concrete implementation for Cocoa. The non-Cocoa implementation could be replaced with a platform-specific implementation for Windows or Linux if wanted. Did I not express my intent the &quot;WebKit Way&quot;?

&gt; &gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:586
&gt; &gt; +            return std::nullopt;
&gt; 
&gt; If the network process crashed, shouldn&apos;t we create a new activity tracker
&gt; so that we can at least capture whatever data comes in for the remaining
&gt; loads?

The problem with trying to do that would be with re-establishing the parent NetworkActivityTracer that represents the page. The cost/benefit ratio seems high to me. How strongly do you want this?

&gt; &gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:630
&gt; &gt; +        m_networkActivityTrackers[itemIndex].m_networkActivity.complete(NetworkActivityTracker::CompletionCode::None);
&gt; 
&gt; This would be better as:
&gt; 
&gt; for (auto&amp; activityTracker : m_networkActivityTrackers)
&gt;     activityTracker.m_networkActivity.complete(...)

You&apos;re right. I&apos;m not sure why I did it that way.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:644
&gt; &gt; +            m_networkActivityTrackers.remove(itemIndex);
&gt; 
&gt; I really hate this kind of iterating over a container while removing
&gt; elements. We have had so many security and stability bugs due to this kind
&gt; of stuff.
&gt; 
&gt; Instead, I propose:
&gt; 
&gt; for (auto&amp; activityTracker : m_networkActivityTrackers) {
&gt;     if (activityTracker.m_pageID == pageID)
&gt;        
&gt; acitivityTracker.m_networkActivity.complete(NetworkActivityTracker::
&gt; CompletionCode::None);
&gt; }
&gt; 
&gt; m_networkActivityTrackers.removeAllMatching([&amp;](const auto&amp; activityTracker)
&gt; { return activityTracker.pageID == pageID; });

OK. But I&apos;d like to later talk with you about what kinds of problems occur, so that I can be better aware of why to avoid this anti-pattern.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:654
&gt; &gt; +    }
&gt; 
&gt; return m_networkActivityTrackers.findMatching([&amp;](const auto&amp; item) { return
&gt; item.m_isRootActivity &amp;&amp; item.m_pageID == pageID; });

OK. I didn&apos;t realize we had a Vector method that returned an index as opposed to an iterator.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:664
&gt; &gt; +    }
&gt; 
&gt; return m_networkActivityTrackers.findMatching([&amp;](const auto&amp; item) { return
&gt; item.m_resourceID == resourceID; });

Ditto.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:211
&gt; &gt; +        NetworkActivityTracker m_networkActivity;
&gt; 
&gt; Since this is a struct and doesn&apos;t encapsulate these members behind
&gt; accessors, they should be renamed without the &quot;m_*&quot; prefix.

Very well. I&apos;d checked the WebKit Code Style Guidelines when working on this, and it didn&apos;t say anything about structs being treated differently from class&apos;s in this respect. But I can go along with this unwritten rule.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkLoadParameters.h:28
&gt; &gt; +#include &quot;NetworkActivityTracker.h&quot;
&gt; 
&gt; Could this just be a forward declaration?

Compiler says no. In the bowels of the error stream is the message &quot;incomplete type &apos;WebKit::NetworkActivityTracker&apos; used in type trait expression&quot;, related to a file that pulls in NetworkLoadParameters.h but that has nothing to do with the &quot;std::optional&lt;NetworkActivityTracker&gt; networkActivityTracker&quot; member. So if we were to forward-declare NetworkActivityTracker, we&apos;d have to #include &quot;NetworkActivityTracker.h in any file that instantiated NetworkLoadParameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418953</commentid>
    <comment_count>8</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-04-29 22:56:19 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #6)
&gt; Comment on attachment 338814 [details]
&gt; Rebase to fix merge conflicts.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=338814&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/Platform.h:1274
&gt; &gt; +#if USE(APPLE_INTERNAL_SDK) &amp;&amp; __has_include(&lt;nw/activity.h&gt;)
&gt; 
&gt; ...I think this will make each file check for the existence of
&gt; &lt;nw/activity.h&gt; which could slow down the build a bit.  Is there a better
&gt; way to describe when we expect it to be available?

In response to your comment, I timed some builds with and without that __has_include() check. There was no difference in build times (42 min, 1 sec +/- 1 sec).

That said, I reconsidered the placement of those #defines. They have pretty limited scope and don&apos;t really benefit from being in such a core #include file. I therefore looked into putting them into NetworkActivityTracker.h. I checked elsewhere in WebKit to see if there are precedents for HAVE_foo and USE_foo variables being defined outside of Platform.h, Feature.h, or config.h files, and there were a small number of them. I took them as examples to follow and went ahead and moved the variables out of wtf/Platform.h.

&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:263
&gt; &gt;      Frame&amp; m_frame;
&gt; &gt; +    FrameLoaderClient&amp; m_client;
&gt; 
&gt; We shouldn&apos;t need to keep both of these.  We can access the
&gt; FrameLoaderClient through m_frame.loader().client()

Thanks.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkActivityTracker.cpp:2
&gt; &gt; + * Copyright (C) 22018 Apple Inc. All rights reserved.
&gt; 
&gt; ditto

ditto

&gt; &gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:194
&gt; &gt; +            , m_resourceID(0)
&gt; 
&gt; Please use c++11-style &quot;resourceID { 0 };&quot; declaration instead of this.

OK.

&gt; &gt; Source/WebKit/NetworkProcess/cocoa/NetworkActivityTrackerCocoa.mm:2
&gt; &gt; + * Copyright (C) 22018 Apple Inc. All rights reserved.
&gt; 
&gt; Wow, that&apos;s planning ahead!

Oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1418954</commentid>
    <comment_count>9</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-04-29 23:00:31 -0700</bug_when>
    <thetext>&gt; #if HAVE(NW_ACTIVITY)
&gt;    nw_activity_t get() { return m_networkActivity.get(); }
&gt; #endif

I found that get() was too generic and confusing -- it wasn&apos;t clear what I was getting. I first tried changing it to get_nw_activity(), but that didn&apos;t match WebKit naming guidelines. I thought about getNWActivity(), but that seemed to be perverting the underlying type name. So I changed it to getPlatformObject().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419185</commentid>
    <comment_count>10</comment_count>
      <attachid>339164</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-04-30 17:15:18 -0700</bug_when>
    <thetext>Created attachment 339164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419778</commentid>
    <comment_count>11</comment_count>
      <attachid>339164</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-05-02 12:20:27 -0700</bug_when>
    <thetext>Comment on attachment 339164
Patch

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

Looks great! I had a few things I&apos;d like to see changed slightly, but overall this is ready to go. r- to make the m_parameters member const again.

&gt; Source/WebCore/ChangeLog:5
&gt; +        rdar://problem/36548974

&lt;rdar://problem/36548974&gt;

&gt; Source/WebKit/ChangeLog:5
&gt; +        rdar://problem/36548974

&lt;rdar://problem/36548974&gt;

&gt; Source/WebKitLegacy/ChangeLog:5
&gt; +        rdar://problem/36548974

&lt;rdar://problem/36548974&gt;

&gt; Source/WebCore/loader/FrameLoader.cpp:257
&gt; +            platformStrategies()-&gt;loaderStrategy()-&gt;pageLoadCompleted(m_frame.loader().client().pageID().value());

if (auto pageID = m_frame.loader().client().pageID())
    platformStrategies()-&gt;loaderStrategy()-&gt;pageLoadCompleted(pageID.value());

&gt; Source/WebKit/NetworkProcess/NetworkActivityTracker.h:79
&gt; +#if HAVE(NW_ACTIVITY)

We could probably just use &quot;#if HAVE(NW_ACTIVITY)&quot; to protect m_networkActivity, since the other items are likely useful for other ports (if they wanted to implement some kind of network activity tracker for their network backends). But this is fine as-is.

&gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:551
&gt; +#if HAVE(NW_ACTIVITY)

I don&apos;t think you need this. All other ports will return &apos;false&apos; from NetworkProcess::trackNetworkActivity(), so just make this call on all ports.

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:168
&gt; +    m_parameters.networkActivityTracker = m_connection-&gt;startTrackingResourceLoad(m_parameters.webPageID, m_parameters.identifier, isMainResource());

I don&apos;t think we should change m_parameters from const. Instead, I think you should track m_hasNetworkActivityTracker (or something) as a separate member (like we do for m_defersLoading), and set &apos;networkActivityTracker&apos; in the copy of m_parameters we send to the NetworkLoad object in NetworkResourceLoader::startNetworkLoad.

&gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.h:162
&gt; +    NetworkResourceLoadParameters m_parameters;

I don&apos;t think we should change this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419825</commentid>
    <comment_count>12</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-05-02 13:36:40 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #11)
&gt; Comment on attachment 339164 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=339164&amp;action=review
&gt; 
&gt; Looks great! I had a few things I&apos;d like to see changed slightly, but
&gt; overall this is ready to go. r- to make the m_parameters member const again.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:5
&gt; &gt; +        rdar://problem/36548974
&gt; 
&gt; &lt;rdar://problem/36548974&gt;
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:5
&gt; &gt; +        rdar://problem/36548974
&gt; 
&gt; &lt;rdar://problem/36548974&gt;
&gt; 
&gt; &gt; Source/WebKitLegacy/ChangeLog:5
&gt; &gt; +        rdar://problem/36548974
&gt; 
&gt; &lt;rdar://problem/36548974&gt;

OK. But I see them both ways in the ChangeLog files.

&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:257
&gt; &gt; +            platformStrategies()-&gt;loaderStrategy()-&gt;pageLoadCompleted(m_frame.loader().client().pageID().value());
&gt; 
&gt; if (auto pageID = m_frame.loader().client().pageID())
&gt;    
&gt; platformStrategies()-&gt;loaderStrategy()-&gt;pageLoadCompleted(pageID.value());

OK.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkActivityTracker.h:79
&gt; &gt; +#if HAVE(NW_ACTIVITY)
&gt; 
&gt; We could probably just use &quot;#if HAVE(NW_ACTIVITY)&quot; to protect
&gt; m_networkActivity, since the other items are likely useful for other ports
&gt; (if they wanted to implement some kind of network activity tracker for their
&gt; network backends). But this is fine as-is.

I agree that they are likely useful for other ports, but we get &quot;unused data members&quot; errors if we don&apos;t elide them.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:551
&gt; &gt; +#if HAVE(NW_ACTIVITY)
&gt; 
&gt; I don&apos;t think you need this. All other ports will return &apos;false&apos; from
&gt; NetworkProcess::trackNetworkActivity(), so just make this call on all ports.

OK.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:168
&gt; &gt; +    m_parameters.networkActivityTracker = m_connection-&gt;startTrackingResourceLoad(m_parameters.webPageID, m_parameters.identifier, isMainResource());
&gt; 
&gt; I don&apos;t think we should change m_parameters from const. Instead, I think you
&gt; should track m_hasNetworkActivityTracker (or something) as a separate member
&gt; (like we do for m_defersLoading), and set &apos;networkActivityTracker&apos; in the
&gt; copy of m_parameters we send to the NetworkLoad object in
&gt; NetworkResourceLoader::startNetworkLoad.

Good point.

&gt; &gt; Source/WebKit/NetworkProcess/NetworkResourceLoader.h:162
&gt; &gt; +    NetworkResourceLoadParameters m_parameters;
&gt; 
&gt; I don&apos;t think we should change this.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419880</commentid>
    <comment_count>13</comment_count>
      <attachid>339351</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2018-05-02 15:01:24 -0700</bug_when>
    <thetext>Created attachment 339351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419922</commentid>
    <comment_count>14</comment_count>
      <attachid>339351</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-05-02 16:33:10 -0700</bug_when>
    <thetext>Comment on attachment 339351
Patch

Looks great! Thanks for finishing this up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419946</commentid>
    <comment_count>15</comment_count>
      <attachid>339351</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-02 17:31:56 -0700</bug_when>
    <thetext>Comment on attachment 339351
Patch

Clearing flags on attachment: 339351

Committed r231282: &lt;https://trac.webkit.org/changeset/231282&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419947</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-02 17:31:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1420363</commentid>
    <comment_count>17</comment_count>
      <attachid>339351</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-05-03 15:08:15 -0700</bug_when>
    <thetext>Comment on attachment 339351
Patch

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

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:301
&gt; +    m_trackNetworkActivity = parameters.trackNetworkActivity;

For these things, I believe the WebKit coding style mandates a prefix since those are booleans. In this case, &apos;should&apos; would look much better.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.h:165
&gt; +    bool trackNetworkActivity() const { return m_trackNetworkActivity; }

ditto.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.h:306
&gt; +    bool m_trackNetworkActivity { false };

ditto.

&gt; Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.cpp:119
&gt; +    encoder &lt;&lt; trackNetworkActivity;

ditto.

&gt; Source/WebKit/NetworkProcess/NetworkProcessCreationParameters.h:136
&gt; +    bool trackNetworkActivity { false };

ditto.

&gt; Source/WebKit/UIProcess/API/C/WKContextConfigurationRef.h:80
&gt; +WK_EXPORT bool WKContextConfigurationTrackNetworkActivity(WKContextConfigurationRef configuration);

Ditto here about API naming, this seems weird to me. WKContextConfigurationTrackNetworkActivity() does not look like a better at all.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:63
&gt; +@property (nonatomic) BOOL trackNetworkActivity WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));

Other people I added in CC are more familiar with API naming than I am but this seems weird to me. I personally would have used a prefix like shouldTrackNetworkActivity (or alternatively tracksNetworkActivity which I like less but seems consistent with &apos;processSwapsOnNavigation&apos; which Brady just added).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338673</attachid>
            <date>2018-04-24 14:49:41 -0700</date>
            <delta_ts>2018-04-24 15:49:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184838-20180424144940.patch</filename>
            <type>text/plain</type>
            <size>71893</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwOTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ3MjA2NTVjNTUyZDM1ODFkNWM0NDJj
ZGVkZmFkMWE4Yjg4Mjk1OWEuLjk0YzEwNzA3MWE1MjI5YzgzODI4NzVlOTIwNmNiNGFjYjJjYTMz
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDQtMjQgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBmYWNpbGl0eSBmb3IgdHJhY2tpbmcgdGltZXMg
YW5kIHJlc3VsdHMgb2YgcGFnZSBhbmQgcmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0ODM4CisgICAgICAgIHJkYXI6Ly9w
cm9ibGVtLzM2NTQ4OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRGVmaW5lIFVTRV9ORVRXT1JLX0FDVElWSVRZIHRvIGVuYWJsZS9kaXNhYmxlIHRo
ZQorICAgICAgICBOZXR3b3JrQWN0aXZpdHlUcmFja2VyIGZhY2lsaXR5LiBEZWZpbmUgSEFWRV9O
V19BQ1RJVklUWSB0byBlbmFibGUgYQorICAgICAgICBwYXJ0aWN1bGFyIGltcGxlbWVudGF0aW9u
IG9mIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoK
KwogMjAxOC0wNC0yMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFtMYXlvdXRGb3JtYXR0aW5nQ29udGV4dF0gSW5pdGlhbCBjb21taXQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmRlZGE3NGE3MDM1ODliMjMzODRlYWUzNWQ4ODMwNmIyMTk3OGVkMi4uNDc2ZjI2MzdhZDkzZDM2
M2Y4ZGQ1NzhlMGVlNDRmZDQwNjlkMGI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisy
MDE4LTA0LTI0ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgZmFjaWxpdHkgZm9yIHRyYWNraW5nIHRpbWVzIGFuZCByZXN1bHRzIG9mIHBhZ2UgYW5kIHJl
c291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4NDgzOAorICAgICAgICByZGFyOi8vcHJvYmxlbS8zNjU0ODk3NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBGcmFtZVByb2dy
ZXNzVHJhY2tlciB0byBzZW5kIHRoZSBuZWNlc3NhcnkgcGFnZSBsb2FkIHN0YXJ0L3N0b3AKKyAg
ICAgICAgc2lnbmFscyBzbyB0aGF0IHdlIGNhbiB0cmFjayB0aGUgZW50aXJlIHBhZ2UgbG9hZCBh
dCBhIG5ldHdvcmsgbGV2ZWwuCisgICAgICAgIEFkZCBhbiBlbXB0eSBvdmVycmlkZSBvZiB0aGUg
cHVyZSB2aXJ0dWFsCisgICAgICAgIExvYWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZCBt
ZXRob2QuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGVyZSBpcyBubyB0ZXN0YWJsZSBlZmZl
Y3QgZnJvbSB0aGVzZSBjaGFuZ2VzLiBPbgorICAgICAgICBDb2NvYSwgbWVhc3VyYWJsZSBjaGFu
Z2VzIHRha2UgcGxhY2UgaW4gYW5vdGhlciAobm9uLVdlYktpdCkgcHJvY2Vzcy4KKyAgICAgICAg
T24gbm9uLUNvY29hIHN5c3RlbXMsIHRoaXMgZmFjaWxpdHkgaXMgY3VycmVudGx5IGRpc2FibGVk
LgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpGcmFtZVByb2dyZXNzVHJhY2tlcjo6RnJhbWVQcm9ncmVzc1RyYWNrZXIp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OkZyYW1lUHJvZ3Jlc3NUcmFja2VyOjpw
cm9ncmVzc0NvbXBsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aW5pdCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6aW5pdEZvclN5bnRoZXNpemVkRG9jdW1l
bnQpOgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJTdHJhdGVneS5oOgorCiAyMDE4LTA0LTI0ICBK
b2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZyb20tT3JpZ2lu
OiBTdXBwb3J0IGZvciAnc2FtZScgYW5kICdzYW1lLXNpdGUnIHJlc3BvbnNlIGhlYWRlciwgbmVz
dGVkIGZyYW1lIG9yaWdpbiBjaGVjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNDU1OTFlZThkZTI1MzkyMzc3YmVm
YTViZDkxMzJlNjJhMzVhMWQ1Li40MmIyOGVjYTRmYmRmZGIzMWVkYmM0NmRhNmU1OWZjNGI2Yjc5
YTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE4LTA0LTI0ICBLZWl0aCBSb2xsaW4g
IDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZmFjaWxpdHkgZm9yIHRyYWNraW5n
IHRpbWVzIGFuZCByZXN1bHRzIG9mIHBhZ2UgYW5kIHJlc291cmNlIGxvYWRpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDgzOAorICAgICAgICBy
ZGFyOi8vcHJvYmxlbS8zNjU0ODk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLiBUaGUgaWRlYSBiZWhp
bmQgdGhpcyBmYWNpbGl0eSBpcyB0byBjcmVhdGUKKyAgICAgICAgYW5kIGRlc3Ryb3kgdGhlbSBh
cm91bmQgbmV0d29ya2luZyBhY3Rpdml0eSB0aGF0IHdlIHdhbnQgdG8gdHJhY2sgZm9yCisgICAg
ICAgIHRoZSBwdXJwb3NlIG9mIG1lYXN1cmluZyBvdmVyYWxsIG5ldHdvcmsgaGVhbHRoLiBUaGV5
IGNhbiBiZSBjcmVhdGVkCisgICAgICAgIGFyb3VuZCB0aGUgbG9hZGluZyBvZiBwYWdlcyBvciBp
bmRpdmlkdWFsIHJlc291cmNlcywgYW5kIGNhbiBiZQorICAgICAgICBhcnJhbmdlZCBpbiBhIHBh
cmVudC9jaGlsZCBoaWVyYXJjaHkgdG8gaW5kaWNhdGUgd2hhdCBwYWdlcyB0aGUKKyAgICAgICAg
cmVzb3VyY2VzIGFyZSBwYXJ0IG9mLiBUaGUgTmV0d29ya0FjdGl2aXR5IHRyYWNrZXIgdHJhY2tz
IGxvYWQgdGltZXMKKyAgICAgICAgYW5kIHJlc3VsdHMuIE9uIENvY29hLCBpdCBjYW4gYmUgaW50
ZWdyYXRlZCB3aXRoIENGTmV0d29yayBpbiBvcmRlciB0bworICAgICAgICBhc3NvY2lhdGUgV2Vi
S2l0IGFjdGl2aXR5IHdpdGggbG93LWxldmVsIG5ldHdvcmtpbmcgYWN0aXZpdHkuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNj
b25maWc6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpOZXR3
b3JrQWN0aXZpdHlUcmFja2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJh
Y2tlcjo6fk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyOjpzZXRQYXJlbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0
aXZpdHlUcmFja2VyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI6OmNvbXBsZXRlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZp
dHlUcmFja2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFj
a2VyOjpnZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnBhZ2VMb2FkQ29tcGxldGVkKToKKyAgICAgICAgKFdlYktpdDo6bmV0d29ya0Fj
dGl2aXR5VHJhY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnN0YXJ0VHJhY2tpbmdSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RvcFRyYWNraW5nUmVzb3VyY2VM
b2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0
b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmdGb3JQ
YWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmZp
bmRSb290TmV0d29ya0FjdGl2aXR5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmZpbmROZXR3b3JrQWN0aXZpdHlUcmFja2VyKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVzb3VyY2VOZXR3b3JrQWN0
aXZpdHlUcmFja2VyOjpSZXNvdXJjZU5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjp0cmFja05ldHdvcmtB
Y3Rpdml0eSBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZGVyOjpjbGVhbnVwKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZGVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJldHJpZXZlQ2FjaGVFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6Y29udGludWVQcm9jZXNzaW5nQ2FjaGVkRW50cnlBZnRlckRpZFJlY2VpdmVS
ZXNwb25zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0FjdGl2aXR5VHJhY2tl
ckNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tl
cjo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI6On5OZXR3b3JrQWN0aXZpdHlUcmFja2VyKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c2V0UGFyZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0FjdGl2aXR5VHJhY2tlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0
aXZpdHlUcmFja2VyOjpjb21wbGV0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNr
Q29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6OlByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
Q29uZmlndXJhdGlvblJlZi5jcHA6CisgICAgICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uVHJh
Y2tOZXR3b3JrQWN0aXZpdHkpOgorICAgICAgICAoV0tDb250ZXh0Q29uZmlndXJhdGlvblNldFRy
YWNrTmV0d29ya0FjdGl2aXR5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
Q29uZmlndXJhdGlvblJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiB0cmFja05ldHdvcmtBY3Rpdml0eV0pOgorICAgICAgICAoLVtfV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24gc2V0VHJhY2tOZXR3b3JrQWN0aXZpdHk6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cGFn
ZUxvYWRDb21wbGV0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5oOgorCiAyMDE4LTA0LTI0ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZyb20tT3JpZ2luOiBTdXBwb3J0IGZvciAnc2FtZScgYW5kICdzYW1l
LXNpdGUnIHJlc3BvbnNlIGhlYWRlciwgbmVzdGVkIGZyYW1lIG9yaWdpbiBjaGVjawpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZwppbmRleCA2ODhiODRlMDEyZDk3N2M5MDNkMzQ5MGZiODZlMjQyMGQ4NTcwZjVj
Li40NDI2NDhjOGJlMTBjZjQ5MzFmNGYyM2ZjNDc4MTQwZmFjMTdkNDVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA0LTI0ICBLZWl0aCBSb2xsaW4gIDxrcm9s
bGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZmFjaWxpdHkgZm9yIHRyYWNraW5nIHRpbWVz
IGFuZCByZXN1bHRzIG9mIHBhZ2UgYW5kIHJlc291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDgzOAorICAgICAgICByZGFyOi8v
cHJvYmxlbS8zNjU0ODk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhbiBlbXB0eSBvdmVycmlkZSBvZiB0aGUgcHVyZSB2aXJ0dWFsCisgICAg
ICAgIExvYWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZCBtZXRob2QuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAo
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwYWdlTG9hZENvbXBsZXRlZCk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6CisKIDIwMTgtMDQtMTYg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBOZXR3b3Jr
TG9hZENoZWNrZXIgdG8gaGFuZGxlIHN5bmNocm9ub3VzIEhUVFAgbG9hZHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmlu
ZGV4IDIzNmFkYjJmYTM5ZjgzYWQyNTE2ZTI1NzVjMDUyYzUwYmRlZDdhNGEuLjg4MTc1NTczNWQz
NDVlNzQ5Mjg2NTYxOGZkYjI2Yzg0ZGFmZGI0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTI2Nyw2ICsx
MjY3LDE0IEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykg
JiYgX19oYXNfaW5jbHVkZSg8bncvYWN0aXZpdHkuaD4pCisjZGVmaW5lIEhBVkVfTldfQUNUSVZJ
VFkgMQorI2VuZGlmCisKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorI2RlZmluZSBVU0VfTkVUV09S
S19BQ1RJVklUWSAxCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBIQVZF
X1NFQ19UUlVTVF9TRVJJQUxJWkFUSU9OIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggOTdjZjBiNjhlMTE0ZjE3YTU2ZjA0MWFhN2FiMDg0ZjM1MDAyZjBk
NS4uMDdjZmJmNDQxMTcyNGNjOWU5NzRlMWJhNTZmZjY2NTBjNjZlNDJjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMjYsOCArMjI2LDkgQEAgc3RydWN0IEZvcmJp
ZFByb21wdHNTY29wZSB7CiBjbGFzcyBGcmFtZUxvYWRlcjo6RnJhbWVQcm9ncmVzc1RyYWNrZXIg
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IEZy
YW1lUHJvZ3Jlc3NUcmFja2VyKEZyYW1lJiBmcmFtZSkKKyAgICBleHBsaWNpdCBGcmFtZVByb2dy
ZXNzVHJhY2tlcihGcmFtZSYgZnJhbWUsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCiAgICAg
ICAgIDogbV9mcmFtZShmcmFtZSkKKyAgICAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgICAg
ICwgbV9pblByb2dyZXNzKGZhbHNlKQogICAgIHsKICAgICB9CkBAIC0yNTIsMTAgKzI1MywxNCBA
QCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChtX2ZyYW1lLnBhZ2UoKSk7CiAgICAgICAgIG1faW5Q
cm9ncmVzcyA9IGZhbHNlOwogICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+cHJvZ3Jlc3MoKS5wcm9n
cmVzc0NvbXBsZXRlZChtX2ZyYW1lKTsKKworICAgICAgICBpZiAobV9jbGllbnQucGFnZUlEKCkp
CisgICAgICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cGFn
ZUxvYWRDb21wbGV0ZWQobV9jbGllbnQucGFnZUlEKCkudmFsdWUoKSk7CiAgICAgfQogCiBwcml2
YXRlOgogICAgIEZyYW1lJiBtX2ZyYW1lOworICAgIEZyYW1lTG9hZGVyQ2xpZW50JiBtX2NsaWVu
dDsKICAgICBib29sIG1faW5Qcm9ncmVzczsKIH07CiAKQEAgLTMxMyw3ICszMTgsNyBAQCB2b2lk
IEZyYW1lTG9hZGVyOjppbml0KCkKICAgICBtX3N0YXRlTWFjaGluZS5hZHZhbmNlVG8oRnJhbWVM
b2FkZXJTdGF0ZU1hY2hpbmU6OkRpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCk7CiAKICAg
ICBtX25ldHdvcmtpbmdDb250ZXh0ID0gbV9jbGllbnQuY3JlYXRlTmV0d29ya2luZ0NvbnRleHQo
KTsKLSAgICBtX3Byb2dyZXNzVHJhY2tlciA9IHN0ZDo6bWFrZV91bmlxdWU8RnJhbWVQcm9ncmVz
c1RyYWNrZXI+KG1fZnJhbWUpOworICAgIG1fcHJvZ3Jlc3NUcmFja2VyID0gc3RkOjptYWtlX3Vu
aXF1ZTxGcmFtZVByb2dyZXNzVHJhY2tlcj4obV9mcmFtZSwgbV9jbGllbnQpOwogfQogCiB2b2lk
IEZyYW1lTG9hZGVyOjppbml0Rm9yU3ludGhlc2l6ZWREb2N1bWVudChjb25zdCBVUkwmKQpAQCAt
MzM4LDcgKzM0Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmluaXRGb3JTeW50aGVzaXplZERvY3Vt
ZW50KGNvbnN0IFVSTCYpCiAgICAgbV9uZWVkc0NsZWFyID0gdHJ1ZTsKIAogICAgIG1fbmV0d29y
a2luZ0NvbnRleHQgPSBtX2NsaWVudC5jcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwotICAgIG1f
cHJvZ3Jlc3NUcmFja2VyID0gc3RkOjptYWtlX3VuaXF1ZTxGcmFtZVByb2dyZXNzVHJhY2tlcj4o
bV9mcmFtZSk7CisgICAgbV9wcm9ncmVzc1RyYWNrZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZyYW1l
UHJvZ3Jlc3NUcmFja2VyPihtX2ZyYW1lLCBtX2NsaWVudCk7CiB9CiAKIHZvaWQgRnJhbWVMb2Fk
ZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2Fk
ZXJTdHJhdGVneS5oCmluZGV4IDY3ZDMwY2YxMWY2YWJmYTc1OThlOGM0Y2I4YzlhODgxYTI3N2Iz
NDUuLjJmNWVmZWI2Yjg2YjhhMDY2OWUzNDFlYjVlNDY5MTU5MTEwMzgwNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFdFQkNP
UkVfRVhQT1JUIExvYWRlclN0cmF0ZWd5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9h
ZFJlc291cmNlKEZyYW1lJiwgQ2FjaGVkUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29u
c3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8
U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IEZl
dGNoT3B0aW9ucyYsIGNvbnN0IEhUVFBIZWFkZXJNYXAmLCBSZXNvdXJjZUVycm9yJiwgUmVzb3Vy
Y2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBw
YWdlTG9hZENvbXBsZXRlZCh1aW50NjRfdCB3ZWJQYWdlSUQpID0gMDsKIAogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmUoUmVzb3VyY2VMb2FkZXIqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERl
ZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkZXIqLCBib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApp
bmRleCBiOTM5ODIwMGM2OWU4NmYxNGRjNTk2ZmJlYTUyYTA1NDc3MDQ5NWNkLi5mMWQwM2U0NzM2
YmUyNGI3MmM2ODkzOWE5ZmU4NTk4NTlhNWI4ODNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTk3
LDE0ICs5Nyw3IEBAIHNldChXZWJLaXRfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAog
c2V0KFdlYktpdF9TT1VSQ0VTCi0gICAgTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVN
YW5hZ2VyLmNwcAotCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAot
ICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCi0gICAgTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKLQotICAgIE5ldHdvcmtQ
cm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKLQorICAgIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyLmNwcApAQCAtMTIyLDYgKzExNSwxNCBAQCBzZXQoV2ViS2l0X1NPVVJD
RVMKICAgICBOZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9Q
cmVjb25uZWN0VGFzay5jcHAKIAorICAgIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlci5jcHAKKworICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAK
KyAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorICAgIE5l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuY3BwCisKKyAgICBOZXR3b3Jr
UHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCisKICAgICBOZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL1dlYktpdC54Y2NvbmZpZwppbmRleCAwNDU4ODljYjE4NmY4ZTI4OTcyNTBiOWM3MzM4MDIz
ZTc1MDEzODU0Li5hMTlkZGVhM2MzMGVhZWVjOTJlNzUwNDliY2JhODkzNTM3MDJjYWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTEyLDcg
KzExMiw3IEBAIFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHU19NQUNPU19TSU5DRV8xMDEzID0gLXdl
YWtfZnJhbWV3b3JrIFNhZmFyaVNhZmVCcm93c2luZzsKIFdLX1VJS0lUX0xERkxBR1MgPSAkKFdL
X1VJS0lUX0xERkxBR1NfJChXS19DT0NPQV9UT1VDSCkpOwogV0tfVUlLSVRfTERGTEFHU19jb2Nv
YXRvdWNoID0gLWZyYW1ld29yayBVSUtpdDsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxB
R1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZy
YW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3Jr
IENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1l
d29yayBJT0tpdCAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAkKFdLX0FDQ0VTU0lCSUxJVFlfTERG
TEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFH
UykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT1JFX1BERl9MREZMQUdTKSAkKFdLX0NPUkVf
UFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQ
SElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFDRV9MREZMQUdTKSAkKFdLX0xJQldF
QlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9C
SUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19PUEVOR0xfTERGTEFHUykgJChXS19QREZLSVRfTERG
TEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUyk7CitG
UkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29y
ayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdv
cmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9u
IC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgV2ViS2l0TGVn
YWN5IC1sbmV0d29yayAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERG
TEFHUykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFH
UykgJChXS19DT1JFX1BERl9MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAk
KFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdT
KSAkKFdLX0lPU1VSRkFDRV9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01P
QklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykg
JChXS19PUEVOR0xfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dT
SU5HX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUyk7CiAKIC8vIFByZXZlbnQgQysrIHN0YW5k
YXJkIGxpYnJhcnkgb3BlcmF0b3IgbmV3LCBkZWxldGUgYW5kIHRoZWlyIHJlbGF0ZWQgZXhjZXB0
aW9uIHR5cGVzIGZyb20gYmVpbmcgZXhwb3J0ZWQgYXMgd2VhayBzeW1ib2xzLgogVU5FWFBPUlRF
RF9TWU1CT0xfTERGTEFHUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFk
X2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRTU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
WmRsUHZTXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sIC1XbCxfX1pud20gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRU9TNF8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGlj
eUFjdGlvbkVFRUMxRU9TNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4
ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRURuIC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wsIC1XbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0
aW9uRUVFY2xFUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsIC1XbCxfX1pOU3QzX18xOGZ1bmN0
aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUU0c3dhcEVSUzRfIC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wsIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rp
b25FRUVDMUVSS1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5j
dGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJFUktTNF8gLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlv
bkVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25J
RnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwg
LVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRVJL
UzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlv
bl9jYWxsRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0FjdGl2aXR5VHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtBY3Rpdml0eVRyYWNrZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ZmJlOWQwNTBhMzMyOThkMGY5Yjlk
ZThmNGFhYjFmNDRlN2QzZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0
eVRyYWNrZXIuaCIKKworI2lmICFIQVZFKE5XX0FDVElWSVRZKQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcihMYWJl
bCwgRG9tYWluKQoreworfQorCitOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjp+TmV0d29ya0FjdGl2
aXR5VHJhY2tlcigpCit7Cit9CisKK3ZvaWQgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c2V0UGFy
ZW50KE5ldHdvcmtBY3Rpdml0eVRyYWNrZXImKQoreworfQorCit2b2lkIE5ldHdvcmtBY3Rpdml0
eVRyYWNrZXI6OnN0YXJ0KCkKK3sKK30KKwordm9pZCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpj
b21wbGV0ZShDb21wbGV0aW9uQ29kZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBVU0UoTkVUV09SS19BQ1RJVklUWSkgJiYgIUhBVkUoTldfQUNUSVZJVFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRy
YWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJh
Y2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFiMDA2NWM4MTkyN2FmNDA1YzJkODVmN2MxODkzZjRhMTBkODBm
NmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtBY3Rpdml0eVRyYWNrZXIuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEhBVkUoTldfQUNUSVZJ
VFkpCisjaW5jbHVkZSA8bncvcHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya0FjdGl2aXR5VHJh
Y2tlciB7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBEb21haW4geworICAgICAgICAvLyBUaGVz
ZSBhcmUgZGVmaW5lZCB0byBtYXRjaCBhbmFsb2dvdXMgdmFsdWVzIHVzZWQgaW4gdGhlIERhcndp
biBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgLy8gSWYgdGhleSBhcmUgcmVudW1iZXJlZCwgcGxh
dGZvcm0tc3BlY2lmaWMgY29kZSB3aWxsIG5lZWQgdG8gYmUgYWRkZWQgdG8gbWFwCisgICAgICAg
IC8vIHRoZW0gdG8gdGhlIERhcndpbi1zcGVjaWZpYyB2YWx1ZXMuCisKKyAgICAgICAgSW52YWxp
ZCA9IDAsCisgICAgICAgIFdlYktpdCA9IDE2LAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIExh
YmVsIHsKKyAgICAgICAgLy8gVGhlc2UgYXJlIG91cnMgdG8gZGVmaW5lLCBidXQgb25jZSBkZWZp
bmVkLCB0aGV5IHNob3VsZG4ndCBjaGFuZ2UuIFRoZXkgY2FuCisgICAgICAgIC8vIGJlIG9ic29s
ZXNjZWQgYW5kIHJlcGxhY2VkIHdpdGggb3RoZXIgY29kZXMsIGJ1dCBwcmV2aW91c2x5LWRlZmlu
ZWQgY29kZXMKKyAgICAgICAgLy8gc2hvdWxkIG5vdCBiZSByZW51bWJlcmVkLiBQcmV2aW91c2x5
IGFzc2lnbmVkIHZhbHVlcyBzaG91bGQgbm90IGJlIHJlLXVzZWQuCisKKyAgICAgICAgSW52YWxp
ZCA9IDAsCisgICAgICAgIExvYWRQYWdlID0gMSwKKyAgICAgICAgTG9hZFJlc291cmNlID0gMiwK
KyAgICB9OworCisgICAgZW51bSBjbGFzcyBDb21wbGV0aW9uQ29kZSB7CisgICAgICAgIFVuZGVm
aW5lZCwKKyAgICAgICAgTm9uZSwKKyAgICAgICAgU3VjY2VzcywKKyAgICAgICAgRmFpbHVyZSwK
KyAgICB9OworCisgICAgTmV0d29ya0FjdGl2aXR5VHJhY2tlcihMYWJlbCwgRG9tYWluID0gRG9t
YWluOjpXZWJLaXQpOworICAgIH5OZXR3b3JrQWN0aXZpdHlUcmFja2VyKCk7CisKKyAgICB2b2lk
IHNldFBhcmVudChOZXR3b3JrQWN0aXZpdHlUcmFja2VyJik7CisgICAgdm9pZCBzdGFydCgpOwor
ICAgIHZvaWQgY29tcGxldGUoQ29tcGxldGlvbkNvZGUpOworCisjaWYgSEFWRShOV19BQ1RJVklU
WSkKKyAgICBud19hY3Rpdml0eV90IGdldCgpIHsgcmV0dXJuIG1fbmV0d29ya0FjdGl2aXR5Lmdl
dCgpOyB9CisjZW5kaWYKKworcHJpdmF0ZToKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAgIERv
bWFpbiBtX2RvbWFpbjsKKyAgICBMYWJlbCBtX2xhYmVsOworICAgIGJvb2wgbV9pc0NvbXBsZXRl
ZCB7IGZhbHNlIH07CisgICAgUmV0YWluUHRyPG53X2FjdGl2aXR5X3Q+IG1fbmV0d29ya0FjdGl2
aXR5OworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggMTc5YzI0ZjFkZDMzYTkxM2QyMTY3ODc2ZjEwMmY2ODFjNTg5M2Zm
MC4uMzg5ODg1Mzc2Mjc0YzYwMTY3OWRmM2JjZTIwNDk4YTI2Yjk5ZjM4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJCbG9iRGF0YUZp
bGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFn
ZUVuZ2luZUNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
KyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Jsb2JSZWdpc3RyeS5oIgog
I2luY2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZXMuaCIKQEAgLTYxLDYgKzYyLDkgQEAKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVM
RUFTRV9MT0dfSUYodHJ1ZSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRih0cnVlLCBOZXR3
b3JrLCAiJXAgLSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6IiBmbXQsIHRoaXMsICMj
X19WQV9BUkdTX18pCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBSZWY8TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpAQCAtMTgwLDYg
KzE4NCwxMSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24mKQogICAgICAgICBsb2FkZXItPmFib3J0KCk7CiAgICAgQVNTRVJUKG1f
bmV0d29ya1Jlc291cmNlTG9hZGVycy5pc0VtcHR5KCkpOwogCisgICAgLy8gQWxsIHRyYWNrZXJz
IG9mIHJlc291cmNlcyB0aGF0IHdlcmUgaW4gdGhlIG1pZGRsZSBvZiBiZWluZyBsb2FkZWQgd2Vy
ZQorICAgIC8vIHN0b3BwZWQgd2l0aCB0aGUgYWJvcnQoKSBjYWxscyBhYm92ZSwgYnV0IHdlIHN0
aWxsIG5lZWQgdG8gc3dlZXAgdXAgdGhlCisgICAgLy8gcm9vdCBhY3Rpdml0eSB0cmFja2Vycy4K
KyAgICBzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmcoKTsKKwogICAgIE5ldHdvcmtCbG9i
UmVnaXN0cnk6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NEaWRDbG9zZSh0aGlz
KTsKICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3ModGhpcyk7CiAKQEAgLTI4Nyw2ICsyOTYsMTEgQEAgdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlTG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2Fk
SWRlbnRpZmllcgogICAgIEFTU0VSVCghbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
cGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKQoreworICAgIHN0b3BBbGxOZXR3
b3JrQWN0aXZpdHlUcmFja2luZ0ZvclBhZ2Uod2ViUGFnZUlEKTsKK30KKwogdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogewogICAgIFJlZlB0cjxOZXR3b3JrUmVz
b3VyY2VMb2FkZXI+IGxvYWRlciA9IG1fbmV0d29ya1Jlc291cmNlTG9hZGVycy5nZXQoaWRlbnRp
Zmllcik7CkBAIC01MzIsNCArNTQ2LDExOCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKQogICAgIFNlY3VyaXR5UG9saWN5
OjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsKIH0KIAorc3RhdGljIGJvb2wgbmV0d29y
a0FjdGl2aXR5VHJhY2tpbmdFbmFibGVkKCkKK3sKKyNpZiBVU0UoTkVUV09SS19BQ1RJVklUWSkK
KyAgICByZXR1cm4gTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnRyYWNrTmV0d29ya0FjdGl2
aXR5KCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCitzdGQ6Om9wdGlv
bmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpzdGFydFRyYWNraW5nUmVzb3VyY2VMb2FkKHVpbnQ2NF90IHBhZ2VJRCwgUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciByZXNvdXJjZUlELCBib29sIGlzTWFpblJlc291cmNlKQoreworICAgIGlmICgh
bmV0d29ya0FjdGl2aXR5VHJhY2tpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAvLyBFaXRoZXIgZ2V0IHRoZSBleGlzdGluZyByb290IGFjdGl2aXR5IHRy
YWNrZXIgZm9yIHRoaXMgcGFnZSBvciBjcmVhdGUgYQorICAgIC8vIG5ldyBvbmUgaWYgdGhpcyBp
cyB0aGUgbWFpbiByZXNvdXJjZS4KKworICAgIHNpemVfdCByb290QWN0aXZpdHlJbmRleDsKKyAg
ICBpZiAoaXNNYWluUmVzb3VyY2UpIHsKKyAgICAgICAgLy8gSWYgd2UncmUgbG9hZGluZyBhIHBh
Z2UgZnJvbSB0aGUgdG9wLCBtYWtlIHN1cmUgYW55IHRyYWNraW5nIG9mCisgICAgICAgIC8vIHBy
ZXZpb3VzIGFjdGl2aXR5IGZvciB0aGlzIHBhZ2UgaXMgc3RvcHBlZC4KKworICAgICAgICBzdG9w
QWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmdGb3JQYWdlKHBhZ2VJRCk7CisKKyAgICAgICAgcm9v
dEFjdGl2aXR5SW5kZXggPSBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzLnNpemUoKTsKKyAgICAg
ICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5jb25zdHJ1Y3RBbmRBcHBlbmQocGFnZUlEKTsK
KyAgICAgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tyb290QWN0aXZpdHlJbmRleF0ubV9u
ZXR3b3JrQWN0aXZpdHkuc3RhcnQoKTsKKworICAgICAgICBBU1NFUlQobV9uZXR3b3JrQWN0aXZp
dHlUcmFja2Vyc1tyb290QWN0aXZpdHlJbmRleF0ubV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHJvb3RBY3Rpdml0eUluZGV4ID0gZmluZFJvb3ROZXR3b3Jr
QWN0aXZpdHkocGFnZUlEKTsKKworICAgICAgICAvLyBUaGlzIGNvdWxkIGhhcHBlbiBpZiB0aGUg
TmV0d29ya2luZyBwcm9jZXNzIGNyYXNoZXMsIHRha2luZyBpdHMKKyAgICAgICAgLy8gcHJldmlv
dXMgc3RhdGUgd2l0aCBpdC4KKyAgICAgICAgaWYgKHJvb3RBY3Rpdml0eUluZGV4ID09IG5vdEZv
dW5kKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBBU1NFUlQo
bV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tyb290QWN0aXZpdHlJbmRleF0ubV9uZXR3b3JrQWN0
aXZpdHkuZ2V0KCkpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhIHRyYWNrZXIgZm9yIHRoZSBs
b2FkaW5nIG9mIHRoZSBuZXcgcmVzb3VyY2UsIHNldHRpbmcgdGhlIHJvb3QKKyAgICAvLyBhY3Rp
dml0eSB0cmFja2VyIGFzIGl0cyBwYXJlbnQuCisKKyAgICBzaXplX3QgbmV3QWN0aXZpdHlJbmRl
eCA9IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuc2l6ZSgpOworICAgIG1fbmV0d29ya0FjdGl2
aXR5VHJhY2tlcnMuY29uc3RydWN0QW5kQXBwZW5kKHBhZ2VJRCwgcmVzb3VyY2VJRCk7CisgICAg
QVNTRVJUKG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnNbbmV3QWN0aXZpdHlJbmRleF0ubV9uZXR3
b3JrQWN0aXZpdHkuZ2V0KCkpOworCisgICAgYXV0byYgbmV3QWN0aXZpdHlUcmFja2VyID0gbV9u
ZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tuZXdBY3Rpdml0eUluZGV4XTsKKyAgICBuZXdBY3Rpdml0
eVRyYWNrZXIubV9uZXR3b3JrQWN0aXZpdHkuc2V0UGFyZW50KG1fbmV0d29ya0FjdGl2aXR5VHJh
Y2tlcnNbcm9vdEFjdGl2aXR5SW5kZXhdLm1fbmV0d29ya0FjdGl2aXR5KTsKKyAgICBuZXdBY3Rp
dml0eVRyYWNrZXIubV9uZXR3b3JrQWN0aXZpdHkuc3RhcnQoKTsKKworICAgIHJldHVybiBuZXdB
Y3Rpdml0eVRyYWNrZXIubV9uZXR3b3JrQWN0aXZpdHk7Cit9CisKK3ZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnN0b3BUcmFja2luZ1Jlc291cmNlTG9hZChSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIHJlc291cmNlSUQsIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkNvbXBsZXRpb25D
b2RlIGNvZGUpCit7CisgICAgaWYgKCFuZXR3b3JrQWN0aXZpdHlUcmFja2luZ0VuYWJsZWQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdGVtSW5kZXggPSBmaW5kTmV0d29ya0FjdGl2
aXR5VHJhY2tlcihyZXNvdXJjZUlEKTsKKyAgICBpZiAoaXRlbUluZGV4ID09IG5vdEZvdW5kKSB7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJzdG9wVHJhY2tpbmdSZXNvdXJj
ZUxvYWQ6IFVuYWJsZSB0byBmaW5kIG5ldHdvcmsgYWN0aXZpdHkgZm9yIHJlc291cmNlOiAlZCIs
IHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VJRCkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1fbmV0d29ya0FjdGl2
aXR5LmNvbXBsZXRlKGNvZGUpOworICAgIG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMucmVtb3Zl
KGl0ZW1JbmRleCk7Cit9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0
b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZygpCit7CisgICAgaWYgKCFuZXR3b3JrQWN0aXZp
dHlUcmFja2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3Qg
aXRlbUluZGV4ID0gMDsgaXRlbUluZGV4IDwgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5zaXpl
KCk7ICsraXRlbUluZGV4KQorICAgICAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1J
bmRleF0ubV9uZXR3b3JrQWN0aXZpdHkuY29tcGxldGUoTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6
Q29tcGxldGlvbkNvZGU6Ok5vbmUpOworICAgIG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuY2xl
YXIoKTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RvcEFsbE5l
dHdvcmtBY3Rpdml0eVRyYWNraW5nRm9yUGFnZSh1aW50NjRfdCBwYWdlSUQpCit7CisgICAgaWYg
KCFuZXR3b3JrQWN0aXZpdHlUcmFja2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgc2l6ZV90IGl0ZW1JbmRleCA9IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuc2l6ZSgpOwor
ICAgIHdoaWxlIChpdGVtSW5kZXggPiAwKSB7CisgICAgICAgIC0taXRlbUluZGV4OworICAgICAg
ICBpZiAobV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1fcGFnZUlEID09IHBh
Z2VJRCkgeworICAgICAgICAgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhd
Lm1fbmV0d29ya0FjdGl2aXR5LmNvbXBsZXRlKE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkNvbXBs
ZXRpb25Db2RlOjpOb25lKTsKKyAgICAgICAgICAgIG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMu
cmVtb3ZlKGl0ZW1JbmRleCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3NpemVfdCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZmluZFJvb3ROZXR3b3JrQWN0aXZpdHkodWludDY0X3Qg
cGFnZUlEKQoreworICAgIGZvciAoc2l6ZV90IGl0ZW1JbmRleCA9IDA7IGl0ZW1JbmRleCA8IG1f
bmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuc2l6ZSgpOyArK2l0ZW1JbmRleCkgeworICAgICAgICBp
ZiAobV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1faXNSb290QWN0aXZpdHkg
JiYgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1fcGFnZUlEID09IHBhZ2VJ
RCkKKyAgICAgICAgICAgIHJldHVybiBpdGVtSW5kZXg7CisgICAgfQorCisgICAgcmV0dXJuIG5v
dEZvdW5kOworfQorCitzaXplX3QgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmZpbmRO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyKFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VJRCkK
K3sKKyAgICBmb3IgKHNpemVfdCBpdGVtSW5kZXggPSAwOyBpdGVtSW5kZXggPCBtX25ldHdvcmtB
Y3Rpdml0eVRyYWNrZXJzLnNpemUoKTsgKytpdGVtSW5kZXgpIHsKKyAgICAgICAgaWYgKG1fbmV0
d29ya0FjdGl2aXR5VHJhY2tlcnNbaXRlbUluZGV4XS5tX3Jlc291cmNlSUQgPT0gcmVzb3VyY2VJ
RCkKKyAgICAgICAgICAgIHJldHVybiBpdGVtSW5kZXg7CisgICAgfQorCisgICAgcmV0dXJuIG5v
dEZvdW5kOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aAppbmRleCA0Y2VhMmM2ZDRmYTk4OGNiM2M4ZTRkNGJjNDZmNjNiNzU0ZjAyZWYxLi5kMDc0MjE4
ODQxMjZjY2ViNGUwOTMwMWQwYTk0ZWY3YTg1YjY0ZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEb3dubG9hZElELmgi
CisjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrTUROU1Jl
Z2lzdGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyLmgiCkBAIC0xMTEsNiArMTEy
LDkgQEAgcHVibGljOgogICAgICAgICBtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlELnJlbW92
ZShpZGVudGlmaWVyKTsKICAgICB9CiAKKyAgICBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0
eVRyYWNrZXI+IHN0YXJ0VHJhY2tpbmdSZXNvdXJjZUxvYWQodWludDY0X3QgcGFnZUlELCBSZXNv
dXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQsIGJvb2wgaXNNYWluUmVzb3VyY2UpOworICAg
IHZvaWQgc3RvcFRyYWNraW5nUmVzb3VyY2VMb2FkKFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVz
b3VyY2VJRCwgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNvZGUpOworCiBwcml2
YXRlOgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcik7CiAKQEAgLTEzMyw2ICsxMzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJl
Y29ubmVjdFRvKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBOZXR3b3JrTG9hZFBh
cmFtZXRlcnMmJik7CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9h
ZElkZW50aWZpZXIpOworICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFn
ZUlEKTsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
Ym9vbCk7CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRpcmVjdFVSTCk7CiAgICAgdm9pZCBz
dGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwpAQCAt
MTgwLDExICsxODUsNDMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZU9yaWdpbkFjY2Vzc1do
aXRlbGlzdEVudHJ5KGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFs
bG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKICAgICB2b2lkIHJlc2V0T3JpZ2luQWNjZXNzV2hp
dGVsaXN0cygpOwogCisgICAgc3RydWN0IFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlciB7
CisgICAgICAgIFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcigpID0gZGVmYXVsdDsKKyAg
ICAgICAgUmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyKGNvbnN0IFJlc291cmNlTmV0d29y
a0FjdGl2aXR5VHJhY2tlciYpID0gZGVmYXVsdDsKKyAgICAgICAgUmVzb3VyY2VOZXR3b3JrQWN0
aXZpdHlUcmFja2VyKFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlciYmKSA9IGRlZmF1bHQ7
CisgICAgICAgIFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcih1aW50NjRfdCBwYWdlSUQp
CisgICAgICAgICAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKKyAgICAgICAgICAgICwgbV9yZXNvdXJj
ZUlEKDApCisgICAgICAgICAgICAsIG1faXNSb290QWN0aXZpdHkodHJ1ZSkKKyAgICAgICAgICAg
ICwgbV9uZXR3b3JrQWN0aXZpdHkoTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6TGFiZWw6OkxvYWRQ
YWdlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBSZXNvdXJjZU5ldHdvcmtBY3Rp
dml0eVRyYWNrZXIodWludDY0X3QgcGFnZUlELCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291
cmNlSUQpCisgICAgICAgICAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKKyAgICAgICAgICAgICwgbV9y
ZXNvdXJjZUlEKHJlc291cmNlSUQpCisgICAgICAgICAgICAsIG1faXNSb290QWN0aXZpdHkoZmFs
c2UpCisgICAgICAgICAgICAsIG1fbmV0d29ya0FjdGl2aXR5KE5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXI6OkxhYmVsOjpMb2FkUmVzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAg
IHVpbnQ2NF90IG1fcGFnZUlEOworICAgICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIG1fcmVz
b3VyY2VJRDsKKyAgICAgICAgYm9vbCBtX2lzUm9vdEFjdGl2aXR5OworICAgICAgICBOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyIG1fbmV0d29ya0FjdGl2aXR5OworICAgIH07CisKKyAgICB2b2lkIHN0
b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZygpOworICAgIHZvaWQgc3RvcEFsbE5ldHdvcmtB
Y3Rpdml0eVRyYWNraW5nRm9yUGFnZSh1aW50NjRfdCBwYWdlSUQpOworICAgIHNpemVfdCBmaW5k
Um9vdE5ldHdvcmtBY3Rpdml0eSh1aW50NjRfdCBwYWdlSUQpOworICAgIHNpemVfdCBmaW5kTmV0
d29ya0FjdGl2aXR5VHJhY2tlcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQpOwor
CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPE5ldHdvcmtTb2NrZXRTdHJlYW0+PiBtX25ldHdvcmtTb2NrZXRTdHJl
YW1zOwogICAgIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgUmVmUHRyPE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcj4+IG1fbmV0d29ya1Jlc291cmNlTG9hZGVyczsKICAgICBIYXNoTWFwPFN0
cmluZywgUmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+IG1fYmxvYkRhdGFG
aWxlUmVmZXJlbmNlczsKKyAgICBWZWN0b3I8UmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
PiBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzOwogCiAgICAgSGFzaE1hcDxSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCBOZXR3b3JrTG9hZEluZm9ybWF0aW9uPiBtX25ldHdvcmtMb2FkSW5mb3JtYXRp
b25CeUlEOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCA5YTVhNGYyMTU2MGRhNjdlOGE3ZjBiZTYxZTU1YjZjN2QxNzE2YzQ3Li5mNGVjNjMzMTFmNzdh
M2JlNjcxODdiODk2ZDUyYTAxNzhiYWY3MTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFBlcmZvcm1TeW5jaHJv
bm91c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgVmVjdG9yPGNoYXI+IGRhdGEpIERlbGF5ZWQKICAg
ICBMb2FkUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNl
TG9hZFBhcmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcikKKyAgICBQYWdlTG9hZENvbXBsZXRlZCh1aW50NjRfdCB3ZWJQYWdl
SUQpCiAgICAgU2V0RGVmZXJzTG9hZGluZyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVy
LCBib29sIGRlZmVycykKICAgICBQcmVmZXRjaEROUyhTdHJpbmcgaG9zdG5hbWUpCiAgICAgUHJl
Y29ubmVjdFRvKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCA1NWRjYjA1MDk3
YjgyNjM2ZTJiZjdmYWI4NmNlMmJiOTI2MzQ4NmM1Li4yZDM1NGFkOWM3MDQ5MjM4NThiNzhhZWRj
NTBiNTBlMzAxZDlhNTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrRGF0YVRhc2suY3BwCkBAIC01NCw3ICs1NCw3IEBAIFJlZjxOZXR3b3JrRGF0YVRhc2s+
IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3Jr
RGF0CiAgICAgICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tCbG9iOjpjcmVhdGUoc2Vzc2lvbiwg
Y2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9s
aWN5LCBwYXJhbWV0ZXJzLmJsb2JGaWxlUmVmZXJlbmNlcyk7CiAKICNpZiBQTEFURk9STShDT0NP
QSkKLSAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGll
bnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJz
LndlYlBhZ2VJRCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVy
cy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZp
bmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSk7CisgICAgcmV0dXJuIE5ldHdv
cmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVl
c3QsIHBhcmFtZXRlcnMud2ViRnJhbWVJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBhcmFtZXRl
cnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9s
aWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJz
LnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hv
dWxkUHJlY29ubmVjdE9ubHksIHBhcmFtZXRlcnMubmV0d29ya0FjdGl2aXR5VHJhY2tlcik7CiAj
ZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrU291cDo6Y3Jl
YXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFy
YW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDUzYzQ3Zjhk
NjIzYTc0MDJiMjA5MDIzNWRkZGJiNzM3N2ZhOGY2YTkuLmZkMGE2YTk5ZDZlYTBmNDU1OGQwYmQ2
Mjg3OGU5YzRhNDhjZmJlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4K
QEAgLTUwLDYgKzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgbmVlZHNDZXJ0aWZpY2F0ZUluZm8g
eyBmYWxzZSB9OwogICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJl
bmNlPj4gYmxvYkZpbGVSZWZlcmVuY2VzOwogICAgIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNv
bm5lY3RPbmx5IHsgUHJlY29ubmVjdE9ubHk6Ok5vIH07CisgICAgc3RkOjpvcHRpb25hbDxOZXR3
b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCmluZGV4IDNiMGZmMjAxODUxMTU0NDViYTgxZTg3MGI0Mjk1MDU3ZDUzNmRi
OTAuLjA3N2JkNzNiMDQzYzgwYzExNDZjMzQxYmU0OTEzNWE1OTVjODI4Y2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yOTgsNiAr
Mjk4LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYKICAgICBmb3IgKGF1dG8mIHNjaGVtZSA6
IHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1
ZXN0KQogICAgICAgICByZWdpc3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVl
c3Qoc2NoZW1lKTsKIAorICAgIG1fdHJhY2tOZXR3b3JrQWN0aXZpdHkgPSBwYXJhbWV0ZXJzLnRy
YWNrTmV0d29ya0FjdGl2aXR5OworCiAgICAgUkVMRUFTRV9MT0coUHJvY2VzcywgIiVwIC0gTmV0
d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzczogUHJlc2VudGluZyBwcm9jZXNz
ID0gJWQiLCB0aGlzLCBXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBj
ZTQxMmI0NTkyODZiMzY5ZGYxMmNkMDhmMzMzODVhZDhjOWRkZGU5Li5iOTYxYWJjYjAwOWZkMjEy
YmUxNTk2NjZiM2ExNDBhNDQyODBmMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xNjIsNiArMTYyLDggQEAgcHVibGljOgogICAgIE5l
dHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyJiBuZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
cigpIHsgcmV0dXJuIG1fTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI7IH0KICNlbmRpZgog
CisgICAgYm9vbCB0cmFja05ldHdvcmtBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tO
ZXR3b3JrQWN0aXZpdHk7IH0KKwogcHJpdmF0ZToKICAgICBOZXR3b3JrUHJvY2VzcygpOwogICAg
IH5OZXR3b3JrUHJvY2VzcygpOwpAQCAtMzAwLDYgKzMwMiw4IEBAIHByaXZhdGU6CiAjaWYgRU5B
QkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
ciBtX05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOwogI2VuZGlmCisKKyAgICBib29sIG1f
dHJhY2tOZXR3b3JrQWN0aXZpdHkgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGE4NGU0OThjZmZjNDk1
YTA5ZWY2ZDlmZTk4MGVhZTFjNmM3MTlmN2MuLjNkMjRkMjNhNGY1MzIzZTI4NzAyMmExNzg0ZGMz
ZWVjZjE4MjgzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xMTUs
NiArMTE1LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNS
ZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQ7CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVn
aXN0ZXJlZEFzQ09SU0VuYWJsZWQ7CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJl
ZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3Q7CisKKyAgICBlbmNvZGVyIDw8IHRyYWNrTmV0
d29ya0FjdGl2aXR5OwogfQogCiBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcmVzdWx0KQpAQCAtMjc1LDYgKzI3Nyw5IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQ
cm9jCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudXJsU2NoZW1lc1JlZ2lzdGVyZWRB
c0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJhY2tOZXR3b3JrQWN0aXZpdHkpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IGMyYjY4MGIwMjUzMDRjNTdmN2Y0MDRiY2MyYTE5ZGFjM2I4
NTcxMTQuLmQxNDc1MzNiYTIxZWE5ODdhN2U5ODlkYTAxOGNlZTdkOTk3N2E1MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEzMiw2ICsxMzIsOCBAQCBzdHJ1Y3QgTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVt
ZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQ7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2No
ZW1lc1JlZ2lzdGVyZWRBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0OwogICAgIFZlY3RvcjxT
dHJpbmc+IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZDsKKworICAgIGJvb2wgdHJh
Y2tOZXR3b3JrQWN0aXZpdHkgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHAKaW5kZXggMjhjYTE5MDg1YTNhYTI0YjA3YjM3YjJiNTE3OTgwMTk1OWQ1OGVj
Yi4uZDQ3OGMwM2NmNWY0NDFlY2VhYWJkNjEwMmY2NjhiZTQxOWQ0MmE0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cApAQCAtMTg0LDYgKzE4NCw4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgp
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIG1fcGFyYW1ldGVycy5u
ZXR3b3JrQWN0aXZpdHlUcmFja2VyID0gbV9jb25uZWN0aW9uLT5zdGFydFRyYWNraW5nUmVzb3Vy
Y2VMb2FkKG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBp
c01haW5SZXNvdXJjZSgpKTsKKwogICAgIGlmIChtX2RlZmVyc0xvYWRpbmcpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IExvYWRpbmcgaXMgZGVmZXJyZWQgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFy
YW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtMzIzLDEwICszMjUsMTUgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInNldERlZmVyc0xvYWRpbmc6IGRlZmVycyA9ICVkLCBidXQgbm90aGluZyB0byBkbyAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiKSIsIG1fZGVmZXJzTG9hZGluZywgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwg
bV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKIH0KIAot
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFudXAoKQordm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmNsZWFudXAoTG9hZFJlc3VsdCByZXN1bHQpCiB7CiAgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKIAorICAgIG1fY29ubmVjdGlvbi0+c3RvcFRyYWNraW5nUmVzb3VyY2VM
b2FkKG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLAorICAgICAgICByZXN1bHQgPT0gTG9hZFJlc3Vs
dDo6U3VjY2VzcyA/IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkNvbXBsZXRpb25Db2RlOjpTdWNj
ZXNzIDoKKyAgICAgICAgcmVzdWx0ID09IExvYWRSZXN1bHQ6OkZhaWx1cmUgPyBOZXR3b3JrQWN0
aXZpdHlUcmFja2VyOjpDb21wbGV0aW9uQ29kZTo6RmFpbHVyZSA6CisgICAgICAgIE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXI6OkNvbXBsZXRpb25Db2RlOjpOb25lKTsKKwogICAgIG1fYnVmZmVyaW5n
VGltZXIuc3RvcCgpOwogCiAgICAgaW52YWxpZGF0ZVNhbmRib3hFeHRlbnNpb25zKCk7CkBAIC0z
NTksNyArMzY2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0KCkKICAgICAg
ICAgbV9uZXR3b3JrTG9hZC0+Y2FuY2VsKCk7CiAgICAgfQogCi0gICAgY2xlYW51cCgpOworICAg
IGNsZWFudXAoTG9hZFJlc3VsdDo6Q2FuY2VsKTsKIH0KIAogc3RhdGljIGJvb2wgYXJlRnJhbWVB
bmNlc3RvcnNTYW1lU2l0ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3Qg
VmVjdG9yPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+JiBmcmFtZUFuY2VzdG9yT3JpZ2lucykKQEAg
LTUyOSw3ICs1MzYsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9h
ZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogCiAgICAgdHJ5U3RvcmVB
c0NhY2hlRW50cnkoKTsKIAotICAgIGNsZWFudXAoKTsKKyAgICBjbGVhbnVwKExvYWRSZXN1bHQ6
OlN1Y2Nlc3MpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRp
bmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCkBAIC01NDksNyArNTU2LDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKGNvbnN0IFJlc291cmNlRXJyb3Im
IGVycm9yKQogICAgIH0gZWxzZSBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkpCiAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlJlc291
cmNlTG9hZGVyOjpEaWRGYWlsUmVzb3VyY2VMb2FkKGVycm9yKSwgbWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQoKSk7CiAKLSAgICBjbGVhbnVwKCk7CisgICAgY2xlYW51cChMb2FkUmVzdWx0OjpG
YWlsdXJlKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoKQpAQCAtNzM4LDcgKzc0NSw3IEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpkaWRSZXRyaWV2ZUNhY2hlRW50cnkoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtD
YWNoZTo6CiAgICAgaWYgKGlzU3luY2hyb25vdXMoKSkgewogICAgICAgICBtX3N5bmNocm9ub3Vz
TG9hZERhdGEtPnJlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSk7CiAgICAgICAgIHNlbmRSZXBs
eVRvU3luY2hyb25vdXNSZXF1ZXN0KCptX3N5bmNocm9ub3VzTG9hZERhdGEsIGVudHJ5LT5idWZm
ZXIoKSk7Ci0gICAgICAgIGNsZWFudXAoKTsKKyAgICAgICAgY2xlYW51cChMb2FkUmVzdWx0OjpT
dWNjZXNzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzcyLDcgKzc3OSw3IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVByb2Nlc3NpbmdDYWNoZWRFbnRyeUFm
dGVyRGlkUmVjZWl2ZVJlc3BvbnNlCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IGlmIChyZXRyaWV2ZWRBbGwpIHsKICAgICAgICAgICAgICAgICAgICAgbG9hZGVyLT5zZW5kUmVz
dWx0Rm9yQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7Ci0gICAgICAgICAgICAgICAgICAgIGxv
YWRlci0+Y2xlYW51cCgpOworICAgICAgICAgICAgICAgICAgICBsb2FkZXItPmNsZWFudXAoTG9h
ZFJlc3VsdDo6U3VjY2Vzcyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSk7CiAg
ICAgICAgIH0KQEAgLTc4MSw3ICs3ODgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
Y29udGludWVQcm9jZXNzaW5nQ2FjaGVkRW50cnlBZnRlckRpZFJlY2VpdmVSZXNwb25zZQogCiAg
ICAgc2VuZFJlc3VsdEZvckNhY2hlRW50cnkoV1RGTW92ZShlbnRyeSkpOwogCi0gICAgY2xlYW51
cCgpOworICAgIGNsZWFudXAoTG9hZFJlc3VsdDo6U3VjY2Vzcyk7CiB9CiAKIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpzZW5kUmVzdWx0Rm9yQ2FjaGVFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8
TmV0d29ya0NhY2hlOjpFbnRyeT4gZW50cnkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA4NzY5NzA4YzBhMjAwZGQy
NjFiZjE2ZmY5MjY2OWU4YTIzNjQ1NDhhLi4wMDlmZjliMDAyZTA2NTc1YTA1NTYxNDEyYTRjZmJi
ZjMxYTExOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTEzNCw3ICsxMzQsMTMgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHN0YXJ0TmV0d29ya0xvYWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEZpcnN0TG9h
ZCk7CiAgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOwogCi0gICAgdm9pZCBj
bGVhbnVwKCk7CisgICAgZW51bSBjbGFzcyBMb2FkUmVzdWx0IHsKKyAgICAgICAgVW5rbm93biwK
KyAgICAgICAgU3VjY2VzcywKKyAgICAgICAgRmFpbHVyZSwKKyAgICAgICAgQ2FuY2VsCisgICAg
fTsKKyAgICB2b2lkIGNsZWFudXAoTG9hZFJlc3VsdCk7CiAgICAgCiAgICAgdm9pZCBwbGF0Zm9y
bURpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAK
QEAgLTE1Myw3ICsxNTksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSBzYW5pdGl6ZVJlc3BvbnNlSWZQb3NzaWJsZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OlNhbml0aXphdGlvblR5cGUpOwogCi0gICAg
Y29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJzOworICAgIE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKIAogICAgIFJlZjxOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0aW9uOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtBY3Rpdml0eVRyYWNrZXJD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0FjdGl2
aXR5VHJhY2tlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NTgzNmQ1ZTE1MTFlNDMxODc0NDRiYzQy
MTcwMGI1MDU2MTNhNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbQpAQCAtMCwwICsxLDc2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyLmgiCisKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6TmV0d29ya0FjdGl2aXR5VHJhY2tl
cihMYWJlbCBsYWJlbCwgRG9tYWluIGRvbWFpbikKKyAgICA6IG1fZG9tYWluKGRvbWFpbikKKyAg
ICAsIG1fbGFiZWwobGFiZWwpCisgICAgLCBtX25ldHdvcmtBY3Rpdml0eShhZG9wdE5TKG53X2Fj
dGl2aXR5X2NyZWF0ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4obV9kb21haW4pLCBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4obV9sYWJlbCkpKSkKK3sKK30KKworTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6
fk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIoKQoreworfQorCit2b2lkIE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI6OnNldFBhcmVudChOZXR3b3JrQWN0aXZpdHlUcmFja2VyJiBwYXJlbnQpCit7CisgICAg
QVNTRVJUKG1fbmV0d29ya0FjdGl2aXR5LmdldCgpKTsKKyAgICBBU1NFUlQocGFyZW50Lm1fbmV0
d29ya0FjdGl2aXR5LmdldCgpKTsKKyAgICBud19hY3Rpdml0eV9zZXRfcGFyZW50X2FjdGl2aXR5
KG1fbmV0d29ya0FjdGl2aXR5LmdldCgpLCBwYXJlbnQubV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkp
OworfQorCit2b2lkIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OnN0YXJ0KCkKK3sKKyAgICBBU1NF
UlQobV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOworICAgIG53X2FjdGl2aXR5X2FjdGl2YXRlKG1f
bmV0d29ya0FjdGl2aXR5LmdldCgpKTsKK30KKwordm9pZCBOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
Ojpjb21wbGV0ZShDb21wbGV0aW9uQ29kZSBjb2RlKQoreworICAgIGlmIChtX2lzQ29tcGxldGVk
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2lzQ29tcGxldGVkID0gdHJ1ZTsKKworICAgIEFT
U0VSVChtX25ldHdvcmtBY3Rpdml0eS5nZXQoKSk7CisgICAgYXV0byByZWFzb24gPQorICAgICAg
ICBjb2RlID09IENvbXBsZXRpb25Db2RlOjpOb25lID8gbndfYWN0aXZpdHlfY29tcGxldGlvbl9y
ZWFzb25fbm9uZSA6CisgICAgICAgIGNvZGUgPT0gQ29tcGxldGlvbkNvZGU6OlN1Y2Nlc3MgPyBu
d19hY3Rpdml0eV9jb21wbGV0aW9uX3JlYXNvbl9zdWNjZXNzIDoKKyAgICAgICAgY29kZSA9PSBD
b21wbGV0aW9uQ29kZTo6RmFpbHVyZSA/IG53X2FjdGl2aXR5X2NvbXBsZXRpb25fcmVhc29uX2Zh
aWx1cmUgOgorICAgICAgICBud19hY3Rpdml0eV9jb21wbGV0aW9uX3JlYXNvbl9pbnZhbGlkOwor
ICAgIG53X2FjdGl2aXR5X2NvbXBsZXRlX3dpdGhfcmVhc29uKG1fbmV0d29ya0FjdGl2aXR5Lmdl
dCgpLCByZWFzb24pOworICAgIG1fbmV0d29ya0FjdGl2aXR5LmNsZWFyKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gSEFWRShOV19BQ1RJVklUWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EuaAppbmRleCBjMzVjM2FmNWY3NTE5MmUyOTZlZDIzMjMwZTc2MDUyMmNkZGQ2NDMyLi5h
NWI3Y2ZmOTNhZDk0Y2VkNTIyNDUzN2FhODhjZGIzZDRiMTIxNzAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiTmV0d29y
a0FjdGl2aXR5VHJhY2tlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFzay5oIgogI2luY2x1
ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldpRmlBc3NlcnRpb25Ib2xk
ZXIuaCIKQEAgLTQxLDkgKzQyLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNz
IE5ldHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAg
ICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0
d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6
Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkg
c2hvdWxkUHJlY29ubmVjdE9ubHkpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNy
ZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGll
bnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNo
b3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kg
c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIHN0
ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tl
cikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0Nv
Y29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlELCBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdT
bmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJl
Y29ubmVjdE9ubHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFU
YXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQsIHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91
bGRQcmVjb25uZWN0T25seSwgbmV0d29ya0FjdGl2aXR5VHJhY2tlcikpOwogICAgIH0KIAogICAg
IH5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtODEsNyArODIsNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYs
IE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkpOworICAgIE5ldHdvcmtEYXRhVGFza0Nv
Y29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5n
UG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgc3Rk
OjpvcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7CiAKICAgICBib29sIHRyeVBhc3N3
b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAgICAgdm9pZCBhcHBseVNuaWZm
aW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoTlNVUkxSZXF1ZXN0
KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDRiOTQxYTViZTIzYmIxYWEwNmY4ZTk5ODFj
ZTEzODIyNmRmNjQyNDEuLjhjYmY0OGRiMzVmODc2Njk0Y2Q3Y2VkYzQwODk0ZTljYTAwYWE3ZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNTUsNiArNTUsMTAgQEAgQHByb3BlcnR5IChyZWFk
d3JpdGUpIEJPT0wgX2lzVG9wTGV2ZWxOYXZpZ2F0aW9uOwogQGVuZAogI2VuZGlmCiAKKyNpZiBI
QVZFKE5XX0FDVElWSVRZKQorI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKICNpZiBVU0UoQ1JFREVOVElBTF9TVE9S
QUdFX1dJVEhfTkVUV09SS19TRVNTSU9OKQpAQCAtMTc1LDcgKzE3OSw3IEBAIHN0YXRpYyB2b2lk
IHVwZGF0ZVRhc2tXaXRoRmlyc3RQYXJ0eUZvclNhbWVTaXRlQ29va2llcyhOU1VSTFNlc3Npb25E
YXRhVGFzayogdGFzCiAjZW5kaWYKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtE
YXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGll
bnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENy
ZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBz
aG91bGRQcmVjb25uZWN0T25seSkKK05ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRh
c2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBj
bGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50
aWFscywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29k
aW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxk
UHJlY29ubmVjdE9ubHksIHN0ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0
d29ya0FjdGl2aXR5VHJhY2tlcikKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGll
bnQsIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgICwgbV9mcmFtZUlEKGZy
YW1lSUQpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCkBAIC0yNjcsNiArMjcxLDExIEBAIE5ldHdv
cmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgTmV0d29ya0RhdGFUCiAgICAgICAgIG1fdGFzay5nZXQoKS5wcmlvcml0eSA9IHRvTlNV
UkxTZXNzaW9uVGFza1ByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHkoKSk7CiAKICAgICB1cGRhdGVU
YXNrV2l0aEZpcnN0UGFydHlGb3JTYW1lU2l0ZUNvb2tpZXMobV90YXNrLmdldCgpLCByZXF1ZXN0
KTsKKworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisgICAgaWYgKG5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIpCisgICAgICAgIG1fdGFzay5nZXQoKS5fbndfYWN0aXZpdHkgPSBuZXR3b3JrQWN0aXZpdHlU
cmFja2VyLnZhbHVlKCkuZ2V0KCk7CisjZW5kaWYKIH0KIAogTmV0d29ya0RhdGFUYXNrQ29jb2E6
On5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGJhY2Zm
YTdhZDE2MjY2MDdlMjMyZThkZDlmOTJkZmFlYWJlZDY1ZTAuLjZkODhhMGY3MzM4MjY5YjQyM2U5
N2ZjMzI5MjhlOWM0NTkxOTM5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBAIC0xMjksNiAr
MTI5LDcgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX3ByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCA9IHRo
aXMtPm1fcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEOwogICAgIGNvcHktPm1fcHJvY2Vzc1N3YXBz
T25OYXZpZ2F0aW9uID0gdGhpcy0+bV9wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb247CiAgICAgY29w
eS0+bV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyID0gdGhpcy0+bV9wcm9jZXNz
U3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyOworICAgIGNvcHktPm1fdHJhY2tOZXR3b3JrQWN0
aXZpdHkgPSB0aGlzLT5tX3RyYWNrTmV0d29ya0FjdGl2aXR5OwogCiAgICAgcmV0dXJuIGNvcHk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggM2RjMmIxODJiZmIwOTlhZTBmNmEzYjc3OWRmZTAz
ODM1MWU2OTljZS4uOTExMDVkM2YxNGU2NmVhNzVmYzJhNGNiMmMyNWUwOTk2YmE5MjE4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uaApAQCAtMTQxLDYgKzE0MSw5IEBAIHB1YmxpYzoKICAgICBib29sIHBy
b2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nl
c3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXI7IH0KICAgICB2b2lkIHNldFByb2Nlc3NTd2Fw
c09uV2luZG93T3BlbldpdGhPcGVuZXIoYm9vbCBzd2FwcykgeyBtX3Byb2Nlc3NTd2Fwc09uV2lu
ZG93T3BlbldpdGhPcGVuZXIgPSBzd2FwczsgfQogCisgICAgYm9vbCB0cmFja05ldHdvcmtBY3Rp
dml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tOZXR3b3JrQWN0aXZpdHk7IH0KKyAgICB2b2lk
IHNldFRyYWNrTmV0d29ya0FjdGl2aXR5KGJvb2wgdHJhY2spIHsgbV90cmFja05ldHdvcmtBY3Rp
dml0eSA9IHRyYWNrOyB9CisKIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZEhhdmVMZWdhY3lE
YXRhU3RvcmUgeyBmYWxzZSB9OwogCkBAIC0xNzQsNiArMTc3LDcgQEAgcHJpdmF0ZToKICAgICBQ
cm9jZXNzSUQgbV9wcmVzZW50aW5nQXBwbGljYXRpb25QSUQgeyBnZXRDdXJyZW50UHJvY2Vzc0lE
KCkgfTsKICAgICBib29sIG1fcHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lciB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX3RyYWNrTmV0d29ya0FjdGl2aXR5IHsgZmFsc2UgfTsKIAogI2lmIFBMQVRGT1JN
KElPUykKICAgICBXVEY6OlN0cmluZyBtX2N0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3Vy
YXRpb25SZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5jcHAKaW5kZXggZjc4OTZjZTUxNWVjNmUzZWQ0YTNkYjg2NWZmMzI2YTQ5
NjhlYzExZS4uMmNhY2MwNWM0MjExMmVmODYzZThmY2I2OWE4ZjA4YWJmZTkxNTc2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29u
ZmlndXJhdGlvblJlZi5jcHAKQEAgLTE3NywzICsxNzcsMTMgQEAgdm9pZCBXS0NvbnRleHRDb25m
aWd1cmF0aW9uU2V0UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihXS0NvbnRleHRD
b25maWcKIHsKICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFByb2Nlc3NTd2Fwc09uV2lu
ZG93T3BlbldpdGhPcGVuZXIoc3dhcHMpOwogfQorCitib29sIFdLQ29udGV4dENvbmZpZ3VyYXRp
b25UcmFja05ldHdvcmtBY3Rpdml0eShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3Vy
YXRpb24pCit7CisgICAgcmV0dXJuIHRvSW1wbChjb25maWd1cmF0aW9uKS0+dHJhY2tOZXR3b3Jr
QWN0aXZpdHkoKTsKK30KKwordm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0VHJhY2tOZXR3
b3JrQWN0aXZpdHkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBib29s
IHRyYWNrKQoreworICAgIHRvSW1wbChjb25maWd1cmF0aW9uKS0+c2V0VHJhY2tOZXR3b3JrQWN0
aXZpdHkodHJhY2spOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oCmluZGV4IDc3YWUxNzEzN2U1NzIwZmNh
MTU0ODVhNWMwZTVkNDNjYzU0YTg2ZDEuLmY1MTJjNTVkZDg2NGU0N2U3OTZmOGI4YzNkMzc2Mjky
MDUwMDAyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKQEAgLTc0LDYgKzc0LDkgQEAgV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0Q29uZmlndXJhdGlvblNldFByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbihX
S0NvbnRleHRDb25maWcKIFdLX0VYUE9SVCBib29sIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Qcm9j
ZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYg
Y29uZmlndXJhdGlvbik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0
UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihXS0NvbnRleHRDb25maWd1cmF0aW9u
UmVmIGNvbmZpZ3VyYXRpb24sIGJvb2wgc3dhcHMpOwogCitXS19FWFBPUlQgYm9vbCBXS0NvbnRl
eHRDb25maWd1cmF0aW9uVHJhY2tOZXR3b3JrQWN0aXZpdHkoV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZiBjb25maWd1cmF0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRp
b25TZXRUcmFja05ldHdvcmtBY3Rpdml0eShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZp
Z3VyYXRpb24sIGJvb2wgdHJhY2spOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDJhMTM3MjhiYjljMmU1MDU4YmQwN2E5
ZGIwY2Q2NzY5Y2VmZjAzYTguLjMwNzVjZjFmOWQ4YjE5NzRhZGE1Y2MyMTA2ODE3NjE2MDgzNzhh
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTU5LDYgKzU5LDcgQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25h
dG9taWMpIHBpZF90IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcm9j
ZXNzU3dhcHNPbk5hdmlnYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcm9jZXNzU3dh
cHNPbldpbmRvd09wZW5XaXRoT3BlbmVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdHJhY2tO
ZXR3b3JrQWN0aXZpdHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KaW5k
ZXggY2QyOWRhODYzMDJkOTU0MzVkY2FmMmRjZGNjMjc2NGU1OTU5YWQxNy4uMWUzYmQ3OTdhZWI0
ZTc5M2M5OTJkNDVjYzkzZWEzZGQxMTVhZGYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLm1tCkBAIC0yNDcsNiArMjQ3LDE2IEBAIC0gKEJPT0wpcHJvY2Vzc1N3YXBzT25XaW5kb3dP
cGVuV2l0aE9wZW5lcgogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5wcm9j
ZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyKCk7CiB9CiAKKy0gKEJPT0wpdHJhY2tOZXR3
b3JrQWN0aXZpdHkKK3sKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+dHJh
Y2tOZXR3b3JrQWN0aXZpdHkoKTsKK30KKworLSAodm9pZClzZXRUcmFja05ldHdvcmtBY3Rpdml0
eTooQk9PTCl0cmFjaworeworICAgIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFRyYWNr
TmV0d29ya0FjdGl2aXR5KHRyYWNrKTsKK30KKwogI2lmIFBMQVRGT1JNKElPUykKIC0gKE5TU3Ry
aW5nICopQ1REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggY2VmM2ZiNjkxMjliOGRiZTJjYWJhOGE0YmNi
NWY1NmE4ZWQxYWQ3Mi4uZDM1YTljYzVkMTZiNWM5ZjNhODc1YjE5Y2Q3M2FhOWYzYmNhZTIxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNDk0LDYg
KzQ5NCw4IEBAIE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3
b3JrUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoCiAgICAgcGFyYW1ldGVycy51cmxTY2hl
bWVzUmVnaXN0ZXJlZEFzQ09SU0VuYWJsZWQgPSBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdp
c3RlckFzQ09SU0VuYWJsZWQpOwogICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRB
c0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0ID0gY29weVRvVmVjdG9yKG1fc2NoZW1lc1RvUmVn
aXN0ZXJBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KTsKIAorICAgIHBhcmFtZXRlcnMudHJh
Y2tOZXR3b3JrQWN0aXZpdHkgPSBtX2NvbmZpZ3VyYXRpb24tPnRyYWNrTmV0d29ya0FjdGl2aXR5
KCk7CisKICAgICAvLyBBZGQgYW55IHBsYXRmb3JtIHNwZWNpZmljIHBhcmFtZXRlcnMKICAgICBw
bGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0ZXJzKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODgyYmI4YWFk
YjJkYzAxMTg0YzRjM2ZiNzdmYjdmMzZlNWZmOWFiNC4uMmQ2NGFmYmMyZTZkMTQzMGM4YTgzMDIy
M2ZiMWFmZjAxOTEzMDVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMjExLDEwICsxMjExLDEzIEBACiAJCTUzMDI1ODQ1MURDQkJE
MjIwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlcGxheWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzAyNTgzODFEQ0JCRDFEMDBEQTg5QzIgLyog
TmV0d29ya0NhcHR1cmVSZXBsYXllci5oICovOyB9OwogCQk1MzAyNTg0NjFEQ0JCRDIyMDBEQTg5
QzIgLyogTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMDI1ODM5MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3Jr
RGF0YVRhc2tSZXBsYXkuY3BwICovOyB9OwogCQk1MzAyNTg0NzFEQ0JCRDIyMDBEQTg5QzIgLyog
TmV0d29ya0RhdGFUYXNrUmVwbGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MzAyNTgzQTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0RhdGFUYXNr
UmVwbGF5LmggKi87IH07CisJCTUzMTU4NzZDMjA3NkI3NjIwMDRCRjlGMyAvKiBOZXR3b3JrQWN0
aXZpdHlUcmFja2VyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MzE1ODc2QjIwNzZCNzEzMDA0QkY5RjMgLyogTmV0d29ya0FjdGl2aXR5VHJh
Y2tlckNvY29hLm1tICovOyB9OwogCQk1MzIxNTk1MzFEQkFFNzE4MDA1NEFBM0MgLyogTmV0d29y
a1Nlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTMyMTU5NTIxREJBRTZGQzAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uLmNwcCAqLzsgfTsK
IAkJNTMyMTU5NTQxREJBRTcxRDAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFzay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIxNTk1MTFEQkFFNkZD
MDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrLmNwcCAqLzsgfTsKIAkJNTMyMTU5NTUxREJBRTcy
OTAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjE1OTUwMURCQUU2RDcwMDU0QUEzQyAvKiBOZXR3
b3JrU2Vzc2lvbkNvY29hLmggKi87IH07CiAJCTUzMjE1OTU2MURCQUU3MkQwMDU0QUEzQyAvKiBO
ZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0Nv
Y29hLmggKi87IH07CisJCTUzNUJDQjkyMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZp
dHlUcmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MzVCQ0I5MDIwNjlDNDlDMDBDQ0NFMDIgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oICov
OyB9OworCQk1Mzc5REI3MjIwN0U5NDcwMDA3RDhDMzMgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0Yz
Q0FBNTIwNkM0NDNFMDA4NjQ5MEUgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgKi87IH07
CiAJCTUzQkE0N0QwMURDMkVGNUUwMDRERjRBRCAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ2MURD
MkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCAqLzsgfTsKIAkJNTNCQTQ3
RDExREMyRUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ3MURDMkVFNDAwMDlENDhD
RiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmggKi87IH07CiAJCTUzREVBMzY2MURERTQyMzEwMEU4
MjY0OCAvKiBqc29uLmhwcCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzREVBMzY1MURERTQyMkUwMEU4MjY0OCAvKiBqc29uLmhwcCAqLzsgfTsKQEAgLTM2
NTksMTMgKzM2NjIsMTYgQEAKIAkJNTMwMjU4MzgxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtD
YXB0dXJlUmVwbGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29y
a0NhcHR1cmVSZXBsYXllci5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3Jr
Q2FwdHVyZVJlcGxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMDI1ODM5
MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNwcDsgcGF0
aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMwMjU4M0ExRENCQkQxRDAwREE4OUMyIC8qIE5l
dHdvcmtEYXRhVGFza1JlcGxheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBO
ZXR3b3JrRGF0YVRhc2tSZXBsYXkuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0
d29ya0RhdGFUYXNrUmVwbGF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzMTU4
NzZCMjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBOZXR3b3JrQWN0aXZpdHlUcmFj
a2VyQ29jb2EubW07IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrQWN0aXZpdHlU
cmFja2VyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMjE1OTRGMURC
QUU2RDcwMDU0QUEzQyAvKiBOZXR3b3JrRGF0YVRhc2tDb2NvYS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrRGF0YVRhc2tDb2NvYS5oOyBwYXRoID0gTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTMyMTU5NTAxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2Eu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Nlc3Npb25Db2NvYS5o
OyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzIxNTk1MTFEQkFFNkZDMDA1NEFBM0MgLyogTmV0
d29ya0RhdGFUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5l
dHdvcmtEYXRhVGFzay5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2su
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzIxNTk1MjFEQkFFNkZDMDA1NEFB
M0MgLyogTmV0d29ya1Nlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTmV0d29ya1Nlc3Npb24uY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nl
c3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MzVCQ0I5MDIwNjlDNDlD
MDBDQ0NFMDIgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3
b3JrQWN0aXZpdHlUcmFja2VyLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZp
dHlUcmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzOUVCNTQ2MURDMkVF
NDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwOyBwYXRoID0gTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUzOUVCNTQ3MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0Jsb2IuaDsg
cGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTNERUEzNjUxRERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgbmFtZSA9IGpzb24uaHBwOyBwYXRoID0gTmV0d29y
a1Byb2Nlc3MvY2FwdHVyZS9qc29uLmhwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTNGM0NBQTUyMDZDNDQzRTAwODY0OTBFIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0FjdGl2aXR5VHJhY2tl
ci5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc1MEYzMkEyMDMyRDRFNTAwMzg5MzQ3IC8q
IExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBMb2NhbEF1
dGhlbnRpY2F0aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
TG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9Owog
CQk1NzYwODI4QjIwMjk4NTQyMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTc2MDgyOEMyMDI5ODU0MjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxz
TWVzc2VuZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2Vy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0MDAsNiArNjQwNiw4IEBACiAJ
CQkJMkRBOTQ0QkIxODg1MTFERDAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQk1MTBDQzdEQzE2MTM4
RTI5MDBEMDNFRDMgLyogbWFjICovLAogCQkJCTQxMzA3NTk3MURFODRFRDcwMDM5RUM2OSAvKiB3
ZWJydGMgKi8sCisJCQkJNTNGM0NBQTUyMDZDNDQzRTAwODY0OTBFIC8qIE5ldHdvcmtBY3Rpdml0
eVRyYWNrZXIuY3BwICovLAorCQkJCTUzNUJDQjkwMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyLmggKi8sCiAJCQkJNTEzQTE2NDkxNjMwQTlCRjAwNUQ3RDIyIC8qIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLywKIAkJCQk1MTNBMTY0QTE2MzBBOUJG
MDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQk1MTNB
MTY0QjE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4gKi8sCkBAIC02OTI2LDYgKzY5MzQsNyBAQAogCQk3RUM0RjBGODE4RTRBOTIyMDA4
MDU2QUYgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTUzMTU4NzZCMjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
Q29jb2EubW0gKi8sCiAJCQkJNTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRh
VGFza0NvY29hLmggKi8sCiAJCQkJNUNCQzlCOEIxQzY1MjU3MzAwQThGRENGIC8qIE5ldHdvcmtE
YXRhVGFza0NvY29hLm1tICovLAogCQkJCTdFQzRGMEY5MThFNEE5NDUwMDgwNTZBRiAvKiBOZXR3
b3JrUHJvY2Vzc0NvY29hLm1tICovLApAQCAtOTAxNSw2ICs5MDI0LDcgQEAKIAkJCQkxQTZGQkQy
ODExRTY5QkMyMDBEQjEzNzEgLyogTmV0c2NhcGVQbHVnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBNEE5QzU2MTJCODE2Q0YwMDhGRTk4NCAvKiBOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFBNTg4OTIxMUVFNzA0MDAwNjFCODgyIC8qIE5ldHNjYXBlUGx1Z2lu
U3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzVCQ0I5MjIwNjlDNDlDMDBDQ0NFMDIgLyog
TmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3OThDN0ExNkU2
ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU0NDM2RUNDMUEwRDA0MEIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU0OUQ0MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFn
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDY4Miw2ICsxMDY5Miw3IEBACiAJCQkJMkQ1MDM2NUUx
QkNDNzkzRjAwRTIwQkIzIC8qIE5hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEQTk0NDlFMTg4NEU0RjAwMEVEODZEQiAvKiBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzAyQkZGMUUxMjUxNTAyRTAwOUNDQkVBIC8q
IE5hdGl2ZVdlYktleWJvYXJkRXZlbnRNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkxQzlFQkE1
QzIwODdFNzRGMDAwNTQ0MjkgLyogTmF0aXZlV2ViTW91c2VFdmVudElPUy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTMxRUEyNUQyMTM0Rjc4QzAwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRBOTQ0OUYxODg0RTRGMDAwRUQ4NkRCIC8qIE5h
dGl2ZVdlYlRvdWNoRXZlbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlERjU4QzYzNjEzNzFB
Q0EwMDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbSBpbiBTb3VyY2VzICovLApA
QCAtMTA2OTMsNiArMTA3MDQsOCBAQAogCQkJCTFBNEE5QzU1MTJCODE2Q0YwMDhGRTk4NCAvKiBO
ZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTRBOUM5QTEyQjgy
MUNEMDA4RkU5ODQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQUE1ODg5MzExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNTM3OURCNzIyMDdFOTQ3MDAwN0Q4QzMzIC8qIE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTMxNTg3NkMyMDc2Qjc2MjAw
NEJGOUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUUxNzk4Qzc5MTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUU0NDM2RUNBMUEwRDAzRkEwMEVBRDIwNCAvKiBOZXR3b3JrQ2Fj
aGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ5RDQwRDkxQUQzRkIyMTAwNjZCN0I5IC8qIE5l
dHdvcmtDYWNoZUJsb2JTdG9yYWdlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTA3MDgsNyArMTA3
MjEsNiBAQAogCQkJCTgzMkFFMjUzMUJFMkU4Q0QwMEZBQUUxMCAvKiBOZXR3b3JrQ2FjaGVTcGVj
dWxhdGl2ZUxvYWRNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzQkRDQ0I5MUFDNUZE
QjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUU0NDM2RUQwMUEwRDA0MEIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTFDOUVCQTVDMjA4N0U3NEYwMDA1NDQyOSAvKiBOYXRpdmVXZWJN
b3VzZUV2ZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODMxMDQyOEMxQkQ2QjY2RjAwQTcx
NUU0IC8qIE5ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUzMDI1ODNEMURDQkJEMjIwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZUV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUzMDI1ODQwMURDQkJEMjIwMERBODlDMiAvKiBOZXR3b3JrQ2Fw
dHVyZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggODZiOTUwOWY0
NDI5MGNjYWUyZmYzM2E5ZWY5ODU2ODY5MDI1NTdkZi4uOGJhMDYwZWZkMjE5NGM0MDY0NjBhMjEy
Y2FmZmYwNTIwNzdhNGYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNTIyLDYgKzUyMiwxMSBAQCB2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVy
JiBmcmFtZUxvYWRlciwgdW5zaQogICAgIH0KIH0KIAordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
cGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKQoreworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGFnZUxvYWRD
b21wbGV0ZWQod2ViUGFnZUlEKSwgMCk7Cit9CisKIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxv
YWRJZGVudGlmaWVyKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuaAppbmRleCA2NTc4NjMzMGMyYThiY2NlMTc0YWU0OTk0ODg1MjJkZjhlM2U5NTI0Li45Njky
NWJjMDU4MTZiOTBiZDNjYmRlNmE2ODE0OWE1ZWQ5MDAzY2QzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKQEAgLTQ5LDYg
KzQ5LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgbG9hZFJlc291cmNlKFdlYkNvcmU6OkZy
YW1lJiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsK
ICAgICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVMb2FkZXIm
LCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IFdl
YkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3Rvcjxj
aGFyPiYgZGF0YSkgZmluYWw7CisgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZCh1aW50NjRfdCB3
ZWJQYWdlSUQpIGZpbmFsOwogCiAgICAgdm9pZCByZW1vdmUoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXIqLCBib29sKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
Q29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBj
NjBiMmU0NTMzNWMzYTA0NmM0ZTI3N2NiN2U0YmU2NzY4YzdjY2M5Li42NDFlNjdjMzZlYmY0ODZj
NzdkNDAwYzYxNGEwMDY1Y2M0NGQ1ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
CkBAIC0xMTEsNiArMTExLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlCiAgICAgUmVzb3Vy
Y2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoZnJhbWVMb2FkZXIubmV0d29ya2lu
Z0NvbnRleHQoKSwgcmVxdWVzdCwgb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6
OkNyZWRlbnRpYWxzOjpPbWl0ID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlIDog
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSwgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKIH0K
IAordm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnBhZ2VMb2FkQ29tcGxldGVkKHVpbnQ2
NF90IC8qd2ViUGFnZUlEKi8pCit7Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
OjpzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUmIGZyYW1lLCBOZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlcj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCBXVEZNb3ZlKHJlcXVlc3QpLCBbdGhpcywg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFJlZlB0cjxX
ZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4mJiBsb2FkZXIpIG11dGFibGUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggODgyOGI1NDk4YWNlZDM2OGM1NmFiOGE4NTU3
MzkzNzMyNDVmMGFkYi4uNzcwZDYzZWZjNmFjOTg5MTcwZGU0NmVhN2MzODU1YTIwYWM2NTgyMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgbG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6
U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFsUG9saWN5
LCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVy
TWFwJiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
LCBWZWN0b3I8Y2hhcj4mKSBmaW5hbDsKKyAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKHVpbnQ2
NF90IHdlYlBhZ2VJRCkgZmluYWw7CisKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNv
dXJjZUxvYWRlciosIGJvb2wpIGZpbmFsOwogICAgIHZvaWQgY3Jvc3NPcmlnaW5SZWRpcmVjdFJl
Y2VpdmVkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRp
cmVjdFVSTCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338681</attachid>
            <date>2018-04-24 15:49:52 -0700</date>
            <delta_ts>2018-04-25 12:09:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184838-20180424154951.patch</filename>
            <type>text/plain</type>
            <size>71833</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwOTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJjNTdjMDQ3YzEyNTNiOWYwODc4OTYx
NzlhMzI3YWFiMDliZmIwOGQuLjVhZGI2NTgwZmY2NmM3YWIzOTAxYWRlNGZiYWZhZjIzNjRlZjcz
MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDQtMjQgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBmYWNpbGl0eSBmb3IgdHJhY2tpbmcgdGltZXMg
YW5kIHJlc3VsdHMgb2YgcGFnZSBhbmQgcmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0ODM4CisgICAgICAgIHJkYXI6Ly9w
cm9ibGVtLzM2NTQ4OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRGVmaW5lIFVTRV9ORVRXT1JLX0FDVElWSVRZIHRvIGVuYWJsZS9kaXNhYmxlIHRo
ZQorICAgICAgICBOZXR3b3JrQWN0aXZpdHlUcmFja2VyIGZhY2lsaXR5LiBEZWZpbmUgSEFWRV9O
V19BQ1RJVklUWSB0byBlbmFibGUgYQorICAgICAgICBwYXJ0aWN1bGFyIGltcGxlbWVudGF0aW9u
IG9mIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoK
KwogMjAxOC0wNC0yNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMDk3MS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBm
MDU1NGJhZmY2NmE5NTU5ODc1MGRkODRjMjI4YThhMTY0MWRmZDU4Li5mMWE2ZTRhZjFhNTg3NGY4
NDlhYmY2NzczNzM1NTI0MzhkMzAyMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIw
MTgtMDQtMjQgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBmYWNpbGl0eSBmb3IgdHJhY2tpbmcgdGltZXMgYW5kIHJlc3VsdHMgb2YgcGFnZSBhbmQgcmVz
b3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg0ODM4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzM2NTQ4OTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIEZyYW1lUHJvZ3Jl
c3NUcmFja2VyIHRvIHNlbmQgdGhlIG5lY2Vzc2FyeSBwYWdlIGxvYWQgc3RhcnQvc3RvcAorICAg
ICAgICBzaWduYWxzIHNvIHRoYXQgd2UgY2FuIHRyYWNrIHRoZSBlbnRpcmUgcGFnZSBsb2FkIGF0
IGEgbmV0d29yayBsZXZlbC4KKyAgICAgICAgQWRkIGFuIGVtcHR5IG92ZXJyaWRlIG9mIHRoZSBw
dXJlIHZpcnR1YWwKKyAgICAgICAgTG9hZGVyU3RyYXRlZ3k6OnBhZ2VMb2FkQ29tcGxldGVkIG1l
dGhvZC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoZXJlIGlzIG5vIHRlc3RhYmxlIGVmZmVj
dCBmcm9tIHRoZXNlIGNoYW5nZXMuIE9uCisgICAgICAgIENvY29hLCBtZWFzdXJhYmxlIGNoYW5n
ZXMgdGFrZSBwbGFjZSBpbiBhbm90aGVyIChub24tV2ViS2l0KSBwcm9jZXNzLgorICAgICAgICBP
biBub24tQ29jb2Egc3lzdGVtcywgdGhpcyBmYWNpbGl0eSBpcyBjdXJyZW50bHkgZGlzYWJsZWQu
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OkZyYW1lUHJvZ3Jlc3NUcmFja2VyOjpGcmFtZVByb2dyZXNzVHJhY2tlcik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6RnJhbWVQcm9ncmVzc1RyYWNrZXI6OnBy
b2dyZXNzQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjppbml0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjppbml0Rm9yU3ludGhlc2l6ZWREb2N1bWVu
dCk6CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisKIDIwMTgtMDQtMjQgIEJh
c3VrZSBTdXp1a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnkuY29tPgogCiAgICAgICAgIFtDdXJsXSBF
eHRyYWN0IHByb3h5IHNldHRpbmdzIGludG8gYSBzZXBhcmF0ZSBjbGFzcyB0byBob2xkIGFkdmFu
Y2VkIGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2NzBhZTBhZDA5OWJjOTFjZGEzYzI5YzZkOGI3
ZTE2NzI1ZmUzMzBhLi5kNzE0NWRkMDdjYTQxZWZlYTM2MGQ5ZDEwZTM3NmMzODI1MGE5OGYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE4LTA0LTI0ICBLZWl0aCBSb2xsaW4gIDxrcm9s
bGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZmFjaWxpdHkgZm9yIHRyYWNraW5nIHRpbWVz
IGFuZCByZXN1bHRzIG9mIHBhZ2UgYW5kIHJlc291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDgzOAorICAgICAgICByZGFyOi8v
cHJvYmxlbS8zNjU0ODk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLiBUaGUgaWRlYSBiZWhpbmQgdGhp
cyBmYWNpbGl0eSBpcyB0byBjcmVhdGUKKyAgICAgICAgYW5kIGRlc3Ryb3kgdGhlbSBhcm91bmQg
bmV0d29ya2luZyBhY3Rpdml0eSB0aGF0IHdlIHdhbnQgdG8gdHJhY2sgZm9yCisgICAgICAgIHRo
ZSBwdXJwb3NlIG9mIG1lYXN1cmluZyBvdmVyYWxsIG5ldHdvcmsgaGVhbHRoLiBUaGV5IGNhbiBi
ZSBjcmVhdGVkCisgICAgICAgIGFyb3VuZCB0aGUgbG9hZGluZyBvZiBwYWdlcyBvciBpbmRpdmlk
dWFsIHJlc291cmNlcywgYW5kIGNhbiBiZQorICAgICAgICBhcnJhbmdlZCBpbiBhIHBhcmVudC9j
aGlsZCBoaWVyYXJjaHkgdG8gaW5kaWNhdGUgd2hhdCBwYWdlcyB0aGUKKyAgICAgICAgcmVzb3Vy
Y2VzIGFyZSBwYXJ0IG9mLiBUaGUgTmV0d29ya0FjdGl2aXR5IHRyYWNrZXIgdHJhY2tzIGxvYWQg
dGltZXMKKyAgICAgICAgYW5kIHJlc3VsdHMuIE9uIENvY29hLCBpdCBjYW4gYmUgaW50ZWdyYXRl
ZCB3aXRoIENGTmV0d29yayBpbiBvcmRlciB0bworICAgICAgICBhc3NvY2lhdGUgV2ViS2l0IGFj
dGl2aXR5IHdpdGggbG93LWxldmVsIG5ldHdvcmtpbmcgYWN0aXZpdHkuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpOZXR3b3JrQWN0
aXZpdHlUcmFja2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6
fk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZp
dHlUcmFja2VyOjpzZXRQYXJlbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlU
cmFja2VyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6
OmNvbXBsZXRlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFj
a2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpn
ZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnBhZ2VMb2FkQ29tcGxldGVkKToKKyAgICAgICAgKFdlYktpdDo6bmV0d29ya0FjdGl2aXR5
VHJhY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnN0YXJ0VHJhY2tpbmdSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RvcFRyYWNraW5nUmVzb3VyY2VMb2FkKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0b3BBbGxO
ZXR3b3JrQWN0aXZpdHlUcmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmdGb3JQYWdlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmZpbmRSb290
TmV0d29ya0FjdGl2aXR5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmZpbmROZXR3b3JrQWN0aXZpdHlUcmFja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlU
cmFja2VyOjpSZXNvdXJjZU5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjp0cmFja05ldHdvcmtBY3Rpdml0
eSBjb25zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZGVyOjpjbGVhbnVwKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
OjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmlu
aXNoTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlk
RmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZFJldHJpZXZlQ2FjaGVFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6Y29udGludWVQcm9jZXNzaW5nQ2FjaGVkRW50cnlBZnRlckRpZFJlY2VpdmVSZXNwb25z
ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0FjdGl2aXR5VHJhY2tlckNvY29h
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6TmV0
d29ya0FjdGl2aXR5VHJhY2tlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI6On5OZXR3b3JrQWN0aXZpdHlUcmFja2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0FjdGl2aXR5VHJhY2tlcjo6c2V0UGFyZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Fj
dGl2aXR5VHJhY2tlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlU
cmFja2VyOjpjb21wbGV0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6
Ok5ldHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6OlByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5jcHA6CisgICAgICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uVHJhY2tOZXR3
b3JrQWN0aXZpdHkpOgorICAgICAgICAoV0tDb250ZXh0Q29uZmlndXJhdGlvblNldFRyYWNrTmV0
d29ya0FjdGl2aXR5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbiB0cmFja05ldHdvcmtBY3Rpdml0eV0pOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24gc2V0VHJhY2tOZXR3b3JrQWN0aXZpdHk6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cGFnZUxvYWRD
b21wbGV0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5oOgorCiAyMDE4LTA0LTI0ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjMwOTcxLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZwppbmRleCA2ODhiODRlMDEyZDk3N2M5MDNkMzQ5MGZiODZlMjQyMGQ4NTcwZjVjLi40
NDI2NDhjOGJlMTBjZjQ5MzFmNGYyM2ZjNDc4MTQwZmFjMTdkNDVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA0LTI0ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGlu
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZmFjaWxpdHkgZm9yIHRyYWNraW5nIHRpbWVzIGFu
ZCByZXN1bHRzIG9mIHBhZ2UgYW5kIHJlc291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDgzOAorICAgICAgICByZGFyOi8vcHJv
YmxlbS8zNjU0ODk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhbiBlbXB0eSBvdmVycmlkZSBvZiB0aGUgcHVyZSB2aXJ0dWFsCisgICAgICAg
IExvYWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZCBtZXRob2QuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwYWdlTG9hZENvbXBsZXRlZCk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6CisKIDIwMTgtMDQtMTYgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBOZXR3b3JrTG9h
ZENoZWNrZXIgdG8gaGFuZGxlIHN5bmNocm9ub3VzIEhUVFAgbG9hZHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4
IDIzNmFkYjJmYTM5ZjgzYWQyNTE2ZTI1NzVjMDUyYzUwYmRlZDdhNGEuLjg4MTc1NTczNWQzNDVl
NzQ5Mjg2NTYxOGZkYjI2Yzg0ZGFmZGI0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTI2Nyw2ICsxMjY3
LDE0IEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYg
X19oYXNfaW5jbHVkZSg8bncvYWN0aXZpdHkuaD4pCisjZGVmaW5lIEhBVkVfTldfQUNUSVZJVFkg
MQorI2VuZGlmCisKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorI2RlZmluZSBVU0VfTkVUV09SS19B
Q1RJVklUWSAxCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBIQVZFX1NF
Q19UUlVTVF9TRVJJQUxJWkFUSU9OIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKaW5kZXggOTdjZjBiNjhlMTE0ZjE3YTU2ZjA0MWFhN2FiMDg0ZjM1MDAyZjBkNS4u
MDdjZmJmNDQxMTcyNGNjOWU5NzRlMWJhNTZmZjY2NTBjNjZlNDJjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMjYsOCArMjI2LDkgQEAgc3RydWN0IEZvcmJpZFBy
b21wdHNTY29wZSB7CiBjbGFzcyBGcmFtZUxvYWRlcjo6RnJhbWVQcm9ncmVzc1RyYWNrZXIgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IEZyYW1l
UHJvZ3Jlc3NUcmFja2VyKEZyYW1lJiBmcmFtZSkKKyAgICBleHBsaWNpdCBGcmFtZVByb2dyZXNz
VHJhY2tlcihGcmFtZSYgZnJhbWUsIEZyYW1lTG9hZGVyQ2xpZW50JiBjbGllbnQpCiAgICAgICAg
IDogbV9mcmFtZShmcmFtZSkKKyAgICAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgICAgICwg
bV9pblByb2dyZXNzKGZhbHNlKQogICAgIHsKICAgICB9CkBAIC0yNTIsMTAgKzI1MywxNCBAQCBw
dWJsaWM6CiAgICAgICAgIEFTU0VSVChtX2ZyYW1lLnBhZ2UoKSk7CiAgICAgICAgIG1faW5Qcm9n
cmVzcyA9IGZhbHNlOwogICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+cHJvZ3Jlc3MoKS5wcm9ncmVz
c0NvbXBsZXRlZChtX2ZyYW1lKTsKKworICAgICAgICBpZiAobV9jbGllbnQucGFnZUlEKCkpCisg
ICAgICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cGFnZUxv
YWRDb21wbGV0ZWQobV9jbGllbnQucGFnZUlEKCkudmFsdWUoKSk7CiAgICAgfQogCiBwcml2YXRl
OgogICAgIEZyYW1lJiBtX2ZyYW1lOworICAgIEZyYW1lTG9hZGVyQ2xpZW50JiBtX2NsaWVudDsK
ICAgICBib29sIG1faW5Qcm9ncmVzczsKIH07CiAKQEAgLTMxMyw3ICszMTgsNyBAQCB2b2lkIEZy
YW1lTG9hZGVyOjppbml0KCkKICAgICBtX3N0YXRlTWFjaGluZS5hZHZhbmNlVG8oRnJhbWVMb2Fk
ZXJTdGF0ZU1hY2hpbmU6OkRpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCk7CiAKICAgICBt
X25ldHdvcmtpbmdDb250ZXh0ID0gbV9jbGllbnQuY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsK
LSAgICBtX3Byb2dyZXNzVHJhY2tlciA9IHN0ZDo6bWFrZV91bmlxdWU8RnJhbWVQcm9ncmVzc1Ry
YWNrZXI+KG1fZnJhbWUpOworICAgIG1fcHJvZ3Jlc3NUcmFja2VyID0gc3RkOjptYWtlX3VuaXF1
ZTxGcmFtZVByb2dyZXNzVHJhY2tlcj4obV9mcmFtZSwgbV9jbGllbnQpOwogfQogCiB2b2lkIEZy
YW1lTG9hZGVyOjppbml0Rm9yU3ludGhlc2l6ZWREb2N1bWVudChjb25zdCBVUkwmKQpAQCAtMzM4
LDcgKzM0Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmluaXRGb3JTeW50aGVzaXplZERvY3VtZW50
KGNvbnN0IFVSTCYpCiAgICAgbV9uZWVkc0NsZWFyID0gdHJ1ZTsKIAogICAgIG1fbmV0d29ya2lu
Z0NvbnRleHQgPSBtX2NsaWVudC5jcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwotICAgIG1fcHJv
Z3Jlc3NUcmFja2VyID0gc3RkOjptYWtlX3VuaXF1ZTxGcmFtZVByb2dyZXNzVHJhY2tlcj4obV9m
cmFtZSk7CisgICAgbV9wcm9ncmVzc1RyYWNrZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZyYW1lUHJv
Z3Jlc3NUcmFja2VyPihtX2ZyYW1lLCBtX2NsaWVudCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6
OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJT
dHJhdGVneS5oCmluZGV4IDY3ZDMwY2YxMWY2YWJmYTc1OThlOGM0Y2I4YzlhODgxYTI3N2IzNDUu
LjJmNWVmZWI2Yjg2YjhhMDY2OWUzNDFlYjVlNDY5MTU5MTEwMzgwNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFdFQkNPUkVf
RVhQT1JUIExvYWRlclN0cmF0ZWd5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJl
c291cmNlKEZyYW1lJiwgQ2FjaGVkUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3Qg
UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U3Vi
cmVzb3VyY2VMb2FkZXI+JiYpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIENsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IEZldGNo
T3B0aW9ucyYsIGNvbnN0IEhUVFBIZWFkZXJNYXAmLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VS
ZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYWdl
TG9hZENvbXBsZXRlZCh1aW50NjRfdCB3ZWJQYWdlSUQpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmUoUmVzb3VyY2VMb2FkZXIqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmVy
c0xvYWRpbmcoUmVzb3VyY2VMb2FkZXIqLCBib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRl
eCBiOTM5ODIwMGM2OWU4NmYxNGRjNTk2ZmJlYTUyYTA1NDc3MDQ5NWNkLi5mMWQwM2U0NzM2YmUy
NGI3MmM2ODkzOWE5ZmU4NTk4NTlhNWI4ODNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTk3LDE0
ICs5Nyw3IEBAIHNldChXZWJLaXRfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAogc2V0
KFdlYktpdF9TT1VSQ0VTCi0gICAgTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLmNwcAotCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAotICAg
IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCi0gICAgTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKLQotICAgIE5ldHdvcmtQcm9j
ZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKLQorICAgIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NP
UlNQcmVmbGlnaHRDaGVja2VyLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVs
ZUxpc3RNYW5hZ2VyLmNwcApAQCAtMTIyLDYgKzExNSwxNCBAQCBzZXQoV2ViS2l0X1NPVVJDRVMK
ICAgICBOZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9QcmVj
b25uZWN0VGFzay5jcHAKIAorICAgIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5jcHAKKworICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKKyAg
ICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorICAgIE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuY3BwCisKKyAgICBOZXR3b3JrUHJv
Y2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCisKICAgICBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25m
aWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1dlYktpdC54Y2NvbmZpZwppbmRleCAwNDU4ODljYjE4NmY4ZTI4OTcyNTBiOWM3MzM4MDIzZTc1
MDEzODU0Li5hMTlkZGVhM2MzMGVhZWVjOTJlNzUwNDliY2JhODkzNTM3MDJjYWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTEyLDcgKzEx
Miw3IEBAIFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHU19NQUNPU19TSU5DRV8xMDEzID0gLXdlYWtf
ZnJhbWV3b3JrIFNhZmFyaVNhZmVCcm93c2luZzsKIFdLX1VJS0lUX0xERkxBR1MgPSAkKFdLX1VJ
S0lUX0xERkxBR1NfJChXS19DT0NPQV9UT1VDSCkpOwogV0tfVUlLSVRfTERGTEFHU19jb2NvYXRv
dWNoID0gLWZyYW1ld29yayBVSUtpdDsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1Mg
PSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1l
d29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENv
cmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29y
ayBJT0tpdCAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFH
UykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykg
JChXS19DQVJCT05fTERGTEFHUykgJChXS19DT1JFX1BERl9MREZMQUdTKSAkKFdLX0NPUkVfUFJF
RElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElD
U19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFDRV9MREZMQUdTKSAkKFdLX0xJQldFQlJU
Q19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxF
X0dFU1RBTFRfTERGTEFHUykgJChXS19PUEVOR0xfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFH
UykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUyk7CitGUkFN
RVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAt
ZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsg
Q29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1m
cmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5
IC1sbmV0d29yayAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFH
UykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykg
JChXS19DT1JFX1BERl9MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdL
X0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAk
KFdLX0lPU1VSRkFDRV9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklM
RV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChX
S19PUEVOR0xfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5H
X0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUyk7CiAKIC8vIFByZXZlbnQgQysrIHN0YW5kYXJk
IGxpYnJhcnkgb3BlcmF0b3IgbmV3LCBkZWxldGUgYW5kIHRoZWlyIHJlbGF0ZWQgZXhjZXB0aW9u
IHR5cGVzIGZyb20gYmVpbmcgZXhwb3J0ZWQgYXMgd2VhayBzeW1ib2xzLgogVU5FWFBPUlRFRF9T
WU1CT0xfTERGTEFHUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2Fs
bG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWlRTU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRs
UHZTXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pud20gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4
ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRU9TNF8gLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFj
dGlvbkVFRUMxRU9TNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVu
Y3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRURuIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsIC1XbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9u
RUVFY2xFUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9u
SUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUU0c3dhcEVSUzRfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wsIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25F
RUVDMUVSS1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlv
bklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVF
RUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZO
N1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVds
LF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRVJLUzRf
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9j
YWxsRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Fj
dGl2aXR5VHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtB
Y3Rpdml0eVRyYWNrZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ZmJlOWQwNTBhMzMyOThkMGY5YjlkZThm
NGFhYjFmNDRlN2QzZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRy
YWNrZXIuaCIKKworI2lmICFIQVZFKE5XX0FDVElWSVRZKQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcihMYWJlbCwg
RG9tYWluKQoreworfQorCitOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjp+TmV0d29ya0FjdGl2aXR5
VHJhY2tlcigpCit7Cit9CisKK3ZvaWQgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c2V0UGFyZW50
KE5ldHdvcmtBY3Rpdml0eVRyYWNrZXImKQoreworfQorCit2b2lkIE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI6OnN0YXJ0KCkKK3sKK30KKwordm9pZCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpjb21w
bGV0ZShDb21wbGV0aW9uQ29kZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBVU0UoTkVUV09SS19BQ1RJVklUWSkgJiYgIUhBVkUoTldfQUNUSVZJVFkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFiMDA2NWM4MTkyN2FmNDA1YzJkODVmN2MxODkzZjRhMTBkODBmNmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtB
Y3Rpdml0eVRyYWNrZXIuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIEhBVkUoTldfQUNUSVZJVFkp
CisjaW5jbHVkZSA8bncvcHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTmV0d29ya0FjdGl2aXR5VHJhY2tl
ciB7CitwdWJsaWM6CisgICAgZW51bSBjbGFzcyBEb21haW4geworICAgICAgICAvLyBUaGVzZSBh
cmUgZGVmaW5lZCB0byBtYXRjaCBhbmFsb2dvdXMgdmFsdWVzIHVzZWQgaW4gdGhlIERhcndpbiBp
bXBsZW1lbnRhdGlvbi4KKyAgICAgICAgLy8gSWYgdGhleSBhcmUgcmVudW1iZXJlZCwgcGxhdGZv
cm0tc3BlY2lmaWMgY29kZSB3aWxsIG5lZWQgdG8gYmUgYWRkZWQgdG8gbWFwCisgICAgICAgIC8v
IHRoZW0gdG8gdGhlIERhcndpbi1zcGVjaWZpYyB2YWx1ZXMuCisKKyAgICAgICAgSW52YWxpZCA9
IDAsCisgICAgICAgIFdlYktpdCA9IDE2LAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIExhYmVs
IHsKKyAgICAgICAgLy8gVGhlc2UgYXJlIG91cnMgdG8gZGVmaW5lLCBidXQgb25jZSBkZWZpbmVk
LCB0aGV5IHNob3VsZG4ndCBjaGFuZ2UuIFRoZXkgY2FuCisgICAgICAgIC8vIGJlIG9ic29sZXNj
ZWQgYW5kIHJlcGxhY2VkIHdpdGggb3RoZXIgY29kZXMsIGJ1dCBwcmV2aW91c2x5LWRlZmluZWQg
Y29kZXMKKyAgICAgICAgLy8gc2hvdWxkIG5vdCBiZSByZW51bWJlcmVkLiBQcmV2aW91c2x5IGFz
c2lnbmVkIHZhbHVlcyBzaG91bGQgbm90IGJlIHJlLXVzZWQuCisKKyAgICAgICAgSW52YWxpZCA9
IDAsCisgICAgICAgIExvYWRQYWdlID0gMSwKKyAgICAgICAgTG9hZFJlc291cmNlID0gMiwKKyAg
ICB9OworCisgICAgZW51bSBjbGFzcyBDb21wbGV0aW9uQ29kZSB7CisgICAgICAgIFVuZGVmaW5l
ZCwKKyAgICAgICAgTm9uZSwKKyAgICAgICAgU3VjY2VzcywKKyAgICAgICAgRmFpbHVyZSwKKyAg
ICB9OworCisgICAgTmV0d29ya0FjdGl2aXR5VHJhY2tlcihMYWJlbCwgRG9tYWluID0gRG9tYWlu
OjpXZWJLaXQpOworICAgIH5OZXR3b3JrQWN0aXZpdHlUcmFja2VyKCk7CisKKyAgICB2b2lkIHNl
dFBhcmVudChOZXR3b3JrQWN0aXZpdHlUcmFja2VyJik7CisgICAgdm9pZCBzdGFydCgpOworICAg
IHZvaWQgY29tcGxldGUoQ29tcGxldGlvbkNvZGUpOworCisjaWYgSEFWRShOV19BQ1RJVklUWSkK
KyAgICBud19hY3Rpdml0eV90IGdldCgpIHsgcmV0dXJuIG1fbmV0d29ya0FjdGl2aXR5LmdldCgp
OyB9CisjZW5kaWYKKworcHJpdmF0ZToKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAgIERvbWFp
biBtX2RvbWFpbjsKKyAgICBMYWJlbCBtX2xhYmVsOworICAgIGJvb2wgbV9pc0NvbXBsZXRlZCB7
IGZhbHNlIH07CisgICAgUmV0YWluUHRyPG53X2FjdGl2aXR5X3Q+IG1fbmV0d29ya0FjdGl2aXR5
OworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggMTc5YzI0ZjFkZDMzYTkxM2QyMTY3ODc2ZjEwMmY2ODFjNTg5M2ZmMC4u
Mzg5ODg1Mzc2Mjc0YzYwMTY3OWRmM2JjZTIwNDk4YTI2Yjk5ZjM4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJCbG9iRGF0YUZpbGVS
ZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZUVu
Z2luZUNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Jsb2JSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtDYWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZXMuaCIKQEAgLTYxLDYgKzYyLDkgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFT
RV9MT0dfSUYodHJ1ZSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRih0cnVlLCBOZXR3b3Jr
LCAiJXAgLSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6IiBmbXQsIHRoaXMsICMjX19W
QV9BUkdTX18pCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBSZWY8TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpAQCAtMTgwLDYgKzE4
NCwxMSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKQogICAgICAgICBsb2FkZXItPmFib3J0KCk7CiAgICAgQVNTRVJUKG1fbmV0
d29ya1Jlc291cmNlTG9hZGVycy5pc0VtcHR5KCkpOwogCisgICAgLy8gQWxsIHRyYWNrZXJzIG9m
IHJlc291cmNlcyB0aGF0IHdlcmUgaW4gdGhlIG1pZGRsZSBvZiBiZWluZyBsb2FkZWQgd2VyZQor
ICAgIC8vIHN0b3BwZWQgd2l0aCB0aGUgYWJvcnQoKSBjYWxscyBhYm92ZSwgYnV0IHdlIHN0aWxs
IG5lZWQgdG8gc3dlZXAgdXAgdGhlCisgICAgLy8gcm9vdCBhY3Rpdml0eSB0cmFja2Vycy4KKyAg
ICBzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmcoKTsKKwogICAgIE5ldHdvcmtCbG9iUmVn
aXN0cnk6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NEaWRDbG9zZSh0aGlzKTsK
ICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3ModGhpcyk7CiAKQEAgLTI4Nyw2ICsyOTYsMTEgQEAgdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlTG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRl
bnRpZmllcgogICAgIEFTU0VSVCghbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGFn
ZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKQoreworICAgIHN0b3BBbGxOZXR3b3Jr
QWN0aXZpdHlUcmFja2luZ0ZvclBhZ2Uod2ViUGFnZUlEKTsKK30KKwogdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogewogICAgIFJlZlB0cjxOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI+IGxvYWRlciA9IG1fbmV0d29ya1Jlc291cmNlTG9hZGVycy5nZXQoaWRlbnRpZmll
cik7CkBAIC01MzIsNCArNTQ2LDExOCBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKQogICAgIFNlY3VyaXR5UG9saWN5Ojpy
ZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsKIH0KIAorc3RhdGljIGJvb2wgbmV0d29ya0Fj
dGl2aXR5VHJhY2tpbmdFbmFibGVkKCkKK3sKKyNpZiBVU0UoTkVUV09SS19BQ1RJVklUWSkKKyAg
ICByZXR1cm4gTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnRyYWNrTmV0d29ya0FjdGl2aXR5
KCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCitzdGQ6Om9wdGlvbmFs
PE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpz
dGFydFRyYWNraW5nUmVzb3VyY2VMb2FkKHVpbnQ2NF90IHBhZ2VJRCwgUmVzb3VyY2VMb2FkSWRl
bnRpZmllciByZXNvdXJjZUlELCBib29sIGlzTWFpblJlc291cmNlKQoreworICAgIGlmICghbmV0
d29ya0FjdGl2aXR5VHJhY2tpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisKKyAgICAvLyBFaXRoZXIgZ2V0IHRoZSBleGlzdGluZyByb290IGFjdGl2aXR5IHRyYWNr
ZXIgZm9yIHRoaXMgcGFnZSBvciBjcmVhdGUgYQorICAgIC8vIG5ldyBvbmUgaWYgdGhpcyBpcyB0
aGUgbWFpbiByZXNvdXJjZS4KKworICAgIHNpemVfdCByb290QWN0aXZpdHlJbmRleDsKKyAgICBp
ZiAoaXNNYWluUmVzb3VyY2UpIHsKKyAgICAgICAgLy8gSWYgd2UncmUgbG9hZGluZyBhIHBhZ2Ug
ZnJvbSB0aGUgdG9wLCBtYWtlIHN1cmUgYW55IHRyYWNraW5nIG9mCisgICAgICAgIC8vIHByZXZp
b3VzIGFjdGl2aXR5IGZvciB0aGlzIHBhZ2UgaXMgc3RvcHBlZC4KKworICAgICAgICBzdG9wQWxs
TmV0d29ya0FjdGl2aXR5VHJhY2tpbmdGb3JQYWdlKHBhZ2VJRCk7CisKKyAgICAgICAgcm9vdEFj
dGl2aXR5SW5kZXggPSBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzLnNpemUoKTsKKyAgICAgICAg
bV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5jb25zdHJ1Y3RBbmRBcHBlbmQocGFnZUlEKTsKKyAg
ICAgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tyb290QWN0aXZpdHlJbmRleF0ubV9uZXR3
b3JrQWN0aXZpdHkuc3RhcnQoKTsKKworICAgICAgICBBU1NFUlQobV9uZXR3b3JrQWN0aXZpdHlU
cmFja2Vyc1tyb290QWN0aXZpdHlJbmRleF0ubV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOworICAg
IH0gZWxzZSB7CisgICAgICAgIHJvb3RBY3Rpdml0eUluZGV4ID0gZmluZFJvb3ROZXR3b3JrQWN0
aXZpdHkocGFnZUlEKTsKKworICAgICAgICAvLyBUaGlzIGNvdWxkIGhhcHBlbiBpZiB0aGUgTmV0
d29ya2luZyBwcm9jZXNzIGNyYXNoZXMsIHRha2luZyBpdHMKKyAgICAgICAgLy8gcHJldmlvdXMg
c3RhdGUgd2l0aCBpdC4KKyAgICAgICAgaWYgKHJvb3RBY3Rpdml0eUluZGV4ID09IG5vdEZvdW5k
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICBBU1NFUlQobV9u
ZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tyb290QWN0aXZpdHlJbmRleF0ubV9uZXR3b3JrQWN0aXZp
dHkuZ2V0KCkpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhIHRyYWNrZXIgZm9yIHRoZSBsb2Fk
aW5nIG9mIHRoZSBuZXcgcmVzb3VyY2UsIHNldHRpbmcgdGhlIHJvb3QKKyAgICAvLyBhY3Rpdml0
eSB0cmFja2VyIGFzIGl0cyBwYXJlbnQuCisKKyAgICBzaXplX3QgbmV3QWN0aXZpdHlJbmRleCA9
IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuc2l6ZSgpOworICAgIG1fbmV0d29ya0FjdGl2aXR5
VHJhY2tlcnMuY29uc3RydWN0QW5kQXBwZW5kKHBhZ2VJRCwgcmVzb3VyY2VJRCk7CisgICAgQVNT
RVJUKG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnNbbmV3QWN0aXZpdHlJbmRleF0ubV9uZXR3b3Jr
QWN0aXZpdHkuZ2V0KCkpOworCisgICAgYXV0byYgbmV3QWN0aXZpdHlUcmFja2VyID0gbV9uZXR3
b3JrQWN0aXZpdHlUcmFja2Vyc1tuZXdBY3Rpdml0eUluZGV4XTsKKyAgICBuZXdBY3Rpdml0eVRy
YWNrZXIubV9uZXR3b3JrQWN0aXZpdHkuc2V0UGFyZW50KG1fbmV0d29ya0FjdGl2aXR5VHJhY2tl
cnNbcm9vdEFjdGl2aXR5SW5kZXhdLm1fbmV0d29ya0FjdGl2aXR5KTsKKyAgICBuZXdBY3Rpdml0
eVRyYWNrZXIubV9uZXR3b3JrQWN0aXZpdHkuc3RhcnQoKTsKKworICAgIHJldHVybiBuZXdBY3Rp
dml0eVRyYWNrZXIubV9uZXR3b3JrQWN0aXZpdHk7Cit9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnN0b3BUcmFja2luZ1Jlc291cmNlTG9hZChSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyIHJlc291cmNlSUQsIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkNvbXBsZXRpb25Db2Rl
IGNvZGUpCit7CisgICAgaWYgKCFuZXR3b3JrQWN0aXZpdHlUcmFja2luZ0VuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdGVtSW5kZXggPSBmaW5kTmV0d29ya0FjdGl2aXR5
VHJhY2tlcihyZXNvdXJjZUlEKTsKKyAgICBpZiAoaXRlbUluZGV4ID09IG5vdEZvdW5kKSB7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICJzdG9wVHJhY2tpbmdSZXNvdXJjZUxv
YWQ6IFVuYWJsZSB0byBmaW5kIG5ldHdvcmsgYWN0aXZpdHkgZm9yIHJlc291cmNlOiAlZCIsIHN0
YXRpY19jYXN0PGludD4ocmVzb3VyY2VJRCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1fbmV0d29ya0FjdGl2aXR5
LmNvbXBsZXRlKGNvZGUpOworICAgIG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMucmVtb3ZlKGl0
ZW1JbmRleCk7Cit9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0b3BB
bGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZygpCit7CisgICAgaWYgKCFuZXR3b3JrQWN0aXZpdHlU
cmFja2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChzaXplX3QgaXRl
bUluZGV4ID0gMDsgaXRlbUluZGV4IDwgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5zaXplKCk7
ICsraXRlbUluZGV4KQorICAgICAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1JbmRl
eF0ubV9uZXR3b3JrQWN0aXZpdHkuY29tcGxldGUoTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29t
cGxldGlvbkNvZGU6Ok5vbmUpOworICAgIG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuY2xlYXIo
KTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RvcEFsbE5ldHdv
cmtBY3Rpdml0eVRyYWNraW5nRm9yUGFnZSh1aW50NjRfdCBwYWdlSUQpCit7CisgICAgaWYgKCFu
ZXR3b3JrQWN0aXZpdHlUcmFja2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
c2l6ZV90IGl0ZW1JbmRleCA9IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuc2l6ZSgpOworICAg
IHdoaWxlIChpdGVtSW5kZXggPiAwKSB7CisgICAgICAgIC0taXRlbUluZGV4OworICAgICAgICBp
ZiAobV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1fcGFnZUlEID09IHBhZ2VJ
RCkgeworICAgICAgICAgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1f
bmV0d29ya0FjdGl2aXR5LmNvbXBsZXRlKE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkNvbXBsZXRp
b25Db2RlOjpOb25lKTsKKyAgICAgICAgICAgIG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMucmVt
b3ZlKGl0ZW1JbmRleCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3NpemVfdCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZmluZFJvb3ROZXR3b3JrQWN0aXZpdHkodWludDY0X3QgcGFn
ZUlEKQoreworICAgIGZvciAoc2l6ZV90IGl0ZW1JbmRleCA9IDA7IGl0ZW1JbmRleCA8IG1fbmV0
d29ya0FjdGl2aXR5VHJhY2tlcnMuc2l6ZSgpOyArK2l0ZW1JbmRleCkgeworICAgICAgICBpZiAo
bV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1faXNSb290QWN0aXZpdHkgJiYg
bV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1fcGFnZUlEID09IHBhZ2VJRCkK
KyAgICAgICAgICAgIHJldHVybiBpdGVtSW5kZXg7CisgICAgfQorCisgICAgcmV0dXJuIG5vdEZv
dW5kOworfQorCitzaXplX3QgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmZpbmROZXR3
b3JrQWN0aXZpdHlUcmFja2VyKFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VJRCkKK3sK
KyAgICBmb3IgKHNpemVfdCBpdGVtSW5kZXggPSAwOyBpdGVtSW5kZXggPCBtX25ldHdvcmtBY3Rp
dml0eVRyYWNrZXJzLnNpemUoKTsgKytpdGVtSW5kZXgpIHsKKyAgICAgICAgaWYgKG1fbmV0d29y
a0FjdGl2aXR5VHJhY2tlcnNbaXRlbUluZGV4XS5tX3Jlc291cmNlSUQgPT0gcmVzb3VyY2VJRCkK
KyAgICAgICAgICAgIHJldHVybiBpdGVtSW5kZXg7CisgICAgfQorCisgICAgcmV0dXJuIG5vdEZv
dW5kOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApp
bmRleCA0Y2VhMmM2ZDRmYTk4OGNiM2M4ZTRkNGJjNDZmNjNiNzU0ZjAyZWYxLi5kMDc0MjE4ODQx
MjZjY2ViNGUwOTMwMWQwYTk0ZWY3YTg1YjY0ZDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEb3dubG9hZElELmgiCisj
aW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrTUROU1JlZ2lz
dGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyLmgiCkBAIC0xMTEsNiArMTEyLDkg
QEAgcHVibGljOgogICAgICAgICBtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25CeUlELnJlbW92ZShp
ZGVudGlmaWVyKTsKICAgICB9CiAKKyAgICBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI+IHN0YXJ0VHJhY2tpbmdSZXNvdXJjZUxvYWQodWludDY0X3QgcGFnZUlELCBSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQsIGJvb2wgaXNNYWluUmVzb3VyY2UpOworICAgIHZv
aWQgc3RvcFRyYWNraW5nUmVzb3VyY2VMb2FkKFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVzb3Vy
Y2VJRCwgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNvZGUpOworCiBwcml2YXRl
OgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllcik7CiAKQEAgLTEzMyw2ICsxMzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlY29u
bmVjdFRvKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMmJik7CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElk
ZW50aWZpZXIpOworICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlE
KTsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9v
bCk7CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRpcmVjdFVSTCk7CiAgICAgdm9pZCBzdGFy
dERvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwpAQCAtMTgw
LDExICsxODUsNDMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3Rp
bmF0aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKTsKICAgICB2b2lkIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVs
aXN0cygpOwogCisgICAgc3RydWN0IFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlciB7Cisg
ICAgICAgIFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcigpID0gZGVmYXVsdDsKKyAgICAg
ICAgUmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyKGNvbnN0IFJlc291cmNlTmV0d29ya0Fj
dGl2aXR5VHJhY2tlciYpID0gZGVmYXVsdDsKKyAgICAgICAgUmVzb3VyY2VOZXR3b3JrQWN0aXZp
dHlUcmFja2VyKFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlciYmKSA9IGRlZmF1bHQ7Cisg
ICAgICAgIFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcih1aW50NjRfdCBwYWdlSUQpCisg
ICAgICAgICAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKKyAgICAgICAgICAgICwgbV9yZXNvdXJjZUlE
KDApCisgICAgICAgICAgICAsIG1faXNSb290QWN0aXZpdHkodHJ1ZSkKKyAgICAgICAgICAgICwg
bV9uZXR3b3JrQWN0aXZpdHkoTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6TGFiZWw6OkxvYWRQYWdl
KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBSZXNvdXJjZU5ldHdvcmtBY3Rpdml0
eVRyYWNrZXIodWludDY0X3QgcGFnZUlELCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNl
SUQpCisgICAgICAgICAgICA6IG1fcGFnZUlEKHBhZ2VJRCkKKyAgICAgICAgICAgICwgbV9yZXNv
dXJjZUlEKHJlc291cmNlSUQpCisgICAgICAgICAgICAsIG1faXNSb290QWN0aXZpdHkoZmFsc2Up
CisgICAgICAgICAgICAsIG1fbmV0d29ya0FjdGl2aXR5KE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6
OkxhYmVsOjpMb2FkUmVzb3VyY2UpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIHVp
bnQ2NF90IG1fcGFnZUlEOworICAgICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIG1fcmVzb3Vy
Y2VJRDsKKyAgICAgICAgYm9vbCBtX2lzUm9vdEFjdGl2aXR5OworICAgICAgICBOZXR3b3JrQWN0
aXZpdHlUcmFja2VyIG1fbmV0d29ya0FjdGl2aXR5OworICAgIH07CisKKyAgICB2b2lkIHN0b3BB
bGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZygpOworICAgIHZvaWQgc3RvcEFsbE5ldHdvcmtBY3Rp
dml0eVRyYWNraW5nRm9yUGFnZSh1aW50NjRfdCBwYWdlSUQpOworICAgIHNpemVfdCBmaW5kUm9v
dE5ldHdvcmtBY3Rpdml0eSh1aW50NjRfdCBwYWdlSUQpOworICAgIHNpemVfdCBmaW5kTmV0d29y
a0FjdGl2aXR5VHJhY2tlcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQpOworCiAg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmUHRyPE5ldHdvcmtTb2NrZXRTdHJlYW0+PiBtX25ldHdvcmtTb2NrZXRTdHJlYW1z
OwogICAgIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgUmVmUHRyPE5ldHdvcmtSZXNv
dXJjZUxvYWRlcj4+IG1fbmV0d29ya1Jlc291cmNlTG9hZGVyczsKICAgICBIYXNoTWFwPFN0cmlu
ZywgUmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+IG1fYmxvYkRhdGFGaWxl
UmVmZXJlbmNlczsKKyAgICBWZWN0b3I8UmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBt
X25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzOwogCiAgICAgSGFzaE1hcDxSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyLCBOZXR3b3JrTG9hZEluZm9ybWF0aW9uPiBtX25ldHdvcmtMb2FkSW5mb3JtYXRpb25C
eUlEOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA5
YTVhNGYyMTU2MGRhNjdlOGE3ZjBiZTYxZTU1YjZjN2QxNzE2YzQ3Li5mNGVjNjMzMTFmNzdhM2Jl
NjcxODdiODk2ZDUyYTAxNzhiYWY3MTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFBlcmZvcm1TeW5jaHJvbm91
c0xvYWQoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZSwgVmVjdG9yPGNoYXI+IGRhdGEpIERlbGF5ZWQKICAgICBM
b2FkUGluZyhXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9h
ZFBhcmFtZXRlcnMpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VM
b2FkSWRlbnRpZmllcikKKyAgICBQYWdlTG9hZENvbXBsZXRlZCh1aW50NjRfdCB3ZWJQYWdlSUQp
CiAgICAgU2V0RGVmZXJzTG9hZGluZyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBi
b29sIGRlZmVycykKICAgICBQcmVmZXRjaEROUyhTdHJpbmcgaG9zdG5hbWUpCiAgICAgUHJlY29u
bmVjdFRvKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCA1NWRjYjA1MDk3Yjgy
NjM2ZTJiZjdmYWI4NmNlMmJiOTI2MzQ4NmM1Li4yZDM1NGFkOWM3MDQ5MjM4NThiNzhhZWRjNTBi
NTBlMzAxZDlhNTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrRGF0YVRhc2suY3BwCkBAIC01NCw3ICs1NCw3IEBAIFJlZjxOZXR3b3JrRGF0YVRhc2s+IE5l
dHdvcmtEYXRhVGFzazo6Y3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
CiAgICAgICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tCbG9iOjpjcmVhdGUoc2Vzc2lvbiwgY2xp
ZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5
LCBwYXJhbWV0ZXJzLmJsb2JGaWxlUmVmZXJlbmNlcyk7CiAKICNpZiBQTEFURk9STShDT0NPQSkK
LSAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQs
IHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJzLndl
YlBhZ2VJRCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5j
b250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSk7CisgICAgcmV0dXJuIE5ldHdvcmtE
YXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3Qs
IHBhcmFtZXRlcnMud2ViRnJhbWVJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBhcmFtZXRlcnMu
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5
LCBwYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxk
UHJlY29ubmVjdE9ubHksIHBhcmFtZXRlcnMubmV0d29ya0FjdGl2aXR5VHJhY2tlcik7CiAjZW5k
aWYKICNpZiBVU0UoU09VUCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRl
KHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDUzYzQ3ZjhkNjIz
YTc0MDJiMjA5MDIzNWRkZGJiNzM3N2ZhOGY2YTkuLmZkMGE2YTk5ZDZlYTBmNDU1OGQwYmQ2Mjg3
OGU5YzRhNDhjZmJlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VM
b2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAg
LTUwLDYgKzUxLDcgQEAgcHVibGljOgogICAgIGJvb2wgbmVlZHNDZXJ0aWZpY2F0ZUluZm8geyBm
YWxzZSB9OwogICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNl
Pj4gYmxvYkZpbGVSZWZlcmVuY2VzOwogICAgIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5l
Y3RPbmx5IHsgUHJlY29ubmVjdE9ubHk6Ok5vIH07CisgICAgc3RkOjpvcHRpb25hbDxOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCmluZGV4IDNiMGZmMjAxODUxMTU0NDViYTgxZTg3MGI0Mjk1MDU3ZDUzNmRiOTAu
LjA3N2JkNzNiMDQzYzgwYzExNDZjMzQxYmU0OTEzNWE1OTVjODI4Y2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yOTgsNiArMjk4
LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYKICAgICBmb3IgKGF1dG8mIHNjaGVtZSA6IHBh
cmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0
KQogICAgICAgICByZWdpc3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3Qo
c2NoZW1lKTsKIAorICAgIG1fdHJhY2tOZXR3b3JrQWN0aXZpdHkgPSBwYXJhbWV0ZXJzLnRyYWNr
TmV0d29ya0FjdGl2aXR5OworCiAgICAgUkVMRUFTRV9MT0coUHJvY2VzcywgIiVwIC0gTmV0d29y
a1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzczogUHJlc2VudGluZyBwcm9jZXNzID0g
JWQiLCB0aGlzLCBXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBjZTQx
MmI0NTkyODZiMzY5ZGYxMmNkMDhmMzMzODVhZDhjOWRkZGU5Li5iOTYxYWJjYjAwOWZkMjEyYmUx
NTk2NjZiM2ExNDBhNDQyODBmMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xNjIsNiArMTYyLDggQEAgcHVibGljOgogICAgIE5ldHdv
cmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyJiBuZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcigp
IHsgcmV0dXJuIG1fTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI7IH0KICNlbmRpZgogCisg
ICAgYm9vbCB0cmFja05ldHdvcmtBY3Rpdml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tOZXR3
b3JrQWN0aXZpdHk7IH0KKwogcHJpdmF0ZToKICAgICBOZXR3b3JrUHJvY2VzcygpOwogICAgIH5O
ZXR3b3JrUHJvY2VzcygpOwpAQCAtMzAwLDYgKzMwMiw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKICAgICBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlciBt
X05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOwogI2VuZGlmCisKKyAgICBib29sIG1fdHJh
Y2tOZXR3b3JrQWN0aXZpdHkgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGE4NGU0OThjZmZjNDk1YTA5
ZWY2ZDlmZTk4MGVhZTFjNmM3MTlmN2MuLjNkMjRkMjNhNGY1MzIzZTI4NzAyMmExNzg0ZGMzZWVj
ZjE4MjgzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xMTUsNiAr
MTE1LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQ
Qzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdp
c3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQ7CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0
ZXJlZEFzQ09SU0VuYWJsZWQ7CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFz
Q2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3Q7CisKKyAgICBlbmNvZGVyIDw8IHRyYWNrTmV0d29y
a0FjdGl2aXR5OwogfQogCiBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcmVzdWx0KQpAQCAtMjc1LDYgKzI3Nyw5IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9j
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Nh
bkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudHJhY2tOZXR3b3JrQWN0aXZpdHkpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IGMyYjY4MGIwMjUzMDRjNTdmN2Y0MDRiY2MyYTE5ZGFjM2I4NTcx
MTQuLmQxNDc1MzNiYTIxZWE5ODdhN2U5ODlkYTAxOGNlZTdkOTk3N2E1MTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEzMiw2ICsxMzIsOCBAQCBzdHJ1Y3QgTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVtZXNS
ZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQ7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1l
c1JlZ2lzdGVyZWRBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0OwogICAgIFZlY3RvcjxTdHJp
bmc+IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZDsKKworICAgIGJvb2wgdHJhY2tO
ZXR3b3JrQWN0aXZpdHkgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAKaW5kZXggMjhjYTE5MDg1YTNhYTI0YjA3YjM3YjJiNTE3OTgwMTk1OWQ1OGVjYi4u
ZDQ3OGMwM2NmNWY0NDFlY2VhYWJkNjEwMmY2NjhiZTQxOWQ0MmE0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApA
QCAtMTg0LDYgKzE4NCw4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiB7
CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAorICAgIG1fcGFyYW1ldGVycy5uZXR3
b3JrQWN0aXZpdHlUcmFja2VyID0gbV9jb25uZWN0aW9uLT5zdGFydFRyYWNraW5nUmVzb3VyY2VM
b2FkKG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01h
aW5SZXNvdXJjZSgpKTsKKwogICAgIGlmIChtX2RlZmVyc0xvYWRpbmcpIHsKICAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IExvYWRpbmcgaXMgZGVmZXJyZWQgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMzIzLDEwICszMjUsMTUgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNl
dERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInNldERlZmVyc0xvYWRpbmc6IGRlZmVycyA9ICVkLCBidXQgbm90aGluZyB0byBkbyAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIG1fZGVmZXJzTG9hZGluZywgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKIH0KIAotdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFudXAoKQordm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmNsZWFudXAoTG9hZFJlc3VsdCByZXN1bHQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKIAorICAgIG1fY29ubmVjdGlvbi0+c3RvcFRyYWNraW5nUmVzb3VyY2VMb2Fk
KG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLAorICAgICAgICByZXN1bHQgPT0gTG9hZFJlc3VsdDo6
U3VjY2VzcyA/IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkNvbXBsZXRpb25Db2RlOjpTdWNjZXNz
IDoKKyAgICAgICAgcmVzdWx0ID09IExvYWRSZXN1bHQ6OkZhaWx1cmUgPyBOZXR3b3JrQWN0aXZp
dHlUcmFja2VyOjpDb21wbGV0aW9uQ29kZTo6RmFpbHVyZSA6CisgICAgICAgIE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI6OkNvbXBsZXRpb25Db2RlOjpOb25lKTsKKwogICAgIG1fYnVmZmVyaW5nVGlt
ZXIuc3RvcCgpOwogCiAgICAgaW52YWxpZGF0ZVNhbmRib3hFeHRlbnNpb25zKCk7CkBAIC0zNTks
NyArMzY2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0KCkKICAgICAgICAg
bV9uZXR3b3JrTG9hZC0+Y2FuY2VsKCk7CiAgICAgfQogCi0gICAgY2xlYW51cCgpOworICAgIGNs
ZWFudXAoTG9hZFJlc3VsdDo6Q2FuY2VsKTsKIH0KIAogc3RhdGljIGJvb2wgYXJlRnJhbWVBbmNl
c3RvcnNTYW1lU2l0ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgVmVj
dG9yPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+JiBmcmFtZUFuY2VzdG9yT3JpZ2lucykKQEAgLTUy
OSw3ICs1MzYsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGlu
Zyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogCiAgICAgdHJ5U3RvcmVBc0Nh
Y2hlRW50cnkoKTsKIAotICAgIGNsZWFudXAoKTsKKyAgICBjbGVhbnVwKExvYWRSZXN1bHQ6OlN1
Y2Nlc3MpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmco
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCkBAIC01NDksNyArNTU2LDcgQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQogICAgIH0gZWxzZSBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkpCiAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNl
TG9hZGVyOjpEaWRGYWlsUmVzb3VyY2VMb2FkKGVycm9yKSwgbWVzc2FnZVNlbmRlckRlc3RpbmF0
aW9uSUQoKSk7CiAKLSAgICBjbGVhbnVwKCk7CisgICAgY2xlYW51cChMb2FkUmVzdWx0OjpGYWls
dXJlKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoKQpAQCAtNzM4LDcgKzc0NSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpkaWRSZXRyaWV2ZUNhY2hlRW50cnkoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNo
ZTo6CiAgICAgaWYgKGlzU3luY2hyb25vdXMoKSkgewogICAgICAgICBtX3N5bmNocm9ub3VzTG9h
ZERhdGEtPnJlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSk7CiAgICAgICAgIHNlbmRSZXBseVRv
U3luY2hyb25vdXNSZXF1ZXN0KCptX3N5bmNocm9ub3VzTG9hZERhdGEsIGVudHJ5LT5idWZmZXIo
KSk7Ci0gICAgICAgIGNsZWFudXAoKTsKKyAgICAgICAgY2xlYW51cChMb2FkUmVzdWx0OjpTdWNj
ZXNzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzcyLDcgKzc3OSw3IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVByb2Nlc3NpbmdDYWNoZWRFbnRyeUFmdGVy
RGlkUmVjZWl2ZVJlc3BvbnNlCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlm
IChyZXRyaWV2ZWRBbGwpIHsKICAgICAgICAgICAgICAgICAgICAgbG9hZGVyLT5zZW5kUmVzdWx0
Rm9yQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7Ci0gICAgICAgICAgICAgICAgICAgIGxvYWRl
ci0+Y2xlYW51cCgpOworICAgICAgICAgICAgICAgICAgICBsb2FkZXItPmNsZWFudXAoTG9hZFJl
c3VsdDo6U3VjY2Vzcyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0KQEAgLTc4MSw3ICs3ODgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29u
dGludWVQcm9jZXNzaW5nQ2FjaGVkRW50cnlBZnRlckRpZFJlY2VpdmVSZXNwb25zZQogCiAgICAg
c2VuZFJlc3VsdEZvckNhY2hlRW50cnkoV1RGTW92ZShlbnRyeSkpOwogCi0gICAgY2xlYW51cCgp
OworICAgIGNsZWFudXAoTG9hZFJlc3VsdDo6U3VjY2Vzcyk7CiB9CiAKIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpzZW5kUmVzdWx0Rm9yQ2FjaGVFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya0NhY2hlOjpFbnRyeT4gZW50cnkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA4NzY5NzA4YzBhMjAwZGQyNjFi
ZjE2ZmY5MjY2OWU4YTIzNjQ1NDhhLi4wMDlmZjliMDAyZTA2NTc1YTA1NTYxNDEyYTRjZmJiZjMx
YTExOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmgKQEAgLTEzNCw3ICsxMzQsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHN0YXJ0TmV0d29ya0xvYWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEZpcnN0TG9hZCk7
CiAgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOwogCi0gICAgdm9pZCBjbGVh
bnVwKCk7CisgICAgZW51bSBjbGFzcyBMb2FkUmVzdWx0IHsKKyAgICAgICAgVW5rbm93biwKKyAg
ICAgICAgU3VjY2VzcywKKyAgICAgICAgRmFpbHVyZSwKKyAgICAgICAgQ2FuY2VsCisgICAgfTsK
KyAgICB2b2lkIGNsZWFudXAoTG9hZFJlc3VsdCk7CiAgICAgCiAgICAgdm9pZCBwbGF0Zm9ybURp
ZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAKQEAg
LTE1Myw3ICsxNTksNyBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSBzYW5pdGl6ZVJlc3BvbnNlSWZQb3NzaWJsZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYs
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OlNhbml0aXphdGlvblR5cGUpOwogCi0gICAgY29u
c3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJzOworICAgIE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKIAogICAgIFJlZjxOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0FjdGl2aXR5
VHJhY2tlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0NTgzNmQ1ZTE1MTFlNDMxODc0NDRiYzQyMTcw
MGI1MDU2MTNhNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbQpAQCAtMCwwICsxLDc2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOZXR3b3JrQWN0
aXZpdHlUcmFja2VyLmgiCisKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcihM
YWJlbCBsYWJlbCwgRG9tYWluIGRvbWFpbikKKyAgICA6IG1fZG9tYWluKGRvbWFpbikKKyAgICAs
IG1fbGFiZWwobGFiZWwpCisgICAgLCBtX25ldHdvcmtBY3Rpdml0eShhZG9wdE5TKG53X2FjdGl2
aXR5X2NyZWF0ZShzdGF0aWNfY2FzdDx1aW50MzJfdD4obV9kb21haW4pLCBzdGF0aWNfY2FzdDx1
aW50MzJfdD4obV9sYWJlbCkpKSkKK3sKK30KKworTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6fk5l
dHdvcmtBY3Rpdml0eVRyYWNrZXIoKQoreworfQorCit2b2lkIE5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXI6OnNldFBhcmVudChOZXR3b3JrQWN0aXZpdHlUcmFja2VyJiBwYXJlbnQpCit7CisgICAgQVNT
RVJUKG1fbmV0d29ya0FjdGl2aXR5LmdldCgpKTsKKyAgICBBU1NFUlQocGFyZW50Lm1fbmV0d29y
a0FjdGl2aXR5LmdldCgpKTsKKyAgICBud19hY3Rpdml0eV9zZXRfcGFyZW50X2FjdGl2aXR5KG1f
bmV0d29ya0FjdGl2aXR5LmdldCgpLCBwYXJlbnQubV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOwor
fQorCit2b2lkIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OnN0YXJ0KCkKK3sKKyAgICBBU1NFUlQo
bV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOworICAgIG53X2FjdGl2aXR5X2FjdGl2YXRlKG1fbmV0
d29ya0FjdGl2aXR5LmdldCgpKTsKK30KKwordm9pZCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpj
b21wbGV0ZShDb21wbGV0aW9uQ29kZSBjb2RlKQoreworICAgIGlmIChtX2lzQ29tcGxldGVkKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2lzQ29tcGxldGVkID0gdHJ1ZTsKKworICAgIEFTU0VS
VChtX25ldHdvcmtBY3Rpdml0eS5nZXQoKSk7CisgICAgYXV0byByZWFzb24gPQorICAgICAgICBj
b2RlID09IENvbXBsZXRpb25Db2RlOjpOb25lID8gbndfYWN0aXZpdHlfY29tcGxldGlvbl9yZWFz
b25fbm9uZSA6CisgICAgICAgIGNvZGUgPT0gQ29tcGxldGlvbkNvZGU6OlN1Y2Nlc3MgPyBud19h
Y3Rpdml0eV9jb21wbGV0aW9uX3JlYXNvbl9zdWNjZXNzIDoKKyAgICAgICAgY29kZSA9PSBDb21w
bGV0aW9uQ29kZTo6RmFpbHVyZSA/IG53X2FjdGl2aXR5X2NvbXBsZXRpb25fcmVhc29uX2ZhaWx1
cmUgOgorICAgICAgICBud19hY3Rpdml0eV9jb21wbGV0aW9uX3JlYXNvbl9pbnZhbGlkOworICAg
IG53X2FjdGl2aXR5X2NvbXBsZXRlX3dpdGhfcmVhc29uKG1fbmV0d29ya0FjdGl2aXR5LmdldCgp
LCByZWFzb24pOworICAgIG1fbmV0d29ya0FjdGl2aXR5LmNsZWFyKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gSEFWRShOV19BQ1RJVklUWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EuaAppbmRleCBjMzVjM2FmNWY3NTE5MmUyOTZlZDIzMjMwZTc2MDUyMmNkZGQ2NDMyLi5hNWI3
Y2ZmOTNhZDk0Y2VkNTIyNDUzN2FhODhjZGIzZDRiMTIxNzAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5o
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiTmV0d29ya0Fj
dGl2aXR5VHJhY2tlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFzay5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldpRmlBc3NlcnRpb25Ib2xkZXIu
aCIKQEAgLTQxLDkgKzQyLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5l
dHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAg
ZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hv
dWxkUHJlY29ubmVjdE9ubHkpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0
ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3Vs
ZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hv
dWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIHN0ZDo6
b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29h
KHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlELCBzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlm
Ziwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29u
bmVjdE9ubHkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNr
Q29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQsIHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQ
cmVjb25uZWN0T25seSwgbmV0d29ya0FjdGl2aXR5VHJhY2tlcikpOwogICAgIH0KIAogICAgIH5O
ZXR3b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtODEsNyArODIsNyBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogcHJpdmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5l
dHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkpOworICAgIE5ldHdvcmtEYXRhVGFza0NvY29h
KE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9s
aWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgc3RkOjpv
cHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7CiAKICAgICBib29sIHRyeVBhc3N3b3Jk
QmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAgICAgdm9pZCBhcHBseVNuaWZmaW5n
UG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoTlNVUkxSZXF1ZXN0KiYs
IGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDRiOTQxYTViZTIzYmIxYWEwNmY4ZTk5ODFjZTEz
ODIyNmRmNjQyNDEuLjhjYmY0OGRiMzVmODc2Njk0Y2Q3Y2VkYzQwODk0ZTljYTAwYWE3ZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNTUsNiArNTUsMTAgQEAgQHByb3BlcnR5IChyZWFkd3Jp
dGUpIEJPT0wgX2lzVG9wTGV2ZWxOYXZpZ2F0aW9uOwogQGVuZAogI2VuZGlmCiAKKyNpZiBIQVZF
KE5XX0FDVElWSVRZKQorI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+Cisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKICNpZiBVU0UoQ1JFREVOVElBTF9TVE9SQUdF
X1dJVEhfTkVUV09SS19TRVNTSU9OKQpAQCAtMTc1LDcgKzE3OSw3IEBAIHN0YXRpYyB2b2lkIHVw
ZGF0ZVRhc2tXaXRoRmlyc3RQYXJ0eUZvclNhbWVTaXRlQ29va2llcyhOU1VSTFNlc3Npb25EYXRh
VGFzayogdGFzCiAjZW5kaWYKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRh
VGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQm
IGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRl
bnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250
ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91
bGRQcmVjb25uZWN0T25seSkKK05ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tD
b2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGll
bnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFs
cywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNu
aWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5n
U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJl
Y29ubmVjdE9ubHksIHN0ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29y
a0FjdGl2aXR5VHJhY2tlcikKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQs
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgICwgbV9mcmFtZUlEKGZyYW1l
SUQpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCkBAIC0yNjcsNiArMjcxLDExIEBAIE5ldHdvcmtE
YXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lv
biwgTmV0d29ya0RhdGFUCiAgICAgICAgIG1fdGFzay5nZXQoKS5wcmlvcml0eSA9IHRvTlNVUkxT
ZXNzaW9uVGFza1ByaW9yaXR5KHJlcXVlc3QucHJpb3JpdHkoKSk7CiAKICAgICB1cGRhdGVUYXNr
V2l0aEZpcnN0UGFydHlGb3JTYW1lU2l0ZUNvb2tpZXMobV90YXNrLmdldCgpLCByZXF1ZXN0KTsK
KworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisgICAgaWYgKG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIp
CisgICAgICAgIG1fdGFzay5nZXQoKS5fbndfYWN0aXZpdHkgPSBuZXR3b3JrQWN0aXZpdHlUcmFj
a2VyLnZhbHVlKCkuZ2V0KCk7CisjZW5kaWYKIH0KIAogTmV0d29ya0RhdGFUYXNrQ29jb2E6On5O
ZXR3b3JrRGF0YVRhc2tDb2NvYSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGJhY2ZmYTdh
ZDE2MjY2MDdlMjMyZThkZDlmOTJkZmFlYWJlZDY1ZTAuLjZkODhhMGY3MzM4MjY5YjQyM2U5N2Zj
MzI5MjhlOWM0NTkxOTM5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBAIC0xMjksNiArMTI5
LDcgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX3ByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCA9IHRoaXMt
Pm1fcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEOwogICAgIGNvcHktPm1fcHJvY2Vzc1N3YXBzT25O
YXZpZ2F0aW9uID0gdGhpcy0+bV9wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb247CiAgICAgY29weS0+
bV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyID0gdGhpcy0+bV9wcm9jZXNzU3dh
cHNPbldpbmRvd09wZW5XaXRoT3BlbmVyOworICAgIGNvcHktPm1fdHJhY2tOZXR3b3JrQWN0aXZp
dHkgPSB0aGlzLT5tX3RyYWNrTmV0d29ya0FjdGl2aXR5OwogCiAgICAgcmV0dXJuIGNvcHk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmgKaW5kZXggM2RjMmIxODJiZmIwOTlhZTBmNmEzYjc3OWRmZTAzODM1
MWU2OTljZS4uOTExMDVkM2YxNGU2NmVhNzVmYzJhNGNiMmMyNWUwOTk2YmE5MjE4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaApAQCAtMTQxLDYgKzE0MSw5IEBAIHB1YmxpYzoKICAgICBib29sIHByb2Nl
c3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NT
d2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXI7IH0KICAgICB2b2lkIHNldFByb2Nlc3NTd2Fwc09u
V2luZG93T3BlbldpdGhPcGVuZXIoYm9vbCBzd2FwcykgeyBtX3Byb2Nlc3NTd2Fwc09uV2luZG93
T3BlbldpdGhPcGVuZXIgPSBzd2FwczsgfQogCisgICAgYm9vbCB0cmFja05ldHdvcmtBY3Rpdml0
eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhY2tOZXR3b3JrQWN0aXZpdHk7IH0KKyAgICB2b2lkIHNl
dFRyYWNrTmV0d29ya0FjdGl2aXR5KGJvb2wgdHJhY2spIHsgbV90cmFja05ldHdvcmtBY3Rpdml0
eSA9IHRyYWNrOyB9CisKIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZEhhdmVMZWdhY3lEYXRh
U3RvcmUgeyBmYWxzZSB9OwogCkBAIC0xNzQsNiArMTc3LDcgQEAgcHJpdmF0ZToKICAgICBQcm9j
ZXNzSUQgbV9wcmVzZW50aW5nQXBwbGljYXRpb25QSUQgeyBnZXRDdXJyZW50UHJvY2Vzc0lEKCkg
fTsKICAgICBib29sIG1fcHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lciB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX3RyYWNrTmV0d29ya0FjdGl2aXR5IHsgZmFsc2UgfTsKIAogI2lmIFBMQVRGT1JNKElP
UykKICAgICBXVEY6OlN0cmluZyBtX2N0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRp
b25SZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5jcHAKaW5kZXggZjc4OTZjZTUxNWVjNmUzZWQ0YTNkYjg2NWZmMzI2YTQ5Njhl
YzExZS4uMmNhY2MwNWM0MjExMmVmODYzZThmY2I2OWE4ZjA4YWJmZTkxNTc2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJl
Zi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5jcHAKQEAgLTE3NywzICsxNzcsMTMgQEAgdm9pZCBXS0NvbnRleHRDb25maWd1
cmF0aW9uU2V0UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihXS0NvbnRleHRDb25m
aWcKIHsKICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFByb2Nlc3NTd2Fwc09uV2luZG93
T3BlbldpdGhPcGVuZXIoc3dhcHMpOwogfQorCitib29sIFdLQ29udGV4dENvbmZpZ3VyYXRpb25U
cmFja05ldHdvcmtBY3Rpdml0eShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRp
b24pCit7CisgICAgcmV0dXJuIHRvSW1wbChjb25maWd1cmF0aW9uKS0+dHJhY2tOZXR3b3JrQWN0
aXZpdHkoKTsKK30KKwordm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0VHJhY2tOZXR3b3Jr
QWN0aXZpdHkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBib29sIHRy
YWNrKQoreworICAgIHRvSW1wbChjb25maWd1cmF0aW9uKS0+c2V0VHJhY2tOZXR3b3JrQWN0aXZp
dHkodHJhY2spOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oCmluZGV4IDc3YWUxNzEzN2U1NzIwZmNhMTU0
ODVhNWMwZTVkNDNjYzU0YTg2ZDEuLmY1MTJjNTVkZDg2NGU0N2U3OTZmOGI4YzNkMzc2MjkyMDUw
MDAyMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dENvbmZpZ3VyYXRpb25SZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKQEAgLTc0LDYgKzc0LDkgQEAgV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0Q29uZmlndXJhdGlvblNldFByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbihXS0Nv
bnRleHRDb25maWcKIFdLX0VYUE9SVCBib29sIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Qcm9jZXNz
U3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29u
ZmlndXJhdGlvbik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0UHJv
Y2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihXS0NvbnRleHRDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24sIGJvb2wgc3dhcHMpOwogCitXS19FWFBPUlQgYm9vbCBXS0NvbnRleHRD
b25maWd1cmF0aW9uVHJhY2tOZXR3b3JrQWN0aXZpdHkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJl
ZiBjb25maWd1cmF0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25T
ZXRUcmFja05ldHdvcmtBY3Rpdml0eShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3Vy
YXRpb24sIGJvb2wgdHJhY2spOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDJhMTM3MjhiYjljMmU1MDU4YmQwN2E5ZGIw
Y2Q2NzY5Y2VmZjAzYTguLjMwNzVjZjFmOWQ4YjE5NzRhZGE1Y2MyMTA2ODE3NjE2MDgzNzhhMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTU5LDYgKzU5LDcgQEAgV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9t
aWMpIHBpZF90IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMyksIGlvcygxMS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcm9jZXNz
U3dhcHNPbk5hdmlnYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwcm9jZXNzU3dhcHNP
bldpbmRvd09wZW5XaXRoT3BlbmVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdHJhY2tOZXR3
b3JrQWN0aXZpdHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KaW5kZXgg
Y2QyOWRhODYzMDJkOTU0MzVkY2FmMmRjZGNjMjc2NGU1OTU5YWQxNy4uMWUzYmQ3OTdhZWI0ZTc5
M2M5OTJkNDVjYzkzZWEzZGQxMTVhZGYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Lm1tCkBAIC0yNDcsNiArMjQ3LDE2IEBAIC0gKEJPT0wpcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVu
V2l0aE9wZW5lcgogICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT5wcm9jZXNz
U3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyKCk7CiB9CiAKKy0gKEJPT0wpdHJhY2tOZXR3b3Jr
QWN0aXZpdHkKK3sKKyAgICByZXR1cm4gX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+dHJhY2tO
ZXR3b3JrQWN0aXZpdHkoKTsKK30KKworLSAodm9pZClzZXRUcmFja05ldHdvcmtBY3Rpdml0eToo
Qk9PTCl0cmFjaworeworICAgIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFRyYWNrTmV0
d29ya0FjdGl2aXR5KHRyYWNrKTsKK30KKwogI2lmIFBMQVRGT1JNKElPUykKIC0gKE5TU3RyaW5n
ICopQ1REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggY2VmM2ZiNjkxMjliOGRiZTJjYWJhOGE0YmNiNWY1
NmE4ZWQxYWQ3Mi4uZDM1YTljYzVkMTZiNWM5ZjNhODc1YjE5Y2Q3M2FhOWYzYmNhZTIxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNDk0LDYgKzQ5
NCw4IEBAIE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3b3Jr
UHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoCiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVz
UmVnaXN0ZXJlZEFzQ09SU0VuYWJsZWQgPSBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdpc3Rl
ckFzQ09SU0VuYWJsZWQpOwogICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Nh
bkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0ID0gY29weVRvVmVjdG9yKG1fc2NoZW1lc1RvUmVnaXN0
ZXJBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KTsKIAorICAgIHBhcmFtZXRlcnMudHJhY2tO
ZXR3b3JrQWN0aXZpdHkgPSBtX2NvbmZpZ3VyYXRpb24tPnRyYWNrTmV0d29ya0FjdGl2aXR5KCk7
CisKICAgICAvLyBBZGQgYW55IHBsYXRmb3JtIHNwZWNpZmljIHBhcmFtZXRlcnMKICAgICBwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0ZXJzKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODgyYmI4YWFkYjJk
YzAxMTg0YzRjM2ZiNzdmYjdmMzZlNWZmOWFiNC4uMmQ2NGFmYmMyZTZkMTQzMGM4YTgzMDIyM2Zi
MWFmZjAxOTEzMDVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMjExLDEwICsxMjExLDEzIEBACiAJCTUzMDI1ODQ1MURDQkJEMjIw
MERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlcGxheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzAyNTgzODFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0
d29ya0NhcHR1cmVSZXBsYXllci5oICovOyB9OwogCQk1MzAyNTg0NjFEQ0JCRDIyMDBEQTg5QzIg
LyogTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUzMDI1ODM5MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0
YVRhc2tSZXBsYXkuY3BwICovOyB9OwogCQk1MzAyNTg0NzFEQ0JCRDIyMDBEQTg5QzIgLyogTmV0
d29ya0RhdGFUYXNrUmVwbGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MzAyNTgzQTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0RhdGFUYXNrUmVw
bGF5LmggKi87IH07CisJCTUzMTU4NzZDMjA3NkI3NjIwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZp
dHlUcmFja2VyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MzE1ODc2QjIwNzZCNzEzMDA0QkY5RjMgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tl
ckNvY29hLm1tICovOyB9OwogCQk1MzIxNTk1MzFEQkFFNzE4MDA1NEFBM0MgLyogTmV0d29ya1Nl
c3Npb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTMyMTU5NTIxREJBRTZGQzAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uLmNwcCAqLzsgfTsKIAkJ
NTMyMTU5NTQxREJBRTcxRDAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFzay5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIxNTk1MTFEQkFFNkZDMDA1
NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrLmNwcCAqLzsgfTsKIAkJNTMyMTU5NTUxREJBRTcyOTAw
NTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjE1OTUwMURCQUU2RDcwMDU0QUEzQyAvKiBOZXR3b3Jr
U2Vzc2lvbkNvY29hLmggKi87IH07CiAJCTUzMjE1OTU2MURCQUU3MkQwMDU0QUEzQyAvKiBOZXR3
b3JrRGF0YVRhc2tDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0NvY29h
LmggKi87IH07CisJCTUzNUJDQjkyMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlU
cmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MzVCQ0I5MDIwNjlDNDlDMDBDQ0NFMDIgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oICovOyB9
OworCQk1Mzc5REI3MjIwN0U5NDcwMDA3RDhDMzMgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0YzQ0FB
NTIwNkM0NDNFMDA4NjQ5MEUgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgKi87IH07CiAJ
CTUzQkE0N0QwMURDMkVGNUUwMDRERjRBRCAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ2MURDMkVF
NDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCAqLzsgfTsKIAkJNTNCQTQ3RDEx
REMyRUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ3MURDMkVFNDAwMDlENDhDRiAv
KiBOZXR3b3JrRGF0YVRhc2tCbG9iLmggKi87IH07CiAJCTUzREVBMzY2MURERTQyMzEwMEU4MjY0
OCAvKiBqc29uLmhwcCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUzREVBMzY1MURERTQyMkUwMEU4MjY0OCAvKiBqc29uLmhwcCAqLzsgfTsKQEAgLTM2NTks
MTMgKzM2NjIsMTYgQEAKIAkJNTMwMjU4MzgxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0
dXJlUmVwbGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0Nh
cHR1cmVSZXBsYXllci5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2Fw
dHVyZVJlcGxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMDI1ODM5MURD
QkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNwcDsgcGF0aCA9
IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMwMjU4M0ExRENCQkQxRDAwREE4OUMyIC8qIE5ldHdv
cmtEYXRhVGFza1JlcGxheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3
b3JrRGF0YVRhc2tSZXBsYXkuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29y
a0RhdGFUYXNrUmVwbGF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzMTU4NzZC
MjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
Q29jb2EubW07IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrQWN0aXZpdHlUcmFj
a2VyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMjE1OTRGMURCQUU2
RDcwMDU0QUEzQyAvKiBOZXR3b3JrRGF0YVRhc2tDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBOZXR3b3JrRGF0YVRhc2tDb2NvYS5oOyBwYXRoID0gTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTMyMTU5NTAxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Nlc3Npb25Db2NvYS5oOyBw
YXRoID0gTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MzIxNTk1MTFEQkFFNkZDMDA1NEFBM0MgLyogTmV0d29y
a0RhdGFUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdv
cmtEYXRhVGFzay5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzIxNTk1MjFEQkFFNkZDMDA1NEFBM0Mg
LyogTmV0d29ya1Nlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gTmV0d29ya1Nlc3Npb24uY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MzVCQ0I5MDIwNjlDNDlDMDBD
Q0NFMDIgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlU
cmFja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzOUVCNTQ2MURDMkVFNDAw
MDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwOyBwYXRoID0gTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUzOUVCNTQ3MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0Jsb2IuaDsgcGF0
aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTNERUEzNjUxRERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuaDsgbmFtZSA9IGpzb24uaHBwOyBwYXRoID0gTmV0d29ya1By
b2Nlc3MvY2FwdHVyZS9qc29uLmhwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTNG
M0NBQTUyMDZDNDQzRTAwODY0OTBFIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0FjdGl2aXR5VHJhY2tlci5j
cHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc1MEYzMkEyMDMyRDRFNTAwMzg5MzQ3IC8qIExv
Y2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBMb2NhbEF1dGhl
bnRpY2F0aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTG9j
YWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk1
NzYwODI4QjIwMjk4NTQyMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTc2MDgyOEMyMDI5ODU0MjAwMTE2Njc4IC8qIFdlYkNyZWRlbnRpYWxzTWVz
c2VuZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNyZWRlbnRpYWxzTWVzc2VuZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0MDAsNiArNjQwNiw4IEBACiAJCQkJ
MkRBOTQ0QkIxODg1MTFERDAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQk1MTBDQzdEQzE2MTM4RTI5
MDBEMDNFRDMgLyogbWFjICovLAogCQkJCTQxMzA3NTk3MURFODRFRDcwMDM5RUM2OSAvKiB3ZWJy
dGMgKi8sCisJCQkJNTNGM0NBQTUyMDZDNDQzRTAwODY0OTBFIC8qIE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXIuY3BwICovLAorCQkJCTUzNUJDQjkwMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0
aXZpdHlUcmFja2VyLmggKi8sCiAJCQkJNTEzQTE2NDkxNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLywKIAkJCQk1MTNBMTY0QTE2MzBBOUJGMDA1
RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLywKIAkJCQk1MTNBMTY0
QjE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4gKi8sCkBAIC02OTI2LDYgKzY5MzQsNyBAQAogCQk3RUM0RjBGODE4RTRBOTIyMDA4MDU2
QUYgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAor
CQkJCTUzMTU4NzZCMjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29j
b2EubW0gKi8sCiAJCQkJNTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFz
a0NvY29hLmggKi8sCiAJCQkJNUNCQzlCOEIxQzY1MjU3MzAwQThGRENGIC8qIE5ldHdvcmtEYXRh
VGFza0NvY29hLm1tICovLAogCQkJCTdFQzRGMEY5MThFNEE5NDUwMDgwNTZBRiAvKiBOZXR3b3Jr
UHJvY2Vzc0NvY29hLm1tICovLApAQCAtOTAxNSw2ICs5MDI0LDcgQEAKIAkJCQkxQTZGQkQyODEx
RTY5QkMyMDBEQjEzNzEgLyogTmV0c2NhcGVQbHVnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
NEE5QzU2MTJCODE2Q0YwMDhGRTk4NCAvKiBOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFBNTg4OTIxMUVFNzA0MDAwNjFCODgyIC8qIE5ldHNjYXBlUGx1Z2luU3Ry
ZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MzVCQ0I5MjIwNjlDNDlDMDBDQ0NFMDIgLyogTmV0
d29ya0FjdGl2aXR5VHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3OThDN0ExNkU2ODE4
ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0
NDM2RUNDMUEwRDA0MEIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0OUQ0MEQ3MUFEM0ZCMTcwMDY2QjdCOSAvKiBOZXR3b3JrQ2FjaGVCbG9iU3RvcmFnZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xMDY4Miw2ICsxMDY5Miw3IEBACiAJCQkJMkQ1MDM2NUUxQkND
NzkzRjAwRTIwQkIzIC8qIE5hdGl2ZVdlYkdlc3R1cmVFdmVudE1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTJEQTk0NDlFMTg4NEU0RjAwMEVEODZEQiAvKiBOYXRpdmVXZWJLZXlib2FyZEV2ZW50
SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzAyQkZGMUUxMjUxNTAyRTAwOUNDQkVBIC8qIE5h
dGl2ZVdlYktleWJvYXJkRXZlbnRNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkxQzlFQkE1QzIw
ODdFNzRGMDAwNTQ0MjkgLyogTmF0aXZlV2ViTW91c2VFdmVudElPUy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTMxRUEyNUQyMTM0Rjc4QzAwMDVCMTQ1MiAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50TWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRBOTQ0OUYxODg0RTRGMDAwRUQ4NkRCIC8qIE5hdGl2
ZVdlYlRvdWNoRXZlbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlERjU4QzYzNjEzNzFBQ0Ew
MDBGOUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAt
MTA2OTMsNiArMTA3MDQsOCBAQAogCQkJCTFBNEE5QzU1MTJCODE2Q0YwMDhGRTk4NCAvKiBOZXRz
Y2FwZVBsdWdpbk1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTRBOUM5QTEyQjgyMUNE
MDA4RkU5ODQgLyogTmV0c2NhcGVQbHVnaW5Nb2R1bGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkxQUE1ODg5MzExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTM3OURCNzIyMDdFOTQ3MDAwN0Q4QzMzIC8qIE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTMxNTg3NkMyMDc2Qjc2MjAwNEJG
OUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUUxNzk4Qzc5MTZFNjgxODgwMDI0MDEzOSAvKiBOZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUU0NDM2RUNBMUEwRDAzRkEwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ5RDQwRDkxQUQzRkIyMTAwNjZCN0I5IC8qIE5ldHdv
cmtDYWNoZUJsb2JTdG9yYWdlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTA3MDgsNyArMTA3MjEs
NiBAQAogCQkJCTgzMkFFMjUzMUJFMkU4Q0QwMEZBQUUxMCAvKiBOZXR3b3JrQ2FjaGVTcGVjdWxh
dGl2ZUxvYWRNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzQkRDQ0I5MUFDNUZEQjYw
MDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUU0NDM2RUQwMUEwRDA0MEIwMEVBRDIwNCAvKiBOZXR3b3JrQ2FjaGVTdG9yYWdlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTFDOUVCQTVDMjA4N0U3NEYwMDA1NDQyOSAvKiBOYXRpdmVXZWJNb3Vz
ZUV2ZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODMxMDQyOEMxQkQ2QjY2RjAwQTcxNUU0
IC8qIE5ldHdvcmtDYWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUzMDI1ODNEMURDQkJEMjIwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZUV2ZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUzMDI1ODQwMURDQkJEMjIwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVy
ZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggODZiOTUwOWY0NDI5
MGNjYWUyZmYzM2E5ZWY5ODU2ODY5MDI1NTdkZi4uOGJhMDYwZWZkMjE5NGM0MDY0NjBhMjEyY2Fm
ZmYwNTIwNzdhNGYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNTIyLDYgKzUyMiwxMSBAQCB2b2lkIFdl
YkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBm
cmFtZUxvYWRlciwgdW5zaQogICAgIH0KIH0KIAordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cGFn
ZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKQoreworICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGFnZUxvYWRDb21w
bGV0ZWQod2ViUGFnZUlEKSwgMCk7Cit9CisKIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxvYWRJ
ZGVudGlmaWVyKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
aAppbmRleCA2NTc4NjMzMGMyYThiY2NlMTc0YWU0OTk0ODg1MjJkZjhlM2U5NTI0Li45NjkyNWJj
MDU4MTZiOTBiZDNjYmRlNmE2ODE0OWE1ZWQ5MDAzY2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKQEAgLTQ5LDYgKzQ5
LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgbG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1l
JiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChSZWZQdHI8V2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1
bnNpZ25lZCBsb25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IFdlYkNv
cmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFy
PiYgZGF0YSkgZmluYWw7CisgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZCh1aW50NjRfdCB3ZWJQ
YWdlSUQpIGZpbmFsOwogCiAgICAgdm9pZCByZW1vdmUoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIq
KSBmaW5hbDsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
ZXIqLCBib29sKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBjNjBi
MmU0NTMzNWMzYTA0NmM0ZTI3N2NiN2U0YmU2NzY4YzdjY2M5Li42NDFlNjdjMzZlYmY0ODZjNzdk
NDAwYzYxNGEwMDY1Y2M0NGQ1ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCkBA
IC0xMTEsNiArMTExLDEwIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlCiAgICAgUmVzb3VyY2VI
YW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoZnJhbWVMb2FkZXIubmV0d29ya2luZ0Nv
bnRleHQoKSwgcmVxdWVzdCwgb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNy
ZWRlbnRpYWxzOjpPbWl0ID8gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlIDogU3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSwgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKIH0KIAor
dm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnBhZ2VMb2FkQ29tcGxldGVkKHVpbnQ2NF90
IC8qd2ViUGFnZUlEKi8pCit7Cit9CisKIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpz
Y2hlZHVsZVBsdWdpblN0cmVhbUxvYWQoRnJhbWUmIGZyYW1lLCBOZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlckNsaWVudCYgY2xpZW50LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
cj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCBXVEZNb3ZlKHJlcXVlc3QpLCBbdGhpcywgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFJlZlB0cjxXZWJD
b3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4mJiBsb2FkZXIpIG11dGFibGUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggODgyOGI1NDk4YWNlZDM2OGM1NmFiOGE4NTU3Mzkz
NzMyNDVmMGFkYi4uNzcwZDYzZWZjNmFjOTg5MTcwZGU0NmVhN2MzODU1YTIwYWM2NTgyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC01MSw2ICs1MSw4IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgbG9hZFJlc291cmNlKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6Q2FjaGVkUmVzb3Vy
Y2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8V2ViQ29yZTo6U3Vi
cmVzb3VyY2VMb2FkZXI+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoV2ViQ29yZTo6RnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFsUG9saWN5LCBj
b25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFw
JiwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBW
ZWN0b3I8Y2hhcj4mKSBmaW5hbDsKKyAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKHVpbnQ2NF90
IHdlYlBhZ2VJRCkgZmluYWw7CisKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlciosIGJvb2wpIGZpbmFsOwogICAgIHZvaWQgY3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2Vp
dmVkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRpcmVj
dFVSTCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338768</attachid>
            <date>2018-04-25 12:09:15 -0700</date>
            <delta_ts>2018-04-25 16:06:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184838-20180425120847.patch</filename>
            <type>text/plain</type>
            <size>71961</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM0ZDY4MjdkNDQzMDA1YTQ0NGI3Nzc2
YWIzYjljOWE5MGUzMzc3NzQuLjUwZGQ0ZTA0ODg4MzY3OGEzNDM3ZGY3M2FiZjA1YjVkMDkyMjdj
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDQtMjQgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBmYWNpbGl0eSBmb3IgdHJhY2tpbmcgdGltZXMg
YW5kIHJlc3VsdHMgb2YgcGFnZSBhbmQgcmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0ODM4CisgICAgICAgIHJkYXI6Ly9w
cm9ibGVtLzM2NTQ4OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRGVmaW5lIFVTRV9ORVRXT1JLX0FDVElWSVRZIHRvIGVuYWJsZS9kaXNhYmxlIHRo
ZQorICAgICAgICBOZXR3b3JrQWN0aXZpdHlUcmFja2VyIGZhY2lsaXR5LiBEZWZpbmUgSEFWRV9O
V19BQ1RJVklUWSB0byBlbmFibGUgYQorICAgICAgICBwYXJ0aWN1bGFyIGltcGxlbWVudGF0aW9u
IG9mIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoK
KwogMjAxOC0wNC0yNSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAg
TWFrZSBhIGJldHRlciBmbGFnIGZvciBzeXN0ZW0gcHJldmlldywgYW5kIGRpc2FibGUgaXQgd2hl
cmUgbmVjZXNzYXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTlmYTI1YjRjNDIzNDU3NmEzODEyMmQzMDc1OGEy
MjkwZTQwNjhiYi4uYTI4MmU2YjMxYWUzYTc1YWUxNjU0ZjQzODZjOTJkMTg5OGYxYmU5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE4LTA0LTI0ICBLZWl0aCBSb2xsaW4gIDxrcm9s
bGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZmFjaWxpdHkgZm9yIHRyYWNraW5nIHRpbWVz
IGFuZCByZXN1bHRzIG9mIHBhZ2UgYW5kIHJlc291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDgzOAorICAgICAgICByZGFyOi8v
cHJvYmxlbS8zNjU0ODk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVwZGF0ZSBGcmFtZVByb2dyZXNzVHJhY2tlciB0byBzZW5kIHRoZSBuZWNlc3Nh
cnkgcGFnZSBsb2FkIHN0YXJ0L3N0b3AKKyAgICAgICAgc2lnbmFscyBzbyB0aGF0IHdlIGNhbiB0
cmFjayB0aGUgZW50aXJlIHBhZ2UgbG9hZCBhdCBhIG5ldHdvcmsgbGV2ZWwuCisgICAgICAgIEFk
ZCBhbiBlbXB0eSBvdmVycmlkZSBvZiB0aGUgcHVyZSB2aXJ0dWFsCisgICAgICAgIExvYWRlclN0
cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZCBtZXRob2QuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LiBUaGVyZSBpcyBubyB0ZXN0YWJsZSBlZmZlY3QgZnJvbSB0aGVzZSBjaGFuZ2VzLiBPbgorICAg
ICAgICBDb2NvYSwgbWVhc3VyYWJsZSBjaGFuZ2VzIHRha2UgcGxhY2UgaW4gYW5vdGhlciAobm9u
LVdlYktpdCkgcHJvY2Vzcy4KKyAgICAgICAgT24gbm9uLUNvY29hIHN5c3RlbXMsIHRoaXMgZmFj
aWxpdHkgaXMgY3VycmVudGx5IGRpc2FibGVkLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpGcmFtZVByb2dyZXNzVHJh
Y2tlcjo6RnJhbWVQcm9ncmVzc1RyYWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OkZyYW1lUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc0NvbXBsZXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6aW5pdEZvclN5bnRoZXNpemVkRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJT
dHJhdGVneS5oOgorCiAyMDE4LTA0LTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBDYWNoZWRSYXdSZXNvdXJjZSBpcyBub3QgaGFuZGxpbmcgaW5jcmVtZW50
YWwgZGF0YSBjb21wdXRhdGlvbiBjb3JyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzEyNzFlODY5MGVhMGZl
MDZhN2U4MzMyNTM1MjQ0OTk3MGMxOTA1MS4uNDA4Y2JkOTJkZmVkOTA0YzBmZTdkNmM4N2YyZWQ1
ZTVlODUwY2M1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MCBAQAorMjAxOC0wNC0yNCAgS2VpdGgg
Um9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGZhY2lsaXR5IGZvciB0
cmFja2luZyB0aW1lcyBhbmQgcmVzdWx0cyBvZiBwYWdlIGFuZCByZXNvdXJjZSBsb2FkaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ4MzgKKyAg
ICAgICAgcmRhcjovL3Byb2JsZW0vMzY1NDg5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0d29ya0FjdGl2aXR5VHJhY2tlci4gVGhlIGlk
ZWEgYmVoaW5kIHRoaXMgZmFjaWxpdHkgaXMgdG8gY3JlYXRlCisgICAgICAgIGFuZCBkZXN0cm95
IHRoZW0gYXJvdW5kIG5ldHdvcmtpbmcgYWN0aXZpdHkgdGhhdCB3ZSB3YW50IHRvIHRyYWNrIGZv
cgorICAgICAgICB0aGUgcHVycG9zZSBvZiBtZWFzdXJpbmcgb3ZlcmFsbCBuZXR3b3JrIGhlYWx0
aC4gVGhleSBjYW4gYmUgY3JlYXRlZAorICAgICAgICBhcm91bmQgdGhlIGxvYWRpbmcgb2YgcGFn
ZXMgb3IgaW5kaXZpZHVhbCByZXNvdXJjZXMsIGFuZCBjYW4gYmUKKyAgICAgICAgYXJyYW5nZWQg
aW4gYSBwYXJlbnQvY2hpbGQgaGllcmFyY2h5IHRvIGluZGljYXRlIHdoYXQgcGFnZXMgdGhlCisg
ICAgICAgIHJlc291cmNlcyBhcmUgcGFydCBvZi4gVGhlIE5ldHdvcmtBY3Rpdml0eSB0cmFja2Vy
IHRyYWNrcyBsb2FkIHRpbWVzCisgICAgICAgIGFuZCByZXN1bHRzLiBPbiBDb2NvYSwgaXQgY2Fu
IGJlIGludGVncmF0ZWQgd2l0aCBDRk5ldHdvcmsgaW4gb3JkZXIgdG8KKyAgICAgICAgYXNzb2Np
YXRlIFdlYktpdCBhY3Rpdml0eSB3aXRoIGxvdy1sZXZlbCBuZXR3b3JraW5nIGFjdGl2aXR5Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2Vi
S2l0LnhjY29uZmlnOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRy
YWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tl
cjo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI6On5OZXR3b3JrQWN0aXZpdHlUcmFja2VyKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c2V0UGFyZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0FjdGl2aXR5VHJhY2tlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0
aXZpdHlUcmFja2VyOjpjb21wbGV0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0FjdGl2aXR5VHJhY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2
aXR5VHJhY2tlcjo6Z2V0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpwYWdlTG9hZENvbXBsZXRlZCk6CisgICAgICAgIChXZWJLaXQ6Om5l
dHdvcmtBY3Rpdml0eVRyYWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydFRyYWNraW5nUmVzb3VyY2VMb2FkKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0b3BUcmFja2luZ1Jl
c291cmNlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RvcEFsbE5ldHdvcmtBY3Rpdml0eVRyYWNr
aW5nRm9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpmaW5kUm9vdE5ldHdvcmtBY3Rpdml0eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpmaW5kTmV0d29ya0FjdGl2aXR5VHJhY2tlcik6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlc291cmNlTmV0
d29ya0FjdGl2aXR5VHJhY2tlcjo6UmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6dHJhY2tO
ZXR3b3JrQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZGVyOjpkaWRSZXRyaWV2ZUNhY2hlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlUHJvY2Vzc2luZ0NhY2hlZEVudHJ5QWZ0ZXJEaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtBY3Rpdml0
eVRyYWNrZXJDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0
eVRyYWNrZXI6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQWN0aXZpdHlUcmFja2VyOjp+TmV0d29ya0FjdGl2aXR5VHJhY2tlcik6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OnNldFBhcmVudCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0FjdGl2aXR5VHJhY2tlcjo6Y29tcGxldGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dENvbmZpZ3VyYXRpb25SZWYuY3BwOgorICAgICAgICAoV0tDb250ZXh0Q29uZmlndXJh
dGlvblRyYWNrTmV0d29ya0FjdGl2aXR5KToKKyAgICAgICAgKFdLQ29udGV4dENvbmZpZ3VyYXRp
b25TZXRUcmFja05ldHdvcmtBY3Rpdml0eSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dENvbmZpZ3VyYXRpb25SZWYuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtfV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24gdHJhY2tOZXR3b3JrQWN0aXZpdHldKToKKyAgICAgICAgKC1b
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldFRyYWNrTmV0d29ya0FjdGl2aXR5Ol0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRl
Z3k6OnBhZ2VMb2FkQ29tcGxldGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuaDoKKwogMjAxOC0wNC0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgRW5zdXJlIEROVCBpcyBzZXQgZm9yIHJlZGlyZWN0aW9ucyBo
YW5kbGVkIGluIE5ldHdvcmtQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDY4OGI4NGUw
MTJkOTc3YzkwM2QzNDkwZmI4NmUyNDIwZDg1NzBmNWMuLjQ0MjY0OGM4YmUxMGNmNDkzMWY0ZjIz
ZmM0NzgxNDBmYWMxN2Q0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTgtMDQtMjQgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBmYWNpbGl0eSBmb3IgdHJhY2tpbmcgdGltZXMgYW5kIHJlc3VsdHMgb2YgcGFnZSBhbmQg
cmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg0ODM4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzM2NTQ4OTc0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIGVtcHR5IG92
ZXJyaWRlIG9mIHRoZSBwdXJlIHZpcnR1YWwKKyAgICAgICAgTG9hZGVyU3RyYXRlZ3k6OnBhZ2VM
b2FkQ29tcGxldGVkIG1ldGhvZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6
OnBhZ2VMb2FkQ29tcGxldGVkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaDoKKwogMjAxOC0wNC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIE5ldHdvcmtMb2FkQ2hlY2tlciB0byBoYW5kbGUgc3lu
Y2hyb25vdXMgSFRUUCBsb2FkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggZDliYTE3NjY2Y2ZmODljMzQ0ZTVh
ZTk2N2MzNDBlMGJmMWFhYjJlZS4uOWU5NzE1ZGViYWYzMTJkZmZmNjkzNjgyNmExN2Y1NDg2NDJj
YzVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMjcxLDYgKzEyNzEsMTQgQEAKICNlbmRpZgogI2VuZGlm
CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxudy9hY3Rp
dml0eS5oPikKKyNkZWZpbmUgSEFWRV9OV19BQ1RJVklUWSAxCisjZW5kaWYKKworI2lmIEhBVkUo
TldfQUNUSVZJVFkpCisjZGVmaW5lIFVTRV9ORVRXT1JLX0FDVElWSVRZIDEKKyNlbmRpZgorCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5lIEhBVkVfU0VDX1RSVVNUX1NFUklBTElaQVRJT04g
MQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA5N2NmMGI2
OGUxMTRmMTdhNTZmMDQxYWE3YWIwODRmMzUwMDJmMGQ1Li4wN2NmYmY0NDExNzI0Y2M5ZTk3NGUx
YmE1NmZmNjY1MGM2NmU0MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
QEAgLTIyNiw4ICsyMjYsOSBAQCBzdHJ1Y3QgRm9yYmlkUHJvbXB0c1Njb3BlIHsKIGNsYXNzIEZy
YW1lTG9hZGVyOjpGcmFtZVByb2dyZXNzVHJhY2tlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgRnJhbWVQcm9ncmVzc1RyYWNrZXIoRnJhbWUm
IGZyYW1lKQorICAgIGV4cGxpY2l0IEZyYW1lUHJvZ3Jlc3NUcmFja2VyKEZyYW1lJiBmcmFtZSwg
RnJhbWVMb2FkZXJDbGllbnQmIGNsaWVudCkKICAgICAgICAgOiBtX2ZyYW1lKGZyYW1lKQorICAg
ICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAgICAgLCBtX2luUHJvZ3Jlc3MoZmFsc2UpCiAg
ICAgewogICAgIH0KQEAgLTI1MiwxMCArMjUzLDE0IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJU
KG1fZnJhbWUucGFnZSgpKTsKICAgICAgICAgbV9pblByb2dyZXNzID0gZmFsc2U7CiAgICAgICAg
IG1fZnJhbWUucGFnZSgpLT5wcm9ncmVzcygpLnByb2dyZXNzQ29tcGxldGVkKG1fZnJhbWUpOwor
CisgICAgICAgIGlmIChtX2NsaWVudC5wYWdlSUQoKSkKKyAgICAgICAgICAgIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5wYWdlTG9hZENvbXBsZXRlZChtX2NsaWVudC5w
YWdlSUQoKS52YWx1ZSgpKTsKICAgICB9CiAKIHByaXZhdGU6CiAgICAgRnJhbWUmIG1fZnJhbWU7
CisgICAgRnJhbWVMb2FkZXJDbGllbnQmIG1fY2xpZW50OwogICAgIGJvb2wgbV9pblByb2dyZXNz
OwogfTsKIApAQCAtMzEzLDcgKzMxOCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmluaXQoKQogICAg
IG1fc3RhdGVNYWNoaW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0YXRlTWFjaGluZTo6RGlzcGxh
eWluZ0luaXRpYWxFbXB0eURvY3VtZW50KTsKIAogICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBt
X2NsaWVudC5jcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwotICAgIG1fcHJvZ3Jlc3NUcmFja2Vy
ID0gc3RkOjptYWtlX3VuaXF1ZTxGcmFtZVByb2dyZXNzVHJhY2tlcj4obV9mcmFtZSk7CisgICAg
bV9wcm9ncmVzc1RyYWNrZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZyYW1lUHJvZ3Jlc3NUcmFja2Vy
PihtX2ZyYW1lLCBtX2NsaWVudCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmluaXRGb3JTeW50
aGVzaXplZERvY3VtZW50KGNvbnN0IFVSTCYpCkBAIC0zMzgsNyArMzQzLDcgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6aW5pdEZvclN5bnRoZXNpemVkRG9jdW1lbnQoY29uc3QgVVJMJikKICAgICBtX25l
ZWRzQ2xlYXIgPSB0cnVlOwogCiAgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IG1fY2xpZW50LmNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7Ci0gICAgbV9wcm9ncmVzc1RyYWNrZXIgPSBzdGQ6Om1h
a2VfdW5pcXVlPEZyYW1lUHJvZ3Jlc3NUcmFja2VyPihtX2ZyYW1lKTsKKyAgICBtX3Byb2dyZXNz
VHJhY2tlciA9IHN0ZDo6bWFrZV91bmlxdWU8RnJhbWVQcm9ncmVzc1RyYWNrZXI+KG1fZnJhbWUs
IG1fY2xpZW50KTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29s
IGRlZmVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVn
eS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNjdkMzBj
ZjExZjZhYmZhNzU5OGU4YzRjYjhjOWE4ODFhMjc3YjM0NS4uMmY1ZWZlYjZiODZiOGEwNjY5ZTM0
MWViNWU0NjkxNTkxMTAzODA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xv
YWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5
LmgKQEAgLTU4LDYgKzU4LDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgTG9hZGVyU3RyYXRlZ3kg
ewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsb2FkUmVzb3VyY2UoRnJhbWUmLCBDYWNoZWRS
ZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxv
YWRlciYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgRmV0Y2hPcHRpb25zJiwgY29uc3QgSFRUUEhl
YWRlck1hcCYsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+
JiBkYXRhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKHVpbnQ2NF90
IHdlYlBhZ2VJRCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZShSZXNvdXJjZUxvYWRl
ciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRl
ciosIGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGI5Mzk4MjAwYzY5ZTg2ZjE0ZGM1
OTZmYmVhNTJhMDU0NzcwNDk1Y2QuLmYxZDAzZTQ3MzZiZTI0YjcyYzY4OTM5YTlmZTg1OTg1OWE1
Yjg4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtOTcsMTQgKzk3LDcgQEAgc2V0KFdlYktpdF9T
WVNURU1fSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBzZXQoV2ViS2l0X1NPVVJDRVMKLSAgICBO
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCi0KLSAgICBOZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKLSAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvUGVu
ZGluZ0Rvd25sb2FkLmNwcAotCi0gICAgTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxv
YlJlZ2lzdHJ5LmNwcAotCisgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tl
ci5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3Bw
CiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiAg
ICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCkBAIC0x
MjIsNiArMTE1LDE0IEBAIHNldChXZWJLaXRfU09VUkNFUwogICAgIE5ldHdvcmtQcm9jZXNzL1Bp
bmdMb2FkLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcAogCisgICAg
TmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorCisgICAgTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCisgICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1Bl
bmRpbmdEb3dubG9hZC5jcHAKKworICAgIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Js
b2JSZWdpc3RyeS5jcHAKKwogICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVu
Z2luZS5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNo
ZS5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4
IGMzNzlhMTdlOTdjYjQyNjM3ZTdjZjQzYTRkZDdkOThkMzFhOTFjOTAuLjk2ZWM0YWNkMWY3ZDA5
NzQxNDk4ZjFlZjNmY2I0MDExMjZhMTgyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJh
dGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC0xMTIsNyArMTEyLDcgQEAgV0tfU0FGRV9CUk9XU0lO
R19MREZMQUdTX01BQ09TX1NJTkNFXzEwMTMgPSAtd2Vha19mcmFtZXdvcmsgU2FmYXJpU2FmZUJy
b3dzaW5nOwogV0tfVUlLSVRfTERGTEFHUyA9ICQoV0tfVUlLSVRfTERGTEFHU18kKFdLX0NPQ09B
X1RPVUNIKSk7CiBXS19VSUtJVF9MREZMQUdTX2NvY29hdG91Y2ggPSAtZnJhbWV3b3JrIFVJS2l0
OwogCi1GUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENG
TmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1m
cmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3Vu
ZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgV2Vi
S2l0TGVnYWN5ICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdT
KSAkKFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAk
KFdLX0NPUkVfUERGX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tf
Q09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQo
V0tfSU9TVVJGQUNFX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxF
X0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdL
X09QRU5HTF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdf
TERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKTsKK0ZSQU1FV09SS19BTkRfTElCUkFSWV9MREZM
QUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1m
cmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29y
ayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFt
ZXdvcmsgSU9LaXQgLWZyYW1ld29yayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrICQoV0tfQUNDRVNT
SUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FTU0VSVElPTl9TRVJW
SUNFU19MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPUkVfUERGX0xERkxBR1Mp
ICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdT
KSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfSU9TVVJGQUNFX0xERkxBR1Mp
ICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFH
UykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKFdL
X1BERktJVF9MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19VSUtJVF9M
REZMQUdTKTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFyeSBvcGVyYXRvciBuZXcs
IGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWluZyBleHBv
cnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDlleGNlcHRp
b24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bSAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEy
UG9saWN5QWN0aW9uRUVFQzJFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0
M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzFFT1M0XyAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9s
aWN5QWN0aW9uRUVFYVNFRG4gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5LU3QzX18x
OGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVjbEVTMl8gLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFj
dGlvbkVFRTRzd2FwRVJTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4
ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMxRVJLUzRfIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wsIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lB
Y3Rpb25FRUVDMkVSS1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThm
dW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9u
RUVFRDJFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklG
dk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFYVNFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCwgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzZmYmU5ZDA1MGEzMzI5OGQwZjliOWRlOGY0YWFiMWY0NGU3ZDNmOQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5
VHJhY2tlci5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgorCisjaWYgIUhBVkUo
TldfQUNUSVZJVFkpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOZXR3b3JrQWN0aXZpdHlUcmFj
a2VyOjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyKExhYmVsLCBEb21haW4pCit7Cit9CisKK05ldHdv
cmtBY3Rpdml0eVRyYWNrZXI6On5OZXR3b3JrQWN0aXZpdHlUcmFja2VyKCkKK3sKK30KKwordm9p
ZCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpzZXRQYXJlbnQoTmV0d29ya0FjdGl2aXR5VHJhY2tl
ciYpCit7Cit9CisKK3ZvaWQgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c3RhcnQoKQoreworfQor
Cit2b2lkIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OmNvbXBsZXRlKENvbXBsZXRpb25Db2RlKQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVTRShORVRXT1JLX0FD
VElWSVRZKSAmJiAhSEFWRShOV19BQ1RJVklUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwMDY1
YzgxOTI3YWY0MDVjMmQ4NWY3YzE4OTNmNGExMGQ4MGY2ZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oCkBAIC0w
LDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Q
bGF0Zm9ybS5oPgorCisjaWYgSEFWRShOV19BQ1RJVklUWSkKKyNpbmNsdWRlIDxudy9wcml2YXRl
Lmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBOZXR3b3JrQWN0aXZpdHlUcmFja2VyIHsKK3B1YmxpYzoKKyAgICBlbnVt
IGNsYXNzIERvbWFpbiB7CisgICAgICAgIC8vIFRoZXNlIGFyZSBkZWZpbmVkIHRvIG1hdGNoIGFu
YWxvZ291cyB2YWx1ZXMgdXNlZCBpbiB0aGUgRGFyd2luIGltcGxlbWVudGF0aW9uLgorICAgICAg
ICAvLyBJZiB0aGV5IGFyZSByZW51bWJlcmVkLCBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIHdpbGwg
bmVlZCB0byBiZSBhZGRlZCB0byBtYXAKKyAgICAgICAgLy8gdGhlbSB0byB0aGUgRGFyd2luLXNw
ZWNpZmljIHZhbHVlcy4KKworICAgICAgICBJbnZhbGlkID0gMCwKKyAgICAgICAgV2ViS2l0ID0g
MTYsCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgTGFiZWwgeworICAgICAgICAvLyBUaGVzZSBh
cmUgb3VycyB0byBkZWZpbmUsIGJ1dCBvbmNlIGRlZmluZWQsIHRoZXkgc2hvdWxkbid0IGNoYW5n
ZS4gVGhleSBjYW4KKyAgICAgICAgLy8gYmUgb2Jzb2xlc2NlZCBhbmQgcmVwbGFjZWQgd2l0aCBv
dGhlciBjb2RlcywgYnV0IHByZXZpb3VzbHktZGVmaW5lZCBjb2RlcworICAgICAgICAvLyBzaG91
bGQgbm90IGJlIHJlbnVtYmVyZWQuIFByZXZpb3VzbHkgYXNzaWduZWQgdmFsdWVzIHNob3VsZCBu
b3QgYmUgcmUtdXNlZC4KKworICAgICAgICBJbnZhbGlkID0gMCwKKyAgICAgICAgTG9hZFBhZ2Ug
PSAxLAorICAgICAgICBMb2FkUmVzb3VyY2UgPSAyLAorICAgIH07CisKKyAgICBlbnVtIGNsYXNz
IENvbXBsZXRpb25Db2RlIHsKKyAgICAgICAgVW5kZWZpbmVkLAorICAgICAgICBOb25lLAorICAg
ICAgICBTdWNjZXNzLAorICAgICAgICBGYWlsdXJlLAorICAgIH07CisKKyAgICBOZXR3b3JrQWN0
aXZpdHlUcmFja2VyKExhYmVsLCBEb21haW4gPSBEb21haW46OldlYktpdCk7CisgICAgfk5ldHdv
cmtBY3Rpdml0eVRyYWNrZXIoKTsKKworICAgIHZvaWQgc2V0UGFyZW50KE5ldHdvcmtBY3Rpdml0
eVRyYWNrZXImKTsKKyAgICB2b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBjb21wbGV0ZShDb21wbGV0
aW9uQ29kZSk7CisKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAgIG53X2FjdGl2aXR5X3QgZ2V0
KCkgeyByZXR1cm4gbV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCk7IH0KKyNlbmRpZgorCitwcml2YXRl
OgorI2lmIEhBVkUoTldfQUNUSVZJVFkpCisgICAgRG9tYWluIG1fZG9tYWluOworICAgIExhYmVs
IG1fbGFiZWw7CisgICAgYm9vbCBtX2lzQ29tcGxldGVkIHsgZmFsc2UgfTsKKyAgICBSZXRhaW5Q
dHI8bndfYWN0aXZpdHlfdD4gbV9uZXR3b3JrQWN0aXZpdHk7CisjZW5kaWYKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAxNzljMjRm
MWRkMzNhOTEzZDIxNjc4NzZmMTAyZjY4MWM1ODkzZmYwLi42OWZkZWI2MzU1NDYyOWZkNjA2MzE1
ZGE4MDRkM2UzNzFiYTE0YjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMjks
NiArMjksNyBAQAogI2luY2x1ZGUgIkJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0
ZW5zaW9uLmgiCiAjaW5jbHVkZSAiQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJOZXR3b3JrQmxvYlJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgi
CiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgpAQCAt
NjEsNiArNjIsOSBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2RlZmluZSBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRih0cnVlLCBOZXR3b3Jr
LCAiJXAgLSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6IiBmbXQsIHRoaXMsICMjX19W
QV9BUkdTX18pCisjZGVmaW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoZm10LCAuLi4p
IFJFTEVBU0VfTE9HX0VSUk9SX0lGKHRydWUsIE5ldHdvcmssICIlcCAtIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFJlZjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIpCkBAIC0xODAsNiArMTg0LDExIEBAIHZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiAgICAgICAg
IGxvYWRlci0+YWJvcnQoKTsKICAgICBBU1NFUlQobV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzLmlz
RW1wdHkoKSk7CiAKKyAgICAvLyBBbGwgdHJhY2tlcnMgb2YgcmVzb3VyY2VzIHRoYXQgd2VyZSBp
biB0aGUgbWlkZGxlIG9mIGJlaW5nIGxvYWRlZCB3ZXJlCisgICAgLy8gc3RvcHBlZCB3aXRoIHRo
ZSBhYm9ydCgpIGNhbGxzIGFib3ZlLCBidXQgd2Ugc3RpbGwgbmVlZCB0byBzd2VlcCB1cCB0aGUK
KyAgICAvLyByb290IGFjdGl2aXR5IHRyYWNrZXJzLgorICAgIHN0b3BBbGxOZXR3b3JrQWN0aXZp
dHlUcmFja2luZygpOworCiAgICAgTmV0d29ya0Jsb2JSZWdpc3RyeTo6c2luZ2xldG9uKCkuY29u
bmVjdGlvblRvV2ViUHJvY2Vzc0RpZENsb3NlKHRoaXMpOwogICAgIE5ldHdvcmtQcm9jZXNzOjpz
aW5nbGV0b24oKS5yZW1vdmVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyh0aGlzKTsKIApA
QCAtMjg3LDYgKzI5NiwxMSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpy
ZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyCiAgICAgQVNTRVJUKCFt
X25ldHdvcmtSZXNvdXJjZUxvYWRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOwogfQogCit2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwYWdlTG9hZENvbXBsZXRlZCh1aW50NjRf
dCB3ZWJQYWdlSUQpCit7CisgICAgc3RvcEFsbE5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRm9yUGFn
ZSh3ZWJQYWdlSUQpOworfQorCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpz
ZXREZWZlcnNMb2FkaW5nKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBk
ZWZlcnMpCiB7CiAgICAgUmVmUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gbG9hZGVyID0gbV9u
ZXR3b3JrUmVzb3VyY2VMb2FkZXJzLmdldChpZGVudGlmaWVyKTsKQEAgLTUzMiw0ICs1NDYsMTI0
IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlc2V0T3JpZ2luQWNjZXNz
V2hpdGVsaXN0cygpCiAgICAgU2VjdXJpdHlQb2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVs
aXN0cygpOwogfQogCitzdGF0aWMgYm9vbCBuZXR3b3JrQWN0aXZpdHlUcmFja2luZ0VuYWJsZWQo
KQoreworI2lmIFVTRShORVRXT1JLX0FDVElWSVRZKQorICAgIHJldHVybiBOZXR3b3JrUHJvY2Vz
czo6c2luZ2xldG9uKCkudHJhY2tOZXR3b3JrQWN0aXZpdHkoKTsKKyNlbHNlCisgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCit9CisKK3N0ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tl
cj4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0YXJ0VHJhY2tpbmdSZXNvdXJjZUxv
YWQodWludDY0X3QgcGFnZUlELCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQsIGJv
b2wgaXNNYWluUmVzb3VyY2UpCit7CisgICAgaWYgKCFuZXR3b3JrQWN0aXZpdHlUcmFja2luZ0Vu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIEVpdGhlciBn
ZXQgdGhlIGV4aXN0aW5nIHJvb3QgYWN0aXZpdHkgdHJhY2tlciBmb3IgdGhpcyBwYWdlIG9yIGNy
ZWF0ZSBhCisgICAgLy8gbmV3IG9uZSBpZiB0aGlzIGlzIHRoZSBtYWluIHJlc291cmNlLgorCisg
ICAgc2l6ZV90IHJvb3RBY3Rpdml0eUluZGV4OworICAgIGlmIChpc01haW5SZXNvdXJjZSkgewor
ICAgICAgICAvLyBJZiB3ZSdyZSBsb2FkaW5nIGEgcGFnZSBmcm9tIHRoZSB0b3AsIG1ha2Ugc3Vy
ZSBhbnkgdHJhY2tpbmcgb2YKKyAgICAgICAgLy8gcHJldmlvdXMgYWN0aXZpdHkgZm9yIHRoaXMg
cGFnZSBpcyBzdG9wcGVkLgorCisgICAgICAgIHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2lu
Z0ZvclBhZ2UocGFnZUlEKTsKKworICAgICAgICByb290QWN0aXZpdHlJbmRleCA9IG1fbmV0d29y
a0FjdGl2aXR5VHJhY2tlcnMuc2l6ZSgpOworICAgICAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNr
ZXJzLmNvbnN0cnVjdEFuZEFwcGVuZChwYWdlSUQpOworICAgICAgICBtX25ldHdvcmtBY3Rpdml0
eVRyYWNrZXJzW3Jvb3RBY3Rpdml0eUluZGV4XS5tX25ldHdvcmtBY3Rpdml0eS5zdGFydCgpOwor
CisjaWYgSEFWRShOV19BQ1RJVklUWSkKKyAgICAgICAgQVNTRVJUKG1fbmV0d29ya0FjdGl2aXR5
VHJhY2tlcnNbcm9vdEFjdGl2aXR5SW5kZXhdLm1fbmV0d29ya0FjdGl2aXR5LmdldCgpKTsKKyNl
bmRpZgorICAgIH0gZWxzZSB7CisgICAgICAgIHJvb3RBY3Rpdml0eUluZGV4ID0gZmluZFJvb3RO
ZXR3b3JrQWN0aXZpdHkocGFnZUlEKTsKKworICAgICAgICAvLyBUaGlzIGNvdWxkIGhhcHBlbiBp
ZiB0aGUgTmV0d29ya2luZyBwcm9jZXNzIGNyYXNoZXMsIHRha2luZyBpdHMKKyAgICAgICAgLy8g
cHJldmlvdXMgc3RhdGUgd2l0aCBpdC4KKyAgICAgICAgaWYgKHJvb3RBY3Rpdml0eUluZGV4ID09
IG5vdEZvdW5kKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworI2lmIEhBVkUo
TldfQUNUSVZJVFkpCisgICAgICAgIEFTU0VSVChtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW3Jv
b3RBY3Rpdml0eUluZGV4XS5tX25ldHdvcmtBY3Rpdml0eS5nZXQoKSk7CisjZW5kaWYKKyAgICB9
CisKKyAgICAvLyBDcmVhdGUgYSB0cmFja2VyIGZvciB0aGUgbG9hZGluZyBvZiB0aGUgbmV3IHJl
c291cmNlLCBzZXR0aW5nIHRoZSByb290CisgICAgLy8gYWN0aXZpdHkgdHJhY2tlciBhcyBpdHMg
cGFyZW50LgorCisgICAgc2l6ZV90IG5ld0FjdGl2aXR5SW5kZXggPSBtX25ldHdvcmtBY3Rpdml0
eVRyYWNrZXJzLnNpemUoKTsKKyAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzLmNvbnN0cnVj
dEFuZEFwcGVuZChwYWdlSUQsIHJlc291cmNlSUQpOworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisg
ICAgQVNTRVJUKG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnNbbmV3QWN0aXZpdHlJbmRleF0ubV9u
ZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOworI2VuZGlmCisKKyAgICBhdXRvJiBuZXdBY3Rpdml0eVRy
YWNrZXIgPSBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW25ld0FjdGl2aXR5SW5kZXhdOworICAg
IG5ld0FjdGl2aXR5VHJhY2tlci5tX25ldHdvcmtBY3Rpdml0eS5zZXRQYXJlbnQobV9uZXR3b3Jr
QWN0aXZpdHlUcmFja2Vyc1tyb290QWN0aXZpdHlJbmRleF0ubV9uZXR3b3JrQWN0aXZpdHkpOwor
ICAgIG5ld0FjdGl2aXR5VHJhY2tlci5tX25ldHdvcmtBY3Rpdml0eS5zdGFydCgpOworCisgICAg
cmV0dXJuIG5ld0FjdGl2aXR5VHJhY2tlci5tX25ldHdvcmtBY3Rpdml0eTsKK30KKwordm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RvcFRyYWNraW5nUmVzb3VyY2VMb2FkKFJl
c291cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VJRCwgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6
Q29tcGxldGlvbkNvZGUgY29kZSkKK3sKKyAgICBpZiAoIW5ldHdvcmtBY3Rpdml0eVRyYWNraW5n
RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGl0ZW1JbmRleCA9IGZpbmRO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyKHJlc291cmNlSUQpOworICAgIGlmIChpdGVtSW5kZXggPT0g
bm90Rm91bmQpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgInN0b3BUcmFj
a2luZ1Jlc291cmNlTG9hZDogVW5hYmxlIHRvIGZpbmQgbmV0d29yayBhY3Rpdml0eSBmb3IgcmVz
b3VyY2U6ICVkIiwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUlEKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1JbmRleF0ubV9u
ZXR3b3JrQWN0aXZpdHkuY29tcGxldGUoY29kZSk7CisgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFj
a2Vycy5yZW1vdmUoaXRlbUluZGV4KTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6c3RvcEFsbE5ldHdvcmtBY3Rpdml0eVRyYWNraW5nKCkKK3sKKyAgICBpZiAoIW5l
dHdvcmtBY3Rpdml0eVRyYWNraW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBm
b3IgKHNpemVfdCBpdGVtSW5kZXggPSAwOyBpdGVtSW5kZXggPCBtX25ldHdvcmtBY3Rpdml0eVRy
YWNrZXJzLnNpemUoKTsgKytpdGVtSW5kZXgpCisgICAgICAgIG1fbmV0d29ya0FjdGl2aXR5VHJh
Y2tlcnNbaXRlbUluZGV4XS5tX25ldHdvcmtBY3Rpdml0eS5jb21wbGV0ZShOZXR3b3JrQWN0aXZp
dHlUcmFja2VyOjpDb21wbGV0aW9uQ29kZTo6Tm9uZSk7CisgICAgbV9uZXR3b3JrQWN0aXZpdHlU
cmFja2Vycy5jbGVhcigpOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmdGb3JQYWdlKHVpbnQ2NF90IHBhZ2VJRCkK
K3sKKyAgICBpZiAoIW5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBzaXplX3QgaXRlbUluZGV4ID0gbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vy
cy5zaXplKCk7CisgICAgd2hpbGUgKGl0ZW1JbmRleCA+IDApIHsKKyAgICAgICAgLS1pdGVtSW5k
ZXg7CisgICAgICAgIGlmIChtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1JbmRleF0ubV9w
YWdlSUQgPT0gcGFnZUlEKSB7CisgICAgICAgICAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJz
W2l0ZW1JbmRleF0ubV9uZXR3b3JrQWN0aXZpdHkuY29tcGxldGUoTmV0d29ya0FjdGl2aXR5VHJh
Y2tlcjo6Q29tcGxldGlvbkNvZGU6Ok5vbmUpOworICAgICAgICAgICAgbV9uZXR3b3JrQWN0aXZp
dHlUcmFja2Vycy5yZW1vdmUoaXRlbUluZGV4KTsKKyAgICAgICAgfQorICAgIH0KK30KKworc2l6
ZV90IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpmaW5kUm9vdE5ldHdvcmtBY3Rpdml0
eSh1aW50NjRfdCBwYWdlSUQpCit7CisgICAgZm9yIChzaXplX3QgaXRlbUluZGV4ID0gMDsgaXRl
bUluZGV4IDwgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5zaXplKCk7ICsraXRlbUluZGV4KSB7
CisgICAgICAgIGlmIChtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1JbmRleF0ubV9pc1Jv
b3RBY3Rpdml0eSAmJiBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1JbmRleF0ubV9wYWdl
SUQgPT0gcGFnZUlEKQorICAgICAgICAgICAgcmV0dXJuIGl0ZW1JbmRleDsKKyAgICB9CisKKyAg
ICByZXR1cm4gbm90Rm91bmQ7Cit9CisKK3NpemVfdCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZmluZE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBy
ZXNvdXJjZUlEKQoreworICAgIGZvciAoc2l6ZV90IGl0ZW1JbmRleCA9IDA7IGl0ZW1JbmRleCA8
IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuc2l6ZSgpOyArK2l0ZW1JbmRleCkgeworICAgICAg
ICBpZiAobV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1fcmVzb3VyY2VJRCA9
PSByZXNvdXJjZUlEKQorICAgICAgICAgICAgcmV0dXJuIGl0ZW1JbmRleDsKKyAgICB9CisKKyAg
ICByZXR1cm4gbm90Rm91bmQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCmluZGV4IDRjZWEyYzZkNGZhOTg4Y2IzYzhlNGQ0YmM0NmY2M2I3NTRmMDJl
ZjEuLmQwNzQyMTg4NDEyNmNjZWI0ZTA5MzAxZDBhOTRlZjdhODViNjRkNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkRv
d25sb2FkSUQuaCIKKyNpbmNsdWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtNRE5TUmVnaXN0ZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKQEAg
LTExMSw2ICsxMTIsOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fbmV0d29ya0xvYWRJbmZvcm1hdGlv
bkJ5SUQucmVtb3ZlKGlkZW50aWZpZXIpOwogICAgIH0KIAorICAgIHN0ZDo6b3B0aW9uYWw8TmV0
d29ya0FjdGl2aXR5VHJhY2tlcj4gc3RhcnRUcmFja2luZ1Jlc291cmNlTG9hZCh1aW50NjRfdCBw
YWdlSUQsIFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VJRCwgYm9vbCBpc01haW5SZXNv
dXJjZSk7CisgICAgdm9pZCBzdG9wVHJhY2tpbmdSZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkSWRl
bnRpZmllciByZXNvdXJjZUlELCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpDb21wbGV0aW9uQ29k
ZSk7CisKIHByaXZhdGU6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIApAQCAtMTMzLDYgKzEzNyw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwcmVjb25uZWN0VG8odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIE5l
dHdvcmtMb2FkUGFyYW1ldGVycyYmKTsKIAogICAgIHZvaWQgcmVtb3ZlTG9hZElkZW50aWZpZXIo
UmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CisgICAgdm9pZCBwYWdlTG9hZENvbXBsZXRlZCh1aW50
NjRfdCB3ZWJQYWdlSUQpOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIGNyb3NzT3JpZ2luUmVkaXJlY3RSZWNlaXZlZChS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpVUkwmIHJlZGlyZWN0VVJMKTsK
ICAgICB2b2lkIHN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9
IHsgfSk7CkBAIC0xODAsMTEgKzE4NSw0MyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkhv
c3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgcmVzZXRPcmln
aW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CiAKKyAgICBzdHJ1Y3QgUmVzb3VyY2VOZXR3b3JrQWN0aXZp
dHlUcmFja2VyIHsKKyAgICAgICAgUmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyKCkgPSBk
ZWZhdWx0OworICAgICAgICBSZXNvdXJjZU5ldHdvcmtBY3Rpdml0eVRyYWNrZXIoY29uc3QgUmVz
b3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyJikgPSBkZWZhdWx0OworICAgICAgICBSZXNvdXJj
ZU5ldHdvcmtBY3Rpdml0eVRyYWNrZXIoUmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyJiYp
ID0gZGVmYXVsdDsKKyAgICAgICAgUmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyKHVpbnQ2
NF90IHBhZ2VJRCkKKyAgICAgICAgICAgIDogbV9wYWdlSUQocGFnZUlEKQorICAgICAgICAgICAg
LCBtX3Jlc291cmNlSUQoMCkKKyAgICAgICAgICAgICwgbV9pc1Jvb3RBY3Rpdml0eSh0cnVlKQor
ICAgICAgICAgICAgLCBtX25ldHdvcmtBY3Rpdml0eShOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpM
YWJlbDo6TG9hZFBhZ2UpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFJlc291cmNl
TmV0d29ya0FjdGl2aXR5VHJhY2tlcih1aW50NjRfdCBwYWdlSUQsIFJlc291cmNlTG9hZElkZW50
aWZpZXIgcmVzb3VyY2VJRCkKKyAgICAgICAgICAgIDogbV9wYWdlSUQocGFnZUlEKQorICAgICAg
ICAgICAgLCBtX3Jlc291cmNlSUQocmVzb3VyY2VJRCkKKyAgICAgICAgICAgICwgbV9pc1Jvb3RB
Y3Rpdml0eShmYWxzZSkKKyAgICAgICAgICAgICwgbV9uZXR3b3JrQWN0aXZpdHkoTmV0d29ya0Fj
dGl2aXR5VHJhY2tlcjo6TGFiZWw6OkxvYWRSZXNvdXJjZSkKKyAgICAgICAgeworICAgICAgICB9
CisKKyAgICAgICAgdWludDY0X3QgbV9wYWdlSUQ7CisgICAgICAgIFJlc291cmNlTG9hZElkZW50
aWZpZXIgbV9yZXNvdXJjZUlEOworICAgICAgICBib29sIG1faXNSb290QWN0aXZpdHk7CisgICAg
ICAgIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIgbV9uZXR3b3JrQWN0aXZpdHk7CisgICAgfTsKKwor
ICAgIHZvaWQgc3RvcEFsbE5ldHdvcmtBY3Rpdml0eVRyYWNraW5nKCk7CisgICAgdm9pZCBzdG9w
QWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmdGb3JQYWdlKHVpbnQ2NF90IHBhZ2VJRCk7CisgICAg
c2l6ZV90IGZpbmRSb290TmV0d29ya0FjdGl2aXR5KHVpbnQ2NF90IHBhZ2VJRCk7CisgICAgc2l6
ZV90IGZpbmROZXR3b3JrQWN0aXZpdHlUcmFja2VyKFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVz
b3VyY2VJRCk7CisKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8TmV0d29ya1NvY2tldFN0cmVhbT4+IG1fbmV0d29y
a1NvY2tldFN0cmVhbXM7CiAgICAgSGFzaE1hcDxSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBSZWZQ
dHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPj4gbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzOwogICAg
IEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVmZXJlbmNlPj4g
bV9ibG9iRGF0YUZpbGVSZWZlcmVuY2VzOworICAgIFZlY3RvcjxSZXNvdXJjZU5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI+IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnM7CiAKICAgICBIYXNoTWFwPFJl
c291cmNlTG9hZElkZW50aWZpZXIsIE5ldHdvcmtMb2FkSW5mb3JtYXRpb24+IG1fbmV0d29ya0xv
YWRJbmZvcm1hdGlvbkJ5SUQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCmluZGV4IDlhNWE0ZjIxNTYwZGE2N2U4YTdmMGJlNjFlNTViNmM3ZDE3MTZjNDcuLmY0
ZWM2MzMxMWY3N2EzYmU2NzE4N2I4OTZkNTJhMDE3OGJhZjcxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjYsNiArMjYsNyBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUGVy
Zm9ybVN5bmNocm9ub3VzTG9hZChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
IHJlc291cmNlTG9hZFBhcmFtZXRlcnMpIC0+IChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9y
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4gZGF0YSkg
RGVsYXllZAogICAgIExvYWRQaW5nKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycykKICAgICBSZW1vdmVMb2FkSWRlbnRpZmllcih1aW50
NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKQorICAgIFBhZ2VMb2FkQ29tcGxldGVkKHVpbnQ2
NF90IHdlYlBhZ2VJRCkKICAgICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2NF90IHJlc291cmNlTG9h
ZElkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogICAgIFByZWZldGNoRE5TKFN0cmluZyBob3N0bmFt
ZSkKICAgICBQcmVjb25uZWN0VG8odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4
IDU1ZGNiMDUwOTdiODI2MzZlMmJmN2ZhYjg2Y2UyYmI5MjYzNDg2YzUuLjJkMzU0YWQ5YzcwNDky
Mzg1OGI3OGFlZGM1MGI1MGUzMDFkOWE1M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUmVmPE5ldHdv
cmtEYXRhVGFzaz4gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXQKICAgICAgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmNyZWF0
ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5jb250ZW50
U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuYmxvYkZpbGVSZWZlcmVuY2VzKTsKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNl
c3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IHBhcmFtZXRlcnMud2ViUGFnZUlELCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5KTsKKyAgICBy
ZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFt
ZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJzLndlYlBhZ2VJ
RCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50
U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ks
IHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFy
YW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSwgcGFyYW1ldGVycy5uZXR3b3JrQWN0aXZpdHlU
cmFja2VyKTsKICNlbmRpZgogI2lmIFVTRShTT1VQKQogICAgIHJldHVybiBOZXR3b3JrRGF0YVRh
c2tTb3VwOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFt
ZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5n
UG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBwYXJhbWV0
ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5k
ZXggNTNjNDdmOGQ2MjNhNzQwMmIyMDkwMjM1ZGRkYmI3Mzc3ZmE4ZjZhOS4uZmQwYTZhOTlkNmVh
MGY0NTU4ZDBiZDYyODc4ZTljNGE0OGNmYmU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgpAQCAtNTAsNiArNTEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0NlcnRp
ZmljYXRlSW5mbyB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0
YUZpbGVSZWZlcmVuY2U+PiBibG9iRmlsZVJlZmVyZW5jZXM7CiAgICAgUHJlY29ubmVjdE9ubHkg
c2hvdWxkUHJlY29ubmVjdE9ubHkgeyBQcmVjb25uZWN0T25seTo6Tm8gfTsKKyAgICBzdGQ6Om9w
dGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXI7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggM2IwZmYyMDE4NTExNTQ0NWJhODFlODcwYjQy
OTUwNTdkNTM2ZGI5MC4uMDc3YmQ3M2IwNDNjODBjMTE0NmMzNDFiZTQ5MTM1YTU5NWM4MjhjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTI5OCw2ICsyOTgsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29y
a1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJgogICAgIGZvciAoYXV0
byYgc2NoZW1lIDogcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9u
bHlJZkNhblJlcXVlc3QpCiAgICAgICAgIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25s
eUlmQ2FuUmVxdWVzdChzY2hlbWUpOwogCisgICAgbV90cmFja05ldHdvcmtBY3Rpdml0eSA9IHBh
cmFtZXRlcnMudHJhY2tOZXR3b3JrQWN0aXZpdHk7CisKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNz
LCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzOiBQcmVzZW50
aW5nIHByb2Nlc3MgPSAlZCIsIHRoaXMsIFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNhdGlvblBJ
RCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCmluZGV4IGNlNDEyYjQ1OTI4NmIzNjlkZjEyY2QwOGYzMzM4NWFkOGM5ZGRkZTkuLmI5NjFh
YmNiMDA5ZmQyMTJiZTE1OTY2NmIzYTE0MGE0NDI4MGYzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE2Miw2ICsxNjIsOCBAQCBwdWJs
aWM6CiAgICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXImIG5ldHdvcmtDb250ZW50UnVs
ZUxpc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjsg
fQogI2VuZGlmCiAKKyAgICBib29sIHRyYWNrTmV0d29ya0FjdGl2aXR5KCkgY29uc3QgeyByZXR1
cm4gbV90cmFja05ldHdvcmtBY3Rpdml0eTsgfQorCiBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9j
ZXNzKCk7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7CkBAIC0zMDAsNiArMzAyLDggQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIE5ldHdvcmtDb250ZW50UnVs
ZUxpc3RNYW5hZ2VyIG1fTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI7CiAjZW5kaWYKKwor
ICAgIGJvb2wgbV90cmFja05ldHdvcmtBY3Rpdml0eSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYTg0
ZTQ5OGNmZmM0OTVhMDllZjZkOWZlOTgwZWFlMWM2YzcxOWY3Yy4uM2QyNGQyM2E0ZjUzMjNlMjg3
MDIyYTE3ODRkYzNlZWNmMTgyODM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKQEAgLTExNSw2ICsxMTUsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwg
dXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29sYXRlZDsKICAgICBlbmNvZGVyIDw8IHVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHVybFNjaGVt
ZXNSZWdpc3RlcmVkQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdDsKKworICAgIGVuY29kZXIg
PDwgdHJhY2tOZXR3b3JrQWN0aXZpdHk7CiB9CiAKIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCkBAIC0yNzUsNiArMjc3LDkgQEAgYm9vbCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgTmV0d29ya1Byb2MKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51cmxTY2hlbWVz
UmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFja05ldHdvcmtBY3Rp
dml0eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYzJiNjgwYjAyNTMwNGM1N2Y3ZjQwNGJj
YzJhMTlkYWMzYjg1NzExNC4uZDE0NzUzM2JhMjFlYTk4N2E3ZTk4OWRhMDE4Y2VlN2Q5OTc3YTUx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTMyLDYgKzEzMiw4IEBAIHN0
cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgVmVjdG9yPFN0cmlu
Zz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29sYXRlZDsKICAgICBWZWN0b3I8U3Ry
aW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3Q7CiAg
ICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkOworCisg
ICAgYm9vbCB0cmFja05ldHdvcmtBY3Rpdml0eSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBjMjNlY2E0NDJhODE1OTEyMDBkMTJlMzc3YmFh
NDJiM2E2NzI0NmUwLi5hYTczZjQ0ODRmMjU4YjEwNDllNDBlOTgzNjA2ODI1MzY1Y2YzYTkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwCkBAIC0xODQsNiArMTg0LDggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OnN0YXJ0KCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgbV9w
YXJhbWV0ZXJzLm5ldHdvcmtBY3Rpdml0eVRyYWNrZXIgPSBtX2Nvbm5lY3Rpb24tPnN0YXJ0VHJh
Y2tpbmdSZXNvdXJjZUxvYWQobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLmlk
ZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCkpOworCiAgICAgaWYgKG1fZGVmZXJzTG9hZGluZykg
ewogICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogTG9hZGluZyBpcyBkZWZl
cnJlZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0g
JWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkp
OwogICAgICAgICByZXR1cm47CkBAIC0zMjMsMTAgKzMyNSwxNSBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgic2V0RGVmZXJzTG9hZGluZzogZGVmZXJzID0gJWQsIGJ1dCBub3Ro
aW5nIHRvIGRvIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9kZWZlcnNMb2FkaW5nLCBtX3BhcmFtZXRlcnMu
d2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIpOwogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cCgpCit2b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgbV9jb25uZWN0aW9uLT5zdG9wVHJhY2tp
bmdSZXNvdXJjZUxvYWQobV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsCisgICAgICAgIHJlc3VsdCA9
PSBMb2FkUmVzdWx0OjpTdWNjZXNzID8gTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlv
bkNvZGU6OlN1Y2Nlc3MgOgorICAgICAgICByZXN1bHQgPT0gTG9hZFJlc3VsdDo6RmFpbHVyZSA/
IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkNvbXBsZXRpb25Db2RlOjpGYWlsdXJlIDoKKyAgICAg
ICAgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNvZGU6Ok5vbmUpOworCiAgICAg
bV9idWZmZXJpbmdUaW1lci5zdG9wKCk7CiAKICAgICBpbnZhbGlkYXRlU2FuZGJveEV4dGVuc2lv
bnMoKTsKQEAgLTM1OSw3ICszNjYsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJv
cnQoKQogICAgICAgICBtX25ldHdvcmtMb2FkLT5jYW5jZWwoKTsKICAgICB9CiAKLSAgICBjbGVh
bnVwKCk7CisgICAgY2xlYW51cChMb2FkUmVzdWx0OjpDYW5jZWwpOwogfQogCiBzdGF0aWMgYm9v
bCBhcmVGcmFtZUFuY2VzdG9yc1NhbWVTaXRlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mIGZyYW1lQW5jZXN0b3JP
cmlnaW5zKQpAQCAtNTMxLDcgKzUzOCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvCiAKICAg
ICB0cnlTdG9yZUFzQ2FjaGVFbnRyeSgpOwogCi0gICAgY2xlYW51cCgpOworICAgIGNsZWFudXAo
TG9hZFJlc3VsdDo6U3VjY2Vzcyk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpk
aWRGYWlsTG9hZGluZyhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTU1MSw3ICs1NTgs
NyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCiAgICAgfSBlbHNlIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSkKICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZEZhaWxSZXNvdXJjZUxvYWQoZXJyb3IpLCBtZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpKTsKIAotICAgIGNsZWFudXAoKTsKKyAgICBjbGVhbnVwKExv
YWRSZXN1bHQ6OkZhaWx1cmUpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlk
QmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCkBAIC03NDYsNyArNzUzLDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJldHJpZXZlQ2FjaGVFbnRyeShzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya0NhY2hlOjoKICAgICBpZiAoaXNTeW5jaHJvbm91cygpKSB7CiAgICAgICAgIG1f
c3luY2hyb25vdXNMb2FkRGF0YS0+cmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKTsKICAgICAg
ICAgc2VuZFJlcGx5VG9TeW5jaHJvbm91c1JlcXVlc3QoKm1fc3luY2hyb25vdXNMb2FkRGF0YSwg
ZW50cnktPmJ1ZmZlcigpKTsKLSAgICAgICAgY2xlYW51cCgpOworICAgICAgICBjbGVhbnVwKExv
YWRSZXN1bHQ6OlN1Y2Nlc3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03ODAsNyAr
Nzg3LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlUHJvY2Vzc2luZ0Nh
Y2hlZEVudHJ5QWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgaWYgKHJldHJpZXZlZEFsbCkgewogICAgICAgICAgICAgICAgICAgICBsb2Fk
ZXItPnNlbmRSZXN1bHRGb3JDYWNoZUVudHJ5KFdURk1vdmUoZW50cnkpKTsKLSAgICAgICAgICAg
ICAgICAgICAgbG9hZGVyLT5jbGVhbnVwKCk7CisgICAgICAgICAgICAgICAgICAgIGxvYWRlci0+
Y2xlYW51cChMb2FkUmVzdWx0OjpTdWNjZXNzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgfQpAQCAtNzg5LDcgKzc5Niw3IEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpjb250aW51ZVByb2Nlc3NpbmdDYWNoZWRFbnRyeUFmdGVyRGlkUmVjZWl2ZVJl
c3BvbnNlCiAKICAgICBzZW5kUmVzdWx0Rm9yQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiAK
LSAgICBjbGVhbnVwKCk7CisgICAgY2xlYW51cChMb2FkUmVzdWx0OjpTdWNjZXNzKTsKIH0KIAog
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlbmRSZXN1bHRGb3JDYWNoZUVudHJ5KHN0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiBlbnRyeSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDg3Njk3
MDhjMGEyMDBkZDI2MWJmMTZmZjkyNjY5ZThhMjM2NDU0OGEuLjAwOWZmOWIwMDJlMDY1NzVhMDU1
NjE0MTJhNGNmYmJmMzFhMTE5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMTM0LDcgKzEzNCwxMyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc3RhcnROZXR3b3JrTG9hZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgRmlyc3RMb2FkKTsKICAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CiAK
LSAgICB2b2lkIGNsZWFudXAoKTsKKyAgICBlbnVtIGNsYXNzIExvYWRSZXN1bHQgeworICAgICAg
ICBVbmtub3duLAorICAgICAgICBTdWNjZXNzLAorICAgICAgICBGYWlsdXJlLAorICAgICAgICBD
YW5jZWwKKyAgICB9OworICAgIHZvaWQgY2xlYW51cChMb2FkUmVzdWx0KTsKICAgICAKICAgICB2
b2lkIHBsYXRmb3JtRGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKTsKIApAQCAtMTUzLDcgKzE1OSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHNhbml0aXplUmVzcG9uc2VJZlBvc3NpYmxlKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlw
ZSk7CiAKLSAgICBjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBtX3BhcmFtZXRl
cnM7CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJzOwogCiAg
ICAgUmVmPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb247CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0FjdGl2
aXR5VHJhY2tlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ1ODM2ZDVlMTUxMWU0
MzE4NzQ0NGJjNDIxNzAwYjUwNTYxM2E3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0FjdGl2aXR5VHJhY2tlckNvY29hLm1tCkBA
IC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKKworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpOZXR3b3JrQWN0
aXZpdHlUcmFja2VyKExhYmVsIGxhYmVsLCBEb21haW4gZG9tYWluKQorICAgIDogbV9kb21haW4o
ZG9tYWluKQorICAgICwgbV9sYWJlbChsYWJlbCkKKyAgICAsIG1fbmV0d29ya0FjdGl2aXR5KGFk
b3B0TlMobndfYWN0aXZpdHlfY3JlYXRlKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX2RvbWFpbiks
IHN0YXRpY19jYXN0PHVpbnQzMl90PihtX2xhYmVsKSkpKQoreworfQorCitOZXR3b3JrQWN0aXZp
dHlUcmFja2VyOjp+TmV0d29ya0FjdGl2aXR5VHJhY2tlcigpCit7Cit9CisKK3ZvaWQgTmV0d29y
a0FjdGl2aXR5VHJhY2tlcjo6c2V0UGFyZW50KE5ldHdvcmtBY3Rpdml0eVRyYWNrZXImIHBhcmVu
dCkKK3sKKyAgICBBU1NFUlQobV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOworICAgIEFTU0VSVChw
YXJlbnQubV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOworICAgIG53X2FjdGl2aXR5X3NldF9wYXJl
bnRfYWN0aXZpdHkobV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCksIHBhcmVudC5tX25ldHdvcmtBY3Rp
dml0eS5nZXQoKSk7Cit9CisKK3ZvaWQgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c3RhcnQoKQor
eworICAgIEFTU0VSVChtX25ldHdvcmtBY3Rpdml0eS5nZXQoKSk7CisgICAgbndfYWN0aXZpdHlf
YWN0aXZhdGUobV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOworfQorCit2b2lkIE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI6OmNvbXBsZXRlKENvbXBsZXRpb25Db2RlIGNvZGUpCit7CisgICAgaWYgKG1f
aXNDb21wbGV0ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1faXNDb21wbGV0ZWQgPSB0cnVl
OworCisgICAgQVNTRVJUKG1fbmV0d29ya0FjdGl2aXR5LmdldCgpKTsKKyAgICBhdXRvIHJlYXNv
biA9CisgICAgICAgIGNvZGUgPT0gQ29tcGxldGlvbkNvZGU6Ok5vbmUgPyBud19hY3Rpdml0eV9j
b21wbGV0aW9uX3JlYXNvbl9ub25lIDoKKyAgICAgICAgY29kZSA9PSBDb21wbGV0aW9uQ29kZTo6
U3VjY2VzcyA/IG53X2FjdGl2aXR5X2NvbXBsZXRpb25fcmVhc29uX3N1Y2Nlc3MgOgorICAgICAg
ICBjb2RlID09IENvbXBsZXRpb25Db2RlOjpGYWlsdXJlID8gbndfYWN0aXZpdHlfY29tcGxldGlv
bl9yZWFzb25fZmFpbHVyZSA6CisgICAgICAgIG53X2FjdGl2aXR5X2NvbXBsZXRpb25fcmVhc29u
X2ludmFsaWQ7CisgICAgbndfYWN0aXZpdHlfY29tcGxldGVfd2l0aF9yZWFzb24obV9uZXR3b3Jr
QWN0aXZpdHkuZ2V0KCksIHJlYXNvbik7CisgICAgbV9uZXR3b3JrQWN0aXZpdHkuY2xlYXIoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBIQVZFKE5XX0FDVElWSVRZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IGMzNWMzYWY1Zjc1MTkyZTI5NmVkMjMyMzBlNzYwNTIy
Y2RkZDY0MzIuLmE1YjdjZmY5M2FkOTRjZWQ1MjI0NTM3YWE4OGNkYjNkNGIxMjE3MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNr
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2lGaUFz
c2VydGlvbkhvbGRlci5oIgpAQCAtNDEsOSArNDIsOSBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNv
Y29hOwogY2xhc3MgTmV0d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0Rh
dGFUYXNrIHsKICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBz
ZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQs
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJD
b3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdT
bmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVj
b25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtE
YXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tD
bGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZp
bmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25u
ZWN0T25seSwgc3RkOjpvcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0
aXZpdHlUcmFja2VyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29y
a0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQs
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBzaG91bGRQcmVjb25uZWN0T25seSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBO
ZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBh
Z2VJRCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxk
Q29udGVudEVuY29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5LCBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKSk7CiAg
ICAgfQogCiAgICAgfk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC04MSw3ICs4Miw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdv
cmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBX
ZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSk7CisgICAgTmV0d29y
a0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250
ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5
LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5l
Y3RPbmx5LCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKIAogICAgIGJv
b2wgdHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKICAgICB2b2lk
IGFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChO
U1VSTFJlcXVlc3QqJiwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggNGI5NDFhNWJlMjNiYjFh
YTA2ZjhlOTk4MWNlMTM4MjI2ZGY2NDI0MS4uOGNiZjQ4ZGIzNWY4NzY2OTRjZDdjZWRjNDA4OTRl
OWNhMDBhYTdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC01NSw2ICs1NSwxMCBAQCBAcHJv
cGVydHkgKHJlYWR3cml0ZSkgQk9PTCBfaXNUb3BMZXZlbE5hdmlnYXRpb247CiBAZW5kCiAjZW5k
aWYKIAorI2lmIEhBVkUoTldfQUNUSVZJVFkpCisjaW1wb3J0IDxDRk5ldHdvcmsvQ0ZOU1VSTENv
bm5lY3Rpb24uaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogI2lmIFVTRShDUkVE
RU5USUFMX1NUT1JBR0VfV0lUSF9ORVRXT1JLX1NFU1NJT04pCkBAIC0xNzUsNyArMTc5LDcgQEAg
c3RhdGljIHZvaWQgdXBkYXRlVGFza1dpdGhGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzKE5T
VVJMU2Vzc2lvbkRhdGFUYXNrKiB0YXMKICNlbmRpZgogfQogCi1OZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtE
YXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNv
cmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNv
bm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQorTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5l
dHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
V2l0aENyZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJD
b3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0
T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgc3RkOjpvcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlU
cmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29ya0RhdGFUYXNrKHNl
c3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgLCBt
X2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTI2Nyw2ICsyNzEs
MTEgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtT
ZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICAgICAgICAgbV90YXNrLmdldCgpLnByaW9y
aXR5ID0gdG9OU1VSTFNlc3Npb25UYXNrUHJpb3JpdHkocmVxdWVzdC5wcmlvcml0eSgpKTsKIAog
ICAgIHVwZGF0ZVRhc2tXaXRoRmlyc3RQYXJ0eUZvclNhbWVTaXRlQ29va2llcyhtX3Rhc2suZ2V0
KCksIHJlcXVlc3QpOworCisjaWYgSEFWRShOV19BQ1RJVklUWSkKKyAgICBpZiAobmV0d29ya0Fj
dGl2aXR5VHJhY2tlcikKKyAgICAgICAgbV90YXNrLmdldCgpLl9ud19hY3Rpdml0eSA9IG5ldHdv
cmtBY3Rpdml0eVRyYWNrZXIudmFsdWUoKS5nZXQoKTsKKyNlbmRpZgogfQogCiBOZXR3b3JrRGF0
YVRhc2tDb2NvYTo6fk5ldHdvcmtEYXRhVGFza0NvY29hKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAK
aW5kZXggYmFjZmZhN2FkMTYyNjYwN2UyMzJlOGRkOWY5MmRmYWVhYmVkNjVlMC4uNmQ4OGEwZjcz
MzgyNjliNDIzZTk3ZmMzMjkyOGU5YzQ1OTE5MzkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAK
QEAgLTEyOSw2ICsxMjksNyBAQCBSZWY8UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb246OmNvcHkoKQogICAgIGNvcHktPm1fcHJlc2VudGluZ0FwcGxpY2F0
aW9uUElEID0gdGhpcy0+bV9wcmVzZW50aW5nQXBwbGljYXRpb25QSUQ7CiAgICAgY29weS0+bV9w
cm9jZXNzU3dhcHNPbk5hdmlnYXRpb24gPSB0aGlzLT5tX3Byb2Nlc3NTd2Fwc09uTmF2aWdhdGlv
bjsKICAgICBjb3B5LT5tX3Byb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgPSB0aGlz
LT5tX3Byb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXI7CisgICAgY29weS0+bV90cmFj
a05ldHdvcmtBY3Rpdml0eSA9IHRoaXMtPm1fdHJhY2tOZXR3b3JrQWN0aXZpdHk7CiAKICAgICBy
ZXR1cm4gY29weTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCAzZGMyYjE4MmJmYjA5OWFlMGY2
YTNiNzc5ZGZlMDM4MzUxZTY5OWNlLi45MTEwNWQzZjE0ZTY2ZWE3NWZjMmE0Y2IyYzI1ZTA5OTZi
YTkyMThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC0xNDEsNiArMTQxLDkgQEAgcHVibGljOgog
ICAgIGJvb2wgcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcigpIGNvbnN0IHsgcmV0
dXJuIG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcjsgfQogICAgIHZvaWQgc2V0
UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihib29sIHN3YXBzKSB7IG1fcHJvY2Vz
c1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lciA9IHN3YXBzOyB9CiAKKyAgICBib29sIHRyYWNr
TmV0d29ya0FjdGl2aXR5KCkgY29uc3QgeyByZXR1cm4gbV90cmFja05ldHdvcmtBY3Rpdml0eTsg
fQorICAgIHZvaWQgc2V0VHJhY2tOZXR3b3JrQWN0aXZpdHkoYm9vbCB0cmFjaykgeyBtX3RyYWNr
TmV0d29ya0FjdGl2aXR5ID0gdHJhY2s7IH0KKwogcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxk
SGF2ZUxlZ2FjeURhdGFTdG9yZSB7IGZhbHNlIH07CiAKQEAgLTE3NCw2ICsxNzcsNyBAQCBwcml2
YXRlOgogICAgIFByb2Nlc3NJRCBtX3ByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCB7IGdldEN1cnJl
bnRQcm9jZXNzSUQoKSB9OwogICAgIGJvb2wgbV9wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24geyBm
YWxzZSB9OwogICAgIGJvb2wgbV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fdHJhY2tOZXR3b3JrQWN0aXZpdHkgeyBmYWxzZSB9OwogCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIFdURjo6U3RyaW5nIG1fY3REYXRhQ29ubmVjdGlvblNlcnZp
Y2VUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0Q29uZmlndXJhdGlvblJlZi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcAppbmRleCBmNzg5NmNlNTE1ZWM2ZTNlZDRhM2Ri
ODY1ZmYzMjZhNDk2OGVjMTFlLi4yY2FjYzA1YzQyMTEyZWY4NjNlOGZjYjY5YThmMDhhYmZlOTE1
NzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRD
b25maWd1cmF0aW9uUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcApAQCAtMTc3LDMgKzE3NywxMyBAQCB2b2lkIFdL
Q29udGV4dENvbmZpZ3VyYXRpb25TZXRQcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVy
KFdLQ29udGV4dENvbmZpZwogewogICAgIHRvSW1wbChjb25maWd1cmF0aW9uKS0+c2V0UHJvY2Vz
c1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihzd2Fwcyk7CiB9CisKK2Jvb2wgV0tDb250ZXh0
Q29uZmlndXJhdGlvblRyYWNrTmV0d29ya0FjdGl2aXR5KFdLQ29udGV4dENvbmZpZ3VyYXRpb25S
ZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gdG9JbXBsKGNvbmZpZ3VyYXRpb24pLT50
cmFja05ldHdvcmtBY3Rpdml0eSgpOworfQorCit2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25T
ZXRUcmFja05ldHdvcmtBY3Rpdml0eShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3Vy
YXRpb24sIGJvb2wgdHJhY2spCit7CisgICAgdG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5zZXRUcmFj
a05ldHdvcmtBY3Rpdml0eSh0cmFjayk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKaW5kZXggNzdhZTE3
MTM3ZTU3MjBmY2ExNTQ4NWE1YzBlNWQ0M2NjNTRhODZkMS4uZjUxMmM1NWRkODY0ZTQ3ZTc5NmY4
YjhjM2QzNzYyOTIwNTAwMDIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaApAQCAtNzQsNiArNzQsOSBA
QCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0UHJvY2Vzc1N3YXBzT25O
YXZpZ2F0aW9uKFdLQ29udGV4dENvbmZpZwogV0tfRVhQT1JUIGJvb2wgV0tDb250ZXh0Q29uZmln
dXJhdGlvblByb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIoV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENvbmZp
Z3VyYXRpb25TZXRQcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyKFdLQ29udGV4dENv
bmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgYm9vbCBzd2Fwcyk7CiAKK1dLX0VYUE9SVCBi
b29sIFdLQ29udGV4dENvbmZpZ3VyYXRpb25UcmFja05ldHdvcmtBY3Rpdml0eShXS0NvbnRleHRD
b25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pOworV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0
Q29uZmlndXJhdGlvblNldFRyYWNrTmV0d29ya0FjdGl2aXR5KFdLQ29udGV4dENvbmZpZ3VyYXRp
b25SZWYgY29uZmlndXJhdGlvbiwgYm9vbCB0cmFjayk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKaW5kZXggMmExMzcyOGJiOWMy
ZTUwNThiZDA3YTlkYjBjZDY3NjljZWZmMDNhOC4uMzA3NWNmMWY5ZDhiMTk3NGFkYTVjYzIxMDY4
MTc2MTYwODM3OGExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApAQCAtNTksNiAr
NTksNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAcHJv
cGVydHkgKG5vbmF0b21pYykgcGlkX3QgcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIHByb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IHByb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCB0cmFja05ldHdvcmtBY3Rpdml0eSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5tbQppbmRleCBjZDI5ZGE4NjMwMmQ5NTQzNWRjYWYyZGNkY2MyNzY0ZTU5NTlhZDE3Li4x
ZTNiZDc5N2FlYjRlNzkzYzk5MmQ0NWNjOTNlYTNkZDExNWFkZjJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24ubW0KQEAgLTI0Nyw2ICsyNDcsMTYgQEAgLSAoQk9PTClwcm9jZXNzU3dh
cHNPbldpbmRvd09wZW5XaXRoT3BlbmVyCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24tPnByb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIoKTsKIH0KIAorLSAoQk9P
TCl0cmFja05ldHdvcmtBY3Rpdml0eQoreworICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLT50cmFja05ldHdvcmtBY3Rpdml0eSgpOworfQorCistICh2b2lkKXNldFRyYWNrTmV0
d29ya0FjdGl2aXR5OihCT09MKXRyYWNrCit7CisgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi0+c2V0VHJhY2tOZXR3b3JrQWN0aXZpdHkodHJhY2spOworfQorCiAjaWYgUExBVEZPUk0oSU9T
KQogLSAoTlNTdHJpbmcgKilDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAyYmE0NDBhOTMyMTI3OThi
ZTA5NTFhNGUwM2RjNzNjODliMjliYTZmLi4zZmU4NmMxMWE2YzhlOTAxYjg0NjE3ZmQyYjFhOTE2
MTg0YWJlMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CkBAIC00OTQsNiArNDk0LDggQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6
OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdpdGgKICAgICBwYXJhbWV0
ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZCA9IGNvcHlUb1ZlY3RvcihtX3Nj
aGVtZXNUb1JlZ2lzdGVyQXNDT1JTRW5hYmxlZCk7CiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVz
UmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QgPSBjb3B5VG9WZWN0b3IobV9z
Y2hlbWVzVG9SZWdpc3RlckFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpOwogCisgICAgcGFy
YW1ldGVycy50cmFja05ldHdvcmtBY3Rpdml0eSA9IG1fY29uZmlndXJhdGlvbi0+dHJhY2tOZXR3
b3JrQWN0aXZpdHkoKTsKKwogICAgIC8vIEFkZCBhbnkgcGxhdGZvcm0gc3BlY2lmaWMgcGFyYW1l
dGVycwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKHBhcmFtZXRlcnMpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA4ODJiYjhhYWRiMmRjMDExODRjNGMzZmI3N2ZiN2YzNmU1ZmY5YWI0Li4yZDY0YWZiYzJlNmQx
NDMwYzhhODMwMjIzZmIxYWZmMDE5MTMwNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMTEsMTAgKzEyMTEsMTMgQEAKIAkJNTMw
MjU4NDUxRENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVwbGF5ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMDI1ODM4MURDQkJEMUQw
MERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlcGxheWVyLmggKi87IH07CiAJCTUzMDI1ODQ2MURD
QkJEMjIwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMwMjU4MzkxRENCQkQxRDAwREE4OUMy
IC8qIE5ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAgKi87IH07CiAJCTUzMDI1ODQ3MURDQkJEMjIw
MERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMDI1ODNBMURDQkJEMUQwMERBODlDMiAvKiBOZXR3
b3JrRGF0YVRhc2tSZXBsYXkuaCAqLzsgfTsKKwkJNTMxNTg3NkMyMDc2Qjc2MjAwNEJGOUYzIC8q
IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMTU4NzZCMjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyQ29jb2EubW0gKi87IH07CiAJCTUzMjE1OTUzMURCQUU3MTgwMDU0QUEz
QyAvKiBOZXR3b3JrU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MzIxNTk1MjFEQkFFNkZDMDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb24u
Y3BwICovOyB9OwogCQk1MzIxNTk1NDFEQkFFNzFEMDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNr
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjE1
OTUxMURCQUU2RkMwMDU0QUEzQyAvKiBOZXR3b3JrRGF0YVRhc2suY3BwICovOyB9OwogCQk1MzIx
NTk1NTFEQkFFNzI5MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMyMTU5NTAxREJBRTZENzAwNTRB
QTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EuaCAqLzsgfTsKIAkJNTMyMTU5NTYxREJBRTcyRDAw
NTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIxNTk0RjFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29y
a0RhdGFUYXNrQ29jb2EuaCAqLzsgfTsKKwkJNTM1QkNCOTIyMDY5QzQ5QzAwQ0NDRTAyIC8qIE5l
dHdvcmtBY3Rpdml0eVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUzNUJDQjkwMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlU
cmFja2VyLmggKi87IH07CisJCTUzNzlEQjcyMjA3RTk0NzAwMDdEOEMzMyAvKiBOZXR3b3JrQWN0
aXZpdHlUcmFja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzRjNDQUE1MjA2QzQ0M0UwMDg2NDkwRSAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
LmNwcCAqLzsgfTsKIAkJNTNCQTQ3RDAxREMyRUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRhVGFz
a0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTM5RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwICovOyB9
OwogCQk1M0JBNDdEMTFEQzJFRjVFMDA0REY0QUQgLyogTmV0d29ya0RhdGFUYXNrQmxvYi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM5RUI1NDcxREMy
RUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCAqLzsgfTsKIAkJNTNERUEzNjYx
RERFNDIzMTAwRTgyNjQ4IC8qIGpzb24uaHBwIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTNERUEzNjUxRERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBwICov
OyB9OwpAQCAtMzY1OSwxMyArMzY2MiwxNiBAQAogCQk1MzAyNTgzODFEQ0JCRDFEMDBEQTg5QzIg
LyogTmV0d29ya0NhcHR1cmVSZXBsYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBOZXR3b3JrQ2FwdHVyZVJlcGxheWVyLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL05ldHdvcmtDYXB0dXJlUmVwbGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTMwMjU4MzkxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrRGF0YVRhc2tSZXBs
YXkuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBs
YXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzAyNTgzQTFEQ0JCRDFEMDBE
QTg5QzIgLyogTmV0d29ya0RhdGFUYXNrUmVwbGF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza1JlcGxheS5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTMxNTg3NkIyMDc2QjcxMzAwNEJGOUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXJDb2NvYS5tbTsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0NvY29hLmg7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MzIxNTk1MDFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya1Nl
c3Npb25Db2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrU2Vz
c2lvbkNvY29hLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMjE1OTUxMURCQUU2RkMwMDU0
QUEzQyAvKiBOZXR3b3JrRGF0YVRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gTmV0d29ya0RhdGFUYXNrLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMjE1OTUyMURC
QUU2RkMwMDU0QUEzQyAvKiBOZXR3b3JrU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrU2Vzc2lvbi5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzNUJD
QjkwMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtBY3Rpdml0eVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM5
RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA7IHBh
dGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTM5RUI1NDcxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRh
VGFza0Jsb2IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0RhdGFU
YXNrQmxvYi5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0RFQTM2NTFEREU0MjJFMDBFODI2NDggLyog
anNvbi5ocHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBuYW1lID0ganNvbi5ocHA7IHBh
dGggPSBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL2pzb24uaHBwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1M0YzQ0FBNTIwNkM0NDNFMDA4NjQ5MEUgLyogTmV0d29ya0FjdGl2aXR5VHJh
Y2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrQWN0
aXZpdHlUcmFja2VyLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRy
YWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzUwRjMyQTIwMzJENEU1
MDAzODkzNDcgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFt
ZSA9IExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9Mb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNE
S1JPT1Q7IH07CiAJCTU3NjA4MjhCMjAyOTg1NDIwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01l
c3Nlbmdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDcmVkZW50aWFsc01lc3Nlbmdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzYwODI4QzIwMjk4NTQyMDAxMTY2NzggLyogV2Vi
Q3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ3JlZGVudGlh
bHNNZXNzZW5nZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQwMCw2ICs2
NDA2LDggQEAKIAkJCQkyREE5NDRCQjE4ODUxMUREMDBFRDg2REIgLyogaW9zICovLAogCQkJCTUx
MENDN0RDMTYxMzhFMjkwMEQwM0VEMyAvKiBtYWMgKi8sCiAJCQkJNDEzMDc1OTcxREU4NEVENzAw
MzlFQzY5IC8qIHdlYnJ0YyAqLywKKwkJCQk1M0YzQ0FBNTIwNkM0NDNFMDA4NjQ5MEUgLyogTmV0
d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgKi8sCisJCQkJNTM1QkNCOTAyMDY5QzQ5QzAwQ0NDRTAy
IC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCAqLywKIAkJCQk1MTNBMTY0OTE2MzBBOUJGMDA1
RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovLAogCQkJCTUxM0Ex
NjRBMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICov
LAogCQkJCTUxM0ExNjRCMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKQEAgLTY5MjYsNiArNjkzNCw3IEBACiAJCTdFQzRGMEY4
MThFNEE5MjIwMDgwNTZBRiAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNTMxNTg3NkIyMDc2QjcxMzAwNEJGOUYzIC8qIE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXJDb2NvYS5tbSAqLywKIAkJCQk1MzIxNTk0RjFEQkFFNkQ3MDA1NEFBM0MgLyog
TmV0d29ya0RhdGFUYXNrQ29jb2EuaCAqLywKIAkJCQk1Q0JDOUI4QjFDNjUyNTczMDBBOEZEQ0Yg
LyogTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gKi8sCiAJCQkJN0VDNEYwRjkxOEU0QTk0NTAwODA1
NkFGIC8qIE5ldHdvcmtQcm9jZXNzQ29jb2EubW0gKi8sCkBAIC05MDE1LDYgKzkwMjQsNyBAQAog
CQkJCTFBNkZCRDI4MTFFNjlCQzIwMERCMTM3MSAvKiBOZXRzY2FwZVBsdWdpbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE0QTlDNTYxMkI4MTZDRjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9k
dWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE1ODg5MjExRUU3MDQwMDA2MUI4ODIgLyogTmV0
c2NhcGVQbHVnaW5TdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTUzNUJDQjkyMjA2OUM0OUMw
MENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MTc5OEM3QTE2RTY4MTg4MDAyNDAxMzkgLyogTmV0d29ya0Jsb2JSZWdpc3RyeS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTQ0MzZFQ0MxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTQ5RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNo
ZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKQEAgLTEwNjgyLDYgKzEwNjkyLDcgQEAKIAkJ
CQkyRDUwMzY1RTFCQ0M3OTNGMDBFMjBCQjMgLyogTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkRBOTQ0OUUxODg0RTRGMDAwRUQ4NkRCIC8qIE5hdGl2ZVdl
YktleWJvYXJkRXZlbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMDJCRkYxRTEyNTE1MDJF
MDA5Q0NCRUEgLyogTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTFDOUVCQTVDMjA4N0U3NEYwMDA1NDQyOSAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50SU9TLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzFFQTI1RDIxMzRGNzhDMDAwNUIxNDUyIC8qIE5hdGl2ZVdl
Yk1vdXNlRXZlbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREE5NDQ5RjE4ODRFNEYwMDBF
RDg2REIgLyogTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCURG
NThDNjM2MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0xMDY5Myw2ICsxMDcwNCw4IEBACiAJCQkJMUE0QTlDNTUxMkI4MTZDRjAw
OEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
NEE5QzlBMTJCODIxQ0QwMDhGRTk4NCAvKiBOZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBQTU4ODkzMTFFRTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBsdWdp
blN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1Mzc5REI3MjIwN0U5NDcwMDA3RDhDMzMg
LyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MzE1ODc2
QzIwNzZCNzYyMDA0QkY5RjMgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlckNvY29hLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTE3OThDNzkxNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVn
aXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0MzZFQ0ExQTBEMDNGQTAwRUFEMjA0IC8q
IE5ldHdvcmtDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlENDBEOTFBRDNGQjIxMDA2
NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0x
MDcwOCw3ICsxMDcyMSw2IEBACiAJCQkJODMyQUUyNTMxQkUyRThDRDAwRkFBRTEwIC8qIE5ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODNC
RENDQjkxQUM1RkRCNjAwM0Y2NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTQ0MzZFRDAxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZVN0
b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMUM5RUJBNUMyMDg3RTc0RjAwMDU0NDI5IC8q
IE5hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk4MzEwNDI4QzFC
RDZCNjZGMDBBNzE1RTQgLyogTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTMwMjU4M0QxRENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJl
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMwMjU4NDAxRENCQkQyMjAwREE4OUMyIC8q
IE5ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRl
eCA4NmI5NTA5ZjQ0MjkwY2NhZTJmZjMzYTllZjk4NTY4NjkwMjU1N2RmLi44YmEwNjBlZmQyMTk0
YzQwNjQ2MGEyMTJjYWZmZjA1MjA3N2E0ZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC01MjIsNiArNTIy
LDExIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
RnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgfQogfQogCit2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZCh1aW50NjRfdCB3ZWJQYWdlSUQpCit7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpQYWdlTG9hZENvbXBsZXRlZCh3ZWJQYWdlSUQpLCAwKTsKK30KKwogc3RhdGljIHVpbnQ2NF90
IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlm
aWVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5oCmluZGV4IDY1Nzg2MzMwYzJhOGJjY2UxNzRhZTQ5OTQ4ODUyMmRmOGUz
ZTk1MjQuLjk2OTI1YmMwNTgxNmI5MGJkM2NiZGU2YTY4MTQ5YTVlZDkwMDNjZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
aApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBsb2FkUmVzb3VyY2Uo
V2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+
JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpG
cmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGlj
eSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRl
ck1hcCYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgVmVjdG9yPGNoYXI+JiBkYXRhKSBmaW5hbDsKKyAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVk
KHVpbnQ2NF90IHdlYlBhZ2VJRCkgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRlciosIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwCmluZGV4IGM2MGIyZTQ1MzM1YzNhMDQ2YzRlMjc3Y2I3ZTRiZTY3NjhjN2NjYzkuLjY0MWU2
N2MzNmViZjQ4NmM3N2Q0MDBjNjE0YTAwNjVjYzQ0ZDVkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAKQEAgLTExMSw2ICsxMTEsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGUK
ICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShmcmFtZUxvYWRl
ci5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6
RG9Ob3RVc2UgOiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBlcnJvciwgcmVzcG9uc2Us
IGRhdGEpOwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cGFnZUxvYWRDb21w
bGV0ZWQodWludDY0X3QgLyp3ZWJQYWdlSUQqLykKK3sKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6OnNjaGVkdWxlUGx1Z2luU3RyZWFtTG9hZChGcmFtZSYgZnJhbWUsIE5ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBOZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlcjo6Y3JlYXRlKGZyYW1lLCBjbGllbnQsIFdURk1vdmUocmVxdWVz
dCksIFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSAoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYmIGxvYWRlcikg
bXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3Jl
U3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCA4ODI4YjU0OThhY2VkMzY4
YzU2YWI4YTg1NTczOTM3MzI0NWYwYWRiLi43NzBkNjNlZmM2YWM5ODkxNzBkZTQ2ZWE3YzM4NTVh
MjBhYzY1ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
Q29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTUxLDYgKzUxLDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0
cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxv
bmcsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENyZWRl
bnRpYWxQb2xpY3ksIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6
OkhUVFBIZWFkZXJNYXAmLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYpIGZpbmFsOworICAgIHZvaWQgcGFnZUxvYWRDb21w
bGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKSBmaW5hbDsKKwogICAgIHZvaWQgcmVtb3ZlKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyKikgZmluYWw7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyKiwgYm9vbCkgZmluYWw7CiAgICAgdm9pZCBjcm9zc09yaWdp
blJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqLCBjb25zdCBXZWJDb3Jl
OjpVUkwmIHJlZGlyZWN0VVJMKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338814</attachid>
            <date>2018-04-25 16:06:06 -0700</date>
            <delta_ts>2018-04-30 17:15:17 -0700</delta_ts>
            <desc>Rebase to fix merge conflicts.</desc>
            <filename>bug-184838-20180425160539.patch</filename>
            <type>text/plain</type>
            <size>72390</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDM0ZDY4MjdkNDQzMDA1YTQ0NGI3Nzc2
YWIzYjljOWE5MGUzMzc3NzQuLjUwZGQ0ZTA0ODg4MzY3OGEzNDM3ZGY3M2FiZjA1YjVkMDkyMjdj
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDQtMjQgIEtlaXRoIFJvbGxpbiAgPGtyb2xs
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBmYWNpbGl0eSBmb3IgdHJhY2tpbmcgdGltZXMg
YW5kIHJlc3VsdHMgb2YgcGFnZSBhbmQgcmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0ODM4CisgICAgICAgIHJkYXI6Ly9w
cm9ibGVtLzM2NTQ4OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRGVmaW5lIFVTRV9ORVRXT1JLX0FDVElWSVRZIHRvIGVuYWJsZS9kaXNhYmxlIHRo
ZQorICAgICAgICBOZXR3b3JrQWN0aXZpdHlUcmFja2VyIGZhY2lsaXR5LiBEZWZpbmUgSEFWRV9O
V19BQ1RJVklUWSB0byBlbmFibGUgYQorICAgICAgICBwYXJ0aWN1bGFyIGltcGxlbWVudGF0aW9u
IG9mIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoK
KwogMjAxOC0wNC0yNSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAg
TWFrZSBhIGJldHRlciBmbGFnIGZvciBzeXN0ZW0gcHJldmlldywgYW5kIGRpc2FibGUgaXQgd2hl
cmUgbmVjZXNzYXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRkM2NhYmZkN2FkYzY5Zjk4YmI0YWYxZjIxYTA1
YTdlYjFjMjVkMy4uN2I0YjZiMjZjNGQwYjY5MTg4NDNjNTQ0M2M1OTU2ZWU3OWQwOTRjNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE4LTA0LTI0ICBLZWl0aCBSb2xsaW4gIDxrcm9s
bGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZmFjaWxpdHkgZm9yIHRyYWNraW5nIHRpbWVz
IGFuZCByZXN1bHRzIG9mIHBhZ2UgYW5kIHJlc291cmNlIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDgzOAorICAgICAgICByZGFyOi8v
cHJvYmxlbS8zNjU0ODk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVwZGF0ZSBGcmFtZVByb2dyZXNzVHJhY2tlciB0byBzZW5kIHRoZSBuZWNlc3Nh
cnkgcGFnZSBsb2FkIHN0YXJ0L3N0b3AKKyAgICAgICAgc2lnbmFscyBzbyB0aGF0IHdlIGNhbiB0
cmFjayB0aGUgZW50aXJlIHBhZ2UgbG9hZCBhdCBhIG5ldHdvcmsgbGV2ZWwuCisgICAgICAgIEFk
ZCBhbiBlbXB0eSBvdmVycmlkZSBvZiB0aGUgcHVyZSB2aXJ0dWFsCisgICAgICAgIExvYWRlclN0
cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZCBtZXRob2QuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LiBUaGVyZSBpcyBubyB0ZXN0YWJsZSBlZmZlY3QgZnJvbSB0aGVzZSBjaGFuZ2VzLiBPbgorICAg
ICAgICBDb2NvYSwgbWVhc3VyYWJsZSBjaGFuZ2VzIHRha2UgcGxhY2UgaW4gYW5vdGhlciAobm9u
LVdlYktpdCkgcHJvY2Vzcy4KKyAgICAgICAgT24gbm9uLUNvY29hIHN5c3RlbXMsIHRoaXMgZmFj
aWxpdHkgaXMgY3VycmVudGx5IGRpc2FibGVkLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpGcmFtZVByb2dyZXNzVHJh
Y2tlcjo6RnJhbWVQcm9ncmVzc1RyYWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OkZyYW1lUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc0NvbXBsZXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlcjo6aW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6aW5pdEZvclN5bnRoZXNpemVkRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJT
dHJhdGVneS5oOgorCiAyMDE4LTA0LTI1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ10gSW1wbGVtZW50IExheW91dDo6Q29udGFpbmVyIGZ1bmN0aW9ucy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOGRmNDRkNzg0M2YxOTBhOGM5MmZiZWQ4OWQ2NzQ0ZjcyN2NiMDFmOC4uNzVl
OWE5NjFjOWU4MjgyM2Y0M2I3MTY5NGJlODVmMmM1MjcyM2I2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw5MCBAQAorMjAxOC0wNC0yNCAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIGZhY2lsaXR5IGZvciB0cmFja2luZyB0aW1lcyBhbmQgcmVzdWx0cyBvZiBw
YWdlIGFuZCByZXNvdXJjZSBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODQ4MzgKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMzY1NDg5NzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgTmV0
d29ya0FjdGl2aXR5VHJhY2tlci4gVGhlIGlkZWEgYmVoaW5kIHRoaXMgZmFjaWxpdHkgaXMgdG8g
Y3JlYXRlCisgICAgICAgIGFuZCBkZXN0cm95IHRoZW0gYXJvdW5kIG5ldHdvcmtpbmcgYWN0aXZp
dHkgdGhhdCB3ZSB3YW50IHRvIHRyYWNrIGZvcgorICAgICAgICB0aGUgcHVycG9zZSBvZiBtZWFz
dXJpbmcgb3ZlcmFsbCBuZXR3b3JrIGhlYWx0aC4gVGhleSBjYW4gYmUgY3JlYXRlZAorICAgICAg
ICBhcm91bmQgdGhlIGxvYWRpbmcgb2YgcGFnZXMgb3IgaW5kaXZpZHVhbCByZXNvdXJjZXMsIGFu
ZCBjYW4gYmUKKyAgICAgICAgYXJyYW5nZWQgaW4gYSBwYXJlbnQvY2hpbGQgaGllcmFyY2h5IHRv
IGluZGljYXRlIHdoYXQgcGFnZXMgdGhlCisgICAgICAgIHJlc291cmNlcyBhcmUgcGFydCBvZi4g
VGhlIE5ldHdvcmtBY3Rpdml0eSB0cmFja2VyIHRyYWNrcyBsb2FkIHRpbWVzCisgICAgICAgIGFu
ZCByZXN1bHRzLiBPbiBDb2NvYSwgaXQgY2FuIGJlIGludGVncmF0ZWQgd2l0aCBDRk5ldHdvcmsg
aW4gb3JkZXIgdG8KKyAgICAgICAgYXNzb2NpYXRlIFdlYktpdCBhY3Rpdml0eSB3aXRoIGxvdy1s
ZXZlbCBuZXR3b3JraW5nIGFjdGl2aXR5LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcik6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6On5OZXR3b3JrQWN0aXZpdHlU
cmFja2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c2V0UGFy
ZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpjb21wbGV0ZSk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Z2V0KToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwYWdlTG9hZENvbXBs
ZXRlZCk6CisgICAgICAgIChXZWJLaXQ6Om5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRW5hYmxlZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydFRy
YWNraW5nUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnN0b3BUcmFja2luZ1Jlc291cmNlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJh
Y2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
c3RvcEFsbE5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRm9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpmaW5kUm9vdE5ldHdvcmtBY3Rpdml0eSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpmaW5kTmV0
d29ya0FjdGl2aXR5VHJhY2tlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6UmVzb3VyY2VO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRh
c2s6OmNyZWF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0
ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6dHJhY2tOZXR3b3JrQWN0aXZpdHkgY29uc3QpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpz
dGFydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZXRyaWV2ZUNhY2hlRW50
cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlUHJv
Y2Vzc2luZ0NhY2hlZEVudHJ5QWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbTogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6Ok5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjp+TmV0d29ya0Fj
dGl2aXR5VHJhY2tlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6
OnNldFBhcmVudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OnN0
YXJ0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Y29tcGxldGUp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tD
b2NvYSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uY3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuY3BwOgor
ICAgICAgICAoV0tDb250ZXh0Q29uZmlndXJhdGlvblRyYWNrTmV0d29ya0FjdGl2aXR5KToKKyAg
ICAgICAgKFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRUcmFja05ldHdvcmtBY3Rpdml0eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLm1tOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gdHJhY2tOZXR3
b3JrQWN0aXZpdHldKToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNl
dFRyYWNrTmV0d29ya0FjdGl2aXR5Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3b3Jr
UHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnBhZ2VMb2FkQ29tcGxldGVkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKwogMjAxOC0wNC0y
NSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
ZW50aXRsZW1lbnRzIGFuZCBzYW5kYm94IGNvbmZpZ3VyYXRpb25zIGluIFdlYktpdCBhZnRlciBy
MjMwNzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDY4OGI4NGUwMTJkOTc3YzkwM2QzNDkwZmI4
NmUyNDIwZDg1NzBmNWMuLjQ0MjY0OGM4YmUxMGNmNDkzMWY0ZjIzZmM0NzgxNDBmYWMxN2Q0NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDQtMjQgIEtlaXRo
IFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBmYWNpbGl0eSBmb3Ig
dHJhY2tpbmcgdGltZXMgYW5kIHJlc3VsdHMgb2YgcGFnZSBhbmQgcmVzb3VyY2UgbG9hZGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0ODM4Cisg
ICAgICAgIHJkYXI6Ly9wcm9ibGVtLzM2NTQ4OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIGVtcHR5IG92ZXJyaWRlIG9mIHRoZSBwdXJl
IHZpcnR1YWwKKyAgICAgICAgTG9hZGVyU3RyYXRlZ3k6OnBhZ2VMb2FkQ29tcGxldGVkIG1ldGhv
ZC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHA6CisgICAgICAgIChXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnBhZ2VMb2FkQ29tcGxldGVk
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaDoK
KwogMjAxOC0wNC0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXNlIE5ldHdvcmtMb2FkQ2hlY2tlciB0byBoYW5kbGUgc3luY2hyb25vdXMgSFRUUCBsb2Fk
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtLmgKaW5kZXggZDliYTE3NjY2Y2ZmODljMzQ0ZTVhZTk2N2MzNDBlMGJmMWFhYjJl
ZS4uOWU5NzE1ZGViYWYzMTJkZmZmNjkzNjgyNmExN2Y1NDg2NDJjYzVlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
CkBAIC0xMjcxLDYgKzEyNzEsMTQgQEAKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxudy9hY3Rpdml0eS5oPikKKyNkZWZpbmUg
SEFWRV9OV19BQ1RJVklUWSAxCisjZW5kaWYKKworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisjZGVm
aW5lIFVTRV9ORVRXT1JLX0FDVElWSVRZIDEKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAjZGVmaW5lIEhBVkVfU0VDX1RSVVNUX1NFUklBTElaQVRJT04gMQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA5N2NmMGI2OGUxMTRmMTdhNTZmMDQxYWE3
YWIwODRmMzUwMDJmMGQ1Li4wN2NmYmY0NDExNzI0Y2M5ZTk3NGUxYmE1NmZmNjY1MGM2NmU0MmM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIyNiw4ICsyMjYsOSBA
QCBzdHJ1Y3QgRm9yYmlkUHJvbXB0c1Njb3BlIHsKIGNsYXNzIEZyYW1lTG9hZGVyOjpGcmFtZVBy
b2dyZXNzVHJhY2tlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgZXhwbGljaXQgRnJhbWVQcm9ncmVzc1RyYWNrZXIoRnJhbWUmIGZyYW1lKQorICAgIGV4cGxp
Y2l0IEZyYW1lUHJvZ3Jlc3NUcmFja2VyKEZyYW1lJiBmcmFtZSwgRnJhbWVMb2FkZXJDbGllbnQm
IGNsaWVudCkKICAgICAgICAgOiBtX2ZyYW1lKGZyYW1lKQorICAgICAgICAsIG1fY2xpZW50KGNs
aWVudCkKICAgICAgICAgLCBtX2luUHJvZ3Jlc3MoZmFsc2UpCiAgICAgewogICAgIH0KQEAgLTI1
MiwxMCArMjUzLDE0IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fZnJhbWUucGFnZSgpKTsK
ICAgICAgICAgbV9pblByb2dyZXNzID0gZmFsc2U7CiAgICAgICAgIG1fZnJhbWUucGFnZSgpLT5w
cm9ncmVzcygpLnByb2dyZXNzQ29tcGxldGVkKG1fZnJhbWUpOworCisgICAgICAgIGlmIChtX2Ns
aWVudC5wYWdlSUQoKSkKKyAgICAgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJT
dHJhdGVneSgpLT5wYWdlTG9hZENvbXBsZXRlZChtX2NsaWVudC5wYWdlSUQoKS52YWx1ZSgpKTsK
ICAgICB9CiAKIHByaXZhdGU6CiAgICAgRnJhbWUmIG1fZnJhbWU7CisgICAgRnJhbWVMb2FkZXJD
bGllbnQmIG1fY2xpZW50OwogICAgIGJvb2wgbV9pblByb2dyZXNzOwogfTsKIApAQCAtMzEzLDcg
KzMxOCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmluaXQoKQogICAgIG1fc3RhdGVNYWNoaW5lLmFk
dmFuY2VUbyhGcmFtZUxvYWRlclN0YXRlTWFjaGluZTo6RGlzcGxheWluZ0luaXRpYWxFbXB0eURv
Y3VtZW50KTsKIAogICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBtX2NsaWVudC5jcmVhdGVOZXR3
b3JraW5nQ29udGV4dCgpOwotICAgIG1fcHJvZ3Jlc3NUcmFja2VyID0gc3RkOjptYWtlX3VuaXF1
ZTxGcmFtZVByb2dyZXNzVHJhY2tlcj4obV9mcmFtZSk7CisgICAgbV9wcm9ncmVzc1RyYWNrZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPEZyYW1lUHJvZ3Jlc3NUcmFja2VyPihtX2ZyYW1lLCBtX2NsaWVu
dCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmluaXRGb3JTeW50aGVzaXplZERvY3VtZW50KGNv
bnN0IFVSTCYpCkBAIC0zMzgsNyArMzQzLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6aW5pdEZvclN5
bnRoZXNpemVkRG9jdW1lbnQoY29uc3QgVVJMJikKICAgICBtX25lZWRzQ2xlYXIgPSB0cnVlOwog
CiAgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IG1fY2xpZW50LmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KCk7Ci0gICAgbV9wcm9ncmVzc1RyYWNrZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEZyYW1lUHJv
Z3Jlc3NUcmFja2VyPihtX2ZyYW1lKTsKKyAgICBtX3Byb2dyZXNzVHJhY2tlciA9IHN0ZDo6bWFr
ZV91bmlxdWU8RnJhbWVQcm9ncmVzc1RyYWNrZXI+KG1fZnJhbWUsIG1fY2xpZW50KTsKIH0KIAog
dm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNjdkMzBjZjExZjZhYmZhNzU5OGU4YzRj
YjhjOWE4ODFhMjc3YjM0NS4uMmY1ZWZlYjZiODZiOGEwNjY5ZTM0MWViNWU0NjkxNTkxMTAzODA0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTU4LDYgKzU4LDcg
QEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgTG9hZGVyU3RyYXRlZ3kgewogcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBsb2FkUmVzb3VyY2UoRnJhbWUmLCBDYWNoZWRSZXNvdXJjZSYsIFJlc291cmNl
UmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ2xpZW50Q3JlZGVudGlhbFBv
bGljeSwgY29uc3QgRmV0Y2hPcHRpb25zJiwgY29uc3QgSFRUUEhlYWRlck1hcCYsIFJlc291cmNl
RXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKHVpbnQ2NF90IHdlYlBhZ2VJRCkgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZShSZXNvdXJjZUxvYWRlciopID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRlciosIGJvb2wpID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CmluZGV4IGI5Mzk4MjAwYzY5ZTg2ZjE0ZGM1OTZmYmVhNTJhMDU0NzcwNDk1
Y2QuLmYxZDAzZTQ3MzZiZTI0YjcyYzY4OTM5YTlmZTg1OTg1OWE1Yjg4M2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtOTcsMTQgKzk3LDcgQEAgc2V0KFdlYktpdF9TWVNURU1fSU5DTFVERV9ESVJF
Q1RPUklFUwogKQogCiBzZXQoV2ViS2l0X1NPVVJDRVMKLSAgICBOZXR3b3JrUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwCi0KLSAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWQuY3BwCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5jcHAKLSAgICBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvUGVuZGluZ0Rvd25sb2FkLmNwcAot
Ci0gICAgTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcAotCisg
ICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAKICAgICBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCiAgICAgTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCkBAIC0xMjIsNiArMTE1LDE0IEBAIHNl
dChXZWJLaXRfU09VUkNFUwogICAgIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcAogICAgIE5l
dHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcAogCisgICAgTmV0d29ya1Byb2Nlc3MvQ29v
a2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAorCisgICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFn
ZXIuY3BwCisgICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAK
KworICAgIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKKwog
ICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKICAgICBOZXR3
b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAKICAgICBOZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJL
aXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IGMzNzlhMTdlOTdjYjQyNjM3
ZTdjZjQzYTRkZDdkOThkMzFhOTFjOTAuLjk2ZWM0YWNkMWY3ZDA5NzQxNDk4ZjFlZjNmY2I0MDEx
MjZhMTgyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0
LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29u
ZmlnCkBAIC0xMTIsNyArMTEyLDcgQEAgV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTX01BQ09TX1NJ
TkNFXzEwMTMgPSAtd2Vha19mcmFtZXdvcmsgU2FmYXJpU2FmZUJyb3dzaW5nOwogV0tfVUlLSVRf
TERGTEFHUyA9ICQoV0tfVUlLSVRfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7CiBXS19VSUtJ
VF9MREZMQUdTX2NvY29hdG91Y2ggPSAtZnJhbWV3b3JrIFVJS2l0OwogCi1GUkFNRVdPUktfQU5E
X0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3Jr
IENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBo
aWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsg
SW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5ICQoV0tfQUND
RVNTSUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FTU0VSVElPTl9T
RVJWSUNFU19MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPUkVfUERGX0xERkxB
R1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZM
QUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfSU9TVVJGQUNFX0xERkxB
R1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERG
TEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAk
KFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19VSUtJ
VF9MREZMQUdTKTsKK0ZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFt
ZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5k
YXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3
b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1l
d29yayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAk
KFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdTKSAkKFdL
X0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPUkVfUERGX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNU
SU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NF
UlZJQ0VTX0xERkxBR1MpICQoV0tfSU9TVVJGQUNFX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xE
RkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VT
VEFMVF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAk
KFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKTsKIAogLy8gUHJl
dmVudCBDKysgc3RhbmRhcmQgbGlicmFyeSBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIg
cmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJv
bHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDll
eGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDliYWRfYWxsb2MgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bVB2
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
LCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJF
T1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43
V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzFFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAt
V2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFYVNFRG4g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJD
b3JlMTJQb2xpY3lBY3Rpb25FRUVjbEVTMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9f
Wk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRTRzd2FwRVJTNF8g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNv
cmUxMlBvbGljeUFjdGlvbkVFRUMxRVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsIC1XbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMkVSS1M0XyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29y
ZTEyUG9saWN5QWN0aW9uRUVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0
M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFRDJFdiAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5
QWN0aW9uRUVFYVNFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWlRWTlN0M19f
MTE3YmFkX2Z1bmN0aW9uX2NhbGxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZmYmU5ZDA1
MGEzMzI5OGQwZjliOWRlOGY0YWFiMWY0NGU3ZDNmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAKQEAgLTAs
MCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgorCisjaWYgIUhBVkUoTldfQUNUSVZJVFkpCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpOZXR3b3JrQWN0aXZp
dHlUcmFja2VyKExhYmVsLCBEb21haW4pCit7Cit9CisKK05ldHdvcmtBY3Rpdml0eVRyYWNrZXI6
On5OZXR3b3JrQWN0aXZpdHlUcmFja2VyKCkKK3sKK30KKwordm9pZCBOZXR3b3JrQWN0aXZpdHlU
cmFja2VyOjpzZXRQYXJlbnQoTmV0d29ya0FjdGl2aXR5VHJhY2tlciYpCit7Cit9CisKK3ZvaWQg
TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c3RhcnQoKQoreworfQorCit2b2lkIE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI6OmNvbXBsZXRlKENvbXBsZXRpb25Db2RlKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFVTRShORVRXT1JLX0FDVElWSVRZKSAmJiAhSEFWRShO
V19BQ1RJVklUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0FjdGl2aXR5VHJhY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQWN0aXZpdHlUcmFja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwMDY1YzgxOTI3YWY0MDVjMmQ4NWY3
YzE4OTNmNGExMGQ4MGY2ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgorCisjaWYg
SEFWRShOV19BQ1RJVklUWSkKKyNpbmNsdWRlIDxudy9wcml2YXRlLmg+CisjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBOZXR3
b3JrQWN0aXZpdHlUcmFja2VyIHsKK3B1YmxpYzoKKyAgICBlbnVtIGNsYXNzIERvbWFpbiB7Cisg
ICAgICAgIC8vIFRoZXNlIGFyZSBkZWZpbmVkIHRvIG1hdGNoIGFuYWxvZ291cyB2YWx1ZXMgdXNl
ZCBpbiB0aGUgRGFyd2luIGltcGxlbWVudGF0aW9uLgorICAgICAgICAvLyBJZiB0aGV5IGFyZSBy
ZW51bWJlcmVkLCBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIHdpbGwgbmVlZCB0byBiZSBhZGRlZCB0
byBtYXAKKyAgICAgICAgLy8gdGhlbSB0byB0aGUgRGFyd2luLXNwZWNpZmljIHZhbHVlcy4KKwor
ICAgICAgICBJbnZhbGlkID0gMCwKKyAgICAgICAgV2ViS2l0ID0gMTYsCisgICAgfTsKKworICAg
IGVudW0gY2xhc3MgTGFiZWwgeworICAgICAgICAvLyBUaGVzZSBhcmUgb3VycyB0byBkZWZpbmUs
IGJ1dCBvbmNlIGRlZmluZWQsIHRoZXkgc2hvdWxkbid0IGNoYW5nZS4gVGhleSBjYW4KKyAgICAg
ICAgLy8gYmUgb2Jzb2xlc2NlZCBhbmQgcmVwbGFjZWQgd2l0aCBvdGhlciBjb2RlcywgYnV0IHBy
ZXZpb3VzbHktZGVmaW5lZCBjb2RlcworICAgICAgICAvLyBzaG91bGQgbm90IGJlIHJlbnVtYmVy
ZWQuIFByZXZpb3VzbHkgYXNzaWduZWQgdmFsdWVzIHNob3VsZCBub3QgYmUgcmUtdXNlZC4KKwor
ICAgICAgICBJbnZhbGlkID0gMCwKKyAgICAgICAgTG9hZFBhZ2UgPSAxLAorICAgICAgICBMb2Fk
UmVzb3VyY2UgPSAyLAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIENvbXBsZXRpb25Db2RlIHsK
KyAgICAgICAgVW5kZWZpbmVkLAorICAgICAgICBOb25lLAorICAgICAgICBTdWNjZXNzLAorICAg
ICAgICBGYWlsdXJlLAorICAgIH07CisKKyAgICBOZXR3b3JrQWN0aXZpdHlUcmFja2VyKExhYmVs
LCBEb21haW4gPSBEb21haW46OldlYktpdCk7CisgICAgfk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIo
KTsKKworICAgIHZvaWQgc2V0UGFyZW50KE5ldHdvcmtBY3Rpdml0eVRyYWNrZXImKTsKKyAgICB2
b2lkIHN0YXJ0KCk7CisgICAgdm9pZCBjb21wbGV0ZShDb21wbGV0aW9uQ29kZSk7CisKKyNpZiBI
QVZFKE5XX0FDVElWSVRZKQorICAgIG53X2FjdGl2aXR5X3QgZ2V0KCkgeyByZXR1cm4gbV9uZXR3
b3JrQWN0aXZpdHkuZ2V0KCk7IH0KKyNlbmRpZgorCitwcml2YXRlOgorI2lmIEhBVkUoTldfQUNU
SVZJVFkpCisgICAgRG9tYWluIG1fZG9tYWluOworICAgIExhYmVsIG1fbGFiZWw7CisgICAgYm9v
bCBtX2lzQ29tcGxldGVkIHsgZmFsc2UgfTsKKyAgICBSZXRhaW5QdHI8bndfYWN0aXZpdHlfdD4g
bV9uZXR3b3JrQWN0aXZpdHk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBjMTM5MDNkZjkxODNjOGNiZjlhNmQ4OWQ4
MDAxNTYwZDhhMWI4NDQ0Li43MTNhOWMzMjIwODAzODI1YjU3NTk5ZGY2NWZlMWNjZWQzNjYwMjhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0
YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQmxv
YlJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgpAQCAtNjEsNiArNjIsOSBAQAogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRih0cnVlLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisjZGVmaW5l
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9S
X0lGKHRydWUsIE5ldHdvcmssICIlcCAtIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjoi
IGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFJlZjxO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIpCkBAIC0xODAsNiArMTg0LDExIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCiAgICAgICAgIGxvYWRlci0+YWJvcnQoKTsK
ICAgICBBU1NFUlQobV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzLmlzRW1wdHkoKSk7CiAKKyAgICAv
LyBBbGwgdHJhY2tlcnMgb2YgcmVzb3VyY2VzIHRoYXQgd2VyZSBpbiB0aGUgbWlkZGxlIG9mIGJl
aW5nIGxvYWRlZCB3ZXJlCisgICAgLy8gc3RvcHBlZCB3aXRoIHRoZSBhYm9ydCgpIGNhbGxzIGFi
b3ZlLCBidXQgd2Ugc3RpbGwgbmVlZCB0byBzd2VlcCB1cCB0aGUKKyAgICAvLyByb290IGFjdGl2
aXR5IHRyYWNrZXJzLgorICAgIHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZygpOworCiAg
ICAgTmV0d29ya0Jsb2JSZWdpc3RyeTo6c2luZ2xldG9uKCkuY29ubmVjdGlvblRvV2ViUHJvY2Vz
c0RpZENsb3NlKHRoaXMpOwogICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyh0aGlzKTsKIApAQCAtMjg3LDYgKzI5NiwxMSBA
QCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVMb2FkSWRlbnRpZmll
cihSZXNvdXJjZUxvYWRJZGVudGlmaWVyCiAgICAgQVNTRVJUKCFtX25ldHdvcmtSZXNvdXJjZUxv
YWRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOwogfQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpwYWdlTG9hZENvbXBsZXRlZCh1aW50NjRfdCB3ZWJQYWdlSUQpCit7Cisg
ICAgc3RvcEFsbE5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRm9yUGFnZSh3ZWJQYWdlSUQpOworfQor
CiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXREZWZlcnNMb2FkaW5nKFJl
c291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBkZWZlcnMpCiB7CiAgICAgUmVm
UHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gbG9hZGVyID0gbV9uZXR3b3JrUmVzb3VyY2VMb2Fk
ZXJzLmdldChpZGVudGlmaWVyKTsKQEAgLTUzMiw0ICs1NDYsMTI0IEBAIHZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpCiAgICAg
U2VjdXJpdHlQb2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOwogfQogCitzdGF0
aWMgYm9vbCBuZXR3b3JrQWN0aXZpdHlUcmFja2luZ0VuYWJsZWQoKQoreworI2lmIFVTRShORVRX
T1JLX0FDVElWSVRZKQorICAgIHJldHVybiBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkudHJh
Y2tOZXR3b3JrQWN0aXZpdHkoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9
CisKK3N0ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnN0YXJ0VHJhY2tpbmdSZXNvdXJjZUxvYWQodWludDY0X3QgcGFnZUlE
LCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQsIGJvb2wgaXNNYWluUmVzb3VyY2Up
Cit7CisgICAgaWYgKCFuZXR3b3JrQWN0aXZpdHlUcmFja2luZ0VuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIEVpdGhlciBnZXQgdGhlIGV4aXN0aW5nIHJv
b3QgYWN0aXZpdHkgdHJhY2tlciBmb3IgdGhpcyBwYWdlIG9yIGNyZWF0ZSBhCisgICAgLy8gbmV3
IG9uZSBpZiB0aGlzIGlzIHRoZSBtYWluIHJlc291cmNlLgorCisgICAgc2l6ZV90IHJvb3RBY3Rp
dml0eUluZGV4OworICAgIGlmIChpc01haW5SZXNvdXJjZSkgeworICAgICAgICAvLyBJZiB3ZSdy
ZSBsb2FkaW5nIGEgcGFnZSBmcm9tIHRoZSB0b3AsIG1ha2Ugc3VyZSBhbnkgdHJhY2tpbmcgb2YK
KyAgICAgICAgLy8gcHJldmlvdXMgYWN0aXZpdHkgZm9yIHRoaXMgcGFnZSBpcyBzdG9wcGVkLgor
CisgICAgICAgIHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZ0ZvclBhZ2UocGFnZUlEKTsK
KworICAgICAgICByb290QWN0aXZpdHlJbmRleCA9IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMu
c2l6ZSgpOworICAgICAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzLmNvbnN0cnVjdEFuZEFw
cGVuZChwYWdlSUQpOworICAgICAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW3Jvb3RBY3Rp
dml0eUluZGV4XS5tX25ldHdvcmtBY3Rpdml0eS5zdGFydCgpOworCisjaWYgSEFWRShOV19BQ1RJ
VklUWSkKKyAgICAgICAgQVNTRVJUKG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnNbcm9vdEFjdGl2
aXR5SW5kZXhdLm1fbmV0d29ya0FjdGl2aXR5LmdldCgpKTsKKyNlbmRpZgorICAgIH0gZWxzZSB7
CisgICAgICAgIHJvb3RBY3Rpdml0eUluZGV4ID0gZmluZFJvb3ROZXR3b3JrQWN0aXZpdHkocGFn
ZUlEKTsKKworICAgICAgICAvLyBUaGlzIGNvdWxkIGhhcHBlbiBpZiB0aGUgTmV0d29ya2luZyBw
cm9jZXNzIGNyYXNoZXMsIHRha2luZyBpdHMKKyAgICAgICAgLy8gcHJldmlvdXMgc3RhdGUgd2l0
aCBpdC4KKyAgICAgICAgaWYgKHJvb3RBY3Rpdml0eUluZGV4ID09IG5vdEZvdW5kKQorICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisgICAg
ICAgIEFTU0VSVChtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW3Jvb3RBY3Rpdml0eUluZGV4XS5t
X25ldHdvcmtBY3Rpdml0eS5nZXQoKSk7CisjZW5kaWYKKyAgICB9CisKKyAgICAvLyBDcmVhdGUg
YSB0cmFja2VyIGZvciB0aGUgbG9hZGluZyBvZiB0aGUgbmV3IHJlc291cmNlLCBzZXR0aW5nIHRo
ZSByb290CisgICAgLy8gYWN0aXZpdHkgdHJhY2tlciBhcyBpdHMgcGFyZW50LgorCisgICAgc2l6
ZV90IG5ld0FjdGl2aXR5SW5kZXggPSBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzLnNpemUoKTsK
KyAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzLmNvbnN0cnVjdEFuZEFwcGVuZChwYWdlSUQs
IHJlc291cmNlSUQpOworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisgICAgQVNTRVJUKG1fbmV0d29y
a0FjdGl2aXR5VHJhY2tlcnNbbmV3QWN0aXZpdHlJbmRleF0ubV9uZXR3b3JrQWN0aXZpdHkuZ2V0
KCkpOworI2VuZGlmCisKKyAgICBhdXRvJiBuZXdBY3Rpdml0eVRyYWNrZXIgPSBtX25ldHdvcmtB
Y3Rpdml0eVRyYWNrZXJzW25ld0FjdGl2aXR5SW5kZXhdOworICAgIG5ld0FjdGl2aXR5VHJhY2tl
ci5tX25ldHdvcmtBY3Rpdml0eS5zZXRQYXJlbnQobV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1ty
b290QWN0aXZpdHlJbmRleF0ubV9uZXR3b3JrQWN0aXZpdHkpOworICAgIG5ld0FjdGl2aXR5VHJh
Y2tlci5tX25ldHdvcmtBY3Rpdml0eS5zdGFydCgpOworCisgICAgcmV0dXJuIG5ld0FjdGl2aXR5
VHJhY2tlci5tX25ldHdvcmtBY3Rpdml0eTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6c3RvcFRyYWNraW5nUmVzb3VyY2VMb2FkKFJlc291cmNlTG9hZElkZW50aWZp
ZXIgcmVzb3VyY2VJRCwgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNvZGUgY29k
ZSkKK3sKKyAgICBpZiAoIW5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBhdXRvIGl0ZW1JbmRleCA9IGZpbmROZXR3b3JrQWN0aXZpdHlUcmFj
a2VyKHJlc291cmNlSUQpOworICAgIGlmIChpdGVtSW5kZXggPT0gbm90Rm91bmQpIHsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgInN0b3BUcmFja2luZ1Jlc291cmNlTG9hZDog
VW5hYmxlIHRvIGZpbmQgbmV0d29yayBhY3Rpdml0eSBmb3IgcmVzb3VyY2U6ICVkIiwgc3RhdGlj
X2Nhc3Q8aW50PihyZXNvdXJjZUlEKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1JbmRleF0ubV9uZXR3b3JrQWN0aXZpdHkuY29t
cGxldGUoY29kZSk7CisgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5yZW1vdmUoaXRlbUlu
ZGV4KTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RvcEFsbE5l
dHdvcmtBY3Rpdml0eVRyYWNraW5nKCkKK3sKKyAgICBpZiAoIW5ldHdvcmtBY3Rpdml0eVRyYWNr
aW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKHNpemVfdCBpdGVtSW5k
ZXggPSAwOyBpdGVtSW5kZXggPCBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzLnNpemUoKTsgKytp
dGVtSW5kZXgpCisgICAgICAgIG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnNbaXRlbUluZGV4XS5t
X25ldHdvcmtBY3Rpdml0eS5jb21wbGV0ZShOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpDb21wbGV0
aW9uQ29kZTo6Tm9uZSk7CisgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5jbGVhcigpOwor
fQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdG9wQWxsTmV0d29ya0Fj
dGl2aXR5VHJhY2tpbmdGb3JQYWdlKHVpbnQ2NF90IHBhZ2VJRCkKK3sKKyAgICBpZiAoIW5ldHdv
cmtBY3Rpdml0eVRyYWNraW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzaXpl
X3QgaXRlbUluZGV4ID0gbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5zaXplKCk7CisgICAgd2hp
bGUgKGl0ZW1JbmRleCA+IDApIHsKKyAgICAgICAgLS1pdGVtSW5kZXg7CisgICAgICAgIGlmICht
X25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1JbmRleF0ubV9wYWdlSUQgPT0gcGFnZUlEKSB7
CisgICAgICAgICAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1JbmRleF0ubV9uZXR3
b3JrQWN0aXZpdHkuY29tcGxldGUoTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNv
ZGU6Ok5vbmUpOworICAgICAgICAgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5yZW1vdmUo
aXRlbUluZGV4KTsKKyAgICAgICAgfQorICAgIH0KK30KKworc2l6ZV90IE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpmaW5kUm9vdE5ldHdvcmtBY3Rpdml0eSh1aW50NjRfdCBwYWdlSUQp
Cit7CisgICAgZm9yIChzaXplX3QgaXRlbUluZGV4ID0gMDsgaXRlbUluZGV4IDwgbV9uZXR3b3Jr
QWN0aXZpdHlUcmFja2Vycy5zaXplKCk7ICsraXRlbUluZGV4KSB7CisgICAgICAgIGlmIChtX25l
dHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1JbmRleF0ubV9pc1Jvb3RBY3Rpdml0eSAmJiBtX25l
dHdvcmtBY3Rpdml0eVRyYWNrZXJzW2l0ZW1JbmRleF0ubV9wYWdlSUQgPT0gcGFnZUlEKQorICAg
ICAgICAgICAgcmV0dXJuIGl0ZW1JbmRleDsKKyAgICB9CisKKyAgICByZXR1cm4gbm90Rm91bmQ7
Cit9CisKK3NpemVfdCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZmluZE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlEKQoreworICAg
IGZvciAoc2l6ZV90IGl0ZW1JbmRleCA9IDA7IGl0ZW1JbmRleCA8IG1fbmV0d29ya0FjdGl2aXR5
VHJhY2tlcnMuc2l6ZSgpOyArK2l0ZW1JbmRleCkgeworICAgICAgICBpZiAobV9uZXR3b3JrQWN0
aXZpdHlUcmFja2Vyc1tpdGVtSW5kZXhdLm1fcmVzb3VyY2VJRCA9PSByZXNvdXJjZUlEKQorICAg
ICAgICAgICAgcmV0dXJuIGl0ZW1JbmRleDsKKyAgICB9CisKKyAgICByZXR1cm4gbm90Rm91bmQ7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IGQ3MWRjM2M4MTYwN2Y4NzdiMWZkMGFkM2ZiYzE0MTRlMTBjZGQxN2IuLjc2NTUxNmNjYmFhZTQ0
OWFhNjFmYWE4ZWNmYjgyZTU2YmUwMzdkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkRvd25sb2FkSUQuaCIKKyNpbmNs
dWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtNRE5TUmVnaXN0ZXIu
aCIKICNpbmNsdWRlICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKQEAgLTExMSw2ICsxMTIsOSBAQCBw
dWJsaWM6CiAgICAgICAgIG1fbmV0d29ya0xvYWRJbmZvcm1hdGlvbkJ5SUQucmVtb3ZlKGlkZW50
aWZpZXIpOwogICAgIH0KIAorICAgIHN0ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tl
cj4gc3RhcnRUcmFja2luZ1Jlc291cmNlTG9hZCh1aW50NjRfdCBwYWdlSUQsIFJlc291cmNlTG9h
ZElkZW50aWZpZXIgcmVzb3VyY2VJRCwgYm9vbCBpc01haW5SZXNvdXJjZSk7CisgICAgdm9pZCBz
dG9wVHJhY2tpbmdSZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlE
LCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpDb21wbGV0aW9uQ29kZSk7CisKIHByaXZhdGU6CiAg
ICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyKTsKIApAQCAtMTMzLDYgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcmVjb25uZWN0
VG8odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzJiYpOwogCiAgICAgdm9pZCByZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxv
YWRJZGVudGlmaWVyKTsKKyAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKHVpbnQ2NF90IHdlYlBh
Z2VJRCk7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFJlc291cmNlTG9hZElkZW50aWZpZXIs
IGJvb2wpOwogICAgIHZvaWQgY3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKFJlc291cmNlTG9h
ZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlVSTCYgcmVkaXJlY3RVUkwpOwogICAgIHZvaWQg
c3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKQEAg
LTE4MCwxMSArMTg1LDQzIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgdm9pZCByZXNldE9yaWdpbkFjY2Vzc1do
aXRlbGlzdHMoKTsKIAorICAgIHN0cnVjdCBSZXNvdXJjZU5ldHdvcmtBY3Rpdml0eVRyYWNrZXIg
eworICAgICAgICBSZXNvdXJjZU5ldHdvcmtBY3Rpdml0eVRyYWNrZXIoKSA9IGRlZmF1bHQ7Cisg
ICAgICAgIFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcihjb25zdCBSZXNvdXJjZU5ldHdv
cmtBY3Rpdml0eVRyYWNrZXImKSA9IGRlZmF1bHQ7CisgICAgICAgIFJlc291cmNlTmV0d29ya0Fj
dGl2aXR5VHJhY2tlcihSZXNvdXJjZU5ldHdvcmtBY3Rpdml0eVRyYWNrZXImJikgPSBkZWZhdWx0
OworICAgICAgICBSZXNvdXJjZU5ldHdvcmtBY3Rpdml0eVRyYWNrZXIodWludDY0X3QgcGFnZUlE
KQorICAgICAgICAgICAgOiBtX3BhZ2VJRChwYWdlSUQpCisgICAgICAgICAgICAsIG1fcmVzb3Vy
Y2VJRCgwKQorICAgICAgICAgICAgLCBtX2lzUm9vdEFjdGl2aXR5KHRydWUpCisgICAgICAgICAg
ICAsIG1fbmV0d29ya0FjdGl2aXR5KE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkxhYmVsOjpMb2Fk
UGFnZSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgUmVzb3VyY2VOZXR3b3JrQWN0
aXZpdHlUcmFja2VyKHVpbnQ2NF90IHBhZ2VJRCwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNv
dXJjZUlEKQorICAgICAgICAgICAgOiBtX3BhZ2VJRChwYWdlSUQpCisgICAgICAgICAgICAsIG1f
cmVzb3VyY2VJRChyZXNvdXJjZUlEKQorICAgICAgICAgICAgLCBtX2lzUm9vdEFjdGl2aXR5KGZh
bHNlKQorICAgICAgICAgICAgLCBtX25ldHdvcmtBY3Rpdml0eShOZXR3b3JrQWN0aXZpdHlUcmFj
a2VyOjpMYWJlbDo6TG9hZFJlc291cmNlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICB1aW50NjRfdCBtX3BhZ2VJRDsKKyAgICAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBtX3Jl
c291cmNlSUQ7CisgICAgICAgIGJvb2wgbV9pc1Jvb3RBY3Rpdml0eTsKKyAgICAgICAgTmV0d29y
a0FjdGl2aXR5VHJhY2tlciBtX25ldHdvcmtBY3Rpdml0eTsKKyAgICB9OworCisgICAgdm9pZCBz
dG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmcoKTsKKyAgICB2b2lkIHN0b3BBbGxOZXR3b3Jr
QWN0aXZpdHlUcmFja2luZ0ZvclBhZ2UodWludDY0X3QgcGFnZUlEKTsKKyAgICBzaXplX3QgZmlu
ZFJvb3ROZXR3b3JrQWN0aXZpdHkodWludDY0X3QgcGFnZUlEKTsKKyAgICBzaXplX3QgZmluZE5l
dHdvcmtBY3Rpdml0eVRyYWNrZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlEKTsK
KwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAogICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxOZXR3b3JrU29ja2V0U3RyZWFtPj4gbV9uZXR3b3JrU29ja2V0U3Ry
ZWFtczsKICAgICBIYXNoTWFwPFJlc291cmNlTG9hZElkZW50aWZpZXIsIFJlZlB0cjxOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI+PiBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnM7CiAgICAgSGFzaE1hcDxT
dHJpbmcsIFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBtX2Jsb2JEYXRh
RmlsZVJlZmVyZW5jZXM7CisgICAgVmVjdG9yPFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tl
cj4gbV9uZXR3b3JrQWN0aXZpdHlUcmFja2VyczsKIAogICAgIEhhc2hNYXA8UmVzb3VyY2VMb2Fk
SWRlbnRpZmllciwgTmV0d29ya0xvYWRJbmZvcm1hdGlvbj4gbV9uZXR3b3JrTG9hZEluZm9ybWF0
aW9uQnlJRDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5k
ZXggOWE1YTRmMjE1NjBkYTY3ZThhN2YwYmU2MWU1NWI2YzdkMTcxNmM0Ny4uZjRlYzYzMzExZjc3
YTNiZTY3MTg3Yjg5NmQ1MmEwMTc4YmFmNzE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yNiw2ICsyNiw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBQZXJmb3JtU3luY2hy
b25vdXNMb2FkKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VM
b2FkUGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiBkYXRhKSBEZWxheWVkCiAg
ICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzKQogICAgIFJlbW92ZUxvYWRJZGVudGlmaWVyKHVpbnQ2NF90IHJlc291
cmNlTG9hZElkZW50aWZpZXIpCisgICAgUGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFn
ZUlEKQogICAgIFNldERlZmVyc0xvYWRpbmcodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgYm9vbCBkZWZlcnMpCiAgICAgUHJlZmV0Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQogICAgIFBy
ZWNvbm5lY3RUbyh1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5kZXggMTZiZmJkMmYw
ODIyYmE4MDNkNzU2ZjdmNWNhM2M5OWQzOWQ2YTE5Yi4uMDEwYmEwZjM4OTRmNTJhZDI3NGFkYTI1
NWM3ZTMwZGVmYzQ2OGEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTQsNyArNTQsNyBAQCBSZWY8TmV0d29ya0RhdGFUYXNr
PiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdAogICAgICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3JlYXRlKHNlc3Npb24s
IGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1Bv
bGljeSwgcGFyYW1ldGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xp
ZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMud2ViRnJhbWVJRCwgcGFyYW1ldGVy
cy53ZWJQYWdlSUQsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRl
cnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHksIHBhcmFtZXRlcnMuaXNNYWlu
RnJhbWVOYXZpZ2F0aW9uKTsKKyAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0
ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBwYXJhbWV0ZXJzLndlYlBhZ2VJRCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVu
dEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSwgcGFy
YW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24sIHBhcmFtZXRlcnMubmV0d29ya0FjdGl2aXR5
VHJhY2tlcik7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFU
YXNrU291cDo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJh
bWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmlu
Z1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJz
LmlzTWFpbkZyYW1lTmF2aWdhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCA1NTUxMjJiMTVmZGEwMTJlNTZk
MWRjODFlMTY4MjdlYjM3Y2Q0ZDNiLi45YzhjODQ1ZTA4NTAyZmFhNWJkY2NkYTYzZjVhNGJmZWI2
ZjlmNGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9i
RGF0YUZpbGVSZWZlcmVuY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0
aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC01MSw2ICs1
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzTWFpbkZyYW1lTmF2aWdhdGlvbiB7IGZhbHNlIH07
CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBibG9i
RmlsZVJlZmVyZW5jZXM7CiAgICAgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkg
eyBQcmVjb25uZWN0T25seTo6Tm8gfTsKKyAgICBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0
eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKaW5kZXggM2IwZmYyMDE4NTExNTQ0NWJhODFlODcwYjQyOTUwNTdkNTM2ZGI5MC4uMDc3YmQ3
M2IwNDNjODBjMTE0NmMzNDFiZTQ5MTM1YTU5NWM4MjhjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI5OCw2ICsyOTgsOCBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmJgogICAgIGZvciAoYXV0byYgc2NoZW1lIDogcGFyYW1ldGVy
cy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpCiAgICAg
ICAgIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChzY2hlbWUp
OwogCisgICAgbV90cmFja05ldHdvcmtBY3Rpdml0eSA9IHBhcmFtZXRlcnMudHJhY2tOZXR3b3Jr
QWN0aXZpdHk7CisKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzLCAiJXAgLSBOZXR3b3JrUHJvY2Vz
czo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzOiBQcmVzZW50aW5nIHByb2Nlc3MgPSAlZCIsIHRo
aXMsIFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGNlNDEyYjQ1OTI4
NmIzNjlkZjEyY2QwOGYzMzM4NWFkOGM5ZGRkZTkuLmI5NjFhYmNiMDA5ZmQyMTJiZTE1OTY2NmIz
YTE0MGE0NDI4MGYzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKQEAgLTE2Miw2ICsxNjIsOCBAQCBwdWJsaWM6CiAgICAgTmV0d29ya0NvbnRl
bnRSdWxlTGlzdE1hbmFnZXImIG5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyKCkgeyByZXR1
cm4gbV9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjsgfQogI2VuZGlmCiAKKyAgICBib29s
IHRyYWNrTmV0d29ya0FjdGl2aXR5KCkgY29uc3QgeyByZXR1cm4gbV90cmFja05ldHdvcmtBY3Rp
dml0eTsgfQorCiBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9jZXNzKCk7CiAgICAgfk5ldHdvcmtQ
cm9jZXNzKCk7CkBAIC0zMDAsNiArMzAyLDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ09OVEVO
VF9FWFRFTlNJT05TKQogICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIG1fTmV0d29y
a0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI7CiAjZW5kaWYKKworICAgIGJvb2wgbV90cmFja05ldHdv
cmtBY3Rpdml0eSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYTg0ZTQ5OGNmZmM0OTVhMDllZjZkOWZl
OTgwZWFlMWM2YzcxOWY3Yy4uM2QyNGQyM2E0ZjUzMjNlMjg3MDIyYTE3ODRkYzNlZWNmMTgyODM0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTExNSw2ICsxMTUsOCBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRB
c0Rpc3BsYXlJc29sYXRlZDsKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXND
T1JTRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDYW5EaXNw
bGF5T25seUlmQ2FuUmVxdWVzdDsKKworICAgIGVuY29kZXIgPDwgdHJhY2tOZXR3b3JrQWN0aXZp
dHk7CiB9CiAKIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBy
ZXN1bHQpCkBAIC0yNzUsNiArMjc3LDkgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Byb2MKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxh
eU9ubHlJZkNhblJlcXVlc3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC50cmFja05ldHdvcmtBY3Rpdml0eSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKaW5kZXggYzJiNjgwYjAyNTMwNGM1N2Y3ZjQwNGJjYzJhMTlkYWMzYjg1NzExNC4uZDE0
NzUzM2JhMjFlYTk4N2E3ZTk4OWRhMDE4Y2VlN2Q5OTc3YTUxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaApAQCAtMTMyLDYgKzEzMiw4IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVy
ZWRBc0Rpc3BsYXlJc29sYXRlZDsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0
ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3Q7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJs
U2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkOworCisgICAgYm9vbCB0cmFja05ldHdvcmtB
Y3Rpdml0eSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cAppbmRleCBjMjNlY2E0NDJhODE1OTEyMDBkMTJlMzc3YmFhNDJiM2E2NzI0NmUwLi5hYTczZjQ0
ODRmMjU4YjEwNDllNDBlOTgzNjA2ODI1MzY1Y2YzYTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xODQs
NiArMTg0LDggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKIHsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgbV9wYXJhbWV0ZXJzLm5ldHdvcmtBY3Rp
dml0eVRyYWNrZXIgPSBtX2Nvbm5lY3Rpb24tPnN0YXJ0VHJhY2tpbmdSZXNvdXJjZUxvYWQobV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291
cmNlKCkpOworCiAgICAgaWYgKG1fZGVmZXJzTG9hZGluZykgewogICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJzdGFydDogTG9hZGluZyBpcyBkZWZlcnJlZCAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICByZXR1cm47CkBA
IC0zMjMsMTAgKzMyNSwxNSBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJz
TG9hZGluZyhib29sIGRlZmVycykKICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic2V0
RGVmZXJzTG9hZGluZzogZGVmZXJzID0gJWQsIGJ1dCBub3RoaW5nIHRvIGRvIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwgbV9kZWZlcnNMb2FkaW5nLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRl
cnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogfQogCi12b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cCgpCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwogCisgICAgbV9jb25uZWN0aW9uLT5zdG9wVHJhY2tpbmdSZXNvdXJjZUxvYWQobV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIsCisgICAgICAgIHJlc3VsdCA9PSBMb2FkUmVzdWx0OjpTdWNjZXNz
ID8gTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNvZGU6OlN1Y2Nlc3MgOgorICAg
ICAgICByZXN1bHQgPT0gTG9hZFJlc3VsdDo6RmFpbHVyZSA/IE5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXI6OkNvbXBsZXRpb25Db2RlOjpGYWlsdXJlIDoKKyAgICAgICAgTmV0d29ya0FjdGl2aXR5VHJh
Y2tlcjo6Q29tcGxldGlvbkNvZGU6Ok5vbmUpOworCiAgICAgbV9idWZmZXJpbmdUaW1lci5zdG9w
KCk7CiAKICAgICBpbnZhbGlkYXRlU2FuZGJveEV4dGVuc2lvbnMoKTsKQEAgLTM1OSw3ICszNjYs
NyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQoKQogICAgICAgICBtX25ldHdv
cmtMb2FkLT5jYW5jZWwoKTsKICAgICB9CiAKLSAgICBjbGVhbnVwKCk7CisgICAgY2xlYW51cChM
b2FkUmVzdWx0OjpDYW5jZWwpOwogfQogCiBzdGF0aWMgYm9vbCBhcmVGcmFtZUFuY2VzdG9yc1Nh
bWVTaXRlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBWZWN0b3I8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPj4mIGZyYW1lQW5jZXN0b3JPcmlnaW5zKQpAQCAtNTMxLDcgKzUz
OCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0
IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvCiAKICAgICB0cnlTdG9yZUFzQ2FjaGVFbnRy
eSgpOwogCi0gICAgY2xlYW51cCgpOworICAgIGNsZWFudXAoTG9hZFJlc3VsdDo6U3VjY2Vzcyk7
CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGYWlsTG9hZGluZyhjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTU1MSw3ICs1NTgsNyBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAg
ICAgfSBlbHNlIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSkKICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6
OkRpZEZhaWxSZXNvdXJjZUxvYWQoZXJyb3IpLCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgp
KTsKIAotICAgIGNsZWFudXAoKTsKKyAgICBjbGVhbnVwKExvYWRSZXN1bHQ6OkZhaWx1cmUpOwog
fQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSgpCkBAIC03NDYsNyArNzUzLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmRpZFJldHJpZXZlQ2FjaGVFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjoKICAg
ICBpZiAoaXNTeW5jaHJvbm91cygpKSB7CiAgICAgICAgIG1fc3luY2hyb25vdXNMb2FkRGF0YS0+
cmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKTsKICAgICAgICAgc2VuZFJlcGx5VG9TeW5jaHJv
bm91c1JlcXVlc3QoKm1fc3luY2hyb25vdXNMb2FkRGF0YSwgZW50cnktPmJ1ZmZlcigpKTsKLSAg
ICAgICAgY2xlYW51cCgpOworICAgICAgICBjbGVhbnVwKExvYWRSZXN1bHQ6OlN1Y2Nlc3MpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03ODAsNyArNzg3LDcgQEAgdm9pZCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlUHJvY2Vzc2luZ0NhY2hlZEVudHJ5QWZ0ZXJEaWRSZWNl
aXZlUmVzcG9uc2UKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKHJldHJp
ZXZlZEFsbCkgewogICAgICAgICAgICAgICAgICAgICBsb2FkZXItPnNlbmRSZXN1bHRGb3JDYWNo
ZUVudHJ5KFdURk1vdmUoZW50cnkpKTsKLSAgICAgICAgICAgICAgICAgICAgbG9hZGVyLT5jbGVh
bnVwKCk7CisgICAgICAgICAgICAgICAgICAgIGxvYWRlci0+Y2xlYW51cChMb2FkUmVzdWx0OjpT
dWNjZXNzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQpA
QCAtNzg5LDcgKzc5Niw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVBy
b2Nlc3NpbmdDYWNoZWRFbnRyeUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlCiAKICAgICBzZW5kUmVz
dWx0Rm9yQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiAKLSAgICBjbGVhbnVwKCk7CisgICAg
Y2xlYW51cChMb2FkUmVzdWx0OjpTdWNjZXNzKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnNlbmRSZXN1bHRGb3JDYWNoZUVudHJ5KHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2Fj
aGU6OkVudHJ5PiBlbnRyeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDg3Njk3MDhjMGEyMDBkZDI2MWJmMTZmZjky
NjY5ZThhMjM2NDU0OGEuLjAwOWZmOWIwMDJlMDY1NzVhMDU1NjE0MTJhNGNmYmJmMzFhMTE5YmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaApAQCAtMTM0LDcgKzEzNCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRO
ZXR3b3JrTG9hZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgRmlyc3RMb2FkKTsKICAgICB2
b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CiAKLSAgICB2b2lkIGNsZWFudXAoKTsK
KyAgICBlbnVtIGNsYXNzIExvYWRSZXN1bHQgeworICAgICAgICBVbmtub3duLAorICAgICAgICBT
dWNjZXNzLAorICAgICAgICBGYWlsdXJlLAorICAgICAgICBDYW5jZWwKKyAgICB9OworICAgIHZv
aWQgY2xlYW51cChMb2FkUmVzdWx0KTsKICAgICAKICAgICB2b2lkIHBsYXRmb3JtRGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIApAQCAtMTUzLDcg
KzE1OSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHNhbml0
aXplUmVzcG9uc2VJZlBvc3NpYmxlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZTo6U2FuaXRpemF0aW9uVHlwZSk7CiAKLSAgICBjb25zdCBOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBtX3BhcmFtZXRlcnM7CisgICAgTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJzOwogCiAgICAgUmVmPE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0FjdGl2aXR5VHJhY2tlckNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrQWN0aXZpdHlUcmFja2Vy
Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ1ODM2ZDVlMTUxMWU0MzE4NzQ0NGJjNDIxNzAwYjUwNTYx
M2E3NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0FjdGl2aXR5VHJhY2tlckNvY29hLm1tCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRy
YWNrZXIuaCIKKworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyKExhYmVsIGxh
YmVsLCBEb21haW4gZG9tYWluKQorICAgIDogbV9kb21haW4oZG9tYWluKQorICAgICwgbV9sYWJl
bChsYWJlbCkKKyAgICAsIG1fbmV0d29ya0FjdGl2aXR5KGFkb3B0TlMobndfYWN0aXZpdHlfY3Jl
YXRlKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX2RvbWFpbiksIHN0YXRpY19jYXN0PHVpbnQzMl90
PihtX2xhYmVsKSkpKQoreworfQorCitOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjp+TmV0d29ya0Fj
dGl2aXR5VHJhY2tlcigpCit7Cit9CisKK3ZvaWQgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c2V0
UGFyZW50KE5ldHdvcmtBY3Rpdml0eVRyYWNrZXImIHBhcmVudCkKK3sKKyAgICBBU1NFUlQobV9u
ZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOworICAgIEFTU0VSVChwYXJlbnQubV9uZXR3b3JrQWN0aXZp
dHkuZ2V0KCkpOworICAgIG53X2FjdGl2aXR5X3NldF9wYXJlbnRfYWN0aXZpdHkobV9uZXR3b3Jr
QWN0aXZpdHkuZ2V0KCksIHBhcmVudC5tX25ldHdvcmtBY3Rpdml0eS5nZXQoKSk7Cit9CisKK3Zv
aWQgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c3RhcnQoKQoreworICAgIEFTU0VSVChtX25ldHdv
cmtBY3Rpdml0eS5nZXQoKSk7CisgICAgbndfYWN0aXZpdHlfYWN0aXZhdGUobV9uZXR3b3JrQWN0
aXZpdHkuZ2V0KCkpOworfQorCit2b2lkIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OmNvbXBsZXRl
KENvbXBsZXRpb25Db2RlIGNvZGUpCit7CisgICAgaWYgKG1faXNDb21wbGV0ZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIG1faXNDb21wbGV0ZWQgPSB0cnVlOworCisgICAgQVNTRVJUKG1fbmV0
d29ya0FjdGl2aXR5LmdldCgpKTsKKyAgICBhdXRvIHJlYXNvbiA9CisgICAgICAgIGNvZGUgPT0g
Q29tcGxldGlvbkNvZGU6Ok5vbmUgPyBud19hY3Rpdml0eV9jb21wbGV0aW9uX3JlYXNvbl9ub25l
IDoKKyAgICAgICAgY29kZSA9PSBDb21wbGV0aW9uQ29kZTo6U3VjY2VzcyA/IG53X2FjdGl2aXR5
X2NvbXBsZXRpb25fcmVhc29uX3N1Y2Nlc3MgOgorICAgICAgICBjb2RlID09IENvbXBsZXRpb25D
b2RlOjpGYWlsdXJlID8gbndfYWN0aXZpdHlfY29tcGxldGlvbl9yZWFzb25fZmFpbHVyZSA6Cisg
ICAgICAgIG53X2FjdGl2aXR5X2NvbXBsZXRpb25fcmVhc29uX2ludmFsaWQ7CisgICAgbndfYWN0
aXZpdHlfY29tcGxldGVfd2l0aF9yZWFzb24obV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCksIHJlYXNv
bik7CisgICAgbV9uZXR3b3JrQWN0aXZpdHkuY2xlYXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBIQVZFKE5XX0FDVElWSVRZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmlu
ZGV4IDk3NTM5MjkyNDBlNjBlYTU2ZmY0MWFlZDUyMmMzNmJhY2EyYTQzOGMuLmU3NWNlY2Y5OTI3
Njk5Y2Y1ZDE1ODg5YjVlOWNjZjkyOGQ3ZmJiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJOZXR3b3JrQWN0aXZpdHlU
cmFja2VyLmgiCiAjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2lGaUFzc2VydGlvbkhvbGRlci5oIgpAQCAt
NDEsOSArNDIsOSBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0d29ya0Rh
dGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsKICAgICBmcmllbmQg
Y2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdv
cmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25p
ZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVj
b25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbikKKyAgICBz
dGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9u
LCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJD
b3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0
T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2
aWdhdGlvbiwgc3RkOjpvcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0
aXZpdHlUcmFja2VyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29y
a0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQs
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBzaG91bGRQcmVjb25uZWN0T25seSwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24p
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vz
c2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQsIHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVjb25uZWN0
T25seSwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIG5ldHdvcmtBY3Rpdml0eVRy
YWNrZXIpKTsKICAgICB9CiAKICAgICB+TmV0d29ya0RhdGFUYXNrQ29jb2EoKTsKQEAgLTgxLDcg
KzgyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNr
Q29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQs
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZp
bmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBi
b29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKTsKKyAgICBOZXR3b3JrRGF0YVRh
c2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJ
RCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlm
ZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHks
IGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIHN0ZDo6b3B0aW9uYWw8TmV0
d29ya0FjdGl2aXR5VHJhY2tlcj4pOwogCiAgICAgYm9vbCB0cnlQYXNzd29yZEJhc2VkQXV0aGVu
dGljYXRpb24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVu
Z2VDb21wbGV0aW9uSGFuZGxlciYpOwogICAgIHZvaWQgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5k
QmluZFJlcXVlc3RUb0luZmVyZmFjZUlmTmVlZGVkKE5TVVJMUmVxdWVzdComLCBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5tbQppbmRleCA1NzEyNzk4NzYwYTA0N2VkZmE4MDQzZDgyMzQzZWI2ODU1ZGRjMGMz
Li5hZTk4YTQxYjMwMDEyMTM2YjA4YWE3YzBiOGQ5NjNhM2MwOWZiYWNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EubW0KQEAgLTU1LDYgKzU1LDEwIEBAIEBwcm9wZXJ0eSAocmVhZHdyaXRlKSBCT09MIF9p
c1RvcExldmVsTmF2aWdhdGlvbjsKIEBlbmQKICNlbmRpZgogCisjaWYgSEFWRShOV19BQ1RJVklU
WSkKKyNpbXBvcnQgPENGTmV0d29yay9DRk5TVVJMQ29ubmVjdGlvbi5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiAjaWYgVVNFKENSRURFTlRJQUxfU1RPUkFHRV9XSVRIX05FVFdP
UktfU0VTU0lPTikKQEAgLTE3NSw3ICsxNzksNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVUYXNrV2l0
aEZpcnN0UGFydHlGb3JTYW1lU2l0ZUNvb2tpZXMoTlNVUkxTZXNzaW9uRGF0YVRhc2sqIHRhcwog
I2VuZGlmCiB9CiAKLU5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShO
ZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgdWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5n
UG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZp
bmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVj
dE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCitOZXR3b3JrRGF0
YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24s
IE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25p
ZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNG
b3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lv
biwgY2xpZW50LCByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgZGF0YVRhc2tJc0Zv
ck1haW5GcmFtZU5hdmlnYXRpb24pCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1f
cGFnZUlEKHBhZ2VJRCkKQEAgLTI2Nyw2ICsyNzEsMTEgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6
Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
YVQKICAgICAgICAgbV90YXNrLmdldCgpLnByaW9yaXR5ID0gdG9OU1VSTFNlc3Npb25UYXNrUHJp
b3JpdHkocmVxdWVzdC5wcmlvcml0eSgpKTsKIAogICAgIHVwZGF0ZVRhc2tXaXRoRmlyc3RQYXJ0
eUZvclNhbWVTaXRlQ29va2llcyhtX3Rhc2suZ2V0KCksIHJlcXVlc3QpOworCisjaWYgSEFWRShO
V19BQ1RJVklUWSkKKyAgICBpZiAobmV0d29ya0FjdGl2aXR5VHJhY2tlcikKKyAgICAgICAgbV90
YXNrLmdldCgpLl9ud19hY3Rpdml0eSA9IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIudmFsdWUoKS5n
ZXQoKTsKKyNlbmRpZgogfQogCiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6fk5ldHdvcmtEYXRhVGFz
a0NvY29hKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggYmFjZmZhN2FkMTYyNjYwN2UyMzJl
OGRkOWY5MmRmYWVhYmVkNjVlMC4uNmQ4OGEwZjczMzgyNjliNDIzZTk3ZmMzMjkyOGU5YzQ1OTE5
MzkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKQEAgLTEyOSw2ICsxMjksNyBAQCBSZWY8UHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkoKQog
ICAgIGNvcHktPm1fcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEID0gdGhpcy0+bV9wcmVzZW50aW5n
QXBwbGljYXRpb25QSUQ7CiAgICAgY29weS0+bV9wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24gPSB0
aGlzLT5tX3Byb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbjsKICAgICBjb3B5LT5tX3Byb2Nlc3NTd2Fw
c09uV2luZG93T3BlbldpdGhPcGVuZXIgPSB0aGlzLT5tX3Byb2Nlc3NTd2Fwc09uV2luZG93T3Bl
bldpdGhPcGVuZXI7CisgICAgY29weS0+bV90cmFja05ldHdvcmtBY3Rpdml0eSA9IHRoaXMtPm1f
dHJhY2tOZXR3b3JrQWN0aXZpdHk7CiAKICAgICByZXR1cm4gY29weTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaAppbmRleCAzZGMyYjE4MmJmYjA5OWFlMGY2YTNiNzc5ZGZlMDM4MzUxZTY5OWNlLi45MTEw
NWQzZjE0ZTY2ZWE3NWZjMmE0Y2IyYzI1ZTA5OTZiYTkyMThlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5o
CkBAIC0xNDEsNiArMTQxLDkgQEAgcHVibGljOgogICAgIGJvb2wgcHJvY2Vzc1N3YXBzT25XaW5k
b3dPcGVuV2l0aE9wZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dP
cGVuV2l0aE9wZW5lcjsgfQogICAgIHZvaWQgc2V0UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0
aE9wZW5lcihib29sIHN3YXBzKSB7IG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5l
ciA9IHN3YXBzOyB9CiAKKyAgICBib29sIHRyYWNrTmV0d29ya0FjdGl2aXR5KCkgY29uc3QgeyBy
ZXR1cm4gbV90cmFja05ldHdvcmtBY3Rpdml0eTsgfQorICAgIHZvaWQgc2V0VHJhY2tOZXR3b3Jr
QWN0aXZpdHkoYm9vbCB0cmFjaykgeyBtX3RyYWNrTmV0d29ya0FjdGl2aXR5ID0gdHJhY2s7IH0K
KwogcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkSGF2ZUxlZ2FjeURhdGFTdG9yZSB7IGZhbHNl
IH07CiAKQEAgLTE3NCw2ICsxNzcsNyBAQCBwcml2YXRlOgogICAgIFByb2Nlc3NJRCBtX3ByZXNl
bnRpbmdBcHBsaWNhdGlvblBJRCB7IGdldEN1cnJlbnRQcm9jZXNzSUQoKSB9OwogICAgIGJvb2wg
bV9wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9wcm9jZXNz
U3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdHJhY2tO
ZXR3b3JrQWN0aXZpdHkgeyBmYWxzZSB9OwogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdURjo6
U3RyaW5nIG1fY3REYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNw
cAppbmRleCBmNzg5NmNlNTE1ZWM2ZTNlZDRhM2RiODY1ZmYzMjZhNDk2OGVjMTFlLi4yY2FjYzA1
YzQyMTEyZWY4NjNlOGZjYjY5YThmMDhhYmZlOTE1NzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmNw
cApAQCAtMTc3LDMgKzE3NywxMyBAQCB2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRQcm9j
ZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyKFdLQ29udGV4dENvbmZpZwogewogICAgIHRv
SW1wbChjb25maWd1cmF0aW9uKS0+c2V0UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5l
cihzd2Fwcyk7CiB9CisKK2Jvb2wgV0tDb250ZXh0Q29uZmlndXJhdGlvblRyYWNrTmV0d29ya0Fj
dGl2aXR5KFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICBy
ZXR1cm4gdG9JbXBsKGNvbmZpZ3VyYXRpb24pLT50cmFja05ldHdvcmtBY3Rpdml0eSgpOworfQor
Cit2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRUcmFja05ldHdvcmtBY3Rpdml0eShXS0Nv
bnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGJvb2wgdHJhY2spCit7CisgICAg
dG9JbXBsKGNvbmZpZ3VyYXRpb24pLT5zZXRUcmFja05ldHdvcmtBY3Rpdml0eSh0cmFjayk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRD
b25maWd1cmF0aW9uUmVmLmgKaW5kZXggNzdhZTE3MTM3ZTU3MjBmY2ExNTQ4NWE1YzBlNWQ0M2Nj
NTRhODZkMS4uZjUxMmM1NWRkODY0ZTQ3ZTc5NmY4YjhjM2QzNzYyOTIwNTAwMDIyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZp
Z3VyYXRpb25SZWYuaApAQCAtNzQsNiArNzQsOSBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRD
b25maWd1cmF0aW9uU2V0UHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uKFdLQ29udGV4dENvbmZpZwog
V0tfRVhQT1JUIGJvb2wgV0tDb250ZXh0Q29uZmlndXJhdGlvblByb2Nlc3NTd2Fwc09uV2luZG93
T3BlbldpdGhPcGVuZXIoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsK
IFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRQcm9jZXNzU3dhcHNPbldp
bmRvd09wZW5XaXRoT3BlbmVyKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlv
biwgYm9vbCBzd2Fwcyk7CiAKK1dLX0VYUE9SVCBib29sIFdLQ29udGV4dENvbmZpZ3VyYXRpb25U
cmFja05ldHdvcmtBY3Rpdml0eShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRp
b24pOworV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q29uZmlndXJhdGlvblNldFRyYWNrTmV0d29y
a0FjdGl2aXR5KFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgYm9vbCB0
cmFjayk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmgKaW5kZXggMmExMzcyOGJiOWMyZTUwNThiZDA3YTlkYjBjZDY3NjljZWZmMDNh
OC4uMzA3NWNmMWY5ZDhiMTk3NGFkYTVjYzIxMDY4MTc2MTYwODM3OGExNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaApAQCAtNTksNiArNTksNyBAQCBXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgcGlkX3QgcHJl
c2VudGluZ0FwcGxpY2F0aW9uUElEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9z
KDExLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByb2Nlc3NTd2Fwc09uTmF2aWdh
dGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByb2Nlc3NTd2Fwc09uV2luZG93T3Blbldp
dGhPcGVuZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0cmFja05ldHdvcmtBY3Rpdml0eSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
QGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQppbmRleCBjZDI5ZGE4NjMwMmQ5
NTQzNWRjYWYyZGNkY2MyNzY0ZTU5NTlhZDE3Li4xZTNiZDc5N2FlYjRlNzkzYzk5MmQ0NWNjOTNl
YTNkZDExNWFkZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KQEAgLTI0Nyw2
ICsyNDcsMTYgQEAgLSAoQk9PTClwcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyCiAg
ICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnByb2Nlc3NTd2Fwc09uV2luZG93
T3BlbldpdGhPcGVuZXIoKTsKIH0KIAorLSAoQk9PTCl0cmFja05ldHdvcmtBY3Rpdml0eQorewor
ICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT50cmFja05ldHdvcmtBY3Rpdml0
eSgpOworfQorCistICh2b2lkKXNldFRyYWNrTmV0d29ya0FjdGl2aXR5OihCT09MKXRyYWNrCit7
CisgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0VHJhY2tOZXR3b3JrQWN0aXZpdHko
dHJhY2spOworfQorCiAjaWYgUExBVEZPUk0oSU9TKQogLSAoTlNTdHJpbmcgKilDVERhdGFDb25u
ZWN0aW9uU2VydmljZVR5cGUKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCAyYmE0NDBhOTMyMTI3OThiZTA5NTFhNGUwM2RjNzNjODliMjliYTZmLi4z
ZmU4NmMxMWE2YzhlOTAxYjg0NjE3ZmQyYjFhOTE2MTg0YWJlMzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00OTQsNiArNDk0LDggQEAgTmV0d29y
a1Byb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNp
dGVEYXRhU3RvcmUqIHdpdGgKICAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXND
T1JTRW5hYmxlZCA9IGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNUb1JlZ2lzdGVyQXNDT1JTRW5hYmxl
ZCk7CiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJ
ZkNhblJlcXVlc3QgPSBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdpc3RlckFzQ2FuRGlzcGxh
eU9ubHlJZkNhblJlcXVlc3QpOwogCisgICAgcGFyYW1ldGVycy50cmFja05ldHdvcmtBY3Rpdml0
eSA9IG1fY29uZmlndXJhdGlvbi0+dHJhY2tOZXR3b3JrQWN0aXZpdHkoKTsKKwogICAgIC8vIEFk
ZCBhbnkgcGxhdGZvcm0gc3BlY2lmaWMgcGFyYW1ldGVycwogICAgIHBsYXRmb3JtSW5pdGlhbGl6
ZU5ldHdvcmtQcm9jZXNzKHBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4ODJiYjhhYWRiMmRjMDExODRjNGMzZmI3
N2ZiN2YzNmU1ZmY5YWI0Li4yZDY0YWZiYzJlNmQxNDMwYzhhODMwMjIzZmIxYWZmMDE5MTMwNWQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEyMTEsMTAgKzEyMTEsMTMgQEAKIAkJNTMwMjU4NDUxRENCQkQyMjAwREE4OUMyIC8qIE5l
dHdvcmtDYXB0dXJlUmVwbGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUzMDI1ODM4MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJl
cGxheWVyLmggKi87IH07CiAJCTUzMDI1ODQ2MURDQkJEMjIwMERBODlDMiAvKiBOZXR3b3JrRGF0
YVRhc2tSZXBsYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTMwMjU4MzkxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtEYXRhVGFza1JlcGxheS5j
cHAgKi87IH07CiAJCTUzMDI1ODQ3MURDQkJEMjIwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tS
ZXBsYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUz
MDI1ODNBMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuaCAqLzsgfTsK
KwkJNTMxNTg3NkMyMDc2Qjc2MjAwNEJGOUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2Nv
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMTU4
NzZCMjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29jb2EubW0gKi87
IH07CiAJCTUzMjE1OTUzMURCQUU3MTgwMDU0QUEzQyAvKiBOZXR3b3JrU2Vzc2lvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIxNTk1MjFEQkFF
NkZDMDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb24uY3BwICovOyB9OwogCQk1MzIxNTk1NDFEQkFF
NzFEMDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjE1OTUxMURCQUU2RkMwMDU0QUEzQyAvKiBOZXR3
b3JrRGF0YVRhc2suY3BwICovOyB9OwogCQk1MzIxNTk1NTFEQkFFNzI5MDA1NEFBM0MgLyogTmV0
d29ya1Nlc3Npb25Db2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTMyMTU5NTAxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2Eu
aCAqLzsgfTsKIAkJNTMyMTU5NTYxREJBRTcyRDAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0Nv
Y29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIx
NTk0RjFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EuaCAqLzsgfTsKKwkJ
NTM1QkNCOTIyMDY5QzQ5QzAwQ0NDRTAyIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNUJDQjkwMjA2OUM0
OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmggKi87IH07CisJCTUzNzlEQjcy
MjA3RTk0NzAwMDdEOEMzMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjNDQUE1MjA2QzQ0M0UwMDg2
NDkwRSAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcCAqLzsgfTsKIAkJNTNCQTQ3RDAxREMy
RUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM5RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8q
IE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwICovOyB9OwogCQk1M0JBNDdEMTFEQzJFRjVFMDA0REY0
QUQgLyogTmV0d29ya0RhdGFUYXNrQmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTM5RUI1NDcxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRh
VGFza0Jsb2IuaCAqLzsgfTsKIAkJNTNERUEzNjYxRERFNDIzMTAwRTgyNjQ4IC8qIGpzb24uaHBw
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNERUEzNjUx
RERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBwICovOyB9OwpAQCAtMzY1OSwxMyArMzY2MiwxNiBA
QAogCQk1MzAyNTgzODFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXBsYXllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrQ2FwdHVyZVJlcGxheWVy
Lmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlUmVwbGF5ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMwMjU4MzkxRENCQkQxRDAwREE4OUMy
IC8qIE5ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nl
c3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MzAyNTgzQTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0RhdGFUYXNrUmVw
bGF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza1Jl
cGxheS5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBs
YXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTMxNTg3NkIyMDc2QjcxMzAwNEJG
OUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbTsgcGF0
aCA9IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8q
IE5ldHdvcmtEYXRhVGFza0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE5ldHdvcmtEYXRhVGFza0NvY29hLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzIxNTk1
MDFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrU2Vzc2lvbkNvY29hLmg7IHBhdGggPSBOZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUzMjE1OTUxMURCQUU2RkMwMDU0QUEzQyAvKiBOZXR3b3JrRGF0YVRhc2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrLmNw
cDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUzMjE1OTUyMURCQUU2RkMwMDU0QUEzQyAvKiBOZXR3b3JrU2Vz
c2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrU2Vz
c2lvbi5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzNUJDQjkwMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3
b3JrQWN0aXZpdHlUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM5RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8qIE5l
dHdvcmtEYXRhVGFza0Jsb2IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2tCbG9iLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM5RUI1NDcx
REMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrQmxvYi5oOyBwYXRoID0gTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1M0RFQTM2NTFEREU0MjJFMDBFODI2NDggLyoganNvbi5ocHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5oOyBuYW1lID0ganNvbi5ocHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJl
L2pzb24uaHBwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1M0YzQ0FBNTIwNkM0NDNF
MDA4NjQ5MEUgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcDsgcGF0aCA9IE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzUwRjMyQTIwMzJENEU1MDAzODkzNDcgLyogTG9jYWxBdXRoZW50aWNh
dGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IExvY2FsQXV0aGVudGljYXRpb24uZnJh
bWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Mb2NhbEF1dGhlbnRpY2F0
aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CiAJCTU3NjA4MjhCMjAyOTg1
NDIwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3Nlbmdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJDcmVkZW50aWFsc01lc3Nlbmdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzYwODI4QzIwMjk4NTQyMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjQwMCw2ICs2NDA2LDggQEAKIAkJCQkyREE5NDRCQjE4ODUx
MUREMDBFRDg2REIgLyogaW9zICovLAogCQkJCTUxMENDN0RDMTYxMzhFMjkwMEQwM0VEMyAvKiBt
YWMgKi8sCiAJCQkJNDEzMDc1OTcxREU4NEVENzAwMzlFQzY5IC8qIHdlYnJ0YyAqLywKKwkJCQk1
M0YzQ0FBNTIwNkM0NDNFMDA4NjQ5MEUgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgKi8s
CisJCQkJNTM1QkNCOTAyMDY5QzQ5QzAwQ0NDRTAyIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIu
aCAqLywKIAkJCQk1MTNBMTY0OTE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwICovLAogCQkJCTUxM0ExNjRBMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovLAogCQkJCTUxM0ExNjRCMTYzMEE5QkYwMDVE
N0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKQEAg
LTY5MjYsNiArNjkzNCw3IEBACiAJCTdFQzRGMEY4MThFNEE5MjIwMDgwNTZBRiAvKiBjb2NvYSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTMxNTg3NkIy
MDc2QjcxMzAwNEJGOUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbSAqLywKIAkJ
CQk1MzIxNTk0RjFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EuaCAqLywK
IAkJCQk1Q0JDOUI4QjFDNjUyNTczMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EubW0g
Ki8sCiAJCQkJN0VDNEYwRjkxOEU0QTk0NTAwODA1NkFGIC8qIE5ldHdvcmtQcm9jZXNzQ29jb2Eu
bW0gKi8sCkBAIC05MDE1LDYgKzkwMjQsNyBAQAogCQkJCTFBNkZCRDI4MTFFNjlCQzIwMERCMTM3
MSAvKiBOZXRzY2FwZVBsdWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTlDNTYxMkI4MTZD
RjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUE1ODg5MjExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUzNUJDQjkyMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlU
cmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTc5OEM3QTE2RTY4MTg4MDAyNDAxMzkgLyog
TmV0d29ya0Jsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0MzZFQ0MxQTBEMDQw
QjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5RDQwRDcx
QUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAq
LywKQEAgLTEwNjgyLDYgKzEwNjkyLDcgQEAKIAkJCQkyRDUwMzY1RTFCQ0M3OTNGMDBFMjBCQjMg
LyogTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRBOTQ0
OUUxODg0RTRGMDAwRUQ4NkRCIC8qIE5hdGl2ZVdlYktleWJvYXJkRXZlbnRJT1MubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDMDJCRkYxRTEyNTE1MDJFMDA5Q0NCRUEgLyogTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudE1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTFDOUVCQTVDMjA4N0U3NEYwMDA1NDQy
OSAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFFQTI1
RDIxMzRGNzhDMDAwNUIxNDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMubW0gaW4gU291cmNl
cyAqLywKIAkJCQkyREE5NDQ5RjE4ODRFNEYwMDBFRDg2REIgLyogTmF0aXZlV2ViVG91Y2hFdmVu
dElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCURGNThDNjM2MTM3MUFDQTAwMEY5QTM3QyAvKiBO
YXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xMDY5Myw2ICsxMDcw
NCw4IEBACiAJCQkJMUE0QTlDNTUxMkI4MTZDRjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9k
dWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5QzlBMTJCODIxQ0QwMDhGRTk4NCAvKiBO
ZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQTU4ODkzMTFF
RTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1Mzc5REI3MjIwN0U5NDcwMDA3RDhDMzMgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1MzE1ODc2QzIwNzZCNzYyMDA0QkY5RjMgLyogTmV0d29y
a0FjdGl2aXR5VHJhY2tlckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE3OThDNzkxNkU2
ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTQ0MzZFQ0ExQTBEMDNGQTAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFNDlENDBEOTFBRDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0
b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMDcwOCw3ICsxMDcyMSw2IEBACiAJCQkJODMy
QUUyNTMxQkUyRThDRDAwRkFBRTEwIC8qIE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODNCRENDQjkxQUM1RkRCNjAwM0Y2NDQxIC8qIE5l
dHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0MzZFRDAxQTBE
MDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJMUM5RUJBNUMyMDg3RTc0RjAwMDU0NDI5IC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4MzEwNDI4QzFCRDZCNjZGMDBBNzE1RTQgLyogTmV0d29ya0Nh
Y2hlU3VicmVzb3VyY2VzRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMwMjU4M0QxRENC
QkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTMwMjU4NDAxRENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCA1OWQ2NzZmYzlhN2E1YWMyYjQ2ZjY5Mjc0
YThiMTIwZDkxY2VkNjlmLi4xYzRiMmEyMjY4M2QwMDMyNzE4ZTU4MDBhZTg2NzRhMjk5MjcxMDY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCkBAIC01MjIsNiArNTIyLDExIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRl
Z3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCB1
bnNpCiAgICAgfQogfQogCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRl
ZCh1aW50NjRfdCB3ZWJQYWdlSUQpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQYWdlTG9hZENvbXBsZXRlZCh3ZWJQYWdl
SUQpLCAwKTsKK30KKwogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKQog
ewogICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IDY1Nzg2
MzMwYzJhOGJjY2UxNzRhZTQ5OTQ4ODUyMmRmOGUzZTk1MjQuLjk2OTI1YmMwNTgxNmI5MGJkM2Ni
ZGU2YTY4MTQ5YTVlZDkwMDNjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6
CiAgICAgCiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxX
ZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZFJl
c291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcg
cmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
V2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRp
b25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSBmaW5h
bDsKKyAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKHVpbnQ2NF90IHdlYlBhZ2VJRCkgZmluYWw7
CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAg
IHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciosIGJvb2wpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IGM2MGIyZTQ1MzM1YzNhMDQ2
YzRlMjc3Y2I3ZTRiZTY3NjhjN2NjYzkuLjY0MWU2N2MzNmViZjQ4NmM3N2Q0MDBjNjE0YTAwNjVj
YzQ0ZDVkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTExMSw2ICsxMTEs
MTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGUKICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShmcmFtZUxvYWRlci5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1
ZXN0LCBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9t
aXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgOiBTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6VXNlLCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogfQogCit2b2lkIFdlYlJlc291
cmNlTG9hZFNjaGVkdWxlcjo6cGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3QgLyp3ZWJQYWdlSUQq
LykKK3sKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlUGx1Z2lu
U3RyZWFtTG9hZChGcmFtZSYgZnJhbWUsIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50
JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6Y3JlYXRl
KGZyYW1lLCBjbGllbnQsIFdURk1vdmUocmVxdWVzdCksIFt0aGlzLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyPiYmIGxvYWRlcikgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaAppbmRleCA4ODI4YjU0OThhY2VkMzY4YzU2YWI4YTg1NTczOTM3MzI0NWYwYWRiLi43
NzBkNjNlZmM2YWM5ODkxNzBkZTQ2ZWE3YzM4NTVhMjBhYzY1ODIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBsb2FkUmVz
b3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRl
cj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJD
b3JlOjpGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IFdlYkNvcmU6
OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYp
IGZpbmFsOworICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKSBm
aW5hbDsKKwogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKikgZmluYWw7
CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKiwgYm9v
bCkgZmluYWw7CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpVUkwmIHJlZGlyZWN0VVJMKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339164</attachid>
            <date>2018-04-30 17:15:18 -0700</date>
            <delta_ts>2018-05-02 15:01:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184838-20180430171517.patch</filename>
            <type>text/plain</type>
            <size>69510</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRhZDIwNzBhNGVhMzQ4
ZGM0MjAyNmYxOGI3NzdkODc1OTU3NTNkNi4uNmQxYTE4NDgzODNhODA1YzE0OGU1NGU2NzczODZm
Yzc1YzUxODFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTA0LTMwICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZmFjaWxpdHkgZm9y
IHRyYWNraW5nIHRpbWVzIGFuZCByZXN1bHRzIG9mIHBhZ2UgYW5kIHJlc291cmNlIGxvYWRpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDgzOAor
ICAgICAgICByZGFyOi8vcHJvYmxlbS8zNjU0ODk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBGcmFtZVByb2dyZXNzVHJhY2tlciB0byBz
ZW5kIHRoZSBuZWNlc3NhcnkgcGFnZSBsb2FkIHN0YXJ0L3N0b3AKKyAgICAgICAgc2lnbmFscyBz
byB0aGF0IHdlIGNhbiB0cmFjayB0aGUgZW50aXJlIHBhZ2UgbG9hZCBhdCBhIG5ldHdvcmsgbGV2
ZWwuCisgICAgICAgIEFkZCBhbiBlbXB0eSBvdmVycmlkZSBvZiB0aGUgcHVyZSB2aXJ0dWFsCisg
ICAgICAgIExvYWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZCBtZXRob2QuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiBUaGVyZSBpcyBubyB0ZXN0YWJsZSBlZmZlY3QgZnJvbSB0aGVzZSBj
aGFuZ2VzLiBPbgorICAgICAgICBDb2NvYSwgbWVhc3VyYWJsZSBjaGFuZ2VzIHRha2UgcGxhY2Ug
aW4gYW5vdGhlciAobm9uLVdlYktpdCkgcHJvY2Vzcy4KKyAgICAgICAgT24gbm9uLUNvY29hIHN5
c3RlbXMsIHRoaXMgZmFjaWxpdHkgaXMgY3VycmVudGx5IGRpc2FibGVkLgorCisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpG
cmFtZVByb2dyZXNzVHJhY2tlcjo6cHJvZ3Jlc3NDb21wbGV0ZWQpOgorICAgICAgICAqIGxvYWRl
ci9Mb2FkZXJTdHJhdGVneS5oOgorCiAyMDE4LTA0LTMwICBNaWNoYWVsIENhdGFuemFybyAgPG1j
YXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXZWJraXQgc2hvdWxkIHNwb29m
IGFzIFNhZmFyaSBvbiBhIE1hYyB3aGVuIG9uIENoYXNlLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNDViOWM4
YjdiMGJmMTg5MzA1N2I4NThjODUxZDQ2ZmJlMmMyYjY4Li45NzljZTQxYTY4ZDc1MDM4NmY3YWYy
ODkwMzRiOTQ0MWE5NDUxZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE4LTA0LTMw
ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZmFjaWxp
dHkgZm9yIHRyYWNraW5nIHRpbWVzIGFuZCByZXN1bHRzIG9mIHBhZ2UgYW5kIHJlc291cmNlIGxv
YWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NDgzOAorICAgICAgICByZGFyOi8vcHJvYmxlbS8zNjU0ODk3NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
LiBUaGUgaWRlYSBiZWhpbmQgdGhpcyBmYWNpbGl0eSBpcyB0byBjcmVhdGUKKyAgICAgICAgYW5k
IGRlc3Ryb3kgdGhlbSBhcm91bmQgbmV0d29ya2luZyBhY3Rpdml0eSB0aGF0IHdlIHdhbnQgdG8g
dHJhY2sgZm9yCisgICAgICAgIHRoZSBwdXJwb3NlIG9mIG1lYXN1cmluZyBvdmVyYWxsIG5ldHdv
cmsgaGVhbHRoLiBUaGV5IGNhbiBiZSBjcmVhdGVkCisgICAgICAgIGFyb3VuZCB0aGUgbG9hZGlu
ZyBvZiBwYWdlcyBvciBpbmRpdmlkdWFsIHJlc291cmNlcywgYW5kIGNhbiBiZQorICAgICAgICBh
cnJhbmdlZCBpbiBhIHBhcmVudC9jaGlsZCBoaWVyYXJjaHkgdG8gaW5kaWNhdGUgd2hhdCBwYWdl
cyB0aGUKKyAgICAgICAgcmVzb3VyY2VzIGFyZSBwYXJ0IG9mLiBUaGUgTmV0d29ya0FjdGl2aXR5
IHRyYWNrZXIgdHJhY2tzIGxvYWQgdGltZXMKKyAgICAgICAgYW5kIHJlc3VsdHMuIE9uIENvY29h
LCBpdCBjYW4gYmUgaW50ZWdyYXRlZCB3aXRoIENGTmV0d29yayBpbiBvcmRlciB0bworICAgICAg
ICBhc3NvY2lhdGUgV2ViS2l0IGFjdGl2aXR5IHdpdGggbG93LWxldmVsIG5ldHdvcmtpbmcgYWN0
aXZpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9XZWJLaXQueGNjb25maWc6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Fj
dGl2aXR5VHJhY2tlci5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmguCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rp
dml0eVRyYWNrZXI6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyOjp+TmV0d29ya0FjdGl2aXR5VHJhY2tlcik6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OnNldFBhcmVudCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Y29tcGxldGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtBY3Rpdml0eVRyYWNrZXI6OmdldFBsYXRmb3JtT2JqZWN0KToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZSk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwYWdlTG9hZENvbXBsZXRl
ZCk6CisgICAgICAgIChXZWJLaXQ6Om5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdGFydFRyYWNr
aW5nUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnN0b3BUcmFja2luZ1Jlc291cmNlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tp
bmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3Rv
cEFsbE5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRm9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpmaW5kUm9vdE5ldHdvcmtBY3Rpdml0eSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpmaW5kTmV0d29y
a0FjdGl2aXR5VHJhY2tlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OlJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6UmVzb3VyY2VOZXR3
b3JrQWN0aXZpdHlUcmFja2VyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2s6
OmNyZWF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJz
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6dHJhY2tOZXR3b3JrQWN0aXZpdHkgY29uc3QpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZXRyaWV2ZUNhY2hlRW50cnkp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlUHJvY2Vz
c2luZ0NhY2hlZEVudHJ5QWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbTogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXIp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjp+TmV0d29ya0FjdGl2
aXR5VHJhY2tlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OnNl
dFBhcmVudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OnN0YXJ0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Y29tcGxldGUpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2Nv
YSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
Y3BwOgorICAgICAgICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuY3BwOgorICAg
ICAgICAoV0tDb250ZXh0Q29uZmlndXJhdGlvblRyYWNrTmV0d29ya0FjdGl2aXR5KToKKyAgICAg
ICAgKFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRUcmFja05ldHdvcmtBY3Rpdml0eSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Lm1tOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gdHJhY2tOZXR3b3Jr
QWN0aXZpdHldKToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIHNldFRy
YWNrTmV0d29ya0FjdGl2aXR5Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3b3JrUHJv
Y2Vzcyk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnBhZ2VMb2FkQ29tcGxldGVkKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKwogMjAxOC0wNC0zMCAg
QW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVHJ5IHRvIHVu
bG9jayBQREYgZG9jdW1lbnRzIGJlZm9yZSBwcmludGluZyB0aGVtCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9n
CmluZGV4IDY4OGI4NGUwMTJkOTc3YzkwM2QzNDkwZmI4NmUyNDIwZDg1NzBmNWMuLjVhYzM3MWMx
ZGE2ZGY0MzcyNmNjY2UyNzYzMDBlMjMzNDBkNTlhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTgtMDQtMzAgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBmYWNpbGl0eSBmb3IgdHJhY2tpbmcgdGltZXMgYW5kIHJlc3Vs
dHMgb2YgcGFnZSBhbmQgcmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0ODM4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzM2
NTQ4OTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGFuIGVtcHR5IG92ZXJyaWRlIG9mIHRoZSBwdXJlIHZpcnR1YWwKKyAgICAgICAgTG9hZGVy
U3RyYXRlZ3k6OnBhZ2VMb2FkQ29tcGxldGVkIG1ldGhvZC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXI6OnBhZ2VMb2FkQ29tcGxldGVkKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaDoKKwogMjAxOC0wNC0xNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIE5ldHdvcmtMb2FkQ2hlY2tl
ciB0byBoYW5kbGUgc3luY2hyb25vdXMgSFRUUCBsb2FkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggOTdjZjBiNjhlMTE0ZjE3YTU2ZjA0MWFhN2FiMDg0ZjM1MDAyZjBk
NS4uNTYwNjEzODgwY2Y3NDMxZWFhMGYzYzM1ZGZmODRkOTE5ZTEwMGIyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yNTIsNiArMjUyLDkgQEAgcHVibGljOgogICAg
ICAgICBBU1NFUlQobV9mcmFtZS5wYWdlKCkpOwogICAgICAgICBtX2luUHJvZ3Jlc3MgPSBmYWxz
ZTsKICAgICAgICAgbV9mcmFtZS5wYWdlKCktPnByb2dyZXNzKCkucHJvZ3Jlc3NDb21wbGV0ZWQo
bV9mcmFtZSk7CisKKyAgICAgICAgaWYgKG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkucGFnZUlE
KCkpCisgICAgICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+
cGFnZUxvYWRDb21wbGV0ZWQobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKS52YWx1
ZSgpKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVn
eS5oCmluZGV4IDY3ZDMwY2YxMWY2YWJmYTc1OThlOGM0Y2I4YzlhODgxYTI3N2IzNDUuLjJmNWVm
ZWI2Yjg2YjhhMDY2OWUzNDFlYjVlNDY5MTU5MTEwMzgwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Mb2FkZXJTdHJhdGVneS5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IExvYWRlclN0cmF0ZWd5IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNl
KEZyYW1lJiwgQ2FjaGVkUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U3VicmVzb3Vy
Y2VMb2FkZXI+JiYpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoRnJhbWVMb2FkZXImLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIENsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IEZldGNoT3B0aW9u
cyYsIGNvbnN0IEhUVFBIZWFkZXJNYXAmLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25z
ZSYsIFZlY3RvcjxjaGFyPiYgZGF0YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYWdlTG9hZENv
bXBsZXRlZCh1aW50NjRfdCB3ZWJQYWdlSUQpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmUoUmVzb3VyY2VMb2FkZXIqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xvYWRp
bmcoUmVzb3VyY2VMb2FkZXIqLCBib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBiOTM5
ODIwMGM2OWU4NmYxNGRjNTk2ZmJlYTUyYTA1NDc3MDQ5NWNkLi5mMWQwM2U0NzM2YmUyNGI3MmM2
ODkzOWE5ZmU4NTk4NTlhNWI4ODNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTk3LDE0ICs5Nyw3
IEBAIHNldChXZWJLaXRfU1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAogc2V0KFdlYktp
dF9TT1VSQ0VTCi0gICAgTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNw
cAotCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAotICAgIE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCi0gICAgTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKLQotICAgIE5ldHdvcmtQcm9jZXNzL0Zp
bGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKLQorICAgIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtBY3Rpdml0eVRyYWNrZXIuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVm
bGlnaHRDaGVja2VyLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyLmNwcApAQCAtMTIyLDYgKzExNSwxNCBAQCBzZXQoV2ViS2l0X1NPVVJDRVMKICAgICBO
ZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0
VGFzay5jcHAKIAorICAgIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5j
cHAKKworICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKKyAgICBOZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorICAgIE5ldHdvcmtQcm9j
ZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93bmxvYWQuY3BwCisKKyAgICBOZXR3b3JrUHJvY2Vzcy9G
aWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3BwCisKICAgICBOZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lQ2FjaGUuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9y
YWdlRW5naW5lQ2FjaGVzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0
aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktp
dC54Y2NvbmZpZwppbmRleCA2NjM0OGE0ZjY1ZDJhMDU5Yjc2MjE2YmRhMDM5M2IxMTUyZWM3NjQ3
Li41ZDdhZTkyNmYzMTVjYzIyNWVmYTU3NTEyZDI0Nzg4N2JiNzQ4NTA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTA5LDcgKzEwOSw3IEBA
IFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHU19NQUNPU19TSU5DRV8xMDEzID0gLXdlYWtfZnJhbWV3
b3JrIFNhZmFyaVNhZmVCcm93c2luZzsKIFdLX1VJS0lUX0xERkxBR1MgPSAkKFdLX1VJS0lUX0xE
RkxBR1NfJChXS19DT0NPQV9UT1VDSCkpOwogV0tfVUlLSVRfTERGTEFHU19jb2NvYXRvdWNoID0g
LWZyYW1ld29yayBVSUtpdDsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9i
amMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBD
b3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0
IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tp
dCAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChX
S19BUFBLSVRfTERGTEFHUykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykgJChXS19D
QVJCT05fTERGTEFHUykgJChXS19DT1JFX1BERl9MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElP
Tl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJW
SUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFDRV9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZM
QUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RB
TFRfTERGTEFHUykgJChXS19PUEVOR0xfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChX
S19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUyk7CitGUkFNRVdPUktf
QU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3
b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdy
YXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdv
cmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0
d29yayAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChX
S19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19D
T1JFX1BERl9MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVf
U0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lP
U1VSRkFDRV9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JF
X1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19PUEVO
R0xfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxB
R1MpICQoV0tfVUlLSVRfTERGTEFHUyk7CiAKIC8vIFByZXZlbnQgQysrIHN0YW5kYXJkIGxpYnJh
cnkgb3BlcmF0b3IgbmV3LCBkZWxldGUgYW5kIHRoZWlyIHJlbGF0ZWQgZXhjZXB0aW9uIHR5cGVz
IGZyb20gYmVpbmcgZXhwb3J0ZWQgYXMgd2VhayBzeW1ib2xzLgogVU5FWFBPUlRFRF9TWU1CT0xf
TERGTEFHUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2FsbG9jIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wgLVdsLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVds
LF9fWlRTU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRsUHZTXyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
IC1XbCxfX1pud20gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rp
b25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRU9TNF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVF
RUMxRU9TNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25J
RnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRURuIC1XbCwtdW5leHBvcnRlZF9zeW1ib2ws
IC1XbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFY2xF
UzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdX
ZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUU0c3dhcEVSUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2ws
IC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMUVS
S1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43
V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwg
LVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUQxRXYg
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNv
cmUxMlBvbGljeUFjdGlvbkVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5T
dDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRVJLUzRfIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wsIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5
VHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0
eVRyYWNrZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiMzY3ZTk4MjE4NjYzZjJmMGQyZDhhYzE1OTZmNzk1
NjMxOWIxYmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5o
IgorCisjaWYgIUhBVkUoTldfQUNUSVZJVFkpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOZXR3
b3JrQWN0aXZpdHlUcmFja2VyOjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyKExhYmVsLCBEb21haW4p
Cit7Cit9CisKK05ldHdvcmtBY3Rpdml0eVRyYWNrZXI6On5OZXR3b3JrQWN0aXZpdHlUcmFja2Vy
KCkKK3sKK30KKwordm9pZCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpzZXRQYXJlbnQoTmV0d29y
a0FjdGl2aXR5VHJhY2tlciYpCit7Cit9CisKK3ZvaWQgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6
c3RhcnQoKQoreworfQorCit2b2lkIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OmNvbXBsZXRlKENv
bXBsZXRpb25Db2RlKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
ICFIQVZFKE5XX0FDVElWSVRZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGUxNzE4YmVjZGY4YmNi
YzAwMDNmMjEwNzA1MzczMTU4ODZiMWU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgKQEAgLTAsMCArMSw4NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykgJiYgX19oYXNfaW5jbHVkZSg8bncvYWN0aXZpdHkuaD4pCisjZGVmaW5lIEhBVkVfTldfQUNU
SVZJVFkgMQorI2VuZGlmCisKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorI2luY2x1ZGUgPG53L3By
aXZhdGUuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIgeworcHVibGljOgorICAg
IGVudW0gY2xhc3MgRG9tYWluIHsKKyAgICAgICAgLy8gVGhlc2UgYXJlIGRlZmluZWQgdG8gbWF0
Y2ggYW5hbG9nb3VzIHZhbHVlcyB1c2VkIGluIHRoZSBEYXJ3aW4gaW1wbGVtZW50YXRpb24uCisg
ICAgICAgIC8vIElmIHRoZXkgYXJlIHJlbnVtYmVyZWQsIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUg
d2lsbCBuZWVkIHRvIGJlIGFkZGVkIHRvIG1hcAorICAgICAgICAvLyB0aGVtIHRvIHRoZSBEYXJ3
aW4tc3BlY2lmaWMgdmFsdWVzLgorCisgICAgICAgIEludmFsaWQgPSAwLAorICAgICAgICBXZWJL
aXQgPSAxNiwKKyAgICB9OworCisgICAgZW51bSBjbGFzcyBMYWJlbCB7CisgICAgICAgIC8vIFRo
ZXNlIGFyZSBvdXJzIHRvIGRlZmluZSwgYnV0IG9uY2UgZGVmaW5lZCwgdGhleSBzaG91bGRuJ3Qg
Y2hhbmdlLiBUaGV5IGNhbgorICAgICAgICAvLyBiZSBvYnNvbGVzY2VkIGFuZCByZXBsYWNlZCB3
aXRoIG90aGVyIGNvZGVzLCBidXQgcHJldmlvdXNseS1kZWZpbmVkIGNvZGVzCisgICAgICAgIC8v
IHNob3VsZCBub3QgYmUgcmVudW1iZXJlZC4gUHJldmlvdXNseSBhc3NpZ25lZCB2YWx1ZXMgc2hv
dWxkIG5vdCBiZSByZS11c2VkLgorCisgICAgICAgIEludmFsaWQgPSAwLAorICAgICAgICBMb2Fk
UGFnZSA9IDEsCisgICAgICAgIExvYWRSZXNvdXJjZSA9IDIsCisgICAgfTsKKworICAgIGVudW0g
Y2xhc3MgQ29tcGxldGlvbkNvZGUgeworICAgICAgICBVbmRlZmluZWQsCisgICAgICAgIE5vbmUs
CisgICAgICAgIFN1Y2Nlc3MsCisgICAgICAgIEZhaWx1cmUsCisgICAgfTsKKworICAgIE5ldHdv
cmtBY3Rpdml0eVRyYWNrZXIoTGFiZWwsIERvbWFpbiA9IERvbWFpbjo6V2ViS2l0KTsKKyAgICB+
TmV0d29ya0FjdGl2aXR5VHJhY2tlcigpOworCisgICAgdm9pZCBzZXRQYXJlbnQoTmV0d29ya0Fj
dGl2aXR5VHJhY2tlciYpOworICAgIHZvaWQgc3RhcnQoKTsKKyAgICB2b2lkIGNvbXBsZXRlKENv
bXBsZXRpb25Db2RlKTsKKworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisgICAgbndfYWN0aXZpdHlf
dCBnZXRQbGF0Zm9ybU9iamVjdCgpIHsgcmV0dXJuIG1fbmV0d29ya0FjdGl2aXR5LmdldCgpOyB9
CisjZW5kaWYKKworcHJpdmF0ZToKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAgIERvbWFpbiBt
X2RvbWFpbjsKKyAgICBMYWJlbCBtX2xhYmVsOworICAgIGJvb2wgbV9pc0NvbXBsZXRlZCB7IGZh
bHNlIH07CisgICAgUmV0YWluUHRyPG53X2FjdGl2aXR5X3Q+IG1fbmV0d29ya0FjdGl2aXR5Owor
I2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKaW5kZXggYzEzOTAzZGY5MTgzYzhjYmY5YTZkODlkODAwMTU2MGQ4YTFiODQ0NC4uN2Mx
Y2Q3MjFjOGQ3MDNlY2VjNmY3NzEzOTM4NjYyNWNjZGQzMzc3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJCbG9iRGF0YUZpbGVSZWZl
cmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Jsb2JSZWdpc3RyeS5oIgogI2luY2x1
ZGUgIk5ldHdvcmtDYWNoZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZXMuaCIKQEAgLTYxLDYgKzYyLDkgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKKyNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9M
T0dfSUYodHJ1ZSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRih0cnVlLCBOZXR3b3JrLCAi
JXAgLSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6IiBmbXQsIHRoaXMsICMjX19WQV9B
UkdTX18pCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBSZWY8TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpAQCAtMTgwLDYgKzE4NCwx
MSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNv
bm5lY3Rpb24mKQogICAgICAgICBsb2FkZXItPmFib3J0KCk7CiAgICAgQVNTRVJUKG1fbmV0d29y
a1Jlc291cmNlTG9hZGVycy5pc0VtcHR5KCkpOwogCisgICAgLy8gQWxsIHRyYWNrZXJzIG9mIHJl
c291cmNlcyB0aGF0IHdlcmUgaW4gdGhlIG1pZGRsZSBvZiBiZWluZyBsb2FkZWQgd2VyZQorICAg
IC8vIHN0b3BwZWQgd2l0aCB0aGUgYWJvcnQoKSBjYWxscyBhYm92ZSwgYnV0IHdlIHN0aWxsIG5l
ZWQgdG8gc3dlZXAgdXAgdGhlCisgICAgLy8gcm9vdCBhY3Rpdml0eSB0cmFja2Vycy4KKyAgICBz
dG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmcoKTsKKwogICAgIE5ldHdvcmtCbG9iUmVnaXN0
cnk6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NEaWRDbG9zZSh0aGlzKTsKICAg
ICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3ZlTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3ModGhpcyk7CiAKQEAgLTI4Nyw2ICsyOTYsMTEgQEAgdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlTG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRp
ZmllcgogICAgIEFTU0VSVCghbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5zKGlkZW50
aWZpZXIpKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGFnZUxv
YWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKQoreworICAgIHN0b3BBbGxOZXR3b3JrQWN0
aXZpdHlUcmFja2luZ0ZvclBhZ2Uod2ViUGFnZUlEKTsKK30KKwogdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6c2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogewogICAgIFJlZlB0cjxOZXR3b3JrUmVzb3VyY2VM
b2FkZXI+IGxvYWRlciA9IG1fbmV0d29ya1Jlc291cmNlTG9hZGVycy5nZXQoaWRlbnRpZmllcik7
CkBAIC01MzIsNCArNTQ2LDExOSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKQogICAgIFNlY3VyaXR5UG9saWN5OjpyZXNl
dE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsKIH0KIAorc3RhdGljIGJvb2wgbmV0d29ya0FjdGl2
aXR5VHJhY2tpbmdFbmFibGVkKCkKK3sKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAgIHJldHVy
biBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhY2tOZXR3b3JrQWN0aXZpdHkoKTsKKyNl
bHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3N0ZDo6b3B0aW9uYWw8TmV0d29y
a0FjdGl2aXR5VHJhY2tlcj4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0YXJ0VHJh
Y2tpbmdSZXNvdXJjZUxvYWQodWludDY0X3QgcGFnZUlELCBSZXNvdXJjZUxvYWRJZGVudGlmaWVy
IHJlc291cmNlSUQsIGJvb2wgaXNNYWluUmVzb3VyY2UpCit7CisgICAgaWYgKCFuZXR3b3JrQWN0
aXZpdHlUcmFja2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIC8vIEVpdGhlciBnZXQgdGhlIGV4aXN0aW5nIHJvb3QgYWN0aXZpdHkgdHJhY2tlciBmb3Ig
dGhpcyBwYWdlIG9yIGNyZWF0ZSBhCisgICAgLy8gbmV3IG9uZSBpZiB0aGlzIGlzIHRoZSBtYWlu
IHJlc291cmNlLgorCisgICAgc2l6ZV90IHJvb3RBY3Rpdml0eUluZGV4OworICAgIGlmIChpc01h
aW5SZXNvdXJjZSkgeworICAgICAgICAvLyBJZiB3ZSdyZSBsb2FkaW5nIGEgcGFnZSBmcm9tIHRo
ZSB0b3AsIG1ha2Ugc3VyZSBhbnkgdHJhY2tpbmcgb2YKKyAgICAgICAgLy8gcHJldmlvdXMgYWN0
aXZpdHkgZm9yIHRoaXMgcGFnZSBpcyBzdG9wcGVkLgorCisgICAgICAgIHN0b3BBbGxOZXR3b3Jr
QWN0aXZpdHlUcmFja2luZ0ZvclBhZ2UocGFnZUlEKTsKKworICAgICAgICByb290QWN0aXZpdHlJ
bmRleCA9IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuc2l6ZSgpOworICAgICAgICBtX25ldHdv
cmtBY3Rpdml0eVRyYWNrZXJzLmNvbnN0cnVjdEFuZEFwcGVuZChwYWdlSUQpOworICAgICAgICBt
X25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW3Jvb3RBY3Rpdml0eUluZGV4XS5uZXR3b3JrQWN0aXZp
dHkuc3RhcnQoKTsKKworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisgICAgICAgIEFTU0VSVChtX25l
dHdvcmtBY3Rpdml0eVRyYWNrZXJzW3Jvb3RBY3Rpdml0eUluZGV4XS5uZXR3b3JrQWN0aXZpdHku
Z2V0UGxhdGZvcm1PYmplY3QoKSk7CisjZW5kaWYKKyAgICB9IGVsc2UgeworICAgICAgICByb290
QWN0aXZpdHlJbmRleCA9IGZpbmRSb290TmV0d29ya0FjdGl2aXR5KHBhZ2VJRCk7CisKKyAgICAg
ICAgLy8gVGhpcyBjb3VsZCBoYXBwZW4gaWYgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyBjcmFzaGVz
LCB0YWtpbmcgaXRzCisgICAgICAgIC8vIHByZXZpb3VzIHN0YXRlIHdpdGggaXQuCisgICAgICAg
IGlmIChyb290QWN0aXZpdHlJbmRleCA9PSBub3RGb3VuZCkKKyAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAgICAgICBBU1NFUlQobV9u
ZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tyb290QWN0aXZpdHlJbmRleF0ubmV0d29ya0FjdGl2aXR5
LmdldFBsYXRmb3JtT2JqZWN0KCkpOworI2VuZGlmCisgICAgfQorCisgICAgLy8gQ3JlYXRlIGEg
dHJhY2tlciBmb3IgdGhlIGxvYWRpbmcgb2YgdGhlIG5ldyByZXNvdXJjZSwgc2V0dGluZyB0aGUg
cm9vdAorICAgIC8vIGFjdGl2aXR5IHRyYWNrZXIgYXMgaXRzIHBhcmVudC4KKworICAgIHNpemVf
dCBuZXdBY3Rpdml0eUluZGV4ID0gbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5zaXplKCk7Cisg
ICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5jb25zdHJ1Y3RBbmRBcHBlbmQocGFnZUlELCBy
ZXNvdXJjZUlEKTsKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAgIEFTU0VSVChtX25ldHdvcmtB
Y3Rpdml0eVRyYWNrZXJzW25ld0FjdGl2aXR5SW5kZXhdLm5ldHdvcmtBY3Rpdml0eS5nZXRQbGF0
Zm9ybU9iamVjdCgpKTsKKyNlbmRpZgorCisgICAgYXV0byYgbmV3QWN0aXZpdHlUcmFja2VyID0g
bV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vyc1tuZXdBY3Rpdml0eUluZGV4XTsKKyAgICBuZXdBY3Rp
dml0eVRyYWNrZXIubmV0d29ya0FjdGl2aXR5LnNldFBhcmVudChtX25ldHdvcmtBY3Rpdml0eVRy
YWNrZXJzW3Jvb3RBY3Rpdml0eUluZGV4XS5uZXR3b3JrQWN0aXZpdHkpOworICAgIG5ld0FjdGl2
aXR5VHJhY2tlci5uZXR3b3JrQWN0aXZpdHkuc3RhcnQoKTsKKworICAgIHJldHVybiBuZXdBY3Rp
dml0eVRyYWNrZXIubmV0d29ya0FjdGl2aXR5OworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpzdG9wVHJhY2tpbmdSZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciByZXNvdXJjZUlELCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpDb21wbGV0aW9uQ29kZSBj
b2RlKQoreworICAgIGlmICghbmV0d29ya0FjdGl2aXR5VHJhY2tpbmdFbmFibGVkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8gaXRlbUluZGV4ID0gZmluZE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXIocmVzb3VyY2VJRCk7CisgICAgaWYgKGl0ZW1JbmRleCA9PSBub3RGb3VuZCkgeworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAic3RvcFRyYWNraW5nUmVzb3VyY2VMb2Fk
OiBVbmFibGUgdG8gZmluZCBuZXR3b3JrIGFjdGl2aXR5IGZvciByZXNvdXJjZTogJWQiLCBzdGF0
aWNfY2FzdDxpbnQ+KHJlc291cmNlSUQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnNbaXRlbUluZGV4XS5uZXR3b3JrQWN0aXZpdHkuY29t
cGxldGUoY29kZSk7CisgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5yZW1vdmUoaXRlbUlu
ZGV4KTsKK30KKwordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RvcEFsbE5l
dHdvcmtBY3Rpdml0eVRyYWNraW5nKCkKK3sKKyAgICBpZiAoIW5ldHdvcmtBY3Rpdml0eVRyYWNr
aW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGFjdGl2aXR5
VHJhY2tlciA6IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMpCisgICAgICAgIGFjdGl2aXR5VHJh
Y2tlci5uZXR3b3JrQWN0aXZpdHkuY29tcGxldGUoTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29t
cGxldGlvbkNvZGU6Ok5vbmUpOworCisgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5jbGVh
cigpOworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdG9wQWxsTmV0
d29ya0FjdGl2aXR5VHJhY2tpbmdGb3JQYWdlKHVpbnQ2NF90IHBhZ2VJRCkKK3sKKyAgICBpZiAo
IW5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBmb3IgKGF1dG8mIGFjdGl2aXR5VHJhY2tlciA6IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMp
IHsKKyAgICAgICAgaWYgKGFjdGl2aXR5VHJhY2tlci5wYWdlSUQgPT0gcGFnZUlEKQorICAgICAg
ICAgICAgYWN0aXZpdHlUcmFja2VyLm5ldHdvcmtBY3Rpdml0eS5jb21wbGV0ZShOZXR3b3JrQWN0
aXZpdHlUcmFja2VyOjpDb21wbGV0aW9uQ29kZTo6Tm9uZSk7CisgICAgfQorCisgICAgbV9uZXR3
b3JrQWN0aXZpdHlUcmFja2Vycy5yZW1vdmVBbGxNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgYWN0
aXZpdHlUcmFja2VyKSB7CisgICAgICAgIHJldHVybiBhY3Rpdml0eVRyYWNrZXIucGFnZUlEID09
IHBhZ2VJRDsKKyAgICB9KTsKK30KKworc2l6ZV90IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpmaW5kUm9vdE5ldHdvcmtBY3Rpdml0eSh1aW50NjRfdCBwYWdlSUQpCit7CisgICAgcmV0
dXJuIG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuZmluZE1hdGNoaW5nKFsmXShjb25zdCBhdXRv
JiBpdGVtKSB7CisgICAgICAgIHJldHVybiBpdGVtLmlzUm9vdEFjdGl2aXR5ICYmIGl0ZW0ucGFn
ZUlEID09IHBhZ2VJRDsKKyAgICB9KTsKK30KKworc2l6ZV90IE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpmaW5kTmV0d29ya0FjdGl2aXR5VHJhY2tlcihSZXNvdXJjZUxvYWRJZGVudGlm
aWVyIHJlc291cmNlSUQpCit7CisgICAgcmV0dXJuIG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMu
ZmluZE1hdGNoaW5nKFsmXShjb25zdCBhdXRvJiBpdGVtKSB7CisgICAgICAgIHJldHVybiBpdGVt
LnJlc291cmNlSUQgPT0gcmVzb3VyY2VJRDsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZDcxZGMzYzgxNjA3Zjg3N2IxZmQw
YWQzZmJjMTQxNGUxMGNkZDE3Yi4uNDFjYjgyMzc0YWQ5NjQ0ODQ2ODUwZDUxM2Y1YzY3MGViOGE2
NWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgorI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRy
YWNrZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiTmV0d29ya01ETlNSZWdpc3Rlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtS
VENQcm92aWRlci5oIgpAQCAtMTExLDYgKzExMiw5IEBAIHB1YmxpYzoKICAgICAgICAgbV9uZXR3
b3JrTG9hZEluZm9ybWF0aW9uQnlJRC5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgfQogCisgICAg
c3RkOjpvcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBzdGFydFRyYWNraW5nUmVzb3Vy
Y2VMb2FkKHVpbnQ2NF90IHBhZ2VJRCwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlE
LCBib29sIGlzTWFpblJlc291cmNlKTsKKyAgICB2b2lkIHN0b3BUcmFja2luZ1Jlc291cmNlTG9h
ZChSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQsIE5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXI6OkNvbXBsZXRpb25Db2RlKTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCkBAIC0xMzMsNiArMTM3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByZWNvbm5lY3RUbyh1aW50NjRfdCBwcmVjb25uZWN0
aW9uSWRlbnRpZmllciwgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAKICAgICB2
b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOworICAgIHZv
aWQgcGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKTsKICAgICB2b2lkIHNldERl
ZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBjcm9z
c09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6VVJMJiByZWRpcmVjdFVSTCk7CiAgICAgdm9pZCBzdGFydERvd25sb2FkKFBBTDo6U2Vz
c2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwpAQCAtMTgwLDExICsxODUsNDEgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFN0
cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zKTsKICAgICB2b2lkIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOwogCisgICAgc3Ry
dWN0IFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlciB7CisgICAgICAgIFJlc291cmNlTmV0
d29ya0FjdGl2aXR5VHJhY2tlcigpID0gZGVmYXVsdDsKKyAgICAgICAgUmVzb3VyY2VOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyKGNvbnN0IFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlciYpID0g
ZGVmYXVsdDsKKyAgICAgICAgUmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyKFJlc291cmNl
TmV0d29ya0FjdGl2aXR5VHJhY2tlciYmKSA9IGRlZmF1bHQ7CisgICAgICAgIFJlc291cmNlTmV0
d29ya0FjdGl2aXR5VHJhY2tlcih1aW50NjRfdCBwYWdlSUQpCisgICAgICAgICAgICA6IHBhZ2VJ
RCB7IHBhZ2VJRCB9CisgICAgICAgICAgICAsIGlzUm9vdEFjdGl2aXR5IHsgdHJ1ZSB9CisgICAg
ICAgICAgICAsIG5ldHdvcmtBY3Rpdml0eSB7IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkxhYmVs
OjpMb2FkUGFnZSB9CisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFJlc291cmNlTmV0
d29ya0FjdGl2aXR5VHJhY2tlcih1aW50NjRfdCBwYWdlSUQsIFJlc291cmNlTG9hZElkZW50aWZp
ZXIgcmVzb3VyY2VJRCkKKyAgICAgICAgICAgIDogcGFnZUlEIHsgcGFnZUlEIH0KKyAgICAgICAg
ICAgICwgcmVzb3VyY2VJRCB7IHJlc291cmNlSUQgfQorICAgICAgICAgICAgLCBuZXR3b3JrQWN0
aXZpdHkgeyBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpMYWJlbDo6TG9hZFJlc291cmNlIH0KKyAg
ICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgdWludDY0X3QgcGFnZUlEIHsgMCB9OworICAg
ICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQgeyAwIH07CisgICAgICAgIGJv
b2wgaXNSb290QWN0aXZpdHkgeyBmYWxzZSB9OworICAgICAgICBOZXR3b3JrQWN0aXZpdHlUcmFj
a2VyIG5ldHdvcmtBY3Rpdml0eTsKKyAgICB9OworCisgICAgdm9pZCBzdG9wQWxsTmV0d29ya0Fj
dGl2aXR5VHJhY2tpbmcoKTsKKyAgICB2b2lkIHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2lu
Z0ZvclBhZ2UodWludDY0X3QgcGFnZUlEKTsKKyAgICBzaXplX3QgZmluZFJvb3ROZXR3b3JrQWN0
aXZpdHkodWludDY0X3QgcGFnZUlEKTsKKyAgICBzaXplX3QgZmluZE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlEKTsKKwogICAgIFJlZjxJUEM6
OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0
cjxOZXR3b3JrU29ja2V0U3RyZWFtPj4gbV9uZXR3b3JrU29ja2V0U3RyZWFtczsKICAgICBIYXNo
TWFwPFJlc291cmNlTG9hZElkZW50aWZpZXIsIFJlZlB0cjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+
PiBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxX
ZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBtX2Jsb2JEYXRhRmlsZVJlZmVyZW5jZXM7
CisgICAgVmVjdG9yPFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbV9uZXR3b3JrQWN0
aXZpdHlUcmFja2VyczsKIAogICAgIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgTmV0
d29ya0xvYWRJbmZvcm1hdGlvbj4gbV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOWE1YTRmMjE1NjBk
YTY3ZThhN2YwYmU2MWU1NWI2YzdkMTcxNmM0Ny4uZjRlYzYzMzExZjc3YTNiZTY3MTg3Yjg5NmQ1
MmEwMTc4YmFmNzE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCkBAIC0yNiw2ICsyNiw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBQZXJmb3JtU3luY2hyb25vdXNMb2FkKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycykg
LT4gKFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiBkYXRhKSBEZWxheWVkCiAgICAgTG9hZFBpbmcoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
KQogICAgIFJlbW92ZUxvYWRJZGVudGlmaWVyKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZp
ZXIpCisgICAgUGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKQogICAgIFNldERl
ZmVyc0xvYWRpbmcodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCBkZWZlcnMp
CiAgICAgUHJlZmV0Y2hETlMoU3RyaW5nIGhvc3RuYW1lKQogICAgIFByZWNvbm5lY3RUbyh1aW50
NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5kZXggMTZiZmJkMmYwODIyYmE4MDNkNzU2Zjdm
NWNhM2M5OWQzOWQ2YTE5Yi4uMDEwYmEwZjM4OTRmNTJhZDI3NGFkYTI1NWM3ZTMwZGVmYzQ2OGEy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
LmNwcApAQCAtNTQsNyArNTQsNyBAQCBSZWY8TmV0d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0YVRh
c2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdAogICAgICAgICBy
ZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1l
dGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVy
cy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJu
IE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJz
LnJlcXVlc3QsIHBhcmFtZXRlcnMud2ViRnJhbWVJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBh
cmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZm
aW5nUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBwYXJh
bWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRl
cnMuc2hvdWxkUHJlY29ubmVjdE9ubHksIHBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9u
KTsKKyAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGll
bnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJz
LndlYlBhZ2VJRCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVy
cy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZp
bmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSwgcGFyYW1ldGVycy5pc01haW5G
cmFtZU5hdmlnYXRpb24sIHBhcmFtZXRlcnMubmV0d29ya0FjdGl2aXR5VHJhY2tlcik7CiAjZW5k
aWYKICNpZiBVU0UoU09VUCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRl
KHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1l
dGVycy5jb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLmlzTWFpbkZyYW1lTmF2
aWdhdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaAppbmRleCA1NTUxMjJiMTVmZGEwMTJlNTZkMWRjODFlMTY4MjdlYjM3
Y2Q0ZDNiLi45YzhjODQ1ZTA4NTAyZmFhNWJkY2NkYTYzZjVhNGJmZWI2ZjlmNGZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJz
LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iRGF0YUZpbGVSZWZlcmVu
Y2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC01MSw2ICs1Miw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzTWFpbkZyYW1lTmF2aWdhdGlvbiB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFJl
ZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBibG9iRmlsZVJlZmVyZW5jZXM7
CiAgICAgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkgeyBQcmVjb25uZWN0T25s
eTo6Tm8gfTsKKyAgICBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdv
cmtBY3Rpdml0eVRyYWNrZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggM2IwZmYy
MDE4NTExNTQ0NWJhODFlODcwYjQyOTUwNTdkNTM2ZGI5MC4uMDc3YmQ3M2IwNDNjODBjMTE0NmMz
NDFiZTQ5MTM1YTU5NWM4MjhjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI5OCw2ICsyOTgsOCBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmJgogICAgIGZvciAoYXV0byYgc2NoZW1lIDogcGFyYW1ldGVycy51cmxTY2hlbWVzUmVn
aXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpCiAgICAgICAgIHJlZ2lzdGVyVVJM
U2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChzY2hlbWUpOwogCisgICAgbV90cmFj
a05ldHdvcmtBY3Rpdml0eSA9IHBhcmFtZXRlcnMudHJhY2tOZXR3b3JrQWN0aXZpdHk7CisKICAg
ICBSRUxFQVNFX0xPRyhQcm9jZXNzLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5l
dHdvcmtQcm9jZXNzOiBQcmVzZW50aW5nIHByb2Nlc3MgPSAlZCIsIHRoaXMsIFdlYkNvcmU6OnBy
ZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGNlNDEyYjQ1OTI4NmIzNjlkZjEyY2QwOGYz
MzM4NWFkOGM5ZGRkZTkuLmI5NjFhYmNiMDA5ZmQyMTJiZTE1OTY2NmIzYTE0MGE0NDI4MGYzMWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAg
LTE2Miw2ICsxNjIsOCBAQCBwdWJsaWM6CiAgICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFn
ZXImIG5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9OZXR3b3JrQ29u
dGVudFJ1bGVMaXN0TWFuYWdlcjsgfQogI2VuZGlmCiAKKyAgICBib29sIHRyYWNrTmV0d29ya0Fj
dGl2aXR5KCkgY29uc3QgeyByZXR1cm4gbV90cmFja05ldHdvcmtBY3Rpdml0eTsgfQorCiBwcml2
YXRlOgogICAgIE5ldHdvcmtQcm9jZXNzKCk7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7CkBAIC0z
MDAsNiArMzAyLDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQog
ICAgIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyIG1fTmV0d29ya0NvbnRlbnRSdWxlTGlz
dE1hbmFnZXI7CiAjZW5kaWYKKworICAgIGJvb2wgbV90cmFja05ldHdvcmtBY3Rpdml0eSB7IGZh
bHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKaW5kZXggYTg0ZTQ5OGNmZmM0OTVhMDllZjZkOWZlOTgwZWFlMWM2YzcxOWY3
Yy4uM2QyNGQyM2E0ZjUzMjNlMjg3MDIyYTE3ODRkYzNlZWNmMTgyODM0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTExNSw2ICsxMTUsOCBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29sYXRl
ZDsKICAgICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZDsKICAg
ICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVx
dWVzdDsKKworICAgIGVuY29kZXIgPDwgdHJhY2tOZXR3b3JrQWN0aXZpdHk7CiB9CiAKIGJvb2wg
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIsIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCkBAIC0yNzUs
NiArMjc3LDkgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Byb2MKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVl
c3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC50cmFja05ldHdvcmtBY3Rpdml0eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAg
IHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYzJi
NjgwYjAyNTMwNGM1N2Y3ZjQwNGJjYzJhMTlkYWMzYjg1NzExNC4uZDE0NzUzM2JhMjFlYTk4N2E3
ZTk4OWRhMDE4Y2VlN2Q5OTc3YTUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApA
QCAtMTMyLDYgKzEzMiw4IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyB7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29s
YXRlZDsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxh
eU9ubHlJZkNhblJlcXVlc3Q7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVy
ZWRBc0NPUlNFbmFibGVkOworCisgICAgYm9vbCB0cmFja05ldHdvcmtBY3Rpdml0eSB7IGZhbHNl
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA0ZmFkZmU3
NzVmZDU5OGU2ZTQzMzAxZTg2ZDkxMWNmNGRhZDgzYzE1Li5mNzg0MTNiMWMxZTczMjc0NDYwNDU2
ODRkOGY1NmJjY2RlN2ZiZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xNjUsNiArMTY1LDggQEAgdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwogCisgICAgbV9wYXJhbWV0ZXJzLm5ldHdvcmtBY3Rpdml0eVRyYWNrZXIgPSBt
X2Nvbm5lY3Rpb24tPnN0YXJ0VHJhY2tpbmdSZXNvdXJjZUxvYWQobV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCkpOworCiAgICAg
aWYgKG1fZGVmZXJzTG9hZGluZykgewogICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJz
dGFydDogTG9hZGluZyBpcyBkZWZlcnJlZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJh
bWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICByZXR1cm47CkBAIC0zMDQsMTAgKzMwNiwx
NSBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRl
ZmVycykKICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic2V0RGVmZXJzTG9hZGluZzog
ZGVmZXJzID0gJWQsIGJ1dCBub3RoaW5nIHRvIGRvIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9kZWZlcnNM
b2FkaW5nLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwg
bV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6Y2xlYW51cCgpCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2FkUmVz
dWx0IHJlc3VsdCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgbV9j
b25uZWN0aW9uLT5zdG9wVHJhY2tpbmdSZXNvdXJjZUxvYWQobV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIsCisgICAgICAgIHJlc3VsdCA9PSBMb2FkUmVzdWx0OjpTdWNjZXNzID8gTmV0d29ya0FjdGl2
aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNvZGU6OlN1Y2Nlc3MgOgorICAgICAgICByZXN1bHQgPT0g
TG9hZFJlc3VsdDo6RmFpbHVyZSA/IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkNvbXBsZXRpb25D
b2RlOjpGYWlsdXJlIDoKKyAgICAgICAgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlv
bkNvZGU6Ok5vbmUpOworCiAgICAgbV9idWZmZXJpbmdUaW1lci5zdG9wKCk7CiAKICAgICBpbnZh
bGlkYXRlU2FuZGJveEV4dGVuc2lvbnMoKTsKQEAgLTM0MCw3ICszNDcsNyBAQCB2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQoKQogICAgICAgICBtX25ldHdvcmtMb2FkLT5jYW5jZWwo
KTsKICAgICB9CiAKLSAgICBjbGVhbnVwKCk7CisgICAgY2xlYW51cChMb2FkUmVzdWx0OjpDYW5j
ZWwpOwogfQogCiBzdGF0aWMgYm9vbCBhcmVGcmFtZUFuY2VzdG9yc1NhbWVTaXRlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPj4mIGZyYW1lQW5jZXN0b3JPcmlnaW5zKQpAQCAtNTEyLDcgKzUxOSw3IEBAIHZvaWQgTmV0
d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0
cmljcyYgbmV0d29ya0xvCiAKICAgICB0cnlTdG9yZUFzQ2FjaGVFbnRyeSgpOwogCi0gICAgY2xl
YW51cCgpOworICAgIGNsZWFudXAoTG9hZFJlc3VsdDo6U3VjY2Vzcyk7CiB9CiAKIHZvaWQgTmV0
d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGYWlsTG9hZGluZyhjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvcikKQEAgLTUzMiw3ICs1MzksNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlk
RmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgfSBlbHNlIGlmIChh
dXRvKiBjb25uZWN0aW9uID0gbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSkKICAgICAgICAgY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRpZEZhaWxSZXNvdXJj
ZUxvYWQoZXJyb3IpLCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpKTsKIAotICAgIGNsZWFu
dXAoKTsKKyAgICBjbGVhbnVwKExvYWRSZXN1bHQ6OkZhaWx1cmUpOwogfQogCiB2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCkBAIC03
NDMsNyArNzUwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJldHJpZXZlQ2Fj
aGVFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjoKICAgICBpZiAoaXNTeW5jaHJv
bm91cygpKSB7CiAgICAgICAgIG1fc3luY2hyb25vdXNMb2FkRGF0YS0+cmVzcG9uc2UgPSBXVEZN
b3ZlKHJlc3BvbnNlKTsKICAgICAgICAgc2VuZFJlcGx5VG9TeW5jaHJvbm91c1JlcXVlc3QoKm1f
c3luY2hyb25vdXNMb2FkRGF0YSwgZW50cnktPmJ1ZmZlcigpKTsKLSAgICAgICAgY2xlYW51cCgp
OworICAgICAgICBjbGVhbnVwKExvYWRSZXN1bHQ6OlN1Y2Nlc3MpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC03NzcsNyArNzg0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmNvbnRpbnVlUHJvY2Vzc2luZ0NhY2hlZEVudHJ5QWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKHJldHJpZXZlZEFsbCkgewogICAg
ICAgICAgICAgICAgICAgICBsb2FkZXItPnNlbmRSZXN1bHRGb3JDYWNoZUVudHJ5KFdURk1vdmUo
ZW50cnkpKTsKLSAgICAgICAgICAgICAgICAgICAgbG9hZGVyLT5jbGVhbnVwKCk7CisgICAgICAg
ICAgICAgICAgICAgIGxvYWRlci0+Y2xlYW51cChMb2FkUmVzdWx0OjpTdWNjZXNzKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQpAQCAtNzg2LDcgKzc5Myw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVByb2Nlc3NpbmdDYWNoZWRF
bnRyeUFmdGVyRGlkUmVjZWl2ZVJlc3BvbnNlCiAKICAgICBzZW5kUmVzdWx0Rm9yQ2FjaGVFbnRy
eShXVEZNb3ZlKGVudHJ5KSk7CiAKLSAgICBjbGVhbnVwKCk7CisgICAgY2xlYW51cChMb2FkUmVz
dWx0OjpTdWNjZXNzKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlbmRSZXN1
bHRGb3JDYWNoZUVudHJ5KHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiBlbnRy
eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oCmluZGV4IDg3Njk3MDhjMGEyMDBkZDI2MWJmMTZmZjkyNjY5ZThhMjM2NDU0OGEu
LjAwOWZmOWIwMDJlMDY1NzVhMDU1NjE0MTJhNGNmYmJmMzFhMTE5YmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAt
MTM0LDcgKzEzNCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnROZXR3b3JrTG9hZChXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgRmlyc3RMb2FkKTsKICAgICB2b2lkIGNvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlKCk7CiAKLSAgICB2b2lkIGNsZWFudXAoKTsKKyAgICBlbnVtIGNsYXNz
IExvYWRSZXN1bHQgeworICAgICAgICBVbmtub3duLAorICAgICAgICBTdWNjZXNzLAorICAgICAg
ICBGYWlsdXJlLAorICAgICAgICBDYW5jZWwKKyAgICB9OworICAgIHZvaWQgY2xlYW51cChMb2Fk
UmVzdWx0KTsKICAgICAKICAgICB2b2lkIHBsYXRmb3JtRGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIApAQCAtMTUzLDcgKzE1OSw3IEBAIHByaXZh
dGU6CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHNhbml0aXplUmVzcG9uc2VJZlBv
c3NpYmxlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZTo6U2FuaXRpemF0aW9uVHlwZSk7CiAKLSAgICBjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycyBtX3BhcmFtZXRlcnM7CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMgbV9wYXJhbWV0ZXJzOwogCiAgICAgUmVmPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
PiBtX2Nvbm5lY3Rpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0FjdGl2aXR5VHJhY2tlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29jb2EubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDM3MDVhNTkzZGM0NWUwNTQxMTFlZTI1NGUyYzM3MGQ4OGY0NjhiZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0FjdGl2
aXR5VHJhY2tlckNvY29hLm1tCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgorCisjaWYg
SEFWRShOV19BQ1RJVklUWSkKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK05ldHdvcmtBY3Rpdml0
eVRyYWNrZXI6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXIoTGFiZWwgbGFiZWwsIERvbWFpbiBkb21h
aW4pCisgICAgOiBtX2RvbWFpbihkb21haW4pCisgICAgLCBtX2xhYmVsKGxhYmVsKQorICAgICwg
bV9uZXR3b3JrQWN0aXZpdHkoYWRvcHROUyhud19hY3Rpdml0eV9jcmVhdGUoc3RhdGljX2Nhc3Q8
dWludDMyX3Q+KG1fZG9tYWluKSwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fbGFiZWwpKSkpCit7
Cit9CisKK05ldHdvcmtBY3Rpdml0eVRyYWNrZXI6On5OZXR3b3JrQWN0aXZpdHlUcmFja2VyKCkK
K3sKK30KKwordm9pZCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpzZXRQYXJlbnQoTmV0d29ya0Fj
dGl2aXR5VHJhY2tlciYgcGFyZW50KQoreworICAgIEFTU0VSVChtX25ldHdvcmtBY3Rpdml0eS5n
ZXQoKSk7CisgICAgQVNTRVJUKHBhcmVudC5tX25ldHdvcmtBY3Rpdml0eS5nZXQoKSk7CisgICAg
bndfYWN0aXZpdHlfc2V0X3BhcmVudF9hY3Rpdml0eShtX25ldHdvcmtBY3Rpdml0eS5nZXQoKSwg
cGFyZW50Lm1fbmV0d29ya0FjdGl2aXR5LmdldCgpKTsKK30KKwordm9pZCBOZXR3b3JrQWN0aXZp
dHlUcmFja2VyOjpzdGFydCgpCit7CisgICAgQVNTRVJUKG1fbmV0d29ya0FjdGl2aXR5LmdldCgp
KTsKKyAgICBud19hY3Rpdml0eV9hY3RpdmF0ZShtX25ldHdvcmtBY3Rpdml0eS5nZXQoKSk7Cit9
CisKK3ZvaWQgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Y29tcGxldGUoQ29tcGxldGlvbkNvZGUg
Y29kZSkKK3sKKyAgICBpZiAobV9pc0NvbXBsZXRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9pc0NvbXBsZXRlZCA9IHRydWU7CisKKyAgICBBU1NFUlQobV9uZXR3b3JrQWN0aXZpdHkuZ2V0
KCkpOworICAgIGF1dG8gcmVhc29uID0KKyAgICAgICAgY29kZSA9PSBDb21wbGV0aW9uQ29kZTo6
Tm9uZSA/IG53X2FjdGl2aXR5X2NvbXBsZXRpb25fcmVhc29uX25vbmUgOgorICAgICAgICBjb2Rl
ID09IENvbXBsZXRpb25Db2RlOjpTdWNjZXNzID8gbndfYWN0aXZpdHlfY29tcGxldGlvbl9yZWFz
b25fc3VjY2VzcyA6CisgICAgICAgIGNvZGUgPT0gQ29tcGxldGlvbkNvZGU6OkZhaWx1cmUgPyBu
d19hY3Rpdml0eV9jb21wbGV0aW9uX3JlYXNvbl9mYWlsdXJlIDoKKyAgICAgICAgbndfYWN0aXZp
dHlfY29tcGxldGlvbl9yZWFzb25faW52YWxpZDsKKyAgICBud19hY3Rpdml0eV9jb21wbGV0ZV93
aXRoX3JlYXNvbihtX25ldHdvcmtBY3Rpdml0eS5nZXQoKSwgcmVhc29uKTsKKyAgICBtX25ldHdv
cmtBY3Rpdml0eS5jbGVhcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEhBVkUoTldfQUNUSVZJVFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggOTc1MzkyOTI0MGU2
MGVhNTZmZjQxYWVkNTIyYzM2YmFjYTJhNDM4Yy4uZTc1Y2VjZjk5Mjc2OTljZjVkMTU4ODliNWU5
Y2NmOTI4ZDdmYmI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtMjUsNiArMjUsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKICNpbmNs
dWRlICJOZXR3b3JrRGF0YVRhc2suaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJXaUZpQXNzZXJ0aW9uSG9sZGVyLmgiCkBAIC00MSw5ICs0Miw5IEBAIGNs
YXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5h
bCA6IHB1YmxpYyBOZXR3b3JrRGF0YVRhc2sgewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vz
c2lvbkNvY29hOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVh
dGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29s
IGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQorICAgIHN0YXRpYyBSZWY8TmV0d29y
a0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlm
ZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1Nu
aWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNv
bm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBzdGQ6Om9w
dGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShz
ZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYs
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5l
Y3RPbmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbikpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJl
cXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENv
bnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5LCBkYXRhVGFza0lz
Rm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgbmV0d29ya0FjdGl2aXR5VHJhY2tlcikpOwogICAgIH0K
IAogICAgIH5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtODEsNyArODIsNyBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vz
c2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zv
ck1haW5GcmFtZU5hdmlnYXRpb24pOworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtT
ZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJD
b3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lz
Rm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgc3RkOjpvcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFj
a2VyPik7CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5k
bGVyJik7CiAgICAgdm9pZCBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5m
ZXJmYWNlSWZOZWVkZWQoTlNVUkxSZXF1ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBi
b29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4
IDU3MTI3OTg3NjBhMDQ3ZWRmYTgwNDNkODIzNDNlYjY4NTVkZGMwYzMuLmE4ZjQ4MmM3OWQ0ZDkz
ZjVlMjZiMWNiYzhiM2MxYzQ1YTc0MmU4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNTUs
NiArNTUsMTAgQEAgQHByb3BlcnR5IChyZWFkd3JpdGUpIEJPT0wgX2lzVG9wTGV2ZWxOYXZpZ2F0
aW9uOwogQGVuZAogI2VuZGlmCiAKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorI2ltcG9ydCA8Q0ZO
ZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKICNpZiBVU0UoQ1JFREVOVElBTF9TVE9SQUdFX1dJVEhfTkVUV09SS19TRVNTSU9OKQpAQCAt
MTc1LDcgKzE3OSw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVRhc2tXaXRoRmlyc3RQYXJ0eUZvclNh
bWVTaXRlQ29va2llcyhOU1VSTFNlc3Npb25EYXRhVGFzayogdGFzCiAjZW5kaWYKIH0KIAotTmV0
d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBz
ZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29u
dGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRD
b250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRh
VGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbikKK05ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3
b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNr
Q2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdp
dGhDcmVkZW50aWFscywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJv
b2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9u
bHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmln
YXRpb24sIHN0ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2
aXR5VHJhY2tlcikKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVl
c3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdh
dGlvbikKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9wYWdlSUQocGFnZUlEKQpA
QCAtMjY3LDYgKzI3MSwxMSBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNr
Q29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogICAgICAgICBtX3Rh
c2suZ2V0KCkucHJpb3JpdHkgPSB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShyZXF1ZXN0LnBy
aW9yaXR5KCkpOwogCiAgICAgdXBkYXRlVGFza1dpdGhGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29r
aWVzKG1fdGFzay5nZXQoKSwgcmVxdWVzdCk7CisKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAg
IGlmIChuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorICAgICAgICBtX3Rhc2suZ2V0KCkuX253X2Fj
dGl2aXR5ID0gbmV0d29ya0FjdGl2aXR5VHJhY2tlci52YWx1ZSgpLmdldFBsYXRmb3JtT2JqZWN0
KCk7CisjZW5kaWYKIH0KIAogTmV0d29ya0RhdGFUYXNrQ29jb2E6On5OZXR3b3JrRGF0YVRhc2tD
b2NvYSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGZlMWU5YzlmN2I5M2VkYTllZjFlMmZi
ZGU3ZjYzOTc3ZTdiOWYzYzEuLmE2OWRiMDcxN2E5NDY5M2JhN2E5ODVhMWJiNWZmZGJjZGYyNDc5
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBAIC0xMzAsNiArMTMwLDcgQEAgUmVmPFByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KCkKICAg
ICBjb3B5LT5tX3Byb2Nlc3NTd2Fwc09uTmF2aWdhdGlvbiA9IHRoaXMtPm1fcHJvY2Vzc1N3YXBz
T25OYXZpZ2F0aW9uOwogICAgIGNvcHktPm1fYWx3YXlzS2VlcEFuZFJldXNlU3dhcHBlZFByb2Nl
c3NlcyA9IHRoaXMtPm1fYWx3YXlzS2VlcEFuZFJldXNlU3dhcHBlZFByb2Nlc3NlczsKICAgICBj
b3B5LT5tX3Byb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgPSB0aGlzLT5tX3Byb2Nl
c3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXI7CisgICAgY29weS0+bV90cmFja05ldHdvcmtB
Y3Rpdml0eSA9IHRoaXMtPm1fdHJhY2tOZXR3b3JrQWN0aXZpdHk7CiAKICAgICByZXR1cm4gY29w
eTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCBlM2I3ZDQ5YWJiZDlhYjliZmQwOWVkZGFiYTMx
OTVlMzlhYjk0ZDU3Li5lZGJkMDllMGI3NzFmN2U3NDNiZTkzMWU1ZGQyNmRhYjQ3YzkzNmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oCkBAIC0xNDQsNiArMTQ0LDkgQEAgcHVibGljOgogICAgIGJvb2wg
cHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJv
Y2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcjsgfQogICAgIHZvaWQgc2V0UHJvY2Vzc1N3
YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihib29sIHN3YXBzKSB7IG1fcHJvY2Vzc1N3YXBzT25X
aW5kb3dPcGVuV2l0aE9wZW5lciA9IHN3YXBzOyB9CiAKKyAgICBib29sIHRyYWNrTmV0d29ya0Fj
dGl2aXR5KCkgY29uc3QgeyByZXR1cm4gbV90cmFja05ldHdvcmtBY3Rpdml0eTsgfQorICAgIHZv
aWQgc2V0VHJhY2tOZXR3b3JrQWN0aXZpdHkoYm9vbCB0cmFjaykgeyBtX3RyYWNrTmV0d29ya0Fj
dGl2aXR5ID0gdHJhY2s7IH0KKwogcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkSGF2ZUxlZ2Fj
eURhdGFTdG9yZSB7IGZhbHNlIH07CiAKQEAgLTE3OCw2ICsxODEsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9h
bHdheXNLZWVwQW5kUmV1c2VTd2FwcGVkUHJvY2Vzc2VzIHsgZmFsc2UgfTsKICAgICBib29sIG1f
cHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lciB7IGZhbHNlIH07CisgICAgYm9vbCBt
X3RyYWNrTmV0d29ya0FjdGl2aXR5IHsgZmFsc2UgfTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBXVEY6OlN0cmluZyBtX2N0RGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5jcHAKaW5kZXggYTNkNGE1ODYxYTc2NjE2ZmQyNjEzOTNkYzFiMWRiZTQ4MDFhMjJhMC4u
YzU2ZTdkNTU4NDUzZDU0NDhkOWU3ZTlhYTRhNmNmMDVjM2QzMDVmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZi5jcHAKQEAgLTE4NywzICsxODcsMTMgQEAgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9u
U2V0UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihXS0NvbnRleHRDb25maWcKIHsK
ICAgICB0b0ltcGwoY29uZmlndXJhdGlvbiktPnNldFByb2Nlc3NTd2Fwc09uV2luZG93T3Blbldp
dGhPcGVuZXIoc3dhcHMpOwogfQorCitib29sIFdLQ29udGV4dENvbmZpZ3VyYXRpb25UcmFja05l
dHdvcmtBY3Rpdml0eShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7
CisgICAgcmV0dXJuIHRvSW1wbChjb25maWd1cmF0aW9uKS0+dHJhY2tOZXR3b3JrQWN0aXZpdHko
KTsKK30KKwordm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0VHJhY2tOZXR3b3JrQWN0aXZp
dHkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBib29sIHRyYWNrKQor
eworICAgIHRvSW1wbChjb25maWd1cmF0aW9uKS0+c2V0VHJhY2tOZXR3b3JrQWN0aXZpdHkodHJh
Y2spOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0Q29uZmlndXJhdGlvblJlZi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0Q29uZmlndXJhdGlvblJlZi5oCmluZGV4IGE3NTkzNDIxZDRmNWVkZDhmMzFlZjRlZjhm
OTc5ZWZmZGY3NjI5ZDIuLmQ3OTUzNWMxYTY2NDg2MjBkNzdmMDFlYjg0MjljNjAyMjdhNTlkMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZp
Z3VyYXRpb25SZWYuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmLmgKQEAgLTc3LDYgKzc3LDkgQEAgV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0Q29uZmlndXJhdGlvblNldEFsd2F5c0tlZXBBbmRSZXVzZVN3YXBwZWRQcm9jZXNzZXMo
V0tDb24KIFdLX0VYUE9SVCBib29sIFdLQ29udGV4dENvbmZpZ3VyYXRpb25Qcm9jZXNzU3dhcHNP
bldpbmRvd09wZW5XaXRoT3BlbmVyKFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJh
dGlvbik7CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0UHJvY2Vzc1N3
YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZp
Z3VyYXRpb24sIGJvb2wgc3dhcHMpOwogCitXS19FWFBPUlQgYm9vbCBXS0NvbnRleHRDb25maWd1
cmF0aW9uVHJhY2tOZXR3b3JrQWN0aXZpdHkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25m
aWd1cmF0aW9uKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRUcmFj
a05ldHdvcmtBY3Rpdml0eShXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24s
IGJvb2wgdHJhY2spOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDYwMjk1ZmVhNzY1MzAwMDUyMDNhMDU1NTg1N2I1MzYx
MjBkMjIwZTguLjQyNGU0ZjQwZTBjN2ViZjRkMWZlNDQxNzYyNjgxMmI1ODQ4N2FkNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTYwLDYgKzYwLDcgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgcHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWx3
YXlzS2VlcEFuZFJldXNlU3dhcHBlZFByb2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IHByb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCB0cmFja05ldHdvcmtBY3Rpdml0eSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5tbQppbmRleCA1NDdlYzg5NzhkYjVkZjQwZmFkMDNmZTAyMzAzYTAzYzFjOTZhZDg1Li41
YjY5YjYxOWEzYzNjOTQ1NWE3N2M1MDIxMDAzOGZjYTIwN2M0ODUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24ubW0KQEAgLTI1Nyw2ICsyNTcsMTYgQEAgLSAoQk9PTClwcm9jZXNzU3dh
cHNPbldpbmRvd09wZW5XaXRoT3BlbmVyCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24tPnByb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIoKTsKIH0KIAorLSAoQk9P
TCl0cmFja05ldHdvcmtBY3Rpdml0eQoreworICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLT50cmFja05ldHdvcmtBY3Rpdml0eSgpOworfQorCistICh2b2lkKXNldFRyYWNrTmV0
d29ya0FjdGl2aXR5OihCT09MKXRyYWNrCit7CisgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi0+c2V0VHJhY2tOZXR3b3JrQWN0aXZpdHkodHJhY2spOworfQorCiAjaWYgUExBVEZPUk0oSU9T
KQogLSAoTlNTdHJpbmcgKilDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGUKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBjYTU0OGJlMWRmYTY1N2Q4
YWIwNDE2MmZkZGQ2Y2NiMWU1YWU1ZDdlLi5jNTM0ODczZjk4ZTE5MTkxNWI1ZWM2OGM5ODIxMDY3
YTNjZjc4OGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CkBAIC00OTQsNiArNDk0LDggQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6
OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqIHdpdGgKICAgICBwYXJhbWV0
ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZCA9IGNvcHlUb1ZlY3RvcihtX3Nj
aGVtZXNUb1JlZ2lzdGVyQXNDT1JTRW5hYmxlZCk7CiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVz
UmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QgPSBjb3B5VG9WZWN0b3IobV9z
Y2hlbWVzVG9SZWdpc3RlckFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpOwogCisgICAgcGFy
YW1ldGVycy50cmFja05ldHdvcmtBY3Rpdml0eSA9IG1fY29uZmlndXJhdGlvbi0+dHJhY2tOZXR3
b3JrQWN0aXZpdHkoKTsKKwogICAgIC8vIEFkZCBhbnkgcGxhdGZvcm0gc3BlY2lmaWMgcGFyYW1l
dGVycwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKHBhcmFtZXRlcnMpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA4ODJiYjhhYWRiMmRjMDExODRjNGMzZmI3N2ZiN2YzNmU1ZmY5YWI0Li4yZDY0YWZiYzJlNmQx
NDMwYzhhODMwMjIzZmIxYWZmMDE5MTMwNWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyMTEsMTAgKzEyMTEsMTMgQEAKIAkJNTMw
MjU4NDUxRENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVwbGF5ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMDI1ODM4MURDQkJEMUQw
MERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlcGxheWVyLmggKi87IH07CiAJCTUzMDI1ODQ2MURD
QkJEMjIwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMwMjU4MzkxRENCQkQxRDAwREE4OUMy
IC8qIE5ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAgKi87IH07CiAJCTUzMDI1ODQ3MURDQkJEMjIw
MERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMDI1ODNBMURDQkJEMUQwMERBODlDMiAvKiBOZXR3
b3JrRGF0YVRhc2tSZXBsYXkuaCAqLzsgfTsKKwkJNTMxNTg3NkMyMDc2Qjc2MjAwNEJGOUYzIC8q
IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMTU4NzZCMjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyQ29jb2EubW0gKi87IH07CiAJCTUzMjE1OTUzMURCQUU3MTgwMDU0QUEz
QyAvKiBOZXR3b3JrU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MzIxNTk1MjFEQkFFNkZDMDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb24u
Y3BwICovOyB9OwogCQk1MzIxNTk1NDFEQkFFNzFEMDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNr
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjE1
OTUxMURCQUU2RkMwMDU0QUEzQyAvKiBOZXR3b3JrRGF0YVRhc2suY3BwICovOyB9OwogCQk1MzIx
NTk1NTFEQkFFNzI5MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMyMTU5NTAxREJBRTZENzAwNTRB
QTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EuaCAqLzsgfTsKIAkJNTMyMTU5NTYxREJBRTcyRDAw
NTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIxNTk0RjFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29y
a0RhdGFUYXNrQ29jb2EuaCAqLzsgfTsKKwkJNTM1QkNCOTIyMDY5QzQ5QzAwQ0NDRTAyIC8qIE5l
dHdvcmtBY3Rpdml0eVRyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUzNUJDQjkwMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlU
cmFja2VyLmggKi87IH07CisJCTUzNzlEQjcyMjA3RTk0NzAwMDdEOEMzMyAvKiBOZXR3b3JrQWN0
aXZpdHlUcmFja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzRjNDQUE1MjA2QzQ0M0UwMDg2NDkwRSAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
LmNwcCAqLzsgfTsKIAkJNTNCQTQ3RDAxREMyRUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRhVGFz
a0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTM5RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwICovOyB9
OwogCQk1M0JBNDdEMTFEQzJFRjVFMDA0REY0QUQgLyogTmV0d29ya0RhdGFUYXNrQmxvYi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM5RUI1NDcxREMy
RUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCAqLzsgfTsKIAkJNTNERUEzNjYx
RERFNDIzMTAwRTgyNjQ4IC8qIGpzb24uaHBwIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTNERUEzNjUxRERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBwICov
OyB9OwpAQCAtMzY1OSwxMyArMzY2MiwxNiBAQAogCQk1MzAyNTgzODFEQ0JCRDFEMDBEQTg5QzIg
LyogTmV0d29ya0NhcHR1cmVSZXBsYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBOZXR3b3JrQ2FwdHVyZVJlcGxheWVyLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL05ldHdvcmtDYXB0dXJlUmVwbGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTMwMjU4MzkxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrRGF0YVRhc2tSZXBs
YXkuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBs
YXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzAyNTgzQTFEQ0JCRDFEMDBE
QTg5QzIgLyogTmV0d29ya0RhdGFUYXNrUmVwbGF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza1JlcGxheS5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTMxNTg3NkIyMDc2QjcxMzAwNEJGOUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXJDb2NvYS5tbTsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0NvY29hLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0NvY29hLmg7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MzIxNTk1MDFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya1Nl
c3Npb25Db2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrU2Vz
c2lvbkNvY29hLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMjE1OTUxMURCQUU2RkMwMDU0
QUEzQyAvKiBOZXR3b3JrRGF0YVRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gTmV0d29ya0RhdGFUYXNrLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtEYXRhVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMjE1OTUyMURC
QUU2RkMwMDU0QUEzQyAvKiBOZXR3b3JrU2Vzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrU2Vzc2lvbi5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzNUJD
QjkwMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtBY3Rpdml0eVRyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM5
RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA7IHBh
dGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTM5RUI1NDcxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRh
VGFza0Jsb2IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0RhdGFU
YXNrQmxvYi5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0RFQTM2NTFEREU0MjJFMDBFODI2NDggLyog
anNvbi5ocHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBuYW1lID0ganNvbi5ocHA7IHBh
dGggPSBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL2pzb24uaHBwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1M0YzQ0FBNTIwNkM0NDNFMDA4NjQ5MEUgLyogTmV0d29ya0FjdGl2aXR5VHJh
Y2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrQWN0
aXZpdHlUcmFja2VyLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRy
YWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzUwRjMyQTIwMzJENEU1
MDAzODkzNDcgLyogTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFt
ZSA9IExvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9Mb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNE
S1JPT1Q7IH07CiAJCTU3NjA4MjhCMjAyOTg1NDIwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01l
c3Nlbmdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDcmVkZW50aWFsc01lc3Nlbmdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzYwODI4QzIwMjk4NTQyMDAxMTY2NzggLyogV2Vi
Q3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ3JlZGVudGlh
bHNNZXNzZW5nZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQwMCw2ICs2
NDA2LDggQEAKIAkJCQkyREE5NDRCQjE4ODUxMUREMDBFRDg2REIgLyogaW9zICovLAogCQkJCTUx
MENDN0RDMTYxMzhFMjkwMEQwM0VEMyAvKiBtYWMgKi8sCiAJCQkJNDEzMDc1OTcxREU4NEVENzAw
MzlFQzY5IC8qIHdlYnJ0YyAqLywKKwkJCQk1M0YzQ0FBNTIwNkM0NDNFMDA4NjQ5MEUgLyogTmV0
d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgKi8sCisJCQkJNTM1QkNCOTAyMDY5QzQ5QzAwQ0NDRTAy
IC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCAqLywKIAkJCQk1MTNBMTY0OTE2MzBBOUJGMDA1
RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovLAogCQkJCTUxM0Ex
NjRBMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICov
LAogCQkJCTUxM0ExNjRCMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKQEAgLTY5MjYsNiArNjkzNCw3IEBACiAJCTdFQzRGMEY4
MThFNEE5MjIwMDgwNTZBRiAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNTMxNTg3NkIyMDc2QjcxMzAwNEJGOUYzIC8qIE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXJDb2NvYS5tbSAqLywKIAkJCQk1MzIxNTk0RjFEQkFFNkQ3MDA1NEFBM0MgLyog
TmV0d29ya0RhdGFUYXNrQ29jb2EuaCAqLywKIAkJCQk1Q0JDOUI4QjFDNjUyNTczMDBBOEZEQ0Yg
LyogTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gKi8sCiAJCQkJN0VDNEYwRjkxOEU0QTk0NTAwODA1
NkFGIC8qIE5ldHdvcmtQcm9jZXNzQ29jb2EubW0gKi8sCkBAIC05MDE1LDYgKzkwMjQsNyBAQAog
CQkJCTFBNkZCRDI4MTFFNjlCQzIwMERCMTM3MSAvKiBOZXRzY2FwZVBsdWdpbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE0QTlDNTYxMkI4MTZDRjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9k
dWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE1ODg5MjExRUU3MDQwMDA2MUI4ODIgLyogTmV0
c2NhcGVQbHVnaW5TdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTUzNUJDQjkyMjA2OUM0OUMw
MENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MTc5OEM3QTE2RTY4MTg4MDAyNDAxMzkgLyogTmV0d29ya0Jsb2JSZWdpc3RyeS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTQ0MzZFQ0MxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTQ5RDQwRDcxQUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNo
ZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKQEAgLTEwNjgyLDYgKzEwNjkyLDcgQEAKIAkJ
CQkyRDUwMzY1RTFCQ0M3OTNGMDBFMjBCQjMgLyogTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkRBOTQ0OUUxODg0RTRGMDAwRUQ4NkRCIC8qIE5hdGl2ZVdl
YktleWJvYXJkRXZlbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMDJCRkYxRTEyNTE1MDJF
MDA5Q0NCRUEgLyogTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTFDOUVCQTVDMjA4N0U3NEYwMDA1NDQyOSAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50SU9TLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzFFQTI1RDIxMzRGNzhDMDAwNUIxNDUyIC8qIE5hdGl2ZVdl
Yk1vdXNlRXZlbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREE5NDQ5RjE4ODRFNEYwMDBF
RDg2REIgLyogTmF0aXZlV2ViVG91Y2hFdmVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCURG
NThDNjM2MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0xMDY5Myw2ICsxMDcwNCw4IEBACiAJCQkJMUE0QTlDNTUxMkI4MTZDRjAw
OEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
NEE5QzlBMTJCODIxQ0QwMDhGRTk4NCAvKiBOZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBQTU4ODkzMTFFRTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBsdWdp
blN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1Mzc5REI3MjIwN0U5NDcwMDA3RDhDMzMg
LyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MzE1ODc2
QzIwNzZCNzYyMDA0QkY5RjMgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlckNvY29hLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTE3OThDNzkxNkU2ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVn
aXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0MzZFQ0ExQTBEMDNGQTAwRUFEMjA0IC8q
IE5ldHdvcmtDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlENDBEOTFBRDNGQjIxMDA2
NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0x
MDcwOCw3ICsxMDcyMSw2IEBACiAJCQkJODMyQUUyNTMxQkUyRThDRDAwRkFBRTEwIC8qIE5ldHdv
cmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODNC
RENDQjkxQUM1RkRCNjAwM0Y2NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTQ0MzZFRDAxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZVN0
b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMUM5RUJBNUMyMDg3RTc0RjAwMDU0NDI5IC8q
IE5hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQk4MzEwNDI4QzFC
RDZCNjZGMDBBNzE1RTQgLyogTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTMwMjU4M0QxRENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJl
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMwMjU4NDAxRENCQkQyMjAwREE4OUMyIC8q
IE5ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRl
eCBkODUzZjU4ZTQ0Y2VlYzkwNzUzNGRkYThkZDc5MWNlYmU3MTcwYzAyLi43Mzc3OTJmNmViOTMz
ZjczZTQyNmNmZjc3NzU4NDhhMzk4Y2FiYTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC01MjIsNiArNTIy
LDExIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
RnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgfQogfQogCit2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRlZCh1aW50NjRfdCB3ZWJQYWdlSUQpCit7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpQYWdlTG9hZENvbXBsZXRlZCh3ZWJQYWdlSUQpLCAwKTsKK30KKwogc3RhdGljIHVpbnQ2NF90
IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlm
aWVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5oCmluZGV4IDY1Nzg2MzMwYzJhOGJjY2UxNzRhZTQ5OTQ4ODUyMmRmOGUz
ZTk1MjQuLjk2OTI1YmMwNTgxNmI5MGJkM2NiZGU2YTY4MTQ5YTVlZDkwMDNjZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
aApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBsb2FkUmVzb3VyY2Uo
V2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+
JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpG
cmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGlj
eSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRl
ck1hcCYsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgVmVjdG9yPGNoYXI+JiBkYXRhKSBmaW5hbDsKKyAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVk
KHVpbnQ2NF90IHdlYlBhZ2VJRCkgZmluYWw7CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRlciosIGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291
cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwCmluZGV4IGM2MGIyZTQ1MzM1YzNhMDQ2YzRlMjc3Y2I3ZTRiZTY3NjhjN2NjYzkuLjY0MWU2
N2MzNmViZjQ4NmM3N2Q0MDBjNjE0YTAwNjVjYzQ0ZDVkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAKQEAgLTExMSw2ICsxMTEsMTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGUK
ICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShmcmFtZUxvYWRl
ci5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6
RG9Ob3RVc2UgOiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlLCBlcnJvciwgcmVzcG9uc2Us
IGRhdGEpOwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cGFnZUxvYWRDb21w
bGV0ZWQodWludDY0X3QgLyp3ZWJQYWdlSUQqLykKK3sKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6OnNjaGVkdWxlUGx1Z2luU3RyZWFtTG9hZChGcmFtZSYgZnJhbWUsIE5ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1
Z0luU3RyZWFtTG9hZGVyPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBOZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlcjo6Y3JlYXRlKGZyYW1lLCBjbGllbnQsIFdURk1vdmUocmVxdWVz
dCksIFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSAoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYmIGxvYWRlcikg
bXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3Jl
U3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCA4ODI4YjU0OThhY2VkMzY4
YzU2YWI4YTg1NTczOTM3MzI0NWYwYWRiLi43NzBkNjNlZmM2YWM5ODkxNzBkZTQ2ZWE3YzM4NTVh
MjBhYzY1ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
Q29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTUxLDYgKzUxLDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3Jl
OjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0
cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxv
bmcsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENyZWRl
bnRpYWxQb2xpY3ksIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6
OkhUVFBIZWFkZXJNYXAmLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYpIGZpbmFsOworICAgIHZvaWQgcGFnZUxvYWRDb21w
bGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKSBmaW5hbDsKKwogICAgIHZvaWQgcmVtb3ZlKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyKikgZmluYWw7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdl
YkNvcmU6OlJlc291cmNlTG9hZGVyKiwgYm9vbCkgZmluYWw7CiAgICAgdm9pZCBjcm9zc09yaWdp
blJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqLCBjb25zdCBXZWJDb3Jl
OjpVUkwmIHJlZGlyZWN0VVJMKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339351</attachid>
            <date>2018-05-02 15:01:24 -0700</date>
            <delta_ts>2018-05-02 17:31:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184838-20180502150123.patch</filename>
            <type>text/plain</type>
            <size>69882</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMxMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNiOGY4OTcyNjdhNTMx
NmI2YTk1ZTAxOWU1OWI1MTMxOGM4MGViMi4uZDdjODk3ZWZlMzgzNDBhMmFiYjcwYTE2MzhkZTZm
NGU5Zjg2M2M2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTA0LTMwICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgZmFjaWxpdHkgZm9y
IHRyYWNraW5nIHRpbWVzIGFuZCByZXN1bHRzIG9mIHBhZ2UgYW5kIHJlc291cmNlIGxvYWRpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDgzOAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY1NDg5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIEZyYW1lUHJvZ3Jlc3NUcmFja2VyIHRv
IHNlbmQgdGhlIG5lY2Vzc2FyeSBwYWdlIGxvYWQgc3RhcnQvc3RvcAorICAgICAgICBzaWduYWxz
IHNvIHRoYXQgd2UgY2FuIHRyYWNrIHRoZSBlbnRpcmUgcGFnZSBsb2FkIGF0IGEgbmV0d29yayBs
ZXZlbC4KKyAgICAgICAgQWRkIGFuIGVtcHR5IG92ZXJyaWRlIG9mIHRoZSBwdXJlIHZpcnR1YWwK
KyAgICAgICAgTG9hZGVyU3RyYXRlZ3k6OnBhZ2VMb2FkQ29tcGxldGVkIG1ldGhvZC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuIFRoZXJlIGlzIG5vIHRlc3RhYmxlIGVmZmVjdCBmcm9tIHRoZXNl
IGNoYW5nZXMuIE9uCisgICAgICAgIENvY29hLCBtZWFzdXJhYmxlIGNoYW5nZXMgdGFrZSBwbGFj
ZSBpbiBhbm90aGVyIChub24tV2ViS2l0KSBwcm9jZXNzLgorICAgICAgICBPbiBub24tQ29jb2Eg
c3lzdGVtcywgdGhpcyBmYWNpbGl0eSBpcyBjdXJyZW50bHkgZGlzYWJsZWQuCisKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OkZyYW1lUHJvZ3Jlc3NUcmFja2VyOjpwcm9ncmVzc0NvbXBsZXRlZCk6CisgICAgICAgICogbG9h
ZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisKIDIwMTgtMDUtMDIgIEJyaWFuIEJ1cmcgIDxiYnVyZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogb3B0IG91dCBvZiBwcm9jZXNzIHN3
YXAgb24gbmF2aWdhdGlvbiBpZiBhIFdlYiBJbnNwZWN0b3IgZnJvbnRlbmQgaXMgY29ubmVjdGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDg3NmUxZGFlYTU4YzUxMzA0OTYzZDg4Y2VmZjgzMjJhODhlY2YzNmMuLjIy
OGNiN2EwZDQzMDRkOGRhNjk2NzkzM2E4ZmVlYWMzNzA5NmI4ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsOTAgQEAKKzIwMTgtMDQtMzAgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBmYWNpbGl0eSBmb3IgdHJhY2tpbmcgdGltZXMgYW5kIHJlc3VsdHMgb2Yg
cGFnZSBhbmQgcmVzb3VyY2UgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg0ODM4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjU0ODk3
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
TmV0d29ya0FjdGl2aXR5VHJhY2tlci4gVGhlIGlkZWEgYmVoaW5kIHRoaXMgZmFjaWxpdHkgaXMg
dG8gY3JlYXRlCisgICAgICAgIGFuZCBkZXN0cm95IHRoZW0gYXJvdW5kIG5ldHdvcmtpbmcgYWN0
aXZpdHkgdGhhdCB3ZSB3YW50IHRvIHRyYWNrIGZvcgorICAgICAgICB0aGUgcHVycG9zZSBvZiBt
ZWFzdXJpbmcgb3ZlcmFsbCBuZXR3b3JrIGhlYWx0aC4gVGhleSBjYW4gYmUgY3JlYXRlZAorICAg
ICAgICBhcm91bmQgdGhlIGxvYWRpbmcgb2YgcGFnZXMgb3IgaW5kaXZpZHVhbCByZXNvdXJjZXMs
IGFuZCBjYW4gYmUKKyAgICAgICAgYXJyYW5nZWQgaW4gYSBwYXJlbnQvY2hpbGQgaGllcmFyY2h5
IHRvIGluZGljYXRlIHdoYXQgcGFnZXMgdGhlCisgICAgICAgIHJlc291cmNlcyBhcmUgcGFydCBv
Zi4gVGhlIE5ldHdvcmtBY3Rpdml0eSB0cmFja2VyIHRyYWNrcyBsb2FkIHRpbWVzCisgICAgICAg
IGFuZCByZXN1bHRzLiBPbiBDb2NvYSwgaXQgY2FuIGJlIGludGVncmF0ZWQgd2l0aCBDRk5ldHdv
cmsgaW4gb3JkZXIgdG8KKyAgICAgICAgYXNzb2NpYXRlIFdlYktpdCBhY3Rpdml0eSB3aXRoIGxv
dy1sZXZlbCBuZXR3b3JraW5nIGFjdGl2aXR5LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6fk5ldHdvcmtBY3Rp
dml0eVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpz
ZXRQYXJlbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpzdGFy
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OmNvbXBsZXRlKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpnZXRQbGF0Zm9ybU9i
amVjdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6cGFnZUxvYWRDb21wbGV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpuZXR3b3JrQWN0aXZp
dHlUcmFja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6c3RhcnRUcmFja2luZ1Jlc291cmNlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdG9wVHJhY2tpbmdSZXNvdXJjZUxvYWQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RvcEFs
bE5ldHdvcmtBY3Rpdml0eVRyYWNraW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZ0ZvclBhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZmluZFJv
b3ROZXR3b3JrQWN0aXZpdHkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZmluZE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZXNvdXJjZU5ldHdvcmtBY3Rpdml0
eVRyYWNrZXI6OlJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcik6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnRyYWNrTmV0d29ya0FjdGl2
aXR5IGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmNsZWFudXApOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmFib3J0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRG
aW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpk
aWRGYWlsTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
ZGlkUmV0cmlldmVDYWNoZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZGVyOjpjb250aW51ZVByb2Nlc3NpbmdDYWNoZWRFbnRyeUFmdGVyRGlkUmVjZWl2ZVJlc3Bv
bnNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29j
b2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0FjdGl2aXR5
VHJhY2tlcjo6fk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQWN0aXZpdHlUcmFja2VyOjpzZXRQYXJlbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtBY3Rpdml0
eVRyYWNrZXI6OmNvbXBsZXRlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uOjpjb3B5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLmNwcDoKKyAgICAgICAgKFdLQ29udGV4dENvbmZpZ3VyYXRpb25UcmFja05l
dHdvcmtBY3Rpdml0eSk6CisgICAgICAgIChXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0VHJhY2tO
ZXR3b3JrQWN0aXZpdHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1By
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uIHRyYWNrTmV0d29ya0FjdGl2aXR5XSk6CisgICAgICAgICgtW19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiBzZXRUcmFja05ldHdvcmtBY3Rpdml0eTpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6ZW5zdXJlTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpwYWdlTG9h
ZENvbXBsZXRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5Lmg6CisKIDIwMTgtMDUtMDIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkanVzdCBzYW5kYm94IHByb2ZpbGUgaW4gc2ltdWxhdG9yIG1vZGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDNjNmRjNTJkYmRiMTc5MTgzMzMzZWRjNjUyOGYzNzBlYjc3
NTVmNGQuLjcxNDhiNGIzOTA5NDVkY2RhM2IzNWRhN2ZlYTE2ZmE3ZmJiNmRlMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDQtMzAgIEtlaXRoIFJvbGxpbiAg
PGtyb2xsaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBmYWNpbGl0eSBmb3IgdHJhY2tpbmcg
dGltZXMgYW5kIHJlc3VsdHMgb2YgcGFnZSBhbmQgcmVzb3VyY2UgbG9hZGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0ODM4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zNjU0ODk3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYW4gZW1wdHkgb3ZlcnJpZGUgb2YgdGhlIHB1cmUgdmlydHVh
bAorICAgICAgICBMb2FkZXJTdHJhdGVneTo6cGFnZUxvYWRDb21wbGV0ZWQgbWV0aG9kLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cGFnZUxvYWRDb21wbGV0ZWQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorCiAyMDE4
LTA1LTAxICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IFtNZWRpYVN0cmVhbV0gcmVtb3ZlIFdLMSBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAppbmRleCA5N2NmMGI2OGUxMTRmMTdhNTZmMDQxYWE3YWIwODRmMzUwMDJmMGQ1
Li5lM2VlZTU4YTdkMTkzZjA0MDg2M2FhOTMyYzY3MDM2Zjg0ODFjMGI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTI1Miw2ICsyNTIsOSBAQCBwdWJsaWM6CiAgICAg
ICAgIEFTU0VSVChtX2ZyYW1lLnBhZ2UoKSk7CiAgICAgICAgIG1faW5Qcm9ncmVzcyA9IGZhbHNl
OwogICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+cHJvZ3Jlc3MoKS5wcm9ncmVzc0NvbXBsZXRlZCht
X2ZyYW1lKTsKKworICAgICAgICBpZiAoYXV0byBwYWdlSUQgPSBtX2ZyYW1lLmxvYWRlcigpLmNs
aWVudCgpLnBhZ2VJRCgpKQorICAgICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvYWRl
clN0cmF0ZWd5KCktPnBhZ2VMb2FkQ29tcGxldGVkKHBhZ2VJRC52YWx1ZSgpKTsKICAgICB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRl
Z3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDY3ZDMw
Y2YxMWY2YWJmYTc1OThlOGM0Y2I4YzlhODgxYTI3N2IzNDUuLjJmNWVmZWI2Yjg2YjhhMDY2OWUz
NDFlYjVlNDY5MTU5MTEwMzgwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9M
b2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVn
eS5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIExvYWRlclN0cmF0ZWd5
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbG9hZFJlc291cmNlKEZyYW1lJiwgQ2FjaGVk
UmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25z
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+JiYpPiYm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVM
b2FkZXImLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IENsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IEZldGNoT3B0aW9ucyYsIGNvbnN0IEhUVFBI
ZWFkZXJNYXAmLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFy
PiYgZGF0YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwYWdlTG9hZENvbXBsZXRlZCh1aW50NjRf
dCB3ZWJQYWdlSUQpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoUmVzb3VyY2VMb2Fk
ZXIqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2Fk
ZXIqLCBib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBiOTM5ODIwMGM2OWU4NmYxNGRj
NTk2ZmJlYTUyYTA1NDc3MDQ5NWNkLi5mMWQwM2U0NzM2YmUyNGI3MmM2ODkzOWE5ZmU4NTk4NTlh
NWI4ODNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTk3LDE0ICs5Nyw3IEBAIHNldChXZWJLaXRf
U1lTVEVNX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAogc2V0KFdlYktpdF9TT1VSQ0VTCi0gICAg
TmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAotCi0gICAgTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAotICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCi0gICAgTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL1Bl
bmRpbmdEb3dubG9hZC5jcHAKLQotICAgIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Js
b2JSZWdpc3RyeS5jcHAKLQorICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNw
cAogICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAog
ICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcApAQCAt
MTIyLDYgKzExNSwxNCBAQCBzZXQoV2ViS2l0X1NPVVJDRVMKICAgICBOZXR3b3JrUHJvY2Vzcy9Q
aW5nTG9hZC5jcHAKICAgICBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHAKIAorICAg
IE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKKworICAgIE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Q
ZW5kaW5nRG93bmxvYWQuY3BwCisKKyAgICBOZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtC
bG9iUmVnaXN0cnkuY3BwCisKICAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VF
bmdpbmUuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2Fj
aGUuY3BwCiAgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVz
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNj
b25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRl
eCA2NjM0OGE0ZjY1ZDJhMDU5Yjc2MjE2YmRhMDM5M2IxMTUyZWM3NjQ3Li41ZDdhZTkyNmYzMTVj
YzIyNWVmYTU3NTEyZDI0Nzg4N2JiNzQ4NTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTA5LDcgKzEwOSw3IEBAIFdLX1NBRkVfQlJPV1NJ
TkdfTERGTEFHU19NQUNPU19TSU5DRV8xMDEzID0gLXdlYWtfZnJhbWV3b3JrIFNhZmFyaVNhZmVC
cm93c2luZzsKIFdLX1VJS0lUX0xERkxBR1MgPSAkKFdLX1VJS0lUX0xERkxBR1NfJChXS19DT0NP
QV9UT1VDSCkpOwogV0tfVUlLSVRfTERGTEFHU19jb2NvYXRvdWNoID0gLWZyYW1ld29yayBVSUtp
dDsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBD
Rk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAt
ZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91
bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIFdl
YktpdExlZ2FjeSAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFH
UykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykg
JChXS19DT1JFX1BERl9MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdL
X0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAk
KFdLX0lPU1VSRkFDRV9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklM
RV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChX
S19PUEVOR0xfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5H
X0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUyk7CitGUkFNRVdPUktfQU5EX0xJQlJBUllfTERG
TEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAt
ZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdv
cmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJh
bWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAkKFdLX0FDQ0VT
U0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BU1NFUlRJT05fU0VS
VklDRVNfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT1JFX1BERl9MREZMQUdT
KSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFH
UykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0lPU1VSRkFDRV9MREZMQUdT
KSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxB
R1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19PUEVOR0xfTERGTEFHUykgJChX
S19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfVUlLSVRf
TERGTEFHUyk7CiAKIC8vIFByZXZlbnQgQysrIHN0YW5kYXJkIGxpYnJhcnkgb3BlcmF0b3IgbmV3
LCBkZWxldGUgYW5kIHRoZWlyIHJlbGF0ZWQgZXhjZXB0aW9uIHR5cGVzIGZyb20gYmVpbmcgZXhw
b3J0ZWQgYXMgd2VhayBzeW1ib2xzLgogVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUyA9IC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
WlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5ZXhjZXB0
aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRsUHZTXyAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pud20gLVds
LC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUx
MlBvbGljeUFjdGlvbkVFRUMyRU9TNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5T
dDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMxRU9TNF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBv
bGljeUFjdGlvbkVFRWFTRURuIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsIC1XbCxfX1pOS1N0M19f
MThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFY2xFUzJfIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wsIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lB
Y3Rpb25FRUU0c3dhcEVSUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsIC1XbCxfX1pOU3QzX18x
OGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMUVSS1M0XyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5
QWN0aW9uRUVFQzJFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4
ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUQxRXYgLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlv
bkVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25J
RnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wsIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFiMzY3ZTk4MjE4NjYzZjJmMGQyZDhhYzE1OTZmNzk1NjMxOWIxYmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0
eVRyYWNrZXIuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgorCisjaWYgIUhBVkUo
TldfQUNUSVZJVFkpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOZXR3b3JrQWN0aXZpdHlUcmFj
a2VyOjpOZXR3b3JrQWN0aXZpdHlUcmFja2VyKExhYmVsLCBEb21haW4pCit7Cit9CisKK05ldHdv
cmtBY3Rpdml0eVRyYWNrZXI6On5OZXR3b3JrQWN0aXZpdHlUcmFja2VyKCkKK3sKK30KKwordm9p
ZCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpzZXRQYXJlbnQoTmV0d29ya0FjdGl2aXR5VHJhY2tl
ciYpCit7Cit9CisKK3ZvaWQgTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6c3RhcnQoKQoreworfQor
Cit2b2lkIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OmNvbXBsZXRlKENvbXBsZXRpb25Db2RlKQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vICFIQVZFKE5XX0FDVElW
SVRZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0
aXZpdHlUcmFja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rp
dml0eVRyYWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGUxNzE4YmVjZGY4YmNiYzAwMDNmMjEwNzA1Mzcz
MTU4ODZiMWU4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5j
bHVkZSg8bncvYWN0aXZpdHkuaD4pCisjZGVmaW5lIEhBVkVfTldfQUNUSVZJVFkgMQorI2VuZGlm
CisKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorI2luY2x1ZGUgPG53L3ByaXZhdGUuaD4KKyNpbmNs
dWRlIDx3dGYvUmV0YWluUHRyLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIgeworcHVibGljOgorICAgIGVudW0gY2xhc3MgRG9t
YWluIHsKKyAgICAgICAgLy8gVGhlc2UgYXJlIGRlZmluZWQgdG8gbWF0Y2ggYW5hbG9nb3VzIHZh
bHVlcyB1c2VkIGluIHRoZSBEYXJ3aW4gaW1wbGVtZW50YXRpb24uCisgICAgICAgIC8vIElmIHRo
ZXkgYXJlIHJlbnVtYmVyZWQsIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgd2lsbCBuZWVkIHRvIGJl
IGFkZGVkIHRvIG1hcAorICAgICAgICAvLyB0aGVtIHRvIHRoZSBEYXJ3aW4tc3BlY2lmaWMgdmFs
dWVzLgorCisgICAgICAgIEludmFsaWQgPSAwLAorICAgICAgICBXZWJLaXQgPSAxNiwKKyAgICB9
OworCisgICAgZW51bSBjbGFzcyBMYWJlbCB7CisgICAgICAgIC8vIFRoZXNlIGFyZSBvdXJzIHRv
IGRlZmluZSwgYnV0IG9uY2UgZGVmaW5lZCwgdGhleSBzaG91bGRuJ3QgY2hhbmdlLiBUaGV5IGNh
bgorICAgICAgICAvLyBiZSBvYnNvbGVzY2VkIGFuZCByZXBsYWNlZCB3aXRoIG90aGVyIGNvZGVz
LCBidXQgcHJldmlvdXNseS1kZWZpbmVkIGNvZGVzCisgICAgICAgIC8vIHNob3VsZCBub3QgYmUg
cmVudW1iZXJlZC4gUHJldmlvdXNseSBhc3NpZ25lZCB2YWx1ZXMgc2hvdWxkIG5vdCBiZSByZS11
c2VkLgorCisgICAgICAgIEludmFsaWQgPSAwLAorICAgICAgICBMb2FkUGFnZSA9IDEsCisgICAg
ICAgIExvYWRSZXNvdXJjZSA9IDIsCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgQ29tcGxldGlv
bkNvZGUgeworICAgICAgICBVbmRlZmluZWQsCisgICAgICAgIE5vbmUsCisgICAgICAgIFN1Y2Nl
c3MsCisgICAgICAgIEZhaWx1cmUsCisgICAgfTsKKworICAgIE5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIoTGFiZWwsIERvbWFpbiA9IERvbWFpbjo6V2ViS2l0KTsKKyAgICB+TmV0d29ya0FjdGl2aXR5
VHJhY2tlcigpOworCisgICAgdm9pZCBzZXRQYXJlbnQoTmV0d29ya0FjdGl2aXR5VHJhY2tlciYp
OworICAgIHZvaWQgc3RhcnQoKTsKKyAgICB2b2lkIGNvbXBsZXRlKENvbXBsZXRpb25Db2RlKTsK
KworI2lmIEhBVkUoTldfQUNUSVZJVFkpCisgICAgbndfYWN0aXZpdHlfdCBnZXRQbGF0Zm9ybU9i
amVjdCgpIHsgcmV0dXJuIG1fbmV0d29ya0FjdGl2aXR5LmdldCgpOyB9CisjZW5kaWYKKworcHJp
dmF0ZToKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAgIERvbWFpbiBtX2RvbWFpbjsKKyAgICBM
YWJlbCBtX2xhYmVsOworICAgIGJvb2wgbV9pc0NvbXBsZXRlZCB7IGZhbHNlIH07CisgICAgUmV0
YWluUHRyPG53X2FjdGl2aXR5X3Q+IG1fbmV0d29ya0FjdGl2aXR5OworI2VuZGlmCit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzEz
OTAzZGY5MTgzYzhjYmY5YTZkODlkODAwMTU2MGQ4YTFiODQ0NC4uOTRkODYyM2E5NGRmMjRhNWI1
NTYwOTczODk0ODZkZDhjYjdmOWNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJv
eEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb25NZXNz
YWdlcy5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiTmV0d29ya0Jsb2JSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNo
ZS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIK
QEAgLTYxLDYgKzYyLDkgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKKyNkZWZpbmUg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYodHJ1ZSwgTmV0
d29yaywgIiVwIC0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OiIgZm10LCB0aGlzLCAj
I19fVkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKGZtdCwg
Li4uKSBSRUxFQVNFX0xPR19FUlJPUl9JRih0cnVlLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBSZWY8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQpAQCAtMTgwLDYgKzE4NCwxMSBAQCB2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogICAg
ICAgICBsb2FkZXItPmFib3J0KCk7CiAgICAgQVNTRVJUKG1fbmV0d29ya1Jlc291cmNlTG9hZGVy
cy5pc0VtcHR5KCkpOwogCisgICAgLy8gQWxsIHRyYWNrZXJzIG9mIHJlc291cmNlcyB0aGF0IHdl
cmUgaW4gdGhlIG1pZGRsZSBvZiBiZWluZyBsb2FkZWQgd2VyZQorICAgIC8vIHN0b3BwZWQgd2l0
aCB0aGUgYWJvcnQoKSBjYWxscyBhYm92ZSwgYnV0IHdlIHN0aWxsIG5lZWQgdG8gc3dlZXAgdXAg
dGhlCisgICAgLy8gcm9vdCBhY3Rpdml0eSB0cmFja2Vycy4KKyAgICBzdG9wQWxsTmV0d29ya0Fj
dGl2aXR5VHJhY2tpbmcoKTsKKwogICAgIE5ldHdvcmtCbG9iUmVnaXN0cnk6OnNpbmdsZXRvbigp
LmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NEaWRDbG9zZSh0aGlzKTsKICAgICBOZXR3b3JrUHJvY2Vz
czo6c2luZ2xldG9uKCkucmVtb3ZlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3ModGhpcyk7
CiAKQEAgLTI4Nyw2ICsyOTYsMTEgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6cmVtb3ZlTG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllcgogICAgIEFTU0VS
VCghbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIH0KIAor
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGFnZUxvYWRDb21wbGV0ZWQodWlu
dDY0X3Qgd2ViUGFnZUlEKQoreworICAgIHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZ0Zv
clBhZ2Uod2ViUGFnZUlEKTsKK30KKwogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6c2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJv
b2wgZGVmZXJzKQogewogICAgIFJlZlB0cjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9
IG1fbmV0d29ya1Jlc291cmNlTG9hZGVycy5nZXQoaWRlbnRpZmllcik7CkBAIC01MzIsNCArNTQ2
LDExNSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNldE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdHMoKQogICAgIFNlY3VyaXR5UG9saWN5OjpyZXNldE9yaWdpbkFjY2Vzc1do
aXRlbGlzdHMoKTsKIH0KIAorc3RhdGljIGJvb2wgbmV0d29ya0FjdGl2aXR5VHJhY2tpbmdFbmFi
bGVkKCkKK3sKKyAgICByZXR1cm4gTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnRyYWNrTmV0
d29ya0FjdGl2aXR5KCk7Cit9CisKK3N0ZDo6b3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tl
cj4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnN0YXJ0VHJhY2tpbmdSZXNvdXJjZUxv
YWQodWludDY0X3QgcGFnZUlELCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQsIGJv
b2wgaXNNYWluUmVzb3VyY2UpCit7CisgICAgaWYgKCFuZXR3b3JrQWN0aXZpdHlUcmFja2luZ0Vu
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIEVpdGhlciBn
ZXQgdGhlIGV4aXN0aW5nIHJvb3QgYWN0aXZpdHkgdHJhY2tlciBmb3IgdGhpcyBwYWdlIG9yIGNy
ZWF0ZSBhCisgICAgLy8gbmV3IG9uZSBpZiB0aGlzIGlzIHRoZSBtYWluIHJlc291cmNlLgorCisg
ICAgc2l6ZV90IHJvb3RBY3Rpdml0eUluZGV4OworICAgIGlmIChpc01haW5SZXNvdXJjZSkgewor
ICAgICAgICAvLyBJZiB3ZSdyZSBsb2FkaW5nIGEgcGFnZSBmcm9tIHRoZSB0b3AsIG1ha2Ugc3Vy
ZSBhbnkgdHJhY2tpbmcgb2YKKyAgICAgICAgLy8gcHJldmlvdXMgYWN0aXZpdHkgZm9yIHRoaXMg
cGFnZSBpcyBzdG9wcGVkLgorCisgICAgICAgIHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2lu
Z0ZvclBhZ2UocGFnZUlEKTsKKworICAgICAgICByb290QWN0aXZpdHlJbmRleCA9IG1fbmV0d29y
a0FjdGl2aXR5VHJhY2tlcnMuc2l6ZSgpOworICAgICAgICBtX25ldHdvcmtBY3Rpdml0eVRyYWNr
ZXJzLmNvbnN0cnVjdEFuZEFwcGVuZChwYWdlSUQpOworICAgICAgICBtX25ldHdvcmtBY3Rpdml0
eVRyYWNrZXJzW3Jvb3RBY3Rpdml0eUluZGV4XS5uZXR3b3JrQWN0aXZpdHkuc3RhcnQoKTsKKwor
I2lmIEhBVkUoTldfQUNUSVZJVFkpCisgICAgICAgIEFTU0VSVChtX25ldHdvcmtBY3Rpdml0eVRy
YWNrZXJzW3Jvb3RBY3Rpdml0eUluZGV4XS5uZXR3b3JrQWN0aXZpdHkuZ2V0UGxhdGZvcm1PYmpl
Y3QoKSk7CisjZW5kaWYKKyAgICB9IGVsc2UgeworICAgICAgICByb290QWN0aXZpdHlJbmRleCA9
IGZpbmRSb290TmV0d29ya0FjdGl2aXR5KHBhZ2VJRCk7CisKKyAgICAgICAgLy8gVGhpcyBjb3Vs
ZCBoYXBwZW4gaWYgdGhlIE5ldHdvcmtpbmcgcHJvY2VzcyBjcmFzaGVzLCB0YWtpbmcgaXRzCisg
ICAgICAgIC8vIHByZXZpb3VzIHN0YXRlIHdpdGggaXQuCisgICAgICAgIGlmIChyb290QWN0aXZp
dHlJbmRleCA9PSBub3RGb3VuZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAgICAgICBBU1NFUlQobV9uZXR3b3JrQWN0aXZpdHlU
cmFja2Vyc1tyb290QWN0aXZpdHlJbmRleF0ubmV0d29ya0FjdGl2aXR5LmdldFBsYXRmb3JtT2Jq
ZWN0KCkpOworI2VuZGlmCisgICAgfQorCisgICAgLy8gQ3JlYXRlIGEgdHJhY2tlciBmb3IgdGhl
IGxvYWRpbmcgb2YgdGhlIG5ldyByZXNvdXJjZSwgc2V0dGluZyB0aGUgcm9vdAorICAgIC8vIGFj
dGl2aXR5IHRyYWNrZXIgYXMgaXRzIHBhcmVudC4KKworICAgIHNpemVfdCBuZXdBY3Rpdml0eUlu
ZGV4ID0gbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5zaXplKCk7CisgICAgbV9uZXR3b3JrQWN0
aXZpdHlUcmFja2Vycy5jb25zdHJ1Y3RBbmRBcHBlbmQocGFnZUlELCByZXNvdXJjZUlEKTsKKyNp
ZiBIQVZFKE5XX0FDVElWSVRZKQorICAgIEFTU0VSVChtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJz
W25ld0FjdGl2aXR5SW5kZXhdLm5ldHdvcmtBY3Rpdml0eS5nZXRQbGF0Zm9ybU9iamVjdCgpKTsK
KyNlbmRpZgorCisgICAgYXV0byYgbmV3QWN0aXZpdHlUcmFja2VyID0gbV9uZXR3b3JrQWN0aXZp
dHlUcmFja2Vyc1tuZXdBY3Rpdml0eUluZGV4XTsKKyAgICBuZXdBY3Rpdml0eVRyYWNrZXIubmV0
d29ya0FjdGl2aXR5LnNldFBhcmVudChtX25ldHdvcmtBY3Rpdml0eVRyYWNrZXJzW3Jvb3RBY3Rp
dml0eUluZGV4XS5uZXR3b3JrQWN0aXZpdHkpOworICAgIG5ld0FjdGl2aXR5VHJhY2tlci5uZXR3
b3JrQWN0aXZpdHkuc3RhcnQoKTsKKworICAgIHJldHVybiBuZXdBY3Rpdml0eVRyYWNrZXIubmV0
d29ya0FjdGl2aXR5OworfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpz
dG9wVHJhY2tpbmdSZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlE
LCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpDb21wbGV0aW9uQ29kZSBjb2RlKQoreworICAgIGlm
ICghbmV0d29ya0FjdGl2aXR5VHJhY2tpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8gaXRlbUluZGV4ID0gZmluZE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIocmVzb3VyY2VJ
RCk7CisgICAgaWYgKGl0ZW1JbmRleCA9PSBub3RGb3VuZCkgeworICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihOZXR3b3JrLCAic3RvcFRyYWNraW5nUmVzb3VyY2VMb2FkOiBVbmFibGUgdG8gZmlu
ZCBuZXR3b3JrIGFjdGl2aXR5IGZvciByZXNvdXJjZTogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHJl
c291cmNlSUQpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fbmV0d29ya0FjdGl2
aXR5VHJhY2tlcnNbaXRlbUluZGV4XS5uZXR3b3JrQWN0aXZpdHkuY29tcGxldGUoY29kZSk7Cisg
ICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5yZW1vdmUoaXRlbUluZGV4KTsKK30KKwordm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c3RvcEFsbE5ldHdvcmtBY3Rpdml0eVRy
YWNraW5nKCkKK3sKKyAgICBpZiAoIW5ldHdvcmtBY3Rpdml0eVRyYWNraW5nRW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGFjdGl2aXR5VHJhY2tlciA6IG1fbmV0
d29ya0FjdGl2aXR5VHJhY2tlcnMpCisgICAgICAgIGFjdGl2aXR5VHJhY2tlci5uZXR3b3JrQWN0
aXZpdHkuY29tcGxldGUoTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNvZGU6Ok5v
bmUpOworCisgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vycy5jbGVhcigpOworfQorCit2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJh
Y2tpbmdGb3JQYWdlKHVpbnQ2NF90IHBhZ2VJRCkKK3sKKyAgICBpZiAoIW5ldHdvcmtBY3Rpdml0
eVRyYWNraW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGFj
dGl2aXR5VHJhY2tlciA6IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMpIHsKKyAgICAgICAgaWYg
KGFjdGl2aXR5VHJhY2tlci5wYWdlSUQgPT0gcGFnZUlEKQorICAgICAgICAgICAgYWN0aXZpdHlU
cmFja2VyLm5ldHdvcmtBY3Rpdml0eS5jb21wbGV0ZShOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpD
b21wbGV0aW9uQ29kZTo6Tm9uZSk7CisgICAgfQorCisgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFj
a2Vycy5yZW1vdmVBbGxNYXRjaGluZyhbJl0oY29uc3QgYXV0byYgYWN0aXZpdHlUcmFja2VyKSB7
CisgICAgICAgIHJldHVybiBhY3Rpdml0eVRyYWNrZXIucGFnZUlEID09IHBhZ2VJRDsKKyAgICB9
KTsKK30KKworc2l6ZV90IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpmaW5kUm9vdE5l
dHdvcmtBY3Rpdml0eSh1aW50NjRfdCBwYWdlSUQpCit7CisgICAgcmV0dXJuIG1fbmV0d29ya0Fj
dGl2aXR5VHJhY2tlcnMuZmluZE1hdGNoaW5nKFsmXShjb25zdCBhdXRvJiBpdGVtKSB7CisgICAg
ICAgIHJldHVybiBpdGVtLmlzUm9vdEFjdGl2aXR5ICYmIGl0ZW0ucGFnZUlEID09IHBhZ2VJRDsK
KyAgICB9KTsKK30KKworc2l6ZV90IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpmaW5k
TmV0d29ya0FjdGl2aXR5VHJhY2tlcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQp
Cit7CisgICAgcmV0dXJuIG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcnMuZmluZE1hdGNoaW5nKFsm
XShjb25zdCBhdXRvJiBpdGVtKSB7CisgICAgICAgIHJldHVybiBpdGVtLnJlc291cmNlSUQgPT0g
cmVzb3VyY2VJRDsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKaW5kZXggZDcxZGMzYzgxNjA3Zjg3N2IxZmQwYWQzZmJjMTQxNGUxMGNk
ZDE3Yi4uNDFjYjgyMzc0YWQ5NjQ0ODQ2ODUwZDUxM2Y1YzY3MGViOGE2NWQ3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlU3RvcmFn
ZUVuZ2luZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
RG93bmxvYWRJRC5oIgorI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKICNpbmNs
dWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
TmV0d29ya01ETlNSZWdpc3Rlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtSVENQcm92aWRlci5oIgpA
QCAtMTExLDYgKzExMiw5IEBAIHB1YmxpYzoKICAgICAgICAgbV9uZXR3b3JrTG9hZEluZm9ybWF0
aW9uQnlJRC5yZW1vdmUoaWRlbnRpZmllcik7CiAgICAgfQogCisgICAgc3RkOjpvcHRpb25hbDxO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBzdGFydFRyYWNraW5nUmVzb3VyY2VMb2FkKHVpbnQ2NF90
IHBhZ2VJRCwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlELCBib29sIGlzTWFpblJl
c291cmNlKTsKKyAgICB2b2lkIHN0b3BUcmFja2luZ1Jlc291cmNlTG9hZChSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIHJlc291cmNlSUQsIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkNvbXBsZXRpb25D
b2RlKTsKKwogcHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCkBAIC0xMzMsNiArMTM3LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHByZWNvbm5lY3RUbyh1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwg
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJik7CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJ
ZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOworICAgIHZvaWQgcGFnZUxvYWRDb21w
bGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKTsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVz
b3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0
UmVjZWl2ZWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VVJMJiByZWRp
cmVjdFVSTCk7CiAgICAgdm9pZCBzdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9h
ZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dl
c3RlZE5hbWUgPSB7IH0pOwpAQCAtMTgwLDExICsxODUsNDEgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFN0cmluZyYgc291cmNlT3Jp
Z2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKICAgICB2b2lk
IHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOwogCisgICAgc3RydWN0IFJlc291cmNlTmV0
d29ya0FjdGl2aXR5VHJhY2tlciB7CisgICAgICAgIFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJh
Y2tlcigpID0gZGVmYXVsdDsKKyAgICAgICAgUmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
KGNvbnN0IFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlciYpID0gZGVmYXVsdDsKKyAgICAg
ICAgUmVzb3VyY2VOZXR3b3JrQWN0aXZpdHlUcmFja2VyKFJlc291cmNlTmV0d29ya0FjdGl2aXR5
VHJhY2tlciYmKSA9IGRlZmF1bHQ7CisgICAgICAgIFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJh
Y2tlcih1aW50NjRfdCBwYWdlSUQpCisgICAgICAgICAgICA6IHBhZ2VJRCB7IHBhZ2VJRCB9Cisg
ICAgICAgICAgICAsIGlzUm9vdEFjdGl2aXR5IHsgdHJ1ZSB9CisgICAgICAgICAgICAsIG5ldHdv
cmtBY3Rpdml0eSB7IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OkxhYmVsOjpMb2FkUGFnZSB9Cisg
ICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFJlc291cmNlTmV0d29ya0FjdGl2aXR5VHJh
Y2tlcih1aW50NjRfdCBwYWdlSUQsIFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VJRCkK
KyAgICAgICAgICAgIDogcGFnZUlEIHsgcGFnZUlEIH0KKyAgICAgICAgICAgICwgcmVzb3VyY2VJ
RCB7IHJlc291cmNlSUQgfQorICAgICAgICAgICAgLCBuZXR3b3JrQWN0aXZpdHkgeyBOZXR3b3Jr
QWN0aXZpdHlUcmFja2VyOjpMYWJlbDo6TG9hZFJlc291cmNlIH0KKyAgICAgICAgeworICAgICAg
ICB9CisKKyAgICAgICAgdWludDY0X3QgcGFnZUlEIHsgMCB9OworICAgICAgICBSZXNvdXJjZUxv
YWRJZGVudGlmaWVyIHJlc291cmNlSUQgeyAwIH07CisgICAgICAgIGJvb2wgaXNSb290QWN0aXZp
dHkgeyBmYWxzZSB9OworICAgICAgICBOZXR3b3JrQWN0aXZpdHlUcmFja2VyIG5ldHdvcmtBY3Rp
dml0eTsKKyAgICB9OworCisgICAgdm9pZCBzdG9wQWxsTmV0d29ya0FjdGl2aXR5VHJhY2tpbmco
KTsKKyAgICB2b2lkIHN0b3BBbGxOZXR3b3JrQWN0aXZpdHlUcmFja2luZ0ZvclBhZ2UodWludDY0
X3QgcGFnZUlEKTsKKyAgICBzaXplX3QgZmluZFJvb3ROZXR3b3JrQWN0aXZpdHkodWludDY0X3Qg
cGFnZUlEKTsKKyAgICBzaXplX3QgZmluZE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIoUmVzb3VyY2VM
b2FkSWRlbnRpZmllciByZXNvdXJjZUlEKTsKKwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1f
Y29ubmVjdGlvbjsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxOZXR3b3JrU29ja2V0
U3RyZWFtPj4gbV9uZXR3b3JrU29ja2V0U3RyZWFtczsKICAgICBIYXNoTWFwPFJlc291cmNlTG9h
ZElkZW50aWZpZXIsIFJlZlB0cjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+PiBtX25ldHdvcmtSZXNv
dXJjZUxvYWRlcnM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0
YUZpbGVSZWZlcmVuY2U+PiBtX2Jsb2JEYXRhRmlsZVJlZmVyZW5jZXM7CisgICAgVmVjdG9yPFJl
c291cmNlTmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbV9uZXR3b3JrQWN0aXZpdHlUcmFja2VyczsK
IAogICAgIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgTmV0d29ya0xvYWRJbmZvcm1h
dGlvbj4gbV9uZXR3b3JrTG9hZEluZm9ybWF0aW9uQnlJRDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggOWE1YTRmMjE1NjBkYTY3ZThhN2YwYmU2MWU1
NWI2YzdkMTcxNmM0Ny4uZjRlYzYzMzExZjc3YTNiZTY3MTg3Yjg5NmQ1MmEwMTc4YmFmNzE1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yNiw2ICsy
Niw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBQZXJmb3JtU3luY2hyb25vdXNMb2FkKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMgcmVzb3VyY2VMb2FkUGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZXJyb3IsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFZl
Y3RvcjxjaGFyPiBkYXRhKSBEZWxheWVkCiAgICAgTG9hZFBpbmcoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycyByZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKQogICAgIFJlbW92ZUxv
YWRJZGVudGlmaWVyKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpCisgICAgUGFnZUxv
YWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKQogICAgIFNldERlZmVyc0xvYWRpbmcodWlu
dDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCBkZWZlcnMpCiAgICAgUHJlZmV0Y2hE
TlMoU3RyaW5nIGhvc3RuYW1lKQogICAgIFByZWNvbm5lY3RUbyh1aW50NjRfdCBwcmVjb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2Fk
UGFyYW1ldGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtEYXRhVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtE
YXRhVGFzay5jcHAKaW5kZXggNWExZjc0OTk0NzEwZGRiNTc4MGU1NDI4MjFjYWQwNWUwNzgzOTAw
OS4uMTUyNGQzY2YzMjM1Y2NjMzgzZjI1MDIxMWE4NWZhNTJmODRmOTMzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTQsNyAr
NTQsNyBAQCBSZWY8TmV0d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3
b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdAogICAgICAgICByZXR1cm4gTmV0d29ya0Rh
dGFUYXNrQmxvYjo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBw
YXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5ibG9iRmlsZVJlZmVy
ZW5jZXMpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBhcmFtZXRlcnMuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJh
bWV0ZXJzLmNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29u
bmVjdE9ubHksIHBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uKTsKKyAgICByZXR1cm4g
TmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMu
cmVxdWVzdCwgcGFyYW1ldGVycy53ZWJGcmFtZUlELCBwYXJhbWV0ZXJzLndlYlBhZ2VJRCwgcGFy
YW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZp
bmdQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIHBhcmFt
ZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1ldGVy
cy5zaG91bGRQcmVjb25uZWN0T25seSwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5hdmlnYXRpb24s
IHBhcmFtZXRlcnMubmV0d29ya0FjdGl2aXR5VHJhY2tlcik7CiAjZW5kaWYKICNpZiBVU0UoU09V
UCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlKHNlc3Npb24sIGNsaWVu
dCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLmlzTWFpbkZyYW1lTmF2aWdhdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aAppbmRleCA1NTUxMjJiMTVmZGEwMTJlNTZkMWRjODFlMTY4MjdlYjM3Y2Q0ZDNiLi45YzhjODQ1
ZTA4NTAyZmFhNWJkY2NkYTYzZjVhNGJmZWI2ZjlmNGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTI1LDYgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXF1ZXN0Lmg+CkBAIC01MSw2ICs1Miw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzTWFp
bkZyYW1lTmF2aWdhdGlvbiB7IGZhbHNlIH07CiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpC
bG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBibG9iRmlsZVJlZmVyZW5jZXM7CiAgICAgUHJlY29ubmVj
dE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkgeyBQcmVjb25uZWN0T25seTo6Tm8gfTsKKyAgICBz
dGQ6Om9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggM2IwZmYyMDE4NTExNTQ0NWJhODFl
ODcwYjQyOTUwNTdkNTM2ZGI5MC4uMDc3YmQ3M2IwNDNjODBjMTE0NmMzNDFiZTQ5MTM1YTU5NWM4
MjhjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKQEAgLTI5OCw2ICsyOTgsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJgogICAgIGZv
ciAoYXV0byYgc2NoZW1lIDogcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlz
cGxheU9ubHlJZkNhblJlcXVlc3QpCiAgICAgICAgIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNw
bGF5T25seUlmQ2FuUmVxdWVzdChzY2hlbWUpOwogCisgICAgbV90cmFja05ldHdvcmtBY3Rpdml0
eSA9IHBhcmFtZXRlcnMudHJhY2tOZXR3b3JrQWN0aXZpdHk7CisKICAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzOiBQ
cmVzZW50aW5nIHByb2Nlc3MgPSAlZCIsIHRoaXMsIFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNh
dGlvblBJRCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCmluZGV4IGNlNDEyYjQ1OTI4NmIzNjlkZjEyY2QwOGYzMzM4NWFkOGM5ZGRkZTku
LmI5NjFhYmNiMDA5ZmQyMTJiZTE1OTY2NmIzYTE0MGE0NDI4MGYzMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE2Miw2ICsxNjIsOCBA
QCBwdWJsaWM6CiAgICAgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXImIG5ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFu
YWdlcjsgfQogI2VuZGlmCiAKKyAgICBib29sIHRyYWNrTmV0d29ya0FjdGl2aXR5KCkgY29uc3Qg
eyByZXR1cm4gbV90cmFja05ldHdvcmtBY3Rpdml0eTsgfQorCiBwcml2YXRlOgogICAgIE5ldHdv
cmtQcm9jZXNzKCk7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7CkBAIC0zMDAsNiArMzAyLDggQEAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIE5ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyIG1fTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI7CiAjZW5k
aWYKKworICAgIGJvb2wgbV90cmFja05ldHdvcmtBY3Rpdml0eSB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5k
ZXggYTg0ZTQ5OGNmZmM0OTVhMDllZjZkOWZlOTgwZWFlMWM2YzcxOWY3Yy4uM2QyNGQyM2E0ZjUz
MjNlMjg3MDIyYTE3ODRkYzNlZWNmMTgyODM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKQEAgLTExNSw2ICsxMTUsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29sYXRlZDsKICAgICBlbmNvZGVy
IDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IHVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdDsKKworICAgIGVu
Y29kZXIgPDwgdHJhY2tOZXR3b3JrQWN0aXZpdHk7CiB9CiAKIGJvb2wgTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiByZXN1bHQpCkBAIC0yNzUsNiArMjc3LDkgQEAgYm9v
bCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgTmV0d29ya1Byb2MKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51cmxT
Y2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC50cmFja05ldHdv
cmtBY3Rpdml0eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggYzJiNjgwYjAyNTMwNGM1N2Y3
ZjQwNGJjYzJhMTlkYWMzYjg1NzExNC4uZDE0NzUzM2JhMjFlYTk4N2E3ZTk4OWRhMDE4Y2VlN2Q5
OTc3YTUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTMyLDYgKzEzMiw4
IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgVmVjdG9y
PFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29sYXRlZDsKICAgICBWZWN0
b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVl
c3Q7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVk
OworCisgICAgYm9vbCB0cmFja05ldHdvcmtBY3Rpdml0eSB7IGZhbHNlIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAyOTcwNTVhYWYzZTQ0N2MzZjc3MmIx
YmUzZWVhMjBiNWNlYTUwMzRjLi41ODViOWQwMzYwNThiOGNkOWMxYmY3MDhmODhlNTUwMTUzZGM4
MDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xNjUsNiArMTY1LDggQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnN0YXJ0KCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisg
ICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2VyID0gbV9jb25uZWN0aW9uLT5zdGFydFRyYWNraW5n
UmVzb3VyY2VMb2FkKG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBpc01haW5SZXNvdXJjZSgpKTsKKwogICAgIGlmIChtX2RlZmVyc0xvYWRpbmcpIHsKICAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IExvYWRpbmcgaXMgZGVmZXJyZWQg
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFt
ZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjU0LDYgKzI1Niw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9h
CiAKICAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVycyA9IG1fcGFyYW1ldGVyczsK
ICAgICBwYXJhbWV0ZXJzLmRlZmVyc0xvYWRpbmcgPSBtX2RlZmVyc0xvYWRpbmc7CisgICAgcGFy
YW1ldGVycy5uZXR3b3JrQWN0aXZpdHlUcmFja2VyID0gbV9uZXR3b3JrQWN0aXZpdHlUcmFja2Vy
OwogICAgIGlmIChtX25ldHdvcmtMb2FkQ2hlY2tlcikKICAgICAgICAgcGFyYW1ldGVycy5zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZWRDcmVkZW50
aWFsc1BvbGljeSgpOwogCkBAIC0zMDYsMTAgKzMwOSwxNSBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgic2V0RGVmZXJzTG9hZGluZzogZGVmZXJzID0gJWQsIGJ1dCBub3RoaW5n
IHRvIGRvIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9kZWZlcnNMb2FkaW5nLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIp
OwogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cCgpCit2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgbV9jb25uZWN0aW9uLT5zdG9wVHJhY2tpbmdS
ZXNvdXJjZUxvYWQobV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsCisgICAgICAgIHJlc3VsdCA9PSBM
b2FkUmVzdWx0OjpTdWNjZXNzID8gTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNv
ZGU6OlN1Y2Nlc3MgOgorICAgICAgICByZXN1bHQgPT0gTG9hZFJlc3VsdDo6RmFpbHVyZSA/IE5l
dHdvcmtBY3Rpdml0eVRyYWNrZXI6OkNvbXBsZXRpb25Db2RlOjpGYWlsdXJlIDoKKyAgICAgICAg
TmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNvZGU6Ok5vbmUpOworCiAgICAgbV9i
dWZmZXJpbmdUaW1lci5zdG9wKCk7CiAKICAgICBpbnZhbGlkYXRlU2FuZGJveEV4dGVuc2lvbnMo
KTsKQEAgLTM0Miw3ICszNTAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQo
KQogICAgICAgICBtX25ldHdvcmtMb2FkLT5jYW5jZWwoKTsKICAgICB9CiAKLSAgICBjbGVhbnVw
KCk7CisgICAgY2xlYW51cChMb2FkUmVzdWx0OjpDYW5jZWwpOwogfQogCiBzdGF0aWMgYm9vbCBh
cmVGcmFtZUFuY2VzdG9yc1NhbWVTaXRlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mIGZyYW1lQW5jZXN0b3JPcmln
aW5zKQpAQCAtNTE0LDcgKzUyMiw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRG
aW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvCiAKICAgICB0
cnlTdG9yZUFzQ2FjaGVFbnRyeSgpOwogCi0gICAgY2xlYW51cCgpOworICAgIGNsZWFudXAoTG9h
ZFJlc3VsdDo6U3VjY2Vzcyk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRG
YWlsTG9hZGluZyhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKQEAgLTUzNCw3ICs1NDIsNyBA
QCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCiAgICAgfSBlbHNlIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKSkKICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
V2ViUmVzb3VyY2VMb2FkZXI6OkRpZEZhaWxSZXNvdXJjZUxvYWQoZXJyb3IpLCBtZXNzYWdlU2Vu
ZGVyRGVzdGluYXRpb25JRCgpKTsKIAotICAgIGNsZWFudXAoKTsKKyAgICBjbGVhbnVwKExvYWRS
ZXN1bHQ6OkZhaWx1cmUpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkQmxv
Y2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCkBAIC03NDUsNyArNzUzLDcgQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJldHJpZXZlQ2FjaGVFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8
TmV0d29ya0NhY2hlOjoKICAgICBpZiAoaXNTeW5jaHJvbm91cygpKSB7CiAgICAgICAgIG1fc3lu
Y2hyb25vdXNMb2FkRGF0YS0+cmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKTsKICAgICAgICAg
c2VuZFJlcGx5VG9TeW5jaHJvbm91c1JlcXVlc3QoKm1fc3luY2hyb25vdXNMb2FkRGF0YSwgZW50
cnktPmJ1ZmZlcigpKTsKLSAgICAgICAgY2xlYW51cCgpOworICAgICAgICBjbGVhbnVwKExvYWRS
ZXN1bHQ6OlN1Y2Nlc3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NzksNyArNzg3
LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlUHJvY2Vzc2luZ0NhY2hl
ZEVudHJ5QWZ0ZXJEaWRSZWNlaXZlUmVzcG9uc2UKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgaWYgKHJldHJpZXZlZEFsbCkgewogICAgICAgICAgICAgICAgICAgICBsb2FkZXIt
PnNlbmRSZXN1bHRGb3JDYWNoZUVudHJ5KFdURk1vdmUoZW50cnkpKTsKLSAgICAgICAgICAgICAg
ICAgICAgbG9hZGVyLT5jbGVhbnVwKCk7CisgICAgICAgICAgICAgICAgICAgIGxvYWRlci0+Y2xl
YW51cChMb2FkUmVzdWx0OjpTdWNjZXNzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfQpAQCAtNzg4LDcgKzc5Niw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpjb250aW51ZVByb2Nlc3NpbmdDYWNoZWRFbnRyeUFmdGVyRGlkUmVjZWl2ZVJlc3Bv
bnNlCiAKICAgICBzZW5kUmVzdWx0Rm9yQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiAKLSAg
ICBjbGVhbnVwKCk7CisgICAgY2xlYW51cChMb2FkUmVzdWx0OjpTdWNjZXNzKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlbmRSZXN1bHRGb3JDYWNoZUVudHJ5KHN0ZDo6dW5p
cXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiBlbnRyeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDg3Njk3MDhj
MGEyMDBkZDI2MWJmMTZmZjkyNjY5ZThhMjM2NDU0OGEuLjU3YzU0MGQ3Nzc3ZmFjY2RmM2U4MTVl
ODczMWE0MzBiZjYxODNkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtMTM0LDcgKzEzNCwxMyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc3RhcnROZXR3b3JrTG9hZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
Rmlyc3RMb2FkKTsKICAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CiAKLSAg
ICB2b2lkIGNsZWFudXAoKTsKKyAgICBlbnVtIGNsYXNzIExvYWRSZXN1bHQgeworICAgICAgICBV
bmtub3duLAorICAgICAgICBTdWNjZXNzLAorICAgICAgICBGYWlsdXJlLAorICAgICAgICBDYW5j
ZWwKKyAgICB9OworICAgIHZvaWQgY2xlYW51cChMb2FkUmVzdWx0KTsKICAgICAKICAgICB2b2lk
IHBsYXRmb3JtRGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKTsKIApAQCAtMTg0LDYgKzE5MCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzV2FpdGlu
Z0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVkUmVkaXJlY3QgeyBmYWxzZSB9OwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiBtX2NhY2hlRW50cnlXYWl0aW5n
Rm9yQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2U7CiAgICAgUmVmUHRyPE5ldHdvcmtMb2FkQ2hl
Y2tlcj4gbV9uZXR3b3JrTG9hZENoZWNrZXI7CisKKyAgICBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXI+IG1fbmV0d29ya0FjdGl2aXR5VHJhY2tlcjsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMzcwNWE1OTNkYzQ1ZTA1NDExMWVlMjU0ZTJjMzcwZDg4ZjQ2OGJlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrQWN0aXZpdHlU
cmFja2VyQ29jb2EubW0KQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgiCisKKyNpZiBIQVZF
KE5XX0FDVElWSVRZKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmV0d29ya0FjdGl2aXR5VHJh
Y2tlcjo6TmV0d29ya0FjdGl2aXR5VHJhY2tlcihMYWJlbCBsYWJlbCwgRG9tYWluIGRvbWFpbikK
KyAgICA6IG1fZG9tYWluKGRvbWFpbikKKyAgICAsIG1fbGFiZWwobGFiZWwpCisgICAgLCBtX25l
dHdvcmtBY3Rpdml0eShhZG9wdE5TKG53X2FjdGl2aXR5X2NyZWF0ZShzdGF0aWNfY2FzdDx1aW50
MzJfdD4obV9kb21haW4pLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4obV9sYWJlbCkpKSkKK3sKK30K
KworTmV0d29ya0FjdGl2aXR5VHJhY2tlcjo6fk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIoKQorewor
fQorCit2b2lkIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI6OnNldFBhcmVudChOZXR3b3JrQWN0aXZp
dHlUcmFja2VyJiBwYXJlbnQpCit7CisgICAgQVNTRVJUKG1fbmV0d29ya0FjdGl2aXR5LmdldCgp
KTsKKyAgICBBU1NFUlQocGFyZW50Lm1fbmV0d29ya0FjdGl2aXR5LmdldCgpKTsKKyAgICBud19h
Y3Rpdml0eV9zZXRfcGFyZW50X2FjdGl2aXR5KG1fbmV0d29ya0FjdGl2aXR5LmdldCgpLCBwYXJl
bnQubV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOworfQorCit2b2lkIE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI6OnN0YXJ0KCkKK3sKKyAgICBBU1NFUlQobV9uZXR3b3JrQWN0aXZpdHkuZ2V0KCkpOwor
ICAgIG53X2FjdGl2aXR5X2FjdGl2YXRlKG1fbmV0d29ya0FjdGl2aXR5LmdldCgpKTsKK30KKwor
dm9pZCBOZXR3b3JrQWN0aXZpdHlUcmFja2VyOjpjb21wbGV0ZShDb21wbGV0aW9uQ29kZSBjb2Rl
KQoreworICAgIGlmIChtX2lzQ29tcGxldGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2lz
Q29tcGxldGVkID0gdHJ1ZTsKKworICAgIEFTU0VSVChtX25ldHdvcmtBY3Rpdml0eS5nZXQoKSk7
CisgICAgYXV0byByZWFzb24gPQorICAgICAgICBjb2RlID09IENvbXBsZXRpb25Db2RlOjpOb25l
ID8gbndfYWN0aXZpdHlfY29tcGxldGlvbl9yZWFzb25fbm9uZSA6CisgICAgICAgIGNvZGUgPT0g
Q29tcGxldGlvbkNvZGU6OlN1Y2Nlc3MgPyBud19hY3Rpdml0eV9jb21wbGV0aW9uX3JlYXNvbl9z
dWNjZXNzIDoKKyAgICAgICAgY29kZSA9PSBDb21wbGV0aW9uQ29kZTo6RmFpbHVyZSA/IG53X2Fj
dGl2aXR5X2NvbXBsZXRpb25fcmVhc29uX2ZhaWx1cmUgOgorICAgICAgICBud19hY3Rpdml0eV9j
b21wbGV0aW9uX3JlYXNvbl9pbnZhbGlkOworICAgIG53X2FjdGl2aXR5X2NvbXBsZXRlX3dpdGhf
cmVhc29uKG1fbmV0d29ya0FjdGl2aXR5LmdldCgpLCByZWFzb24pOworICAgIG1fbmV0d29ya0Fj
dGl2aXR5LmNsZWFyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
SEFWRShOV19BQ1RJVklUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCBhODI4MGI1OWEyY2VkMzVh
MTRhMjRkODdlNGI3MDMyYTI1MzRlZDRiLi41M2I0OTIxN2U0NzIyMzA2NmExMmI2MDA2NGJiNzQz
OTQxM2MyMmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtEYXRhVGFzay5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIldpRmlBc3NlcnRpb25Ib2xkZXIuaCIKQEAgLTQxLDkgKzQyLDkgQEAgY2xhc3Mg
TmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5ldHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDog
cHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9u
Q29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShO
ZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENv
bnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxk
Q29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0
YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCisgICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0
YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xp
ZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5n
UG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZp
bmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVj
dE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIHN0ZDo6b3B0aW9u
YWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Np
b24sIGNsaWVudCwgcmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlELCBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9u
bHksIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVz
dCwgZnJhbWVJRCwgcGFnZUlELCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVu
dFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9ubHksIGRhdGFUYXNrSXNGb3JN
YWluRnJhbWVOYXZpZ2F0aW9uLCBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKSk7CiAgICAgfQogCiAg
ICAgfk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC04Myw3ICs4NCw3IEBAIHB1YmxpYzoKICAg
ICBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBO
ZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVu
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJl
Y29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24pOworICAg
IE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xp
ZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmlu
Z1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQ
cmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgc3Rk
OjpvcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7CiAKICAgICBib29sIHRyeVBhc3N3
b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAgICAgdm9pZCBhcHBseVNuaWZm
aW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoTlNVUkxSZXF1ZXN0
KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDEwNTYzZjMzMTE1ZTZlZjMwMzg0MmUyN2Nl
YjMzNTNjYjVmNzJkZGMuLjUzZTc4MDk3ODFiNDg5MDNjY2I1NjdjMDVjNGVkMjlkNGE0NjEyZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNTUsNiArNTUsMTAgQEAgQHByb3BlcnR5IChyZWFk
d3JpdGUpIEJPT0wgX2lzVG9wTGV2ZWxOYXZpZ2F0aW9uOwogQGVuZAogI2VuZGlmCiAKKyNpZiBI
QVZFKE5XX0FDVElWSVRZKQorI2ltcG9ydCA8Q0ZOZXR3b3JrL0NGTlNVUkxDb25uZWN0aW9uLmg+
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKICNpZiBVU0UoQ1JFREVOVElBTF9TVE9S
QUdFX1dJVEhfTkVUV09SS19TRVNTSU9OKQpAQCAtMTc1LDcgKzE3OSw3IEBAIHN0YXRpYyB2b2lk
IHVwZGF0ZVRhc2tXaXRoRmlyc3RQYXJ0eUZvclNhbWVTaXRlQ29va2llcyhOU1VSTFNlc3Npb25E
YXRhVGFzayogdGFzCiAjZW5kaWYKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtE
YXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGll
bnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENy
ZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBz
aG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlv
bikKK05ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNo
b3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kg
c2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJv
b2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIHN0ZDo6b3B0aW9uYWw8TmV0d29y
a0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKICAgICA6IE5ldHdvcmtE
YXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbikKICAgICAsIG1fZnJhbWVJRChmcmFt
ZUlEKQogICAgICwgbV9wYWdlSUQocGFnZUlEKQpAQCAtMjY3LDYgKzI3MSwxMSBAQCBOZXR3b3Jr
RGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVAogICAgICAgICBtX3Rhc2suZ2V0KCkucHJpb3JpdHkgPSB0b05TVVJM
U2Vzc2lvblRhc2tQcmlvcml0eShyZXF1ZXN0LnByaW9yaXR5KCkpOwogCiAgICAgdXBkYXRlVGFz
a1dpdGhGaXJzdFBhcnR5Rm9yU2FtZVNpdGVDb29raWVzKG1fdGFzay5nZXQoKSwgcmVxdWVzdCk7
CisKKyNpZiBIQVZFKE5XX0FDVElWSVRZKQorICAgIGlmIChuZXR3b3JrQWN0aXZpdHlUcmFja2Vy
KQorICAgICAgICBtX3Rhc2suZ2V0KCkuX253X2FjdGl2aXR5ID0gbmV0d29ya0FjdGl2aXR5VHJh
Y2tlci52YWx1ZSgpLmdldFBsYXRmb3JtT2JqZWN0KCk7CisjZW5kaWYKIH0KIAogTmV0d29ya0Rh
dGFUYXNrQ29jb2E6On5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3Bw
CmluZGV4IGZlMWU5YzlmN2I5M2VkYTllZjFlMmZiZGU3ZjYzOTc3ZTdiOWYzYzEuLmE2OWRiMDcx
N2E5NDY5M2JhN2E5ODVhMWJiNWZmZGJjZGYyNDc5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3Bw
CkBAIC0xMzAsNiArMTMwLDcgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX3Byb2Nlc3NTd2Fwc09uTmF2
aWdhdGlvbiA9IHRoaXMtPm1fcHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uOwogICAgIGNvcHktPm1f
YWx3YXlzS2VlcEFuZFJldXNlU3dhcHBlZFByb2Nlc3NlcyA9IHRoaXMtPm1fYWx3YXlzS2VlcEFu
ZFJldXNlU3dhcHBlZFByb2Nlc3NlczsKICAgICBjb3B5LT5tX3Byb2Nlc3NTd2Fwc09uV2luZG93
T3BlbldpdGhPcGVuZXIgPSB0aGlzLT5tX3Byb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVu
ZXI7CisgICAgY29weS0+bV90cmFja05ldHdvcmtBY3Rpdml0eSA9IHRoaXMtPm1fdHJhY2tOZXR3
b3JrQWN0aXZpdHk7CiAKICAgICByZXR1cm4gY29weTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRl
eCBlM2I3ZDQ5YWJiZDlhYjliZmQwOWVkZGFiYTMxOTVlMzlhYjk0ZDU3Li5lZGJkMDllMGI3NzFm
N2U3NDNiZTkzMWU1ZGQyNmRhYjQ3YzkzNmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC0xNDQs
NiArMTQ0LDkgQEAgcHVibGljOgogICAgIGJvb2wgcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0
aE9wZW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9w
ZW5lcjsgfQogICAgIHZvaWQgc2V0UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihi
b29sIHN3YXBzKSB7IG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lciA9IHN3YXBz
OyB9CiAKKyAgICBib29sIHRyYWNrTmV0d29ya0FjdGl2aXR5KCkgY29uc3QgeyByZXR1cm4gbV90
cmFja05ldHdvcmtBY3Rpdml0eTsgfQorICAgIHZvaWQgc2V0VHJhY2tOZXR3b3JrQWN0aXZpdHko
Ym9vbCB0cmFjaykgeyBtX3RyYWNrTmV0d29ya0FjdGl2aXR5ID0gdHJhY2s7IH0KKwogcHJpdmF0
ZToKICAgICBib29sIG1fc2hvdWxkSGF2ZUxlZ2FjeURhdGFTdG9yZSB7IGZhbHNlIH07CiAKQEAg
LTE3OCw2ICsxODEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wcm9jZXNzU3dhcHNPbk5hdmln
YXRpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbHdheXNLZWVwQW5kUmV1c2VTd2FwcGVkUHJv
Y2Vzc2VzIHsgZmFsc2UgfTsKICAgICBib29sIG1fcHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0
aE9wZW5lciB7IGZhbHNlIH07CisgICAgYm9vbCBtX3RyYWNrTmV0d29ya0FjdGl2aXR5IHsgZmFs
c2UgfTsKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBXVEY6OlN0cmluZyBtX2N0RGF0YUNvbm5l
Y3Rpb25TZXJ2aWNlVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5jcHAKaW5kZXggYTNkNGE1ODYxYTc2
NjE2ZmQyNjEzOTNkYzFiMWRiZTQ4MDFhMjJhMC4uYzU2ZTdkNTU4NDUzZDU0NDhkOWU3ZTlhYTRh
NmNmMDVjM2QzMDVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5jcHAKQEAgLTE4NywzICsxODcsMTMg
QEAgdm9pZCBXS0NvbnRleHRDb25maWd1cmF0aW9uU2V0UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVu
V2l0aE9wZW5lcihXS0NvbnRleHRDb25maWcKIHsKICAgICB0b0ltcGwoY29uZmlndXJhdGlvbikt
PnNldFByb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIoc3dhcHMpOwogfQorCitib29s
IFdLQ29udGV4dENvbmZpZ3VyYXRpb25UcmFja05ldHdvcmtBY3Rpdml0eShXS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvSW1wbChjb25maWd1
cmF0aW9uKS0+dHJhY2tOZXR3b3JrQWN0aXZpdHkoKTsKK30KKwordm9pZCBXS0NvbnRleHRDb25m
aWd1cmF0aW9uU2V0VHJhY2tOZXR3b3JrQWN0aXZpdHkoV0tDb250ZXh0Q29uZmlndXJhdGlvblJl
ZiBjb25maWd1cmF0aW9uLCBib29sIHRyYWNrKQoreworICAgIHRvSW1wbChjb25maWd1cmF0aW9u
KS0+c2V0VHJhY2tOZXR3b3JrQWN0aXZpdHkodHJhY2spOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZi5oCmlu
ZGV4IGE3NTkzNDIxZDRmNWVkZDhmMzFlZjRlZjhmOTc5ZWZmZGY3NjI5ZDIuLmQ3OTUzNWMxYTY2
NDg2MjBkNzdmMDFlYjg0MjljNjAyMjdhNTlkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKQEAgLTc3
LDYgKzc3LDkgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q29uZmlndXJhdGlvblNldEFsd2F5
c0tlZXBBbmRSZXVzZVN3YXBwZWRQcm9jZXNzZXMoV0tDb24KIFdLX0VYUE9SVCBib29sIFdLQ29u
dGV4dENvbmZpZ3VyYXRpb25Qcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyKFdLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbik7CiBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRDb25maWd1cmF0aW9uU2V0UHJvY2Vzc1N3YXBzT25XaW5kb3dPcGVuV2l0aE9wZW5lcihX
S0NvbnRleHRDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGJvb2wgc3dhcHMpOwogCitX
S19FWFBPUlQgYm9vbCBXS0NvbnRleHRDb25maWd1cmF0aW9uVHJhY2tOZXR3b3JrQWN0aXZpdHko
V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uKTsKK1dLX0VYUE9SVCB2b2lk
IFdLQ29udGV4dENvbmZpZ3VyYXRpb25TZXRUcmFja05ldHdvcmtBY3Rpdml0eShXS0NvbnRleHRD
b25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIGJvb2wgdHJhY2spOworCiAjaWZkZWYgX19j
cGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCmluZGV4IDYw
Mjk1ZmVhNzY1MzAwMDUyMDNhMDU1NTg1N2I1MzYxMjBkMjIwZTguLjQyNGU0ZjQwZTBjN2ViZjRk
MWZlNDQxNzYyNjgxMmI1ODQ4N2FkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgK
QEAgLTYwLDYgKzYwLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4
LjApKQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9u
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWx3YXlzS2VlcEFuZFJldXNlU3dhcHBlZFByb2Nl
c3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHByb2Nlc3NTd2Fwc09uV2luZG93T3Blbldp
dGhPcGVuZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB0cmFja05ldHdvcmtBY3Rpdml0eSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
QGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQppbmRleCA1NDdlYzg5NzhkYjVk
ZjQwZmFkMDNmZTAyMzAzYTAzYzFjOTZhZDg1Li41YjY5YjYxOWEzYzNjOTQ1NWE3N2M1MDIxMDAz
OGZjYTIwN2M0ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KQEAgLTI1Nyw2
ICsyNTcsMTYgQEAgLSAoQk9PTClwcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyCiAg
ICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnByb2Nlc3NTd2Fwc09uV2luZG93
T3BlbldpdGhPcGVuZXIoKTsKIH0KIAorLSAoQk9PTCl0cmFja05ldHdvcmtBY3Rpdml0eQorewor
ICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT50cmFja05ldHdvcmtBY3Rpdml0
eSgpOworfQorCistICh2b2lkKXNldFRyYWNrTmV0d29ya0FjdGl2aXR5OihCT09MKXRyYWNrCit7
CisgICAgX3Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi0+c2V0VHJhY2tOZXR3b3JrQWN0aXZpdHko
dHJhY2spOworfQorCiAjaWYgUExBVEZPUk0oSU9TKQogLSAoTlNTdHJpbmcgKilDVERhdGFDb25u
ZWN0aW9uU2VydmljZVR5cGUKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCA2YjEyMTc1Y2UzM2E4Y2QxMzcyZWY4NDdhZDk4ZjkzOTNhZDIyMDI1Li5m
N2M4ZDg0NmYwMDQ5NmI2ZWMxMzQxYTE0NDVlZjYwMzVkZDhkZWEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00OTQsNiArNDk0LDggQEAgTmV0d29y
a1Byb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKFdlYnNp
dGVEYXRhU3RvcmUqIHdpdGgKICAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXND
T1JTRW5hYmxlZCA9IGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNUb1JlZ2lzdGVyQXNDT1JTRW5hYmxl
ZCk7CiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJ
ZkNhblJlcXVlc3QgPSBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdpc3RlckFzQ2FuRGlzcGxh
eU9ubHlJZkNhblJlcXVlc3QpOwogCisgICAgcGFyYW1ldGVycy50cmFja05ldHdvcmtBY3Rpdml0
eSA9IG1fY29uZmlndXJhdGlvbi0+dHJhY2tOZXR3b3JrQWN0aXZpdHkoKTsKKwogICAgIC8vIEFk
ZCBhbnkgcGxhdGZvcm0gc3BlY2lmaWMgcGFyYW1ldGVycwogICAgIHBsYXRmb3JtSW5pdGlhbGl6
ZU5ldHdvcmtQcm9jZXNzKHBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NmYwZGRkYjljOGUyMWY1NjhlNTRmMGI1
NjllMWNlMzU5Njk2NWQ0Li5jMWJlNTQ1MzIxMDNkNmU3MDBhZjZjMjljZDM5YzZkOTZhZmIwOTEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEyMTAsMTAgKzEyMTAsMTMgQEAKIAkJNTMwMjU4NDUxRENCQkQyMjAwREE4OUMyIC8qIE5l
dHdvcmtDYXB0dXJlUmVwbGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUzMDI1ODM4MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJl
cGxheWVyLmggKi87IH07CiAJCTUzMDI1ODQ2MURDQkJEMjIwMERBODlDMiAvKiBOZXR3b3JrRGF0
YVRhc2tSZXBsYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTMwMjU4MzkxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtEYXRhVGFza1JlcGxheS5j
cHAgKi87IH07CiAJCTUzMDI1ODQ3MURDQkJEMjIwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tS
ZXBsYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUz
MDI1ODNBMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuaCAqLzsgfTsK
KwkJNTMxNTg3NkMyMDc2Qjc2MjAwNEJGOUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2Nv
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMTU4
NzZCMjA3NkI3MTMwMDRCRjlGMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyQ29jb2EubW0gKi87
IH07CiAJCTUzMjE1OTUzMURCQUU3MTgwMDU0QUEzQyAvKiBOZXR3b3JrU2Vzc2lvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIxNTk1MjFEQkFF
NkZDMDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb24uY3BwICovOyB9OwogCQk1MzIxNTk1NDFEQkFF
NzFEMDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjE1OTUxMURCQUU2RkMwMDU0QUEzQyAvKiBOZXR3
b3JrRGF0YVRhc2suY3BwICovOyB9OwogCQk1MzIxNTk1NTFEQkFFNzI5MDA1NEFBM0MgLyogTmV0
d29ya1Nlc3Npb25Db2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTMyMTU5NTAxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2Eu
aCAqLzsgfTsKIAkJNTMyMTU5NTYxREJBRTcyRDAwNTRBQTNDIC8qIE5ldHdvcmtEYXRhVGFza0Nv
Y29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIx
NTk0RjFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EuaCAqLzsgfTsKKwkJ
NTM1QkNCOTIyMDY5QzQ5QzAwQ0NDRTAyIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNUJDQjkwMjA2OUM0
OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmggKi87IH07CisJCTUzNzlEQjcy
MjA3RTk0NzAwMDdEOEMzMyAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRjNDQUE1MjA2QzQ0M0UwMDg2
NDkwRSAvKiBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcCAqLzsgfTsKIAkJNTNCQTQ3RDAxREMy
RUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM5RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8q
IE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwICovOyB9OwogCQk1M0JBNDdEMTFEQzJFRjVFMDA0REY0
QUQgLyogTmV0d29ya0RhdGFUYXNrQmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTM5RUI1NDcxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRh
VGFza0Jsb2IuaCAqLzsgfTsKIAkJNTNERUEzNjYxRERFNDIzMTAwRTgyNjQ4IC8qIGpzb24uaHBw
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNERUEzNjUx
RERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBwICovOyB9OwpAQCAtMzY0OCwxMyArMzY1MSwxNiBA
QAogCQk1MzAyNTgzODFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXBsYXllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrQ2FwdHVyZVJlcGxheWVy
Lmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlUmVwbGF5ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMwMjU4MzkxRENCQkQxRDAwREE4OUMy
IC8qIE5ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nl
c3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MzAyNTgzQTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0RhdGFUYXNrUmVw
bGF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza1Jl
cGxheS5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBs
YXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTMxNTg3NkIyMDc2QjcxMzAwNEJG
OUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbTsgcGF0
aCA9IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMyMTU5NEYxREJBRTZENzAwNTRBQTNDIC8q
IE5ldHdvcmtEYXRhVGFza0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE5ldHdvcmtEYXRhVGFza0NvY29hLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzIxNTk1
MDFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrU2Vzc2lvbkNvY29hLmg7IHBhdGggPSBOZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUzMjE1OTUxMURCQUU2RkMwMDU0QUEzQyAvKiBOZXR3b3JrRGF0YVRhc2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrLmNw
cDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUzMjE1OTUyMURCQUU2RkMwMDU0QUEzQyAvKiBOZXR3b3JrU2Vz
c2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrU2Vz
c2lvbi5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzNUJDQjkwMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3
b3JrQWN0aXZpdHlUcmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM5RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8qIE5l
dHdvcmtEYXRhVGFza0Jsb2IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
RGF0YVRhc2tCbG9iLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM5RUI1NDcx
REMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrQmxvYi5oOyBwYXRoID0gTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1M0RFQTM2NTFEREU0MjJFMDBFODI2NDggLyoganNvbi5ocHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5oOyBuYW1lID0ganNvbi5ocHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJl
L2pzb24uaHBwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1M0YzQ0FBNTIwNkM0NDNF
MDA4NjQ5MEUgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcDsgcGF0aCA9IE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzUwRjMyQTIwMzJENEU1MDAzODkzNDcgLyogTG9jYWxBdXRoZW50aWNh
dGlvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IExvY2FsQXV0aGVudGljYXRpb24uZnJh
bWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Mb2NhbEF1dGhlbnRpY2F0
aW9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CiAJCTU3NjA4MjhCMjAyOTg1
NDIwMDExNjY3OCAvKiBXZWJDcmVkZW50aWFsc01lc3Nlbmdlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJDcmVkZW50aWFsc01lc3Nlbmdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzYwODI4QzIwMjk4NTQyMDAxMTY2NzggLyogV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjM3OSw2ICs2Mzg1LDggQEAKIAkJCQkyREE5NDRCQjE4ODUx
MUREMDBFRDg2REIgLyogaW9zICovLAogCQkJCTUxMENDN0RDMTYxMzhFMjkwMEQwM0VEMyAvKiBt
YWMgKi8sCiAJCQkJNDEzMDc1OTcxREU4NEVENzAwMzlFQzY5IC8qIHdlYnJ0YyAqLywKKwkJCQk1
M0YzQ0FBNTIwNkM0NDNFMDA4NjQ5MEUgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAgKi8s
CisJCQkJNTM1QkNCOTAyMDY5QzQ5QzAwQ0NDRTAyIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIu
aCAqLywKIAkJCQk1MTNBMTY0OTE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwICovLAogCQkJCTUxM0ExNjRBMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovLAogCQkJCTUxM0ExNjRCMTYzMEE5QkYwMDVE
N0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKQEAg
LTY5MDUsNiArNjkxMyw3IEBACiAJCTdFQzRGMEY4MThFNEE5MjIwMDgwNTZBRiAvKiBjb2NvYSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTMxNTg3NkIy
MDc2QjcxMzAwNEJGOUYzIC8qIE5ldHdvcmtBY3Rpdml0eVRyYWNrZXJDb2NvYS5tbSAqLywKIAkJ
CQk1MzIxNTk0RjFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EuaCAqLywK
IAkJCQk1Q0JDOUI4QjFDNjUyNTczMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrQ29jb2EubW0g
Ki8sCiAJCQkJN0VDNEYwRjkxOEU0QTk0NTAwODA1NkFGIC8qIE5ldHdvcmtQcm9jZXNzQ29jb2Eu
bW0gKi8sCkBAIC04OTkxLDYgKzkwMDAsNyBAQAogCQkJCTFBNkZCRDI4MTFFNjlCQzIwMERCMTM3
MSAvKiBOZXRzY2FwZVBsdWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTlDNTYxMkI4MTZD
RjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUE1ODg5MjExRUU3MDQwMDA2MUI4ODIgLyogTmV0c2NhcGVQbHVnaW5TdHJlYW0uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUzNUJDQjkyMjA2OUM0OUMwMENDQ0UwMiAvKiBOZXR3b3JrQWN0aXZpdHlU
cmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTc5OEM3QTE2RTY4MTg4MDAyNDAxMzkgLyog
TmV0d29ya0Jsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0MzZFQ0MxQTBEMDQw
QjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5RDQwRDcx
QUQzRkIxNzAwNjZCN0I5IC8qIE5ldHdvcmtDYWNoZUJsb2JTdG9yYWdlLmggaW4gSGVhZGVycyAq
LywKQEAgLTEwNjMyLDYgKzEwNjQyLDcgQEAKIAkJCQkyRDUwMzY1RTFCQ0M3OTNGMDBFMjBCQjMg
LyogTmF0aXZlV2ViR2VzdHVyZUV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRBOTQ0
OUUxODg0RTRGMDAwRUQ4NkRCIC8qIE5hdGl2ZVdlYktleWJvYXJkRXZlbnRJT1MubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDMDJCRkYxRTEyNTE1MDJFMDA5Q0NCRUEgLyogTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudE1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTFDOUVCQTVDMjA4N0U3NEYwMDA1NDQy
OSAvKiBOYXRpdmVXZWJNb3VzZUV2ZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFFQTI1
RDIxMzRGNzhDMDAwNUIxNDUyIC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRNYWMubW0gaW4gU291cmNl
cyAqLywKIAkJCQkyREE5NDQ5RjE4ODRFNEYwMDBFRDg2REIgLyogTmF0aXZlV2ViVG91Y2hFdmVu
dElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCURGNThDNjM2MTM3MUFDQTAwMEY5QTM3QyAvKiBO
YXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xMDY0Myw2ICsxMDY1
NCw4IEBACiAJCQkJMUE0QTlDNTUxMkI4MTZDRjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9k
dWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5QzlBMTJCODIxQ0QwMDhGRTk4NCAvKiBO
ZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQTU4ODkzMTFF
RTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBsdWdpblN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1Mzc5REI3MjIwN0U5NDcwMDA3RDhDMzMgLyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk1MzE1ODc2QzIwNzZCNzYyMDA0QkY5RjMgLyogTmV0d29y
a0FjdGl2aXR5VHJhY2tlckNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE3OThDNzkxNkU2
ODE4ODAwMjQwMTM5IC8qIE5ldHdvcmtCbG9iUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTQ0MzZFQ0ExQTBEMDNGQTAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFNDlENDBEOTFBRDNGQjIxMDA2NkI3QjkgLyogTmV0d29ya0NhY2hlQmxvYlN0
b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMDY1OCw3ICsxMDY3MSw2IEBACiAJCQkJODMy
QUUyNTMxQkUyRThDRDAwRkFBRTEwIC8qIE5ldHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFn
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODNCRENDQjkxQUM1RkRCNjAwM0Y2NDQxIC8qIE5l
dHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0MzZFRDAxQTBE
MDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJMUM5RUJBNUMyMDg3RTc0RjAwMDU0NDI5IC8qIE5hdGl2ZVdlYk1vdXNlRXZlbnRJT1MubW0g
aW4gU291cmNlcyAqLywKIAkJCQk4MzEwNDI4QzFCRDZCNjZGMDBBNzE1RTQgLyogTmV0d29ya0Nh
Y2hlU3VicmVzb3VyY2VzRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTMwMjU4M0QxRENC
QkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTMwMjU4NDAxRENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBkODUzZjU4ZTQ0Y2VlYzkwNzUzNGRkYThk
ZDc5MWNlYmU3MTcwYzAyLi43Mzc3OTJmNmViOTMzZjczZTQyNmNmZjc3NzU4NDhhMzk4Y2FiYTVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwCkBAIC01MjIsNiArNTIyLDExIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRl
Z3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCB1
bnNpCiAgICAgfQogfQogCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwYWdlTG9hZENvbXBsZXRl
ZCh1aW50NjRfdCB3ZWJQYWdlSUQpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQYWdlTG9hZENvbXBsZXRlZCh3ZWJQYWdl
SUQpLCAwKTsKK30KKwogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKQog
ewogICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVyID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IDY1Nzg2
MzMwYzJhOGJjY2UxNzRhZTQ5OTQ4ODUyMmRmOGUzZTk1MjQuLjk2OTI1YmMwNTgxNmI5MGJkM2Ni
ZGU2YTY4MTQ5YTVlZDkwMDNjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6
CiAgICAgCiAgICAgdm9pZCBsb2FkUmVzb3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxX
ZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRlcj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZFJl
c291cmNlU3luY2hyb25vdXNseShXZWJDb3JlOjpGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcg
cmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
V2ViQ29yZTo6Q2xpZW50Q3JlZGVudGlhbFBvbGljeSwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRp
b25zJiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgVmVjdG9yPGNoYXI+JiBkYXRhKSBmaW5h
bDsKKyAgICB2b2lkIHBhZ2VMb2FkQ29tcGxldGVkKHVpbnQ2NF90IHdlYlBhZ2VJRCkgZmluYWw7
CiAKICAgICB2b2lkIHJlbW92ZShXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciopIGZpbmFsOwogICAg
IHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciosIGJvb2wpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IGM2MGIyZTQ1MzM1YzNhMDQ2
YzRlMjc3Y2I3ZTRiZTY3NjhjN2NjYzkuLjY0MWU2N2MzNmViZjQ4NmM3N2Q0MDBjNjE0YTAwNjVj
YzQ0ZDVkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTExMSw2ICsxMTEs
MTAgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGUKICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShmcmFtZUxvYWRlci5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1
ZXN0LCBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9t
aXQgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2UgOiBTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6VXNlLCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogfQogCit2b2lkIFdlYlJlc291
cmNlTG9hZFNjaGVkdWxlcjo6cGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3QgLyp3ZWJQYWdlSUQq
LykKK3sKK30KKwogdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlUGx1Z2lu
U3RyZWFtTG9hZChGcmFtZSYgZnJhbWUsIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50
JiBjbGllbnQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6Y3JlYXRl
KGZyYW1lLCBjbGllbnQsIFdURk1vdmUocmVxdWVzdCksIFt0aGlzLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoUmVmUHRyPFdlYkNvcmU6Ok5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyPiYmIGxvYWRlcikgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaAppbmRleCA4ODI4YjU0OThhY2VkMzY4YzU2YWI4YTg1NTczOTM3MzI0NWYwYWRiLi43
NzBkNjNlZmM2YWM5ODkxNzBkZTQ2ZWE3YzM4NTVhMjBhYzY1ODIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmgKQEAgLTUxLDYgKzUxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBsb2FkUmVz
b3VyY2UoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZSYsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlck9wdGlvbnMm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxXZWJDb3JlOjpTdWJyZXNvdXJjZUxvYWRl
cj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZFJlc291cmNlU3luY2hyb25vdXNseShXZWJD
b3JlOjpGcmFtZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OkNsaWVudENyZWRlbnRpYWxQb2xpY3ksIGNvbnN0IFdlYkNvcmU6
OkZldGNoT3B0aW9ucyYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYp
IGZpbmFsOworICAgIHZvaWQgcGFnZUxvYWRDb21wbGV0ZWQodWludDY0X3Qgd2ViUGFnZUlEKSBm
aW5hbDsKKwogICAgIHZvaWQgcmVtb3ZlKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKikgZmluYWw7
CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKiwgYm9v
bCkgZmluYWw7CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpVUkwmIHJlZGlyZWN0VVJMKSBmaW5hbDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>