<?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>193447</bug_id>
          
          <creation_ts>2019-01-15 07:41:58 -0800</creation_ts>
          <short_desc>Limit user-agent interactions based on the touch-action property on iOS</short_desc>
          <delta_ts>2019-02-13 23:52:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=133112</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>jonlee</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1494618</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-15 07:41:58 -0800</bug_when>
    <thetext>Now that we&apos;ve added parsing support for additional values for the touch-action property (see webkit.org/b/193314), we need to account for them when processing user interaction in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494619</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-01-15 07:42:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/47283874&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494751</commentid>
    <comment_count>2</comment_count>
      <attachid>359189</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-15 12:10:41 -0800</bug_when>
    <thetext>Created attachment 359189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494835</commentid>
    <comment_count>3</comment_count>
      <attachid>359208</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-15 14:59:42 -0800</bug_when>
    <thetext>Created attachment 359208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495024</commentid>
    <comment_count>4</comment_count>
      <attachid>359257</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-15 23:32:28 -0800</bug_when>
    <thetext>Created attachment 359257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495026</commentid>
    <comment_count>5</comment_count>
      <attachid>359258</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-15 23:58:43 -0800</bug_when>
    <thetext>Created attachment 359258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495031</commentid>
    <comment_count>6</comment_count>
      <attachid>359260</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-16 00:34:07 -0800</bug_when>
    <thetext>Created attachment 359260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495137</commentid>
    <comment_count>7</comment_count>
      <attachid>359260</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-16 11:38:42 -0800</bug_when>
    <thetext>Comment on attachment 359260
Patch

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

&gt; Source/WebCore/dom/Document.cpp:4151
&gt; +    if (auto* page = this-&gt;page()) {
&gt; +        if (auto* frameView = view()) {
&gt; +            if (auto* scrollingCoordinator = page-&gt;scrollingCoordinator())
&gt; +                scrollingCoordinator-&gt;frameViewEventTrackingRegionsChanged(*frameView);
&gt; +        }
&gt; +    }

Should this really be inside ENABLE(TOUCH_EVENTS)?

&gt; Source/WebCore/dom/Document.cpp:8676
&gt; +#if ENABLE(TOUCH_EVENTS) &amp;&amp; PLATFORM(IOS_FAMILY)

These are normally the other way around. Also this entire function is inside #if ENABLE(TOUCH_EVENTS).

&gt; Source/WebCore/dom/Element.cpp:4125
&gt; +#if ENABLE(TOUCH_EVENTS)

Why aren&apos;t your changes inside ENABLE(POINTER_EVENTS)?

&gt; Source/WebCore/dom/Element.cpp:4126
&gt; +OptionSet&lt;TouchAction&gt; Element::computedTouchActions() const

This function has a tree walk up to the root element. That seems really expensive.

&gt; Source/WebCore/dom/Element.cpp:4129
&gt; +    for (auto* element = this; element; element = parentCrossingFrameBoundaries(element)) {

parentCrossingFrameBoundaries seems wrong here.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:2587
&gt; +        if ([_contentView preventsPanningInXAxis])
&gt; +            targetContentOffset-&gt;x = scrollView.contentOffset.x;
&gt; +        if ([_contentView preventsPanningInYAxis])
&gt; +            targetContentOffset-&gt;y = scrollView.contentOffset.y;

What happens if you don&apos;t have this code?

&gt; Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:215
&gt; +

Blank line.

&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:76
&gt; +            bool canPanX = true;
&gt; +            bool canPanY = true;

These are unused.

&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:147
&gt; +    bool canPanX = true;
&gt; +    bool canPanY = true;

These are unused.

&gt; Source/WebKit/UIProcess/WebPageProxy.h:685
&gt; +bool isScrollingOrZooming() const { return m_isScrollingOrZooming; }

Indentation.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1160
&gt; +                [_singleTapGestureRecognizer setEnabled:NO];
&gt; +                [_nonBlockingDoubleTapGestureRecognizer setEnabled:NO];
&gt; +                [_twoFingerDoubleTapGestureRecognizer setEnabled:NO];
&gt; +                [_highlightLongPressGestureRecognizer setEnabled:NO];
&gt; +                [_twoFingerSingleTapGestureRecognizer setEnabled:NO];
&gt; +                [_stylusSingleTapGestureRecognizer setEnabled:NO];
&gt; +                [_doubleTapGestureRecognizer setEnabled:NO];
&gt; +                [_longPressGestureRecognizer setEnabled:NO];

Where do they get re-enabled?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1190
&gt; +- (void)_resetPanningPreventionFlags

You need to call this from -cleanupInteraction too to clean up state when a web process crashes or is swapped.

&gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:838
&gt; +Vector&lt;std::pair&lt;OptionSet&lt;WebCore::TouchAction&gt;, WebCore::ScrollingNodeID&gt;&gt; WebPageProxy::touchActionsForTouchEvent(const WebTouchEvent&amp; event)

Vector&lt;std::pair&lt;OptionSet&lt;WebCore::TouchAction&gt;, WebCore::ScrollingNodeID&gt;&gt; is gross. At least typedef it.

&gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:841
&gt; +    process().sendSync(Messages::WebPage::TouchActionsForTouchEvent(event), Messages::WebPage::TouchActionsForTouchEvent::Reply(touchActions), m_pageID);

This is going to be a massive new source of UI process hangs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495206</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-16 13:42:06 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; Comment on attachment 359260 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=359260&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:4125
&gt; &gt; +#if ENABLE(TOUCH_EVENTS)
&gt; 
&gt; Why aren&apos;t your changes inside ENABLE(POINTER_EVENTS)?

Do you think we should add it? I don&apos;t think it currently exists and the touch-action property is enabled if ENABLE_TOUCH_EVENTS in CSSProperties.json.
 
&gt; &gt; Source/WebCore/dom/Element.cpp:4126
&gt; &gt; +OptionSet&lt;TouchAction&gt; Element::computedTouchActions() const
&gt; 
&gt; This function has a tree walk up to the root element. That seems really
&gt; expensive.

What do you suggest as an alternative?

&gt; &gt; Source/WebCore/dom/Element.cpp:4129
&gt; &gt; +    for (auto* element = this; element; element = parentCrossingFrameBoundaries(element)) {
&gt; 
&gt; parentCrossingFrameBoundaries seems wrong here.

I think it is correct, setting a touch-action property on an element in a parent frame that is the ancestor of the &lt;iframe&gt; element affects the permitted touch actions for the element within the frame.

&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:2587
&gt; &gt; +        if ([_contentView preventsPanningInXAxis])
&gt; &gt; +            targetContentOffset-&gt;x = scrollView.contentOffset.x;
&gt; &gt; +        if ([_contentView preventsPanningInYAxis])
&gt; &gt; +            targetContentOffset-&gt;y = scrollView.contentOffset.y;
&gt; 
&gt; What happens if you don&apos;t have this code?

There would be a deceleration animation even though we overrode the panning during the interaction.

&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1160
&gt; &gt; +                [_singleTapGestureRecognizer setEnabled:NO];
&gt; &gt; +                [_nonBlockingDoubleTapGestureRecognizer setEnabled:NO];
&gt; &gt; +                [_twoFingerDoubleTapGestureRecognizer setEnabled:NO];
&gt; &gt; +                [_highlightLongPressGestureRecognizer setEnabled:NO];
&gt; &gt; +                [_twoFingerSingleTapGestureRecognizer setEnabled:NO];
&gt; &gt; +                [_stylusSingleTapGestureRecognizer setEnabled:NO];
&gt; &gt; +                [_doubleTapGestureRecognizer setEnabled:NO];
&gt; &gt; +                [_longPressGestureRecognizer setEnabled:NO];
&gt; 
&gt; Where do they get re-enabled?

They&apos;re not. I think this code should be removed actually. We should deal with those other gestures individually in separate patches.

&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1190
&gt; &gt; +- (void)_resetPanningPreventionFlags
&gt; 
&gt; You need to call this from -cleanupInteraction too to clean up state when a
&gt; web process crashes or is swapped.

Thanks, will add that.

&gt; &gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:838
&gt; &gt; +Vector&lt;std::pair&lt;OptionSet&lt;WebCore::TouchAction&gt;, WebCore::ScrollingNodeID&gt;&gt; WebPageProxy::touchActionsForTouchEvent(const WebTouchEvent&amp; event)
&gt; 
&gt; Vector&lt;std::pair&lt;OptionSet&lt;WebCore::TouchAction&gt;, WebCore::ScrollingNodeID&gt;&gt;
&gt; is gross. At least typedef it.

Will do.

&gt; &gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:841
&gt; &gt; +    process().sendSync(Messages::WebPage::TouchActionsForTouchEvent(event), Messages::WebPage::TouchActionsForTouchEvent::Reply(touchActions), m_pageID);
&gt; 
&gt; This is going to be a massive new source of UI process hangs.

We have discussed this in person extensively and could not come up with an asynchronous mechanism that would allow interactions to be overridden in time when a fast interaction occurs. If you have another idea, I&apos;m interested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495427</commentid>
    <comment_count>9</comment_count>
      <attachid>359363</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-17 02:10:12 -0800</bug_when>
    <thetext>Created attachment 359363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495429</commentid>
    <comment_count>10</comment_count>
      <attachid>359365</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-17 02:55:55 -0800</bug_when>
    <thetext>Created attachment 359365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495574</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-17 11:50:46 -0800</bug_when>
    <thetext>About WebPageProxy::touchActionsForTouchEvent() being synchronous, it&apos;s important to note that:

1. the sync message will only be dispatched for new touches if we haven&apos;t excluded that the touch&apos;s location is contained within the bounds of a sub-tree element that may have a touch-action.

2. there is no events dispatched or JS code ran as a result, this is all WebCore code and no user code can run. The sync message is sent prior to dispatching new touch events for the new gesture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495787</commentid>
    <comment_count>12</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-18 03:30:22 -0800</bug_when>
    <thetext>Seems to me that there are basically two ways to avoid the sync ipc.

- Push sufficient amount of data about touch action regions to UI process so we can hit test them fully in the UI process side. This could be done for example as part of layer tree transactions.

- Gather similar data in the web process side. Sync IPC to a dedicated thread (somewhat like how scrolling thread work) to access this data and do the hit testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497918</commentid>
    <comment_count>13</comment_count>
      <attachid>360028</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-24 13:00:24 -0800</bug_when>
    <thetext>Created attachment 360028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497922</commentid>
    <comment_count>14</comment_count>
      <attachid>360029</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-24 13:17:13 -0800</bug_when>
    <thetext>Created attachment 360029
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1497928</commentid>
    <comment_count>15</comment_count>
      <attachid>360031</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-24 13:33:31 -0800</bug_when>
    <thetext>Created attachment 360031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498165</commentid>
    <comment_count>16</comment_count>
      <attachid>360089</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-25 00:17:41 -0800</bug_when>
    <thetext>Created attachment 360089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498166</commentid>
    <comment_count>17</comment_count>
      <attachid>360090</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-25 00:23:29 -0800</bug_when>
    <thetext>Created attachment 360090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498195</commentid>
    <comment_count>18</comment_count>
      <attachid>360100</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-25 03:39:25 -0800</bug_when>
    <thetext>Created attachment 360100
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498211</commentid>
    <comment_count>19</comment_count>
      <attachid>360100</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-25 04:49:49 -0800</bug_when>
    <thetext>Comment on attachment 360100
Patch

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

&gt; Source/WebCore/dom/Document.cpp:7113
&gt; +Document::RegionFixedPair Document::absoluteRegionForNode(Node* node)

This should take a reference as there is no reason to call this with null node

Maybe call this absoluteEventRegionForNode or something similarly informative?

&gt; Source/WebCore/page/scrolling/ScrollingTree.cpp:422
&gt; +void ScrollingTree::setTouchActionsForScrollingNodeID(OptionSet&lt;TouchAction&gt; touchActions, ScrollingNodeID scrollingNodeID)
&gt; +{
&gt; +    if (auto* scrollingTreeNode = nodeForID(scrollingNodeID))
&gt; +        scrollingTreeNode-&gt;setTouchActions(touchActions);
&gt; +}

Maybe setActiveTouchActions/setActiveTouchActionsForScrollingNodeID or similar to indicate this is a temporary state?

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1156
&gt; +                        scrollingCoordinator-&gt;setTouchActionsForScrollingNodeID(touchActionData-&gt;touchActions, touchActionData-&gt;scrollingNodeID);

Do we ever clear the touch actions we set here? Should we?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498219</commentid>
    <comment_count>20</comment_count>
      <attachid>360100</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-25 06:06:51 -0800</bug_when>
    <thetext>Comment on attachment 360100
Patch

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

&gt; Source/WebCore/dom/Document.cpp:8680
&gt; +void Document::updateTouchActionElements(Node&amp; node, RenderStyle* style)

This should take Element&amp;, const RenderStyle&amp;

&gt; Source/WebCore/dom/Document.cpp:8683
&gt; +    if (!m_touchActionElements)
&gt; +        m_touchActionElements = std::make_unique&lt;HashSet&lt;Node*&gt;&gt;();

This could be done when we see the first touch-action element. That would also avoid unnecessary hash lookups on remove for all elements.

&gt; Source/WebCore/dom/Document.h:1280
&gt; +    const HashSet&lt;Node*&gt;* touchActionElements() const { return m_touchActionElements.get(); }

This is called touchActionElements() and also seems only ever contains elements. It should be HashSet&lt;Element*&gt; or maybe HashSet&lt;const Element*&gt;.

&gt; Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:116
&gt; +        for (auto&amp; node : *frame.document()-&gt;touchActionElements()) {

Is touchActionElements() always guaranteed to be non-null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498223</commentid>
    <comment_count>21</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-25 06:18:41 -0800</bug_when>
    <thetext>Simon should check the ScrollingTree bits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498241</commentid>
    <comment_count>22</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-25 08:02:57 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #19)
&gt; Comment on attachment 360100 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=360100&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:7113
&gt; &gt; +Document::RegionFixedPair Document::absoluteRegionForNode(Node* node)
&gt; 
&gt; This should take a reference as there is no reason to call this with null
&gt; node

Sure, will fix when landing.

&gt; Maybe call this absoluteEventRegionForNode or something similarly
&gt; informative?

Sure, will fix when landing.

&gt; &gt; Source/WebCore/page/scrolling/ScrollingTree.cpp:422
&gt; &gt; +void ScrollingTree::setTouchActionsForScrollingNodeID(OptionSet&lt;TouchAction&gt; touchActions, ScrollingNodeID scrollingNodeID)
&gt; &gt; +{
&gt; &gt; +    if (auto* scrollingTreeNode = nodeForID(scrollingNodeID))
&gt; &gt; +        scrollingTreeNode-&gt;setTouchActions(touchActions);
&gt; &gt; +}
&gt; 
&gt; Maybe setActiveTouchActions/setActiveTouchActionsForScrollingNodeID or
&gt; similar to indicate this is a temporary state?

Sure, will fix when landing.

&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1156
&gt; &gt; +                        scrollingCoordinator-&gt;setTouchActionsForScrollingNodeID(touchActionData-&gt;touchActions, touchActionData-&gt;scrollingNodeID);
&gt; 
&gt; Do we ever clear the touch actions we set here? Should we?

We don&apos;t. However, I&apos;m not sure where to do that. Simon might know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498242</commentid>
    <comment_count>23</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-25 08:04:11 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #20)
&gt; Comment on attachment 360100 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=360100&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:8680
&gt; &gt; +void Document::updateTouchActionElements(Node&amp; node, RenderStyle* style)
&gt; 
&gt; This should take Element&amp;, const RenderStyle&amp;

Will fix when landing.

&gt; &gt; Source/WebCore/dom/Document.cpp:8683
&gt; &gt; +    if (!m_touchActionElements)
&gt; &gt; +        m_touchActionElements = std::make_unique&lt;HashSet&lt;Node*&gt;&gt;();
&gt; 
&gt; This could be done when we see the first touch-action element. That would
&gt; also avoid unnecessary hash lookups on remove for all elements.

Good idea! Will fix when landing.

&gt; &gt; Source/WebCore/dom/Document.h:1280
&gt; &gt; +    const HashSet&lt;Node*&gt;* touchActionElements() const { return m_touchActionElements.get(); }
&gt; 
&gt; This is called touchActionElements() and also seems only ever contains
&gt; elements. It should be HashSet&lt;Element*&gt; or maybe HashSet&lt;const Element*&gt;.

Changing to HashSet&lt;Element*&gt; when landing. However, making it &lt;const Element*&gt; is tricky because the chain of calls made on these elements goes deep and is non-const.

&gt; &gt; Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:116
&gt; &gt; +        for (auto&amp; node : *frame.document()-&gt;touchActionElements()) {
&gt; 
&gt; Is touchActionElements() always guaranteed to be non-null?

No, I will add a guard when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498552</commentid>
    <comment_count>24</comment_count>
      <attachid>360100</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-25 16:19:45 -0800</bug_when>
    <thetext>Comment on attachment 360100
Patch

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

It seems like this patch assume that all iOS scrolling is going to happen in the scrolling tree. That might not be true if I fail at my job, or if I have to fall off the fast path because of things like background-attachment:fixed inside overflow on macOS.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:2408
&gt; +		83520C7E1A71BFCC006BD2AA /* CSSFontFamily.h in Headers */ = {isa = PBXBuildFile; fileRef = 83520C7D1A71BFCC006BD2AA /* CSSFontFamily.h */; settings = {ATTRIBUTES = (Private, ); }; };

Does this really need to become a private header?

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:2894
&gt; +		9AB1F38018E2489A00534743 /* CSSToLengthConversionData.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AB1F37E18E2489A00534743 /* CSSToLengthConversionData.h */; settings = {ATTRIBUTES = (Private, ); }; };

Ditto

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:4772
&gt; +		E1ED8AC30CC49BE000BFC557 /* CSSPrimitiveValueMappings.h in Headers */ = {isa = PBXBuildFile; fileRef = E1ED8AC20CC49BE000BFC557 /* CSSPrimitiveValueMappings.h */; settings = {ATTRIBUTES = (Private, ); }; };

Ditto.

&gt; Source/WebCore/dom/Document.cpp:4155
&gt; +#if ENABLE(POINTER_EVENTS)

Blank line above please.

&gt; Source/WebCore/dom/Document.cpp:7124
&gt; +        else if (Element* element = document-&gt;ownerElement())
&gt; +            rootRelativeBounds = element-&gt;absoluteEventHandlerBounds(insideFixedPosition);

The bounds of the ownerElement aren&apos;t necessarily the same as those of its contained document, because of borders and padding on the &lt;iframe&gt;.

Also this code is confusing; can absoluteRegionForNode() be called with a node from a different document?

I see that you copied this code, so I should ask those questions of my self :|

&gt; Source/WebCore/dom/Document.cpp:7126
&gt; +        Element* element = downcast&lt;Element&gt;(node);

Slightly nicer as auto&amp; element = downcast&lt;Element&gt;(*node);

&gt; Source/WebCore/dom/Document.cpp:8690
&gt; +        changed |= m_touchActionElements-&gt;add(&amp;node).isNewEntry;
&gt; +    else
&gt; +        changed |= m_touchActionElements-&gt;remove(&amp;node);

I was worried that |= can short-circuit but Tim looked it up and it doesn&apos;t. Be careful though!

&gt; Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:115
&gt; +        auto&amp; touchActionData = eventTrackingRegions.touchActionData;

Please make a system trace point for this code, since it&apos;s expensive. It would look something like TraceScope tracingScope(TouchActionRegionComputationStart, TouchActionRegionComputationEnd) with relevant changes to Tools/Tracing/SystemTracePoints.plist (you can do this in a followup).

&gt; Source/WebCore/page/scrolling/ScrollingTree.h:109
&gt; +    WEBCORE_EXPORT Optional&lt;TouchActionData&gt; touchActionDataAtPoint(const IntPoint) const;

Comment should say what coordinate system the point is in. No need for &quot;const IntPoint&quot;.

&gt; Source/WebCore/platform/EventTrackingRegions.h:48
&gt; +typedef uint64_t ScrollingNodeID;

I want to put ScrollingNodeID in ScrollTypes.h.

&gt; Source/WebCore/platform/EventTrackingRegions.h:51
&gt; +    ScrollingNodeID scrollingNodeID;

Can this be { 0 }

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:2589
&gt; +        if ([_contentView preventsPanningInXAxis])
&gt; +            targetContentOffset-&gt;x = scrollView.contentOffset.x;
&gt; +        if ([_contentView preventsPanningInYAxis])
&gt; +            targetContentOffset-&gt;y = scrollView.contentOffset.y;

Doesn&apos;t this cause snapping at the end of the gesture?

&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:85
&gt; +        auto touchActions = _scrollingTreeNodeDelegate-&gt;scrollingNode().touchActions();
&gt; +        if (touchActions != WebCore::TouchAction::Auto &amp;&amp; touchActions != WebCore::TouchAction::Manipulation) {
&gt; +            bool canPanX = true;
&gt; +            bool canPanY = true;
&gt; +            if (!touchActions.contains(WebCore::TouchAction::PanX)) {
&gt; +                canPanX = false;
&gt; +                targetContentOffset-&gt;x = scrollView.contentOffset.x;
&gt; +            }
&gt; +            if (!touchActions.contains(WebCore::TouchAction::PanY)) {
&gt; +                canPanY = false;
&gt; +                targetContentOffset-&gt;y = scrollView.contentOffset.y;
&gt; +            }

This is in -scrollViewWillEndDragging. Doesn&apos;t this mean that the user can pan on both axes but then we&apos;ll snap at the end?

&gt; Source/WebKit/UIProcess/WebPageProxy.h:689
&gt; +#if ENABLE(POINTER_EVENTS)
&gt; +    bool isScrollingOrZooming() const { return m_isScrollingOrZooming; }
&gt; +#endif

Don&apos;t #ifdef stuff like this.

&gt;&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1156
&gt;&gt;&gt; +                        scrollingCoordinator-&gt;setTouchActionsForScrollingNodeID(touchActionData-&gt;touchActions, touchActionData-&gt;scrollingNodeID);
&gt;&gt; 
&gt;&gt; Do we ever clear the touch actions we set here? Should we?
&gt; 
&gt; We don&apos;t. However, I&apos;m not sure where to do that. Simon might know.

We don&apos;t have a good place. Can we do this in a way that doesn&apos;t involve shoving state onto what is supposed to be a read-only tree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498689</commentid>
    <comment_count>25</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-25 23:16:51 -0800</bug_when>
    <thetext>&gt; We don&apos;t have a good place. Can we do this in a way that doesn&apos;t involve
&gt; shoving state onto what is supposed to be a read-only tree?

Maybe keep the state in RemoteScrollingCoordinatorProxy or thereabouts, just read it from the scrolling tree code? You can reach it via scrollingTree().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498707</commentid>
    <comment_count>26</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-26 03:47:37 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #24)
&gt; Comment on attachment 360100 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=360100&amp;action=review
&gt; 
&gt; It seems like this patch assume that all iOS scrolling is going to happen in
&gt; the scrolling tree. That might not be true if I fail at my job, or if I have
&gt; to fall off the fast path because of things like background-attachment:fixed
&gt; inside overflow on macOS.

OK, I was not aware of that. Are there known scenarios where scrolling does not happen in the scrolling tree on iOS? If so, I think we can address those as followups bugs.

We&apos;ll be tackling macOS separately from this patch anyway. I&apos;m renaming this bug to state that, it was the intent all along but the bug title doesn&apos;t say so.

&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:2408
&gt; &gt; +		83520C7E1A71BFCC006BD2AA /* CSSFontFamily.h in Headers */ = {isa = PBXBuildFile; fileRef = 83520C7D1A71BFCC006BD2AA /* CSSFontFamily.h */; settings = {ATTRIBUTES = (Private, ); }; };
&gt; 
&gt; Does this really need to become a private header?

Yes, if we want to be able to include CSSPrimitiveValueMappings.h from WebKit code, which we do to be able to have OptionSet&lt;TouchAction&gt;.

&gt; &gt; Source/WebCore/dom/Document.cpp:4155
&gt; &gt; +#if ENABLE(POINTER_EVENTS)
&gt; 
&gt; Blank line above please.

Will add.

&gt; &gt; Source/WebCore/dom/Document.cpp:7124
&gt; &gt; +        else if (Element* element = document-&gt;ownerElement())
&gt; &gt; +            rootRelativeBounds = element-&gt;absoluteEventHandlerBounds(insideFixedPosition);
&gt; 
&gt; The bounds of the ownerElement aren&apos;t necessarily the same as those of its
&gt; contained document, because of borders and padding on the &lt;iframe&gt;.
&gt; 
&gt; Also this code is confusing; can absoluteRegionForNode() be called with a
&gt; node from a different document?
&gt; 
&gt; I see that you copied this code, so I should ask those questions of my self
&gt; :|

That is correct :)

&gt; &gt; Source/WebCore/dom/Document.cpp:7126
&gt; &gt; +        Element* element = downcast&lt;Element&gt;(node);
&gt; 
&gt; Slightly nicer as auto&amp; element = downcast&lt;Element&gt;(*node);

Will change.

&gt; &gt; Source/WebCore/page/scrolling/ScrollingCoordinator.cpp:115
&gt; &gt; +        auto&amp; touchActionData = eventTrackingRegions.touchActionData;
&gt; 
&gt; Please make a system trace point for this code, since it&apos;s expensive. It
&gt; would look something like TraceScope
&gt; tracingScope(TouchActionRegionComputationStart,
&gt; TouchActionRegionComputationEnd) with relevant changes to
&gt; Tools/Tracing/SystemTracePoints.plist (you can do this in a followup).

Will do in a followup.

&gt; &gt; Source/WebCore/page/scrolling/ScrollingTree.h:109
&gt; &gt; +    WEBCORE_EXPORT Optional&lt;TouchActionData&gt; touchActionDataAtPoint(const IntPoint) const;
&gt; 
&gt; Comment should say what coordinate system the point is in. No need for
&gt; &quot;const IntPoint&quot;.

Will change.

&gt; &gt; Source/WebCore/platform/EventTrackingRegions.h:48
&gt; &gt; +typedef uint64_t ScrollingNodeID;
&gt; 
&gt; I want to put ScrollingNodeID in ScrollTypes.h.

Please do :)

&gt; &gt; Source/WebCore/platform/EventTrackingRegions.h:51
&gt; &gt; +    ScrollingNodeID scrollingNodeID;
&gt; 
&gt; Can this be { 0 }

Yes, will change.

&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:2589
&gt; &gt; +        if ([_contentView preventsPanningInXAxis])
&gt; &gt; +            targetContentOffset-&gt;x = scrollView.contentOffset.x;
&gt; &gt; +        if ([_contentView preventsPanningInYAxis])
&gt; &gt; +            targetContentOffset-&gt;y = scrollView.contentOffset.y;
&gt; 
&gt; Doesn&apos;t this cause snapping at the end of the gesture?

I did not see that but will double-check.

&gt; &gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:85
&gt; &gt; +        auto touchActions = _scrollingTreeNodeDelegate-&gt;scrollingNode().touchActions();
&gt; &gt; +        if (touchActions != WebCore::TouchAction::Auto &amp;&amp; touchActions != WebCore::TouchAction::Manipulation) {
&gt; &gt; +            bool canPanX = true;
&gt; &gt; +            bool canPanY = true;
&gt; &gt; +            if (!touchActions.contains(WebCore::TouchAction::PanX)) {
&gt; &gt; +                canPanX = false;
&gt; &gt; +                targetContentOffset-&gt;x = scrollView.contentOffset.x;
&gt; &gt; +            }
&gt; &gt; +            if (!touchActions.contains(WebCore::TouchAction::PanY)) {
&gt; &gt; +                canPanY = false;
&gt; &gt; +                targetContentOffset-&gt;y = scrollView.contentOffset.y;
&gt; &gt; +            }
&gt; 
&gt; This is in -scrollViewWillEndDragging. Doesn&apos;t this mean that the user can
&gt; pan on both axes but then we&apos;ll snap at the end?

Will double-check.

&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.h:689
&gt; &gt; +#if ENABLE(POINTER_EVENTS)
&gt; &gt; +    bool isScrollingOrZooming() const { return m_isScrollingOrZooming; }
&gt; &gt; +#endif
&gt; 
&gt; Don&apos;t #ifdef stuff like this.

OK.

&gt; &gt;&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1156
&gt; &gt;&gt;&gt; +                        scrollingCoordinator-&gt;setTouchActionsForScrollingNodeID(touchActionData-&gt;touchActions, touchActionData-&gt;scrollingNodeID);
&gt; &gt;&gt; 
&gt; &gt;&gt; Do we ever clear the touch actions we set here? Should we?
&gt; &gt; 
&gt; &gt; We don&apos;t. However, I&apos;m not sure where to do that. Simon might know.
&gt; 
&gt; We don&apos;t have a good place. Can we do this in a way that doesn&apos;t involve
&gt; shoving state onto what is supposed to be a read-only tree?

Antti suggests putting the state in RemoteScrollingCoordinatorProxy. I will try that.

I will make an updated patch to be reviewed once more before landing since there are a few substantial changes between yours and Antti&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498748</commentid>
    <comment_count>27</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-26 12:50:43 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #25)
&gt; &gt; We don&apos;t have a good place. Can we do this in a way that doesn&apos;t involve
&gt; &gt; shoving state onto what is supposed to be a read-only tree?
&gt; 
&gt; Maybe keep the state in RemoteScrollingCoordinatorProxy or thereabouts, just
&gt; read it from the scrolling tree code? You can reach it via scrollingTree().

Actually, I&apos;m a little confused. How do I get back to the RemoteScrollingCoordinatorProxy where the state is held from ScrollingTreeScrollingNodeDelegateIOS where I need this information?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498830</commentid>
    <comment_count>28</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-26 23:46:00 -0800</bug_when>
    <thetext>&gt; Actually, I&apos;m a little confused. How do I get back to the
&gt; RemoteScrollingCoordinatorProxy where the state is held from
&gt; ScrollingTreeScrollingNodeDelegateIOS where I need this information?

downcast&lt;RemoteScrollingTree&gt;(scrollingTree()).scrollingCoordinatorProxy()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499002</commentid>
    <comment_count>29</comment_count>
      <attachid>360338</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-28 06:38:15 -0800</bug_when>
    <thetext>Created attachment 360338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499007</commentid>
    <comment_count>30</comment_count>
      <attachid>360338</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-28 06:56:02 -0800</bug_when>
    <thetext>Comment on attachment 360338
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499008</commentid>
    <comment_count>31</comment_count>
      <attachid>360338</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-01-28 06:58:56 -0800</bug_when>
    <thetext>Comment on attachment 360338
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1190
&gt; +    for (const auto&amp; touchPoint : touchEvent.touchPoints()) {
&gt; +        auto phase = touchPoint.phase();
&gt; +        if (phase != WebKit::WebPlatformTouchPoint::TouchPressed) {
&gt; +            if (auto touchActionData = scrollingCoordinator-&gt;touchActionDataAtPoint(touchPoint.location())) {
&gt; +                if (touchActionData-&gt;touchActions == WebCore::TouchAction::None)
&gt; +                    [_touchEventGestureRecognizer setDefaultPrevented:YES];
&gt; +                else if (!touchActionData-&gt;touchActions.contains(WebCore::TouchAction::Manipulation)) {
&gt; +                    if (auto scrollingNodeID = touchActionData-&gt;scrollingNodeID)
&gt; +                        scrollingCoordinator-&gt;setTouchDataForTouchIdentifier(*touchActionData, touchPoint.identifier());
&gt; +                    else {
&gt; +                        if (!touchActionData-&gt;touchActions.contains(WebCore::TouchAction::PinchZoom))
&gt; +                            _webView.scrollView.pinchGestureRecognizer.enabled = NO;
&gt; +                        _preventsPanningInXAxis = !touchActionData-&gt;touchActions.contains(WebCore::TouchAction::PanX);
&gt; +                        _preventsPanningInYAxis = !touchActionData-&gt;touchActions.contains(WebCore::TouchAction::PanY);
&gt; +                    }
&gt; +                }
&gt; +            }
&gt; +        } else if (phase == WebKit::WebPlatformTouchPoint::TouchReleased || phase == WebKit::WebPlatformTouchPoint::TouchCancelled)
&gt; +            scrollingCoordinator-&gt;clearTouchDataForTouchIdentifier(touchPoint.identifier());

This sort of code usually reads better (and will be less tower-like) if you use more &apos;continue&apos; and fewer/no else branches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499009</commentid>
    <comment_count>32</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-28 07:09:05 -0800</bug_when>
    <thetext>Committed r240579: &lt;https://trac.webkit.org/changeset/240579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499055</commentid>
    <comment_count>33</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-28 09:33:51 -0800</bug_when>
    <thetext>Committed r240587: &lt;https://trac.webkit.org/changeset/240587&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499078</commentid>
    <comment_count>34</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-28 10:35:09 -0800</bug_when>
    <thetext>Committed r240589: &lt;https://trac.webkit.org/changeset/240589&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499128</commentid>
    <comment_count>35</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-01-28 11:58:29 -0800</bug_when>
    <thetext>Committed r240596: &lt;https://trac.webkit.org/changeset/240596&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359189</attachid>
            <date>2019-01-15 12:10:41 -0800</date>
            <delta_ts>2019-01-15 14:59:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190115211038.patch</filename>
            <type>text/plain</type>
            <size>74872</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2RmMTY4OGEwZTliZWIx
ZDEwNDUyZWE1YTNlMGMzZjc5YzE4YzhiOC4uMjE1ZmIzNmY4ODFjNjI4YjlkNzYwNTc4NDg4Nzkz
ZDE3OTRlZmZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTAxLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21wdXRlCisgICAgICAgIGEgUmVnaW9uIGNvbnRhaW5pbmcgdGhlIGJvdW5kcyBvZiBlYWNoIG9m
IHRob3NlIGVsZW1lbnRzIGFuZCBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFsb25nIHdp
dGggdG91Y2ggcmVnaW9ucy4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHdlIGFsbG93IGEgbGlz
dCBvZiBhbGxvd2VkIHRvdWNoIGFjdGlvbnMgdG8gYmUgY29tcHV0ZWQgZm9yIGEgZ2l2ZW4gZWxl
bWVudCBhY2NvdW50aW5nIGZvciBub3Qgb25seSB0aGUgdmFsdWUgc3BlY2lmaWVkCisgICAgICAg
IGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxlLCBidXQgYWxzbyBpbiBpdHMgaGllcmFy
Y2h5LCBjcm9zc2luZyBhbnkgZnJhbWUgYm91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRv
Y3VtZW50J3Mgcm9vdCBub2RlLgorCisgICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCisgICAgICAg
ICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4t
b3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwK
KyAgICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1s
CisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tYWxsb3dzLXpvb21pbmcuaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwgICAgICAgICAg
ICAgICAKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5v
ZGVXaWxsQmVSZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJv
bSB0aGlzIGRvY3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qg
b2YgZWxlbWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRl
IGEgbGlzdCBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5
IGlmIG9uZSBkb2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0
aGUgZ2l2ZW4gZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwg
b3IgcmVtb3ZlIGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0
aGF0IGxpc3QgY2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBp
cyBpbmZvcm1lZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojp0b3VjaEFjdGlvbkVsZW1lbnRzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmll
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpjb21wdXRlZFRvdWNoQWN0aW9ucyBjb25z
dCk6IFByb3ZpZGUgdGhlIGxpc3Qgb2YgYWxsb3dlZCB0b3VjaCBhY3Rpb25zIGFjY291bnRpbmcg
Zm9yIHRoZSAidG91Y2gtYWN0aW9uIiBwcm9wZXJ0eQorICAgICAgICBzcGVjaWZpZWQgb24gdGhp
cyBlbGVtZW50IGFuZCBhbGwgb2YgaXRzIGhpZXJhcmNoeSwgY3Jvc3NpbmcgZnJhbWUgYm91bmRh
cnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNp
bmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nIGNvbnN0KTogUHJvdmlkZSB0aGUgU2Nyb2xsaW5nTm9k
ZUlELCBpZiBhbnksIGZvciB0aGUgbmVhcmVzdCBzY3JvbGxpbmcgbm9kZQorICAgICAgICBmb3Ig
dGhhdCBlbGVtZW50LiBUaGlzIHdpbGwgYWxsb3cgdGhlIFVJIHByb2Nlc3MgdG8gaWRlbnRpZnkg
d2hpY2ggc2Nyb2xsIHZpZXcncyBiZWhhdmlvciB0byBjdXN0b21pemUgdG8gcmVmbGVjdCB0aGUg
ZWxlbWVudCdzIGFsbG93ZWQKKyAgICAgICAgdG91Y2ggYWN0aW9ucy4KKyAgICAgICAgKiBkb20v
RWxlbWVudC5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNvbHV0ZUV2
ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUgY29uc3QpOiBDb21wdXRlIHRoZSByZWdpb24gZm9y
IGFsbCBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5CisgICAg
ICAgIHRocm91Z2hvdXQgdGhlIHByb3ZpZGVkIGZyYW1lIGFuZCBhbGwgb2YgaXRzIHN1YmZyYW1l
cy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludCBjb25z
dCk6IFByb3ZpZGUgYSBxdWljayB3YXkgdG8gaW5kZW50aWZ5IHdoZXRoZXIgdGhlIHByb3ZpZGVk
IHBvaW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgcmVnaW9uCisgICAgICAgIG9mIGVsZW1lbnRzIHdp
dGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZU5vZGU6OnRvdWNoQWN0aW9ucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTm9kZTo6c2V0VG91Y2hBY3Rpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9FdmVudFRyYWNr
aW5nUmVnaW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8p
OiBFbnN1cmUgdGhlIHJlZ2lvbiBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0
aW9uIHByb3BlcnR5IGlzIHVwZGF0ZWQgd2hlbiBzY3JvbGxpbmcgaGFzIG9jY3VyZWQuCisgICAg
ICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQpOiBVcGRhdGUgdGhlIGxpc3Qgb2YgZWxl
bWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB3aGVuIGFuIGVsZW1l
bnQncyBzdHlsZSBjaGFuZ2VzLgorCiAyMDE5LTAxLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0
c0BhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBwYXJzaW5nIG9mIGFkZGl0aW9uYWwgdmFs
dWVzIGZvciB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxNTgwZmMwNThi
NTM3ZWQxYWRlNWY3NTJlMzE3NjZmY2UzYmQ0MDEuLmNmOWE3NTc2NzIyMDljODE0YmY4YmJiMjFh
NmYyMDMxZTc5MmNjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTktMDEtMTUgIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBMaW1pdCB1c2VyLWFn
ZW50IGludGVyYWN0aW9ucyBiYXNlZCBvbiB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM0NDcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ3MjgzODc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEhhbmRsZSB0aGUgIm5vbmUiLCAicGFuLXgiLCAicGFuLXki
IGFuZCAicGluY2gtem9vbSIgdmFsdWVzIGZvciB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5IGJ5
IHF1ZXJ5aW5nIHRoZSBzY3JvbGxpbmcgdHJlZSB3aGVuZXZlciBhIHRvdWNoIGJlZ2lucworICAg
ICAgICB0byBpZGVudGlmeSB3aGV0aGVyIGl0cyBwb2ludCBtYXkgYmUgY29udGFpbmVkIHdpdGhp
biB0aGUgcmVnaW9uIG9mIGVsZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJv
cGVydHkuIElmIGl0IGlzLCB3ZSBjYWxsIGludG8gdGhlCisgICAgICAgIFdlYiBwcm9jZXNzLCBz
eW5jaHJvbm91c2x5LCB0byBjb21waWxlIHRoZSBsaXN0IG9mIHBlcm1pdHRlZCB0b3VjaCBhY3Rp
b25zIHN1Y2ggdGhhdCB3ZSBtYXkgdGhlbiBjdXN0b21pemUgdGhlIGJlaGF2aW9yIG9mIHRoZSBu
ZWFyZXN0IHNjcm9sbCB2aWV3CisgICAgICAgIHRvIHBhbiBvciB6b29tIG9ubHkgYXMgaW5zdHJ1
Y3RlZC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBzY3Jv
bGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhWZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0p
OiBBY2NvdW50IGZvciBwYW5uaW5nIGNvbnN0cmFpbnRzIHNldCBvbiB0aGUgY29udGVudCB2aWV3
IHRvIHByZXZlbnQgZGVjZWxlcmF0aW9uCisgICAgICAgIHRvIHBhbiB0aGUgdmlldyBpZiBpdCBv
dWdodCBub3QuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVmlldzphZGp1c3RlZE9mZnNl
dEZvck9mZnNldDp0cmFuc2xhdGlvbjpzdGFydFBvaW50OmxvY2F0aW9uSW5WaWV3Omhvcml6b250
YWxWZWxvY2l0eTp2ZXJ0aWNhbFZlbG9jaXR5Ol0pOiBJbXBsZW1lbnQgYW4gYWRkaXRpb25hbCBV
SVNjcm9sbFZpZXcKKyAgICAgICAgZGVsZWdhdGlvbiBtZXRob2QgdG8gYXBwbHkgdGhlIHBhbm5p
bmcgY29uc3RyYWludHMgc2V0IG9uIHRoZSBjb250ZW50IHZpZXcgd2hpbGUgcGFubmluZy4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5OjptYXlIYXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzZXRUb3VjaEFjdGlvbnNGb3JT
Y3JvbGxpbmdOb2RlSUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06
CisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3
V2lsbEVuZERyYWdnaW5nOndpdGhWZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0pOiBBcHBs
eSB0aGUgc2FtZSBsb2dpYyBhcyBpbiBXS1dlYlZpZXcuCisgICAgICAgICgtW1dLU2Nyb2xsaW5n
Tm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6d2lsbERlY2Vs
ZXJhdGU6XSk6IFJlc2V0IHRoZSB0b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBzY3Jv
bGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBpbnRlcmFjdGlvbgorICAgICAgICBpbiB0aGUgZGVm
YXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRl
IHNjcm9sbFZpZXdEaWRFbmREZWNlbGVyYXRpbmc6XSk6IFJlc2V0IHRoZSB0b3VjaCBhY3Rpb25z
IGZvciB0aGUgYXNzb2NpYXRlZCBzY3JvbGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBpbnRlcmFj
dGlvbiBpbiB0aGUKKyAgICAgICAgZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tTY3JvbGxp
bmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0Rm9yT2Zm
c2V0OnRyYW5zbGF0aW9uOnN0YXJ0UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRhbFZlbG9j
aXR5OnZlcnRpY2FsVmVsb2NpdHk6XSk6IEFwcGx5IHRoZSBzYW1lIGxvZ2ljIGFzIGluIFdLV2Vi
Vmlldy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6aXNTY3JvbGxpbmdPclpvb21pbmcgY29uc3QpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBj
bGVhbnVwSW50ZXJhY3Rpb25dKTogUmVzZXQgdGhlIHBhbm5pbmcgcHJldmVudGlvbiBpdmFycyB0
byB0aGVpciBkZWZhdWx0IHN0YXRlLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF93ZWJUb3Vj
aEV2ZW50c1JlY29nbml6ZWQ6XSk6IEFzIHdlIHByb2Nlc3MgdG91Y2hlcywgY2hlY2sgd2hldGhl
ciB0aGVyZSBtYXkgYmUgdG91Y2ggYWN0aW9ucyBzZXQgZm9yIHRoaXMgdG91Y2gncyBsb2NhdGlv
biwgYW5kIGlmIHdlIGhhdmVuJ3QgZXhjbHVkZWQKKyAgICAgICAgdGhhdCBwb3NzaWJpbGl0eSwg
Y2FsbCBpbnRvIHRoZSBXZWIgcHJvY2VzcyBzeW5jaHJvbm91c2x5IHRvIGZpbmQgd2hpY2ggdG91
Y2ggYWN0aW9ucyB0aGVzZSBtaWdodCBiZSBleGFjdGx5LiBUaGVuLCBiYXNlZCBvbiB0aG9zZSB0
b3VjaCBhY3Rpb25zLCBlaXRoZXIgc2V0RGVmYXVsdFByZXZlbnRlZAorICAgICAgICBvbiB0aGUg
X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBpZiB0aGUgdG91Y2ggYWN0aW9uIGlzICJub25l
IiBvciBzZWxlY3RpdmVseSBkaXNhYmxlIHBhbm5pbmcgYW5kIHpvb21pbmcgYXMgd2VsbCBhcyBh
bGwgdGhlIG90aGVyIHRhcC1yZWxhdGVkIHVzZXIgaW50ZXJhY3Rpb25zLgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nXSk6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQgY29uc3QpOiBDaGVjayBhbGwg
dG91Y2ggcG9pbnRzIGZvciBhIGdpdmVuIGV2ZW50IHRvIHNlZSBpZiBpdCBtaWdodCBoYXZlIGFz
c29jaWF0ZWQgdG91Y2ggYWN0aW9ucy4gVGhpcyBjaGVja3MgdGhhdAorICAgICAgICB0aGVzZSBh
cmUgbmV3IHRvdWNoZXMgYW5kIHRoYXQgdGhlaXIgbG9jYXRpb24gaXMgY29udGFpbmVkIHdpdGhp
biB0aGUgdG91Y2ggYWN0aW9uIHJlZ2lvbiBjb21wdXRlZCBpbiB0aGUgV2ViIHByb2Nlc3MgYW5k
IHNlbnQgdG8gdGhlIFVJIHByb2Nlc3MuIAorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQpOiAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudCk6IEl0
ZXJhdGUgb3ZlciBhbGwgdG91Y2ggcG9pbnRzIGZvciBhIGdpdmVuIGV2ZW50IGFuZCByZXR1cm4s
IGlmIHRoZXJlIGlzIGEgbm9uLWF1dG8gdG91Y2ggYWN0aW9uIHNldCwgY3JlYXRlIGEgcGFpciBj
b25zaXN0aW5nIG9mIGEKKyAgICAgICAgbGlzdCBvZiB0b3VjaC1hY3Rpb25zIGFuZCB0aGUgc2Ny
b2xsaW5nIG5vZGUgSUQgZm9yIHRoZSBuZWFyZXN0IHNjcm9sbCBub2RlIHRvIHRoZSBlbGVtZW50
IHRoYXQgaGl0IHRlc3RzIGZvciB0aGlzIGxvY2F0aW9uLgorCiAyMDE5LTAxLTE0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3BsaXQgaGVh
ZGVyVmFsdWVGb3JWYXJ5IGludG8gc3BlY2lhbGl6ZWQgZnVuY3Rpb25zIGZvciBOZXR3b3JrUHJv
Y2VzcyBhbmQgV2ViUHJvY2Vzcy9XZWJLaXRMZWdhY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMGNhNTU0OGMxMWRhMzBhZTNi
ZDA1ZTMxNjU5Y2MyODBjNzMzMmE4Li4xOWUzZjlmNjdjZjcwZGU0OTAyYzJiNDFmYjVkODY4YjM1
YTM1OTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0zMTk1MSw2ICszMTk1MSw3IEBACiAJCQkJNDlFOTEyQUUwRUZBQzkwNjAw
OUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU0REQwODE4
ODFENUY1MDAzRUVEQkIgLyogVG91Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCTcxQjdFRTBEMjFC
NUM2ODcwMDMxQzFFRiAvKiBUb3VjaEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzFCN0VF
MEQyMUI1QzY4NzAwMzFDMUVGIC8qIFRvdWNoQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjU0REQwOTE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2hFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1NEREMEExODgxRDVGNTAwM0VFREJCIC8qIFRvdWNoTGlzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBjN2IyMWRhMWY1ZDI0NGE1YzBjYTliZmQy
Njk2ZDAzYWEwMjczNjlmLi45ZDMxYTRmNzEyNmYxYjU0NTU5Y2FhNTc4ZDRiNzU3MzAxNzdjMzdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOCw2ICsyMDgsNyBAQAogI2luY2x1ZGUg
IlRleHRBdXRvU2l6aW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4
dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIlRy
YW5zZm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIKICNpbmNsdWRlICJVbmRv
TWFuYWdlci5oIgpAQCAtNDQ3OCw2ICs0NDc5LDExIEBAIHZvaWQgRG9jdW1lbnQ6Om5vZGVXaWxs
QmVSZW1vdmVkKE5vZGUmIG5vZGUpCiAKICAgICBpZiAoaXM8VGV4dD4obm9kZSkpCiAgICAgICAg
IG1fbWFya2Vycy0+cmVtb3ZlTWFya2Vycygmbm9kZSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQorICAgIGlmIChtX3RvdWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIG1fdG91Y2hBY3Rp
b25FbGVtZW50cy0+cmVtb3ZlQWxsKCZub2RlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgTm9kZSog
ZmFsbGJhY2tGb2N1c05hdmlnYXRpb25TdGFydGluZ05vZGVBZnRlclJlbW92YWwoTm9kZSYgbm9k
ZSkKQEAgLTg1OTksNCArODYwNSwzMyBAQCB2b2lkIERvY3VtZW50OjpzZXRQYWludFdvcmtsZXRH
bG9iYWxTY29wZUZvck5hbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBSZWY8UGFpbnRXbwogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordm9pZCBEb2N1bWVudDo6dXBkYXRlVG91
Y2hBY3Rpb25FbGVtZW50cyhOb2RlJiBub2RlLCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAg
aWYgKCFtX3RvdWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIG1fdG91Y2hBY3Rpb25FbGVtZW50
cyA9IHN0ZDo6bWFrZV91bmlxdWU8RXZlbnRUYXJnZXRTZXQ+KCk7CisKKyAgICBib29sIGNoYW5n
ZWQgPSBmYWxzZTsKKworICAgIGlmIChzdHlsZSAmJiBzdHlsZS0+dG91Y2hBY3Rpb25zKCkgIT0g
VG91Y2hBY3Rpb246OkF1dG8pCisgICAgICAgIGNoYW5nZWQgfD0gbV90b3VjaEFjdGlvbkVsZW1l
bnRzLT5hZGQoJm5vZGUpLmlzTmV3RW50cnk7CisgICAgZWxzZQorICAgICAgICBjaGFuZ2VkIHw9
IG1fdG91Y2hBY3Rpb25FbGVtZW50cy0+cmVtb3ZlQWxsKCZub2RlKTsKKworI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFjaGFuZ2VkKQor
ICAgICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOworICAgIGlm
ICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gdmlldygpKSB7CisgICAgICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5n
Q29vcmRpbmF0b3IgPSBwYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICAgICAg
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0V2ZW50VHJhY2tpbmdSZWdpb25zQ2hhbmdl
ZCgqZnJhbWVWaWV3KTsKKyAgICB9CisjZW5kaWYKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDFkZjc1ZWMzZTNmOGUzZTdiY2Q4Yjhj
NzdmNWFjNGI5ZTBmMWRhNDYuLjgxMDgzMDE1YzFjNzkxMzM1MmQ2ZTRmYWJlYjE0ZDk2N2YwODZi
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjcyLDYgKzEyNzIsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVycygp
IGNvbnN0IHsgcmV0dXJuIChtX3RvdWNoRXZlbnRUYXJnZXRzLmdldCgpKSA/IG1fdG91Y2hFdmVu
dFRhcmdldHMtPnNpemUoKSA6IGZhbHNlOyB9CiAgICAgYm9vbCB0b3VjaEV2ZW50VGFyZ2V0c0Nv
bnRhaW4oTm9kZSYgbm9kZSkgY29uc3QgeyByZXR1cm4gbV90b3VjaEV2ZW50VGFyZ2V0cyA/IG1f
dG91Y2hFdmVudFRhcmdldHMtPmNvbnRhaW5zKCZub2RlKSA6IGZhbHNlOyB9CisgICAgdm9pZCB1
cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmLCBSZW5kZXJTdHlsZSopOwogI2Vsc2UKICAg
ICBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVycygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgYm9vbCB0b3VjaEV2ZW50VGFyZ2V0c0NvbnRhaW4oTm9kZSYpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CkBAIC0xMjkxLDYgKzEyOTIsMTUgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisg
ICAgY29uc3QgRXZlbnRUYXJnZXRTZXQqIHRvdWNoQWN0aW9uRWxlbWVudHMoKSBjb25zdAorICAg
IHsKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgICAgICByZXR1cm4gbV90b3VjaEFjdGlv
bkVsZW1lbnRzLmdldCgpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYK
KyAgICB9CisKICAgICBjb25zdCBFdmVudFRhcmdldFNldCogd2hlZWxFdmVudFRhcmdldHMoKSBj
b25zdCB7IHJldHVybiBtX3doZWVsRXZlbnRUYXJnZXRzLmdldCgpOyB9CiAKICAgICB0eXBlZGVm
IHN0ZDo6cGFpcjxSZWdpb24sIGJvb2w+IFJlZ2lvbkZpeGVkUGFpcjsKQEAgLTE4NjQsNiArMTg3
NCw3IEBAIHByaXZhdGU6CiAgICAgCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+IG1fdG91Y2hFdmVudFRhcmdldHM7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEV2ZW50VGFyZ2V0U2V0PiBtX3RvdWNoQWN0aW9uRWxlbWVudHM7CiAjZW5k
aWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+IG1fd2hlZWxFdmVudFRhcmdl
dHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBkYTVjZDJmMDgxYzFlODhmODExMWVmZmYz
MjZkZjIwMjY0NDRjNDNhLi40MmQ1NTUxNDM5ZDA1ZDVjN2VhYmMyNDYxZmU5MGYxNjZmNWU3M2Ux
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC04MSw2ICs4MSw4IEBACiAjaW5jbHVkZSAiUG9p
bnRlckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyRnJhZ21lbnRDb250YWluZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2lu
Zy5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRl
ckxpc3RCb3guaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclRy
ZWVVcGRhdGVyLmgiCkBAIC0zNDE2LDcgKzM0MTgsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldENvbnRh
aW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9vbCBmbGFnKQogICAgIGludmFsaWRhdGVTdHlsZUFuZExh
eWVyQ29tcG9zaXRpb24oKTsKIH0KIAotc3RhdGljIEVsZW1lbnQqIHBhcmVudENyb3NzaW5nRnJh
bWVCb3VuZGFyaWVzKEVsZW1lbnQqIGVsZW1lbnQpCitzdGF0aWMgRWxlbWVudCogcGFyZW50Q3Jv
c3NpbmdGcmFtZUJvdW5kYXJpZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBBU1NF
UlQoZWxlbWVudCk7CiAgICAgcmV0dXJuIGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA/IGVsZW1l
bnQtPnBhcmVudEVsZW1lbnQoKSA6IGVsZW1lbnQtPmRvY3VtZW50KCkub3duZXJFbGVtZW50KCk7
CkBAIC00MTIwLDQgKzQxMjIsNjYgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVTdHlsZU1h
cChSZWY8U3R5bGVQcm9wZXJ0eU1hcD4mJiBtYXApCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCitPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IEVsZW1lbnQ6OmNvbXB1dGVkVG91
Y2hBY3Rpb25zKCkgY29uc3QKK3sKKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVk
VG91Y2hBY3Rpb25zID0gVG91Y2hBY3Rpb246OkF1dG87CisgICAgZm9yIChhdXRvKiBlbGVtZW50
ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9IHBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVz
KGVsZW1lbnQpKSB7CisgICAgICAgIGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIo
KTsKKyAgICAgICAgaWYgKCFyZW5kZXJlcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gcmVuZGVyZXItPnN0eWxlKCkudG91Y2hBY3Rpb25zKCk7
CisKKyAgICAgICAgLy8gT25jZSB3ZSd2ZSBlbmNvdW50ZXJlZCB0b3VjaC1hY3Rpb246IG5vbmUs
IHdlIGtub3cgdGhhdCB0aGlzIHdpbGwgYmUgdGhlIGNvbXB1dGVkIHZhbHVlLgorICAgICAgICBp
ZiAodG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpOb25lKQorICAgICAgICAgICAgcmV0dXJu
IHRvdWNoQWN0aW9uczsKKworICAgICAgICAvLyBJZiB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9u
IHNvIGZhciB3YXMgImF1dG8iLCB3ZSBjYW4ganVzdCB1c2UgdGhlIGN1cnJlbnQgZWxlbWVudCdz
IHRvdWNoLWFjdGlvbi4KKyAgICAgICAgaWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25zID09IFRvdWNo
QWN0aW9uOjpBdXRvKSB7CisgICAgICAgICAgICBjb21wdXRlZFRvdWNoQWN0aW9ucyA9IHRvdWNo
QWN0aW9uczsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8g
SWYgdGhlIGN1cnJlbnQgZWxlbWVudCBoYXMgdG91Y2gtYWN0aW9uOiBhdXRvIG9yIHRoZSBzYW1l
IHRvdWNoLWFjdGlvbiBhcyB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uLAorICAgICAgICAvLyB3
ZSBuZWVkIHRvIGtlZXAgZ29pbmcgdXAgdGhlIGFuY2VzdHJ5IGNoYWluLgorICAgICAgICBpZiAo
dG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpBdXRvIHx8IHRvdWNoQWN0aW9ucyA9PSBjb21w
dXRlZFRvdWNoQWN0aW9ucykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIE5v
dywgdGhlIGVsZW1lbnQncyB0b3VjaC1hY3Rpb24gYW5kIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rp
b24gYXJlIGRpZmZlcmVudCBhbmQgYXJlIG5laXRoZXIgImF1dG8iIG5vciAibm9uZSIuCisgICAg
ICAgIGlmIChjb21wdXRlZFRvdWNoQWN0aW9ucyA9PSBUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9u
KSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIGlzICJtYW5p
cHVsYXRpb24iLCB3ZSBjYW4gdGFrZSB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9u
IGFzIHRoZSBuZXdseQorICAgICAgICAgICAgLy8gY29tcHV0ZWQgdG91Y2gtYWN0aW9uLgorICAg
ICAgICAgICAgY29tcHV0ZWRUb3VjaEFjdGlvbnMgPSB0b3VjaEFjdGlvbnM7CisgICAgICAgIH0g
ZWxzZSBpZiAodG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pIHsKKyAg
ICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2UgaGF2ZSBhIHJlc3RyaWN0ZWQgY29tcHV0ZWQgdG91
Y2gtYWN0aW9uIHNvIGZhci4gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCdzIHRvdWNoLWFjdGlvbiBp
cyAibWFuaXB1bGF0aW9uIgorICAgICAgICAgICAgLy8gdGhlbiB3ZSBjYW4ganVzdCBrZWVwIGdv
aW5nIGFuZCBsZWF2ZSB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIHVudG91Y2hlZC4KKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSW4gYW55IG90aGVyIGNh
c2UsIHdlIGhhdmUgY29tcGV0aW5nIHJlc3RyaWN0aXZlIHRvdWNoLWFjdGlvbiB2YWx1ZXMgdGhh
dCBjYW4gb25seSB5aWVsZCAibm9uZSIuCisgICAgICAgIHJldHVybiBUb3VjaEFjdGlvbjo6Tm9u
ZTsKKyAgICB9CisgICAgcmV0dXJuIGNvbXB1dGVkVG91Y2hBY3Rpb25zOworfQorI2VuZGlmCisK
KyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQorU2Nyb2xsaW5nTm9k
ZUlEIEVsZW1lbnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3Jv
bGxpbmcoKSBjb25zdAoreworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICAvLyBXZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gdGhlIHJvb3QsIHNvIGNoZWNrIHRo
YXQgd2UgYWxzbyBoYXZlIGEgdmFsaWQgcGFyZW50LgorICAgIGZvciAoYXV0byogbGF5ZXIgPSBy
ZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOyBsYXllciAmJiBsYXllci0+cGFyZW50KCk7IGxh
eWVyID0gbGF5ZXItPnBhcmVudCgpKSB7CisgICAgICAgIGlmIChsYXllci0+aXNDb21wb3NpdGVk
KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHNjcm9sbGluZ05vZGVJRCA9IGxheWVyLT5iYWNr
aW5nKCktPnNjcm9sbGluZ05vZGVJREZvclJvbGUoU2Nyb2xsQ29vcmRpbmF0aW9uUm9sZTo6U2Ny
b2xsaW5nKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsaW5nTm9kZUlEOworICAgICAg
ICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMTY5ZmRlMTNhZGI2MjcwNDFmZGQ4YjVlNmY1
YjhmMmFkY2IzODZmMy4uZWQ3MjZjOTViOTIxNTA1MTBhNzU1NTc0NWQwMjU3ZDg0YmM1MTI2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiS2V5ZnJhbWVB
bmltYXRpb25PcHRpb25zLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVG9PcHRpb25zLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3RNb2RlLmgiCiAjaW5jbHVkZSAiU2ltdWxhdGVkQ2xpY2tPcHRpb25z
LmgiCiAjaW5jbHVkZSAiU3R5bGVDaGFuZ2UuaCIKQEAgLTU2LDYgKzU3LDcgQEAgY2xhc3MgUHNl
dWRvRWxlbWVudDsKIGNsYXNzIFJlbmRlclRyZWVQb3NpdGlvbjsKIGNsYXNzIFN0eWxlUHJvcGVy
dHlNYXA7CiBjbGFzcyBXZWJBbmltYXRpb247CitlbnVtIGNsYXNzIFRvdWNoQWN0aW9uIDogdWlu
dDhfdDsKIHN0cnVjdCBFbGVtZW50U3R5bGU7CiBzdHJ1Y3QgU2Nyb2xsSW50b1ZpZXdPcHRpb25z
OwogCkBAIC01ODgsNiArNTkwLDE0IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxSZWY8V2Vi
QW5pbWF0aW9uPj4gYW5pbWF0ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6U3Ryb25nPEpTQzo6SlNP
YmplY3Q+JiYsIE9wdGlvbmFsPFZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlv
bnM+PiYmKTsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IGdldEFuaW1hdGlvbnMo
KTsKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9u
U2V0PFRvdWNoQWN0aW9uPiBjb21wdXRlZFRvdWNoQWN0aW9ucygpIGNvbnN0OworI2VuZGlmCisK
KyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQorICAgIFdFQkNPUkVf
RVhQT1JUIFNjcm9sbGluZ05vZGVJRCBuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNpbmdUb3VjaE92
ZXJmbG93U2Nyb2xsaW5nKCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcAppbmRleCBjYjg3MzgzOTZhM2E1OGVmNDUyMGVlNTQ4Y2Y4MzFlYjQxNTQ3MWI4
Li45Y2E3ODU5YWFmMGUzM2VhN2MyMmJjYWRhMTUwOTZmOGMzNGM1ZDM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CkBAIC05OSw3ICs5OSwyNSBAQCBFdmVudFRyYWNraW5nUmVnaW9ucyBTY3JvbGxpbmdDb29yZGlu
YXRvcjo6YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKAogICAgIGF1dG8qIGRv
Y3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICBy
ZXR1cm4gRXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsKLSAgICByZXR1cm4gZG9jdW1lbnQtPmV2ZW50
VHJhY2tpbmdSZWdpb25zKCk7CisgICAgYXV0byBldmVudFRyYWNraW5nUmVnaW9ucyA9IGRvY3Vt
ZW50LT5ldmVudFRyYWNraW5nUmVnaW9ucygpOworICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnRv
dWNoQWN0aW9uUmVnaW9uID0gZnJhbWUuZG9jdW1lbnQoKS0+YWJzb2x1dGVSZWdpb25Gb3JFdmVu
dFRhcmdldHMoZnJhbWUuZG9jdW1lbnQoKS0+dG91Y2hBY3Rpb25FbGVtZW50cygpKS5maXJzdDsK
KworICAgIGZvciAoYXV0byogc3ViZnJhbWUgPSBmcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBz
dWJmcmFtZTsgc3ViZnJhbWUgPSBzdWJmcmFtZS0+dHJlZSgpLm5leHRTaWJsaW5nKCkpIHsKKyAg
ICAgICAgYXV0byogc3ViZnJhbWVWaWV3ID0gc3ViZnJhbWUtPnZpZXcoKTsKKyAgICAgICAgaWYg
KCFzdWJmcmFtZVZpZXcpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoYXV0
byogc3ViZnJhbWVEb2N1bWVudCA9IHN1YmZyYW1lLT5kb2N1bWVudCgpKSB7CisgICAgICAgICAg
ICBhdXRvIHN1YmZyYW1lUmVnaW9uID0gc3ViZnJhbWVEb2N1bWVudC0+YWJzb2x1dGVSZWdpb25G
b3JFdmVudFRhcmdldHMoc3ViZnJhbWVEb2N1bWVudC0+dG91Y2hBY3Rpb25FbGVtZW50cygpKS5m
aXJzdDsKKyAgICAgICAgICAgIC8vIE1hcCBmcm9tIHRoZSBmcmFtZSBkb2N1bWVudCB0byBvdXIg
ZG9jdW1lbnQuCisgICAgICAgICAgICBhdXRvIG9mZnNldCA9IHN1YmZyYW1lVmlldy0+Y29udGVu
dHNUb0NvbnRhaW5pbmdWaWV3Q29udGVudHMoSW50UG9pbnQoKSk7CisgICAgICAgICAgICAvLyBG
SVhNRTogdGhpcyB0cmFuc2xhdGlvbiBpZ25vcmVzIG5vbi10cml2YWwgdHJhbnNmb3JtcyBvbiB0
aGUgZnJhbWUuCisgICAgICAgICAgICBzdWJmcmFtZVJlZ2lvbi50cmFuc2xhdGUodG9JbnRTaXpl
KG9mZnNldCkpOworICAgICAgICAgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25S
ZWdpb24udW5pdGUoc3ViZnJhbWVSZWdpb24pOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0
dXJuIGV2ZW50VHJhY2tpbmdSZWdpb25zOwogI2Vsc2UKICAgICBhdXRvKiBmcmFtZVZpZXcgPSBm
cmFtZS52aWV3KCk7CiAgICAgaWYgKCFmcmFtZVZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IDUyNDM5M2RkMTZhYTYzN2ZmMTYx
ZDY3NWI4MGZmZDk0ZTdhYTE1MDAuLjMzYTJmZmI3Yzc0N2U2MzFkZTI5Mzk2NDkyNmM5MDFlNWRj
YmQ3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuY3BwCkBAIC0yNDcsNiArMjQ3LDExIEBAIFRyYWNraW5nVHlwZSBTY3JvbGxpbmdUcmVlOjpl
dmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROCiAgICAg
cmV0dXJuIG1fZXZlbnRUcmFja2luZ1JlZ2lvbnMudHJhY2tpbmdUeXBlRm9yUG9pbnQoZXZlbnRO
YW1lLCBwKTsKIH0KIAorYm9vbCBTY3JvbGxpbmdUcmVlOjptYXlIYXZlVG91Y2hBY3Rpb25zRm9y
UG9pbnQoY29uc3QgSW50UG9pbnQgcCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ldmVudFRyYWNr
aW5nUmVnaW9ucy50b3VjaEFjdGlvblJlZ2lvbi5jb250YWlucyhwKTsKK30KKwogYm9vbCBTY3Jv
bGxpbmdUcmVlOjppc1J1YmJlckJhbmRJblByb2dyZXNzKCkKIHsKICAgICBMb2NrSG9sZGVyIGxv
Y2sobV9tdXRleCk7ICAgIApAQCAtNDAzLDYgKzQwOCwxMiBAQCBTdHJpbmcgU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZUFzVGV4dCgpCiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsKIH0KIAor
dm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQoT3B0
aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMsIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxp
bmdOb2RlSUQpCit7CisgICAgaWYgKGF1dG8qIHNjcm9sbGluZ1RyZWVOb2RlID0gbm9kZUZvcklE
KHNjcm9sbGluZ05vZGVJRCkpCisgICAgICAgIHNjcm9sbGluZ1RyZWVOb2RlLT5zZXRUb3VjaEFj
dGlvbnModG91Y2hBY3Rpb25zKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCBlZmM2ODQxNWMzOTQzMGRmN2YyNzA0M2ZlOTgy
MzMyNzc1NTY3NjMyLi4zNjkzMzMyZWIzNmVmMWQ5YThhNDQwZTU3N2RiZGJjYzcwMDM5Yjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAi
UmVnaW9uLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJU
b3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTEwNCw3ICsxMDUs
OCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBl
dmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBJ
bnRQb2ludCk7Ci0gICAgCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBtYXlIYXZlVG91Y2hBY3Rp
b25zRm9yUG9pbnQoY29uc3QgSW50UG9pbnQpIGNvbnN0OworCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50
UGhhc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMo
U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCAvKmhvcml6b250YWxJbmRleCovLCB1bnNpZ25lZCAv
KnZlcnRpY2FsSW5kZXgqLykgeyB9CkBAIC0xNTEsNiArMTUzLDcgQEAgcHVibGljOgogICAgIH0K
ICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Nyb2xsaW5nVHJlZUFzVGV4dCgpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlE
KE9wdGlvblNldDxUb3VjaEFjdGlvbj4sIFNjcm9sbGluZ05vZGVJRCk7CiAgICAgCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmlu
ZGV4IGJmN2Y2MWEzNjFiOTNiNDdkZmU0MzRlMDVmOTMyODhjY2Y1OTBiYjYuLmZhYjdmNGFlNjE1
ZWE2YzM4MWU1YmY3NmI1YTkwMjEzZjMwMmFiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIK
ICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZU5vZGUuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5o
IgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5o
PgogCkBAIC03MCw2ICs3MSw5IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZHVtcChXVEY6OlRleHRTdHJlYW0mLCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikg
Y29uc3Q7CiAKKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucygpIGNvbnN0
IHsgcmV0dXJuIG1fdG91Y2hBY3Rpb25zOyB9CisgICAgdm9pZCBzZXRUb3VjaEFjdGlvbnMoT3B0
aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMpIHsgbV90b3VjaEFjdGlvbnMgPSB0b3Vj
aEFjdGlvbnM7IH0KKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICBTY3JvbGxp
bmdUcmVlJiBzY3JvbGxpbmdUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlOyB9
CkBAIC04NSw2ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgU2Nyb2xsaW5nTm9kZUlEIG1f
bm9kZUlEOwogCiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIG1fcGFyZW50OworICAgIE9wdGlvblNl
dDxUb3VjaEFjdGlvbj4gbV90b3VjaEFjdGlvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVn
aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5j
cHAKaW5kZXggN2U3NjNjODk1M2RjYThlNmRkN2NhY2FkNjI1MjQwN2M3MGM1Zjg2My4uOWZiZTEw
MDhhMTM2ZGIzM2ZhMWI4NDE5NWIzMDRlNTM2YjUyMDhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcApAQCAtNzMsNyArNzMsOCBAQCB2
b2lkIEV2ZW50VHJhY2tpbmdSZWdpb25zOjp1bml0ZShjb25zdCBFdmVudFRyYWNraW5nUmVnaW9u
cyYgZXZlbnRUcmFja2luZ1JlZ2lvbgogYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50VHJhY2tp
bmdSZWdpb25zJiBhLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgYikKIHsKICAgICByZXR1
cm4gYS5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9PSBiLmFzeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uCi0gICAgICAgICYmIGEuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b25zID09IGIuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOworICAgICAg
ICAmJiBhLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9PSBiLmV2ZW50
U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucworICAgICAgICAmJiBhLnRvdWNoQWN0
aW9uUmVnaW9uID09IGIudG91Y2hBY3Rpb25SZWdpb247CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdS
ZWdpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5o
CmluZGV4IDNkNThiYTU1ZWZkNjNlZDliYWU0MDUwMWUzMDliODYxZmM5ZTljMDUuLmJiY2RiZGEz
YWFhNmZkMWRhMTFjODY0YzFjYjc3YWIxMTY3YzQzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaApAQCAtNDYsNiArNDYsOCBAQCBzdHJ1Y3Qg
RXZlbnRUcmFja2luZ1JlZ2lvbnMgewogICAgIC8vIFRoZSBrZXkgaXMgdGhlIEV2ZW50IE5hbWUg
d2l0aCBhbiBhY3RpdmUgaGFuZGxlci4KICAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiAKKyAgICBSZWdpb24gdG91Y2hB
Y3Rpb25SZWdpb247CisKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAogICAgIHZvaWQgdHJh
bnNsYXRlKEludFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggNDEwZjJkMzFhNzlmNTgxYWQ4MmJmNGI0Yzk4MDdmMGRkZjU1MzU5My4uYWY0Nzg4YTVi
ZmE3Yzc1Mjk1YTBmNDc4ODIzYmFlMWMxMWY0YzYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNDEzLDYgKzI0MTMsOCBAQCB2b2lkIFJlbmRlckxheWVy
OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICAgICByZW5kZXJlcigp
LmRvY3VtZW50KCkuc2V0VG91Y2hFdmVudFJlZ2lvbnNOZWVkVXBkYXRlKCk7CisgICAgICAgIGlm
IChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlKCkuc2Ny
b2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5m
cmFtZVZpZXdFdmVudFRyYWNraW5nUmVnaW9uc0NoYW5nZWQodmlldy5mcmFtZVZpZXcoKSk7CiAj
ZW5kaWYKICAgICAgICAgRGVidWdQYWdlT3ZlcmxheXM6OmRpZExheW91dChyZW5kZXJlcigpLmZy
YW1lKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJl
ZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cAppbmRleCA3YTk3NTkzNjlmYjY2MDFiODc4MzgyOWUzN2YyNGFhNjhkYWViZDM5Li4wYzViYmM3
ZDQxMGU0NjBlNWVjODRkYzVkNTg0ODQzZGZkZDY0ZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC0yMzIsNiArMjMyLDEwIEBAIEVsZW1lbnRVcGRh
dGVzIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICBh
dXRvIGJlZm9yZVVwZGF0ZSA9IHJlc29sdmVQc2V1ZG9TdHlsZShlbGVtZW50LCB1cGRhdGUsIFBz
ZXVkb0lkOjpCZWZvcmUpOwogICAgIGF1dG8gYWZ0ZXJVcGRhdGUgPSByZXNvbHZlUHNldWRvU3R5
bGUoZWxlbWVudCwgdXBkYXRlLCBQc2V1ZG9JZDo6QWZ0ZXIpOwogCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKKyAgICBtX2RvY3VtZW50LnVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMoZWxlbWVu
dCwgdXBkYXRlLnN0eWxlLmdldCgpKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIHsgV1RGTW92ZSh1
cGRhdGUpLCBkZXNjZW5kYW50c1RvUmVzb2x2ZSwgV1RGTW92ZShiZWZvcmVVcGRhdGUpLCBXVEZN
b3ZlKGFmdGVyVXBkYXRlKSB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCBjNDgxZjMzN2ZiZGJkMTVmNzAyNTMyYzQxYzQxMDVmMzkyMzNkZmExLi4z
NGVjMDJiZWZjYmY3ZjQ3ZTgxNzg4YTkxNjljNzU5NmE5OWE2YzllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTQyMiw2ICs0MjIsNyBAQCBkZWYgaGVhZGVy
c19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlJlY2VudFNlYXJjaCc6IFsnPFdl
YkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3knOiBbJzxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtl
clR5cGVzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQnOiBbJzxXZWJD
b3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySm9iSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJzogWyc8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERh
dGEuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckRhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJUeXBlcy5oPicsICc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5o
PiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
aW5kZXggM2IwNTI5YTRhOTU5YTIzYmQ1ZDA0MGY1ZmEwMDhhZDdiMGZlYzcxZi4uMTY0OTUzYmNi
NjFhOTRiM2Y0M2Y5ZTVmMjhmMTYyYTkzN2M1ZDA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zMzMsNiArMzMzLDcgQEAgdm9pZCBB
cmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEV2ZW50VHIKIHsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25z
LmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uOwogICAgIGVuY29kZXIgPDwgZXZlbnRUcmFja2lu
Z1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOworICAgIGVu
Y29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25SZWdpb247CiB9CiAKIGJv
b2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCkBAIC0z
NDMsOCArMzQ0LDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNraW5nCiAgICAgSGFzaE1hcDxTdHJp
bmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b25zKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJlZ2lvbiB0b3VjaEFjdGlvblJlZ2lv
bjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRvdWNoQWN0aW9uUmVnaW9uKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3Bh
dGNoUmVnaW9uID0gV1RGTW92ZShhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7CiAgICAgZXZl
bnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25z
ID0gV1RGTW92ZShldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpOworICAg
IGV2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9uUmVnaW9uID0gV1RGTW92ZSh0b3VjaEFj
dGlvblJlZ2lvbik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDA3NGNkZGZkMjc4NGU4NjkxMjhk
MDIwYmVkNTkyMTNhMWNiZGRlNjguLjBmZGU3ODFjNTc4MThkNzNjYmM0MDI4OGRhYzBlMWI3OTVk
OWQzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQpAQCAtMjU4MCw2ICsyNTgwLDEyIEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFn
Z2luZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pCiAgICAg
Ly8gem9vbWluZy4gV2UnbGwgYW5pbWF0ZSB0byB0aGUgcmlnaHQgcGxhY2Ugb25jZSB0aGUgem9v
bSBmaW5pc2hlcy4KICAgICBpZiAoW3Njcm9sbFZpZXcgaXNab29taW5nXSkKICAgICAgICAgKnRh
cmdldENvbnRlbnRPZmZzZXQgPSBbc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XTsKKyAgICBlbHNl
IHsKKyAgICAgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10pCisg
ICAgICAgICAgICB0YXJnZXRDb250ZW50T2Zmc2V0LT54ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zm
c2V0Lng7CisgICAgICAgIGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNd
KQorICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eSA9IHNjcm9sbFZpZXcuY29udGVu
dE9mZnNldC55OworICAgIH0KICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSAmJiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQogICAgIGlmIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkqIGNvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHko
KSkgewogICAgICAgICAvLyBGSVhNRTogSGVyZSwgSSdtIGZpbmRpbmcgdGhlIG1heGltdW0gaG9y
aXpvbnRhbC92ZXJ0aWNhbCBzY3JvbGwgb2Zmc2V0cy4gVGhlcmUncyBwcm9iYWJseSBhIGJldHRl
ciB3YXkgdG8gZG8gdGhpcy4KQEAgLTI2MTcsNiArMjYyMywyMCBAQCAtICh2b2lkKXNjcm9sbFZp
ZXdEaWRTY3JvbGxUb1RvcDooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogICAgIFtzZWxmIF9k
aWRGaW5pc2hTY3JvbGxpbmddOwogfQogCistIChDR1BvaW50KV9zY3JvbGxWaWV3OihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1BvaW50KW9mZnNl
dCB0cmFuc2xhdGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50OihDR1BvaW50KXN0
YXJ0IGxvY2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhvcml6b250YWxWZWxv
Y2l0eTooaW5vdXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICop
dnYKK3sKKyAgICBpZiAoIVtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10gJiYg
IVtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgIHJldHVybiBv
ZmZzZXQ7CisKKyAgICBDR1BvaW50IGFkanVzdGVkQ29udGVudE9mZnNldCA9IENHUG9pbnRNYWtl
KG9mZnNldC54LCBvZmZzZXQueSk7CisgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5u
aW5nSW5YQXhpc10pCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC54ID0gc3RhcnQueDsK
KyAgICBpZiAoW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSkKKyAgICAgICAg
YWRqdXN0ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFydC55OworCisgICAgcmV0dXJuIGFkanVzdGVk
Q29udGVudE9mZnNldDsKK30KKwogLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xsOihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3CiB7CiAgICAgaWYgKCFbc2VsZiB1c2VzU3RhbmRhcmRDb250ZW50
Vmlld10gJiYgW19jdXN0b21Db250ZW50VmlldyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHdlYl9zY3JvbGxWaWV3RGlkU2Nyb2xsOildKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGEzNjdlMTVmMDA1MzZmOGNiNWM4NTA5MDdh
YjQzYTdjMzE2NjczMGEuLjFjMmE1NTFmMzA3NzQ3ODkyZDA3ODc5MjBjMmZlYjc2ZGNmN2E5MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAK
QEAgLTE2NCw2ICsxNjQsMTEgQEAgVHJhY2tpbmdUeXBlIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXQKICAgICByZXR1cm4g
bV9zY3JvbGxpbmdUcmVlLT5ldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGV2ZW50TmFtZSwgcCk7
CiB9CiAKK2Jvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6bWF5SGF2ZVRvdWNo
QWN0aW9uc0ZvclBvaW50KEludFBvaW50IHApIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xs
aW5nVHJlZS0+bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclBvaW50KHApOworfQorCiB2b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNj
cm9sbGluZyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9z
aXRpb25SZWN0LCBkb3VibGUgc2NhbGUpCiB7CiAgICAgbV9zY3JvbGxpbmdUcmVlLT52aWV3cG9y
dENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcobm9kZUlELCBmaXhlZFBvc2l0aW9uUmVjdCwg
c2NhbGUpOwpAQCAtMjA1LDYgKzIxMCwxMiBAQCBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZUFzVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7CiB9CiAKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2V0
VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91
Y2hBY3Rpb25zLCBTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEKQoreworCisgICAgbV9z
Y3JvbGxpbmdUcmVlLT5zZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQodG91Y2hBY3Rp
b25zLCBzY3JvbGxpbmdOb2RlSUQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRleCBiMzJkNzlmZTkyODliMTQ1N2M4ZWFkMmQ4ZDM1
YzNiNzlkYWVjOTZhLi5jNjk4NzI5Y2I3OWU3ZDgwNzVlMjU2MmNiNGFkZDdmZDJiZWRhOGFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAgLTU4
LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOwogCiAg
ICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKKyAgICBi
b29sIG1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7
CiAKICAgICAvLyBDYWxsZWQgZXh0ZXJuYWxseSB3aGVuIG5hdGl2ZSB2aWV3cyBtb3ZlIGFyb3Vu
ZC4KICAgICB2b2lkIHZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZml4ZWRQb3NpdGlv
blJlY3QsIGRvdWJsZSBzY2FsZSk7CkBAIC05Nyw2ICs5OCw3IEBAIHB1YmxpYzoKICNlbmRpZgog
CiAgICAgU3RyaW5nIHNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdDsKKyAgICB2b2lkIHNldFRv
dWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8V2ViQ29yZTo6VG91Y2hBY3Rp
b24+LCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOwogCiBwcml2YXRlOgogICAgIHZvaWQgY29u
bmVjdFN0YXRlTm9kZUxheWVycyhXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWUmLCBjb25zdCBS
ZW1vdGVMYXllclRyZWVIb3N0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggNGNjN2UxYTg3Yjg1YWM3
MDYzN2UxNWY0NGNjMWU0ZjhmOTIxOWM0Yy4uMTgxM2VlZmRhZGE0MTg2ODI5M2ExNzIxOGE0NmZm
ZWMyNDFmOWIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtNjcsOSArNjcsMjUgQEAgLSAodm9pZClz
Y3JvbGxWaWV3V2lsbEJlZ2luRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKICAg
ICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsV2lsbFN0YXJ0KCk7CiB9CiAKLSNp
ZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogLSAodm9pZClzY3JvbGxWaWV3V2lsbEVuZERyYWdn
aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxv
Y2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFyZ2V0Q29udGVudE9m
ZnNldAogeworICAgIGlmICghW3Njcm9sbFZpZXcgaXNab29taW5nXSkgeworICAgICAgICBhdXRv
IHRvdWNoQWN0aW9ucyA9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2Rl
KCkudG91Y2hBY3Rpb25zKCk7CisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgIT0gV2ViQ29yZTo6
VG91Y2hBY3Rpb246OkF1dG8gJiYgdG91Y2hBY3Rpb25zICE9IFdlYkNvcmU6OlRvdWNoQWN0aW9u
OjpNYW5pcHVsYXRpb24pIHsKKyAgICAgICAgICAgIGJvb2wgY2FuUGFuWCA9IHRydWU7CisgICAg
ICAgICAgICBib29sIGNhblBhblkgPSB0cnVlOworICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlv
bnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblgpKSB7CisgICAgICAgICAgICAg
ICAgY2FuUGFuWCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQt
PnggPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5Z
KSkgeworICAgICAgICAgICAgICAgIGNhblBhblkgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0
YXJnZXRDb250ZW50T2Zmc2V0LT55ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lnk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQ
KQogICAgIENHRmxvYXQgaG9yaXpvbnRhbFRhcmdldCA9IHRhcmdldENvbnRlbnRPZmZzZXQtPng7
CiAgICAgQ0dGbG9hdCB2ZXJ0aWNhbFRhcmdldCA9IHRhcmdldENvbnRlbnRPZmZzZXQtPnk7CiAK
QEAgLTk2LDggKzExMiw4IEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzooVUlT
Y3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pCiAgICAgICAgIHx8IG9y
aWdpbmFsVmVydGljYWxTbmFwUG9zaXRpb24gIT0gX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUt
PnNjcm9sbGluZ05vZGUoKS5jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCgpKSB7CiAgICAg
ICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5jdXJyZW50U25hcFBvaW50SW5kaWNlc0Rp
ZENoYW5nZShfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLmN1cnJl
bnRIb3Jpem9udGFsU25hcFBvaW50SW5kZXgoKSwgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUt
PnNjcm9sbGluZ05vZGUoKS5jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCgpKTsKICAgICB9
Ci19CiAjZW5kaWYKK30KIAogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcgd2lsbERlY2VsZXJhdGU6KEJPT0wpd2lsbERlY2VsZXJhdGUK
IHsKQEAgLTEwNSw2ICsxMjEsNyBAQCAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREcmFnZ2luZzoo
VUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aWxsRGVjZWxlcmF0ZTooQk9PTAogICAgICAgICBf
aW5Vc2VySW50ZXJhY3Rpb24gPSBOTzsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdh
dGUtPnNjcm9sbFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0LCBfaW5Vc2Vy
SW50ZXJhY3Rpb24pOwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xs
RGlkRW5kKCk7CisgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdO
b2RlKCkuc2V0VG91Y2hBY3Rpb25zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvKTsKICAgICB9
CiB9CiAKQEAgLTExNCw5ICsxMzEsMzIgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRGVjZWxl
cmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiAgICAgICAgIF9pblVzZXJJbnRlcmFj
dGlvbiA9IE5POwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsVmll
d0RpZFNjcm9sbChzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQsIF9pblVzZXJJbnRlcmFjdGlvbik7
CiAgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxEaWRFbmQoKTsKKyAg
ICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5zZXRUb3Vj
aEFjdGlvbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OkF1dG8pOwogICAgIH0KIH0KIAorLSAoQ0dQ
b2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNl
dEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRp
b24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2Nh
dGlvbkluVmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2Fs
VmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7CisgICAgYXV0byB0b3VjaEFjdGlvbnMgPSBf
c2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnRvdWNoQWN0aW9ucygp
OworICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246OkF1dG8gfHwg
dG91Y2hBY3Rpb25zID09IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pCisgICAg
ICAgIHJldHVybiBvZmZzZXQ7CisKKyAgICBDR1BvaW50IGFkanVzdGVkQ29udGVudE9mZnNldCA9
IENHUG9pbnRNYWtlKG9mZnNldC54LCBvZmZzZXQueSk7CisKKyAgICBib29sIGNhblBhblggPSB0
cnVlOworICAgIGJvb2wgY2FuUGFuWSA9IHRydWU7CisgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29u
dGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblgpKSB7CisgICAgICAgIGFkanVzdGVkQ29u
dGVudE9mZnNldC54ID0gc3RhcnQueDsKKyAgICAgICAgY2FuUGFuWCA9IGZhbHNlOworICAgIH0K
KyAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFu
WSkpIHsKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFydC55OworICAgICAg
ICBjYW5QYW5ZID0gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIGFkanVzdGVkQ29udGVudE9m
ZnNldDsKK30KKwogQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZGU5ODY5NGFhMzdkYjNjN2YyY2UyN2NjODI5YTkyMDAy
MTFkZTEwZC4uNTZhN2Q3MzA2MmZiZWVlMjYyYzg0MmEyMWFkYmVmNmI5MDc5ZTY1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgxLDkgKzgxLDExIEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9y
bVNjcmVlbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlwZXMuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWFyY2hQ
b3B1cE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2luZy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVGV4dEdyYW51bGFyaXR5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ub3VjaEFjdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oPgog
I2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAg
LTY4MCw2ICs2ODIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3RhcnREYXRhSW50ZXJh
Y3Rpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24pOwogICAgIHZvaWQgcmVxdWVzdEFkZGl0aW9u
YWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3Np
dGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKTsKICAgICB2b2lk
IGRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGF0YT4pOworYm9vbCBpc1Njcm9sbGluZ09yWm9vbWluZygpIGNvbnN0IHsgcmV0dXJu
IG1faXNTY3JvbGxpbmdPclpvb21pbmc7IH0KICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKERB
VEFfREVURUNUSU9OKQpAQCAtMTE1Niw2ICsxMTU5LDggQEAgcHVibGljOgogICAgIHZvaWQgY2Fu
Y2VsUG90ZW50aWFsVGFwKCk7CiAgICAgdm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCB1aW50NjRfdCYgcmVxdWVzdElEKTsKICAgICB2b2lkIGhh
bmRsZVRhcChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgdWludDY0X3QgbGF5ZXJUcmVlVHJh
bnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpOworICAgIGJvb2wgbWF5SGF2ZVRvdWNoQWN0aW9u
c0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYpIGNvbnN0OworICAgIFZlY3Rvcjxz
dGQ6OnBhaXI8T3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlEPj4gdG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50
Jik7CiAKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24oY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYpOwogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNlYXJjaEVuZGVk
QXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXgg
YTdmZmZmNzhmMzBhNzBmNGZjNTkwZDcwNWExZDE5ZTNhMzg4MWJlZi4uZDY4OGExMTIwZmI5ZDdh
NDViNGFmYWRkMWM3ODk3OGRiODNiNWM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMTk2LDYgKzE5Niw4
IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgUmV0YWluUHRyPFVJV2ViVG91
Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplcjsK
IAogICAgIEJPT0wgX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5OworICAgIEJPT0wg
X3ByZXZlbnRzUGFubmluZ0luWEF4aXM7CisgICAgQk9PTCBfcHJldmVudHNQYW5uaW5nSW5ZQXhp
czsKIAogICAgIFJldGFpblB0cjxXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXI+
IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8X1VJV2ViSGlnaGxp
Z2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI+IF9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJl
UmVjb2duaXplcjsKQEAgLTM0OSw2ICszNTEsOCBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRh
dGEgewogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBjb25zdCBXZWJLaXQ6OkZvY3Vz
ZWRFbGVtZW50SW5mb3JtYXRpb24mIGZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb247CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJV2ViRm9ybUFjY2Vzc29yeSAqZm9ybUFjY2Vzc29y
eVZpZXc7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVGV4dElucHV0QXNzaXN0
YW50SXRlbSAqaW5wdXRBc3Npc3RhbnRJdGVtRm9yV2ViVmlldzsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzOworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZlbnRzUGFubmluZ0luWUF4aXM7CiAKICNpZiBF
TkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFVJ
VmlldyA8V0tGb3JtQ29udHJvbD4gKmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zSW5wdXRWaWV3Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KaW5kZXggM2U1MjkyYTc4YzJhY2Y0NjFhNjgyOTNiM2FhYzQyMmM5MGQ3YjNj
NS4uOWM1ZWZiMGJkMGEyMWE2ZTViMzczNTA4ZmIxMmMyNzI3NGYzOTQwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgi
CiAjaW1wb3J0ICJOYXRpdmVXZWJUb3VjaEV2ZW50LmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5LmgiCisjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LmgiCiAjaW1wb3J0ICJTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW1w
b3J0ICJUZXh0SW5wdXRTUEkuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCkBAIC05MSw2ICs5Miw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGJhci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFy
ZURhdGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Ub3VjaEFjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dyaXRpbmdE
aXJlY3Rpb24uaD4KQEAgLTYxNSw2ICs2MTcsMTYgQEAgc3RhdGljIGlubGluZSBib29sIGhhc0Zv
Y3VzZWRFbGVtZW50KFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiBmb2N1c2VkRWwK
ICAgICByZXR1cm4gKGZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUgIT0gV2Vi
S2l0OjpJbnB1dFR5cGU6Ok5vbmUpOwogfQogCistIChCT09MKXByZXZlbnRzUGFubmluZ0luWEF4
aXMKK3sKKyAgICByZXR1cm4gX3ByZXZlbnRzUGFubmluZ0luWEF4aXM7Cit9CisKKy0gKEJPT0wp
cHJldmVudHNQYW5uaW5nSW5ZQXhpcworeworICAgIHJldHVybiBfcHJldmVudHNQYW5uaW5nSW5Z
QXhpczsKK30KKwogLSAoV0tGb3JtSW5wdXRTZXNzaW9uICopX2Zvcm1JbnB1dFNlc3Npb24KIHsK
ICAgICByZXR1cm4gX2Zvcm1JbnB1dFNlc3Npb24uZ2V0KCk7CkBAIC04NjEsNiArODczLDkgQEAg
LSAodm9pZCljbGVhbnVwSW50ZXJhY3Rpb24KICAgICBfaGFzU2V0VXBJbnRlcmFjdGlvbnMgPSBO
TzsKICAgICBfc3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25zID0geyB9OwogICAgIF9p
c1pvb21pbmdUb1JldmVhbEZvY3VzZWRFbGVtZW50ID0gTk87CisKKyAgICBfcHJldmVudHNQYW5u
aW5nSW5YQXhpcyA9IE5POworICAgIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzID0gTk87CiB9CiAK
IC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKQEAgLTExMjgsMTYgKzEx
NDMsNTYgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihVSVdlYlRvdWNoRXZl
bnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKICAgICBXZWJLaXQ6Ok5hdGl2ZVdlYlRv
dWNoRXZlbnQgbmF0aXZlV2ViVG91Y2hFdmVudChsYXN0VG91Y2hFdmVudCk7CiAgICAgbmF0aXZl
V2ViVG91Y2hFdmVudC5zZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoIV9jYW5TZW5kVG91Y2hF
dmVudHNBc3luY2hyb25vdXNseSB8fCBbZ2VzdHVyZVJlY29nbml6ZXIgaXNEZWZhdWx0UHJldmVu
dGVkXSk7CiAKKyAgICBpZiAoX3BhZ2UtPm1heUhhdmVUb3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50
KG5hdGl2ZVdlYlRvdWNoRXZlbnQpKSB7CisgICAgICAgIGZvciAoYXV0byB0b3VjaEFjdGlvbnNB
bmRTY3JvbGxpbmdOb2RlSURQYWlyIDogX3BhZ2UtPnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQo
bmF0aXZlV2ViVG91Y2hFdmVudCkpIHsKKyAgICAgICAgICAgIGF1dG8gdG91Y2hBY3Rpb25zID0g
dG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpci5maXJzdDsKKyAgICAgICAgICAgIGlm
ICh0b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok5vbmUpCisgICAgICAgICAg
ICAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVmYXVsdFByZXZlbnRlZDpZ
RVNdOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gRGlzYWJsZSBhbGwg
dGFwLXJlbGF0ZWQgcmVjb2duaXplcnMuCisgICAgICAgICAgICAgICAgW19zaW5nbGVUYXBHZXN0
dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBbX25vbkJsb2Nr
aW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgICAgICAg
ICAgICAgW190d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5P
XTsKKyAgICAgICAgICAgICAgICBbX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVy
IHNldEVuYWJsZWQ6Tk9dOworICAgICAgICAgICAgICAgIFtfdHdvRmluZ2VyU2luZ2xlVGFwR2Vz
dHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgICAgICAgICAgICAgW19zdHlsdXNT
aW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAgICAgICAgICAg
ICBbX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOworICAgICAgICAg
ICAgICAgIFtfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAg
ICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rp
b246Ok1hbmlwdWxhdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc2Nyb2xs
aW5nTm9kZUlEID0gdG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpci5zZWNvbmQpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRvciA9
IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGlu
Z05vZGVJRCh0b3VjaEFjdGlvbnMsIHNjcm9sbGluZ05vZGVJRCk7CisgICAgICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9ucy5j
b250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGluY2hab29tKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfd2ViVmlldy5zY3JvbGxWaWV3LnBpbmNoR2VzdHVyZVJlY29nbml6ZXIu
ZW5hYmxlZCA9IE5POworICAgICAgICAgICAgICAgICAgICAgICAgX3ByZXZlbnRzUGFubmluZ0lu
WEF4aXMgPSAhdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5Y
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzID0gIXRv
dWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWSk7CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9CisKICAgICBpZiAoX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5KQog
ICAgICAgICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRv
dWNoRXZlbnQpOwogICAgIGVsc2UKICAgICAgICAgX3BhZ2UtPmhhbmRsZVRvdWNoRXZlbnRTeW5j
aHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNoRXZlbnQpOwogCi0gICAgaWYgKG5hdGl2ZVdlYlRvdWNo
RXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKQorICAgIGlmIChuYXRpdmVXZWJUb3Vj
aEV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkgewogICAgICAgICBfY2FuU2VuZFRv
dWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgPSBOTzsKKworICAgICAgICBpZiAoIV9wYWdlLT5pc1Nj
cm9sbGluZ09yWm9vbWluZygpKQorICAgICAgICAgICAgW3NlbGYgX3Jlc2V0UGFubmluZ1ByZXZl
bnRpb25GbGFnc107CisgICAgfQogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX3Jlc2V0UGFubmluZ1By
ZXZlbnRpb25GbGFncworeworICAgIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzID0gTk87CisgICAg
X3ByZXZlbnRzUGFubmluZ0luWUF4aXMgPSBOTzsKK30KKwogLSAodm9pZClfaW5zcGVjdG9yTm9k
ZVNlYXJjaFJlY29nbml6ZWQ6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXpl
cgogewogICAgIEFTU0VSVChfaW5zcGVjdG9yTm9kZVNlYXJjaEVuYWJsZWQpOwpAQCAtMjE5NCw2
ICsyMjQ5LDggQEAgLSAodm9pZClfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nCiAgICAgfQogICAg
IF9wYWdlLT5zZXRJc1Njcm9sbGluZ09yWm9vbWluZyhmYWxzZSk7CiAKKyAgICBbc2VsZiBfcmVz
ZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXTsKKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAgICAg
W19mb2N1c2VkRm9ybUNvbnRyb2xWaWV3IGVuZ2FnZUZvY3VzZWRGb3JtQ29udHJvbE5hdmlnYXRp
b25dOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQppbmRleCAxMWE3NDY3MzlmNzZiZjcyM2MzYmE4MDExNmFkZGRlOTNhYjQ4MjEwLi40
ODIwMGYyNTkyMTMxZmE3MjQ1NTVlNjAwZTNjY2QxMzgzOTJmNDk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKKyNpbXBvcnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJVc2VyRGF0YS5oIgog
I2ltcG9ydCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCkBAIC04MjQsNiArODI1LDIy
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCB1CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlBvdGVudGlhbFRhcEF0UG9zaXRpb24ocmVxdWVzdElELCBwb3NpdGlvbiksIG1f
cGFnZUlEKTsKIH0KIAorYm9vbCBXZWJQYWdlUHJveHk6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JU
b3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIGV2ZW50KSBjb25zdAoreworICAgIGZvciAo
YXV0byYgdG91Y2hQb2ludCA6IGV2ZW50LnRvdWNoUG9pbnRzKCkpIHsKKyAgICAgICAgaWYgKHRv
dWNoUG9pbnQucGhhc2UoKSA9PSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZCAm
JiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHktPm1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2lu
dCh0b3VjaFBvaW50LmxvY2F0aW9uKCkpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIHJldHVybiBmYWxzZTsKK30KKworVmVjdG9yPHN0ZDo6cGFpcjxPcHRpb25TZXQ8V2Vi
Q29yZTo6VG91Y2hBY3Rpb24+LCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQ+PiBXZWJQYWdlUHJv
eHk6OnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYgZXZlbnQp
Cit7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxPcHRpb25TZXQ8V2ViQ29yZTo6VG91Y2hBY3Rpb24+
LCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQ+PiB0b3VjaEFjdGlvbnM7CisgICAgcHJvY2Vzcygp
LnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpUb3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KGV2
ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQ6OlJlcGx5
KHRvdWNoQWN0aW9ucyksIG1fcGFnZUlEKTsKKyAgICByZXR1cm4gdG91Y2hBY3Rpb25zOworfQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UG90ZW50aWFsVGFwKHVpbnQ2NF90IGxheWVyVHJl
ZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KQogewogICAgIHByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpDb21taXRQb3RlbnRpYWxUYXAobGF5ZXJUcmVlVHJhbnNhY3Rpb25J
ZEF0TGFzdFRvdWNoU3RhcnQpLCBtX3BhZ2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzE1ZTEyNDUyMGZmMDc2Yjk2MGFlZDcwZTliOTIwNzVh
NjU1MmFlZi4uNThlNWI2ZTQ1YmYwMGRjZDBmYzI3OWZiYjYyZDBiMjU5N2NmZDg2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjE4LDYgKzYxOCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhbmNlbFBvdGVudGlhbFRhcCgpOwogICAgIHZvaWQgY2Fu
Y2VsUG90ZW50aWFsVGFwSW5GcmFtZShXZWJGcmFtZSYpOwogICAgIHZvaWQgdGFwSGlnaGxpZ2h0
QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
KTsKKyAgICB2b2lkIHRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVu
dCYsIFZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlEPj4mKTsKIAogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNlYXJj
aE1vdmVkVG9Qb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAgICAgdm9pZCBp
bnNwZWN0b3JOb2RlU2VhcmNoRW5kZWRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IDU0YWJiYWY4OTM0Y2NkY2Y4ZTRmMjBmNzgzZmNiNmI5ZjAzMDQw
ZWIuLjM3ZmVkMzMzYjk3MmRhOGZjOTJhNDQ2NTVlNTUyMDZkMzVjMDk0ZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtMTA4LDYgKzEwOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewog
ICAgIENhbmNlbEF1dG9zY3JvbGwoKQogICAgIFJlcXVlc3RGb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEhhcmR3YXJlS2V5Ym9hcmRB
dmFpbGFiaWxpdHlDaGFuZ2VkKCkKKyAgICBUb3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KFdlYktp
dDo6V2ViVG91Y2hFdmVudCBldmVudCkgLT4gKFZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0PFdl
YkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEPj4gdG91Y2hBY3Rp
b25zKSBMZWdhY3lTeW5jCiAjZW5kaWYKIAogICAgIFNldENvbnRyb2xsZWRCeUF1dG9tYXRpb24o
Ym9vbCBjb250cm9sbGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBjNzRhNjM2YjBhMzJlOTVhYTc5YjZjZTEyNGJiMzk3
MzEzYzdlNTBiLi43Y2Y1ZjNjMWY3ZjhmN2E4MGJiMDVjOTNlNGJlZDJhNDQ4ZTM5MWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQpAQCAtMTAzLDYgKzEwMyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVu
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJCbG9jay5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
ZW5kZXJJbWFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJMYXllckJhY2tpbmcuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUmVuZGVyVGhlbWVJT1MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
Vmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KQEAg
LTg2Miw2ICs4NjMsMjcgQEAgdm9pZCBXZWJQYWdlOjp0YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXQKICAgICBzZW5kVGFwSGln
aGxpZ2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHJlcXVlc3RJRCwgbWFpbmZyYW1lLm5vZGVSZXNwb25k
aW5nVG9DbGlja0V2ZW50cyhwb3NpdGlvbiwgYWRqdXN0ZWRQb2ludCkpOwogfQogCit2b2lkIFdl
YlBhZ2U6OnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYgZXZl
bnQsIFZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0PFRvdWNoQWN0aW9uPiwgU2Nyb2xsaW5nTm9k
ZUlEPj4mIHRvdWNoQWN0aW9ucykKK3sKKyAgICBsYXlvdXRJZk5lZWRlZCgpOworCisgICAgYXV0
byYgZXZlbnRIYW5kbGVyID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKTsKKyAg
ICBmb3IgKGF1dG8mIHRvdWNoIDogZXZlbnQudG91Y2hQb2ludHMoKSkgeworICAgICAgICBhdXRv
IHJlc3VsdCA9IGV2ZW50SGFuZGxlci5oaXRUZXN0UmVzdWx0QXRQb2ludCgodG91Y2gubG9jYXRp
b24oKSksIEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUg
fCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50IHwgSGl0VGVz
dFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQpOworICAgICAgICBzdGQ6OnBhaXI8T3B0
aW9uU2V0PFRvdWNoQWN0aW9uPiwgU2Nyb2xsaW5nTm9kZUlEPiB0b3VjaEFjdGlvbnNBbmRTY3Jv
bGxpbmdOb2RlSURQYWlyOworICAgICAgICBpZiAoYXV0byogZWxlbWVudCA9IHJlc3VsdC5pbm5l
ck5vblNoYXJlZEVsZW1lbnQoKSkgeworICAgICAgICAgICAgdG91Y2hBY3Rpb25zQW5kU2Nyb2xs
aW5nTm9kZUlEUGFpci5maXJzdCA9IGVsZW1lbnQtPmNvbXB1dGVkVG91Y2hBY3Rpb25zKCk7Cisj
aWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKKyAgICAgICAgICAgIC8v
IE5vdyB3ZSBzaG91bGQgYWxzbyBsb29rIHRvIHNlZSBpZiBvdXIgZWxlbWVudCBpcyBvciBpcyBj
b250YWluZWQgd2l0aGluIGFuICJvdmVyZmxvdy1zY3JvbGw6IHRvdWNoIiBlbGVtZW50CisgICAg
ICAgICAgICAvLyBzbyB0aGF0IHdlIGNhbiByZXBvcnQgaXRzIGxheWVyIGlkIHRvIHRoZSBVSSBw
cm9jZXNzLgorICAgICAgICAgICAgaWYgKGF1dG8gc2Nyb2xsaW5nTm9kZUlEID0gZWxlbWVudC0+
bmVhcmVzdFNjcm9sbGluZ05vZGVJRFVzaW5nVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpKQorICAg
ICAgICAgICAgICAgIHRvdWNoQWN0aW9uc0FuZFNjcm9sbGluZ05vZGVJRFBhaXIuc2Vjb25kID0g
c2Nyb2xsaW5nTm9kZUlEOworI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAgdG91Y2hBY3Rpb25z
LmFwcGVuZCh0b3VjaEFjdGlvbnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyKTsKKyAgICB9Cit9CisK
IHZvaWQgV2ViUGFnZTo6aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihjb25zdCBG
bG9hdFBvaW50JiBwb3NpdGlvbikKIHsKICAgICBJbnRQb2ludCBhZGp1c3RlZFBvaW50ID0gcm91
bmRlZEludFBvaW50KHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMGQxM2E5Y2Q1MjgyYzk4NTcxN2NiNzg1
N2VmODMwMTRlNTRiNDQzLi4zNWYwODY5YzM3ZjEwNjdhOTQwOWFkOWJhZGQwNDE1YjRhYmFjY2M0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTktMDEtMTUgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQGFwcGxlLmNvbT4KKworICAgICAgICBMaW1pdCB1c2VyLWFnZW50IGludGVyYWN0aW9ucyBi
YXNlZCBvbiB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM0NDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ3MjgzODc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIG5ldyBzZXJpZXMgb2YgdGVzdHMgdGhhdCBjaGVjayB0aGF0IHRoZSAibm9uZSIs
ICJwYW4teCIsICJwYW4teSIgYW5kICJwaW5jaC16b29tIiB2YWx1ZXMgaGF2ZSB0aGUgZXhwZWN0
ZWQKKyAgICAgICAgaW1wYWN0IG9uIHBhZ2UgcGFubmluZyBvbiBpT1MuCisKKyAgICAgICAgKiBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJh
cmNoeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMtaW4taGllcmFyY2h5Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
aW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10
b3VjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tbm9uZS1vbi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1w
YW4teC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1wYW4teC1wYW4teS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbDogQWRkZWQu
CisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBh
bi15Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1waW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21p
bmcuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMt
c2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAxLTE1ICBEZXZpbiBSb3Vzc28gIDxkcm91
c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBdWRpdDogY3JlYXRlIG5l
dyBJREwgdHlwZSBmb3IgZXhwb3Npbmcgc3BlY2lhbCBmdW5jdGlvbmFsaXR5IGluIHRlc3QgY29u
dGV4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLWNvbmZsaWN0aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0aW5nLXZhbHVlcy1p
bi1oaWVyYXJjaHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxMGI4ZjcyZWE3NGIzOGFkZTIx
MzQ1OTNkMjY1MjE4ZDJiOWJiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNo
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRp
bmcgY29uZmxpY3RpbmcgdG91Y2gtYWN0aW9uIHZhbHVlcyBvbiB0aGUgdGFyZ2V0IGVsZW1lbnQg
YW5kIHBhcmVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMt
aW4taGllcmFyY2h5Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1
YjUwNzZiYmViZTZiMWUxMzRhNWEwNWFhNGU4YzMwZDA4ZjRmM2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3Rpbmct
dmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4Iiwg
aGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQg
PSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi14
IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teSI7CisKKyAgICB1aS5z
d2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdh
cyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3
aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5
LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhh
dCBzZXR0aW5nIGNvbmZsaWN0aW5nIHRvdWNoLWFjdGlvbiB2YWx1ZXMgb24gdGhlIHRhcmdldCBl
bGVtZW50IGFuZCBwYXJlbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjdlOGFmODFiZDk4NGM4YzM0MDcwNTUxYWY1YjYx
ZTkyNzBmZjgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBlbGVtZW50IHBy
ZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFtZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg1ODQxMDMyMzlmMWJjN2Y3ZTlmZWI3NTM3ZjVjOTk3
ZTk5ZTI3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CisKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4gY29u
dGVudCBob3N0ZWQgaW4gYW4gaWZyYW1lIHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
aW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tbm9uZS1pbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjhiODJiMzM1ZDNkYmM5NTYxNDUx
ZGI1MDA4MzQyMTIwYWZmODNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGlu
aXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CisKK2lmcmFtZSB7CisgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgIGxlZnQ6IDA7CisgICAgdG9wOiAwOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBo
ZWlnaHQ6IDQwMHB4OworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lPjwv
aWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCisndXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3QodGVzdCA9PiB7CisgICAgY29uc3QgaWZy
YW1lID0gZG9jdW1lbnQuYm9keS5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICBjb25zdCB0YXJnZXQg
PSBpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2IikpOworICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgYAorICAg
ICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDA7CisgICAgICAgIHRvcDog
MDsKKyAgICAgICAgd2lkdGg6IDIwMCU7CisgICAgICAgIGhlaWdodDogMjAwJTsKKyAgICAgICAg
dG91Y2gtYWN0aW9uOiBub25lOworICAgIGApOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6
IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGlu
IHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0
LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAg
ICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1h
Y3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4gYW4gaWZyYW1lIHByZXZlbnRzIHBhZ2Ug
c2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4t
b3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzAwNzI5
MTAyNDVlZjU3NTg3ZWJlOWM1MmM5ZmFiYzA1MzJkMWMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ct
c2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0
aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4g
YSBzY3JvbGxhYmxlIGNvbnRhaW5lciB1c2luZyAnLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6
IHRvdWNoJyBwcmV2ZW50cyBzY3JvbGxpbmcgb2YgdGhhdCBjb250YWluZXIuIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1v
dmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjllOTYxNGZmZWZjZWZiZWFmZTY3NDE3NGI1ODE1NDFjMGYyMzUxNDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
bm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbApAQCAtMCwwICsxLDQ5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1z
Y2FsZT0xIj4KKzxzdHlsZT4KKworI3Njcm9sbGluZy1jb250YWluZXIgeworICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOworICAgIHRvcDogMDsKKyAgICB3aWR0aDogNDAwcHg7
CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgIC13ZWJraXQt
b3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKK30KKworI3Njcm9sbGluZy1jb250YWluZXIgPiBk
aXYgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOworICAgIHRvcDogMDsK
KyAgICB3aWR0aDogMjAwJTsKKyAgICBoZWlnaHQ6IDIwMCU7CisgICAgdG91Y2gtYWN0aW9uOiBu
b25lOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJzY3JvbGxpbmct
Y29udGFpbmVyIj48ZGl2PjwvZGl2PjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3QodGVz
dCA9PiB7CisgICAgY29uc3Qgc2Nyb2xsaW5nQ29udGFpbmVyID0gZG9jdW1lbnQuYm9keS5maXJz
dEVsZW1lbnRDaGlsZDsKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAs
IHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Nv
bnRhaW5lci5zY3JvbGxMZWZ0LCAwLCAiVGhlIHNjcm9sbGluZyBjb250YWluZXIgd2FzIG5vdCBz
Y3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0NvbnRhaW5lci5zY3JvbGxUb3AsIDAsICJUaGUgc2Nyb2xsaW5nIGNvbnRhaW5lciB3YXMgbm90
IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0p
OworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBpbiBjb250ZW50
IGhvc3RlZCBpbiBhIHNjcm9sbGFibGUgY29udGFpbmVyIHVzaW5nICctd2Via2l0LW92ZXJmbG93
LXNjcm9sbGluZzogdG91Y2gnIHByZXZlbnRzIHNjcm9sbGluZyBvZiB0aGF0IGNvbnRhaW5lci4i
KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDY3NTFiZGQ3YzM0NjJhMWUwODZmZmM3M2YzNTNlZDQ0ZGFmN2ZiYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9u
LWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBUZXN0aW5nIHRo
YXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gaWZyYW1lIGFuZCBpbnRlcmFjdGlu
ZyB3aXRoIGl0cyBjb250ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1vbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTI3ZWE4ZGI0NjE3NDM0MWM1MWEwYzRjYzUy
NTNlNWI2MjA3YTJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0OCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwt
c2NhbGU9MSI+Cis8c3R5bGU+CisKK2lmcmFtZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIGxlZnQ6IDA7CisgICAgdG9wOiAwOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6
IDQwMHB4OworICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPGlmcmFtZT48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCithc3luY190ZXN0KHRlc3Qg
PT4geworICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmJvZHkuZmlyc3RFbGVtZW50Q2hpbGQ7
CisgICAgY29uc3QgdGFyZ2V0ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICB0YXJnZXQuc2V0QXR0cmli
dXRlKCJzdHlsZSIsIGAKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0
OiAwOworICAgICAgICB0b3A6IDA7CisgICAgICAgIHdpZHRoOiAyMDAlOworICAgICAgICBoZWln
aHQ6IDIwMCU7CisgICAgYCk7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsg
eDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRv
dy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhp
cy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUg
cGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9u
ZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9u
ZSBvbiBhbiBpZnJhbWUgYW5kIGludGVyYWN0aW5nIHdpdGggaXRzIGNvbnRlbnQgcHJldmVudHMg
cGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQwMmIxMzA0OTY4YTI5MWVhZGQxMzczOTUyNmZjMGQ4Y2JlMmEy
OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhIHBhcmVudCBl
bGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45YTQ4MDc5M2Y3OTBhNWM4NjI0MTc2OWY5OTMxZThmNDgwY2YzYjc0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZp
ZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgi
LCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJv
ZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdo
dCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudG91Y2hBY3Rpb24gPSAibm9u
ZSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0p
LnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwg
MCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNj
cm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOwor
fSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhIHBhcmVudCBl
bGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sIGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ZDAwYjgzYmI5OGU0YWU1ZGRjOWE1OWM5ODY3MmE2YTAzMjljZThiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbApA
QCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisK
K3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0
LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOwor
ICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQu
c3R5bGUudG91Y2hBY3Rpb24gPSAibm9uZSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTog
MTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1
YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4g
dGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQs
IDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAg
IHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFj
dGlvbjogbm9uZSBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFu
LXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXBhbi14LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2U3ODM3OWRmNDVhNzE3NzQ3NmM4
YmU3YjVkNjQwNDBmMGFhY2RlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9uIGFu
IGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHktYXhpcy4gCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1w
YW4teS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlOTdiZGUzMjdmYzI5
YzNhZTRiNzgwYTExMTY0N2NkNjhmZDVmODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nICd0b3VjaC1hY3Rp
b246IHBhbi14IHBhbi15JyBvbiBhbiBlbGVtZW50IGFsbG93cyBwYWdlIHNjcm9sbGluZyBpbiBi
b3RoIGF4ZXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyMjkxYTRkOGM2
N2MyMjE1MWMyMjlkODM3ZDcxYThmM2QwMGFiMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbApAQCAt
MCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3Rh
cmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0
ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5
bGUudG91Y2hBY3Rpb24gPSAicGFuLXggcGFuLXkiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAs
IHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X25vdF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVk
IGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdl
WU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAg
ICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyAndG91
Y2gtYWN0aW9uOiBwYW4teCBwYW4teScgb24gYW4gZWxlbWVudCBhbGxvd3MgcGFnZSBzY3JvbGxp
bmcgaW4gYm90aCBheGVzLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiOTIwNWY3ZWY1ZGEy
Y2FiNzAwMTljZmI4ZWE3MGY5NWQ3N2M2ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbApAQCAtMCwwICsxLDMw
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5p
dGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGls
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0
KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7
CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50
LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hB
Y3Rpb24gPSAicGFuLXgiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6
IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMod2lu
ZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVkIGluIHRoZSB4LWF4aXMu
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBh
Z2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUo
KTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14
IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHktYXhpcy4iKTsK
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBhbi15LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmNjU4YzM4NjQyMjY3MTVh
ZTY3ZWE0MmZiYjkyODY4MDY5Mjg0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBv
biBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB4LWF4aXMuIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFu
LXkuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4t
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjkwOTBkMzk2MDFmYmVlMTdiZmQxYjk1ZjI0M2U5ZmFiYzUyMjc5
NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXkuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdo
dDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHls
ZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIw
MDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXkiOworCisgICAg
dWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFn
ZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9ub3Rf
ZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0
aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5n
IHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMg
cGFnZSBzY3JvbGxpbmcgaW4gdGhlIHgtYXhpcy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21p
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5
NGU2NzYxNWUyYTU5OThmMzMzM2Y5MGZkYTMwZGQxZGNhNWE0NjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1h
bGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGlu
ZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFuIGVsZW1lbnQgYWxs
b3dzIHBhZ2Ugem9vbWluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mt
em9vbWluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkYTYzYzk0MjllMWFhMTM5MDI2ZWQ0MzEzY2VhNmQ1
ZDQ3ODc5NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sCkBAIC0wLDAgKzEs
MjkgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGlu
aXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRp
bHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVz
dCh7IHdpZHRoOiAiNDAwcHgiLCBoZWlnaHQ6ICI0MDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4g
eworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVu
dC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNo
QWN0aW9uID0gInBpbmNoLXpvb20iOworCisgICAgdWkucGluY2hPdXQoeyB4OiA1MCwgeTogNTAs
IHdpZHRoOiAxMDAsIGhlaWdodDogMTAwLCBzY2FsZTogMC41IH0pLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cuaW50ZXJuYWxzLnBhZ2VTY2FsZUZhY3Rvcigp
LCAxLCAiVGhlIHBhZ2Ugd2FzIHNjYWxlZC4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAg
fSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9u
IGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugem9vbWluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMt
c2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjBjODViOWFhNTUyZGY5YjcxZDlhZTQzOTc0MDUwZTBjMjg5OTgwMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1w
aW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9u
IGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50
cy1zY3JvbGxpbmcuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyMzQx
YzYyMTUwN2EzZWU4MzczNGQyNzcxM2Q4NGJmZjU1OWQ3ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2
ZW50cy1zY3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdo
dDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHls
ZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIw
MDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGluY2gtem9vbSI7CisK
KyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4o
KCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRo
ZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVk
IGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRl
c3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50
IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359208</attachid>
            <date>2019-01-15 14:59:42 -0800</date>
            <delta_ts>2019-01-15 23:32:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190115235940.patch</filename>
            <type>text/plain</type>
            <size>74941</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5OTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2RmMTY4OGEwZTliZWIx
ZDEwNDUyZWE1YTNlMGMzZjc5YzE4YzhiOC4uMjE1ZmIzNmY4ODFjNjI4YjlkNzYwNTc4NDg4Nzkz
ZDE3OTRlZmZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTAxLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21wdXRlCisgICAgICAgIGEgUmVnaW9uIGNvbnRhaW5pbmcgdGhlIGJvdW5kcyBvZiBlYWNoIG9m
IHRob3NlIGVsZW1lbnRzIGFuZCBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFsb25nIHdp
dGggdG91Y2ggcmVnaW9ucy4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHdlIGFsbG93IGEgbGlz
dCBvZiBhbGxvd2VkIHRvdWNoIGFjdGlvbnMgdG8gYmUgY29tcHV0ZWQgZm9yIGEgZ2l2ZW4gZWxl
bWVudCBhY2NvdW50aW5nIGZvciBub3Qgb25seSB0aGUgdmFsdWUgc3BlY2lmaWVkCisgICAgICAg
IGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxlLCBidXQgYWxzbyBpbiBpdHMgaGllcmFy
Y2h5LCBjcm9zc2luZyBhbnkgZnJhbWUgYm91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRv
Y3VtZW50J3Mgcm9vdCBub2RlLgorCisgICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCisgICAgICAg
ICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4t
b3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwK
KyAgICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1s
CisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tYWxsb3dzLXpvb21pbmcuaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwgICAgICAgICAg
ICAgICAKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5v
ZGVXaWxsQmVSZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJv
bSB0aGlzIGRvY3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qg
b2YgZWxlbWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRl
IGEgbGlzdCBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5
IGlmIG9uZSBkb2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0
aGUgZ2l2ZW4gZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwg
b3IgcmVtb3ZlIGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0
aGF0IGxpc3QgY2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBp
cyBpbmZvcm1lZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojp0b3VjaEFjdGlvbkVsZW1lbnRzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmll
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpjb21wdXRlZFRvdWNoQWN0aW9ucyBjb25z
dCk6IFByb3ZpZGUgdGhlIGxpc3Qgb2YgYWxsb3dlZCB0b3VjaCBhY3Rpb25zIGFjY291bnRpbmcg
Zm9yIHRoZSAidG91Y2gtYWN0aW9uIiBwcm9wZXJ0eQorICAgICAgICBzcGVjaWZpZWQgb24gdGhp
cyBlbGVtZW50IGFuZCBhbGwgb2YgaXRzIGhpZXJhcmNoeSwgY3Jvc3NpbmcgZnJhbWUgYm91bmRh
cnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNp
bmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nIGNvbnN0KTogUHJvdmlkZSB0aGUgU2Nyb2xsaW5nTm9k
ZUlELCBpZiBhbnksIGZvciB0aGUgbmVhcmVzdCBzY3JvbGxpbmcgbm9kZQorICAgICAgICBmb3Ig
dGhhdCBlbGVtZW50LiBUaGlzIHdpbGwgYWxsb3cgdGhlIFVJIHByb2Nlc3MgdG8gaWRlbnRpZnkg
d2hpY2ggc2Nyb2xsIHZpZXcncyBiZWhhdmlvciB0byBjdXN0b21pemUgdG8gcmVmbGVjdCB0aGUg
ZWxlbWVudCdzIGFsbG93ZWQKKyAgICAgICAgdG91Y2ggYWN0aW9ucy4KKyAgICAgICAgKiBkb20v
RWxlbWVudC5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNvbHV0ZUV2
ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUgY29uc3QpOiBDb21wdXRlIHRoZSByZWdpb24gZm9y
IGFsbCBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5CisgICAg
ICAgIHRocm91Z2hvdXQgdGhlIHByb3ZpZGVkIGZyYW1lIGFuZCBhbGwgb2YgaXRzIHN1YmZyYW1l
cy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludCBjb25z
dCk6IFByb3ZpZGUgYSBxdWljayB3YXkgdG8gaW5kZW50aWZ5IHdoZXRoZXIgdGhlIHByb3ZpZGVk
IHBvaW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgcmVnaW9uCisgICAgICAgIG9mIGVsZW1lbnRzIHdp
dGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZU5vZGU6OnRvdWNoQWN0aW9ucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTm9kZTo6c2V0VG91Y2hBY3Rpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9FdmVudFRyYWNr
aW5nUmVnaW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8p
OiBFbnN1cmUgdGhlIHJlZ2lvbiBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0
aW9uIHByb3BlcnR5IGlzIHVwZGF0ZWQgd2hlbiBzY3JvbGxpbmcgaGFzIG9jY3VyZWQuCisgICAg
ICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQpOiBVcGRhdGUgdGhlIGxpc3Qgb2YgZWxl
bWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB3aGVuIGFuIGVsZW1l
bnQncyBzdHlsZSBjaGFuZ2VzLgorCiAyMDE5LTAxLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0
c0BhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBwYXJzaW5nIG9mIGFkZGl0aW9uYWwgdmFs
dWVzIGZvciB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxNTgwZmMwNThi
NTM3ZWQxYWRlNWY3NTJlMzE3NjZmY2UzYmQ0MDEuLmNmOWE3NTc2NzIyMDljODE0YmY4YmJiMjFh
NmYyMDMxZTc5MmNjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTktMDEtMTUgIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBMaW1pdCB1c2VyLWFn
ZW50IGludGVyYWN0aW9ucyBiYXNlZCBvbiB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM0NDcKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQ3MjgzODc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEhhbmRsZSB0aGUgIm5vbmUiLCAicGFuLXgiLCAicGFuLXki
IGFuZCAicGluY2gtem9vbSIgdmFsdWVzIGZvciB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5IGJ5
IHF1ZXJ5aW5nIHRoZSBzY3JvbGxpbmcgdHJlZSB3aGVuZXZlciBhIHRvdWNoIGJlZ2lucworICAg
ICAgICB0byBpZGVudGlmeSB3aGV0aGVyIGl0cyBwb2ludCBtYXkgYmUgY29udGFpbmVkIHdpdGhp
biB0aGUgcmVnaW9uIG9mIGVsZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJv
cGVydHkuIElmIGl0IGlzLCB3ZSBjYWxsIGludG8gdGhlCisgICAgICAgIFdlYiBwcm9jZXNzLCBz
eW5jaHJvbm91c2x5LCB0byBjb21waWxlIHRoZSBsaXN0IG9mIHBlcm1pdHRlZCB0b3VjaCBhY3Rp
b25zIHN1Y2ggdGhhdCB3ZSBtYXkgdGhlbiBjdXN0b21pemUgdGhlIGJlaGF2aW9yIG9mIHRoZSBu
ZWFyZXN0IHNjcm9sbCB2aWV3CisgICAgICAgIHRvIHBhbiBvciB6b29tIG9ubHkgYXMgaW5zdHJ1
Y3RlZC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBzY3Jv
bGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhWZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0p
OiBBY2NvdW50IGZvciBwYW5uaW5nIGNvbnN0cmFpbnRzIHNldCBvbiB0aGUgY29udGVudCB2aWV3
IHRvIHByZXZlbnQgZGVjZWxlcmF0aW9uCisgICAgICAgIHRvIHBhbiB0aGUgdmlldyBpZiBpdCBv
dWdodCBub3QuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVmlldzphZGp1c3RlZE9mZnNl
dEZvck9mZnNldDp0cmFuc2xhdGlvbjpzdGFydFBvaW50OmxvY2F0aW9uSW5WaWV3Omhvcml6b250
YWxWZWxvY2l0eTp2ZXJ0aWNhbFZlbG9jaXR5Ol0pOiBJbXBsZW1lbnQgYW4gYWRkaXRpb25hbCBV
SVNjcm9sbFZpZXcKKyAgICAgICAgZGVsZWdhdGlvbiBtZXRob2QgdG8gYXBwbHkgdGhlIHBhbm5p
bmcgY29uc3RyYWludHMgc2V0IG9uIHRoZSBjb250ZW50IHZpZXcgd2hpbGUgcGFubmluZy4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5OjptYXlIYXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzZXRUb3VjaEFjdGlvbnNGb3JT
Y3JvbGxpbmdOb2RlSUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06
CisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3
V2lsbEVuZERyYWdnaW5nOndpdGhWZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0pOiBBcHBs
eSB0aGUgc2FtZSBsb2dpYyBhcyBpbiBXS1dlYlZpZXcuCisgICAgICAgICgtW1dLU2Nyb2xsaW5n
Tm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6d2lsbERlY2Vs
ZXJhdGU6XSk6IFJlc2V0IHRoZSB0b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBzY3Jv
bGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBpbnRlcmFjdGlvbgorICAgICAgICBpbiB0aGUgZGVm
YXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRl
IHNjcm9sbFZpZXdEaWRFbmREZWNlbGVyYXRpbmc6XSk6IFJlc2V0IHRoZSB0b3VjaCBhY3Rpb25z
IGZvciB0aGUgYXNzb2NpYXRlZCBzY3JvbGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBpbnRlcmFj
dGlvbiBpbiB0aGUKKyAgICAgICAgZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tTY3JvbGxp
bmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0Rm9yT2Zm
c2V0OnRyYW5zbGF0aW9uOnN0YXJ0UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRhbFZlbG9j
aXR5OnZlcnRpY2FsVmVsb2NpdHk6XSk6IEFwcGx5IHRoZSBzYW1lIGxvZ2ljIGFzIGluIFdLV2Vi
Vmlldy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6aXNTY3JvbGxpbmdPclpvb21pbmcgY29uc3QpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBj
bGVhbnVwSW50ZXJhY3Rpb25dKTogUmVzZXQgdGhlIHBhbm5pbmcgcHJldmVudGlvbiBpdmFycyB0
byB0aGVpciBkZWZhdWx0IHN0YXRlLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF93ZWJUb3Vj
aEV2ZW50c1JlY29nbml6ZWQ6XSk6IEFzIHdlIHByb2Nlc3MgdG91Y2hlcywgY2hlY2sgd2hldGhl
ciB0aGVyZSBtYXkgYmUgdG91Y2ggYWN0aW9ucyBzZXQgZm9yIHRoaXMgdG91Y2gncyBsb2NhdGlv
biwgYW5kIGlmIHdlIGhhdmVuJ3QgZXhjbHVkZWQKKyAgICAgICAgdGhhdCBwb3NzaWJpbGl0eSwg
Y2FsbCBpbnRvIHRoZSBXZWIgcHJvY2VzcyBzeW5jaHJvbm91c2x5IHRvIGZpbmQgd2hpY2ggdG91
Y2ggYWN0aW9ucyB0aGVzZSBtaWdodCBiZSBleGFjdGx5LiBUaGVuLCBiYXNlZCBvbiB0aG9zZSB0
b3VjaCBhY3Rpb25zLCBlaXRoZXIgc2V0RGVmYXVsdFByZXZlbnRlZAorICAgICAgICBvbiB0aGUg
X3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBpZiB0aGUgdG91Y2ggYWN0aW9uIGlzICJub25l
IiBvciBzZWxlY3RpdmVseSBkaXNhYmxlIHBhbm5pbmcgYW5kIHpvb21pbmcgYXMgd2VsbCBhcyBh
bGwgdGhlIG90aGVyIHRhcC1yZWxhdGVkIHVzZXIgaW50ZXJhY3Rpb25zLgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nXSk6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQgY29uc3QpOiBDaGVjayBhbGwg
dG91Y2ggcG9pbnRzIGZvciBhIGdpdmVuIGV2ZW50IHRvIHNlZSBpZiBpdCBtaWdodCBoYXZlIGFz
c29jaWF0ZWQgdG91Y2ggYWN0aW9ucy4gVGhpcyBjaGVja3MgdGhhdAorICAgICAgICB0aGVzZSBh
cmUgbmV3IHRvdWNoZXMgYW5kIHRoYXQgdGhlaXIgbG9jYXRpb24gaXMgY29udGFpbmVkIHdpdGhp
biB0aGUgdG91Y2ggYWN0aW9uIHJlZ2lvbiBjb21wdXRlZCBpbiB0aGUgV2ViIHByb2Nlc3MgYW5k
IHNlbnQgdG8gdGhlIFVJIHByb2Nlc3MuIAorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQpOiAKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudCk6IEl0
ZXJhdGUgb3ZlciBhbGwgdG91Y2ggcG9pbnRzIGZvciBhIGdpdmVuIGV2ZW50IGFuZCByZXR1cm4s
IGlmIHRoZXJlIGlzIGEgbm9uLWF1dG8gdG91Y2ggYWN0aW9uIHNldCwgY3JlYXRlIGEgcGFpciBj
b25zaXN0aW5nIG9mIGEKKyAgICAgICAgbGlzdCBvZiB0b3VjaC1hY3Rpb25zIGFuZCB0aGUgc2Ny
b2xsaW5nIG5vZGUgSUQgZm9yIHRoZSBuZWFyZXN0IHNjcm9sbCBub2RlIHRvIHRoZSBlbGVtZW50
IHRoYXQgaGl0IHRlc3RzIGZvciB0aGlzIGxvY2F0aW9uLgorCiAyMDE5LTAxLTE0ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3BsaXQgaGVh
ZGVyVmFsdWVGb3JWYXJ5IGludG8gc3BlY2lhbGl6ZWQgZnVuY3Rpb25zIGZvciBOZXR3b3JrUHJv
Y2VzcyBhbmQgV2ViUHJvY2Vzcy9XZWJLaXRMZWdhY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMGNhNTU0OGMxMWRhMzBhZTNi
ZDA1ZTMxNjU5Y2MyODBjNzMzMmE4Li4xOWUzZjlmNjdjZjcwZGU0OTAyYzJiNDFmYjVkODY4YjM1
YTM1OTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0zMTk1MSw2ICszMTk1MSw3IEBACiAJCQkJNDlFOTEyQUUwRUZBQzkwNjAw
OUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU0REQwODE4
ODFENUY1MDAzRUVEQkIgLyogVG91Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCTcxQjdFRTBEMjFC
NUM2ODcwMDMxQzFFRiAvKiBUb3VjaEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzFCN0VF
MEQyMUI1QzY4NzAwMzFDMUVGIC8qIFRvdWNoQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjU0REQwOTE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2hFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1NEREMEExODgxRDVGNTAwM0VFREJCIC8qIFRvdWNoTGlzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBjN2IyMWRhMWY1ZDI0NGE1YzBjYTliZmQy
Njk2ZDAzYWEwMjczNjlmLi45ZDMxYTRmNzEyNmYxYjU0NTU5Y2FhNTc4ZDRiNzU3MzAxNzdjMzdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOCw2ICsyMDgsNyBAQAogI2luY2x1ZGUg
IlRleHRBdXRvU2l6aW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4
dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIlRy
YW5zZm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIKICNpbmNsdWRlICJVbmRv
TWFuYWdlci5oIgpAQCAtNDQ3OCw2ICs0NDc5LDExIEBAIHZvaWQgRG9jdW1lbnQ6Om5vZGVXaWxs
QmVSZW1vdmVkKE5vZGUmIG5vZGUpCiAKICAgICBpZiAoaXM8VGV4dD4obm9kZSkpCiAgICAgICAg
IG1fbWFya2Vycy0+cmVtb3ZlTWFya2Vycygmbm9kZSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQorICAgIGlmIChtX3RvdWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIG1fdG91Y2hBY3Rp
b25FbGVtZW50cy0+cmVtb3ZlQWxsKCZub2RlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgTm9kZSog
ZmFsbGJhY2tGb2N1c05hdmlnYXRpb25TdGFydGluZ05vZGVBZnRlclJlbW92YWwoTm9kZSYgbm9k
ZSkKQEAgLTg1OTksNCArODYwNSwzMyBAQCB2b2lkIERvY3VtZW50OjpzZXRQYWludFdvcmtsZXRH
bG9iYWxTY29wZUZvck5hbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBSZWY8UGFpbnRXbwogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordm9pZCBEb2N1bWVudDo6dXBkYXRlVG91
Y2hBY3Rpb25FbGVtZW50cyhOb2RlJiBub2RlLCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAg
aWYgKCFtX3RvdWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIG1fdG91Y2hBY3Rpb25FbGVtZW50
cyA9IHN0ZDo6bWFrZV91bmlxdWU8RXZlbnRUYXJnZXRTZXQ+KCk7CisKKyAgICBib29sIGNoYW5n
ZWQgPSBmYWxzZTsKKworICAgIGlmIChzdHlsZSAmJiBzdHlsZS0+dG91Y2hBY3Rpb25zKCkgIT0g
VG91Y2hBY3Rpb246OkF1dG8pCisgICAgICAgIGNoYW5nZWQgfD0gbV90b3VjaEFjdGlvbkVsZW1l
bnRzLT5hZGQoJm5vZGUpLmlzTmV3RW50cnk7CisgICAgZWxzZQorICAgICAgICBjaGFuZ2VkIHw9
IG1fdG91Y2hBY3Rpb25FbGVtZW50cy0+cmVtb3ZlQWxsKCZub2RlKTsKKworI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFjaGFuZ2VkKQor
ICAgICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOworICAgIGlm
ICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gdmlldygpKSB7CisgICAgICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5n
Q29vcmRpbmF0b3IgPSBwYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICAgICAg
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0V2ZW50VHJhY2tpbmdSZWdpb25zQ2hhbmdl
ZCgqZnJhbWVWaWV3KTsKKyAgICB9CisjZW5kaWYKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDFkZjc1ZWMzZTNmOGUzZTdiY2Q4Yjhj
NzdmNWFjNGI5ZTBmMWRhNDYuLjgxMDgzMDE1YzFjNzkxMzM1MmQ2ZTRmYWJlYjE0ZDk2N2YwODZi
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMjcyLDYgKzEyNzIsNyBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVycygp
IGNvbnN0IHsgcmV0dXJuIChtX3RvdWNoRXZlbnRUYXJnZXRzLmdldCgpKSA/IG1fdG91Y2hFdmVu
dFRhcmdldHMtPnNpemUoKSA6IGZhbHNlOyB9CiAgICAgYm9vbCB0b3VjaEV2ZW50VGFyZ2V0c0Nv
bnRhaW4oTm9kZSYgbm9kZSkgY29uc3QgeyByZXR1cm4gbV90b3VjaEV2ZW50VGFyZ2V0cyA/IG1f
dG91Y2hFdmVudFRhcmdldHMtPmNvbnRhaW5zKCZub2RlKSA6IGZhbHNlOyB9CisgICAgdm9pZCB1
cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmLCBSZW5kZXJTdHlsZSopOwogI2Vsc2UKICAg
ICBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVycygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgYm9vbCB0b3VjaEV2ZW50VGFyZ2V0c0NvbnRhaW4oTm9kZSYpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CkBAIC0xMjkxLDYgKzEyOTIsMTUgQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisg
ICAgY29uc3QgRXZlbnRUYXJnZXRTZXQqIHRvdWNoQWN0aW9uRWxlbWVudHMoKSBjb25zdAorICAg
IHsKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgICAgICByZXR1cm4gbV90b3VjaEFjdGlv
bkVsZW1lbnRzLmdldCgpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYK
KyAgICB9CisKICAgICBjb25zdCBFdmVudFRhcmdldFNldCogd2hlZWxFdmVudFRhcmdldHMoKSBj
b25zdCB7IHJldHVybiBtX3doZWVsRXZlbnRUYXJnZXRzLmdldCgpOyB9CiAKICAgICB0eXBlZGVm
IHN0ZDo6cGFpcjxSZWdpb24sIGJvb2w+IFJlZ2lvbkZpeGVkUGFpcjsKQEAgLTE4NjQsNiArMTg3
NCw3IEBAIHByaXZhdGU6CiAgICAgCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+IG1fdG91Y2hFdmVudFRhcmdldHM7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEV2ZW50VGFyZ2V0U2V0PiBtX3RvdWNoQWN0aW9uRWxlbWVudHM7CiAjZW5k
aWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+IG1fd2hlZWxFdmVudFRhcmdl
dHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBkYTVjZDJmMDgxYzFlODhmODExMWVmZmYz
MjZkZjIwMjY0NDRjNDNhLi40MmQ1NTUxNDM5ZDA1ZDVjN2VhYmMyNDYxZmU5MGYxNjZmNWU3M2Ux
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC04MSw2ICs4MSw4IEBACiAjaW5jbHVkZSAiUG9p
bnRlckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyRnJhZ21lbnRDb250YWluZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2lu
Zy5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRl
ckxpc3RCb3guaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclRy
ZWVVcGRhdGVyLmgiCkBAIC0zNDE2LDcgKzM0MTgsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldENvbnRh
aW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9vbCBmbGFnKQogICAgIGludmFsaWRhdGVTdHlsZUFuZExh
eWVyQ29tcG9zaXRpb24oKTsKIH0KIAotc3RhdGljIEVsZW1lbnQqIHBhcmVudENyb3NzaW5nRnJh
bWVCb3VuZGFyaWVzKEVsZW1lbnQqIGVsZW1lbnQpCitzdGF0aWMgRWxlbWVudCogcGFyZW50Q3Jv
c3NpbmdGcmFtZUJvdW5kYXJpZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBBU1NF
UlQoZWxlbWVudCk7CiAgICAgcmV0dXJuIGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA/IGVsZW1l
bnQtPnBhcmVudEVsZW1lbnQoKSA6IGVsZW1lbnQtPmRvY3VtZW50KCkub3duZXJFbGVtZW50KCk7
CkBAIC00MTIwLDQgKzQxMjIsNjYgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVTdHlsZU1h
cChSZWY8U3R5bGVQcm9wZXJ0eU1hcD4mJiBtYXApCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCitPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IEVsZW1lbnQ6OmNvbXB1dGVkVG91
Y2hBY3Rpb25zKCkgY29uc3QKK3sKKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVk
VG91Y2hBY3Rpb25zID0gVG91Y2hBY3Rpb246OkF1dG87CisgICAgZm9yIChhdXRvKiBlbGVtZW50
ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9IHBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVz
KGVsZW1lbnQpKSB7CisgICAgICAgIGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIo
KTsKKyAgICAgICAgaWYgKCFyZW5kZXJlcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gcmVuZGVyZXItPnN0eWxlKCkudG91Y2hBY3Rpb25zKCk7
CisKKyAgICAgICAgLy8gT25jZSB3ZSd2ZSBlbmNvdW50ZXJlZCB0b3VjaC1hY3Rpb246IG5vbmUs
IHdlIGtub3cgdGhhdCB0aGlzIHdpbGwgYmUgdGhlIGNvbXB1dGVkIHZhbHVlLgorICAgICAgICBp
ZiAodG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpOb25lKQorICAgICAgICAgICAgcmV0dXJu
IHRvdWNoQWN0aW9uczsKKworICAgICAgICAvLyBJZiB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9u
IHNvIGZhciB3YXMgImF1dG8iLCB3ZSBjYW4ganVzdCB1c2UgdGhlIGN1cnJlbnQgZWxlbWVudCdz
IHRvdWNoLWFjdGlvbi4KKyAgICAgICAgaWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25zID09IFRvdWNo
QWN0aW9uOjpBdXRvKSB7CisgICAgICAgICAgICBjb21wdXRlZFRvdWNoQWN0aW9ucyA9IHRvdWNo
QWN0aW9uczsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8g
SWYgdGhlIGN1cnJlbnQgZWxlbWVudCBoYXMgdG91Y2gtYWN0aW9uOiBhdXRvIG9yIHRoZSBzYW1l
IHRvdWNoLWFjdGlvbiBhcyB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uLAorICAgICAgICAvLyB3
ZSBuZWVkIHRvIGtlZXAgZ29pbmcgdXAgdGhlIGFuY2VzdHJ5IGNoYWluLgorICAgICAgICBpZiAo
dG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpBdXRvIHx8IHRvdWNoQWN0aW9ucyA9PSBjb21w
dXRlZFRvdWNoQWN0aW9ucykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIE5v
dywgdGhlIGVsZW1lbnQncyB0b3VjaC1hY3Rpb24gYW5kIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rp
b24gYXJlIGRpZmZlcmVudCBhbmQgYXJlIG5laXRoZXIgImF1dG8iIG5vciAibm9uZSIuCisgICAg
ICAgIGlmIChjb21wdXRlZFRvdWNoQWN0aW9ucyA9PSBUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9u
KSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIGlzICJtYW5p
cHVsYXRpb24iLCB3ZSBjYW4gdGFrZSB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9u
IGFzIHRoZSBuZXdseQorICAgICAgICAgICAgLy8gY29tcHV0ZWQgdG91Y2gtYWN0aW9uLgorICAg
ICAgICAgICAgY29tcHV0ZWRUb3VjaEFjdGlvbnMgPSB0b3VjaEFjdGlvbnM7CisgICAgICAgIH0g
ZWxzZSBpZiAodG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pIHsKKyAg
ICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2UgaGF2ZSBhIHJlc3RyaWN0ZWQgY29tcHV0ZWQgdG91
Y2gtYWN0aW9uIHNvIGZhci4gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCdzIHRvdWNoLWFjdGlvbiBp
cyAibWFuaXB1bGF0aW9uIgorICAgICAgICAgICAgLy8gdGhlbiB3ZSBjYW4ganVzdCBrZWVwIGdv
aW5nIGFuZCBsZWF2ZSB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIHVudG91Y2hlZC4KKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSW4gYW55IG90aGVyIGNh
c2UsIHdlIGhhdmUgY29tcGV0aW5nIHJlc3RyaWN0aXZlIHRvdWNoLWFjdGlvbiB2YWx1ZXMgdGhh
dCBjYW4gb25seSB5aWVsZCAibm9uZSIuCisgICAgICAgIHJldHVybiBUb3VjaEFjdGlvbjo6Tm9u
ZTsKKyAgICB9CisgICAgcmV0dXJuIGNvbXB1dGVkVG91Y2hBY3Rpb25zOworfQorI2VuZGlmCisK
KyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQorU2Nyb2xsaW5nTm9k
ZUlEIEVsZW1lbnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3Jv
bGxpbmcoKSBjb25zdAoreworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICAvLyBXZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gdGhlIHJvb3QsIHNvIGNoZWNrIHRo
YXQgd2UgYWxzbyBoYXZlIGEgdmFsaWQgcGFyZW50LgorICAgIGZvciAoYXV0byogbGF5ZXIgPSBy
ZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOyBsYXllciAmJiBsYXllci0+cGFyZW50KCk7IGxh
eWVyID0gbGF5ZXItPnBhcmVudCgpKSB7CisgICAgICAgIGlmIChsYXllci0+aXNDb21wb3NpdGVk
KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHNjcm9sbGluZ05vZGVJRCA9IGxheWVyLT5iYWNr
aW5nKCktPnNjcm9sbGluZ05vZGVJREZvclJvbGUoU2Nyb2xsQ29vcmRpbmF0aW9uUm9sZTo6U2Ny
b2xsaW5nKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsaW5nTm9kZUlEOworICAgICAg
ICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMTY5ZmRlMTNhZGI2MjcwNDFmZGQ4YjVlNmY1
YjhmMmFkY2IzODZmMy4uZWQ3MjZjOTViOTIxNTA1MTBhNzU1NTc0NWQwMjU3ZDg0YmM1MTI2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiS2V5ZnJhbWVB
bmltYXRpb25PcHRpb25zLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVG9PcHRpb25zLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3RNb2RlLmgiCiAjaW5jbHVkZSAiU2ltdWxhdGVkQ2xpY2tPcHRpb25z
LmgiCiAjaW5jbHVkZSAiU3R5bGVDaGFuZ2UuaCIKQEAgLTU2LDYgKzU3LDcgQEAgY2xhc3MgUHNl
dWRvRWxlbWVudDsKIGNsYXNzIFJlbmRlclRyZWVQb3NpdGlvbjsKIGNsYXNzIFN0eWxlUHJvcGVy
dHlNYXA7CiBjbGFzcyBXZWJBbmltYXRpb247CitlbnVtIGNsYXNzIFRvdWNoQWN0aW9uIDogdWlu
dDhfdDsKIHN0cnVjdCBFbGVtZW50U3R5bGU7CiBzdHJ1Y3QgU2Nyb2xsSW50b1ZpZXdPcHRpb25z
OwogCkBAIC01ODgsNiArNTkwLDE0IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxSZWY8V2Vi
QW5pbWF0aW9uPj4gYW5pbWF0ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6U3Ryb25nPEpTQzo6SlNP
YmplY3Q+JiYsIE9wdGlvbmFsPFZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlv
bnM+PiYmKTsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IGdldEFuaW1hdGlvbnMo
KTsKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9u
U2V0PFRvdWNoQWN0aW9uPiBjb21wdXRlZFRvdWNoQWN0aW9ucygpIGNvbnN0OworI2VuZGlmCisK
KyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQorICAgIFdFQkNPUkVf
RVhQT1JUIFNjcm9sbGluZ05vZGVJRCBuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNpbmdUb3VjaE92
ZXJmbG93U2Nyb2xsaW5nKCkgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcAppbmRleCBjYjg3MzgzOTZhM2E1OGVmNDUyMGVlNTQ4Y2Y4MzFlYjQxNTQ3MWI4
Li45Y2E3ODU5YWFmMGUzM2VhN2MyMmJjYWRhMTUwOTZmOGMzNGM1ZDM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CkBAIC05OSw3ICs5OSwyNSBAQCBFdmVudFRyYWNraW5nUmVnaW9ucyBTY3JvbGxpbmdDb29yZGlu
YXRvcjo6YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKAogICAgIGF1dG8qIGRv
Y3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICBy
ZXR1cm4gRXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsKLSAgICByZXR1cm4gZG9jdW1lbnQtPmV2ZW50
VHJhY2tpbmdSZWdpb25zKCk7CisgICAgYXV0byBldmVudFRyYWNraW5nUmVnaW9ucyA9IGRvY3Vt
ZW50LT5ldmVudFRyYWNraW5nUmVnaW9ucygpOworICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnRv
dWNoQWN0aW9uUmVnaW9uID0gZnJhbWUuZG9jdW1lbnQoKS0+YWJzb2x1dGVSZWdpb25Gb3JFdmVu
dFRhcmdldHMoZnJhbWUuZG9jdW1lbnQoKS0+dG91Y2hBY3Rpb25FbGVtZW50cygpKS5maXJzdDsK
KworICAgIGZvciAoYXV0byogc3ViZnJhbWUgPSBmcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBz
dWJmcmFtZTsgc3ViZnJhbWUgPSBzdWJmcmFtZS0+dHJlZSgpLm5leHRTaWJsaW5nKCkpIHsKKyAg
ICAgICAgYXV0byogc3ViZnJhbWVWaWV3ID0gc3ViZnJhbWUtPnZpZXcoKTsKKyAgICAgICAgaWYg
KCFzdWJmcmFtZVZpZXcpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoYXV0
byogc3ViZnJhbWVEb2N1bWVudCA9IHN1YmZyYW1lLT5kb2N1bWVudCgpKSB7CisgICAgICAgICAg
ICBhdXRvIHN1YmZyYW1lUmVnaW9uID0gc3ViZnJhbWVEb2N1bWVudC0+YWJzb2x1dGVSZWdpb25G
b3JFdmVudFRhcmdldHMoc3ViZnJhbWVEb2N1bWVudC0+dG91Y2hBY3Rpb25FbGVtZW50cygpKS5m
aXJzdDsKKyAgICAgICAgICAgIC8vIE1hcCBmcm9tIHRoZSBmcmFtZSBkb2N1bWVudCB0byBvdXIg
ZG9jdW1lbnQuCisgICAgICAgICAgICBhdXRvIG9mZnNldCA9IHN1YmZyYW1lVmlldy0+Y29udGVu
dHNUb0NvbnRhaW5pbmdWaWV3Q29udGVudHMoSW50UG9pbnQoKSk7CisgICAgICAgICAgICAvLyBG
SVhNRTogdGhpcyB0cmFuc2xhdGlvbiBpZ25vcmVzIG5vbi10cml2YWwgdHJhbnNmb3JtcyBvbiB0
aGUgZnJhbWUuCisgICAgICAgICAgICBzdWJmcmFtZVJlZ2lvbi50cmFuc2xhdGUodG9JbnRTaXpl
KG9mZnNldCkpOworICAgICAgICAgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25S
ZWdpb24udW5pdGUoc3ViZnJhbWVSZWdpb24pOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0
dXJuIGV2ZW50VHJhY2tpbmdSZWdpb25zOwogI2Vsc2UKICAgICBhdXRvKiBmcmFtZVZpZXcgPSBm
cmFtZS52aWV3KCk7CiAgICAgaWYgKCFmcmFtZVZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IDUyNDM5M2RkMTZhYTYzN2ZmMTYx
ZDY3NWI4MGZmZDk0ZTdhYTE1MDAuLjMzYTJmZmI3Yzc0N2U2MzFkZTI5Mzk2NDkyNmM5MDFlNWRj
YmQ3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuY3BwCkBAIC0yNDcsNiArMjQ3LDExIEBAIFRyYWNraW5nVHlwZSBTY3JvbGxpbmdUcmVlOjpl
dmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROCiAgICAg
cmV0dXJuIG1fZXZlbnRUcmFja2luZ1JlZ2lvbnMudHJhY2tpbmdUeXBlRm9yUG9pbnQoZXZlbnRO
YW1lLCBwKTsKIH0KIAorYm9vbCBTY3JvbGxpbmdUcmVlOjptYXlIYXZlVG91Y2hBY3Rpb25zRm9y
UG9pbnQoY29uc3QgSW50UG9pbnQgcCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ldmVudFRyYWNr
aW5nUmVnaW9ucy50b3VjaEFjdGlvblJlZ2lvbi5jb250YWlucyhwKTsKK30KKwogYm9vbCBTY3Jv
bGxpbmdUcmVlOjppc1J1YmJlckJhbmRJblByb2dyZXNzKCkKIHsKICAgICBMb2NrSG9sZGVyIGxv
Y2sobV9tdXRleCk7ICAgIApAQCAtNDAzLDYgKzQwOCwxMiBAQCBTdHJpbmcgU2Nyb2xsaW5nVHJl
ZTo6c2Nyb2xsaW5nVHJlZUFzVGV4dCgpCiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsKIH0KIAor
dm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQoT3B0
aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMsIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxp
bmdOb2RlSUQpCit7CisgICAgaWYgKGF1dG8qIHNjcm9sbGluZ1RyZWVOb2RlID0gbm9kZUZvcklE
KHNjcm9sbGluZ05vZGVJRCkpCisgICAgICAgIHNjcm9sbGluZ1RyZWVOb2RlLT5zZXRUb3VjaEFj
dGlvbnModG91Y2hBY3Rpb25zKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCBlZmM2ODQxNWMzOTQzMGRmN2YyNzA0M2ZlOTgy
MzMyNzc1NTY3NjMyLi4zNjkzMzMyZWIzNmVmMWQ5YThhNDQwZTU3N2RiZGJjYzcwMDM5Yjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAi
UmVnaW9uLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJU
b3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KQEAgLTEwNCw3ICsxMDUs
OCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBl
dmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBJ
bnRQb2ludCk7Ci0gICAgCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBtYXlIYXZlVG91Y2hBY3Rp
b25zRm9yUG9pbnQoY29uc3QgSW50UG9pbnQpIGNvbnN0OworCiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50
UGhhc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMo
U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCAvKmhvcml6b250YWxJbmRleCovLCB1bnNpZ25lZCAv
KnZlcnRpY2FsSW5kZXgqLykgeyB9CkBAIC0xNTEsNiArMTUzLDcgQEAgcHVibGljOgogICAgIH0K
ICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Nyb2xsaW5nVHJlZUFzVGV4dCgpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlE
KE9wdGlvblNldDxUb3VjaEFjdGlvbj4sIFNjcm9sbGluZ05vZGVJRCk7CiAgICAgCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmlu
ZGV4IGJmN2Y2MWEzNjFiOTNiNDdkZmU0MzRlMDVmOTMyODhjY2Y1OTBiYjYuLmZhYjdmNGFlNjE1
ZWE2YzM4MWU1YmY3NmI1YTkwMjEzZjMwMmFiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIK
ICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZU5vZGUuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5o
IgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5o
PgogCkBAIC03MCw2ICs3MSw5IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZHVtcChXVEY6OlRleHRTdHJlYW0mLCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikg
Y29uc3Q7CiAKKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucygpIGNvbnN0
IHsgcmV0dXJuIG1fdG91Y2hBY3Rpb25zOyB9CisgICAgdm9pZCBzZXRUb3VjaEFjdGlvbnMoT3B0
aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMpIHsgbV90b3VjaEFjdGlvbnMgPSB0b3Vj
aEFjdGlvbnM7IH0KKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICBTY3JvbGxp
bmdUcmVlJiBzY3JvbGxpbmdUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlOyB9
CkBAIC04NSw2ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgU2Nyb2xsaW5nTm9kZUlEIG1f
bm9kZUlEOwogCiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIG1fcGFyZW50OworICAgIE9wdGlvblNl
dDxUb3VjaEFjdGlvbj4gbV90b3VjaEFjdGlvbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVn
aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5j
cHAKaW5kZXggN2U3NjNjODk1M2RjYThlNmRkN2NhY2FkNjI1MjQwN2M3MGM1Zjg2My4uOWZiZTEw
MDhhMTM2ZGIzM2ZhMWI4NDE5NWIzMDRlNTM2YjUyMDhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcApAQCAtNzMsNyArNzMsOCBAQCB2
b2lkIEV2ZW50VHJhY2tpbmdSZWdpb25zOjp1bml0ZShjb25zdCBFdmVudFRyYWNraW5nUmVnaW9u
cyYgZXZlbnRUcmFja2luZ1JlZ2lvbgogYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50VHJhY2tp
bmdSZWdpb25zJiBhLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgYikKIHsKICAgICByZXR1
cm4gYS5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9PSBiLmFzeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uCi0gICAgICAgICYmIGEuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b25zID09IGIuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOworICAgICAg
ICAmJiBhLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9PSBiLmV2ZW50
U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucworICAgICAgICAmJiBhLnRvdWNoQWN0
aW9uUmVnaW9uID09IGIudG91Y2hBY3Rpb25SZWdpb247CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdS
ZWdpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5o
CmluZGV4IDNkNThiYTU1ZWZkNjNlZDliYWU0MDUwMWUzMDliODYxZmM5ZTljMDUuLmJiY2RiZGEz
YWFhNmZkMWRhMTFjODY0YzFjYjc3YWIxMTY3YzQzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaApAQCAtNDYsNiArNDYsOCBAQCBzdHJ1Y3Qg
RXZlbnRUcmFja2luZ1JlZ2lvbnMgewogICAgIC8vIFRoZSBrZXkgaXMgdGhlIEV2ZW50IE5hbWUg
d2l0aCBhbiBhY3RpdmUgaGFuZGxlci4KICAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiAKKyAgICBSZWdpb24gdG91Y2hB
Y3Rpb25SZWdpb247CisKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAogICAgIHZvaWQgdHJh
bnNsYXRlKEludFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggNDEwZjJkMzFhNzlmNTgxYWQ4MmJmNGI0Yzk4MDdmMGRkZjU1MzU5My4uYWY0Nzg4YTVi
ZmE3Yzc1Mjk1YTBmNDc4ODIzYmFlMWMxMWY0YzYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNDEzLDYgKzI0MTMsOCBAQCB2b2lkIFJlbmRlckxheWVy
OjpzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICAgICByZW5kZXJlcigp
LmRvY3VtZW50KCkuc2V0VG91Y2hFdmVudFJlZ2lvbnNOZWVkVXBkYXRlKCk7CisgICAgICAgIGlm
IChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlKCkuc2Ny
b2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5m
cmFtZVZpZXdFdmVudFRyYWNraW5nUmVnaW9uc0NoYW5nZWQodmlldy5mcmFtZVZpZXcoKSk7CiAj
ZW5kaWYKICAgICAgICAgRGVidWdQYWdlT3ZlcmxheXM6OmRpZExheW91dChyZW5kZXJlcigpLmZy
YW1lKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJl
ZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cAppbmRleCA3YTk3NTkzNjlmYjY2MDFiODc4MzgyOWUzN2YyNGFhNjhkYWViZDM5Li4wYzViYmM3
ZDQxMGU0NjBlNWVjODRkYzVkNTg0ODQzZGZkZDY0ZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC0yMzIsNiArMjMyLDEwIEBAIEVsZW1lbnRVcGRh
dGVzIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICBh
dXRvIGJlZm9yZVVwZGF0ZSA9IHJlc29sdmVQc2V1ZG9TdHlsZShlbGVtZW50LCB1cGRhdGUsIFBz
ZXVkb0lkOjpCZWZvcmUpOwogICAgIGF1dG8gYWZ0ZXJVcGRhdGUgPSByZXNvbHZlUHNldWRvU3R5
bGUoZWxlbWVudCwgdXBkYXRlLCBQc2V1ZG9JZDo6QWZ0ZXIpOwogCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKKyAgICBtX2RvY3VtZW50LnVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMoZWxlbWVu
dCwgdXBkYXRlLnN0eWxlLmdldCgpKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIHsgV1RGTW92ZSh1
cGRhdGUpLCBkZXNjZW5kYW50c1RvUmVzb2x2ZSwgV1RGTW92ZShiZWZvcmVVcGRhdGUpLCBXVEZN
b3ZlKGFmdGVyVXBkYXRlKSB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCBjNDgxZjMzN2ZiZGJkMTVmNzAyNTMyYzQxYzQxMDVmMzkyMzNkZmExLi4z
NGVjMDJiZWZjYmY3ZjQ3ZTgxNzg4YTkxNjljNzU5NmE5OWE2YzllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTQyMiw2ICs0MjIsNyBAQCBkZWYgaGVhZGVy
c19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlJlY2VudFNlYXJjaCc6IFsnPFdl
YkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3knOiBbJzxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtl
clR5cGVzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQnOiBbJzxXZWJD
b3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySm9iSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJzogWyc8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERh
dGEuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckRhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJUeXBlcy5oPicsICc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5o
PiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
aW5kZXggM2IwNTI5YTRhOTU5YTIzYmQ1ZDA0MGY1ZmEwMDhhZDdiMGZlYzcxZi4uMTY0OTUzYmNi
NjFhOTRiM2Y0M2Y5ZTVmMjhmMTYyYTkzN2M1ZDA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zMzMsNiArMzMzLDcgQEAgdm9pZCBB
cmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEV2ZW50VHIKIHsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25z
LmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uOwogICAgIGVuY29kZXIgPDwgZXZlbnRUcmFja2lu
Z1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOworICAgIGVu
Y29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25SZWdpb247CiB9CiAKIGJv
b2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCkBAIC0z
NDMsOCArMzQ0LDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNraW5nCiAgICAgSGFzaE1hcDxTdHJp
bmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b25zKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJlZ2lvbiB0b3VjaEFjdGlvblJlZ2lv
bjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRvdWNoQWN0aW9uUmVnaW9uKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3Bh
dGNoUmVnaW9uID0gV1RGTW92ZShhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7CiAgICAgZXZl
bnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25z
ID0gV1RGTW92ZShldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpOworICAg
IGV2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9uUmVnaW9uID0gV1RGTW92ZSh0b3VjaEFj
dGlvblJlZ2lvbik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDA3NGNkZGZkMjc4NGU4NjkxMjhk
MDIwYmVkNTkyMTNhMWNiZGRlNjguLjBmZGU3ODFjNTc4MThkNzNjYmM0MDI4OGRhYzBlMWI3OTVk
OWQzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQpAQCAtMjU4MCw2ICsyNTgwLDEyIEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFn
Z2luZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pCiAgICAg
Ly8gem9vbWluZy4gV2UnbGwgYW5pbWF0ZSB0byB0aGUgcmlnaHQgcGxhY2Ugb25jZSB0aGUgem9v
bSBmaW5pc2hlcy4KICAgICBpZiAoW3Njcm9sbFZpZXcgaXNab29taW5nXSkKICAgICAgICAgKnRh
cmdldENvbnRlbnRPZmZzZXQgPSBbc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XTsKKyAgICBlbHNl
IHsKKyAgICAgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10pCisg
ICAgICAgICAgICB0YXJnZXRDb250ZW50T2Zmc2V0LT54ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zm
c2V0Lng7CisgICAgICAgIGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNd
KQorICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eSA9IHNjcm9sbFZpZXcuY29udGVu
dE9mZnNldC55OworICAgIH0KICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSAmJiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQogICAgIGlmIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkqIGNvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHko
KSkgewogICAgICAgICAvLyBGSVhNRTogSGVyZSwgSSdtIGZpbmRpbmcgdGhlIG1heGltdW0gaG9y
aXpvbnRhbC92ZXJ0aWNhbCBzY3JvbGwgb2Zmc2V0cy4gVGhlcmUncyBwcm9iYWJseSBhIGJldHRl
ciB3YXkgdG8gZG8gdGhpcy4KQEAgLTI2MTcsNiArMjYyMywyMCBAQCAtICh2b2lkKXNjcm9sbFZp
ZXdEaWRTY3JvbGxUb1RvcDooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogICAgIFtzZWxmIF9k
aWRGaW5pc2hTY3JvbGxpbmddOwogfQogCistIChDR1BvaW50KV9zY3JvbGxWaWV3OihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1BvaW50KW9mZnNl
dCB0cmFuc2xhdGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50OihDR1BvaW50KXN0
YXJ0IGxvY2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhvcml6b250YWxWZWxv
Y2l0eTooaW5vdXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICop
dnYKK3sKKyAgICBpZiAoIVtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10gJiYg
IVtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgIHJldHVybiBv
ZmZzZXQ7CisKKyAgICBDR1BvaW50IGFkanVzdGVkQ29udGVudE9mZnNldCA9IENHUG9pbnRNYWtl
KG9mZnNldC54LCBvZmZzZXQueSk7CisgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5u
aW5nSW5YQXhpc10pCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC54ID0gc3RhcnQueDsK
KyAgICBpZiAoW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSkKKyAgICAgICAg
YWRqdXN0ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFydC55OworCisgICAgcmV0dXJuIGFkanVzdGVk
Q29udGVudE9mZnNldDsKK30KKwogLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xsOihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3CiB7CiAgICAgaWYgKCFbc2VsZiB1c2VzU3RhbmRhcmRDb250ZW50
Vmlld10gJiYgW19jdXN0b21Db250ZW50VmlldyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHdlYl9zY3JvbGxWaWV3RGlkU2Nyb2xsOildKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGEzNjdlMTVmMDA1MzZmOGNiNWM4NTA5MDdh
YjQzYTdjMzE2NjczMGEuLjFjMmE1NTFmMzA3NzQ3ODkyZDA3ODc5MjBjMmZlYjc2ZGNmN2E5MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAK
QEAgLTE2NCw2ICsxNjQsMTEgQEAgVHJhY2tpbmdUeXBlIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHk6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXQKICAgICByZXR1cm4g
bV9zY3JvbGxpbmdUcmVlLT5ldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGV2ZW50TmFtZSwgcCk7
CiB9CiAKK2Jvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6bWF5SGF2ZVRvdWNo
QWN0aW9uc0ZvclBvaW50KEludFBvaW50IHApIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xs
aW5nVHJlZS0+bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclBvaW50KHApOworfQorCiB2b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNj
cm9sbGluZyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9z
aXRpb25SZWN0LCBkb3VibGUgc2NhbGUpCiB7CiAgICAgbV9zY3JvbGxpbmdUcmVlLT52aWV3cG9y
dENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcobm9kZUlELCBmaXhlZFBvc2l0aW9uUmVjdCwg
c2NhbGUpOwpAQCAtMjA1LDYgKzIxMCwxMiBAQCBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZUFzVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7CiB9CiAKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2V0
VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91
Y2hBY3Rpb25zLCBTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEKQoreworCisgICAgbV9z
Y3JvbGxpbmdUcmVlLT5zZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQodG91Y2hBY3Rp
b25zLCBzY3JvbGxpbmdOb2RlSUQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRleCBiMzJkNzlmZTkyODliMTQ1N2M4ZWFkMmQ4ZDM1
YzNiNzlkYWVjOTZhLi5jNjk4NzI5Y2I3OWU3ZDgwNzVlMjU2MmNiNGFkZDdmZDJiZWRhOGFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAgLTU4
LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Nj
cm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uLCBib29sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3JvbGwpOwogCiAg
ICAgV2ViQ29yZTo6VHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudE5hbWUsIFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKKyAgICBi
b29sIG1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7
CiAKICAgICAvLyBDYWxsZWQgZXh0ZXJuYWxseSB3aGVuIG5hdGl2ZSB2aWV3cyBtb3ZlIGFyb3Vu
ZC4KICAgICB2b2lkIHZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZml4ZWRQb3NpdGlv
blJlY3QsIGRvdWJsZSBzY2FsZSk7CkBAIC05Nyw2ICs5OCw3IEBAIHB1YmxpYzoKICNlbmRpZgog
CiAgICAgU3RyaW5nIHNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdDsKKyAgICB2b2lkIHNldFRv
dWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8V2ViQ29yZTo6VG91Y2hBY3Rp
b24+LCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOwogCiBwcml2YXRlOgogICAgIHZvaWQgY29u
bmVjdFN0YXRlTm9kZUxheWVycyhXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWUmLCBjb25zdCBS
ZW1vdGVMYXllclRyZWVIb3N0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggNGNjN2UxYTg3Yjg1YWM3
MDYzN2UxNWY0NGNjMWU0ZjhmOTIxOWM0Yy4uMTgxM2VlZmRhZGE0MTg2ODI5M2ExNzIxOGE0NmZm
ZWMyNDFmOWIwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtNjcsOSArNjcsMjUgQEAgLSAodm9pZClz
Y3JvbGxWaWV3V2lsbEJlZ2luRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKICAg
ICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsV2lsbFN0YXJ0KCk7CiB9CiAKLSNp
ZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogLSAodm9pZClzY3JvbGxWaWV3V2lsbEVuZERyYWdn
aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxv
Y2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFyZ2V0Q29udGVudE9m
ZnNldAogeworICAgIGlmICghW3Njcm9sbFZpZXcgaXNab29taW5nXSkgeworICAgICAgICBhdXRv
IHRvdWNoQWN0aW9ucyA9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2Rl
KCkudG91Y2hBY3Rpb25zKCk7CisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgIT0gV2ViQ29yZTo6
VG91Y2hBY3Rpb246OkF1dG8gJiYgdG91Y2hBY3Rpb25zICE9IFdlYkNvcmU6OlRvdWNoQWN0aW9u
OjpNYW5pcHVsYXRpb24pIHsKKyAgICAgICAgICAgIGJvb2wgY2FuUGFuWCA9IHRydWU7CisgICAg
ICAgICAgICBib29sIGNhblBhblkgPSB0cnVlOworICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlv
bnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblgpKSB7CisgICAgICAgICAgICAg
ICAgY2FuUGFuWCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQt
PnggPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5Z
KSkgeworICAgICAgICAgICAgICAgIGNhblBhblkgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0
YXJnZXRDb250ZW50T2Zmc2V0LT55ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lnk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQ
KQogICAgIENHRmxvYXQgaG9yaXpvbnRhbFRhcmdldCA9IHRhcmdldENvbnRlbnRPZmZzZXQtPng7
CiAgICAgQ0dGbG9hdCB2ZXJ0aWNhbFRhcmdldCA9IHRhcmdldENvbnRlbnRPZmZzZXQtPnk7CiAK
QEAgLTk2LDggKzExMiw4IEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzooVUlT
Y3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pCiAgICAgICAgIHx8IG9y
aWdpbmFsVmVydGljYWxTbmFwUG9zaXRpb24gIT0gX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUt
PnNjcm9sbGluZ05vZGUoKS5jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCgpKSB7CiAgICAg
ICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5jdXJyZW50U25hcFBvaW50SW5kaWNlc0Rp
ZENoYW5nZShfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLmN1cnJl
bnRIb3Jpem9udGFsU25hcFBvaW50SW5kZXgoKSwgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUt
PnNjcm9sbGluZ05vZGUoKS5jdXJyZW50VmVydGljYWxTbmFwUG9pbnRJbmRleCgpKTsKICAgICB9
Ci19CiAjZW5kaWYKK30KIAogLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcgd2lsbERlY2VsZXJhdGU6KEJPT0wpd2lsbERlY2VsZXJhdGUK
IHsKQEAgLTEwNSw2ICsxMjEsNyBAQCAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREcmFnZ2luZzoo
VUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aWxsRGVjZWxlcmF0ZTooQk9PTAogICAgICAgICBf
aW5Vc2VySW50ZXJhY3Rpb24gPSBOTzsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdh
dGUtPnNjcm9sbFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0LCBfaW5Vc2Vy
SW50ZXJhY3Rpb24pOwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xs
RGlkRW5kKCk7CisgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdO
b2RlKCkuc2V0VG91Y2hBY3Rpb25zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvKTsKICAgICB9
CiB9CiAKQEAgLTExNCw5ICsxMzEsMzIgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRGVjZWxl
cmF0aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiAgICAgICAgIF9pblVzZXJJbnRlcmFj
dGlvbiA9IE5POwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsVmll
d0RpZFNjcm9sbChzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQsIF9pblVzZXJJbnRlcmFjdGlvbik7
CiAgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxEaWRFbmQoKTsKKyAg
ICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5zZXRUb3Vj
aEFjdGlvbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OkF1dG8pOwogICAgIH0KIH0KIAorLSAoQ0dQ
b2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNl
dEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRp
b24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2Nh
dGlvbkluVmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2Fs
VmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7CisgICAgYXV0byB0b3VjaEFjdGlvbnMgPSBf
c2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnRvdWNoQWN0aW9ucygp
OworICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246OkF1dG8gfHwg
dG91Y2hBY3Rpb25zID09IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pCisgICAg
ICAgIHJldHVybiBvZmZzZXQ7CisKKyAgICBDR1BvaW50IGFkanVzdGVkQ29udGVudE9mZnNldCA9
IENHUG9pbnRNYWtlKG9mZnNldC54LCBvZmZzZXQueSk7CisKKyAgICBib29sIGNhblBhblggPSB0
cnVlOworICAgIGJvb2wgY2FuUGFuWSA9IHRydWU7CisgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29u
dGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblgpKSB7CisgICAgICAgIGFkanVzdGVkQ29u
dGVudE9mZnNldC54ID0gc3RhcnQueDsKKyAgICAgICAgY2FuUGFuWCA9IGZhbHNlOworICAgIH0K
KyAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFu
WSkpIHsKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFydC55OworICAgICAg
ICBjYW5QYW5ZID0gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIGFkanVzdGVkQ29udGVudE9m
ZnNldDsKK30KKwogQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZGU5ODY5NGFhMzdkYjNjN2YyY2UyN2NjODI5YTkyMDAy
MTFkZTEwZC4uNTZjNGM2ZmUwYWY0MDQyNTNlOGNiYWJiODc0YmE4MTNjODJmYTU1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgxLDkgKzgxLDExIEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9y
bVNjcmVlbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlwZXMuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWFyY2hQ
b3B1cE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2luZy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVGV4dEdyYW51bGFyaXR5Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ub3VjaEFjdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbi5oPgog
I2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAg
LTY4MCw2ICs2ODIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3RhcnREYXRhSW50ZXJh
Y3Rpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24pOwogICAgIHZvaWQgcmVxdWVzdEFkZGl0aW9u
YWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3Np
dGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKTsKICAgICB2b2lk
IGRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yRGF0YT4pOworYm9vbCBpc1Njcm9sbGluZ09yWm9vbWluZygpIGNvbnN0IHsgcmV0dXJu
IG1faXNTY3JvbGxpbmdPclpvb21pbmc7IH0KICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKERB
VEFfREVURUNUSU9OKQpAQCAtMTE1Niw2ICsxMTU5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNh
bmNlbFBvdGVudGlhbFRhcCgpOwogICAgIHZvaWQgdGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgdWludDY0X3QmIHJlcXVlc3RJRCk7CiAgICAgdm9pZCBo
YW5kbGVUYXAoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIHVpbnQ2NF90IGxheWVyVHJlZVRy
YW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KTsKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
ICAgIGJvb2wgbWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hF
dmVudCYpIGNvbnN0OworICAgIFZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0PFdlYkNvcmU6OlRv
dWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEPj4gdG91Y2hBY3Rpb25zRm9yVG91
Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50Jik7CisjZW5kaWYKIAogICAgIHZvaWQgaW5zcGVj
dG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7
CiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNoRW5kZWRBdFBvc2l0aW9uKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBhN2ZmZmY3OGYzMGE3MGY0ZmM1OTBk
NzA1YTFkMTllM2EzODgxYmVmLi5kNjg4YTExMjBmYjlkN2E0NWI0YWZhZGQxYzc4OTc4ZGI4M2I1
YzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0xOTYsNiArMTk2LDggQEAgc3RydWN0IFdLQXV0b0NvcnJl
Y3Rpb25EYXRhIHsKICAgICBSZXRhaW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25p
emVyPiBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyOwogCiAgICAgQk9PTCBfY2FuU2VuZFRv
dWNoRXZlbnRzQXN5bmNocm9ub3VzbHk7CisgICAgQk9PTCBfcHJldmVudHNQYW5uaW5nSW5YQXhp
czsKKyAgICBCT09MIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzOwogCiAgICAgUmV0YWluUHRyPFdL
U3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplcj4gX3NpbmdsZVRhcEdlc3R1cmVSZWNv
Z25pemVyOwogICAgIFJldGFpblB0cjxfVUlXZWJIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVj
b2duaXplcj4gX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyOwpAQCAtMzQ5LDYg
KzM1MSw4IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYg
Zm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgVUlXZWJGb3JtQWNjZXNzb3J5ICpmb3JtQWNjZXNzb3J5VmlldzsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgVUlUZXh0SW5wdXRBc3Npc3RhbnRJdGVtICppbnB1dEFzc2lzdGFu
dEl0ZW1Gb3JXZWJWaWV3OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHBy
ZXZlbnRzUGFubmluZ0luWEF4aXM7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgcHJldmVudHNQYW5uaW5nSW5ZQXhpczsKIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5U
KQogQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgVUlWaWV3IDxXS0Zvcm1Db250cm9sPiAq
ZGF0YUxpc3RUZXh0U3VnZ2VzdGlvbnNJbnB1dFZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAzZTUy
OTJhNzhjMmFjZjQ2MWE2ODI5M2IzYWFjNDIyYzkwZDdiM2M1Li45YzVlZmIwYmQwYTIxYTZlNWIz
NzM1MDhmYjEyYzI3Mjc0ZjM5NDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYlRv
dWNoRXZlbnQuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIK
KyNpbXBvcnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKICNpbXBvcnQgIlNt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlRleHRJbnB1dFNQSS5oIgog
I2ltcG9ydCAiVUlLaXRTUEkuaCIKQEAgLTkxLDYgKzkyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
U2Nyb2xsYmFyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlRGF0YS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9UZXh0SW5kaWNhdG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RvdWNoQWN0aW9uLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvV2Vi
RXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV3JpdGluZ0RpcmVjdGlvbi5oPgpAQCAtNjE1LDYg
KzYxNywxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFzRm9jdXNlZEVsZW1lbnQoV2ViS2l0OjpG
b2N1c2VkRWxlbWVudEluZm9ybWF0aW9uIGZvY3VzZWRFbAogICAgIHJldHVybiAoZm9jdXNlZEVs
ZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50VHlwZSAhPSBXZWJLaXQ6OklucHV0VHlwZTo6Tm9uZSk7
CiB9CiAKKy0gKEJPT0wpcHJldmVudHNQYW5uaW5nSW5YQXhpcworeworICAgIHJldHVybiBfcHJl
dmVudHNQYW5uaW5nSW5YQXhpczsKK30KKworLSAoQk9PTClwcmV2ZW50c1Bhbm5pbmdJbllBeGlz
Cit7CisgICAgcmV0dXJuIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzOworfQorCiAtIChXS0Zvcm1J
bnB1dFNlc3Npb24gKilfZm9ybUlucHV0U2Vzc2lvbgogewogICAgIHJldHVybiBfZm9ybUlucHV0
U2Vzc2lvbi5nZXQoKTsKQEAgLTg2MSw2ICs4NzMsOSBAQCAtICh2b2lkKWNsZWFudXBJbnRlcmFj
dGlvbgogICAgIF9oYXNTZXRVcEludGVyYWN0aW9ucyA9IE5POwogICAgIF9zdXBwcmVzc1NlbGVj
dGlvbkFzc2lzdGFudFJlYXNvbnMgPSB7IH07CiAgICAgX2lzWm9vbWluZ1RvUmV2ZWFsRm9jdXNl
ZEVsZW1lbnQgPSBOTzsKKworICAgIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzID0gTk87CisgICAg
X3ByZXZlbnRzUGFubmluZ0luWUF4aXMgPSBOTzsKIH0KIAogLSAodm9pZClfcmVtb3ZlRGVmYXVs
dEdlc3R1cmVSZWNvZ25pemVycwpAQCAtMTEyOCwxNiArMTE0Myw1NiBAQCAtICh2b2lkKV93ZWJU
b3VjaEV2ZW50c1JlY29nbml6ZWQ6KFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplciAq
KWdlc3R1cmVSZQogICAgIFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudCBuYXRpdmVXZWJUb3Vj
aEV2ZW50KGxhc3RUb3VjaEV2ZW50KTsKICAgICBuYXRpdmVXZWJUb3VjaEV2ZW50LnNldENhblBy
ZXZlbnROYXRpdmVHZXN0dXJlcyghX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5IHx8
IFtnZXN0dXJlUmVjb2duaXplciBpc0RlZmF1bHRQcmV2ZW50ZWRdKTsKIAorICAgIGlmIChfcGFn
ZS0+bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQobmF0aXZlV2ViVG91Y2hFdmVudCkp
IHsKKyAgICAgICAgZm9yIChhdXRvIHRvdWNoQWN0aW9uc0FuZFNjcm9sbGluZ05vZGVJRFBhaXIg
OiBfcGFnZS0+dG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudChuYXRpdmVXZWJUb3VjaEV2ZW50KSkg
eworICAgICAgICAgICAgYXV0byB0b3VjaEFjdGlvbnMgPSB0b3VjaEFjdGlvbnNBbmRTY3JvbGxp
bmdOb2RlSURQYWlyLmZpcnN0OworICAgICAgICAgICAgaWYgKHRvdWNoQWN0aW9ucyA9PSBXZWJD
b3JlOjpUb3VjaEFjdGlvbjo6Tm9uZSkKKyAgICAgICAgICAgICAgICBbX3RvdWNoRXZlbnRHZXN0
dXJlUmVjb2duaXplciBzZXREZWZhdWx0UHJldmVudGVkOllFU107CisgICAgICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgICAgICAvLyBEaXNhYmxlIGFsbCB0YXAtcmVsYXRlZCByZWNvZ25pemVy
cy4KKyAgICAgICAgICAgICAgICBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJs
ZWQ6Tk9dOworICAgICAgICAgICAgICAgIFtfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVj
b2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBbX3R3b0ZpbmdlckRvdWJs
ZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOworICAgICAgICAgICAgICAgIFtf
aGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAg
ICAgICAgICAgICAgW190d29GaW5nZXJTaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFi
bGVkOk5PXTsKKyAgICAgICAgICAgICAgICBbX3N0eWx1c1NpbmdsZVRhcEdlc3R1cmVSZWNvZ25p
emVyIHNldEVuYWJsZWQ6Tk9dOworICAgICAgICAgICAgICAgIFtfZG91YmxlVGFwR2VzdHVyZVJl
Y29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgICAgICAgICAgICAgW19sb25nUHJlc3NHZXN0
dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBpZiAoIXRvdWNo
QWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKSkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzY3JvbGxpbmdOb2RlSUQgPSB0b3VjaEFjdGlv
bnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyLnNlY29uZCkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxpbmdDb29y
ZGluYXRvci0+c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKHRvdWNoQWN0aW9ucywg
c2Nyb2xsaW5nTm9kZUlEKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNo
QWN0aW9uOjpQaW5jaFpvb20pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF93ZWJWaWV3
LnNjcm9sbFZpZXcucGluY2hHZXN0dXJlUmVjb2duaXplci5lbmFibGVkID0gTk87CisgICAgICAg
ICAgICAgICAgICAgICAgICBfcHJldmVudHNQYW5uaW5nSW5YQXhpcyA9ICF0b3VjaEFjdGlvbnMu
Y29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgX3ByZXZlbnRzUGFubmluZ0luWUF4aXMgPSAhdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdl
YkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5ZKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmIChf
Y2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkpCiAgICAgICAgIF9wYWdlLT5oYW5kbGVU
b3VjaEV2ZW50QXN5bmNocm9ub3VzbHkobmF0aXZlV2ViVG91Y2hFdmVudCk7CiAgICAgZWxzZQog
ICAgICAgICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkobmF0aXZlV2ViVG91
Y2hFdmVudCk7CiAKLSAgICBpZiAobmF0aXZlV2ViVG91Y2hFdmVudC5hbGxUb3VjaFBvaW50c0Fy
ZVJlbGVhc2VkKCkpCisgICAgaWYgKG5hdGl2ZVdlYlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNB
cmVSZWxlYXNlZCgpKSB7CiAgICAgICAgIF9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNs
eSA9IE5POworCisgICAgICAgIGlmICghX3BhZ2UtPmlzU2Nyb2xsaW5nT3Jab29taW5nKCkpCisg
ICAgICAgICAgICBbc2VsZiBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXTsKKyAgICB9CiAj
ZW5kaWYKIH0KIAorLSAodm9pZClfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzCit7CisgICAg
X3ByZXZlbnRzUGFubmluZ0luWEF4aXMgPSBOTzsKKyAgICBfcHJldmVudHNQYW5uaW5nSW5ZQXhp
cyA9IE5POworfQorCiAtICh2b2lkKV9pbnNwZWN0b3JOb2RlU2VhcmNoUmVjb2duaXplZDooVUlH
ZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiB7CiAgICAgQVNTRVJUKF9pbnNw
ZWN0b3JOb2RlU2VhcmNoRW5hYmxlZCk7CkBAIC0yMTk0LDYgKzIyNDksOCBAQCAtICh2b2lkKV9k
aWRFbmRTY3JvbGxpbmdPclpvb21pbmcKICAgICB9CiAgICAgX3BhZ2UtPnNldElzU2Nyb2xsaW5n
T3Jab29taW5nKGZhbHNlKTsKIAorICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxh
Z3NdOworCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKICAgICBbX2ZvY3VzZWRGb3JtQ29udHJvbFZp
ZXcgZW5nYWdlRm9jdXNlZEZvcm1Db250cm9sTmF2aWdhdGlvbl07CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDExYTc0Njcz
OWY3NmJmNzIzYzNiYTgwMTE2YWRkZGU5M2FiNDgyMTAuLmExYTc4ZDA2MGE5MWFlNjQ0NWE1MWVi
NjhlYzRkNDE4NzY5Y2Q4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCAiUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5o
IgorI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgogI2ltcG9ydCAi
VUlLaXRTUEkuaCIKICNpbXBvcnQgIlVzZXJEYXRhLmgiCiAjaW1wb3J0ICJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCIKQEAgLTgyNCw2ICs4MjUsMjQgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnBvdGVudGlhbFRhcEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRp
b24sIHUKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UG90ZW50aWFsVGFw
QXRQb3NpdGlvbihyZXF1ZXN0SUQsIHBvc2l0aW9uKSwgbV9wYWdlSUQpOwogfQogCisjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKK2Jvb2wgV2ViUGFnZVByb3h5OjptYXlIYXZlVG91Y2hBY3Rpb25z
Rm9yVG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiBldmVudCkgY29uc3QKK3sKKyAgICBm
b3IgKGF1dG8mIHRvdWNoUG9pbnQgOiBldmVudC50b3VjaFBvaW50cygpKSB7CisgICAgICAgIGlm
ICh0b3VjaFBvaW50LnBoYXNlKCkgPT0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFByZXNz
ZWQgJiYgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LT5tYXlIYXZlVG91Y2hBY3Rpb25zRm9y
UG9pbnQodG91Y2hQb2ludC5sb2NhdGlvbigpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1ZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0
PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEPj4gV2ViUGFn
ZVByb3h5Ojp0b3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIGV2
ZW50KQoreworICAgIFZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0
aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEPj4gdG91Y2hBY3Rpb25zOworICAgIHByb2Nl
c3MoKS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVu
dChldmVudCksIE1lc3NhZ2VzOjpXZWJQYWdlOjpUb3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50OjpS
ZXBseSh0b3VjaEFjdGlvbnMpLCBtX3BhZ2VJRCk7CisgICAgcmV0dXJuIHRvdWNoQWN0aW9uczsK
K30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UG90ZW50aWFsVGFwKHVpbnQ2
NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KQogewogICAgIHByb2Nl
c3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21taXRQb3RlbnRpYWxUYXAobGF5ZXJUcmVl
VHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpLCBtX3BhZ2VJRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzE1ZTEyNDUyMGZmMDc2Yjk2MGFl
ZDcwZTliOTIwNzVhNjU1MmFlZi4uNThlNWI2ZTQ1YmYwMGRjZDBmYzI3OWZiYjYyZDBiMjU5N2Nm
ZDg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAt
NjE4LDYgKzYxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhbmNlbFBvdGVudGlhbFRhcCgpOwog
ICAgIHZvaWQgY2FuY2VsUG90ZW50aWFsVGFwSW5GcmFtZShXZWJGcmFtZSYpOwogICAgIHZvaWQg
dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmKTsKKyAgICB2b2lkIHRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3Qg
V2ViVG91Y2hFdmVudCYsIFZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNo
QWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEPj4mKTsKIAogICAgIHZvaWQgaW5zcGVj
dG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7
CiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNoRW5kZWRBdFBvc2l0aW9uKGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDU0YWJiYWY4OTM0Y2NkY2Y4ZTRmMjBmNzgz
ZmNiNmI5ZjAzMDQwZWIuLjM3ZmVkMzMzYjk3MmRhOGZjOTJhNDQ2NTVlNTUyMDZkMzVjMDk0ZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgpAQCAtMTA4LDYgKzEwOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogICAgIENhbmNlbEF1dG9zY3JvbGwoKQogICAgIFJlcXVlc3RGb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEhhcmR3
YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkKCkKKyAgICBUb3VjaEFjdGlvbnNGb3JUb3Vj
aEV2ZW50KFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkgLT4gKFZlY3RvcjxzdGQ6OnBhaXI8
T3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
Pj4gdG91Y2hBY3Rpb25zKSBMZWdhY3lTeW5jCiAjZW5kaWYKIAogICAgIFNldENvbnRyb2xsZWRC
eUF1dG9tYXRpb24oYm9vbCBjb250cm9sbGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBjNzRhNjM2YjBhMzJlOTVhYTc5
YjZjZTEyNGJiMzk3MzEzYzdlNTBiLi43Y2Y1ZjNjMWY3ZjhmN2E4MGJiMDVjOTNlNGJlZDJhNDQ4
ZTM5MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQpAQCAtMTAzLDYgKzEwMyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtTW91c2VFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJCbG9jay5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SZW5kZXJJbWFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJMYXllckJh
Y2tpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVGhlbWVJT1MuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUmVuZGVyVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25D
aGVja3MuaD4KQEAgLTg2Miw2ICs4NjMsMjcgQEAgdm9pZCBXZWJQYWdlOjp0YXBIaWdobGlnaHRB
dFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXQKICAg
ICBzZW5kVGFwSGlnaGxpZ2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHJlcXVlc3RJRCwgbWFpbmZyYW1l
Lm5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyhwb3NpdGlvbiwgYWRqdXN0ZWRQb2ludCkpOwog
fQogCit2b2lkIFdlYlBhZ2U6OnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91
Y2hFdmVudCYgZXZlbnQsIFZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0PFRvdWNoQWN0aW9uPiwg
U2Nyb2xsaW5nTm9kZUlEPj4mIHRvdWNoQWN0aW9ucykKK3sKKyAgICBsYXlvdXRJZk5lZWRlZCgp
OworCisgICAgYXV0byYgZXZlbnRIYW5kbGVyID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhh
bmRsZXIoKTsKKyAgICBmb3IgKGF1dG8mIHRvdWNoIDogZXZlbnQudG91Y2hQb2ludHMoKSkgewor
ICAgICAgICBhdXRvIHJlc3VsdCA9IGV2ZW50SGFuZGxlci5oaXRUZXN0UmVzdWx0QXRQb2ludCgo
dG91Y2gubG9jYXRpb24oKSksIEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1
ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250
ZW50IHwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQpOworICAgICAgICBz
dGQ6OnBhaXI8T3B0aW9uU2V0PFRvdWNoQWN0aW9uPiwgU2Nyb2xsaW5nTm9kZUlEPiB0b3VjaEFj
dGlvbnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyOworICAgICAgICBpZiAoYXV0byogZWxlbWVudCA9
IHJlc3VsdC5pbm5lck5vblNoYXJlZEVsZW1lbnQoKSkgeworICAgICAgICAgICAgdG91Y2hBY3Rp
b25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpci5maXJzdCA9IGVsZW1lbnQtPmNvbXB1dGVkVG91Y2hB
Y3Rpb25zKCk7CisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKKyAg
ICAgICAgICAgIC8vIE5vdyB3ZSBzaG91bGQgYWxzbyBsb29rIHRvIHNlZSBpZiBvdXIgZWxlbWVu
dCBpcyBvciBpcyBjb250YWluZWQgd2l0aGluIGFuICJvdmVyZmxvdy1zY3JvbGw6IHRvdWNoIiBl
bGVtZW50CisgICAgICAgICAgICAvLyBzbyB0aGF0IHdlIGNhbiByZXBvcnQgaXRzIGxheWVyIGlk
IHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAgICAgaWYgKGF1dG8gc2Nyb2xsaW5nTm9kZUlE
ID0gZWxlbWVudC0+bmVhcmVzdFNjcm9sbGluZ05vZGVJRFVzaW5nVG91Y2hPdmVyZmxvd1Njcm9s
bGluZygpKQorICAgICAgICAgICAgICAgIHRvdWNoQWN0aW9uc0FuZFNjcm9sbGluZ05vZGVJRFBh
aXIuc2Vjb25kID0gc2Nyb2xsaW5nTm9kZUlEOworI2VuZGlmCisgICAgICAgIH0KKyAgICAgICAg
dG91Y2hBY3Rpb25zLmFwcGVuZCh0b3VjaEFjdGlvbnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyKTsK
KyAgICB9Cit9CisKIHZvaWQgV2ViUGFnZTo6aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKIHsKICAgICBJbnRQb2ludCBhZGp1c3Rl
ZFBvaW50ID0gcm91bmRlZEludFBvaW50KHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMGQxM2E5Y2Q1Mjgy
Yzk4NTcxN2NiNzg1N2VmODMwMTRlNTRiNDQzLi4zNWYwODY5YzM3ZjEwNjdhOTQwOWFkOWJhZGQw
NDE1YjRhYmFjY2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTktMDEtMTUgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBMaW1pdCB1c2VyLWFnZW50IGlu
dGVyYWN0aW9ucyBiYXNlZCBvbiB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM0NDcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ3MjgzODc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBzZXJpZXMgb2YgdGVzdHMgdGhhdCBjaGVjayB0aGF0
IHRoZSAibm9uZSIsICJwYW4teCIsICJwYW4teSIgYW5kICJwaW5jaC16b29tIiB2YWx1ZXMgaGF2
ZSB0aGUgZXhwZWN0ZWQKKyAgICAgICAgaW1wYWN0IG9uIHBhZ2UgcGFubmluZyBvbiBpT1MuCisK
KyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFs
dWVzLWluLWhpZXJhcmNoeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMtaW4taGllcmFyY2h5Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtaW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93
LXNjcm9sbGluZy10b3VjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICog
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
b24tcGFyZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1ub25lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1wYW4teC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgu
aHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBh
bi15LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLXBhbi15Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20t
YWxsb3dzLXpvb21pbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAxLTE1ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBdWRp
dDogY3JlYXRlIG5ldyBJREwgdHlwZSBmb3IgZXhwb3Npbmcgc3BlY2lhbCBmdW5jdGlvbmFsaXR5
IGluIHRlc3QgY29udGV4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0
aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxMGI4Zjcy
ZWE3NGIzOGFkZTIxMzQ1OTNkMjY1MjE4ZDJiOWJiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVz
LWluLWhpZXJhcmNoeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGlu
ZyB0aGF0IHNldHRpbmcgY29uZmxpY3RpbmcgdG91Y2gtYWN0aW9uIHZhbHVlcyBvbiB0aGUgdGFy
Z2V0IGVsZW1lbnQgYW5kIHBhcmVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGlj
dGluZy12YWx1ZXMtaW4taGllcmFyY2h5Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc1YjUwNzZiYmViZTZiMWUxMzRhNWEwNWFhNGU4YzMwZDA4ZjRmM2IKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
Y29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj
YWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0
aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBk
b2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5z
dHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnRvdWNoQWN0
aW9uID0gInBhbi14IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teSI7
CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRo
ZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwg
IlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9s
bGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwg
IlRlc3RpbmcgdGhhdCBzZXR0aW5nIGNvbmZsaWN0aW5nIHRvdWNoLWFjdGlvbiB2YWx1ZXMgb24g
dGhlIHRhcmdldCBlbGVtZW50IGFuZCBwYXJlbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1ub25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1ub25lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjdlOGFmODFiZDk4NGM4YzM0
MDcwNTUxYWY1YjYxZTkyNzBmZjgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBh
biBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LWluLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg1ODQxMDMyMzlmMWJjN2Y3ZTlm
ZWI3NTM3ZjVjOTk3ZTk5ZTI3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFtZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACisKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246
IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4gYW4gaWZyYW1lIHByZXZlbnRzIHBhZ2Ugc2Nyb2xs
aW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtaW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjhiODJiMzM1
ZDNkYmM5NTYxNDUxZGI1MDA4MzQyMTIwYWZmODNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLmh0bWwK
QEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CisKK2lmcmFtZSB7CisgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDA7CisgICAgdG9wOiAwOworICAgIHdpZHRoOiA0
MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8aWZyYW1lPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3QodGVzdCA9PiB7Cisg
ICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuYm9keS5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICBj
b25zdCB0YXJnZXQgPSBpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoInN0
eWxlIiwgYAorICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDA7Cisg
ICAgICAgIHRvcDogMDsKKyAgICAgICAgd2lkdGg6IDIwMCU7CisgICAgICAgIGhlaWdodDogMjAw
JTsKKyAgICAgICAgdG91Y2gtYWN0aW9uOiBub25lOworICAgIGApOworCisgICAgdWkuc3dpcGUo
eyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90
IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93
LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlz
LiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0
dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4gYW4gaWZyYW1lIHBy
ZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91
Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYzAwNzI5MTAyNDVlZjU3NTg3ZWJlOWM1MmM5ZmFiYzA1MzJkMWMyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
aW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4gY29udGVu
dCBob3N0ZWQgaW4gYSBzY3JvbGxhYmxlIGNvbnRhaW5lciB1c2luZyAnLXdlYmtpdC1vdmVyZmxv
dy1zY3JvbGxpbmc6IHRvdWNoJyBwcmV2ZW50cyBzY3JvbGxpbmcgb2YgdGhhdCBjb250YWluZXIu
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbCBiL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10
b3VjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllOTYxNGZmZWZjZWZiZWFmZTY3NDE3NGI1ODE1NDFjMGYy
MzUxNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbApAQCAtMCww
ICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxzdHlsZT4KKworI3Njcm9sbGluZy1jb250YWluZXIgewor
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOworICAgIHRvcDogMDsKKyAgICB3
aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBvdmVyZmxvdzogc2Nyb2xsOwor
ICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKK30KKworI3Njcm9sbGluZy1j
b250YWluZXIgPiBkaXYgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOwor
ICAgIHRvcDogMDsKKyAgICB3aWR0aDogMjAwJTsKKyAgICBoZWlnaHQ6IDIwMCU7CisgICAgdG91
Y2gtYWN0aW9uOiBub25lOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlk
PSJzY3JvbGxpbmctY29udGFpbmVyIj48ZGl2PjwvZGl2PjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK2Fz
eW5jX3Rlc3QodGVzdCA9PiB7CisgICAgY29uc3Qgc2Nyb2xsaW5nQ29udGFpbmVyID0gZG9jdW1l
bnQuYm9keS5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUw
IH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHNjcm9sbGluZ0NvbnRhaW5lci5zY3JvbGxMZWZ0LCAwLCAiVGhlIHNjcm9sbGluZyBjb250YWlu
ZXIgd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHNjcm9sbGluZ0NvbnRhaW5lci5zY3JvbGxUb3AsIDAsICJUaGUgc2Nyb2xsaW5nIGNvbnRh
aW5lciB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9u
ZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9u
ZSBpbiBjb250ZW50IGhvc3RlZCBpbiBhIHNjcm9sbGFibGUgY29udGFpbmVyIHVzaW5nICctd2Vi
a2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2gnIHByZXZlbnRzIHNjcm9sbGluZyBvZiB0aGF0
IGNvbnRhaW5lci4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDY3NTFiZGQ3YzM0NjJhMWUwODZmZmM3M2YzNTNlZDQ0ZGFmN2ZiYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFT
UyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gaWZyYW1lIGFu
ZCBpbnRlcmFjdGluZyB3aXRoIGl0cyBjb250ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LW5vbmUtb24taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTI3ZWE4ZGI0NjE3NDM0
MWM1MWEwYzRjYzUyNTNlNWI2MjA3YTJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKQEAgLTAs
MCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lk
dGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CisKK2lmcmFtZSB7CisgICAgcG9zaXRpb246
IGFic29sdXRlOworICAgIGxlZnQ6IDA7CisgICAgdG9wOiAwOworICAgIHdpZHRoOiA0MDBweDsK
KyAgICBoZWlnaHQ6IDQwMHB4OworICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKK30KKworPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZT48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCithc3lu
Y190ZXN0KHRlc3QgPT4geworICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmJvZHkuZmlyc3RF
bGVtZW50Q2hpbGQ7CisgICAgY29uc3QgdGFyZ2V0ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICB0YXJn
ZXQuc2V0QXR0cmlidXRlKCJzdHlsZSIsIGAKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICBsZWZ0OiAwOworICAgICAgICB0b3A6IDA7CisgICAgICAgIHdpZHRoOiAyMDAlOwor
ICAgICAgICBoZWlnaHQ6IDIwMCU7CisgICAgYCk7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwg
eTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQg
aW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZz
ZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAg
ICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNo
LWFjdGlvbjogbm9uZSBvbiBhbiBpZnJhbWUgYW5kIGludGVyYWN0aW5nIHdpdGggaXRzIGNvbnRl
bnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1w
YXJlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMmIxMzA0OTY4YTI5MWVhZGQxMzczOTUy
NmZjMGQ4Y2JlMmEyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBv
biBhIHBhcmVudCBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFy
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1vbi1wYXJlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTQ4MDc5M2Y3OTBhNWM4NjI0MTc2OWY5OTMx
ZThmNDgwY2YzYjc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwKQEAgLTAsMCArMSwyOSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwt
c2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdp
ZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudG91Y2hB
Y3Rpb24gPSAibm9uZSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDog
NTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5w
YWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4i
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFn
ZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgp
OworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBv
biBhIHBhcmVudCBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1s
IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hZDAwYjgzYmI5OGU0YWU1ZGRjOWE1OWM5ODY3MmE2YTAzMjljZThiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LW5vbmUuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNl
IHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4
IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9
ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisK
KyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAibm9uZSI7CisKKyAgICB1aS5zd2lwZSh7
IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qg
c2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cu
cGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMu
Iik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0
aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xs
aW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2U3ODM3OWRm
NDVhNzE3NzQ3NmM4YmU3YjVkNjQwNDBmMGFhY2RlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246
IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHktYXhp
cy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1wYW4teC1wYW4teS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJl
OTdiZGUzMjdmYzI5YzNhZTRiNzgwYTExMTY0N2NkNjhmZDVmODIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5n
ICd0b3VjaC1hY3Rpb246IHBhbi14IHBhbi15JyBvbiBhbiBlbGVtZW50IGFsbG93cyBwYWdlIHNj
cm9sbGluZyBpbiBib3RoIGF4ZXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVy
ZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbCBiL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUyMjkxYTRkOGM2N2MyMjE1MWMyMjlkODM3ZDcxYThmM2QwMGFiMTQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFu
LXkuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0
cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9
LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIy
MDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAg
ICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXggcGFuLXkiOworCisgICAgdWkuc3dp
cGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgYXNzZXJ0X25vdF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ug
d2FzIHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxz
KHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeS1h
eGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQg
c2V0dGluZyAndG91Y2gtYWN0aW9uOiBwYW4teCBwYW4teScgb24gYW4gZWxlbWVudCBhbGxvd3Mg
cGFnZSBzY3JvbGxpbmcgaW4gYm90aCBheGVzLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbCBiL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNi
OTIwNWY3ZWY1ZGEyY2FiNzAwMTljZmI4ZWE3MGY5NWQ3N2M2ZjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbApA
QCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisK
K3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0
LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOwor
ICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQu
c3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXgiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6
IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X25v
dF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVkIGlu
IHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0
LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAg
ICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1h
Y3Rpb246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhl
IHktYXhpcy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmNjU4
YzM4NjQyMjY3MTVhZTY3ZWE0MmZiYjkyODY4MDY5Mjg0OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0
aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB4
LWF4aXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXkuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1wYW4teS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOTBkMzk2MDFmYmVlMTdiZmQxYjk1ZjI0
M2U5ZmFiYzUyMjc5NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
Ij4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIy
MDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1l
bnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUu
aGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGFu
LXkiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQs
IDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAg
IGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBz
Y3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsK
K30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9uIGFuIGVsZW1l
bnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHgtYXhpcy4iKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20t
YWxsb3dzLXpvb21pbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA5NGU2NzYxNWUyYTU5OThmMzMzM2Y5MGZkYTMwZGQxZGNhNWE0NjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
cGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFu
IGVsZW1lbnQgYWxsb3dzIHBhZ2Ugem9vbWluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gt
em9vbS1hbGxvd3Mtem9vbWluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkYTYzYzk0MjllMWFhMTM5MDI2
ZWQ0MzEzY2VhNmQ1ZDQ3ODc5NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1s
CkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOwor
Cit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiNDAwcHgiLCBoZWlnaHQ6ICI0MDBweCIgfSwgKHRhcmdl
dCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsK
KyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0
LnN0eWxlLnRvdWNoQWN0aW9uID0gInBpbmNoLXpvb20iOworCisgICAgdWkucGluY2hPdXQoeyB4
OiA1MCwgeTogNTAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwLCBzY2FsZTogMC41IH0pLnRoZW4o
KCkgPT4geworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cuaW50ZXJuYWxzLnBhZ2VT
Y2FsZUZhY3RvcigpLCAxLCAiVGhlIHBhZ2Ugd2FzIHNjYWxlZC4iKTsKKyAgICAgICAgdGVzdC5k
b25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBw
aW5jaC16b29tIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugem9vbWluZy4iKTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBjODViOWFhNTUyZGY5YjcxZDlhZTQzOTc0MDUwZTBjMjg5
OTgwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBw
aW5jaC16b29tIG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gt
em9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAyMzQxYzYyMTUwN2EzZWU4MzczNGQyNzcxM2Q4NGJmZjU1OWQ3ZGQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGlu
Y2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
Ij4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIy
MDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1l
bnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUu
aGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGlu
Y2gtem9vbSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6
IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9m
ZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMg
bm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAg
IH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBv
biBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359257</attachid>
            <date>2019-01-15 23:32:28 -0800</date>
            <delta_ts>2019-01-15 23:58:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190116083226.patch</filename>
            <type>text/plain</type>
            <size>74541</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZhZGNlOWZiZjc1YTQx
YjJmNjJiNjVmM2EyOTNjOTE2ZWM4MmNiYi4uZTg2YTFhOWY5NWFiOGU2YzBhYWZlYzA3OGRiY2Fh
Mzc0MDZhY2E3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTAxLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21wdXRlCisgICAgICAgIGEgUmVnaW9uIGNvbnRhaW5pbmcgdGhlIGJvdW5kcyBvZiBlYWNoIG9m
IHRob3NlIGVsZW1lbnRzIGFuZCBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFsb25nIHdp
dGggdG91Y2ggcmVnaW9ucy4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHdlIGFsbG93IGEgbGlz
dCBvZiBhbGxvd2VkIHRvdWNoIGFjdGlvbnMgdG8gYmUgY29tcHV0ZWQgZm9yIGEgZ2l2ZW4gZWxl
bWVudCBhY2NvdW50aW5nIGZvciBub3Qgb25seSB0aGUgdmFsdWUgc3BlY2lmaWVkCisgICAgICAg
IGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxlLCBidXQgYWxzbyBpbiBpdHMgaGllcmFy
Y2h5LCBjcm9zc2luZyBhbnkgZnJhbWUgYm91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRv
Y3VtZW50J3Mgcm9vdCBub2RlLgorCisgICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCisgICAgICAg
ICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4t
b3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwK
KyAgICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1s
CisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tYWxsb3dzLXpvb21pbmcuaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwgICAgICAgICAg
ICAgICAKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5v
ZGVXaWxsQmVSZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJv
bSB0aGlzIGRvY3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qg
b2YgZWxlbWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRl
IGEgbGlzdCBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5
IGlmIG9uZSBkb2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0
aGUgZ2l2ZW4gZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwg
b3IgcmVtb3ZlIGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0
aGF0IGxpc3QgY2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBp
cyBpbmZvcm1lZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojp0b3VjaEFjdGlvbkVsZW1lbnRzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmll
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpjb21wdXRlZFRvdWNoQWN0aW9ucyBjb25z
dCk6IFByb3ZpZGUgdGhlIGxpc3Qgb2YgYWxsb3dlZCB0b3VjaCBhY3Rpb25zIGFjY291bnRpbmcg
Zm9yIHRoZSAidG91Y2gtYWN0aW9uIiBwcm9wZXJ0eQorICAgICAgICBzcGVjaWZpZWQgb24gdGhp
cyBlbGVtZW50IGFuZCBhbGwgb2YgaXRzIGhpZXJhcmNoeSwgY3Jvc3NpbmcgZnJhbWUgYm91bmRh
cnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNp
bmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nIGNvbnN0KTogUHJvdmlkZSB0aGUgU2Nyb2xsaW5nTm9k
ZUlELCBpZiBhbnksIGZvciB0aGUgbmVhcmVzdCBzY3JvbGxpbmcgbm9kZQorICAgICAgICBmb3Ig
dGhhdCBlbGVtZW50LiBUaGlzIHdpbGwgYWxsb3cgdGhlIFVJIHByb2Nlc3MgdG8gaWRlbnRpZnkg
d2hpY2ggc2Nyb2xsIHZpZXcncyBiZWhhdmlvciB0byBjdXN0b21pemUgdG8gcmVmbGVjdCB0aGUg
ZWxlbWVudCdzIGFsbG93ZWQKKyAgICAgICAgdG91Y2ggYWN0aW9ucy4KKyAgICAgICAgKiBkb20v
RWxlbWVudC5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNvbHV0ZUV2
ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUgY29uc3QpOiBDb21wdXRlIHRoZSByZWdpb24gZm9y
IGFsbCBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5CisgICAg
ICAgIHRocm91Z2hvdXQgdGhlIHByb3ZpZGVkIGZyYW1lIGFuZCBhbGwgb2YgaXRzIHN1YmZyYW1l
cy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludCBjb25z
dCk6IFByb3ZpZGUgYSBxdWljayB3YXkgdG8gaW5kZW50aWZ5IHdoZXRoZXIgdGhlIHByb3ZpZGVk
IHBvaW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgcmVnaW9uCisgICAgICAgIG9mIGVsZW1lbnRzIHdp
dGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZU5vZGU6OnRvdWNoQWN0aW9ucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTm9kZTo6c2V0VG91Y2hBY3Rpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9FdmVudFRyYWNr
aW5nUmVnaW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8p
OiBFbnN1cmUgdGhlIHJlZ2lvbiBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0
aW9uIHByb3BlcnR5IGlzIHVwZGF0ZWQgd2hlbiBzY3JvbGxpbmcgaGFzIG9jY3VyZWQuCisgICAg
ICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQpOiBVcGRhdGUgdGhlIGxpc3Qgb2YgZWxl
bWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB3aGVuIGFuIGVsZW1l
bnQncyBzdHlsZSBjaGFuZ2VzLgorCiAyMDE5LTAxLTE1ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9u
b3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV2luQ2Fpcm8gYnVpbGQg
Zml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBiYzIxNjQ3NmU2YTA2NGY4NjBkODdlNTBkYzhjZWU3NDU0ODQ2NDEz
Li4xMjJlMTEwMTNjODlkYjg2Yzk5NTk1MGRjNWQ2MGVkNDc1MDg0Mjc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDU4IEBACisyMDE5LTAxLTE1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5j
b20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhl
IHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUg
dGhlICJub25lIiwgInBhbi14IiwgInBhbi15IiBhbmQgInBpbmNoLXpvb20iIHZhbHVlcyBmb3Ig
dGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSBieSBxdWVyeWluZyB0aGUgc2Nyb2xsaW5nIHRyZWUg
d2hlbmV2ZXIgYSB0b3VjaCBiZWdpbnMKKyAgICAgICAgdG8gaWRlbnRpZnkgd2hldGhlciBpdHMg
cG9pbnQgbWF5IGJlIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHJlZ2lvbiBvZiBlbGVtZW50cyB3aXRo
IGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5LiBJZiBpdCBpcywgd2UgY2FsbCBpbnRv
IHRoZQorICAgICAgICBXZWIgcHJvY2Vzcywgc3luY2hyb25vdXNseSwgdG8gY29tcGlsZSB0aGUg
bGlzdCBvZiBwZXJtaXR0ZWQgdG91Y2ggYWN0aW9ucyBzdWNoIHRoYXQgd2UgbWF5IHRoZW4gY3Vz
dG9taXplIHRoZSBiZWhhdmlvciBvZiB0aGUgbmVhcmVzdCBzY3JvbGwgdmlldworICAgICAgICB0
byBwYW4gb3Igem9vbSBvbmx5IGFzIGluc3RydWN0ZWQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46
OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lv
bnM+OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzp3aXRoVmVs
b2NpdHk6dGFyZ2V0Q29udGVudE9mZnNldDpdKTogQWNjb3VudCBmb3IgcGFubmluZyBjb25zdHJh
aW50cyBzZXQgb24gdGhlIGNvbnRlbnQgdmlldyB0byBwcmV2ZW50IGRlY2VsZXJhdGlvbgorICAg
ICAgICB0byBwYW4gdGhlIHZpZXcgaWYgaXQgb3VnaHQgbm90LgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX3Njcm9sbFZpZXc6YWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6dHJhbnNsYXRpb246c3RhcnRQ
b2ludDpsb2NhdGlvbkluVmlldzpob3Jpem9udGFsVmVsb2NpdHk6dmVydGljYWxWZWxvY2l0eTpd
KTogSW1wbGVtZW50IGFuIGFkZGl0aW9uYWwgVUlTY3JvbGxWaWV3CisgICAgICAgIGRlbGVnYXRp
b24gbWV0aG9kIHRvIGFwcGx5IHRoZSBwYW5uaW5nIGNvbnN0cmFpbnRzIHNldCBvbiB0aGUgY29u
dGVudCB2aWV3IHdoaWxlIHBhbm5pbmcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6bWF5SGF2ZVRvdWNoQWN0aW9uc0Zv
clBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tOgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVT
Y3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzp3aXRoVmVsb2NpdHk6
dGFyZ2V0Q29udGVudE9mZnNldDpdKTogQXBwbHkgdGhlIHNhbWUgbG9naWMgYXMgaW4gV0tXZWJW
aWV3LgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xs
Vmlld0RpZEVuZERyYWdnaW5nOndpbGxEZWNlbGVyYXRlOl0pOiBSZXNldCB0aGUgdG91Y2ggYWN0
aW9ucyBmb3IgdGhlIGFzc29jaWF0ZWQgc2Nyb2xsIG5vZGUgdG8gc3RhcnQgdGhlIG5leHQgaW50
ZXJhY3Rpb24KKyAgICAgICAgaW4gdGhlIGRlZmF1bHQgc3RhdGUuCisgICAgICAgICgtW1dLU2Ny
b2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kRGVjZWxlcmF0aW5n
Ol0pOiBSZXNldCB0aGUgdG91Y2ggYWN0aW9ucyBmb3IgdGhlIGFzc29jaWF0ZWQgc2Nyb2xsIG5v
ZGUgdG8gc3RhcnQgdGhlIG5leHQgaW50ZXJhY3Rpb24gaW4gdGhlCisgICAgICAgIGRlZmF1bHQg
c3RhdGUuCisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBfc2Ny
b2xsVmlldzphZGp1c3RlZE9mZnNldEZvck9mZnNldDp0cmFuc2xhdGlvbjpzdGFydFBvaW50Omxv
Y2F0aW9uSW5WaWV3Omhvcml6b250YWxWZWxvY2l0eTp2ZXJ0aWNhbFZlbG9jaXR5Ol0pOiBBcHBs
eSB0aGUgc2FtZSBsb2dpYyBhcyBpbiBXS1dlYlZpZXcuCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzU2Nyb2xsaW5n
T3Jab29taW5nIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4
aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW51cEludGVyYWN0aW9uXSk6IFJlc2V0IHRo
ZSBwYW5uaW5nIHByZXZlbnRpb24gaXZhcnMgdG8gdGhlaXIgZGVmYXVsdCBzdGF0ZS4KKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOl0pOiBBcyB3ZSBw
cm9jZXNzIHRvdWNoZXMsIGNoZWNrIHdoZXRoZXIgdGhlcmUgbWF5IGJlIHRvdWNoIGFjdGlvbnMg
c2V0IGZvciB0aGlzIHRvdWNoJ3MgbG9jYXRpb24sIGFuZCBpZiB3ZSBoYXZlbid0IGV4Y2x1ZGVk
CisgICAgICAgIHRoYXQgcG9zc2liaWxpdHksIGNhbGwgaW50byB0aGUgV2ViIHByb2Nlc3Mgc3lu
Y2hyb25vdXNseSB0byBmaW5kIHdoaWNoIHRvdWNoIGFjdGlvbnMgdGhlc2UgbWlnaHQgYmUgZXhh
Y3RseS4gVGhlbiwgYmFzZWQgb24gdGhvc2UgdG91Y2ggYWN0aW9ucywgZWl0aGVyIHNldERlZmF1
bHRQcmV2ZW50ZWQKKyAgICAgICAgb24gdGhlIF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIg
aWYgdGhlIHRvdWNoIGFjdGlvbiBpcyAibm9uZSIgb3Igc2VsZWN0aXZlbHkgZGlzYWJsZSBwYW5u
aW5nIGFuZCB6b29taW5nIGFzIHdlbGwgYXMgYWxsIHRoZSBvdGhlciB0YXAtcmVsYXRlZCB1c2Vy
IGludGVyYWN0aW9ucy4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVzZXRQYW5uaW5nUHJl
dmVudGlvbkZsYWdzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZEVuZFNjcm9sbGlu
Z09yWm9vbWluZ10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JU
b3VjaEV2ZW50IGNvbnN0KTogQ2hlY2sgYWxsIHRvdWNoIHBvaW50cyBmb3IgYSBnaXZlbiBldmVu
dCB0byBzZWUgaWYgaXQgbWlnaHQgaGF2ZSBhc3NvY2lhdGVkIHRvdWNoIGFjdGlvbnMuIFRoaXMg
Y2hlY2tzIHRoYXQKKyAgICAgICAgdGhlc2UgYXJlIG5ldyB0b3VjaGVzIGFuZCB0aGF0IHRoZWly
IGxvY2F0aW9uIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHRvdWNoIGFjdGlvbiByZWdpb24gY29t
cHV0ZWQgaW4gdGhlIFdlYiBwcm9jZXNzIGFuZCBzZW50IHRvIHRoZSBVSSBwcm9jZXNzLiAKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0b3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KTog
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRv
dWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQpOiBJdGVyYXRlIG92ZXIgYWxsIHRvdWNoIHBvaW50cyBm
b3IgYSBnaXZlbiBldmVudCBhbmQgcmV0dXJuLCBpZiB0aGVyZSBpcyBhIG5vbi1hdXRvIHRvdWNo
IGFjdGlvbiBzZXQsIGNyZWF0ZSBhIHBhaXIgY29uc2lzdGluZyBvZiBhCisgICAgICAgIGxpc3Qg
b2YgdG91Y2gtYWN0aW9ucyBhbmQgdGhlIHNjcm9sbGluZyBub2RlIElEIGZvciB0aGUgbmVhcmVz
dCBzY3JvbGwgbm9kZSB0byB0aGUgZWxlbWVudCB0aGF0IGhpdCB0ZXN0cyBmb3IgdGhpcyBsb2Nh
dGlvbi4KKwogMjAxOS0wMS0xNSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNhaXJvIGJ1aWxkIGZpeC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiOTZm
YTJkZWM0MWU0OWUzMTQxNDJkMGI2NDUyMmJhM2M3OTI0YzZhLi4yOTc4YTY3YTQxZDJlYTM4MzQz
ODc2ZmE4YmU4NmE0ZWZiNTg5NjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTk1MSw2ICszMTk1MSw3IEBACiAJCQkJNDlF
OTEyQUUwRUZBQzkwNjAwOUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjU0REQwODE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2guaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxQjdFRTBEMjFCNUM2ODcwMDMxQzFFRiAvKiBUb3VjaEFjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNzFCN0VFMEQyMUI1QzY4NzAwMzFDMUVGIC8qIFRvdWNoQWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjU0REQwOTE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2hFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY1NEREMEExODgxRDVGNTAwM0VFREJCIC8qIFRvdWNoTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFz
ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmZTVjOTUxYmM2
NGQ2NjJkYWVjNTE1ZjllNDNlYTRlYzkwNGU4MWM2Li5hOThiNDIxNmNhZWM5ZjMzMzZjNDA1MTI2
MDliNzY4NTkxMmQ0YzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOCw2ICsyMDgs
NyBAQAogI2luY2x1ZGUgIlRleHRBdXRvU2l6aW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50Lmgi
CiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5o
IgogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIK
ICNpbmNsdWRlICJVbmRvTWFuYWdlci5oIgpAQCAtNDE0Miw2ICs0MTQzLDEyIEBAIHZvaWQgRG9j
dW1lbnQ6OmludmFsaWRhdGVSZW5kZXJpbmdEZXBlbmRlbnRSZWdpb25zKEFubm90YXRpb25zQWN0
aW9uIGFubm90YXRpb25zCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQogICAgIHNldFRvdWNoRXZlbnRSZWdpb25zTmVlZFVwZGF0ZSgpOworICAgIGlm
IChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZVZp
ZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRv
ciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAgICAgICAgc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0V2ZW50VHJhY2tpbmdSZWdpb25zQ2hhbmdlZCgqZnJh
bWVWaWV3KTsKKyAgICAgICAgfQorICAgIH0KICNlbmRpZgogfQogCkBAIC00NTI2LDYgKzQ1MzMs
MTEgQEAgdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgbm9kZSkKIAogICAg
IGlmIChpczxUZXh0Pihub2RlKSkKICAgICAgICAgbV9tYXJrZXJzLT5yZW1vdmVNYXJrZXJzKCZu
b2RlKTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKG1fdG91Y2hBY3Rpb25F
bGVtZW50cykKKyAgICAgICAgbV90b3VjaEFjdGlvbkVsZW1lbnRzLT5yZW1vdmVBbGwoJm5vZGUp
OworI2VuZGlmCiB9CiAKIHN0YXRpYyBOb2RlKiBmYWxsYmFja0ZvY3VzTmF2aWdhdGlvblN0YXJ0
aW5nTm9kZUFmdGVyUmVtb3ZhbChOb2RlJiBub2RlKQpAQCAtODY0OCw0ICs4NjYwLDMzIEBAIHZv
aWQgRG9jdW1lbnQ6OnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFtZShjb25zdCBTdHJp
bmcmIG5hbWUsIFJlZjxQYWludFdvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCit2b2lkIERvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmIG5vZGUs
IFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBpZiAoIW1fdG91Y2hBY3Rpb25FbGVtZW50cykK
KyAgICAgICAgbV90b3VjaEFjdGlvbkVsZW1lbnRzID0gc3RkOjptYWtlX3VuaXF1ZTxFdmVudFRh
cmdldFNldD4oKTsKKworICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOworCisgICAgaWYgKHN0eWxl
ICYmIHN0eWxlLT50b3VjaEFjdGlvbnMoKSAhPSBUb3VjaEFjdGlvbjo6QXV0bykKKyAgICAgICAg
Y2hhbmdlZCB8PSBtX3RvdWNoQWN0aW9uRWxlbWVudHMtPmFkZCgmbm9kZSkuaXNOZXdFbnRyeTsK
KyAgICBlbHNlCisgICAgICAgIGNoYW5nZWQgfD0gbV90b3VjaEFjdGlvbkVsZW1lbnRzLT5yZW1v
dmVBbGwoJm5vZGUpOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBpZiAoIWNoYW5nZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2Uq
IHBhZ2UgPSB0aGlzLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgaWYgKFNj
cm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVW
aWV3RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFuZ2VkKCpmcmFtZVZpZXcpOworICAgIH0KKyNlbmRp
ZgorfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggZWI0NDU1MWNjYWYzNGEwOWI4OTM3OGFhODcxMzQ5NzcxMzk2ZTMxOS4uODg2ODg4ZWE5
ODRhNzQ3MzYzOWYwZTZlOGIzY2IzYWY5MTUyNjRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTEyNzMsNiArMTI3Myw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAg
IGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJzKCkgY29uc3QgeyByZXR1cm4gKG1fdG91Y2hFdmVu
dFRhcmdldHMuZ2V0KCkpID8gbV90b3VjaEV2ZW50VGFyZ2V0cy0+c2l6ZSgpIDogZmFsc2U7IH0K
ICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29udGFpbihOb2RlJiBub2RlKSBjb25zdCB7IHJl
dHVybiBtX3RvdWNoRXZlbnRUYXJnZXRzID8gbV90b3VjaEV2ZW50VGFyZ2V0cy0+Y29udGFpbnMo
Jm5vZGUpIDogZmFsc2U7IH0KKyAgICB2b2lkIHVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMoTm9k
ZSYsIFJlbmRlclN0eWxlKik7CiAjZWxzZQogICAgIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJz
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29u
dGFpbihOb2RlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEyOTIsNiArMTI5MywxNSBA
QCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICBjb25zdCBFdmVudFRhcmdldFNldCogdG91
Y2hBY3Rpb25FbGVtZW50cygpIGNvbnN0CisgICAgeworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CisgICAgICAgIHJldHVybiBtX3RvdWNoQWN0aW9uRWxlbWVudHMuZ2V0KCk7CisjZWxzZQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorICAgIH0KKwogICAgIGNvbnN0IEV2ZW50VGFy
Z2V0U2V0KiB3aGVlbEV2ZW50VGFyZ2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxFdmVudFRh
cmdldHMuZ2V0KCk7IH0KIAogICAgIHR5cGVkZWYgc3RkOjpwYWlyPFJlZ2lvbiwgYm9vbD4gUmVn
aW9uRml4ZWRQYWlyOwpAQCAtMTg3Myw2ICsxODgzLDcgQEAgcHJpdmF0ZToKICAgICAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudFRhcmdldFNldD4g
bV90b3VjaEV2ZW50VGFyZ2V0czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+
IG1fdG91Y2hBY3Rpb25FbGVtZW50czsKICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVu
dFRhcmdldFNldD4gbV93aGVlbEV2ZW50VGFyZ2V0czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IGRhNWNkMmYwODFjMWU4OGY4MTExZWZmZjMyNmRmMjAyNjQ0NGM0M2EuLjQyZDU1NTE0Mzlk
MDVkNWM3ZWFiYzI0NjFmZTkwZjE2NmY1ZTczZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTgxLDYgKzgxLDggQEAKICNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJGcmFnbWVudENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgi
CisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEJveC5oIgogI2luY2x1ZGUgIlJlbmRl
clRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZVVwZGF0ZXIuaCIKQEAgLTM0MTYsNyArMzQx
OCw3IEBAIHZvaWQgRWxlbWVudDo6c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudChib29sIGZs
YWcpCiAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwogfQogCi1zdGF0
aWMgRWxlbWVudCogcGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoRWxlbWVudCogZWxlbWVu
dCkKK3N0YXRpYyBFbGVtZW50KiBwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmllcyhjb25zdCBF
bGVtZW50KiBlbGVtZW50KQogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICByZXR1cm4gZWxl
bWVudC0+cGFyZW50RWxlbWVudCgpID8gZWxlbWVudC0+cGFyZW50RWxlbWVudCgpIDogZWxlbWVu
dC0+ZG9jdW1lbnQoKS5vd25lckVsZW1lbnQoKTsKQEAgLTQxMjAsNCArNDEyMiw2NiBAQCB2b2lk
IEVsZW1lbnQ6OnNldEF0dHJpYnV0ZVN0eWxlTWFwKFJlZjxTdHlsZVByb3BlcnR5TWFwPiYmIG1h
cCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKK09wdGlvblNldDxUb3Vj
aEFjdGlvbj4gRWxlbWVudDo6Y29tcHV0ZWRUb3VjaEFjdGlvbnMoKSBjb25zdAoreworICAgIE9w
dGlvblNldDxUb3VjaEFjdGlvbj4gY29tcHV0ZWRUb3VjaEFjdGlvbnMgPSBUb3VjaEFjdGlvbjo6
QXV0bzsKKyAgICBmb3IgKGF1dG8qIGVsZW1lbnQgPSB0aGlzOyBlbGVtZW50OyBlbGVtZW50ID0g
cGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZWxlbWVudCkpIHsKKyAgICAgICAgYXV0byog
cmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOworICAgICAgICBpZiAoIXJlbmRlcmVyKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byB0b3VjaEFjdGlvbnMgPSByZW5k
ZXJlci0+c3R5bGUoKS50b3VjaEFjdGlvbnMoKTsKKworICAgICAgICAvLyBPbmNlIHdlJ3ZlIGVu
Y291bnRlcmVkIHRvdWNoLWFjdGlvbjogbm9uZSwgd2Uga25vdyB0aGF0IHRoaXMgd2lsbCBiZSB0
aGUgY29tcHV0ZWQgdmFsdWUuCisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rp
b246Ok5vbmUpCisgICAgICAgICAgICByZXR1cm4gdG91Y2hBY3Rpb25zOworCisgICAgICAgIC8v
IElmIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gc28gZmFyIHdhcyAiYXV0byIsIHdlIGNhbiBq
dXN0IHVzZSB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uLgorICAgICAgICBpZiAo
Y29tcHV0ZWRUb3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246OkF1dG8pIHsKKyAgICAgICAgICAg
IGNvbXB1dGVkVG91Y2hBY3Rpb25zID0gdG91Y2hBY3Rpb25zOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGhhcyB0
b3VjaC1hY3Rpb246IGF1dG8gb3IgdGhlIHNhbWUgdG91Y2gtYWN0aW9uIGFzIHRoZSBjb21wdXRl
ZCB0b3VjaC1hY3Rpb24sCisgICAgICAgIC8vIHdlIG5lZWQgdG8ga2VlcCBnb2luZyB1cCB0aGUg
YW5jZXN0cnkgY2hhaW4uCisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246
OkF1dG8gfHwgdG91Y2hBY3Rpb25zID09IGNvbXB1dGVkVG91Y2hBY3Rpb25zKQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgLy8gTm93LCB0aGUgZWxlbWVudCdzIHRvdWNoLWFjdGlv
biBhbmQgdGhlIGNvbXB1dGVkIHRvdWNoLWFjdGlvbiBhcmUgZGlmZmVyZW50IGFuZCBhcmUgbmVp
dGhlciAiYXV0byIgbm9yICJub25lIi4KKyAgICAgICAgaWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25z
ID09IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBj
b21wdXRlZCB0b3VjaC1hY3Rpb24gaXMgIm1hbmlwdWxhdGlvbiIsIHdlIGNhbiB0YWtlIHRoZSBj
dXJyZW50IGVsZW1lbnQncyB0b3VjaC1hY3Rpb24gYXMgdGhlIG5ld2x5CisgICAgICAgICAgICAv
LyBjb21wdXRlZCB0b3VjaC1hY3Rpb24uCisgICAgICAgICAgICBjb21wdXRlZFRvdWNoQWN0aW9u
cyA9IHRvdWNoQWN0aW9uczsKKyAgICAgICAgfSBlbHNlIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91
Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgeworICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBo
YXZlIGEgcmVzdHJpY3RlZCBjb21wdXRlZCB0b3VjaC1hY3Rpb24gc28gZmFyLiBJZiB0aGUgY3Vy
cmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uIGlzICJtYW5pcHVsYXRpb24iCisgICAgICAgICAg
ICAvLyB0aGVuIHdlIGNhbiBqdXN0IGtlZXAgZ29pbmcgYW5kIGxlYXZlIHRoZSBjb21wdXRlZCB0
b3VjaC1hY3Rpb24gdW50b3VjaGVkLgorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0K
KworICAgICAgICAvLyBJbiBhbnkgb3RoZXIgY2FzZSwgd2UgaGF2ZSBjb21wZXRpbmcgcmVzdHJp
Y3RpdmUgdG91Y2gtYWN0aW9uIHZhbHVlcyB0aGF0IGNhbiBvbmx5IHlpZWxkICJub25lIi4KKyAg
ICAgICAgcmV0dXJuIFRvdWNoQWN0aW9uOjpOb25lOworICAgIH0KKyAgICByZXR1cm4gY29tcHV0
ZWRUb3VjaEFjdGlvbnM7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcpCitTY3JvbGxpbmdOb2RlSUQgRWxlbWVudDo6bmVhcmVzdFNjcm9sbGlu
Z05vZGVJRFVzaW5nVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIGNvbnN0Cit7CisgICAgaWYgKCFy
ZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIFdlIGFyZSBub3QgaW50ZXJl
c3RlZCBpbiB0aGUgcm9vdCwgc28gY2hlY2sgdGhhdCB3ZSBhbHNvIGhhdmUgYSB2YWxpZCBwYXJl
bnQuCisgICAgZm9yIChhdXRvKiBsYXllciA9IHJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCk7
IGxheWVyICYmIGxheWVyLT5wYXJlbnQoKTsgbGF5ZXIgPSBsYXllci0+cGFyZW50KCkpIHsKKyAg
ICAgICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8g
c2Nyb2xsaW5nTm9kZUlEID0gbGF5ZXItPmJhY2tpbmcoKS0+c2Nyb2xsaW5nTm9kZUlERm9yUm9s
ZShTY3JvbGxDb29yZGluYXRpb25Sb2xlOjpTY3JvbGxpbmcpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBzY3JvbGxpbmdOb2RlSUQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRl
eCAxNjlmZGUxM2FkYjYyNzA0MWZkZDhiNWU2ZjViOGYyYWRjYjM4NmYzLi5lZDcyNmM5NWI5MjE1
MDUxMGE3NTU1NzQ1ZDAyNTdkODRiYzUxMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRl
ICJTY3JvbGxUb09wdGlvbnMuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUg
IlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdE1vZGUuaCIKICNp
bmNsdWRlICJTaW11bGF0ZWRDbGlja09wdGlvbnMuaCIKICNpbmNsdWRlICJTdHlsZUNoYW5nZS5o
IgpAQCAtNTYsNiArNTcsNyBAQCBjbGFzcyBQc2V1ZG9FbGVtZW50OwogY2xhc3MgUmVuZGVyVHJl
ZVBvc2l0aW9uOwogY2xhc3MgU3R5bGVQcm9wZXJ0eU1hcDsKIGNsYXNzIFdlYkFuaW1hdGlvbjsK
K2VudW0gY2xhc3MgVG91Y2hBY3Rpb24gOiB1aW50OF90Owogc3RydWN0IEVsZW1lbnRTdHlsZTsK
IHN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnM7CiAKQEAgLTU4OCw2ICs1OTAsMTQgQEAgcHVi
bGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmltYXRlKEpTQzo6RXhl
Y1N0YXRlJiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mJiwgT3B0aW9uYWw8VmFyaWFudDxk
b3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+JiYpOwogICAgIFZlY3RvcjxSZWZQdHI8
V2ViQW5pbWF0aW9uPj4gZ2V0QW5pbWF0aW9ucygpOwogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVkVG91
Y2hBY3Rpb25zKCkgY29uc3Q7CisjZW5kaWYKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcpCisgICAgV0VCQ09SRV9FWFBPUlQgU2Nyb2xsaW5nTm9kZUlEIG5lYXJl
c3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmLCBDb25zdHJ1Y3Rpb25UeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGNiODczODM5NmEz
YTU4ZWY0NTIwZWU1NDhjZjgzMWViNDE1NDcxYjguLjljYTc4NTlhYWYwZTMzZWE3YzIyYmNhZGEx
NTA5NmY4YzM0YzVkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTk5LDcgKzk5LDI1IEBAIEV2ZW50VHJh
Y2tpbmdSZWdpb25zIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNvbHV0ZUV2ZW50VHJhY2tpbmdS
ZWdpb25zRm9yRnJhbWUoCiAgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpOwog
ICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFdmVudFRyYWNraW5nUmVnaW9ucygp
OwotICAgIHJldHVybiBkb2N1bWVudC0+ZXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsKKyAgICBhdXRv
IGV2ZW50VHJhY2tpbmdSZWdpb25zID0gZG9jdW1lbnQtPmV2ZW50VHJhY2tpbmdSZWdpb25zKCk7
CisgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25SZWdpb24gPSBmcmFtZS5kb2N1
bWVudCgpLT5hYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhmcmFtZS5kb2N1bWVudCgpLT50
b3VjaEFjdGlvbkVsZW1lbnRzKCkpLmZpcnN0OworCisgICAgZm9yIChhdXRvKiBzdWJmcmFtZSA9
IGZyYW1lLnRyZWUoKS5maXJzdENoaWxkKCk7IHN1YmZyYW1lOyBzdWJmcmFtZSA9IHN1YmZyYW1l
LT50cmVlKCkubmV4dFNpYmxpbmcoKSkgeworICAgICAgICBhdXRvKiBzdWJmcmFtZVZpZXcgPSBz
dWJmcmFtZS0+dmlldygpOworICAgICAgICBpZiAoIXN1YmZyYW1lVmlldykKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIGlmIChhdXRvKiBzdWJmcmFtZURvY3VtZW50ID0gc3ViZnJh
bWUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIGF1dG8gc3ViZnJhbWVSZWdpb24gPSBzdWJm
cmFtZURvY3VtZW50LT5hYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhzdWJmcmFtZURvY3Vt
ZW50LT50b3VjaEFjdGlvbkVsZW1lbnRzKCkpLmZpcnN0OworICAgICAgICAgICAgLy8gTWFwIGZy
b20gdGhlIGZyYW1lIGRvY3VtZW50IHRvIG91ciBkb2N1bWVudC4KKyAgICAgICAgICAgIGF1dG8g
b2Zmc2V0ID0gc3ViZnJhbWVWaWV3LT5jb250ZW50c1RvQ29udGFpbmluZ1ZpZXdDb250ZW50cyhJ
bnRQb2ludCgpKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiB0aGlzIHRyYW5zbGF0aW9uIGlnbm9y
ZXMgbm9uLXRyaXZhbCB0cmFuc2Zvcm1zIG9uIHRoZSBmcmFtZS4KKyAgICAgICAgICAgIHN1YmZy
YW1lUmVnaW9uLnRyYW5zbGF0ZSh0b0ludFNpemUob2Zmc2V0KSk7CisgICAgICAgICAgICBldmVu
dFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvblJlZ2lvbi51bml0ZShzdWJmcmFtZVJlZ2lvbik7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAj
ZWxzZQogICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKICAgICBpZiAoIWZyYW1l
VmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHAKaW5kZXggNTI0MzkzZGQxNmFhNjM3ZmYxNjFkNjc1YjgwZmZkOTRlN2FhMTUwMC4uMzNhMmZm
YjdjNzQ3ZTYzMWRlMjkzOTY0OTI2YzkwMWU1ZGNiZDdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTI0Nyw2ICsyNDcsMTEgQEAg
VHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudE4KICAgICByZXR1cm4gbV9ldmVudFRyYWNraW5nUmVnaW9u
cy50cmFja2luZ1R5cGVGb3JQb2ludChldmVudE5hbWUsIHApOwogfQogCitib29sIFNjcm9sbGlu
Z1RyZWU6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChjb25zdCBJbnRQb2ludCBwKSBjb25z
dAoreworICAgIHJldHVybiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9uUmVnaW9u
LmNvbnRhaW5zKHApOworfQorCiBib29sIFNjcm9sbGluZ1RyZWU6OmlzUnViYmVyQmFuZEluUHJv
Z3Jlc3MoKQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsgICAgCkBAIC00MDMsNiAr
NDA4LDEyIEBAIFN0cmluZyBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkKICAg
ICByZXR1cm4gdHMucmVsZWFzZSgpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWU6OnNldFRvdWNo
QWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0
aW9ucywgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBpZiAoYXV0byog
c2Nyb2xsaW5nVHJlZU5vZGUgPSBub2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAg
c2Nyb2xsaW5nVHJlZU5vZGUtPnNldFRvdWNoQWN0aW9ucyh0b3VjaEFjdGlvbnMpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4
IGVmYzY4NDE1YzM5NDMwZGY3ZjI3MDQzZmU5ODIzMzI3NzU1Njc2MzIuLjM2OTMzMzJlYjM2ZWYx
ZDlhOGE0NDBlNTc3ZGJkYmNjNzAwMzliOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJQbGF0
Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3JvbGxp
bmdDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAiV2hl
ZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgpAQCAtMTA0LDcgKzEwNSw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAg
V0VCQ09SRV9FWFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50KTsKLSAgICAKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIG1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChjb25zdCBJbnRQb2ludCkg
Y29uc3Q7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVs
RXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIC8q
aG9yaXpvbnRhbEluZGV4Ki8sIHVuc2lnbmVkIC8qdmVydGljYWxJbmRleCovKSB7IH0KQEAgLTE1
MSw2ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBzY3JvbGxpbmdUcmVlQXNUZXh0KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRU
b3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiwgU2Ny
b2xsaW5nTm9kZUlEKTsKICAgICAKIHByb3RlY3RlZDoKICAgICB2b2lkIHNldE1haW5GcmFtZVNj
cm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5kZXggYmY3ZjYxYTM2MWI5M2I0N2RmZTQzNGUw
NWY5MzI4OGNjZjU5MGJiNi4uZmFiN2Y0YWU2MTVlYTZjMzgxZTViZjc2YjVhOTAyMTNmMzAyYWI1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
Tm9kZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNs
dWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlTm9k
ZS5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAKQEAgLTcwLDYgKzcxLDkgQEAgcHVibGlj
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wKFdURjo6VGV4dFN0cmVhbSYsIFNjcm9s
bGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKIAorICAgIE9wdGlvblNldDxUb3Vj
aEFjdGlvbj4gdG91Y2hBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbnM7IH0K
KyAgICB2b2lkIHNldFRvdWNoQWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0
aW9ucykgeyBtX3RvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQpOwogICAgIFNjcm9sbGluZ1RyZWUmIHNjcm9sbGluZ1RyZWUoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGluZ1RyZWU7IH0KQEAgLTg1LDYgKzg5LDcgQEAgcHJpdmF0ZToK
ICAgICBjb25zdCBTY3JvbGxpbmdOb2RlSUQgbV9ub2RlSUQ7CiAKICAgICBTY3JvbGxpbmdUcmVl
Tm9kZSogbV9wYXJlbnQ7CisgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBtX3RvdWNoQWN0aW9u
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcAppbmRleCA3ZTc2M2M4OTUzZGNhOGU2ZGQ3
Y2FjYWQ2MjUyNDA3YzcwYzVmODYzLi45ZmJlMTAwOGExMzZkYjMzZmExYjg0MTk1YjMwNGU1MzZi
NTIwOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5n
UmVnaW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuY3BwCkBAIC03Myw3ICs3Myw4IEBAIHZvaWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnVu
aXRlKGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9uCiBib29s
IG9wZXJhdG9yPT0oY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGEsIGNvbnN0IEV2ZW50VHJh
Y2tpbmdSZWdpb25zJiBiKQogewogICAgIHJldHVybiBhLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9uID09IGIuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24KLSAgICAgICAgJiYgYS5ldmVudFNw
ZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5ldmVudFNwZWNpZmljU3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbnM7CisgICAgICAgICYmIGEuZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zID09IGIuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb25zCisgICAgICAgICYmIGEudG91Y2hBY3Rpb25SZWdpb24gPT0gYi50b3VjaEFjdGlvblJl
Z2lvbjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKaW5kZXggM2Q1OGJhNTVlZmQ2M2VkOWJhZTQw
NTAxZTMwOWI4NjFmYzllOWMwNS4uYmJjZGJkYTNhYWE2ZmQxZGExMWM4NjRjMWNiNzdhYjExNjdj
NDNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9u
cy5oCkBAIC00Niw2ICs0Niw4IEBAIHN0cnVjdCBFdmVudFRyYWNraW5nUmVnaW9ucyB7CiAgICAg
Ly8gVGhlIGtleSBpcyB0aGUgRXZlbnQgTmFtZSB3aXRoIGFuIGFjdGl2ZSBoYW5kbGVyLgogICAg
IEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uczsKIAorICAgIFJlZ2lvbiB0b3VjaEFjdGlvblJlZ2lvbjsKKwogICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0OwogCiAgICAgdm9pZCB0cmFuc2xhdGUoSW50U2l6ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggMzRmOGYzYzNjODZlM2ZkZjk1
ZjE4NjA2YjZhY2E2MTMyZTVkOGVlMy4uOTA5MTcxMzk3MTNiM2FjZGMzMmJmMmM1ZDZiZTc1NTdk
MGIxNmZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApA
QCAtMjMyLDYgKzIzMiwxMCBAQCBFbGVtZW50VXBkYXRlcyBUcmVlUmVzb2x2ZXI6OnJlc29sdmVF
bGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgYXV0byBiZWZvcmVVcGRhdGUgPSByZXNvbHZl
UHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBQc2V1ZG9JZDo6QmVmb3JlKTsKICAgICBhdXRv
IGFmdGVyVXBkYXRlID0gcmVzb2x2ZVBzZXVkb1N0eWxlKGVsZW1lbnQsIHVwZGF0ZSwgUHNldWRv
SWQ6OkFmdGVyKTsKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgbV9kb2N1bWVudC51
cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKGVsZW1lbnQsIHVwZGF0ZS5zdHlsZS5nZXQoKSk7Cisj
ZW5kaWYKKwogICAgIHJldHVybiB7IFdURk1vdmUodXBkYXRlKSwgZGVzY2VuZGFudHNUb1Jlc29s
dmUsIFdURk1vdmUoYmVmb3JlVXBkYXRlKSwgV1RGTW92ZShhZnRlclVwZGF0ZSkgfTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYzc3NGJjNDFjODI5
NGYwODExNjcxZDZiNzRjYTg2ZDQ4ZWUxNzk0NC4uN2E0NzVhMTYzOGM2MGVlYjUzYjE3MmU4ZGYw
MmU1ZGRjMDlhOGFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC00MjIsNiArNDIyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAg
ICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gnOiBbJzxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5JzogWyc8V2ViQ29yZS9BdWRp
b1Nlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAorICAgICAgICAnV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlEJzogWyc8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRvci5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInOiBbJzxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlck9yQ2xpZW50RGF0YSc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+Jywg
JzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+JywgJzxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJ
ZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nLCAnPFdlYkNvcmUv
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDNiMDUyOWE0YTk1OWEyM2JkNWQw
NDBmNWZhMDA4YWQ3YjBmZWM3MWYuLjE2NDk1M2JjYjYxYTk0YjNmNDNmOWU1ZjI4ZjE2MmE5Mzdj
NWQwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcApAQCAtMzMzLDYgKzMzMyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5n
UmVnaW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFdmVudFRyCiB7CiAgICAg
ZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lv
bjsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKKyAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdp
b25zLnRvdWNoQWN0aW9uUmVnaW9uOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFj
a2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZlbnRUcmFja2luZ1JlZ2lv
bnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQpAQCAtMzQzLDggKzM0NCwxMiBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
RXZlbnRUcmFja2luZwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNT
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGV2ZW50
U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBSZWdpb24gdG91Y2hBY3Rpb25SZWdpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZSh0b3VjaEFjdGlvblJlZ2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBldmVudFRy
YWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IFdURk1vdmUoYXN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb24pOwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3Bl
Y2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9IFdURk1vdmUoZXZlbnRTcGVjaWZpY1N5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKTsKKyAgICBldmVudFRyYWNraW5nUmVnaW9ucy50b3Vj
aEFjdGlvblJlZ2lvbiA9IFdURk1vdmUodG91Y2hBY3Rpb25SZWdpb24pOwogICAgIHJldHVybiB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCAwNzRjZGRmZDI3ODRlODY5MTI4ZDAyMGJlZDU5MjEzYTFjYmRkZTY4Li4wZmRl
NzgxYzU3ODE4ZDczY2JjNDAyODhkYWMwZTFiNzk1ZDlkMzI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI1ODAsNiArMjU4MCwxMiBA
QCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9s
bFZpZXcgd2l0aFZlbG9jaXR5OihDR1BvaQogICAgIC8vIHpvb21pbmcuIFdlJ2xsIGFuaW1hdGUg
dG8gdGhlIHJpZ2h0IHBsYWNlIG9uY2UgdGhlIHpvb20gZmluaXNoZXMuCiAgICAgaWYgKFtzY3Jv
bGxWaWV3IGlzWm9vbWluZ10pCiAgICAgICAgICp0YXJnZXRDb250ZW50T2Zmc2V0ID0gW3Njcm9s
bFZpZXcgY29udGVudE9mZnNldF07CisgICAgZWxzZSB7CisgICAgICAgIGlmIChbX2NvbnRlbnRW
aWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKQorICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9m
ZnNldC0+eCA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNldC54OworICAgICAgICBpZiAoW19jb250
ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSkKKyAgICAgICAgICAgIHRhcmdldENvbnRl
bnRPZmZzZXQtPnkgPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueTsKKyAgICB9CiAjaWYgRU5B
QkxFKENTU19TQ1JPTExfU05BUCkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBpZiAo
V2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9w
YWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkpIHsKICAgICAgICAgLy8gRklYTUU6IEhl
cmUsIEknbSBmaW5kaW5nIHRoZSBtYXhpbXVtIGhvcml6b250YWwvdmVydGljYWwgc2Nyb2xsIG9m
ZnNldHMuIFRoZXJlJ3MgcHJvYmFibHkgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMuCkBAIC0yNjE3
LDYgKzI2MjMsMjAgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xsVG9Ub3A6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsKIH0KIAor
LSAoQ0dQb2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3Rl
ZE9mZnNldEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJh
bnNsYXRpb24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2lu
dClsb2NhdGlvbkluVmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZl
cnRpY2FsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7CisgICAgaWYgKCFbX2NvbnRlbnRW
aWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdICYmICFbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFu
bmluZ0luWUF4aXNdKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAgQ0dQb2ludCBhZGp1
c3RlZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShvZmZzZXQueCwgb2Zmc2V0LnkpOworICAg
IGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKQorICAgICAgICBhZGp1
c3RlZENvbnRlbnRPZmZzZXQueCA9IHN0YXJ0Lng7CisgICAgaWYgKFtfY29udGVudFZpZXcgcHJl
dmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC55ID0g
c3RhcnQueTsKKworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisKIC0gKHZv
aWQpc2Nyb2xsVmlld0RpZFNjcm9sbDooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAg
IGlmICghW3NlbGYgdXNlc1N0YW5kYXJkQ29udGVudFZpZXddICYmIFtfY3VzdG9tQ29udGVudFZp
ZXcgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJfc2Nyb2xsVmlld0RpZFNjcm9sbDop
XSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApp
bmRleCBhMzY3ZTE1ZjAwNTM2ZjhjYjVjODUwOTA3YWI0M2E3YzMxNjY3MzBhLi4xYzJhNTUxZjMw
Nzc0Nzg5MmQwNzg3OTIwYzJmZWI3NmRjZjdhOTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xNjQsNiArMTY0LDExIEBAIFRyYWNr
aW5nVHlwZSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpldmVudFRyYWNraW5nVHlw
ZUZvclBvaW50KGNvbnN0IEF0CiAgICAgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZS0+ZXZlbnRUcmFj
a2luZ1R5cGVGb3JQb2ludChldmVudE5hbWUsIHApOwogfQogCitib29sIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChJbnRQb2ludCBw
KSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGluZ1RyZWUtPm1heUhhdmVUb3VjaEFjdGlv
bnNGb3JQb2ludChwKTsKK30KKwogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
Ojp2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlEIG5v
ZGVJRCwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlKQog
ewogICAgIG1fc2Nyb2xsaW5nVHJlZS0+dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xs
aW5nKG5vZGVJRCwgZml4ZWRQb3NpdGlvblJlY3QsIHNjYWxlKTsKQEAgLTIwNSw2ICsyMTAsMTIg
QEAgU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVB
c1RleHQoKSBjb25zdAogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCit2b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05v
ZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9kZUlE
IHNjcm9sbGluZ05vZGVJRCkKK3sKKworICAgIG1fc2Nyb2xsaW5nVHJlZS0+c2V0VG91Y2hBY3Rp
b25zRm9yU2Nyb2xsaW5nTm9kZUlEKHRvdWNoQWN0aW9ucywgc2Nyb2xsaW5nTm9kZUlEKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5k
ZXggYjMyZDc5ZmU5Mjg5YjE0NTdjOGVhZDJkOGQzNWMzYjc5ZGFlYzk2YS4uYzY5ODcyOWNiNzll
N2Q4MDc1ZTI1NjJjYjRhZGQ3ZmQyYmVkYThhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAogICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSBl
dmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBX
ZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CisgICAgYm9vbCBtYXlIYXZlVG91Y2hBY3Rpb25zRm9y
UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OwogCiAgICAgLy8gQ2FsbGVkIGV4dGVybmFs
bHkgd2hlbiBuYXRpdmUgdmlld3MgbW92ZSBhcm91bmQuCiAgICAgdm9pZCB2aWV3cG9ydENoYW5n
ZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpOwpAQCAt
OTcsNiArOTgsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFN0cmluZyBzY3JvbGxpbmdUcmVl
QXNUZXh0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2Rl
SUQoT3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlEKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbm5lY3RTdGF0ZU5vZGVMYXllcnMoV2ViQ29y
ZTo6U2Nyb2xsaW5nU3RhdGVUcmVlJiwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlSG9zdCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tCmluZGV4IDRjYzdlMWE4N2I4NWFjNzA2MzdlMTVmNDRjYzFlNGY4ZjkyMTljNGMu
LjE4MTNlZWZkYWRhNDE4NjgyOTNhMTcyMThhNDZmZmVjMjQxZjliMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1Mu
bW0KQEAgLTY3LDkgKzY3LDI1IEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxCZWdpbkRyYWdnaW5n
OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdh
dGUtPnNjcm9sbFdpbGxTdGFydCgpOwogfQogCi0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkK
IC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xs
VmlldyB3aXRoVmVsb2NpdHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDoo
aW5vdXQgQ0dQb2ludCAqKXRhcmdldENvbnRlbnRPZmZzZXQKIHsKKyAgICBpZiAoIVtzY3JvbGxW
aWV3IGlzWm9vbWluZ10pIHsKKyAgICAgICAgYXV0byB0b3VjaEFjdGlvbnMgPSBfc2Nyb2xsaW5n
VHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnRvdWNoQWN0aW9ucygpOworICAgICAg
ICBpZiAodG91Y2hBY3Rpb25zICE9IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvICYmIHRvdWNo
QWN0aW9ucyAhPSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKSB7CisgICAgICAg
ICAgICBib29sIGNhblBhblggPSB0cnVlOworICAgICAgICAgICAgYm9vbCBjYW5QYW5ZID0gdHJ1
ZTsKKyAgICAgICAgICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNo
QWN0aW9uOjpQYW5YKSkgeworICAgICAgICAgICAgICAgIGNhblBhblggPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICB0YXJnZXRDb250ZW50T2Zmc2V0LT54ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zm
c2V0Lng7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250
YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWSkpIHsKKyAgICAgICAgICAgICAgICBjYW5Q
YW5ZID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eSA9IHNj
cm9sbFZpZXcuY29udGVudE9mZnNldC55OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorCisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBDR0Zsb2F0IGhvcml6b250YWxU
YXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT54OwogICAgIENHRmxvYXQgdmVydGljYWxUYXJn
ZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT55OwogCkBAIC05Niw4ICsxMTIsOCBAQCAtICh2b2lk
KXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0
aFZlbG9jaXR5OihDR1BvaQogICAgICAgICB8fCBvcmlnaW5hbFZlcnRpY2FsU25hcFBvc2l0aW9u
ICE9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudFZl
cnRpY2FsU25hcFBvaW50SW5kZXgoKSkgewogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxl
Z2F0ZS0+Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoX3Njcm9sbGluZ1RyZWVOb2Rl
RGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5jdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4
KCksIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudFZl
cnRpY2FsU25hcFBvaW50SW5kZXgoKSk7CiAgICAgfQotfQogI2VuZGlmCit9CiAKIC0gKHZvaWQp
c2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxE
ZWNlbGVyYXRlOihCT09MKXdpbGxEZWNlbGVyYXRlCiB7CkBAIC0xMDUsNiArMTIxLDcgQEAgLSAo
dm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcg
d2lsbERlY2VsZXJhdGU6KEJPT0wKICAgICAgICAgX2luVXNlckludGVyYWN0aW9uID0gTk87CiAg
ICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNj
cm9sbFZpZXcuY29udGVudE9mZnNldCwgX2luVXNlckludGVyYWN0aW9uKTsKICAgICAgICAgX3Nj
cm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbERpZEVuZCgpOworICAgICAgICBfc2Nyb2xs
aW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnNldFRvdWNoQWN0aW9ucyhXZWJD
b3JlOjpUb3VjaEFjdGlvbjo6QXV0byk7CiAgICAgfQogfQogCkBAIC0xMTQsOSArMTMxLDMyIEBA
IC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Ny
b2xsVmlldwogICAgICAgICBfaW5Vc2VySW50ZXJhY3Rpb24gPSBOTzsKICAgICAgICAgX3Njcm9s
bGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmlldy5jb250
ZW50T2Zmc2V0LCBfaW5Vc2VySW50ZXJhY3Rpb24pOwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5v
ZGVEZWxlZ2F0ZS0+c2Nyb2xsRGlkRW5kKCk7CisgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURl
bGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuc2V0VG91Y2hBY3Rpb25zKFdlYkNvcmU6OlRvdWNoQWN0
aW9uOjpBdXRvKTsKICAgICB9CiB9CiAKKy0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0
IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3Rh
cnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9j
aXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2
dgoreworICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUt
PnNjcm9sbGluZ05vZGUoKS50b3VjaEFjdGlvbnMoKTsKKyAgICBpZiAodG91Y2hBY3Rpb25zID09
IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvIHx8IHRvdWNoQWN0aW9ucyA9PSBXZWJDb3JlOjpU
b3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAg
Q0dQb2ludCBhZGp1c3RlZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShvZmZzZXQueCwgb2Zm
c2V0LnkpOworCisgICAgYm9vbCBjYW5QYW5YID0gdHJ1ZTsKKyAgICBib29sIGNhblBhblkgPSB0
cnVlOworICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9u
OjpQYW5YKSkgeworICAgICAgICBhZGp1c3RlZENvbnRlbnRPZmZzZXQueCA9IHN0YXJ0Lng7Cisg
ICAgICAgIGNhblBhblggPSBmYWxzZTsKKyAgICB9CisgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29u
dGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblkpKSB7CisgICAgICAgIGFkanVzdGVkQ29u
dGVudE9mZnNldC55ID0gc3RhcnQueTsKKyAgICAgICAgY2FuUGFuWSA9IGZhbHNlOworICAgIH0K
KworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisKIEBlbmQKIAogbmFtZXNw
YWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGRl
OTg2OTRhYTM3ZGIzYzdmMmNlMjdjYzgyOWE5MjAwMjExZGUxMGQuLjU2YzRjNmZlMGFmNDA0MjUz
ZThjYmFiYjg3NGJhODEzYzgyZmE1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC04MSw5ICs4MSwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQcm9kdWNl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRv
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9UZXh0Q2hlY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRHcmFudWxhcml0eS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Vz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC02ODAsNiArNjgyLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uKTsKICAgICB2b2lkIHJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbik7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJh
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+KTsKK2Jvb2wgaXNTY3Jv
bGxpbmdPclpvb21pbmcoKSBjb25zdCB7IHJldHVybiBtX2lzU2Nyb2xsaW5nT3Jab29taW5nOyB9
CiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKQEAgLTExNTYsNiAr
MTE1OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2
b2lkIHRhcEhpZ2hsaWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIHVp
bnQ2NF90JiByZXF1ZXN0SUQpOwogICAgIHZvaWQgaGFuZGxlVGFwKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmLCB1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFy
dCk7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBib29sIG1heUhhdmVUb3VjaEFjdGlv
bnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmKSBjb25zdDsKKyAgICBWZWN0b3I8
c3RkOjpwYWlyPE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4sIFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVJRD4+IHRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVu
dCYpOworI2VuZGlmCiAKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRp
b24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNl
YXJjaEVuZGVkQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKaW5kZXggYTdmZmZmNzhmMzBhNzBmNGZjNTkwZDcwNWExZDE5ZTNhMzg4MWJlZi4uZDY4OGEx
MTIwZmI5ZDdhNDViNGFmYWRkMWM3ODk3OGRiODNiNWM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMTk2
LDYgKzE5Niw4IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgUmV0YWluUHRy
PFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRXZlbnRHZXN0dXJlUmVj
b2duaXplcjsKIAogICAgIEJPT0wgX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5Owor
ICAgIEJPT0wgX3ByZXZlbnRzUGFubmluZ0luWEF4aXM7CisgICAgQk9PTCBfcHJldmVudHNQYW5u
aW5nSW5ZQXhpczsKIAogICAgIFJldGFpblB0cjxXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJl
Y29nbml6ZXI+IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8X1VJ
V2ViSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI+IF9oaWdobGlnaHRMb25nUHJl
c3NHZXN0dXJlUmVjb2duaXplcjsKQEAgLTM0OSw2ICszNTEsOCBAQCBzdHJ1Y3QgV0tBdXRvQ29y
cmVjdGlvbkRhdGEgewogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBjb25zdCBXZWJL
aXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb247
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJV2ViRm9ybUFjY2Vzc29yeSAqZm9y
bUFjY2Vzc29yeVZpZXc7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVGV4dElu
cHV0QXNzaXN0YW50SXRlbSAqaW5wdXRBc3Npc3RhbnRJdGVtRm9yV2ViVmlldzsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZlbnRzUGFubmluZ0luWUF4aXM7
CiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcpIFVJVmlldyA8V0tGb3JtQ29udHJvbD4gKmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zSW5w
dXRWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggM2U1MjkyYTc4YzJhY2Y0NjFhNjgyOTNiM2FhYzQy
MmM5MGQ3YjNjNS4uOWM1ZWZiMGJkMGEyMWE2ZTViMzczNTA4ZmIxMmMyNzI3NGYzOTQwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50LmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJUb3VjaEV2ZW50LmgiCiAjaW1wb3J0ICJSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCisjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmgiCiAjaW1wb3J0ICJTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVy
LmgiCiAjaW1wb3J0ICJUZXh0SW5wdXRTUEkuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCkBAIC05
MSw2ICs5Miw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGJhci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TaGFyZURhdGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgorI2lt
cG9ydCA8V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9WaXNpYmxlU2Vs
ZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dyaXRpbmdEaXJlY3Rpb24uaD4KQEAgLTYxNSw2ICs2MTcsMTYgQEAgc3RhdGljIGlubGluZSBi
b29sIGhhc0ZvY3VzZWRFbGVtZW50KFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiBm
b2N1c2VkRWwKICAgICByZXR1cm4gKGZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5
cGUgIT0gV2ViS2l0OjpJbnB1dFR5cGU6Ok5vbmUpOwogfQogCistIChCT09MKXByZXZlbnRzUGFu
bmluZ0luWEF4aXMKK3sKKyAgICByZXR1cm4gX3ByZXZlbnRzUGFubmluZ0luWEF4aXM7Cit9CisK
Ky0gKEJPT0wpcHJldmVudHNQYW5uaW5nSW5ZQXhpcworeworICAgIHJldHVybiBfcHJldmVudHNQ
YW5uaW5nSW5ZQXhpczsKK30KKwogLSAoV0tGb3JtSW5wdXRTZXNzaW9uICopX2Zvcm1JbnB1dFNl
c3Npb24KIHsKICAgICByZXR1cm4gX2Zvcm1JbnB1dFNlc3Npb24uZ2V0KCk7CkBAIC04NjEsNiAr
ODczLDkgQEAgLSAodm9pZCljbGVhbnVwSW50ZXJhY3Rpb24KICAgICBfaGFzU2V0VXBJbnRlcmFj
dGlvbnMgPSBOTzsKICAgICBfc3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25zID0geyB9
OwogICAgIF9pc1pvb21pbmdUb1JldmVhbEZvY3VzZWRFbGVtZW50ID0gTk87CisKKyAgICBfcHJl
dmVudHNQYW5uaW5nSW5YQXhpcyA9IE5POworICAgIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzID0g
Tk87CiB9CiAKIC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKQEAgLTEx
MjgsMTYgKzExNDMsNTYgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihVSVdl
YlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKICAgICBXZWJLaXQ6Ok5h
dGl2ZVdlYlRvdWNoRXZlbnQgbmF0aXZlV2ViVG91Y2hFdmVudChsYXN0VG91Y2hFdmVudCk7CiAg
ICAgbmF0aXZlV2ViVG91Y2hFdmVudC5zZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoIV9jYW5T
ZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSB8fCBbZ2VzdHVyZVJlY29nbml6ZXIgaXNEZWZh
dWx0UHJldmVudGVkXSk7CiAKKyAgICBpZiAoX3BhZ2UtPm1heUhhdmVUb3VjaEFjdGlvbnNGb3JU
b3VjaEV2ZW50KG5hdGl2ZVdlYlRvdWNoRXZlbnQpKSB7CisgICAgICAgIGZvciAoYXV0byB0b3Vj
aEFjdGlvbnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyIDogX3BhZ2UtPnRvdWNoQWN0aW9uc0ZvclRv
dWNoRXZlbnQobmF0aXZlV2ViVG91Y2hFdmVudCkpIHsKKyAgICAgICAgICAgIGF1dG8gdG91Y2hB
Y3Rpb25zID0gdG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpci5maXJzdDsKKyAgICAg
ICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok5vbmUpCisg
ICAgICAgICAgICAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVmYXVsdFBy
ZXZlbnRlZDpZRVNdOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gRGlz
YWJsZSBhbGwgdGFwLXJlbGF0ZWQgcmVjb2duaXplcnMuCisgICAgICAgICAgICAgICAgW19zaW5n
bGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBb
X25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107Cisg
ICAgICAgICAgICAgICAgW190d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRF
bmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBbX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOworICAgICAgICAgICAgICAgIFtfdHdvRmluZ2VyU2lu
Z2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgICAgICAgICAgICAg
W19zdHlsdXNTaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAg
ICAgICAgICAgICBbX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOwor
ICAgICAgICAgICAgICAgIFtfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpO
T107CisgICAgICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6
VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1
dG8gc2Nyb2xsaW5nTm9kZUlEID0gdG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpci5z
ZWNvbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxpbmdDb29y
ZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldFRvdWNoQWN0aW9uc0Zv
clNjcm9sbGluZ05vZGVJRCh0b3VjaEFjdGlvbnMsIHNjcm9sbGluZ05vZGVJRCk7CisgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvdWNo
QWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGluY2hab29tKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfd2ViVmlldy5zY3JvbGxWaWV3LnBpbmNoR2VzdHVyZVJl
Y29nbml6ZXIuZW5hYmxlZCA9IE5POworICAgICAgICAgICAgICAgICAgICAgICAgX3ByZXZlbnRz
UGFubmluZ0luWEF4aXMgPSAhdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0
aW9uOjpQYW5YKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9wcmV2ZW50c1Bhbm5pbmdJbllB
eGlzID0gIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJv
bm91c2x5KQogICAgICAgICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KG5h
dGl2ZVdlYlRvdWNoRXZlbnQpOwogICAgIGVsc2UKICAgICAgICAgX3BhZ2UtPmhhbmRsZVRvdWNo
RXZlbnRTeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNoRXZlbnQpOwogCi0gICAgaWYgKG5hdGl2
ZVdlYlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKQorICAgIGlmIChuYXRp
dmVXZWJUb3VjaEV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkgewogICAgICAgICBf
Y2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgPSBOTzsKKworICAgICAgICBpZiAoIV9w
YWdlLT5pc1Njcm9sbGluZ09yWm9vbWluZygpKQorICAgICAgICAgICAgW3NlbGYgX3Jlc2V0UGFu
bmluZ1ByZXZlbnRpb25GbGFnc107CisgICAgfQogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX3Jlc2V0
UGFubmluZ1ByZXZlbnRpb25GbGFncworeworICAgIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzID0g
Tk87CisgICAgX3ByZXZlbnRzUGFubmluZ0luWUF4aXMgPSBOTzsKK30KKwogLSAodm9pZClfaW5z
cGVjdG9yTm9kZVNlYXJjaFJlY29nbml6ZWQ6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJl
UmVjb2duaXplcgogewogICAgIEFTU0VSVChfaW5zcGVjdG9yTm9kZVNlYXJjaEVuYWJsZWQpOwpA
QCAtMjE5NCw2ICsyMjQ5LDggQEAgLSAodm9pZClfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nCiAg
ICAgfQogICAgIF9wYWdlLT5zZXRJc1Njcm9sbGluZ09yWm9vbWluZyhmYWxzZSk7CiAKKyAgICBb
c2VsZiBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXTsKKwogI2lmIFBMQVRGT1JNKFdBVENI
T1MpCiAgICAgW19mb2N1c2VkRm9ybUNvbnRyb2xWaWV3IGVuZ2FnZUZvY3VzZWRGb3JtQ29udHJv
bE5hdmlnYXRpb25dOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQppbmRleCBiOWJkNzBjOWJlZTEwNjllMWI0ZjEyMzA5OGI5Y2FlMTJk
NjQ4N2M1Li40NGUzODFiZmYwYWJjMjhjNTI4MTE5MTM0MDE2ZWZhYjU4MmUxNTlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTQxLDYg
KzQxLDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNp
bXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2ltcG9y
dCAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKKyNpbXBvcnQgIlJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJVc2Vy
RGF0YS5oIgogI2ltcG9ydCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCkBAIC04MjQs
NiArODI1LDI0IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCB1CiAgICAgcHJvY2VzcygpLnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlBvdGVudGlhbFRhcEF0UG9zaXRpb24ocmVxdWVzdElELCBwb3Np
dGlvbiksIG1fcGFnZUlEKTsKIH0KIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCitib29sIFdl
YlBhZ2VQcm94eTo6bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91
Y2hFdmVudCYgZXZlbnQpIGNvbnN0Cit7CisgICAgZm9yIChhdXRvJiB0b3VjaFBvaW50IDogZXZl
bnQudG91Y2hQb2ludHMoKSkgeworICAgICAgICBpZiAodG91Y2hQb2ludC5waGFzZSgpID09IFdl
YlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVzc2VkICYmIG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS0+bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclBvaW50KHRvdWNoUG9pbnQubG9jYXRpb24o
KSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitWZWN0b3I8c3RkOjpwYWlyPE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4sIFdl
YkNvcmU6OlNjcm9sbGluZ05vZGVJRD4+IFdlYlBhZ2VQcm94eTo6dG91Y2hBY3Rpb25zRm9yVG91
Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiBldmVudCkKK3sKKyAgICBWZWN0b3I8c3RkOjpw
YWlyPE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4sIFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRD4+IHRvdWNoQWN0aW9uczsKKyAgICBwcm9jZXNzKCkuc2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhZ2U6OlRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFn
ZTo6VG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudDo6UmVwbHkodG91Y2hBY3Rpb25zKSwgbV9wYWdl
SUQpOworICAgIHJldHVybiB0b3VjaEFjdGlvbnM7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdl
UHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcCh1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklk
QXRMYXN0VG91Y2hTdGFydCkKIHsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6Q29tbWl0UG90ZW50aWFsVGFwKGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0
YXJ0KSwgbV9wYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDcxNWUxMjQ1MjBmZjA3NmI5NjBhZWQ3MGU5YjkyMDc1YTY1NTJhZWYuLjU4ZTVi
NmU0NWJmMDBkY2QwZmMyNzlmYmI2MmQwYjI1OTdjZmQ4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTYxOCw2ICs2MTgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2b2lkIGNhbmNlbFBvdGVudGlhbFRh
cEluRnJhbWUoV2ViRnJhbWUmKTsKICAgICB2b2lkIHRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWlu
dDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CisgICAgdm9pZCB0
b3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmLCBWZWN0b3I8c3Rk
OjpwYWlyPE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4sIFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRD4+Jik7CiAKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRp
b24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNl
YXJjaEVuZGVkQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpp
bmRleCA1NGFiYmFmODkzNGNjZGNmOGU0ZjIwZjc4M2ZjYjZiOWYwMzA0MGViLi4zN2ZlZDMzM2I5
NzJkYThmYzkyYTQ0NjU1ZTU1MjA2ZDM1YzA5NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTEwOCw2ICsxMDgs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBDYW5jZWxBdXRv
c2Nyb2xsKCkKICAgICBSZXF1ZXN0Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbihXZWJLaXQ6OkNh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hh
bmdlZCgpCisgICAgVG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudChXZWJLaXQ6OldlYlRvdWNoRXZl
bnQgZXZlbnQpIC0+IChWZWN0b3I8c3RkOjpwYWlyPE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFj
dGlvbj4sIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRD4+IHRvdWNoQWN0aW9ucykgTGVnYWN5U3lu
YwogI2VuZGlmCiAKICAgICBTZXRDb250cm9sbGVkQnlBdXRvbWF0aW9uKGJvb2wgY29udHJvbGxl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KaW5kZXggMDY2OTZjMDY1Y2M3NzQ4YzFjYmRlMDA1NDVlMzczNjRlYTY5NGU1My4uMDQy
N2ZlNzUxYmMzYzIwODY1ZWE4NThkNDMwMzNkNjBhZDgyM2QwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEwMyw2ICsx
MDMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1vdXNlRXZlbnQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmVuZGVyQmxvY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVySW1hZ2UuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyTGF5ZXJCYWNraW5nLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1JlbmRlclRoZW1lSU9TLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CkBAIC04NjIsNiArODYzLDI3
IEBAIHZvaWQgV2ViUGFnZTo6dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0CiAgICAgc2VuZFRhcEhpZ2hsaWdodEZvck5vZGVJ
Zk5lY2Vzc2FyeShyZXF1ZXN0SUQsIG1haW5mcmFtZS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVu
dHMocG9zaXRpb24sIGFkanVzdGVkUG9pbnQpKTsKIH0KIAordm9pZCBXZWJQYWdlOjp0b3VjaEFj
dGlvbnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIGV2ZW50LCBWZWN0b3I8c3Rk
OjpwYWlyPE9wdGlvblNldDxUb3VjaEFjdGlvbj4sIFNjcm9sbGluZ05vZGVJRD4+JiB0b3VjaEFj
dGlvbnMpCit7CisgICAgbGF5b3V0SWZOZWVkZWQoKTsKKworICAgIGF1dG8mIGV2ZW50SGFuZGxl
ciA9IG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCk7CisgICAgZm9yIChhdXRvJiB0
b3VjaCA6IGV2ZW50LnRvdWNoUG9pbnRzKCkpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBldmVu
dEhhbmRsZXIuaGl0VGVzdFJlc3VsdEF0UG9pbnQoKHRvdWNoLmxvY2F0aW9uKCkpLCBIaXRUZXN0
UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVl
c3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCB8IEhpdFRlc3RSZXF1ZXN0OjpBbGxv
d0NoaWxkRnJhbWVDb250ZW50KTsKKyAgICAgICAgc3RkOjpwYWlyPE9wdGlvblNldDxUb3VjaEFj
dGlvbj4sIFNjcm9sbGluZ05vZGVJRD4gdG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFp
cjsKKyAgICAgICAgaWYgKGF1dG8qIGVsZW1lbnQgPSByZXN1bHQuaW5uZXJOb25TaGFyZWRFbGVt
ZW50KCkpIHsKKyAgICAgICAgICAgIHRvdWNoQWN0aW9uc0FuZFNjcm9sbGluZ05vZGVJRFBhaXIu
Zmlyc3QgPSBlbGVtZW50LT5jb21wdXRlZFRvdWNoQWN0aW9ucygpOworI2lmIEVOQUJMRShBQ0NF
TEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCisgICAgICAgICAgICAvLyBOb3cgd2Ugc2hvdWxk
IGFsc28gbG9vayB0byBzZWUgaWYgb3VyIGVsZW1lbnQgaXMgb3IgaXMgY29udGFpbmVkIHdpdGhp
biBhbiAib3ZlcmZsb3ctc2Nyb2xsOiB0b3VjaCIgZWxlbWVudAorICAgICAgICAgICAgLy8gc28g
dGhhdCB3ZSBjYW4gcmVwb3J0IGl0cyBsYXllciBpZCB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAg
ICAgICAgIGlmIChhdXRvIHNjcm9sbGluZ05vZGVJRCA9IGVsZW1lbnQtPm5lYXJlc3RTY3JvbGxp
bmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAgICB0
b3VjaEFjdGlvbnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyLnNlY29uZCA9IHNjcm9sbGluZ05vZGVJ
RDsKKyNlbmRpZgorICAgICAgICB9CisgICAgICAgIHRvdWNoQWN0aW9ucy5hcHBlbmQodG91Y2hB
Y3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpcik7CisgICAgfQorfQorCiB2b2lkIFdlYlBhZ2U6
Omluc3BlY3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9z
aXRpb24pCiB7CiAgICAgSW50UG9pbnQgYWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQb2ludChw
b3NpdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMTczNjYwYTZkNmQzOTMxNGMyN2U3Y2IwMGU3YjNjOTc0ZWYyY2Ez
ZS4uNGFjYzk2M2Q1ODJiMTg1ZDUzZmZlZGFjYzE3MDNmNjBkYTUyMGZiNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM3IEBACisyMDE5LTAxLTE1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+
CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRv
dWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcg
c2VyaWVzIG9mIHRlc3RzIHRoYXQgY2hlY2sgdGhhdCB0aGUgIm5vbmUiLCAicGFuLXgiLCAicGFu
LXkiIGFuZCAicGluY2gtem9vbSIgdmFsdWVzIGhhdmUgdGhlIGV4cGVjdGVkCisgICAgICAgIGlt
cGFjdCBvbiBwYWdlIHBhbm5pbmcgb24gaU9TLgorCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHktZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29u
ZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFtZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1ub25lLWluLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24t
aWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1ub25lLW9uLXBhcmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFu
LXgtcGFuLXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1h
bGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXBy
ZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1s
OiBBZGRlZC4KKwogMjAxOS0wMS0xNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBWaXN1YWxWaWV3cG9ydCBBUEkgc2hvdWxkIGJlIHVwZGF0ZWQgdXBvbiBvcGVu
aW5nIG9mIGtleWJvYXJkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3Rp
bmctdmFsdWVzLWluLWhpZXJhcmNoeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTEwYjhmNzJl
YTc0YjM4YWRlMjEzNDU5M2QyNjUyMThkMmI5YmIwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMt
aW4taGllcmFyY2h5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5n
IHRoYXQgc2V0dGluZyBjb25mbGljdGluZyB0b3VjaC1hY3Rpb24gdmFsdWVzIG9uIHRoZSB0YXJn
ZXQgZWxlbWVudCBhbmQgcGFyZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0
aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHkuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMtaW4taGllcmFyY2h5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzViNTA3NmJiZWJlNmIxZTEzNGE1YTA1YWE0ZThjMzBkMDhmNGYzYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1j
b25mbGljdGluZy12YWx1ZXMtaW4taGllcmFyY2h5Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2Nh
bGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRo
OiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRv
Y3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0
eWxlLmhlaWdodCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudG91Y2hBY3Rp
b24gPSAicGFuLXgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi15IjsK
KworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhl
bigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAi
VGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xs
ZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAi
VGVzdGluZyB0aGF0IHNldHRpbmcgY29uZmxpY3RpbmcgdG91Y2gtYWN0aW9uIHZhbHVlcyBvbiB0
aGUgdGFyZ2V0IGVsZW1lbnQgYW5kIHBhcmVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsK
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LW5vbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyN2U4YWY4MWJkOTg0YzhjMzQw
NzA1NTFhZjViNjFlOTI3MGZmODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIG9uIGFu
IGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
aW4taWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODU4NDEwMzIzOWYxYmM3ZjdlOWZl
Yjc1MzdmNWM5OTdlOTllMjc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKworCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjog
bm9uZSBpbiBjb250ZW50IGhvc3RlZCBpbiBhbiBpZnJhbWUgcHJldmVudHMgcGFnZSBzY3JvbGxp
bmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyOGI4MmIzMzVk
M2RiYzk1NjE0NTFkYjUwMDgzNDIxMjBhZmY4M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRtbApA
QCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxzdHlsZT4KKworaWZyYW1lIHsKKyAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDQw
MHB4OworICAgIGhlaWdodDogNDAwcHg7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxpZnJhbWU+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKworYXN5bmNfdGVzdCh0ZXN0ID0+IHsKKyAg
ICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5ib2R5LmZpcnN0RWxlbWVudENoaWxkOworICAgIGNv
bnN0IHRhcmdldCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgic3R5
bGUiLCBgCisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMDsKKyAg
ICAgICAgdG9wOiAwOworICAgICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgaGVpZ2h0OiAyMDAl
OworICAgICAgICB0b3VjaC1hY3Rpb246IG5vbmU7CisgICAgYCk7CisKKyAgICB1aS5zd2lwZSh7
IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qg
c2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cu
cGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMu
Iik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0
aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBpbiBjb250ZW50IGhvc3RlZCBpbiBhbiBpZnJhbWUgcHJl
dmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3Vj
aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJjMDA3MjkxMDI0NWVmNTc1ODdlYmU5YzUyYzlmYWJjMDUzMmQxYzIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1p
bi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBpbiBjb250ZW50
IGhvc3RlZCBpbiBhIHNjcm9sbGFibGUgY29udGFpbmVyIHVzaW5nICctd2Via2l0LW92ZXJmbG93
LXNjcm9sbGluZzogdG91Y2gnIHByZXZlbnRzIHNjcm9sbGluZyBvZiB0aGF0IGNvbnRhaW5lci4g
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRv
dWNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU5NjE0ZmZlZmNlZmJlYWZlNjc0MTc0YjU4MTU0MWMwZjIz
NTE0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sCkBAIC0wLDAg
KzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRo
LCBpbml0aWFsLXNjYWxlPTEiPgorPHN0eWxlPgorCisjc2Nyb2xsaW5nLWNvbnRhaW5lciB7Cisg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDA7CisgICAgdG9wOiAwOworICAgIHdp
ZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIG92ZXJmbG93OiBzY3JvbGw7Cisg
ICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOworfQorCisjc2Nyb2xsaW5nLWNv
bnRhaW5lciA+IGRpdiB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDA7Cisg
ICAgdG9wOiAwOworICAgIHdpZHRoOiAyMDAlOworICAgIGhlaWdodDogMjAwJTsKKyAgICB0b3Vj
aC1hY3Rpb246IG5vbmU7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9
InNjcm9sbGluZy1jb250YWluZXIiPjxkaXY+PC9kaXY+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKworYXN5
bmNfdGVzdCh0ZXN0ID0+IHsKKyAgICBjb25zdCBzY3JvbGxpbmdDb250YWluZXIgPSBkb2N1bWVu
dC5ib2R5LmZpcnN0RWxlbWVudENoaWxkOworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAg
fSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
c2Nyb2xsaW5nQ29udGFpbmVyLnNjcm9sbExlZnQsIDAsICJUaGUgc2Nyb2xsaW5nIGNvbnRhaW5l
ciB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nQ29udGFpbmVyLnNjcm9sbFRvcCwgMCwgIlRoZSBzY3JvbGxpbmcgY29udGFp
bmVyIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25l
KCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25l
IGluIGNvbnRlbnQgaG9zdGVkIGluIGEgc2Nyb2xsYWJsZSBjb250YWluZXIgdXNpbmcgJy13ZWJr
aXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaCcgcHJldmVudHMgc2Nyb2xsaW5nIG9mIHRoYXQg
Y29udGFpbmVyLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40Njc1MWJkZDdjMzQ2MmExZTA4NmZmYzczZjM1M2VkNDRkYWY3ZmJjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQQVNT
IFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBpZnJhbWUgYW5k
IGludGVyYWN0aW5nIHdpdGggaXRzIGNvbnRlbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
bm9uZS1vbi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MjdlYThkYjQ2MTc0MzQx
YzUxYTBjNGNjNTI1M2U1YjYyMDdhMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUuaHRtbApAQCAtMCww
ICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxzdHlsZT4KKworaWZyYW1lIHsKKyAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDQwMHB4Owor
ICAgIGhlaWdodDogNDAwcHg7CisgICAgdG91Y2gtYWN0aW9uOiBub25lOworfQorCis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK2FzeW5j
X3Rlc3QodGVzdCA9PiB7CisgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuYm9keS5maXJzdEVs
ZW1lbnRDaGlsZDsKKyAgICBjb25zdCB0YXJnZXQgPSBpZnJhbWUuY29udGVudERvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgIHRhcmdl
dC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgYAorICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgIGxlZnQ6IDA7CisgICAgICAgIHRvcDogMDsKKyAgICAgICAgd2lkdGg6IDIwMCU7Cisg
ICAgICAgIGhlaWdodDogMjAwJTsKKyAgICBgKTsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5
OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9l
cXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBp
biB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNl
dCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAg
ICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gt
YWN0aW9uOiBub25lIG9uIGFuIGlmcmFtZSBhbmQgaW50ZXJhY3Rpbmcgd2l0aCBpdHMgY29udGVu
dCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBh
cmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAyYjEzMDQ5NjhhMjkxZWFkZDEzNzM5NTI2
ZmMwZDhjYmUyYTI5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIG9u
IGEgcGFyZW50IGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJl
bnQuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LW9uLXBhcmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhNDgwNzkzZjc5MGE1Yzg2MjQxNzY5Zjk5MzFl
OGY0ODBjZjNiNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbApAQCAtMCwwICsxLDI5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1z
Y2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lk
dGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAg
ZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHku
c3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS50b3VjaEFj
dGlvbiA9ICJub25lIjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1
MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBh
Z2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdl
IHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7
CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIG9u
IGEgcGFyZW50IGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWwg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFkMDBiODNiYjk4ZTRhZTVkZGM5YTU5Yzk4NjcyYTZhMDMyOWNlOGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
bm9uZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ug
c3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgi
IH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0g
IjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKwor
ICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJub25lIjsKKworICAgIHVpLnN3aXBlKHsg
eDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAg
IGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBz
Y3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5w
YWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4i
KTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRp
bmcgdG91Y2gtYWN0aW9uOiBub25lIG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxp
bmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1wYW4teC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3ZTc4Mzc5ZGY0
NWE3MTc3NDc2YzhiZTdiNWQ2NDA0MGYwYWFjZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjog
cGFuLXggb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeS1heGlz
LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXBhbi14LXBhbi15LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU5
N2JkZTMyN2ZjMjljM2FlNGI3ODBhMTExNjQ3Y2Q2OGZkNWY4MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcg
J3RvdWNoLWFjdGlvbjogcGFuLXggcGFuLXknIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugc2Ny
b2xsaW5nIGluIGJvdGggYXhlcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1sIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTIyOTFhNGQ4YzY3YzIyMTUxYzIyOWQ4MzdkNzFhOGYzZDAwYWIxNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4t
eS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3Ry
aWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0s
ICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIw
MDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAg
IHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teCBwYW4teSI7CisKKyAgICB1aS5zd2lw
ZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3
YXMgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMo
d2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVkIGluIHRoZSB5LWF4
aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBz
ZXR0aW5nICd0b3VjaC1hY3Rpb246IHBhbi14IHBhbi15JyBvbiBhbiBlbGVtZW50IGFsbG93cyBw
YWdlIHNjcm9sbGluZyBpbiBib3RoIGF4ZXMuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1sIGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I5
MjA1ZjdlZjVkYTJjYWI3MDAxOWNmYjhlYTcwZjk1ZDc3YzZmNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1sCkBA
IC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNo
YXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwor
dGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQs
IHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7Cisg
ICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5z
dHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teCI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTog
MTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfbm90
X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgc2Nyb2xsZWQgaW4g
dGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQs
IDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAg
IHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFj
dGlvbjogcGFuLXggb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUg
eS1heGlzLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmY2NThj
Mzg2NDIyNjcxNWFlNjdlYTQyZmJiOTI4NjgwNjkyODQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rp
b246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHgt
YXhpcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1wYW4teS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBhbi15Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA5MGQzOTYwMWZiZWUxN2JmZDFiOTVmMjQz
ZTlmYWJjNTIyNzk1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEi
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIw
MHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVu
dC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5o
ZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4t
eSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0p
LnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwg
MCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNj
cm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOwor
fSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGFuLXggb24gYW4gZWxlbWVu
dCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeC1heGlzLiIpOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1h
bGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDk0ZTY3NjE1ZTJhNTk5OGYzMzMzZjkwZmRhMzBkZDFkY2E1YTQ2OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1w
aW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBpbmNoLXpvb20gb24gYW4g
ZWxlbWVudCBhbGxvd3MgcGFnZSB6b29taW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcu
aHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16
b29tLWFsbG93cy16b29taW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRhNjNjOTQyOWUxYWExMzkwMjZl
ZDQzMTNjZWE2ZDVkNDc4Nzk3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLmh0bWwK
QEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisK
K3RhcmdldF90ZXN0KHsgd2lkdGg6ICI0MDBweCIsIGhlaWdodDogIjQwMHB4IiB9LCAodGFyZ2V0
LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOwor
ICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQu
c3R5bGUudG91Y2hBY3Rpb24gPSAicGluY2gtem9vbSI7CisKKyAgICB1aS5waW5jaE91dCh7IHg6
IDUwLCB5OiA1MCwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAsIHNjYWxlOiAwLjUgfSkudGhlbigo
KSA9PiB7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5pbnRlcm5hbHMucGFnZVNj
YWxlRmFjdG9yKCksIDEsICJUaGUgcGFnZSB3YXMgc2NhbGVkLiIpOworICAgICAgICB0ZXN0LmRv
bmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBp
bmNoLXpvb20gb24gYW4gZWxlbWVudCBhbGxvd3MgcGFnZSB6b29taW5nLiIpOworCis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9v
bS1wcmV2ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MGM4NWI5YWE1NTJkZjliNzFkOWFlNDM5NzQwNTBlMGMyODk5
ODAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBp
bmNoLXpvb20gb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16
b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDIzNDFjNjIxNTA3YTNlZTgzNzM0ZDI3NzEzZDg0YmZmNTU5ZDdkZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5j
aC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEi
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIw
MHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVu
dC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5o
ZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwaW5j
aC16b29tIjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTog
NTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zm
c2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBu
b3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAg
fSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9u
IGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359258</attachid>
            <date>2019-01-15 23:58:43 -0800</date>
            <delta_ts>2019-01-16 00:34:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190116085841.patch</filename>
            <type>text/plain</type>
            <size>74579</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZhZGNlOWZiZjc1YTQx
YjJmNjJiNjVmM2EyOTNjOTE2ZWM4MmNiYi4uZTg2YTFhOWY5NWFiOGU2YzBhYWZlYzA3OGRiY2Fh
Mzc0MDZhY2E3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTAxLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21wdXRlCisgICAgICAgIGEgUmVnaW9uIGNvbnRhaW5pbmcgdGhlIGJvdW5kcyBvZiBlYWNoIG9m
IHRob3NlIGVsZW1lbnRzIGFuZCBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFsb25nIHdp
dGggdG91Y2ggcmVnaW9ucy4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHdlIGFsbG93IGEgbGlz
dCBvZiBhbGxvd2VkIHRvdWNoIGFjdGlvbnMgdG8gYmUgY29tcHV0ZWQgZm9yIGEgZ2l2ZW4gZWxl
bWVudCBhY2NvdW50aW5nIGZvciBub3Qgb25seSB0aGUgdmFsdWUgc3BlY2lmaWVkCisgICAgICAg
IGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxlLCBidXQgYWxzbyBpbiBpdHMgaGllcmFy
Y2h5LCBjcm9zc2luZyBhbnkgZnJhbWUgYm91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRv
Y3VtZW50J3Mgcm9vdCBub2RlLgorCisgICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCisgICAgICAg
ICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4t
b3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwK
KyAgICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1s
CisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tYWxsb3dzLXpvb21pbmcuaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwgICAgICAgICAg
ICAgICAKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5v
ZGVXaWxsQmVSZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJv
bSB0aGlzIGRvY3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qg
b2YgZWxlbWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRl
IGEgbGlzdCBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5
IGlmIG9uZSBkb2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0
aGUgZ2l2ZW4gZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwg
b3IgcmVtb3ZlIGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0
aGF0IGxpc3QgY2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBp
cyBpbmZvcm1lZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojp0b3VjaEFjdGlvbkVsZW1lbnRzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmll
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpjb21wdXRlZFRvdWNoQWN0aW9ucyBjb25z
dCk6IFByb3ZpZGUgdGhlIGxpc3Qgb2YgYWxsb3dlZCB0b3VjaCBhY3Rpb25zIGFjY291bnRpbmcg
Zm9yIHRoZSAidG91Y2gtYWN0aW9uIiBwcm9wZXJ0eQorICAgICAgICBzcGVjaWZpZWQgb24gdGhp
cyBlbGVtZW50IGFuZCBhbGwgb2YgaXRzIGhpZXJhcmNoeSwgY3Jvc3NpbmcgZnJhbWUgYm91bmRh
cnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNp
bmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nIGNvbnN0KTogUHJvdmlkZSB0aGUgU2Nyb2xsaW5nTm9k
ZUlELCBpZiBhbnksIGZvciB0aGUgbmVhcmVzdCBzY3JvbGxpbmcgbm9kZQorICAgICAgICBmb3Ig
dGhhdCBlbGVtZW50LiBUaGlzIHdpbGwgYWxsb3cgdGhlIFVJIHByb2Nlc3MgdG8gaWRlbnRpZnkg
d2hpY2ggc2Nyb2xsIHZpZXcncyBiZWhhdmlvciB0byBjdXN0b21pemUgdG8gcmVmbGVjdCB0aGUg
ZWxlbWVudCdzIGFsbG93ZWQKKyAgICAgICAgdG91Y2ggYWN0aW9ucy4KKyAgICAgICAgKiBkb20v
RWxlbWVudC5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNvbHV0ZUV2
ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUgY29uc3QpOiBDb21wdXRlIHRoZSByZWdpb24gZm9y
IGFsbCBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5CisgICAg
ICAgIHRocm91Z2hvdXQgdGhlIHByb3ZpZGVkIGZyYW1lIGFuZCBhbGwgb2YgaXRzIHN1YmZyYW1l
cy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludCBjb25z
dCk6IFByb3ZpZGUgYSBxdWljayB3YXkgdG8gaW5kZW50aWZ5IHdoZXRoZXIgdGhlIHByb3ZpZGVk
IHBvaW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgcmVnaW9uCisgICAgICAgIG9mIGVsZW1lbnRzIHdp
dGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZU5vZGU6OnRvdWNoQWN0aW9ucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTm9kZTo6c2V0VG91Y2hBY3Rpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9FdmVudFRyYWNr
aW5nUmVnaW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8p
OiBFbnN1cmUgdGhlIHJlZ2lvbiBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0
aW9uIHByb3BlcnR5IGlzIHVwZGF0ZWQgd2hlbiBzY3JvbGxpbmcgaGFzIG9jY3VyZWQuCisgICAg
ICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQpOiBVcGRhdGUgdGhlIGxpc3Qgb2YgZWxl
bWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB3aGVuIGFuIGVsZW1l
bnQncyBzdHlsZSBjaGFuZ2VzLgorCiAyMDE5LTAxLTE1ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9u
b3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV2luQ2Fpcm8gYnVpbGQg
Zml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBiYzIxNjQ3NmU2YTA2NGY4NjBkODdlNTBkYzhjZWU3NDU0ODQ2NDEz
Li4xMjJlMTEwMTNjODlkYjg2Yzk5NTk1MGRjNWQ2MGVkNDc1MDg0Mjc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDU4IEBACisyMDE5LTAxLTE1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5j
b20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhl
IHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUg
dGhlICJub25lIiwgInBhbi14IiwgInBhbi15IiBhbmQgInBpbmNoLXpvb20iIHZhbHVlcyBmb3Ig
dGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSBieSBxdWVyeWluZyB0aGUgc2Nyb2xsaW5nIHRyZWUg
d2hlbmV2ZXIgYSB0b3VjaCBiZWdpbnMKKyAgICAgICAgdG8gaWRlbnRpZnkgd2hldGhlciBpdHMg
cG9pbnQgbWF5IGJlIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHJlZ2lvbiBvZiBlbGVtZW50cyB3aXRo
IGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5LiBJZiBpdCBpcywgd2UgY2FsbCBpbnRv
IHRoZQorICAgICAgICBXZWIgcHJvY2Vzcywgc3luY2hyb25vdXNseSwgdG8gY29tcGlsZSB0aGUg
bGlzdCBvZiBwZXJtaXR0ZWQgdG91Y2ggYWN0aW9ucyBzdWNoIHRoYXQgd2UgbWF5IHRoZW4gY3Vz
dG9taXplIHRoZSBiZWhhdmlvciBvZiB0aGUgbmVhcmVzdCBzY3JvbGwgdmlldworICAgICAgICB0
byBwYW4gb3Igem9vbSBvbmx5IGFzIGluc3RydWN0ZWQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46
OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lv
bnM+OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzp3aXRoVmVs
b2NpdHk6dGFyZ2V0Q29udGVudE9mZnNldDpdKTogQWNjb3VudCBmb3IgcGFubmluZyBjb25zdHJh
aW50cyBzZXQgb24gdGhlIGNvbnRlbnQgdmlldyB0byBwcmV2ZW50IGRlY2VsZXJhdGlvbgorICAg
ICAgICB0byBwYW4gdGhlIHZpZXcgaWYgaXQgb3VnaHQgbm90LgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX3Njcm9sbFZpZXc6YWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6dHJhbnNsYXRpb246c3RhcnRQ
b2ludDpsb2NhdGlvbkluVmlldzpob3Jpem9udGFsVmVsb2NpdHk6dmVydGljYWxWZWxvY2l0eTpd
KTogSW1wbGVtZW50IGFuIGFkZGl0aW9uYWwgVUlTY3JvbGxWaWV3CisgICAgICAgIGRlbGVnYXRp
b24gbWV0aG9kIHRvIGFwcGx5IHRoZSBwYW5uaW5nIGNvbnN0cmFpbnRzIHNldCBvbiB0aGUgY29u
dGVudCB2aWV3IHdoaWxlIHBhbm5pbmcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6bWF5SGF2ZVRvdWNoQWN0aW9uc0Zv
clBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tOgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVT
Y3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzp3aXRoVmVsb2NpdHk6
dGFyZ2V0Q29udGVudE9mZnNldDpdKTogQXBwbHkgdGhlIHNhbWUgbG9naWMgYXMgaW4gV0tXZWJW
aWV3LgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xs
Vmlld0RpZEVuZERyYWdnaW5nOndpbGxEZWNlbGVyYXRlOl0pOiBSZXNldCB0aGUgdG91Y2ggYWN0
aW9ucyBmb3IgdGhlIGFzc29jaWF0ZWQgc2Nyb2xsIG5vZGUgdG8gc3RhcnQgdGhlIG5leHQgaW50
ZXJhY3Rpb24KKyAgICAgICAgaW4gdGhlIGRlZmF1bHQgc3RhdGUuCisgICAgICAgICgtW1dLU2Ny
b2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kRGVjZWxlcmF0aW5n
Ol0pOiBSZXNldCB0aGUgdG91Y2ggYWN0aW9ucyBmb3IgdGhlIGFzc29jaWF0ZWQgc2Nyb2xsIG5v
ZGUgdG8gc3RhcnQgdGhlIG5leHQgaW50ZXJhY3Rpb24gaW4gdGhlCisgICAgICAgIGRlZmF1bHQg
c3RhdGUuCisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBfc2Ny
b2xsVmlldzphZGp1c3RlZE9mZnNldEZvck9mZnNldDp0cmFuc2xhdGlvbjpzdGFydFBvaW50Omxv
Y2F0aW9uSW5WaWV3Omhvcml6b250YWxWZWxvY2l0eTp2ZXJ0aWNhbFZlbG9jaXR5Ol0pOiBBcHBs
eSB0aGUgc2FtZSBsb2dpYyBhcyBpbiBXS1dlYlZpZXcuCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzU2Nyb2xsaW5n
T3Jab29taW5nIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4
aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW51cEludGVyYWN0aW9uXSk6IFJlc2V0IHRo
ZSBwYW5uaW5nIHByZXZlbnRpb24gaXZhcnMgdG8gdGhlaXIgZGVmYXVsdCBzdGF0ZS4KKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOl0pOiBBcyB3ZSBw
cm9jZXNzIHRvdWNoZXMsIGNoZWNrIHdoZXRoZXIgdGhlcmUgbWF5IGJlIHRvdWNoIGFjdGlvbnMg
c2V0IGZvciB0aGlzIHRvdWNoJ3MgbG9jYXRpb24sIGFuZCBpZiB3ZSBoYXZlbid0IGV4Y2x1ZGVk
CisgICAgICAgIHRoYXQgcG9zc2liaWxpdHksIGNhbGwgaW50byB0aGUgV2ViIHByb2Nlc3Mgc3lu
Y2hyb25vdXNseSB0byBmaW5kIHdoaWNoIHRvdWNoIGFjdGlvbnMgdGhlc2UgbWlnaHQgYmUgZXhh
Y3RseS4gVGhlbiwgYmFzZWQgb24gdGhvc2UgdG91Y2ggYWN0aW9ucywgZWl0aGVyIHNldERlZmF1
bHRQcmV2ZW50ZWQKKyAgICAgICAgb24gdGhlIF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIg
aWYgdGhlIHRvdWNoIGFjdGlvbiBpcyAibm9uZSIgb3Igc2VsZWN0aXZlbHkgZGlzYWJsZSBwYW5u
aW5nIGFuZCB6b29taW5nIGFzIHdlbGwgYXMgYWxsIHRoZSBvdGhlciB0YXAtcmVsYXRlZCB1c2Vy
IGludGVyYWN0aW9ucy4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVzZXRQYW5uaW5nUHJl
dmVudGlvbkZsYWdzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZEVuZFNjcm9sbGlu
Z09yWm9vbWluZ10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JU
b3VjaEV2ZW50IGNvbnN0KTogQ2hlY2sgYWxsIHRvdWNoIHBvaW50cyBmb3IgYSBnaXZlbiBldmVu
dCB0byBzZWUgaWYgaXQgbWlnaHQgaGF2ZSBhc3NvY2lhdGVkIHRvdWNoIGFjdGlvbnMuIFRoaXMg
Y2hlY2tzIHRoYXQKKyAgICAgICAgdGhlc2UgYXJlIG5ldyB0b3VjaGVzIGFuZCB0aGF0IHRoZWly
IGxvY2F0aW9uIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHRvdWNoIGFjdGlvbiByZWdpb24gY29t
cHV0ZWQgaW4gdGhlIFdlYiBwcm9jZXNzIGFuZCBzZW50IHRvIHRoZSBVSSBwcm9jZXNzLiAKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0b3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KTog
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRv
dWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQpOiBJdGVyYXRlIG92ZXIgYWxsIHRvdWNoIHBvaW50cyBm
b3IgYSBnaXZlbiBldmVudCBhbmQgcmV0dXJuLCBpZiB0aGVyZSBpcyBhIG5vbi1hdXRvIHRvdWNo
IGFjdGlvbiBzZXQsIGNyZWF0ZSBhIHBhaXIgY29uc2lzdGluZyBvZiBhCisgICAgICAgIGxpc3Qg
b2YgdG91Y2gtYWN0aW9ucyBhbmQgdGhlIHNjcm9sbGluZyBub2RlIElEIGZvciB0aGUgbmVhcmVz
dCBzY3JvbGwgbm9kZSB0byB0aGUgZWxlbWVudCB0aGF0IGhpdCB0ZXN0cyBmb3IgdGhpcyBsb2Nh
dGlvbi4KKwogMjAxOS0wMS0xNSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNhaXJvIGJ1aWxkIGZpeC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiOTZm
YTJkZWM0MWU0OWUzMTQxNDJkMGI2NDUyMmJhM2M3OTI0YzZhLi4yOTc4YTY3YTQxZDJlYTM4MzQz
ODc2ZmE4YmU4NmE0ZWZiNTg5NjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTk1MSw2ICszMTk1MSw3IEBACiAJCQkJNDlF
OTEyQUUwRUZBQzkwNjAwOUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjU0REQwODE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2guaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxQjdFRTBEMjFCNUM2ODcwMDMxQzFFRiAvKiBUb3VjaEFjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNzFCN0VFMEQyMUI1QzY4NzAwMzFDMUVGIC8qIFRvdWNoQWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjU0REQwOTE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2hFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY1NEREMEExODgxRDVGNTAwM0VFREJCIC8qIFRvdWNoTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFz
ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmZTVjOTUxYmM2
NGQ2NjJkYWVjNTE1ZjllNDNlYTRlYzkwNGU4MWM2Li5hOThiNDIxNmNhZWM5ZjMzMzZjNDA1MTI2
MDliNzY4NTkxMmQ0YzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOCw2ICsyMDgs
NyBAQAogI2luY2x1ZGUgIlRleHRBdXRvU2l6aW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50Lmgi
CiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5o
IgogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIK
ICNpbmNsdWRlICJVbmRvTWFuYWdlci5oIgpAQCAtNDE0Miw2ICs0MTQzLDEyIEBAIHZvaWQgRG9j
dW1lbnQ6OmludmFsaWRhdGVSZW5kZXJpbmdEZXBlbmRlbnRSZWdpb25zKEFubm90YXRpb25zQWN0
aW9uIGFubm90YXRpb25zCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQogICAgIHNldFRvdWNoRXZlbnRSZWdpb25zTmVlZFVwZGF0ZSgpOworICAgIGlm
IChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZVZp
ZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRv
ciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAgICAgICAgc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0V2ZW50VHJhY2tpbmdSZWdpb25zQ2hhbmdlZCgqZnJh
bWVWaWV3KTsKKyAgICAgICAgfQorICAgIH0KICNlbmRpZgogfQogCkBAIC00NTI2LDYgKzQ1MzMs
MTEgQEAgdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgbm9kZSkKIAogICAg
IGlmIChpczxUZXh0Pihub2RlKSkKICAgICAgICAgbV9tYXJrZXJzLT5yZW1vdmVNYXJrZXJzKCZu
b2RlKTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKG1fdG91Y2hBY3Rpb25F
bGVtZW50cykKKyAgICAgICAgbV90b3VjaEFjdGlvbkVsZW1lbnRzLT5yZW1vdmVBbGwoJm5vZGUp
OworI2VuZGlmCiB9CiAKIHN0YXRpYyBOb2RlKiBmYWxsYmFja0ZvY3VzTmF2aWdhdGlvblN0YXJ0
aW5nTm9kZUFmdGVyUmVtb3ZhbChOb2RlJiBub2RlKQpAQCAtODY0OCw0ICs4NjYwLDMzIEBAIHZv
aWQgRG9jdW1lbnQ6OnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFtZShjb25zdCBTdHJp
bmcmIG5hbWUsIFJlZjxQYWludFdvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCit2b2lkIERvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmIG5vZGUs
IFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBpZiAoIW1fdG91Y2hBY3Rpb25FbGVtZW50cykK
KyAgICAgICAgbV90b3VjaEFjdGlvbkVsZW1lbnRzID0gc3RkOjptYWtlX3VuaXF1ZTxFdmVudFRh
cmdldFNldD4oKTsKKworICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOworCisgICAgaWYgKHN0eWxl
ICYmIHN0eWxlLT50b3VjaEFjdGlvbnMoKSAhPSBUb3VjaEFjdGlvbjo6QXV0bykKKyAgICAgICAg
Y2hhbmdlZCB8PSBtX3RvdWNoQWN0aW9uRWxlbWVudHMtPmFkZCgmbm9kZSkuaXNOZXdFbnRyeTsK
KyAgICBlbHNlCisgICAgICAgIGNoYW5nZWQgfD0gbV90b3VjaEFjdGlvbkVsZW1lbnRzLT5yZW1v
dmVBbGwoJm5vZGUpOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBpZiAoIWNoYW5nZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2Uq
IHBhZ2UgPSB0aGlzLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgaWYgKFNj
cm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVW
aWV3RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFuZ2VkKCpmcmFtZVZpZXcpOworICAgIH0KKyNlbmRp
ZgorfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggZWI0NDU1MWNjYWYzNGEwOWI4OTM3OGFhODcxMzQ5NzcxMzk2ZTMxOS4uODg2ODg4ZWE5
ODRhNzQ3MzYzOWYwZTZlOGIzY2IzYWY5MTUyNjRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTEyNzMsNiArMTI3Myw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAg
IGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJzKCkgY29uc3QgeyByZXR1cm4gKG1fdG91Y2hFdmVu
dFRhcmdldHMuZ2V0KCkpID8gbV90b3VjaEV2ZW50VGFyZ2V0cy0+c2l6ZSgpIDogZmFsc2U7IH0K
ICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29udGFpbihOb2RlJiBub2RlKSBjb25zdCB7IHJl
dHVybiBtX3RvdWNoRXZlbnRUYXJnZXRzID8gbV90b3VjaEV2ZW50VGFyZ2V0cy0+Y29udGFpbnMo
Jm5vZGUpIDogZmFsc2U7IH0KKyAgICB2b2lkIHVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMoTm9k
ZSYsIFJlbmRlclN0eWxlKik7CiAjZWxzZQogICAgIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJz
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29u
dGFpbihOb2RlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEyOTIsNiArMTI5MywxNSBA
QCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICBjb25zdCBFdmVudFRhcmdldFNldCogdG91
Y2hBY3Rpb25FbGVtZW50cygpIGNvbnN0CisgICAgeworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CisgICAgICAgIHJldHVybiBtX3RvdWNoQWN0aW9uRWxlbWVudHMuZ2V0KCk7CisjZWxzZQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorICAgIH0KKwogICAgIGNvbnN0IEV2ZW50VGFy
Z2V0U2V0KiB3aGVlbEV2ZW50VGFyZ2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxFdmVudFRh
cmdldHMuZ2V0KCk7IH0KIAogICAgIHR5cGVkZWYgc3RkOjpwYWlyPFJlZ2lvbiwgYm9vbD4gUmVn
aW9uRml4ZWRQYWlyOwpAQCAtMTg3Myw2ICsxODgzLDcgQEAgcHJpdmF0ZToKICAgICAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudFRhcmdldFNldD4g
bV90b3VjaEV2ZW50VGFyZ2V0czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+
IG1fdG91Y2hBY3Rpb25FbGVtZW50czsKICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVu
dFRhcmdldFNldD4gbV93aGVlbEV2ZW50VGFyZ2V0czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IGRhNWNkMmYwODFjMWU4OGY4MTExZWZmZjMyNmRmMjAyNjQ0NGM0M2EuLjQyZDU1NTE0Mzlk
MDVkNWM3ZWFiYzI0NjFmZTkwZjE2NmY1ZTczZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTgxLDYgKzgxLDggQEAKICNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJGcmFnbWVudENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgi
CisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEJveC5oIgogI2luY2x1ZGUgIlJlbmRl
clRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZVVwZGF0ZXIuaCIKQEAgLTM0MTYsNyArMzQx
OCw3IEBAIHZvaWQgRWxlbWVudDo6c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudChib29sIGZs
YWcpCiAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwogfQogCi1zdGF0
aWMgRWxlbWVudCogcGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoRWxlbWVudCogZWxlbWVu
dCkKK3N0YXRpYyBFbGVtZW50KiBwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmllcyhjb25zdCBF
bGVtZW50KiBlbGVtZW50KQogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICByZXR1cm4gZWxl
bWVudC0+cGFyZW50RWxlbWVudCgpID8gZWxlbWVudC0+cGFyZW50RWxlbWVudCgpIDogZWxlbWVu
dC0+ZG9jdW1lbnQoKS5vd25lckVsZW1lbnQoKTsKQEAgLTQxMjAsNCArNDEyMiw2NiBAQCB2b2lk
IEVsZW1lbnQ6OnNldEF0dHJpYnV0ZVN0eWxlTWFwKFJlZjxTdHlsZVByb3BlcnR5TWFwPiYmIG1h
cCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKK09wdGlvblNldDxUb3Vj
aEFjdGlvbj4gRWxlbWVudDo6Y29tcHV0ZWRUb3VjaEFjdGlvbnMoKSBjb25zdAoreworICAgIE9w
dGlvblNldDxUb3VjaEFjdGlvbj4gY29tcHV0ZWRUb3VjaEFjdGlvbnMgPSBUb3VjaEFjdGlvbjo6
QXV0bzsKKyAgICBmb3IgKGF1dG8qIGVsZW1lbnQgPSB0aGlzOyBlbGVtZW50OyBlbGVtZW50ID0g
cGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZWxlbWVudCkpIHsKKyAgICAgICAgYXV0byog
cmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOworICAgICAgICBpZiAoIXJlbmRlcmVyKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byB0b3VjaEFjdGlvbnMgPSByZW5k
ZXJlci0+c3R5bGUoKS50b3VjaEFjdGlvbnMoKTsKKworICAgICAgICAvLyBPbmNlIHdlJ3ZlIGVu
Y291bnRlcmVkIHRvdWNoLWFjdGlvbjogbm9uZSwgd2Uga25vdyB0aGF0IHRoaXMgd2lsbCBiZSB0
aGUgY29tcHV0ZWQgdmFsdWUuCisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rp
b246Ok5vbmUpCisgICAgICAgICAgICByZXR1cm4gdG91Y2hBY3Rpb25zOworCisgICAgICAgIC8v
IElmIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gc28gZmFyIHdhcyAiYXV0byIsIHdlIGNhbiBq
dXN0IHVzZSB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uLgorICAgICAgICBpZiAo
Y29tcHV0ZWRUb3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246OkF1dG8pIHsKKyAgICAgICAgICAg
IGNvbXB1dGVkVG91Y2hBY3Rpb25zID0gdG91Y2hBY3Rpb25zOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGhhcyB0
b3VjaC1hY3Rpb246IGF1dG8gb3IgdGhlIHNhbWUgdG91Y2gtYWN0aW9uIGFzIHRoZSBjb21wdXRl
ZCB0b3VjaC1hY3Rpb24sCisgICAgICAgIC8vIHdlIG5lZWQgdG8ga2VlcCBnb2luZyB1cCB0aGUg
YW5jZXN0cnkgY2hhaW4uCisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246
OkF1dG8gfHwgdG91Y2hBY3Rpb25zID09IGNvbXB1dGVkVG91Y2hBY3Rpb25zKQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgLy8gTm93LCB0aGUgZWxlbWVudCdzIHRvdWNoLWFjdGlv
biBhbmQgdGhlIGNvbXB1dGVkIHRvdWNoLWFjdGlvbiBhcmUgZGlmZmVyZW50IGFuZCBhcmUgbmVp
dGhlciAiYXV0byIgbm9yICJub25lIi4KKyAgICAgICAgaWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25z
ID09IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBj
b21wdXRlZCB0b3VjaC1hY3Rpb24gaXMgIm1hbmlwdWxhdGlvbiIsIHdlIGNhbiB0YWtlIHRoZSBj
dXJyZW50IGVsZW1lbnQncyB0b3VjaC1hY3Rpb24gYXMgdGhlIG5ld2x5CisgICAgICAgICAgICAv
LyBjb21wdXRlZCB0b3VjaC1hY3Rpb24uCisgICAgICAgICAgICBjb21wdXRlZFRvdWNoQWN0aW9u
cyA9IHRvdWNoQWN0aW9uczsKKyAgICAgICAgfSBlbHNlIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91
Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgeworICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBo
YXZlIGEgcmVzdHJpY3RlZCBjb21wdXRlZCB0b3VjaC1hY3Rpb24gc28gZmFyLiBJZiB0aGUgY3Vy
cmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uIGlzICJtYW5pcHVsYXRpb24iCisgICAgICAgICAg
ICAvLyB0aGVuIHdlIGNhbiBqdXN0IGtlZXAgZ29pbmcgYW5kIGxlYXZlIHRoZSBjb21wdXRlZCB0
b3VjaC1hY3Rpb24gdW50b3VjaGVkLgorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0K
KworICAgICAgICAvLyBJbiBhbnkgb3RoZXIgY2FzZSwgd2UgaGF2ZSBjb21wZXRpbmcgcmVzdHJp
Y3RpdmUgdG91Y2gtYWN0aW9uIHZhbHVlcyB0aGF0IGNhbiBvbmx5IHlpZWxkICJub25lIi4KKyAg
ICAgICAgcmV0dXJuIFRvdWNoQWN0aW9uOjpOb25lOworICAgIH0KKyAgICByZXR1cm4gY29tcHV0
ZWRUb3VjaEFjdGlvbnM7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcpCitTY3JvbGxpbmdOb2RlSUQgRWxlbWVudDo6bmVhcmVzdFNjcm9sbGlu
Z05vZGVJRFVzaW5nVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIGNvbnN0Cit7CisgICAgaWYgKCFy
ZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIFdlIGFyZSBub3QgaW50ZXJl
c3RlZCBpbiB0aGUgcm9vdCwgc28gY2hlY2sgdGhhdCB3ZSBhbHNvIGhhdmUgYSB2YWxpZCBwYXJl
bnQuCisgICAgZm9yIChhdXRvKiBsYXllciA9IHJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCk7
IGxheWVyICYmIGxheWVyLT5wYXJlbnQoKTsgbGF5ZXIgPSBsYXllci0+cGFyZW50KCkpIHsKKyAg
ICAgICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8g
c2Nyb2xsaW5nTm9kZUlEID0gbGF5ZXItPmJhY2tpbmcoKS0+c2Nyb2xsaW5nTm9kZUlERm9yUm9s
ZShTY3JvbGxDb29yZGluYXRpb25Sb2xlOjpTY3JvbGxpbmcpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBzY3JvbGxpbmdOb2RlSUQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRl
eCAxNjlmZGUxM2FkYjYyNzA0MWZkZDhiNWU2ZjViOGYyYWRjYjM4NmYzLi5lZDcyNmM5NWI5MjE1
MDUxMGE3NTU1NzQ1ZDAyNTdkODRiYzUxMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRl
ICJTY3JvbGxUb09wdGlvbnMuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUg
IlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdE1vZGUuaCIKICNp
bmNsdWRlICJTaW11bGF0ZWRDbGlja09wdGlvbnMuaCIKICNpbmNsdWRlICJTdHlsZUNoYW5nZS5o
IgpAQCAtNTYsNiArNTcsNyBAQCBjbGFzcyBQc2V1ZG9FbGVtZW50OwogY2xhc3MgUmVuZGVyVHJl
ZVBvc2l0aW9uOwogY2xhc3MgU3R5bGVQcm9wZXJ0eU1hcDsKIGNsYXNzIFdlYkFuaW1hdGlvbjsK
K2VudW0gY2xhc3MgVG91Y2hBY3Rpb24gOiB1aW50OF90Owogc3RydWN0IEVsZW1lbnRTdHlsZTsK
IHN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnM7CiAKQEAgLTU4OCw2ICs1OTAsMTQgQEAgcHVi
bGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmltYXRlKEpTQzo6RXhl
Y1N0YXRlJiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mJiwgT3B0aW9uYWw8VmFyaWFudDxk
b3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+JiYpOwogICAgIFZlY3RvcjxSZWZQdHI8
V2ViQW5pbWF0aW9uPj4gZ2V0QW5pbWF0aW9ucygpOwogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVkVG91
Y2hBY3Rpb25zKCkgY29uc3Q7CisjZW5kaWYKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcpCisgICAgV0VCQ09SRV9FWFBPUlQgU2Nyb2xsaW5nTm9kZUlEIG5lYXJl
c3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmLCBDb25zdHJ1Y3Rpb25UeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGNiODczODM5NmEz
YTU4ZWY0NTIwZWU1NDhjZjgzMWViNDE1NDcxYjguLjljYTc4NTlhYWYwZTMzZWE3YzIyYmNhZGEx
NTA5NmY4YzM0YzVkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTk5LDcgKzk5LDI1IEBAIEV2ZW50VHJh
Y2tpbmdSZWdpb25zIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNvbHV0ZUV2ZW50VHJhY2tpbmdS
ZWdpb25zRm9yRnJhbWUoCiAgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpOwog
ICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFdmVudFRyYWNraW5nUmVnaW9ucygp
OwotICAgIHJldHVybiBkb2N1bWVudC0+ZXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsKKyAgICBhdXRv
IGV2ZW50VHJhY2tpbmdSZWdpb25zID0gZG9jdW1lbnQtPmV2ZW50VHJhY2tpbmdSZWdpb25zKCk7
CisgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25SZWdpb24gPSBmcmFtZS5kb2N1
bWVudCgpLT5hYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhmcmFtZS5kb2N1bWVudCgpLT50
b3VjaEFjdGlvbkVsZW1lbnRzKCkpLmZpcnN0OworCisgICAgZm9yIChhdXRvKiBzdWJmcmFtZSA9
IGZyYW1lLnRyZWUoKS5maXJzdENoaWxkKCk7IHN1YmZyYW1lOyBzdWJmcmFtZSA9IHN1YmZyYW1l
LT50cmVlKCkubmV4dFNpYmxpbmcoKSkgeworICAgICAgICBhdXRvKiBzdWJmcmFtZVZpZXcgPSBz
dWJmcmFtZS0+dmlldygpOworICAgICAgICBpZiAoIXN1YmZyYW1lVmlldykKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIGlmIChhdXRvKiBzdWJmcmFtZURvY3VtZW50ID0gc3ViZnJh
bWUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIGF1dG8gc3ViZnJhbWVSZWdpb24gPSBzdWJm
cmFtZURvY3VtZW50LT5hYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhzdWJmcmFtZURvY3Vt
ZW50LT50b3VjaEFjdGlvbkVsZW1lbnRzKCkpLmZpcnN0OworICAgICAgICAgICAgLy8gTWFwIGZy
b20gdGhlIGZyYW1lIGRvY3VtZW50IHRvIG91ciBkb2N1bWVudC4KKyAgICAgICAgICAgIGF1dG8g
b2Zmc2V0ID0gc3ViZnJhbWVWaWV3LT5jb250ZW50c1RvQ29udGFpbmluZ1ZpZXdDb250ZW50cyhJ
bnRQb2ludCgpKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiB0aGlzIHRyYW5zbGF0aW9uIGlnbm9y
ZXMgbm9uLXRyaXZhbCB0cmFuc2Zvcm1zIG9uIHRoZSBmcmFtZS4KKyAgICAgICAgICAgIHN1YmZy
YW1lUmVnaW9uLnRyYW5zbGF0ZSh0b0ludFNpemUob2Zmc2V0KSk7CisgICAgICAgICAgICBldmVu
dFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvblJlZ2lvbi51bml0ZShzdWJmcmFtZVJlZ2lvbik7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAj
ZWxzZQogICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKICAgICBpZiAoIWZyYW1l
VmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHAKaW5kZXggNTI0MzkzZGQxNmFhNjM3ZmYxNjFkNjc1YjgwZmZkOTRlN2FhMTUwMC4uMzNhMmZm
YjdjNzQ3ZTYzMWRlMjkzOTY0OTI2YzkwMWU1ZGNiZDdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTI0Nyw2ICsyNDcsMTEgQEAg
VHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudE4KICAgICByZXR1cm4gbV9ldmVudFRyYWNraW5nUmVnaW9u
cy50cmFja2luZ1R5cGVGb3JQb2ludChldmVudE5hbWUsIHApOwogfQogCitib29sIFNjcm9sbGlu
Z1RyZWU6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChjb25zdCBJbnRQb2ludCBwKSBjb25z
dAoreworICAgIHJldHVybiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9uUmVnaW9u
LmNvbnRhaW5zKHApOworfQorCiBib29sIFNjcm9sbGluZ1RyZWU6OmlzUnViYmVyQmFuZEluUHJv
Z3Jlc3MoKQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsgICAgCkBAIC00MDMsNiAr
NDA4LDEyIEBAIFN0cmluZyBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkKICAg
ICByZXR1cm4gdHMucmVsZWFzZSgpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWU6OnNldFRvdWNo
QWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0
aW9ucywgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBpZiAoYXV0byog
c2Nyb2xsaW5nVHJlZU5vZGUgPSBub2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAg
c2Nyb2xsaW5nVHJlZU5vZGUtPnNldFRvdWNoQWN0aW9ucyh0b3VjaEFjdGlvbnMpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4
IGVmYzY4NDE1YzM5NDMwZGY3ZjI3MDQzZmU5ODIzMzI3NzU1Njc2MzIuLjM2OTMzMzJlYjM2ZWYx
ZDlhOGE0NDBlNTc3ZGJkYmNjNzAwMzliOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJQbGF0
Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3JvbGxp
bmdDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAiV2hl
ZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgpAQCAtMTA0LDcgKzEwNSw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAg
V0VCQ09SRV9FWFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50KTsKLSAgICAKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIG1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChjb25zdCBJbnRQb2ludCkg
Y29uc3Q7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVs
RXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIC8q
aG9yaXpvbnRhbEluZGV4Ki8sIHVuc2lnbmVkIC8qdmVydGljYWxJbmRleCovKSB7IH0KQEAgLTE1
MSw2ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBzY3JvbGxpbmdUcmVlQXNUZXh0KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRU
b3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiwgU2Ny
b2xsaW5nTm9kZUlEKTsKICAgICAKIHByb3RlY3RlZDoKICAgICB2b2lkIHNldE1haW5GcmFtZVNj
cm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5kZXggYmY3ZjYxYTM2MWI5M2I0N2RmZTQzNGUw
NWY5MzI4OGNjZjU5MGJiNi4uZmFiN2Y0YWU2MTVlYTZjMzgxZTViZjc2YjVhOTAyMTNmMzAyYWI1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
Tm9kZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNs
dWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlTm9k
ZS5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAKQEAgLTcwLDYgKzcxLDkgQEAgcHVibGlj
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wKFdURjo6VGV4dFN0cmVhbSYsIFNjcm9s
bGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKIAorICAgIE9wdGlvblNldDxUb3Vj
aEFjdGlvbj4gdG91Y2hBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbnM7IH0K
KyAgICB2b2lkIHNldFRvdWNoQWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0
aW9ucykgeyBtX3RvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQpOwogICAgIFNjcm9sbGluZ1RyZWUmIHNjcm9sbGluZ1RyZWUoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGluZ1RyZWU7IH0KQEAgLTg1LDYgKzg5LDcgQEAgcHJpdmF0ZToK
ICAgICBjb25zdCBTY3JvbGxpbmdOb2RlSUQgbV9ub2RlSUQ7CiAKICAgICBTY3JvbGxpbmdUcmVl
Tm9kZSogbV9wYXJlbnQ7CisgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBtX3RvdWNoQWN0aW9u
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcAppbmRleCA3ZTc2M2M4OTUzZGNhOGU2ZGQ3
Y2FjYWQ2MjUyNDA3YzcwYzVmODYzLi45ZmJlMTAwOGExMzZkYjMzZmExYjg0MTk1YjMwNGU1MzZi
NTIwOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5n
UmVnaW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuY3BwCkBAIC03Myw3ICs3Myw4IEBAIHZvaWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnVu
aXRlKGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9uCiBib29s
IG9wZXJhdG9yPT0oY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGEsIGNvbnN0IEV2ZW50VHJh
Y2tpbmdSZWdpb25zJiBiKQogewogICAgIHJldHVybiBhLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9uID09IGIuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24KLSAgICAgICAgJiYgYS5ldmVudFNw
ZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5ldmVudFNwZWNpZmljU3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbnM7CisgICAgICAgICYmIGEuZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zID09IGIuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb25zCisgICAgICAgICYmIGEudG91Y2hBY3Rpb25SZWdpb24gPT0gYi50b3VjaEFjdGlvblJl
Z2lvbjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKaW5kZXggM2Q1OGJhNTVlZmQ2M2VkOWJhZTQw
NTAxZTMwOWI4NjFmYzllOWMwNS4uYmJjZGJkYTNhYWE2ZmQxZGExMWM4NjRjMWNiNzdhYjExNjdj
NDNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9u
cy5oCkBAIC00Niw2ICs0Niw4IEBAIHN0cnVjdCBFdmVudFRyYWNraW5nUmVnaW9ucyB7CiAgICAg
Ly8gVGhlIGtleSBpcyB0aGUgRXZlbnQgTmFtZSB3aXRoIGFuIGFjdGl2ZSBoYW5kbGVyLgogICAg
IEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uczsKIAorICAgIFJlZ2lvbiB0b3VjaEFjdGlvblJlZ2lvbjsKKwogICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0OwogCiAgICAgdm9pZCB0cmFuc2xhdGUoSW50U2l6ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggMzRmOGYzYzNjODZlM2ZkZjk1
ZjE4NjA2YjZhY2E2MTMyZTVkOGVlMy4uOTA5MTcxMzk3MTNiM2FjZGMzMmJmMmM1ZDZiZTc1NTdk
MGIxNmZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApA
QCAtMjMyLDYgKzIzMiwxMCBAQCBFbGVtZW50VXBkYXRlcyBUcmVlUmVzb2x2ZXI6OnJlc29sdmVF
bGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgYXV0byBiZWZvcmVVcGRhdGUgPSByZXNvbHZl
UHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBQc2V1ZG9JZDo6QmVmb3JlKTsKICAgICBhdXRv
IGFmdGVyVXBkYXRlID0gcmVzb2x2ZVBzZXVkb1N0eWxlKGVsZW1lbnQsIHVwZGF0ZSwgUHNldWRv
SWQ6OkFmdGVyKTsKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgbV9kb2N1bWVudC51
cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKGVsZW1lbnQsIHVwZGF0ZS5zdHlsZS5nZXQoKSk7Cisj
ZW5kaWYKKwogICAgIHJldHVybiB7IFdURk1vdmUodXBkYXRlKSwgZGVzY2VuZGFudHNUb1Jlc29s
dmUsIFdURk1vdmUoYmVmb3JlVXBkYXRlKSwgV1RGTW92ZShhZnRlclVwZGF0ZSkgfTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYzc3NGJjNDFjODI5
NGYwODExNjcxZDZiNzRjYTg2ZDQ4ZWUxNzk0NC4uN2E0NzVhMTYzOGM2MGVlYjUzYjE3MmU4ZGYw
MmU1ZGRjMDlhOGFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC00MjIsNiArNDIyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAg
ICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gnOiBbJzxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5JzogWyc8V2ViQ29yZS9BdWRp
b1Nlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAorICAgICAgICAnV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlEJzogWyc8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRvci5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInOiBbJzxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlck9yQ2xpZW50RGF0YSc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+Jywg
JzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+JywgJzxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJ
ZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nLCAnPFdlYkNvcmUv
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDNiMDUyOWE0YTk1OWEyM2JkNWQw
NDBmNWZhMDA4YWQ3YjBmZWM3MWYuLjE2NDk1M2JjYjYxYTk0YjNmNDNmOWU1ZjI4ZjE2MmE5Mzdj
NWQwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcApAQCAtMzMzLDYgKzMzMyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5n
UmVnaW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFdmVudFRyCiB7CiAgICAg
ZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lv
bjsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKKyAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdp
b25zLnRvdWNoQWN0aW9uUmVnaW9uOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFj
a2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZlbnRUcmFja2luZ1JlZ2lv
bnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQpAQCAtMzQzLDggKzM0NCwxMiBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
RXZlbnRUcmFja2luZwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNT
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGV2ZW50
U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBSZWdpb24gdG91Y2hBY3Rpb25SZWdpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZSh0b3VjaEFjdGlvblJlZ2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBldmVudFRy
YWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IFdURk1vdmUoYXN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb24pOwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3Bl
Y2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9IFdURk1vdmUoZXZlbnRTcGVjaWZpY1N5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKTsKKyAgICBldmVudFRyYWNraW5nUmVnaW9ucy50b3Vj
aEFjdGlvblJlZ2lvbiA9IFdURk1vdmUodG91Y2hBY3Rpb25SZWdpb24pOwogICAgIHJldHVybiB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCAwNzRjZGRmZDI3ODRlODY5MTI4ZDAyMGJlZDU5MjEzYTFjYmRkZTY4Li4wZmRl
NzgxYzU3ODE4ZDczY2JjNDAyODhkYWMwZTFiNzk1ZDlkMzI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI1ODAsNiArMjU4MCwxMiBA
QCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9s
bFZpZXcgd2l0aFZlbG9jaXR5OihDR1BvaQogICAgIC8vIHpvb21pbmcuIFdlJ2xsIGFuaW1hdGUg
dG8gdGhlIHJpZ2h0IHBsYWNlIG9uY2UgdGhlIHpvb20gZmluaXNoZXMuCiAgICAgaWYgKFtzY3Jv
bGxWaWV3IGlzWm9vbWluZ10pCiAgICAgICAgICp0YXJnZXRDb250ZW50T2Zmc2V0ID0gW3Njcm9s
bFZpZXcgY29udGVudE9mZnNldF07CisgICAgZWxzZSB7CisgICAgICAgIGlmIChbX2NvbnRlbnRW
aWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKQorICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9m
ZnNldC0+eCA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNldC54OworICAgICAgICBpZiAoW19jb250
ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSkKKyAgICAgICAgICAgIHRhcmdldENvbnRl
bnRPZmZzZXQtPnkgPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueTsKKyAgICB9CiAjaWYgRU5B
QkxFKENTU19TQ1JPTExfU05BUCkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBpZiAo
V2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9w
YWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkpIHsKICAgICAgICAgLy8gRklYTUU6IEhl
cmUsIEknbSBmaW5kaW5nIHRoZSBtYXhpbXVtIGhvcml6b250YWwvdmVydGljYWwgc2Nyb2xsIG9m
ZnNldHMuIFRoZXJlJ3MgcHJvYmFibHkgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMuCkBAIC0yNjE3
LDYgKzI2MjMsMjAgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xsVG9Ub3A6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsKIH0KIAor
LSAoQ0dQb2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3Rl
ZE9mZnNldEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJh
bnNsYXRpb24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2lu
dClsb2NhdGlvbkluVmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZl
cnRpY2FsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7CisgICAgaWYgKCFbX2NvbnRlbnRW
aWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdICYmICFbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFu
bmluZ0luWUF4aXNdKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAgQ0dQb2ludCBhZGp1
c3RlZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShvZmZzZXQueCwgb2Zmc2V0LnkpOworICAg
IGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKQorICAgICAgICBhZGp1
c3RlZENvbnRlbnRPZmZzZXQueCA9IHN0YXJ0Lng7CisgICAgaWYgKFtfY29udGVudFZpZXcgcHJl
dmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC55ID0g
c3RhcnQueTsKKworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisKIC0gKHZv
aWQpc2Nyb2xsVmlld0RpZFNjcm9sbDooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAg
IGlmICghW3NlbGYgdXNlc1N0YW5kYXJkQ29udGVudFZpZXddICYmIFtfY3VzdG9tQ29udGVudFZp
ZXcgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJfc2Nyb2xsVmlld0RpZFNjcm9sbDop
XSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApp
bmRleCBhMzY3ZTE1ZjAwNTM2ZjhjYjVjODUwOTA3YWI0M2E3YzMxNjY3MzBhLi4xYzJhNTUxZjMw
Nzc0Nzg5MmQwNzg3OTIwYzJmZWI3NmRjZjdhOTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xNjQsNiArMTY0LDExIEBAIFRyYWNr
aW5nVHlwZSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpldmVudFRyYWNraW5nVHlw
ZUZvclBvaW50KGNvbnN0IEF0CiAgICAgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZS0+ZXZlbnRUcmFj
a2luZ1R5cGVGb3JQb2ludChldmVudE5hbWUsIHApOwogfQogCitib29sIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChJbnRQb2ludCBw
KSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGluZ1RyZWUtPm1heUhhdmVUb3VjaEFjdGlv
bnNGb3JQb2ludChwKTsKK30KKwogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
Ojp2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlEIG5v
ZGVJRCwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlKQog
ewogICAgIG1fc2Nyb2xsaW5nVHJlZS0+dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xs
aW5nKG5vZGVJRCwgZml4ZWRQb3NpdGlvblJlY3QsIHNjYWxlKTsKQEAgLTIwNSw2ICsyMTAsMTIg
QEAgU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVB
c1RleHQoKSBjb25zdAogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCit2b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05v
ZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9kZUlE
IHNjcm9sbGluZ05vZGVJRCkKK3sKKworICAgIG1fc2Nyb2xsaW5nVHJlZS0+c2V0VG91Y2hBY3Rp
b25zRm9yU2Nyb2xsaW5nTm9kZUlEKHRvdWNoQWN0aW9ucywgc2Nyb2xsaW5nTm9kZUlEKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5k
ZXggYjMyZDc5ZmU5Mjg5YjE0NTdjOGVhZDJkOGQzNWMzYjc5ZGFlYzk2YS4uYzY5ODcyOWNiNzll
N2Q4MDc1ZTI1NjJjYjRhZGQ3ZmQyYmVkYThhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAogICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSBl
dmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBX
ZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CisgICAgYm9vbCBtYXlIYXZlVG91Y2hBY3Rpb25zRm9y
UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OwogCiAgICAgLy8gQ2FsbGVkIGV4dGVybmFs
bHkgd2hlbiBuYXRpdmUgdmlld3MgbW92ZSBhcm91bmQuCiAgICAgdm9pZCB2aWV3cG9ydENoYW5n
ZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpOwpAQCAt
OTcsNiArOTgsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFN0cmluZyBzY3JvbGxpbmdUcmVl
QXNUZXh0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2Rl
SUQoT3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlEKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbm5lY3RTdGF0ZU5vZGVMYXllcnMoV2ViQ29y
ZTo6U2Nyb2xsaW5nU3RhdGVUcmVlJiwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlSG9zdCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tCmluZGV4IDRjYzdlMWE4N2I4NWFjNzA2MzdlMTVmNDRjYzFlNGY4ZjkyMTljNGMu
LjE4MTNlZWZkYWRhNDE4NjgyOTNhMTcyMThhNDZmZmVjMjQxZjliMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1Mu
bW0KQEAgLTY3LDkgKzY3LDI1IEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxCZWdpbkRyYWdnaW5n
OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdh
dGUtPnNjcm9sbFdpbGxTdGFydCgpOwogfQogCi0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkK
IC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xs
VmlldyB3aXRoVmVsb2NpdHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDoo
aW5vdXQgQ0dQb2ludCAqKXRhcmdldENvbnRlbnRPZmZzZXQKIHsKKyAgICBpZiAoIVtzY3JvbGxW
aWV3IGlzWm9vbWluZ10pIHsKKyAgICAgICAgYXV0byB0b3VjaEFjdGlvbnMgPSBfc2Nyb2xsaW5n
VHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnRvdWNoQWN0aW9ucygpOworICAgICAg
ICBpZiAodG91Y2hBY3Rpb25zICE9IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvICYmIHRvdWNo
QWN0aW9ucyAhPSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKSB7CisgICAgICAg
ICAgICBib29sIGNhblBhblggPSB0cnVlOworICAgICAgICAgICAgYm9vbCBjYW5QYW5ZID0gdHJ1
ZTsKKyAgICAgICAgICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNo
QWN0aW9uOjpQYW5YKSkgeworICAgICAgICAgICAgICAgIGNhblBhblggPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICB0YXJnZXRDb250ZW50T2Zmc2V0LT54ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zm
c2V0Lng7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250
YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWSkpIHsKKyAgICAgICAgICAgICAgICBjYW5Q
YW5ZID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eSA9IHNj
cm9sbFZpZXcuY29udGVudE9mZnNldC55OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorCisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBDR0Zsb2F0IGhvcml6b250YWxU
YXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT54OwogICAgIENHRmxvYXQgdmVydGljYWxUYXJn
ZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT55OwogCkBAIC05Niw4ICsxMTIsOCBAQCAtICh2b2lk
KXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0
aFZlbG9jaXR5OihDR1BvaQogICAgICAgICB8fCBvcmlnaW5hbFZlcnRpY2FsU25hcFBvc2l0aW9u
ICE9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudFZl
cnRpY2FsU25hcFBvaW50SW5kZXgoKSkgewogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxl
Z2F0ZS0+Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoX3Njcm9sbGluZ1RyZWVOb2Rl
RGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5jdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4
KCksIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudFZl
cnRpY2FsU25hcFBvaW50SW5kZXgoKSk7CiAgICAgfQotfQogI2VuZGlmCit9CiAKIC0gKHZvaWQp
c2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxE
ZWNlbGVyYXRlOihCT09MKXdpbGxEZWNlbGVyYXRlCiB7CkBAIC0xMDUsNiArMTIxLDcgQEAgLSAo
dm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcg
d2lsbERlY2VsZXJhdGU6KEJPT0wKICAgICAgICAgX2luVXNlckludGVyYWN0aW9uID0gTk87CiAg
ICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNj
cm9sbFZpZXcuY29udGVudE9mZnNldCwgX2luVXNlckludGVyYWN0aW9uKTsKICAgICAgICAgX3Nj
cm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbERpZEVuZCgpOworICAgICAgICBfc2Nyb2xs
aW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnNldFRvdWNoQWN0aW9ucyhXZWJD
b3JlOjpUb3VjaEFjdGlvbjo6QXV0byk7CiAgICAgfQogfQogCkBAIC0xMTQsOSArMTMxLDMyIEBA
IC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Ny
b2xsVmlldwogICAgICAgICBfaW5Vc2VySW50ZXJhY3Rpb24gPSBOTzsKICAgICAgICAgX3Njcm9s
bGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmlldy5jb250
ZW50T2Zmc2V0LCBfaW5Vc2VySW50ZXJhY3Rpb24pOwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5v
ZGVEZWxlZ2F0ZS0+c2Nyb2xsRGlkRW5kKCk7CisgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURl
bGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuc2V0VG91Y2hBY3Rpb25zKFdlYkNvcmU6OlRvdWNoQWN0
aW9uOjpBdXRvKTsKICAgICB9CiB9CiAKKy0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0
IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3Rh
cnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9j
aXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2
dgoreworICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUt
PnNjcm9sbGluZ05vZGUoKS50b3VjaEFjdGlvbnMoKTsKKyAgICBpZiAodG91Y2hBY3Rpb25zID09
IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvIHx8IHRvdWNoQWN0aW9ucyA9PSBXZWJDb3JlOjpU
b3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAg
Q0dQb2ludCBhZGp1c3RlZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShvZmZzZXQueCwgb2Zm
c2V0LnkpOworCisgICAgYm9vbCBjYW5QYW5YID0gdHJ1ZTsKKyAgICBib29sIGNhblBhblkgPSB0
cnVlOworICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9u
OjpQYW5YKSkgeworICAgICAgICBhZGp1c3RlZENvbnRlbnRPZmZzZXQueCA9IHN0YXJ0Lng7Cisg
ICAgICAgIGNhblBhblggPSBmYWxzZTsKKyAgICB9CisgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29u
dGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblkpKSB7CisgICAgICAgIGFkanVzdGVkQ29u
dGVudE9mZnNldC55ID0gc3RhcnQueTsKKyAgICAgICAgY2FuUGFuWSA9IGZhbHNlOworICAgIH0K
KworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisKIEBlbmQKIAogbmFtZXNw
YWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGRl
OTg2OTRhYTM3ZGIzYzdmMmNlMjdjYzgyOWE5MjAwMjExZGUxMGQuLjU2YzRjNmZlMGFmNDA0MjUz
ZThjYmFiYjg3NGJhODEzYzgyZmE1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC04MSw5ICs4MSwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQcm9kdWNl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRv
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9UZXh0Q2hlY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRHcmFudWxhcml0eS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Vz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC02ODAsNiArNjgyLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uKTsKICAgICB2b2lkIHJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbik7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJh
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+KTsKK2Jvb2wgaXNTY3Jv
bGxpbmdPclpvb21pbmcoKSBjb25zdCB7IHJldHVybiBtX2lzU2Nyb2xsaW5nT3Jab29taW5nOyB9
CiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKQEAgLTExNTYsNiAr
MTE1OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2
b2lkIHRhcEhpZ2hsaWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIHVp
bnQ2NF90JiByZXF1ZXN0SUQpOwogICAgIHZvaWQgaGFuZGxlVGFwKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmLCB1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFy
dCk7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBib29sIG1heUhhdmVUb3VjaEFjdGlv
bnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmKSBjb25zdDsKKyAgICBWZWN0b3I8
c3RkOjpwYWlyPE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4sIFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVJRD4+IHRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVu
dCYpOworI2VuZGlmCiAKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRp
b24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNl
YXJjaEVuZGVkQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKaW5kZXggYTdmZmZmNzhmMzBhNzBmNGZjNTkwZDcwNWExZDE5ZTNhMzg4MWJlZi4uZDY4OGEx
MTIwZmI5ZDdhNDViNGFmYWRkMWM3ODk3OGRiODNiNWM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMTk2
LDYgKzE5Niw4IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgUmV0YWluUHRy
PFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRXZlbnRHZXN0dXJlUmVj
b2duaXplcjsKIAogICAgIEJPT0wgX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5Owor
ICAgIEJPT0wgX3ByZXZlbnRzUGFubmluZ0luWEF4aXM7CisgICAgQk9PTCBfcHJldmVudHNQYW5u
aW5nSW5ZQXhpczsKIAogICAgIFJldGFpblB0cjxXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJl
Y29nbml6ZXI+IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8X1VJ
V2ViSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI+IF9oaWdobGlnaHRMb25nUHJl
c3NHZXN0dXJlUmVjb2duaXplcjsKQEAgLTM0OSw2ICszNTEsOCBAQCBzdHJ1Y3QgV0tBdXRvQ29y
cmVjdGlvbkRhdGEgewogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBjb25zdCBXZWJL
aXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb247
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJV2ViRm9ybUFjY2Vzc29yeSAqZm9y
bUFjY2Vzc29yeVZpZXc7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVGV4dElu
cHV0QXNzaXN0YW50SXRlbSAqaW5wdXRBc3Npc3RhbnRJdGVtRm9yV2ViVmlldzsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZlbnRzUGFubmluZ0luWUF4aXM7
CiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcpIFVJVmlldyA8V0tGb3JtQ29udHJvbD4gKmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zSW5w
dXRWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggM2U1MjkyYTc4YzJhY2Y0NjFhNjgyOTNiM2FhYzQy
MmM5MGQ3YjNjNS4uOWM1ZWZiMGJkMGEyMWE2ZTViMzczNTA4ZmIxMmMyNzI3NGYzOTQwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50LmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJUb3VjaEV2ZW50LmgiCiAjaW1wb3J0ICJSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCisjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmgiCiAjaW1wb3J0ICJTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVy
LmgiCiAjaW1wb3J0ICJUZXh0SW5wdXRTUEkuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCkBAIC05
MSw2ICs5Miw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Njcm9sbGJhci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TaGFyZURhdGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgorI2lt
cG9ydCA8V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9WaXNpYmxlU2Vs
ZWN0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dyaXRpbmdEaXJlY3Rpb24uaD4KQEAgLTYxNSw2ICs2MTcsMTYgQEAgc3RhdGljIGlubGluZSBi
b29sIGhhc0ZvY3VzZWRFbGVtZW50KFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiBm
b2N1c2VkRWwKICAgICByZXR1cm4gKGZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5
cGUgIT0gV2ViS2l0OjpJbnB1dFR5cGU6Ok5vbmUpOwogfQogCistIChCT09MKXByZXZlbnRzUGFu
bmluZ0luWEF4aXMKK3sKKyAgICByZXR1cm4gX3ByZXZlbnRzUGFubmluZ0luWEF4aXM7Cit9CisK
Ky0gKEJPT0wpcHJldmVudHNQYW5uaW5nSW5ZQXhpcworeworICAgIHJldHVybiBfcHJldmVudHNQ
YW5uaW5nSW5ZQXhpczsKK30KKwogLSAoV0tGb3JtSW5wdXRTZXNzaW9uICopX2Zvcm1JbnB1dFNl
c3Npb24KIHsKICAgICByZXR1cm4gX2Zvcm1JbnB1dFNlc3Npb24uZ2V0KCk7CkBAIC04NjEsNiAr
ODczLDkgQEAgLSAodm9pZCljbGVhbnVwSW50ZXJhY3Rpb24KICAgICBfaGFzU2V0VXBJbnRlcmFj
dGlvbnMgPSBOTzsKICAgICBfc3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25zID0geyB9
OwogICAgIF9pc1pvb21pbmdUb1JldmVhbEZvY3VzZWRFbGVtZW50ID0gTk87CisKKyAgICBfcHJl
dmVudHNQYW5uaW5nSW5YQXhpcyA9IE5POworICAgIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzID0g
Tk87CiB9CiAKIC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKQEAgLTEx
MjgsMTYgKzExNDMsNTYgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihVSVdl
YlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKICAgICBXZWJLaXQ6Ok5h
dGl2ZVdlYlRvdWNoRXZlbnQgbmF0aXZlV2ViVG91Y2hFdmVudChsYXN0VG91Y2hFdmVudCk7CiAg
ICAgbmF0aXZlV2ViVG91Y2hFdmVudC5zZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoIV9jYW5T
ZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSB8fCBbZ2VzdHVyZVJlY29nbml6ZXIgaXNEZWZh
dWx0UHJldmVudGVkXSk7CiAKKyAgICBpZiAoX3BhZ2UtPm1heUhhdmVUb3VjaEFjdGlvbnNGb3JU
b3VjaEV2ZW50KG5hdGl2ZVdlYlRvdWNoRXZlbnQpKSB7CisgICAgICAgIGZvciAoYXV0byB0b3Vj
aEFjdGlvbnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyIDogX3BhZ2UtPnRvdWNoQWN0aW9uc0ZvclRv
dWNoRXZlbnQobmF0aXZlV2ViVG91Y2hFdmVudCkpIHsKKyAgICAgICAgICAgIGF1dG8gdG91Y2hB
Y3Rpb25zID0gdG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpci5maXJzdDsKKyAgICAg
ICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok5vbmUpCisg
ICAgICAgICAgICAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVmYXVsdFBy
ZXZlbnRlZDpZRVNdOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gRGlz
YWJsZSBhbGwgdGFwLXJlbGF0ZWQgcmVjb2duaXplcnMuCisgICAgICAgICAgICAgICAgW19zaW5n
bGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBb
X25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107Cisg
ICAgICAgICAgICAgICAgW190d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRF
bmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBbX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOworICAgICAgICAgICAgICAgIFtfdHdvRmluZ2VyU2lu
Z2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgICAgICAgICAgICAg
W19zdHlsdXNTaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAg
ICAgICAgICAgICBbX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOwor
ICAgICAgICAgICAgICAgIFtfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpO
T107CisgICAgICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6
VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1
dG8gc2Nyb2xsaW5nTm9kZUlEID0gdG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpci5z
ZWNvbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxpbmdDb29y
ZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNldFRvdWNoQWN0aW9uc0Zv
clNjcm9sbGluZ05vZGVJRCh0b3VjaEFjdGlvbnMsIHNjcm9sbGluZ05vZGVJRCk7CisgICAgICAg
ICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvdWNo
QWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGluY2hab29tKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfd2ViVmlldy5zY3JvbGxWaWV3LnBpbmNoR2VzdHVyZVJl
Y29nbml6ZXIuZW5hYmxlZCA9IE5POworICAgICAgICAgICAgICAgICAgICAgICAgX3ByZXZlbnRz
UGFubmluZ0luWEF4aXMgPSAhdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0
aW9uOjpQYW5YKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9wcmV2ZW50c1Bhbm5pbmdJbllB
eGlzID0gIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJv
bm91c2x5KQogICAgICAgICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KG5h
dGl2ZVdlYlRvdWNoRXZlbnQpOwogICAgIGVsc2UKICAgICAgICAgX3BhZ2UtPmhhbmRsZVRvdWNo
RXZlbnRTeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNoRXZlbnQpOwogCi0gICAgaWYgKG5hdGl2
ZVdlYlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKQorICAgIGlmIChuYXRp
dmVXZWJUb3VjaEV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkgewogICAgICAgICBf
Y2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgPSBOTzsKKworICAgICAgICBpZiAoIV9w
YWdlLT5pc1Njcm9sbGluZ09yWm9vbWluZygpKQorICAgICAgICAgICAgW3NlbGYgX3Jlc2V0UGFu
bmluZ1ByZXZlbnRpb25GbGFnc107CisgICAgfQogI2VuZGlmCiB9CiAKKy0gKHZvaWQpX3Jlc2V0
UGFubmluZ1ByZXZlbnRpb25GbGFncworeworICAgIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzID0g
Tk87CisgICAgX3ByZXZlbnRzUGFubmluZ0luWUF4aXMgPSBOTzsKK30KKwogLSAodm9pZClfaW5z
cGVjdG9yTm9kZVNlYXJjaFJlY29nbml6ZWQ6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJl
UmVjb2duaXplcgogewogICAgIEFTU0VSVChfaW5zcGVjdG9yTm9kZVNlYXJjaEVuYWJsZWQpOwpA
QCAtMjE5NCw2ICsyMjQ5LDggQEAgLSAodm9pZClfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nCiAg
ICAgfQogICAgIF9wYWdlLT5zZXRJc1Njcm9sbGluZ09yWm9vbWluZyhmYWxzZSk7CiAKKyAgICBb
c2VsZiBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXTsKKwogI2lmIFBMQVRGT1JNKFdBVENI
T1MpCiAgICAgW19mb2N1c2VkRm9ybUNvbnRyb2xWaWV3IGVuZ2FnZUZvY3VzZWRGb3JtQ29udHJv
bE5hdmlnYXRpb25dOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbQppbmRleCBiOWJkNzBjOWJlZTEwNjllMWI0ZjEyMzA5OGI5Y2FlMTJk
NjQ4N2M1Li40NGUzODFiZmYwYWJjMjhjNTI4MTE5MTM0MDE2ZWZhYjU4MmUxNTlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTQxLDYg
KzQxLDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNp
bXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2ltcG9y
dCAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKKyNpbXBvcnQgIlJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0ICJVc2Vy
RGF0YS5oIgogI2ltcG9ydCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCkBAIC04MjQs
NiArODI1LDI0IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCB1CiAgICAgcHJvY2VzcygpLnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlBvdGVudGlhbFRhcEF0UG9zaXRpb24ocmVxdWVzdElELCBwb3Np
dGlvbiksIG1fcGFnZUlEKTsKIH0KIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCitib29sIFdl
YlBhZ2VQcm94eTo6bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91
Y2hFdmVudCYgZXZlbnQpIGNvbnN0Cit7CisgICAgZm9yIChhdXRvJiB0b3VjaFBvaW50IDogZXZl
bnQudG91Y2hQb2ludHMoKSkgeworICAgICAgICBpZiAodG91Y2hQb2ludC5waGFzZSgpID09IFdl
YlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVzc2VkICYmIG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS0+bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclBvaW50KHRvdWNoUG9pbnQubG9jYXRpb24o
KSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitWZWN0b3I8c3RkOjpwYWlyPE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4sIFdl
YkNvcmU6OlNjcm9sbGluZ05vZGVJRD4+IFdlYlBhZ2VQcm94eTo6dG91Y2hBY3Rpb25zRm9yVG91
Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiBldmVudCkKK3sKKyAgICBWZWN0b3I8c3RkOjpw
YWlyPE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4sIFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRD4+IHRvdWNoQWN0aW9uczsKKyAgICBwcm9jZXNzKCkuc2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhZ2U6OlRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoZXZlbnQpLCBNZXNzYWdlczo6V2ViUGFn
ZTo6VG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudDo6UmVwbHkodG91Y2hBY3Rpb25zKSwgbV9wYWdl
SUQpOworICAgIHJldHVybiB0b3VjaEFjdGlvbnM7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdl
UHJveHk6OmNvbW1pdFBvdGVudGlhbFRhcCh1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklk
QXRMYXN0VG91Y2hTdGFydCkKIHsKICAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6Q29tbWl0UG90ZW50aWFsVGFwKGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0
YXJ0KSwgbV9wYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDcxNWUxMjQ1MjBmZjA3NmI5NjBhZWQ3MGU5YjkyMDc1YTY1NTJhZWYuLjU4ZTVi
NmU0NWJmMDBkY2QwZmMyNzlmYmI2MmQwYjI1OTdjZmQ4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTYxOCw2ICs2MTgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2b2lkIGNhbmNlbFBvdGVudGlhbFRh
cEluRnJhbWUoV2ViRnJhbWUmKTsKICAgICB2b2lkIHRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWlu
dDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CisgICAgdm9pZCB0
b3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmLCBWZWN0b3I8c3Rk
OjpwYWlyPE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4sIFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRD4+Jik7CiAKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRp
b24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNl
YXJjaEVuZGVkQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpp
bmRleCA1NGFiYmFmODkzNGNjZGNmOGU0ZjIwZjc4M2ZjYjZiOWYwMzA0MGViLi4zN2ZlZDMzM2I5
NzJkYThmYzkyYTQ0NjU1ZTU1MjA2ZDM1YzA5NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTEwOCw2ICsxMDgs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBDYW5jZWxBdXRv
c2Nyb2xsKCkKICAgICBSZXF1ZXN0Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbihXZWJLaXQ6OkNh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hh
bmdlZCgpCisgICAgVG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudChXZWJLaXQ6OldlYlRvdWNoRXZl
bnQgZXZlbnQpIC0+IChWZWN0b3I8c3RkOjpwYWlyPE9wdGlvblNldDxXZWJDb3JlOjpUb3VjaEFj
dGlvbj4sIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRD4+IHRvdWNoQWN0aW9ucykgTGVnYWN5U3lu
YwogI2VuZGlmCiAKICAgICBTZXRDb250cm9sbGVkQnlBdXRvbWF0aW9uKGJvb2wgY29udHJvbGxl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQ
YWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KaW5kZXggMDY2OTZjMDY1Y2M3NzQ4YzFjYmRlMDA1NDVlMzczNjRlYTY5NGU1My4uYjYx
NTIyNWQ0N2ZlNGUxNTQ2OTEyYjNjZTI4ZGM2ZjViODMwMGU3ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEwMyw2ICsx
MDMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1vdXNlRXZlbnQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmVuZGVyQmxvY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVySW1hZ2UuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyTGF5ZXJCYWNraW5nLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1JlbmRlclRoZW1lSU9TLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CkBAIC04NjIsNiArODYzLDI5
IEBAIHZvaWQgV2ViUGFnZTo6dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0CiAgICAgc2VuZFRhcEhpZ2hsaWdodEZvck5vZGVJ
Zk5lY2Vzc2FyeShyZXF1ZXN0SUQsIG1haW5mcmFtZS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVu
dHMocG9zaXRpb24sIGFkanVzdGVkUG9pbnQpKTsKIH0KIAordm9pZCBXZWJQYWdlOjp0b3VjaEFj
dGlvbnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIGV2ZW50LCBWZWN0b3I8c3Rk
OjpwYWlyPE9wdGlvblNldDxUb3VjaEFjdGlvbj4sIFNjcm9sbGluZ05vZGVJRD4+JiB0b3VjaEFj
dGlvbnMpCit7CisgICAgbGF5b3V0SWZOZWVkZWQoKTsKKworI2lmIEVOQUJMRShJT1NfVE9VQ0hf
RVZFTlRTKQorICAgIGF1dG8mIGV2ZW50SGFuZGxlciA9IG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZl
bnRIYW5kbGVyKCk7CisgICAgZm9yIChhdXRvJiB0b3VjaCA6IGV2ZW50LnRvdWNoUG9pbnRzKCkp
IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBldmVudEhhbmRsZXIuaGl0VGVzdFJlc3VsdEF0UG9p
bnQoKHRvdWNoLmxvY2F0aW9uKCkpLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0
UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93
Q29udGVudCB8IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50KTsKKyAgICAg
ICAgc3RkOjpwYWlyPE9wdGlvblNldDxUb3VjaEFjdGlvbj4sIFNjcm9sbGluZ05vZGVJRD4gdG91
Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpcjsKKyAgICAgICAgaWYgKGF1dG8qIGVsZW1l
bnQgPSByZXN1bHQuaW5uZXJOb25TaGFyZWRFbGVtZW50KCkpIHsKKyAgICAgICAgICAgIHRvdWNo
QWN0aW9uc0FuZFNjcm9sbGluZ05vZGVJRFBhaXIuZmlyc3QgPSBlbGVtZW50LT5jb21wdXRlZFRv
dWNoQWN0aW9ucygpOworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcp
CisgICAgICAgICAgICAvLyBOb3cgd2Ugc2hvdWxkIGFsc28gbG9vayB0byBzZWUgaWYgb3VyIGVs
ZW1lbnQgaXMgb3IgaXMgY29udGFpbmVkIHdpdGhpbiBhbiAib3ZlcmZsb3ctc2Nyb2xsOiB0b3Vj
aCIgZWxlbWVudAorICAgICAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gcmVwb3J0IGl0cyBsYXll
ciBpZCB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgICAgIGlmIChhdXRvIHNjcm9sbGluZ05v
ZGVJRCA9IGVsZW1lbnQtPm5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dT
Y3JvbGxpbmcoKSkKKyAgICAgICAgICAgICAgICB0b3VjaEFjdGlvbnNBbmRTY3JvbGxpbmdOb2Rl
SURQYWlyLnNlY29uZCA9IHNjcm9sbGluZ05vZGVJRDsKKyNlbmRpZgorICAgICAgICB9CisgICAg
ICAgIHRvdWNoQWN0aW9ucy5hcHBlbmQodG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFp
cik7CisgICAgfQorI2VuZGlmCit9CisKIHZvaWQgV2ViUGFnZTo6aW5zcGVjdG9yTm9kZVNlYXJj
aE1vdmVkVG9Qb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKIHsKICAgICBJbnRQ
b2ludCBhZGp1c3RlZFBvaW50ID0gcm91bmRlZEludFBvaW50KHBvc2l0aW9uKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAx
NzM2NjBhNmQ2ZDM5MzE0YzI3ZTdjYjAwZTdiM2M5NzRlZjJjYTNlLi40YWNjOTYzZDU4MmIxODVk
NTNmZmVkYWNjMTcwM2Y2MGRhNTIwZmI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTktMDEt
MTUgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBMaW1pdCB1
c2VyLWFnZW50IGludGVyYWN0aW9ucyBiYXNlZCBvbiB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM0NDcK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3MjgzODc0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBzZXJpZXMgb2YgdGVzdHMgdGhh
dCBjaGVjayB0aGF0IHRoZSAibm9uZSIsICJwYW4teCIsICJwYW4teSIgYW5kICJwaW5jaC16b29t
IiB2YWx1ZXMgaGF2ZSB0aGUgZXhwZWN0ZWQKKyAgICAgICAgaW1wYWN0IG9uIHBhZ2UgcGFubmlu
ZyBvbiBpT1MuCisKKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29u
ZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMtaW4t
aGllcmFyY2h5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1ub25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9s
bGluZy10b3VjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUuaHRtbDogQWRkZWQu
CisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4t
eC1wYW4teS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcGFuLXguaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAx
LTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFZpc3VhbFZp
ZXdwb3J0IEFQSSBzaG91bGQgYmUgdXBkYXRlZCB1cG9uIG9wZW5pbmcgb2Yga2V5Ym9hcmQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25m
bGljdGluZy12YWx1ZXMtaW4taGllcmFyY2h5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMtaW4taGllcmFy
Y2h5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTBiOGY3MmVhNzRiMzhhZGUyMTM0NTkzZDI2
NTIxOGQyYjliYjBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIGNvbmZs
aWN0aW5nIHRvdWNoLWFjdGlvbiB2YWx1ZXMgb24gdGhlIHRhcmdldCBlbGVtZW50IGFuZCBwYXJl
bnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJh
cmNoeS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLWNv
bmZsaWN0aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWI1MDc2YmJl
YmU2YjFlMTM0YTVhMDVhYTRlOGMzMGQwOGY0ZjNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0aW5nLXZhbHVlcy1p
bi1oaWVyYXJjaHkuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
CisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDog
IjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53
aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBw
eCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teCI7CisKKyAg
ICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXkiOworCisgICAgdWkuc3dpcGUoeyB4
OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNj
cm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBh
Z2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIp
OworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGlu
ZyBjb25mbGljdGluZyB0b3VjaC1hY3Rpb24gdmFsdWVzIG9uIHRoZSB0YXJnZXQgZWxlbWVudCBh
bmQgcGFyZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzI3ZThhZjgxYmQ5ODRjOGMzNDA3MDU1MWFmNWI2MWU5MjcwZmY4
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1ub25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5n
IHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gZWxlbWVudCBwcmV2ZW50cyBw
YWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI4NTg0MTAzMjM5ZjFiYzdmN2U5ZmViNzUzN2Y1Yzk5N2U5OWUyNzcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tbm9uZS1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BB
U1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIGluIGNvbnRlbnQgaG9z
dGVkIGluIGFuIGlmcmFtZSBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
aW4taWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI4YjgyYjMzNWQzZGJjOTU2MTQ1MWRiNTAwODM0
MjEyMGFmZjgzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj
YWxlPTEiPgorPHN0eWxlPgorCitpZnJhbWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICBsZWZ0OiAwOworICAgIHRvcDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0
MDBweDsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZT48L2lmcmFtZT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3Vz
ZSBzdHJpY3QnOworCithc3luY190ZXN0KHRlc3QgPT4geworICAgIGNvbnN0IGlmcmFtZSA9IGRv
Y3VtZW50LmJvZHkuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgY29uc3QgdGFyZ2V0ID0gaWZyYW1l
LmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpKTsKKyAgICB0YXJnZXQuc2V0QXR0cmlidXRlKCJzdHlsZSIsIGAKKyAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwOworICAgICAgICB0b3A6IDA7CisgICAg
ICAgIHdpZHRoOiAyMDAlOworICAgICAgICBoZWlnaHQ6IDIwMCU7CisgICAgICAgIHRvdWNoLWFj
dGlvbjogbm9uZTsKKyAgICBgKTsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwg
eyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2lu
ZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1h
eGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRo
ZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5k
b25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBu
b25lIGluIGNvbnRlbnQgaG9zdGVkIGluIGFuIGlmcmFtZSBwcmV2ZW50cyBwYWdlIHNjcm9sbGlu
Zy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93
LXNjcm9sbGluZy10b3VjaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMwMDcyOTEwMjQ1ZWY1
NzU4N2ViZTljNTJjOWZhYmMwNTMyZDFjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGlu
Zy10b3VjaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0
IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIGluIGNvbnRlbnQgaG9zdGVkIGluIGEgc2Nyb2xs
YWJsZSBjb250YWluZXIgdXNpbmcgJy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaCcg
cHJldmVudHMgc2Nyb2xsaW5nIG9mIHRoYXQgY29udGFpbmVyLiAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ct
c2Nyb2xsaW5nLXRvdWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45ZTk2MTRmZmVmY2VmYmVhZmU2NzQxNzRiNTgxNTQxYzBmMjM1MTQxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4t
b3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+
Cis8c3R5bGU+CisKKyNzY3JvbGxpbmctY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhl
aWdodDogNDAwcHg7CisgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAtd2Via2l0LW92ZXJmbG93
LXNjcm9sbGluZzogdG91Y2g7Cit9CisKKyNzY3JvbGxpbmctY29udGFpbmVyID4gZGl2IHsKKyAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lk
dGg6IDIwMCU7CisgICAgaGVpZ2h0OiAyMDAlOworICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKK30K
KworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ic2Nyb2xsaW5nLWNvbnRhaW5l
ciI+PGRpdj48L2Rpdj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCithc3luY190ZXN0KHRlc3QgPT4gewor
ICAgIGNvbnN0IHNjcm9sbGluZ0NvbnRhaW5lciA9IGRvY3VtZW50LmJvZHkuZmlyc3RFbGVtZW50
Q2hpbGQ7CisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdDb250YWluZXIu
c2Nyb2xsTGVmdCwgMCwgIlRoZSBzY3JvbGxpbmcgY29udGFpbmVyIHdhcyBub3Qgc2Nyb2xsZWQg
aW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdDb250YWlu
ZXIuc2Nyb2xsVG9wLCAwLCAiVGhlIHNjcm9sbGluZyBjb250YWluZXIgd2FzIG5vdCBzY3JvbGxl
ZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJU
ZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0ZWQg
aW4gYSBzY3JvbGxhYmxlIGNvbnRhaW5lciB1c2luZyAnLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxp
bmc6IHRvdWNoJyBwcmV2ZW50cyBzY3JvbGxpbmcgb2YgdGhhdCBjb250YWluZXIuIik7CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LW9uLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NzUx
YmRkN2MzNDYyYTFlMDg2ZmZjNzNmMzUzZWQ0NGRhZjdmYmMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRp
bmcgdG91Y2gtYWN0aW9uOiBub25lIG9uIGFuIGlmcmFtZSBhbmQgaW50ZXJhY3Rpbmcgd2l0aCBp
dHMgY29udGVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1s
IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZy
YW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDkyN2VhOGRiNDYxNzQzNDFjNTFhMGM0Y2M1MjUzZTViNjIw
N2EyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEi
PgorPHN0eWxlPgorCitpZnJhbWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0
OiAwOworICAgIHRvcDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsK
KyAgICB0b3VjaC1hY3Rpb246IG5vbmU7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxpZnJhbWU+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKworYXN5bmNfdGVzdCh0ZXN0ID0+IHsKKyAg
ICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5ib2R5LmZpcnN0RWxlbWVudENoaWxkOworICAgIGNv
bnN0IHRhcmdldCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgic3R5
bGUiLCBgCisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMDsKKyAg
ICAgICAgdG9wOiAwOworICAgICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgaGVpZ2h0OiAyMDAl
OworICAgIGApOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5
OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhP
ZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2Fz
IG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAg
ICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4g
aWZyYW1lIGFuZCBpbnRlcmFjdGluZyB3aXRoIGl0cyBjb250ZW50IHByZXZlbnRzIHBhZ2Ugc2Ny
b2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMDJiMTMwNDk2OGEyOTFlYWRkMTM3Mzk1MjZmYzBkOGNiZTJhMjliCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0
aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYSBwYXJlbnQgZWxlbWVudCBw
cmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sIGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWE0ODA3OTNmNzkwYTVjODYyNDE3NjlmOTkzMWU4ZjQ4MGNmM2I3NAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1u
b25lLW9uLXBhcmVudC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0
OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxl
LndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAw
MHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnRvdWNoQWN0aW9uID0gIm5vbmUiOworCisg
ICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUg
cGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBp
biB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0
aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYSBwYXJlbnQgZWxlbWVudCBw
cmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQwMGI4M2Ji
OThlNGFlNWRkYzlhNTljOTg2NzJhNmEwMzI5Y2U4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWwKQEAgLTAsMCAr
MSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
dXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRf
dGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkg
PT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1
bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRv
dWNoQWN0aW9uID0gIm5vbmUiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7
IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5k
b3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4
aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhl
IHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRv
bmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5v
bmUgb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4t
eC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdlNzgzNzlkZjQ1YTcxNzc0NzZjOGJlN2I1ZDY0
MDQwZjBhYWNkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1wYW4teC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50
IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB5LWF4aXMuIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBh
bi14LXBhbi15LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTk3YmRlMzI3ZmMyOWMzYWU0Yjc4
MGExMTE2NDdjZDY4ZmQ1ZjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyAndG91Y2gtYWN0aW9uOiBwYW4t
eCBwYW4teScgb24gYW4gZWxlbWVudCBhbGxvd3MgcGFnZSBzY3JvbGxpbmcgaW4gYm90aCBheGVz
LiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXBhbi14LXBhbi15Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjI5MWE0ZDhjNjdjMjIxNTFj
MjI5ZDgzN2Q3MWE4ZjNkMDBhYjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwKQEAgLTAsMCArMSwz
MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGlu
aXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRp
bHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVz
dCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4g
eworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVu
dC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNo
QWN0aW9uID0gInBhbi14IHBhbi15IjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAg
fSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9ub3RfZXF1
YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUg
eC1heGlzLiIpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQs
IDAsICJUaGUgcGFnZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVz
dC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgJ3RvdWNoLWFjdGlv
bjogcGFuLXggcGFuLXknIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugc2Nyb2xsaW5nIGluIGJv
dGggYXhlcy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGFuLXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjkyMDVmN2VmNWRhMmNhYjcwMDE5
Y2ZiOGVhNzBmOTVkNzdjNmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2Nh
bGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRo
OiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRv
Y3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0
eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0g
InBhbi14IjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTog
NTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdl
WE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBu
b3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAg
fSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBl
bGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB5LWF4aXMuIik7CisKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
cGFuLXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZjY1OGMzODY0MjI2NzE1YWU2N2VhNDJm
YmI5Mjg2ODA2OTI4NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGFuLXggb24gYW4gZWxl
bWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeC1heGlzLiAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45MDkwZDM5NjAxZmJlZTE3YmZkMWI5NWYyNDNlOWZhYmM1MjI3OTVlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBhbi15Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3Vz
ZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBw
eCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGgg
PSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOwor
CisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi15IjsKKworICAgIHVpLnN3aXBl
KHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5v
dCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3
aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHktYXhp
cy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNl
dHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Ny
b2xsaW5nIGluIHRoZSB4LWF4aXMuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5j
aC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTRlNjc2MTVl
MmE1OTk4ZjMzMzNmOTBmZGEzMGRkMWRjYTVhNDY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpv
b21pbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBz
ZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IGFsbG93cyBwYWdl
IHpvb21pbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sIGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZGE2M2M5NDI5ZTFhYTEzOTAyNmVkNDMxM2NlYTZkNWQ0Nzg3OTc2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbApAQCAtMCwwICsxLDI5IEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3Bv
cnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj
YWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0
aDogIjQwMHB4IiwgaGVpZ2h0OiAiNDAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBk
b2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5z
dHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9
ICJwaW5jaC16b29tIjsKKworICAgIHVpLnBpbmNoT3V0KHsgeDogNTAsIHk6IDUwLCB3aWR0aDog
MTAwLCBoZWlnaHQ6IDEwMCwgc2NhbGU6IDAuNSB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNz
ZXJ0X25vdF9lcXVhbHMod2luZG93LmludGVybmFscy5wYWdlU2NhbGVGYWN0b3IoKSwgMSwgIlRo
ZSBwYWdlIHdhcyBzY2FsZWQuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwg
IlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVt
ZW50IGFsbG93cyBwYWdlIHpvb21pbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYwYzg1YjlhYTU1MmRmOWI3MWQ5YWU0Mzk3NDA1MGUwYzI4OTk4MDAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9v
bS1wcmV2ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVt
ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xs
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGlu
Y2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjM0MWM2MjE1MDdh
M2VlODM3MzRkMjc3MTNkODRiZmY1NTlkN2RkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Ny
b2xsaW5nLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3Vz
ZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBw
eCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGgg
PSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOwor
CisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBpbmNoLXpvb20iOworCisgICAgdWku
c3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3
YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
d2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUg
eS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRo
YXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBpbmNoLXpvb20gb24gYW4gZWxlbWVudCBwcmV2ZW50
cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359260</attachid>
            <date>2019-01-16 00:34:07 -0800</date>
            <delta_ts>2019-01-17 02:10:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190116093405.patch</filename>
            <type>text/plain</type>
            <size>74649</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZhZGNlOWZiZjc1YTQx
YjJmNjJiNjVmM2EyOTNjOTE2ZWM4MmNiYi4uZTg2YTFhOWY5NWFiOGU2YzBhYWZlYzA3OGRiY2Fh
Mzc0MDZhY2E3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDE5LTAxLTE1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21wdXRlCisgICAgICAgIGEgUmVnaW9uIGNvbnRhaW5pbmcgdGhlIGJvdW5kcyBvZiBlYWNoIG9m
IHRob3NlIGVsZW1lbnRzIGFuZCBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFsb25nIHdp
dGggdG91Y2ggcmVnaW9ucy4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHdlIGFsbG93IGEgbGlz
dCBvZiBhbGxvd2VkIHRvdWNoIGFjdGlvbnMgdG8gYmUgY29tcHV0ZWQgZm9yIGEgZ2l2ZW4gZWxl
bWVudCBhY2NvdW50aW5nIGZvciBub3Qgb25seSB0aGUgdmFsdWUgc3BlY2lmaWVkCisgICAgICAg
IGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxlLCBidXQgYWxzbyBpbiBpdHMgaGllcmFy
Y2h5LCBjcm9zc2luZyBhbnkgZnJhbWUgYm91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRv
Y3VtZW50J3Mgcm9vdCBub2RlLgorCisgICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCisgICAgICAg
ICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4t
b3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwK
KyAgICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1s
CisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tYWxsb3dzLXpvb21pbmcuaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwgICAgICAgICAg
ICAgICAKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5v
ZGVXaWxsQmVSZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJv
bSB0aGlzIGRvY3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qg
b2YgZWxlbWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRl
IGEgbGlzdCBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5
IGlmIG9uZSBkb2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0
aGUgZ2l2ZW4gZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwg
b3IgcmVtb3ZlIGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0
aGF0IGxpc3QgY2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBp
cyBpbmZvcm1lZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojp0b3VjaEFjdGlvbkVsZW1lbnRzIGNvbnN0KToKKyAgICAgICAgKiBkb20vRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmll
cyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpjb21wdXRlZFRvdWNoQWN0aW9ucyBjb25z
dCk6IFByb3ZpZGUgdGhlIGxpc3Qgb2YgYWxsb3dlZCB0b3VjaCBhY3Rpb25zIGFjY291bnRpbmcg
Zm9yIHRoZSAidG91Y2gtYWN0aW9uIiBwcm9wZXJ0eQorICAgICAgICBzcGVjaWZpZWQgb24gdGhp
cyBlbGVtZW50IGFuZCBhbGwgb2YgaXRzIGhpZXJhcmNoeSwgY3Jvc3NpbmcgZnJhbWUgYm91bmRh
cnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNp
bmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nIGNvbnN0KTogUHJvdmlkZSB0aGUgU2Nyb2xsaW5nTm9k
ZUlELCBpZiBhbnksIGZvciB0aGUgbmVhcmVzdCBzY3JvbGxpbmcgbm9kZQorICAgICAgICBmb3Ig
dGhhdCBlbGVtZW50LiBUaGlzIHdpbGwgYWxsb3cgdGhlIFVJIHByb2Nlc3MgdG8gaWRlbnRpZnkg
d2hpY2ggc2Nyb2xsIHZpZXcncyBiZWhhdmlvciB0byBjdXN0b21pemUgdG8gcmVmbGVjdCB0aGUg
ZWxlbWVudCdzIGFsbG93ZWQKKyAgICAgICAgdG91Y2ggYWN0aW9ucy4KKyAgICAgICAgKiBkb20v
RWxlbWVudC5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNvbHV0ZUV2
ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUgY29uc3QpOiBDb21wdXRlIHRoZSByZWdpb24gZm9y
IGFsbCBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5CisgICAg
ICAgIHRocm91Z2hvdXQgdGhlIHByb3ZpZGVkIGZyYW1lIGFuZCBhbGwgb2YgaXRzIHN1YmZyYW1l
cy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludCBjb25z
dCk6IFByb3ZpZGUgYSBxdWljayB3YXkgdG8gaW5kZW50aWZ5IHdoZXRoZXIgdGhlIHByb3ZpZGVk
IHBvaW50IGlzIGNvbnRhaW5lZCBpbiB0aGUgcmVnaW9uCisgICAgICAgIG9mIGVsZW1lbnRzIHdp
dGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZU5vZGU6OnRvdWNoQWN0aW9ucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlTm9kZTo6c2V0VG91Y2hBY3Rpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9FdmVudFRyYWNr
aW5nUmVnaW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG8p
OiBFbnN1cmUgdGhlIHJlZ2lvbiBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0
aW9uIHByb3BlcnR5IGlzIHVwZGF0ZWQgd2hlbiBzY3JvbGxpbmcgaGFzIG9jY3VyZWQuCisgICAg
ICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQpOiBVcGRhdGUgdGhlIGxpc3Qgb2YgZWxl
bWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB3aGVuIGFuIGVsZW1l
bnQncyBzdHlsZSBjaGFuZ2VzLgorCiAyMDE5LTAxLTE1ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9u
b3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV2luQ2Fpcm8gYnVpbGQg
Zml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBiYzIxNjQ3NmU2YTA2NGY4NjBkODdlNTBkYzhjZWU3NDU0ODQ2NDEz
Li4xMjJlMTEwMTNjODlkYjg2Yzk5NTk1MGRjNWQ2MGVkNDc1MDg0Mjc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDU4IEBACisyMDE5LTAxLTE1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5j
b20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhl
IHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUg
dGhlICJub25lIiwgInBhbi14IiwgInBhbi15IiBhbmQgInBpbmNoLXpvb20iIHZhbHVlcyBmb3Ig
dGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSBieSBxdWVyeWluZyB0aGUgc2Nyb2xsaW5nIHRyZWUg
d2hlbmV2ZXIgYSB0b3VjaCBiZWdpbnMKKyAgICAgICAgdG8gaWRlbnRpZnkgd2hldGhlciBpdHMg
cG9pbnQgbWF5IGJlIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHJlZ2lvbiBvZiBlbGVtZW50cyB3aXRo
IGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5LiBJZiBpdCBpcywgd2UgY2FsbCBpbnRv
IHRoZQorICAgICAgICBXZWIgcHJvY2Vzcywgc3luY2hyb25vdXNseSwgdG8gY29tcGlsZSB0aGUg
bGlzdCBvZiBwZXJtaXR0ZWQgdG91Y2ggYWN0aW9ucyBzdWNoIHRoYXQgd2UgbWF5IHRoZW4gY3Vz
dG9taXplIHRoZSBiZWhhdmlvciBvZiB0aGUgbmVhcmVzdCBzY3JvbGwgdmlldworICAgICAgICB0
byBwYW4gb3Igem9vbSBvbmx5IGFzIGluc3RydWN0ZWQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46
OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lv
bnM+OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
OgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzp3aXRoVmVs
b2NpdHk6dGFyZ2V0Q29udGVudE9mZnNldDpdKTogQWNjb3VudCBmb3IgcGFubmluZyBjb25zdHJh
aW50cyBzZXQgb24gdGhlIGNvbnRlbnQgdmlldyB0byBwcmV2ZW50IGRlY2VsZXJhdGlvbgorICAg
ICAgICB0byBwYW4gdGhlIHZpZXcgaWYgaXQgb3VnaHQgbm90LgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX3Njcm9sbFZpZXc6YWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6dHJhbnNsYXRpb246c3RhcnRQ
b2ludDpsb2NhdGlvbkluVmlldzpob3Jpem9udGFsVmVsb2NpdHk6dmVydGljYWxWZWxvY2l0eTpd
KTogSW1wbGVtZW50IGFuIGFkZGl0aW9uYWwgVUlTY3JvbGxWaWV3CisgICAgICAgIGRlbGVnYXRp
b24gbWV0aG9kIHRvIGFwcGx5IHRoZSBwYW5uaW5nIGNvbnN0cmFpbnRzIHNldCBvbiB0aGUgY29u
dGVudCB2aWV3IHdoaWxlIHBhbm5pbmcuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6bWF5SGF2ZVRvdWNoQWN0aW9uc0Zv
clBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tOgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVT
Y3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzp3aXRoVmVsb2NpdHk6
dGFyZ2V0Q29udGVudE9mZnNldDpdKTogQXBwbHkgdGhlIHNhbWUgbG9naWMgYXMgaW4gV0tXZWJW
aWV3LgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xs
Vmlld0RpZEVuZERyYWdnaW5nOndpbGxEZWNlbGVyYXRlOl0pOiBSZXNldCB0aGUgdG91Y2ggYWN0
aW9ucyBmb3IgdGhlIGFzc29jaWF0ZWQgc2Nyb2xsIG5vZGUgdG8gc3RhcnQgdGhlIG5leHQgaW50
ZXJhY3Rpb24KKyAgICAgICAgaW4gdGhlIGRlZmF1bHQgc3RhdGUuCisgICAgICAgICgtW1dLU2Ny
b2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kRGVjZWxlcmF0aW5n
Ol0pOiBSZXNldCB0aGUgdG91Y2ggYWN0aW9ucyBmb3IgdGhlIGFzc29jaWF0ZWQgc2Nyb2xsIG5v
ZGUgdG8gc3RhcnQgdGhlIG5leHQgaW50ZXJhY3Rpb24gaW4gdGhlCisgICAgICAgIGRlZmF1bHQg
c3RhdGUuCisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBfc2Ny
b2xsVmlldzphZGp1c3RlZE9mZnNldEZvck9mZnNldDp0cmFuc2xhdGlvbjpzdGFydFBvaW50Omxv
Y2F0aW9uSW5WaWV3Omhvcml6b250YWxWZWxvY2l0eTp2ZXJ0aWNhbFZlbG9jaXR5Ol0pOiBBcHBs
eSB0aGUgc2FtZSBsb2dpYyBhcyBpbiBXS1dlYlZpZXcuCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzU2Nyb2xsaW5n
T3Jab29taW5nIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4
aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW51cEludGVyYWN0aW9uXSk6IFJlc2V0IHRo
ZSBwYW5uaW5nIHByZXZlbnRpb24gaXZhcnMgdG8gdGhlaXIgZGVmYXVsdCBzdGF0ZS4KKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOl0pOiBBcyB3ZSBw
cm9jZXNzIHRvdWNoZXMsIGNoZWNrIHdoZXRoZXIgdGhlcmUgbWF5IGJlIHRvdWNoIGFjdGlvbnMg
c2V0IGZvciB0aGlzIHRvdWNoJ3MgbG9jYXRpb24sIGFuZCBpZiB3ZSBoYXZlbid0IGV4Y2x1ZGVk
CisgICAgICAgIHRoYXQgcG9zc2liaWxpdHksIGNhbGwgaW50byB0aGUgV2ViIHByb2Nlc3Mgc3lu
Y2hyb25vdXNseSB0byBmaW5kIHdoaWNoIHRvdWNoIGFjdGlvbnMgdGhlc2UgbWlnaHQgYmUgZXhh
Y3RseS4gVGhlbiwgYmFzZWQgb24gdGhvc2UgdG91Y2ggYWN0aW9ucywgZWl0aGVyIHNldERlZmF1
bHRQcmV2ZW50ZWQKKyAgICAgICAgb24gdGhlIF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIg
aWYgdGhlIHRvdWNoIGFjdGlvbiBpcyAibm9uZSIgb3Igc2VsZWN0aXZlbHkgZGlzYWJsZSBwYW5u
aW5nIGFuZCB6b29taW5nIGFzIHdlbGwgYXMgYWxsIHRoZSBvdGhlciB0YXAtcmVsYXRlZCB1c2Vy
IGludGVyYWN0aW9ucy4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVzZXRQYW5uaW5nUHJl
dmVudGlvbkZsYWdzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZEVuZFNjcm9sbGlu
Z09yWm9vbWluZ10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JU
b3VjaEV2ZW50IGNvbnN0KTogQ2hlY2sgYWxsIHRvdWNoIHBvaW50cyBmb3IgYSBnaXZlbiBldmVu
dCB0byBzZWUgaWYgaXQgbWlnaHQgaGF2ZSBhc3NvY2lhdGVkIHRvdWNoIGFjdGlvbnMuIFRoaXMg
Y2hlY2tzIHRoYXQKKyAgICAgICAgdGhlc2UgYXJlIG5ldyB0b3VjaGVzIGFuZCB0aGF0IHRoZWly
IGxvY2F0aW9uIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHRvdWNoIGFjdGlvbiByZWdpb24gY29t
cHV0ZWQgaW4gdGhlIFdlYiBwcm9jZXNzIGFuZCBzZW50IHRvIHRoZSBVSSBwcm9jZXNzLiAKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0b3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KTog
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRv
dWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQpOiBJdGVyYXRlIG92ZXIgYWxsIHRvdWNoIHBvaW50cyBm
b3IgYSBnaXZlbiBldmVudCBhbmQgcmV0dXJuLCBpZiB0aGVyZSBpcyBhIG5vbi1hdXRvIHRvdWNo
IGFjdGlvbiBzZXQsIGNyZWF0ZSBhIHBhaXIgY29uc2lzdGluZyBvZiBhCisgICAgICAgIGxpc3Qg
b2YgdG91Y2gtYWN0aW9ucyBhbmQgdGhlIHNjcm9sbGluZyBub2RlIElEIGZvciB0aGUgbmVhcmVz
dCBzY3JvbGwgbm9kZSB0byB0aGUgZWxlbWVudCB0aGF0IGhpdCB0ZXN0cyBmb3IgdGhpcyBsb2Nh
dGlvbi4KKwogMjAxOS0wMS0xNSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIFdpbkNhaXJvIGJ1aWxkIGZpeC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiOTZm
YTJkZWM0MWU0OWUzMTQxNDJkMGI2NDUyMmJhM2M3OTI0YzZhLi4yOTc4YTY3YTQxZDJlYTM4MzQz
ODc2ZmE4YmU4NmE0ZWZiNTg5NjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTk1MSw2ICszMTk1MSw3IEBACiAJCQkJNDlF
OTEyQUUwRUZBQzkwNjAwOUQwQ0FGIC8qIFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjU0REQwODE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2guaCBpbiBIZWFkZXJzICovLAog
CQkJCTcxQjdFRTBEMjFCNUM2ODcwMDMxQzFFRiAvKiBUb3VjaEFjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNzFCN0VFMEQyMUI1QzY4NzAwMzFDMUVGIC8qIFRvdWNoQWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjU0REQwOTE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2hFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY1NEREMEExODgxRDVGNTAwM0VFREJCIC8qIFRvdWNoTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFz
ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmZTVjOTUxYmM2
NGQ2NjJkYWVjNTE1ZjllNDNlYTRlYzkwNGU4MWM2Li5hOThiNDIxNmNhZWM5ZjMzMzZjNDA1MTI2
MDliNzY4NTkxMmQ0YzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOCw2ICsyMDgs
NyBAQAogI2luY2x1ZGUgIlRleHRBdXRvU2l6aW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50Lmgi
CiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5o
IgogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIK
ICNpbmNsdWRlICJVbmRvTWFuYWdlci5oIgpAQCAtNDE0Miw2ICs0MTQzLDEyIEBAIHZvaWQgRG9j
dW1lbnQ6OmludmFsaWRhdGVSZW5kZXJpbmdEZXBlbmRlbnRSZWdpb25zKEFubm90YXRpb25zQWN0
aW9uIGFubm90YXRpb25zCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQogICAgIHNldFRvdWNoRXZlbnRSZWdpb25zTmVlZFVwZGF0ZSgpOworICAgIGlm
IChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZVZp
ZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRv
ciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAgICAgICAgc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0V2ZW50VHJhY2tpbmdSZWdpb25zQ2hhbmdlZCgqZnJh
bWVWaWV3KTsKKyAgICAgICAgfQorICAgIH0KICNlbmRpZgogfQogCkBAIC00NTI2LDYgKzQ1MzMs
MTEgQEAgdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgbm9kZSkKIAogICAg
IGlmIChpczxUZXh0Pihub2RlKSkKICAgICAgICAgbV9tYXJrZXJzLT5yZW1vdmVNYXJrZXJzKCZu
b2RlKTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKG1fdG91Y2hBY3Rpb25F
bGVtZW50cykKKyAgICAgICAgbV90b3VjaEFjdGlvbkVsZW1lbnRzLT5yZW1vdmVBbGwoJm5vZGUp
OworI2VuZGlmCiB9CiAKIHN0YXRpYyBOb2RlKiBmYWxsYmFja0ZvY3VzTmF2aWdhdGlvblN0YXJ0
aW5nTm9kZUFmdGVyUmVtb3ZhbChOb2RlJiBub2RlKQpAQCAtODY0OCw0ICs4NjYwLDMzIEBAIHZv
aWQgRG9jdW1lbnQ6OnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFtZShjb25zdCBTdHJp
bmcmIG5hbWUsIFJlZjxQYWludFdvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCit2b2lkIERvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmIG5vZGUs
IFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBpZiAoIW1fdG91Y2hBY3Rpb25FbGVtZW50cykK
KyAgICAgICAgbV90b3VjaEFjdGlvbkVsZW1lbnRzID0gc3RkOjptYWtlX3VuaXF1ZTxFdmVudFRh
cmdldFNldD4oKTsKKworICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOworCisgICAgaWYgKHN0eWxl
ICYmIHN0eWxlLT50b3VjaEFjdGlvbnMoKSAhPSBUb3VjaEFjdGlvbjo6QXV0bykKKyAgICAgICAg
Y2hhbmdlZCB8PSBtX3RvdWNoQWN0aW9uRWxlbWVudHMtPmFkZCgmbm9kZSkuaXNOZXdFbnRyeTsK
KyAgICBlbHNlCisgICAgICAgIGNoYW5nZWQgfD0gbV90b3VjaEFjdGlvbkVsZW1lbnRzLT5yZW1v
dmVBbGwoJm5vZGUpOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBpZiAoIWNoYW5nZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2Uq
IHBhZ2UgPSB0aGlzLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgaWYgKFNj
cm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVW
aWV3RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFuZ2VkKCpmcmFtZVZpZXcpOworICAgIH0KKyNlbmRp
ZgorfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggZWI0NDU1MWNjYWYzNGEwOWI4OTM3OGFhODcxMzQ5NzcxMzk2ZTMxOS4uODg2ODg4ZWE5
ODRhNzQ3MzYzOWYwZTZlOGIzY2IzYWY5MTUyNjRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTEyNzMsNiArMTI3Myw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAg
IGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJzKCkgY29uc3QgeyByZXR1cm4gKG1fdG91Y2hFdmVu
dFRhcmdldHMuZ2V0KCkpID8gbV90b3VjaEV2ZW50VGFyZ2V0cy0+c2l6ZSgpIDogZmFsc2U7IH0K
ICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29udGFpbihOb2RlJiBub2RlKSBjb25zdCB7IHJl
dHVybiBtX3RvdWNoRXZlbnRUYXJnZXRzID8gbV90b3VjaEV2ZW50VGFyZ2V0cy0+Y29udGFpbnMo
Jm5vZGUpIDogZmFsc2U7IH0KKyAgICB2b2lkIHVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMoTm9k
ZSYsIFJlbmRlclN0eWxlKik7CiAjZWxzZQogICAgIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJz
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29u
dGFpbihOb2RlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEyOTIsNiArMTI5MywxNSBA
QCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICBjb25zdCBFdmVudFRhcmdldFNldCogdG91
Y2hBY3Rpb25FbGVtZW50cygpIGNvbnN0CisgICAgeworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CisgICAgICAgIHJldHVybiBtX3RvdWNoQWN0aW9uRWxlbWVudHMuZ2V0KCk7CisjZWxzZQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorICAgIH0KKwogICAgIGNvbnN0IEV2ZW50VGFy
Z2V0U2V0KiB3aGVlbEV2ZW50VGFyZ2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxFdmVudFRh
cmdldHMuZ2V0KCk7IH0KIAogICAgIHR5cGVkZWYgc3RkOjpwYWlyPFJlZ2lvbiwgYm9vbD4gUmVn
aW9uRml4ZWRQYWlyOwpAQCAtMTg3Myw2ICsxODgzLDcgQEAgcHJpdmF0ZToKICAgICAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudFRhcmdldFNldD4g
bV90b3VjaEV2ZW50VGFyZ2V0czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+
IG1fdG91Y2hBY3Rpb25FbGVtZW50czsKICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVu
dFRhcmdldFNldD4gbV93aGVlbEV2ZW50VGFyZ2V0czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IGRhNWNkMmYwODFjMWU4OGY4MTExZWZmZjMyNmRmMjAyNjQ0NGM0M2EuLjQyZDU1NTE0Mzlk
MDVkNWM3ZWFiYzI0NjFmZTkwZjE2NmY1ZTczZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTgxLDYgKzgxLDggQEAKICNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJGcmFnbWVudENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgi
CisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEJveC5oIgogI2luY2x1ZGUgIlJlbmRl
clRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZVVwZGF0ZXIuaCIKQEAgLTM0MTYsNyArMzQx
OCw3IEBAIHZvaWQgRWxlbWVudDo6c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudChib29sIGZs
YWcpCiAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwogfQogCi1zdGF0
aWMgRWxlbWVudCogcGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoRWxlbWVudCogZWxlbWVu
dCkKK3N0YXRpYyBFbGVtZW50KiBwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmllcyhjb25zdCBF
bGVtZW50KiBlbGVtZW50KQogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICByZXR1cm4gZWxl
bWVudC0+cGFyZW50RWxlbWVudCgpID8gZWxlbWVudC0+cGFyZW50RWxlbWVudCgpIDogZWxlbWVu
dC0+ZG9jdW1lbnQoKS5vd25lckVsZW1lbnQoKTsKQEAgLTQxMjAsNCArNDEyMiw2NiBAQCB2b2lk
IEVsZW1lbnQ6OnNldEF0dHJpYnV0ZVN0eWxlTWFwKFJlZjxTdHlsZVByb3BlcnR5TWFwPiYmIG1h
cCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKK09wdGlvblNldDxUb3Vj
aEFjdGlvbj4gRWxlbWVudDo6Y29tcHV0ZWRUb3VjaEFjdGlvbnMoKSBjb25zdAoreworICAgIE9w
dGlvblNldDxUb3VjaEFjdGlvbj4gY29tcHV0ZWRUb3VjaEFjdGlvbnMgPSBUb3VjaEFjdGlvbjo6
QXV0bzsKKyAgICBmb3IgKGF1dG8qIGVsZW1lbnQgPSB0aGlzOyBlbGVtZW50OyBlbGVtZW50ID0g
cGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZWxlbWVudCkpIHsKKyAgICAgICAgYXV0byog
cmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOworICAgICAgICBpZiAoIXJlbmRlcmVyKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byB0b3VjaEFjdGlvbnMgPSByZW5k
ZXJlci0+c3R5bGUoKS50b3VjaEFjdGlvbnMoKTsKKworICAgICAgICAvLyBPbmNlIHdlJ3ZlIGVu
Y291bnRlcmVkIHRvdWNoLWFjdGlvbjogbm9uZSwgd2Uga25vdyB0aGF0IHRoaXMgd2lsbCBiZSB0
aGUgY29tcHV0ZWQgdmFsdWUuCisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rp
b246Ok5vbmUpCisgICAgICAgICAgICByZXR1cm4gdG91Y2hBY3Rpb25zOworCisgICAgICAgIC8v
IElmIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gc28gZmFyIHdhcyAiYXV0byIsIHdlIGNhbiBq
dXN0IHVzZSB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uLgorICAgICAgICBpZiAo
Y29tcHV0ZWRUb3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246OkF1dG8pIHsKKyAgICAgICAgICAg
IGNvbXB1dGVkVG91Y2hBY3Rpb25zID0gdG91Y2hBY3Rpb25zOworICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGhhcyB0
b3VjaC1hY3Rpb246IGF1dG8gb3IgdGhlIHNhbWUgdG91Y2gtYWN0aW9uIGFzIHRoZSBjb21wdXRl
ZCB0b3VjaC1hY3Rpb24sCisgICAgICAgIC8vIHdlIG5lZWQgdG8ga2VlcCBnb2luZyB1cCB0aGUg
YW5jZXN0cnkgY2hhaW4uCisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246
OkF1dG8gfHwgdG91Y2hBY3Rpb25zID09IGNvbXB1dGVkVG91Y2hBY3Rpb25zKQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgLy8gTm93LCB0aGUgZWxlbWVudCdzIHRvdWNoLWFjdGlv
biBhbmQgdGhlIGNvbXB1dGVkIHRvdWNoLWFjdGlvbiBhcmUgZGlmZmVyZW50IGFuZCBhcmUgbmVp
dGhlciAiYXV0byIgbm9yICJub25lIi4KKyAgICAgICAgaWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25z
ID09IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBj
b21wdXRlZCB0b3VjaC1hY3Rpb24gaXMgIm1hbmlwdWxhdGlvbiIsIHdlIGNhbiB0YWtlIHRoZSBj
dXJyZW50IGVsZW1lbnQncyB0b3VjaC1hY3Rpb24gYXMgdGhlIG5ld2x5CisgICAgICAgICAgICAv
LyBjb21wdXRlZCB0b3VjaC1hY3Rpb24uCisgICAgICAgICAgICBjb21wdXRlZFRvdWNoQWN0aW9u
cyA9IHRvdWNoQWN0aW9uczsKKyAgICAgICAgfSBlbHNlIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91
Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgeworICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBo
YXZlIGEgcmVzdHJpY3RlZCBjb21wdXRlZCB0b3VjaC1hY3Rpb24gc28gZmFyLiBJZiB0aGUgY3Vy
cmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uIGlzICJtYW5pcHVsYXRpb24iCisgICAgICAgICAg
ICAvLyB0aGVuIHdlIGNhbiBqdXN0IGtlZXAgZ29pbmcgYW5kIGxlYXZlIHRoZSBjb21wdXRlZCB0
b3VjaC1hY3Rpb24gdW50b3VjaGVkLgorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0K
KworICAgICAgICAvLyBJbiBhbnkgb3RoZXIgY2FzZSwgd2UgaGF2ZSBjb21wZXRpbmcgcmVzdHJp
Y3RpdmUgdG91Y2gtYWN0aW9uIHZhbHVlcyB0aGF0IGNhbiBvbmx5IHlpZWxkICJub25lIi4KKyAg
ICAgICAgcmV0dXJuIFRvdWNoQWN0aW9uOjpOb25lOworICAgIH0KKyAgICByZXR1cm4gY29tcHV0
ZWRUb3VjaEFjdGlvbnM7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcpCitTY3JvbGxpbmdOb2RlSUQgRWxlbWVudDo6bmVhcmVzdFNjcm9sbGlu
Z05vZGVJRFVzaW5nVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIGNvbnN0Cit7CisgICAgaWYgKCFy
ZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIFdlIGFyZSBub3QgaW50ZXJl
c3RlZCBpbiB0aGUgcm9vdCwgc28gY2hlY2sgdGhhdCB3ZSBhbHNvIGhhdmUgYSB2YWxpZCBwYXJl
bnQuCisgICAgZm9yIChhdXRvKiBsYXllciA9IHJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCk7
IGxheWVyICYmIGxheWVyLT5wYXJlbnQoKTsgbGF5ZXIgPSBsYXllci0+cGFyZW50KCkpIHsKKyAg
ICAgICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8g
c2Nyb2xsaW5nTm9kZUlEID0gbGF5ZXItPmJhY2tpbmcoKS0+c2Nyb2xsaW5nTm9kZUlERm9yUm9s
ZShTY3JvbGxDb29yZGluYXRpb25Sb2xlOjpTY3JvbGxpbmcpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBzY3JvbGxpbmdOb2RlSUQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsK
K30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRl
eCAxNjlmZGUxM2FkYjYyNzA0MWZkZDhiNWU2ZjViOGYyYWRjYjM4NmYzLi5lZDcyNmM5NWI5MjE1
MDUxMGE3NTU1NzQ1ZDAyNTdkODRiYzUxMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRl
ICJTY3JvbGxUb09wdGlvbnMuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUg
IlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdE1vZGUuaCIKICNp
bmNsdWRlICJTaW11bGF0ZWRDbGlja09wdGlvbnMuaCIKICNpbmNsdWRlICJTdHlsZUNoYW5nZS5o
IgpAQCAtNTYsNiArNTcsNyBAQCBjbGFzcyBQc2V1ZG9FbGVtZW50OwogY2xhc3MgUmVuZGVyVHJl
ZVBvc2l0aW9uOwogY2xhc3MgU3R5bGVQcm9wZXJ0eU1hcDsKIGNsYXNzIFdlYkFuaW1hdGlvbjsK
K2VudW0gY2xhc3MgVG91Y2hBY3Rpb24gOiB1aW50OF90Owogc3RydWN0IEVsZW1lbnRTdHlsZTsK
IHN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnM7CiAKQEAgLTU4OCw2ICs1OTAsMTQgQEAgcHVi
bGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmltYXRlKEpTQzo6RXhl
Y1N0YXRlJiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mJiwgT3B0aW9uYWw8VmFyaWFudDxk
b3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+JiYpOwogICAgIFZlY3RvcjxSZWZQdHI8
V2ViQW5pbWF0aW9uPj4gZ2V0QW5pbWF0aW9ucygpOwogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVkVG91
Y2hBY3Rpb25zKCkgY29uc3Q7CisjZW5kaWYKKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVS
RkxPV19TQ1JPTExJTkcpCisgICAgV0VCQ09SRV9FWFBPUlQgU2Nyb2xsaW5nTm9kZUlEIG5lYXJl
c3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25zdDsKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmLCBDb25zdHJ1Y3Rpb25UeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGNiODczODM5NmEz
YTU4ZWY0NTIwZWU1NDhjZjgzMWViNDE1NDcxYjguLjljYTc4NTlhYWYwZTMzZWE3YzIyYmNhZGEx
NTA5NmY4YzM0YzVkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTk5LDcgKzk5LDI1IEBAIEV2ZW50VHJh
Y2tpbmdSZWdpb25zIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNvbHV0ZUV2ZW50VHJhY2tpbmdS
ZWdpb25zRm9yRnJhbWUoCiAgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpOwog
ICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFdmVudFRyYWNraW5nUmVnaW9ucygp
OwotICAgIHJldHVybiBkb2N1bWVudC0+ZXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsKKyAgICBhdXRv
IGV2ZW50VHJhY2tpbmdSZWdpb25zID0gZG9jdW1lbnQtPmV2ZW50VHJhY2tpbmdSZWdpb25zKCk7
CisgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25SZWdpb24gPSBmcmFtZS5kb2N1
bWVudCgpLT5hYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhmcmFtZS5kb2N1bWVudCgpLT50
b3VjaEFjdGlvbkVsZW1lbnRzKCkpLmZpcnN0OworCisgICAgZm9yIChhdXRvKiBzdWJmcmFtZSA9
IGZyYW1lLnRyZWUoKS5maXJzdENoaWxkKCk7IHN1YmZyYW1lOyBzdWJmcmFtZSA9IHN1YmZyYW1l
LT50cmVlKCkubmV4dFNpYmxpbmcoKSkgeworICAgICAgICBhdXRvKiBzdWJmcmFtZVZpZXcgPSBz
dWJmcmFtZS0+dmlldygpOworICAgICAgICBpZiAoIXN1YmZyYW1lVmlldykKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIGlmIChhdXRvKiBzdWJmcmFtZURvY3VtZW50ID0gc3ViZnJh
bWUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIGF1dG8gc3ViZnJhbWVSZWdpb24gPSBzdWJm
cmFtZURvY3VtZW50LT5hYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhzdWJmcmFtZURvY3Vt
ZW50LT50b3VjaEFjdGlvbkVsZW1lbnRzKCkpLmZpcnN0OworICAgICAgICAgICAgLy8gTWFwIGZy
b20gdGhlIGZyYW1lIGRvY3VtZW50IHRvIG91ciBkb2N1bWVudC4KKyAgICAgICAgICAgIGF1dG8g
b2Zmc2V0ID0gc3ViZnJhbWVWaWV3LT5jb250ZW50c1RvQ29udGFpbmluZ1ZpZXdDb250ZW50cyhJ
bnRQb2ludCgpKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiB0aGlzIHRyYW5zbGF0aW9uIGlnbm9y
ZXMgbm9uLXRyaXZhbCB0cmFuc2Zvcm1zIG9uIHRoZSBmcmFtZS4KKyAgICAgICAgICAgIHN1YmZy
YW1lUmVnaW9uLnRyYW5zbGF0ZSh0b0ludFNpemUob2Zmc2V0KSk7CisgICAgICAgICAgICBldmVu
dFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvblJlZ2lvbi51bml0ZShzdWJmcmFtZVJlZ2lvbik7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAj
ZWxzZQogICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKICAgICBpZiAoIWZyYW1l
VmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHAKaW5kZXggNTI0MzkzZGQxNmFhNjM3ZmYxNjFkNjc1YjgwZmZkOTRlN2FhMTUwMC4uMzNhMmZm
YjdjNzQ3ZTYzMWRlMjkzOTY0OTI2YzkwMWU1ZGNiZDdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTI0Nyw2ICsyNDcsMTEgQEAg
VHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudE4KICAgICByZXR1cm4gbV9ldmVudFRyYWNraW5nUmVnaW9u
cy50cmFja2luZ1R5cGVGb3JQb2ludChldmVudE5hbWUsIHApOwogfQogCitib29sIFNjcm9sbGlu
Z1RyZWU6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChjb25zdCBJbnRQb2ludCBwKSBjb25z
dAoreworICAgIHJldHVybiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9uUmVnaW9u
LmNvbnRhaW5zKHApOworfQorCiBib29sIFNjcm9sbGluZ1RyZWU6OmlzUnViYmVyQmFuZEluUHJv
Z3Jlc3MoKQogewogICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsgICAgCkBAIC00MDMsNiAr
NDA4LDEyIEBAIFN0cmluZyBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkKICAg
ICByZXR1cm4gdHMucmVsZWFzZSgpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWU6OnNldFRvdWNo
QWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0
aW9ucywgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBpZiAoYXV0byog
c2Nyb2xsaW5nVHJlZU5vZGUgPSBub2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAg
c2Nyb2xsaW5nVHJlZU5vZGUtPnNldFRvdWNoQWN0aW9ucyh0b3VjaEFjdGlvbnMpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4
IGVmYzY4NDE1YzM5NDMwZGY3ZjI3MDQzZmU5ODIzMzI3NzU1Njc2MzIuLjM2OTMzMzJlYjM2ZWYx
ZDlhOGE0NDBlNTc3ZGJkYmNjNzAwMzliOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJQbGF0
Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3JvbGxp
bmdDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAiV2hl
ZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgpAQCAtMTA0LDcgKzEwNSw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAg
V0VCQ09SRV9FWFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50KTsKLSAgICAKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIG1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChjb25zdCBJbnRQb2ludCkg
Y29uc3Q7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZVdoZWVs
RXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIC8q
aG9yaXpvbnRhbEluZGV4Ki8sIHVuc2lnbmVkIC8qdmVydGljYWxJbmRleCovKSB7IH0KQEAgLTE1
MSw2ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBzY3JvbGxpbmdUcmVlQXNUZXh0KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRU
b3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiwgU2Ny
b2xsaW5nTm9kZUlEKTsKICAgICAKIHByb3RlY3RlZDoKICAgICB2b2lkIHNldE1haW5GcmFtZVNj
cm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5kZXggYmY3ZjYxYTM2MWI5M2I0N2RmZTQzNGUw
NWY5MzI4OGNjZjU5MGJiNi4uZmFiN2Y0YWU2MTVlYTZjMzgxZTViZjc2YjVhOTAyMTNmMzAyYWI1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
Tm9kZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNs
dWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlTm9k
ZS5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAKQEAgLTcwLDYgKzcxLDkgQEAgcHVibGlj
OgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wKFdURjo6VGV4dFN0cmVhbSYsIFNjcm9s
bGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKIAorICAgIE9wdGlvblNldDxUb3Vj
aEFjdGlvbj4gdG91Y2hBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbnM7IH0K
KyAgICB2b2lkIHNldFRvdWNoQWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0
aW9ucykgeyBtX3RvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQpOwogICAgIFNjcm9sbGluZ1RyZWUmIHNjcm9sbGluZ1RyZWUoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGluZ1RyZWU7IH0KQEAgLTg1LDYgKzg5LDcgQEAgcHJpdmF0ZToK
ICAgICBjb25zdCBTY3JvbGxpbmdOb2RlSUQgbV9ub2RlSUQ7CiAKICAgICBTY3JvbGxpbmdUcmVl
Tm9kZSogbV9wYXJlbnQ7CisgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBtX3RvdWNoQWN0aW9u
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcAppbmRleCA3ZTc2M2M4OTUzZGNhOGU2ZGQ3
Y2FjYWQ2MjUyNDA3YzcwYzVmODYzLi45ZmJlMTAwOGExMzZkYjMzZmExYjg0MTk1YjMwNGU1MzZi
NTIwOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5n
UmVnaW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuY3BwCkBAIC03Myw3ICs3Myw4IEBAIHZvaWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnVu
aXRlKGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9uCiBib29s
IG9wZXJhdG9yPT0oY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGEsIGNvbnN0IEV2ZW50VHJh
Y2tpbmdSZWdpb25zJiBiKQogewogICAgIHJldHVybiBhLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9uID09IGIuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24KLSAgICAgICAgJiYgYS5ldmVudFNw
ZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5ldmVudFNwZWNpZmljU3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbnM7CisgICAgICAgICYmIGEuZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zID09IGIuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb25zCisgICAgICAgICYmIGEudG91Y2hBY3Rpb25SZWdpb24gPT0gYi50b3VjaEFjdGlvblJl
Z2lvbjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKaW5kZXggM2Q1OGJhNTVlZmQ2M2VkOWJhZTQw
NTAxZTMwOWI4NjFmYzllOWMwNS4uYmJjZGJkYTNhYWE2ZmQxZGExMWM4NjRjMWNiNzdhYjExNjdj
NDNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9u
cy5oCkBAIC00Niw2ICs0Niw4IEBAIHN0cnVjdCBFdmVudFRyYWNraW5nUmVnaW9ucyB7CiAgICAg
Ly8gVGhlIGtleSBpcyB0aGUgRXZlbnQgTmFtZSB3aXRoIGFuIGFjdGl2ZSBoYW5kbGVyLgogICAg
IEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uczsKIAorICAgIFJlZ2lvbiB0b3VjaEFjdGlvblJlZ2lvbjsKKwogICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0OwogCiAgICAgdm9pZCB0cmFuc2xhdGUoSW50U2l6ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggMzRmOGYzYzNjODZlM2ZkZjk1
ZjE4NjA2YjZhY2E2MTMyZTVkOGVlMy4uOTA5MTcxMzk3MTNiM2FjZGMzMmJmMmM1ZDZiZTc1NTdk
MGIxNmZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApA
QCAtMjMyLDYgKzIzMiwxMCBAQCBFbGVtZW50VXBkYXRlcyBUcmVlUmVzb2x2ZXI6OnJlc29sdmVF
bGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgYXV0byBiZWZvcmVVcGRhdGUgPSByZXNvbHZl
UHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBQc2V1ZG9JZDo6QmVmb3JlKTsKICAgICBhdXRv
IGFmdGVyVXBkYXRlID0gcmVzb2x2ZVBzZXVkb1N0eWxlKGVsZW1lbnQsIHVwZGF0ZSwgUHNldWRv
SWQ6OkFmdGVyKTsKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgbV9kb2N1bWVudC51
cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKGVsZW1lbnQsIHVwZGF0ZS5zdHlsZS5nZXQoKSk7Cisj
ZW5kaWYKKwogICAgIHJldHVybiB7IFdURk1vdmUodXBkYXRlKSwgZGVzY2VuZGFudHNUb1Jlc29s
dmUsIFdURk1vdmUoYmVmb3JlVXBkYXRlKSwgV1RGTW92ZShhZnRlclVwZGF0ZSkgfTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYzc3NGJjNDFjODI5
NGYwODExNjcxZDZiNzRjYTg2ZDQ4ZWUxNzk0NC4uN2E0NzVhMTYzOGM2MGVlYjUzYjE3MmU4ZGYw
MmU1ZGRjMDlhOGFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC00MjIsNiArNDIyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAg
ICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gnOiBbJzxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5JzogWyc8V2ViQ29yZS9BdWRp
b1Nlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAorICAgICAgICAnV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlEJzogWyc8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRvci5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInOiBbJzxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlck9yQ2xpZW50RGF0YSc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+Jywg
JzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+JywgJzxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJ
ZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nLCAnPFdlYkNvcmUv
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDNiMDUyOWE0YTk1OWEyM2JkNWQw
NDBmNWZhMDA4YWQ3YjBmZWM3MWYuLjE2NDk1M2JjYjYxYTk0YjNmNDNmOWU1ZjI4ZjE2MmE5Mzdj
NWQwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcApAQCAtMzMzLDYgKzMzMyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5n
UmVnaW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFdmVudFRyCiB7CiAgICAg
ZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lv
bjsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKKyAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdp
b25zLnRvdWNoQWN0aW9uUmVnaW9uOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFj
a2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZlbnRUcmFja2luZ1JlZ2lv
bnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQpAQCAtMzQzLDggKzM0NCwxMiBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
RXZlbnRUcmFja2luZwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNT
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGV2ZW50
U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBSZWdpb24gdG91Y2hBY3Rpb25SZWdpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZSh0b3VjaEFjdGlvblJlZ2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBldmVudFRy
YWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IFdURk1vdmUoYXN5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb24pOwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3Bl
Y2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9IFdURk1vdmUoZXZlbnRTcGVjaWZpY1N5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKTsKKyAgICBldmVudFRyYWNraW5nUmVnaW9ucy50b3Vj
aEFjdGlvblJlZ2lvbiA9IFdURk1vdmUodG91Y2hBY3Rpb25SZWdpb24pOwogICAgIHJldHVybiB0
cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCAwNzRjZGRmZDI3ODRlODY5MTI4ZDAyMGJlZDU5MjEzYTFjYmRkZTY4Li4wZmRl
NzgxYzU3ODE4ZDczY2JjNDAyODhkYWMwZTFiNzk1ZDlkMzI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI1ODAsNiArMjU4MCwxMiBA
QCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9s
bFZpZXcgd2l0aFZlbG9jaXR5OihDR1BvaQogICAgIC8vIHpvb21pbmcuIFdlJ2xsIGFuaW1hdGUg
dG8gdGhlIHJpZ2h0IHBsYWNlIG9uY2UgdGhlIHpvb20gZmluaXNoZXMuCiAgICAgaWYgKFtzY3Jv
bGxWaWV3IGlzWm9vbWluZ10pCiAgICAgICAgICp0YXJnZXRDb250ZW50T2Zmc2V0ID0gW3Njcm9s
bFZpZXcgY29udGVudE9mZnNldF07CisgICAgZWxzZSB7CisgICAgICAgIGlmIChbX2NvbnRlbnRW
aWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKQorICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9m
ZnNldC0+eCA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNldC54OworICAgICAgICBpZiAoW19jb250
ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSkKKyAgICAgICAgICAgIHRhcmdldENvbnRl
bnRPZmZzZXQtPnkgPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueTsKKyAgICB9CiAjaWYgRU5B
QkxFKENTU19TQ1JPTExfU05BUCkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBpZiAo
V2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9w
YWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkpIHsKICAgICAgICAgLy8gRklYTUU6IEhl
cmUsIEknbSBmaW5kaW5nIHRoZSBtYXhpbXVtIGhvcml6b250YWwvdmVydGljYWwgc2Nyb2xsIG9m
ZnNldHMuIFRoZXJlJ3MgcHJvYmFibHkgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMuCkBAIC0yNjE3
LDYgKzI2MjMsMjAgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xsVG9Ub3A6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsKIH0KIAor
LSAoQ0dQb2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3Rl
ZE9mZnNldEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJh
bnNsYXRpb24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2lu
dClsb2NhdGlvbkluVmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZl
cnRpY2FsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7CisgICAgaWYgKCFbX2NvbnRlbnRW
aWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdICYmICFbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFu
bmluZ0luWUF4aXNdKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAgQ0dQb2ludCBhZGp1
c3RlZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShvZmZzZXQueCwgb2Zmc2V0LnkpOworICAg
IGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKQorICAgICAgICBhZGp1
c3RlZENvbnRlbnRPZmZzZXQueCA9IHN0YXJ0Lng7CisgICAgaWYgKFtfY29udGVudFZpZXcgcHJl
dmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC55ID0g
c3RhcnQueTsKKworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisKIC0gKHZv
aWQpc2Nyb2xsVmlld0RpZFNjcm9sbDooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAg
IGlmICghW3NlbGYgdXNlc1N0YW5kYXJkQ29udGVudFZpZXddICYmIFtfY3VzdG9tQ29udGVudFZp
ZXcgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJfc2Nyb2xsVmlld0RpZFNjcm9sbDop
XSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApp
bmRleCBhMzY3ZTE1ZjAwNTM2ZjhjYjVjODUwOTA3YWI0M2E3YzMxNjY3MzBhLi4xYzJhNTUxZjMw
Nzc0Nzg5MmQwNzg3OTIwYzJmZWI3NmRjZjdhOTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xNjQsNiArMTY0LDExIEBAIFRyYWNr
aW5nVHlwZSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpldmVudFRyYWNraW5nVHlw
ZUZvclBvaW50KGNvbnN0IEF0CiAgICAgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZS0+ZXZlbnRUcmFj
a2luZ1R5cGVGb3JQb2ludChldmVudE5hbWUsIHApOwogfQogCitib29sIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChJbnRQb2ludCBw
KSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGluZ1RyZWUtPm1heUhhdmVUb3VjaEFjdGlv
bnNGb3JQb2ludChwKTsKK30KKwogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
Ojp2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlEIG5v
ZGVJRCwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlKQog
ewogICAgIG1fc2Nyb2xsaW5nVHJlZS0+dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xs
aW5nKG5vZGVJRCwgZml4ZWRQb3NpdGlvblJlY3QsIHNjYWxlKTsKQEAgLTIwNSw2ICsyMTAsMTIg
QEAgU3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVB
c1RleHQoKSBjb25zdAogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCit2b2lkIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05v
ZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9kZUlE
IHNjcm9sbGluZ05vZGVJRCkKK3sKKworICAgIG1fc2Nyb2xsaW5nVHJlZS0+c2V0VG91Y2hBY3Rp
b25zRm9yU2Nyb2xsaW5nTm9kZUlEKHRvdWNoQWN0aW9ucywgc2Nyb2xsaW5nTm9kZUlEKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5k
ZXggYjMyZDc5ZmU5Mjg5YjE0NTdjOGVhZDJkOGQzNWMzYjc5ZGFlYzk2YS4uYzY5ODcyOWNiNzll
N2Q4MDc1ZTI1NjJjYjRhZGQ3ZmQyYmVkYThhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgYm9vbCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAogICAgIFdlYkNvcmU6OlRyYWNraW5nVHlwZSBl
dmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBX
ZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CisgICAgYm9vbCBtYXlIYXZlVG91Y2hBY3Rpb25zRm9y
UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OwogCiAgICAgLy8gQ2FsbGVkIGV4dGVybmFs
bHkgd2hlbiBuYXRpdmUgdmlld3MgbW92ZSBhcm91bmQuCiAgICAgdm9pZCB2aWV3cG9ydENoYW5n
ZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpOwpAQCAt
OTcsNiArOTgsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFN0cmluZyBzY3JvbGxpbmdUcmVl
QXNUZXh0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2Rl
SUQoT3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlEKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbm5lY3RTdGF0ZU5vZGVMYXllcnMoV2ViQ29y
ZTo6U2Nyb2xsaW5nU3RhdGVUcmVlJiwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlSG9zdCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlSU9TLm1tCmluZGV4IDRjYzdlMWE4N2I4NWFjNzA2MzdlMTVmNDRjYzFlNGY4ZjkyMTljNGMu
LjE4MTNlZWZkYWRhNDE4NjgyOTNhMTcyMThhNDZmZmVjMjQxZjliMGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1Mu
bW0KQEAgLTY3LDkgKzY3LDI1IEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxCZWdpbkRyYWdnaW5n
OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdh
dGUtPnNjcm9sbFdpbGxTdGFydCgpOwogfQogCi0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkK
IC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xs
VmlldyB3aXRoVmVsb2NpdHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDoo
aW5vdXQgQ0dQb2ludCAqKXRhcmdldENvbnRlbnRPZmZzZXQKIHsKKyAgICBpZiAoIVtzY3JvbGxW
aWV3IGlzWm9vbWluZ10pIHsKKyAgICAgICAgYXV0byB0b3VjaEFjdGlvbnMgPSBfc2Nyb2xsaW5n
VHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnRvdWNoQWN0aW9ucygpOworICAgICAg
ICBpZiAodG91Y2hBY3Rpb25zICE9IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvICYmIHRvdWNo
QWN0aW9ucyAhPSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKSB7CisgICAgICAg
ICAgICBib29sIGNhblBhblggPSB0cnVlOworICAgICAgICAgICAgYm9vbCBjYW5QYW5ZID0gdHJ1
ZTsKKyAgICAgICAgICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNo
QWN0aW9uOjpQYW5YKSkgeworICAgICAgICAgICAgICAgIGNhblBhblggPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICB0YXJnZXRDb250ZW50T2Zmc2V0LT54ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zm
c2V0Lng7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250
YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWSkpIHsKKyAgICAgICAgICAgICAgICBjYW5Q
YW5ZID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eSA9IHNj
cm9sbFZpZXcuY29udGVudE9mZnNldC55OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fQorCisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBDR0Zsb2F0IGhvcml6b250YWxU
YXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT54OwogICAgIENHRmxvYXQgdmVydGljYWxUYXJn
ZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT55OwogCkBAIC05Niw4ICsxMTIsOCBAQCAtICh2b2lk
KXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0
aFZlbG9jaXR5OihDR1BvaQogICAgICAgICB8fCBvcmlnaW5hbFZlcnRpY2FsU25hcFBvc2l0aW9u
ICE9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudFZl
cnRpY2FsU25hcFBvaW50SW5kZXgoKSkgewogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxl
Z2F0ZS0+Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoX3Njcm9sbGluZ1RyZWVOb2Rl
RGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5jdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4
KCksIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudFZl
cnRpY2FsU25hcFBvaW50SW5kZXgoKSk7CiAgICAgfQotfQogI2VuZGlmCit9CiAKIC0gKHZvaWQp
c2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxE
ZWNlbGVyYXRlOihCT09MKXdpbGxEZWNlbGVyYXRlCiB7CkBAIC0xMDUsNiArMTIxLDcgQEAgLSAo
dm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcg
d2lsbERlY2VsZXJhdGU6KEJPT0wKICAgICAgICAgX2luVXNlckludGVyYWN0aW9uID0gTk87CiAg
ICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNj
cm9sbFZpZXcuY29udGVudE9mZnNldCwgX2luVXNlckludGVyYWN0aW9uKTsKICAgICAgICAgX3Nj
cm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbERpZEVuZCgpOworICAgICAgICBfc2Nyb2xs
aW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnNldFRvdWNoQWN0aW9ucyhXZWJD
b3JlOjpUb3VjaEFjdGlvbjo6QXV0byk7CiAgICAgfQogfQogCkBAIC0xMTQsOSArMTMxLDMyIEBA
IC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Ny
b2xsVmlldwogICAgICAgICBfaW5Vc2VySW50ZXJhY3Rpb24gPSBOTzsKICAgICAgICAgX3Njcm9s
bGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmlldy5jb250
ZW50T2Zmc2V0LCBfaW5Vc2VySW50ZXJhY3Rpb24pOwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5v
ZGVEZWxlZ2F0ZS0+c2Nyb2xsRGlkRW5kKCk7CisgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURl
bGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuc2V0VG91Y2hBY3Rpb25zKFdlYkNvcmU6OlRvdWNoQWN0
aW9uOjpBdXRvKTsKICAgICB9CiB9CiAKKy0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0
IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3Rh
cnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9j
aXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2
dgoreworICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUt
PnNjcm9sbGluZ05vZGUoKS50b3VjaEFjdGlvbnMoKTsKKyAgICBpZiAodG91Y2hBY3Rpb25zID09
IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvIHx8IHRvdWNoQWN0aW9ucyA9PSBXZWJDb3JlOjpU
b3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAg
Q0dQb2ludCBhZGp1c3RlZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShvZmZzZXQueCwgb2Zm
c2V0LnkpOworCisgICAgYm9vbCBjYW5QYW5YID0gdHJ1ZTsKKyAgICBib29sIGNhblBhblkgPSB0
cnVlOworICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9u
OjpQYW5YKSkgeworICAgICAgICBhZGp1c3RlZENvbnRlbnRPZmZzZXQueCA9IHN0YXJ0Lng7Cisg
ICAgICAgIGNhblBhblggPSBmYWxzZTsKKyAgICB9CisgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29u
dGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblkpKSB7CisgICAgICAgIGFkanVzdGVkQ29u
dGVudE9mZnNldC55ID0gc3RhcnQueTsKKyAgICAgICAgY2FuUGFuWSA9IGZhbHNlOworICAgIH0K
KworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisKIEBlbmQKIAogbmFtZXNw
YWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGRl
OTg2OTRhYTM3ZGIzYzdmMmNlMjdjYzgyOWE5MjAwMjExZGUxMGQuLjU4ZTA5OTQzZWU2NDAxMTE0
NmQwMzg0ZjY2ZjBjYWRjZTZiYzIwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC04MSw5ICs4MSwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQcm9kdWNl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRv
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9UZXh0Q2hlY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRHcmFudWxhcml0eS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Vz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC02ODAsNiArNjgyLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uKTsKICAgICB2b2lkIHJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbik7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJh
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+KTsKK2Jvb2wgaXNTY3Jv
bGxpbmdPclpvb21pbmcoKSBjb25zdCB7IHJldHVybiBtX2lzU2Nyb2xsaW5nT3Jab29taW5nOyB9
CiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKQEAgLTExNTYsNiAr
MTE1OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2
b2lkIHRhcEhpZ2hsaWdodEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIHVp
bnQ2NF90JiByZXF1ZXN0SUQpOwogICAgIHZvaWQgaGFuZGxlVGFwKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmLCB1aW50NjRfdCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFy
dCk7CisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCisgICAgYm9vbCBtYXlIYXZlVG91Y2hB
Y3Rpb25zRm9yVG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JikgY29uc3Q7CisgICAgVmVj
dG9yPHN0ZDo6cGFpcjxPcHRpb25TZXQ8V2ViQ29yZTo6VG91Y2hBY3Rpb24+LCBXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlSUQ+PiB0b3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNo
RXZlbnQmKTsKKyNlbmRpZgogCiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bv
c2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2b2lkIGluc3BlY3Rvck5v
ZGVTZWFyY2hFbmRlZEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCmluZGV4IGE3ZmZmZjc4ZjMwYTcwZjRmYzU5MGQ3MDVhMWQxOWUzYTM4ODFiZWYuLmQ2
ODhhMTEyMGZiOWQ3YTQ1YjRhZmFkZDFjNzg5NzhkYjgzYjVjODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAg
LTE5Niw2ICsxOTYsOCBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogICAgIFJldGFp
blB0cjxVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaEV2ZW50R2VzdHVy
ZVJlY29nbml6ZXI7CiAKICAgICBCT09MIF9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNs
eTsKKyAgICBCT09MIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzOworICAgIEJPT0wgX3ByZXZlbnRz
UGFubmluZ0luWUF4aXM7CiAKICAgICBSZXRhaW5QdHI8V0tTeW50aGV0aWNDbGlja1RhcEdlc3R1
cmVSZWNvZ25pemVyPiBfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXI7CiAgICAgUmV0YWluUHRy
PF9VSVdlYkhpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyPiBfaGlnaGxpZ2h0TG9u
Z1ByZXNzR2VzdHVyZVJlY29nbml6ZXI7CkBAIC0zNDksNiArMzUxLDggQEAgc3RydWN0IFdLQXV0
b0NvcnJlY3Rpb25EYXRhIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgY29uc3Qg
V2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiBmb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVdlYkZvcm1BY2Nlc3Nvcnkg
KmZvcm1BY2Nlc3NvcnlWaWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVRl
eHRJbnB1dEFzc2lzdGFudEl0ZW0gKmlucHV0QXNzaXN0YW50SXRlbUZvcldlYlZpZXc7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgcHJldmVudHNQYW5uaW5nSW5YQXhpczsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bhbm5pbmdJbllB
eGlzOwogCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc3Ryb25nKSBVSVZpZXcgPFdLRm9ybUNvbnRyb2w+ICpkYXRhTGlzdFRleHRTdWdnZXN0aW9u
c0lucHV0VmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDNlNTI5MmE3OGMyYWNmNDYxYTY4MjkzYjNh
YWM0MjJjOTBkN2IzYzUuLjljNWVmYjBiZDBhMjFhNmU1YjM3MzUwOGZiMTJjMjcyNzRmMzk0MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudC5oIgogI2ltcG9ydCAiTmF0aXZlV2ViVG91Y2hFdmVudC5oIgogI2ltcG9ydCAi
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgorI2ltcG9ydCAiUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5oIgogI2ltcG9ydCAiU21hcnRNYWduaWZpY2F0aW9uQ29udHJv
bGxlci5oIgogI2ltcG9ydCAiVGV4dElucHV0U1BJLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgpA
QCAtOTEsNiArOTIsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxiYXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU2hhcmVEYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJs
ZVNlbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CkBAIC02MTUsNiArNjE3LDE2IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBoYXNGb2N1c2VkRWxlbWVudChXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRp
b24gZm9jdXNlZEVsCiAgICAgcmV0dXJuIChmb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1l
bnRUeXBlICE9IFdlYktpdDo6SW5wdXRUeXBlOjpOb25lKTsKIH0KIAorLSAoQk9PTClwcmV2ZW50
c1Bhbm5pbmdJblhBeGlzCit7CisgICAgcmV0dXJuIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzOwor
fQorCistIChCT09MKXByZXZlbnRzUGFubmluZ0luWUF4aXMKK3sKKyAgICByZXR1cm4gX3ByZXZl
bnRzUGFubmluZ0luWUF4aXM7Cit9CisKIC0gKFdLRm9ybUlucHV0U2Vzc2lvbiAqKV9mb3JtSW5w
dXRTZXNzaW9uCiB7CiAgICAgcmV0dXJuIF9mb3JtSW5wdXRTZXNzaW9uLmdldCgpOwpAQCAtODYx
LDYgKzg3Myw5IEBAIC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAgICAgX2hhc1NldFVwSW50
ZXJhY3Rpb25zID0gTk87CiAgICAgX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucyA9
IHsgfTsKICAgICBfaXNab29taW5nVG9SZXZlYWxGb2N1c2VkRWxlbWVudCA9IE5POworCisgICAg
X3ByZXZlbnRzUGFubmluZ0luWEF4aXMgPSBOTzsKKyAgICBfcHJldmVudHNQYW5uaW5nSW5ZQXhp
cyA9IE5POwogfQogCiAtICh2b2lkKV9yZW1vdmVEZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCkBA
IC0xMTI4LDE2ICsxMTQzLDU2IEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDoo
VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlCiAgICAgV2ViS2l0
OjpOYXRpdmVXZWJUb3VjaEV2ZW50IG5hdGl2ZVdlYlRvdWNoRXZlbnQobGFzdFRvdWNoRXZlbnQp
OwogICAgIG5hdGl2ZVdlYlRvdWNoRXZlbnQuc2V0Q2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKCFf
Y2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgfHwgW2dlc3R1cmVSZWNvZ25pemVyIGlz
RGVmYXVsdFByZXZlbnRlZF0pOwogCisgICAgaWYgKF9wYWdlLT5tYXlIYXZlVG91Y2hBY3Rpb25z
Rm9yVG91Y2hFdmVudChuYXRpdmVXZWJUb3VjaEV2ZW50KSkgeworICAgICAgICBmb3IgKGF1dG8g
dG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpciA6IF9wYWdlLT50b3VjaEFjdGlvbnNG
b3JUb3VjaEV2ZW50KG5hdGl2ZVdlYlRvdWNoRXZlbnQpKSB7CisgICAgICAgICAgICBhdXRvIHRv
dWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uc0FuZFNjcm9sbGluZ05vZGVJRFBhaXIuZmlyc3Q7Cisg
ICAgICAgICAgICBpZiAodG91Y2hBY3Rpb25zID09IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpOb25l
KQorICAgICAgICAgICAgICAgIFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIHNldERlZmF1
bHRQcmV2ZW50ZWQ6WUVTXTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8v
IERpc2FibGUgYWxsIHRhcC1yZWxhdGVkIHJlY29nbml6ZXJzLgorICAgICAgICAgICAgICAgIFtf
c2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgICAgICAgICAg
ICAgW19ub25CbG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9d
OworICAgICAgICAgICAgICAgIFtfdHdvRmluZ2VyRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIg
c2V0RW5hYmxlZDpOT107CisgICAgICAgICAgICAgICAgW19oaWdobGlnaHRMb25nUHJlc3NHZXN0
dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBbX3R3b0Zpbmdl
clNpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOworICAgICAgICAgICAg
ICAgIFtfc3R5bHVzU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107Cisg
ICAgICAgICAgICAgICAgW19kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5P
XTsKKyAgICAgICAgICAgICAgICBbX2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJs
ZWQ6Tk9dOworICAgICAgICAgICAgICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNv
cmU6OlRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
IChhdXRvIHNjcm9sbGluZ05vZGVJRCA9IHRvdWNoQWN0aW9uc0FuZFNjcm9sbGluZ05vZGVJRFBh
aXIuc2Vjb25kKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogc2Nyb2xsaW5n
Q29vcmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5zZXRUb3VjaEFjdGlv
bnNGb3JTY3JvbGxpbmdOb2RlSUQodG91Y2hBY3Rpb25zLCBzY3JvbGxpbmdOb2RlSUQpOworICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0
b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBpbmNoWm9vbSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgX3dlYlZpZXcuc2Nyb2xsVmlldy5waW5jaEdlc3R1
cmVSZWNvZ25pemVyLmVuYWJsZWQgPSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9wcmV2
ZW50c1Bhbm5pbmdJblhBeGlzID0gIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3Vj
aEFjdGlvbjo6UGFuWCk7CisgICAgICAgICAgICAgICAgICAgICAgICBfcHJldmVudHNQYW5uaW5n
SW5ZQXhpcyA9ICF0b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBh
blkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQorCiAgICAgaWYgKF9jYW5TZW5kVG91Y2hFdmVudHNBc3lu
Y2hyb25vdXNseSkKICAgICAgICAgX3BhZ2UtPmhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNs
eShuYXRpdmVXZWJUb3VjaEV2ZW50KTsKICAgICBlbHNlCiAgICAgICAgIF9wYWdlLT5oYW5kbGVU
b3VjaEV2ZW50U3luY2hyb25vdXNseShuYXRpdmVXZWJUb3VjaEV2ZW50KTsKIAotICAgIGlmIChu
YXRpdmVXZWJUb3VjaEV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkKKyAgICBpZiAo
bmF0aXZlV2ViVG91Y2hFdmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpIHsKICAgICAg
ICAgX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5ID0gTk87CisKKyAgICAgICAgaWYg
KCFfcGFnZS0+aXNTY3JvbGxpbmdPclpvb21pbmcoKSkKKyAgICAgICAgICAgIFtzZWxmIF9yZXNl
dFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOworICAgIH0KICNlbmRpZgogfQogCistICh2b2lkKV9y
ZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3MKK3sKKyAgICBfcHJldmVudHNQYW5uaW5nSW5YQXhp
cyA9IE5POworICAgIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzID0gTk87Cit9CisKIC0gKHZvaWQp
X2luc3BlY3Rvck5vZGVTZWFyY2hSZWNvZ25pemVkOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2Vz
dHVyZVJlY29nbml6ZXIKIHsKICAgICBBU1NFUlQoX2luc3BlY3Rvck5vZGVTZWFyY2hFbmFibGVk
KTsKQEAgLTIxOTQsNiArMjI0OSw4IEBAIC0gKHZvaWQpX2RpZEVuZFNjcm9sbGluZ09yWm9vbWlu
ZwogICAgIH0KICAgICBfcGFnZS0+c2V0SXNTY3JvbGxpbmdPclpvb21pbmcoZmFsc2UpOwogCisg
ICAgW3NlbGYgX3Jlc2V0UGFubmluZ1ByZXZlbnRpb25GbGFnc107CisKICNpZiBQTEFURk9STShX
QVRDSE9TKQogICAgIFtfZm9jdXNlZEZvcm1Db250cm9sVmlldyBlbmdhZ2VGb2N1c2VkRm9ybUNv
bnRyb2xOYXZpZ2F0aW9uXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggYjliZDcwYzliZWUxMDY5ZTFiNGYxMjMwOThiOWNh
ZTEyZDY0ODdjNS4uYTc3NGJkYTA5M2IwZWQ3OWM1MGNkZmI4ZWE3NTg3OTA1Yjk3NDIwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC00
MSw2ICs0MSw3IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmgi
CiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKICNp
bXBvcnQgIlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCisjaW1wb3J0ICJSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAi
VXNlckRhdGEuaCIKICNpbXBvcnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgpAQCAt
ODI0LDYgKzgyNSwyNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cG90ZW50aWFsVGFwQXRQb3NpdGlv
bihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb3NpdGlvbiwgdQogICAgIHByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHJlcXVlc3RJRCwg
cG9zaXRpb24pLCBtX3BhZ2VJRCk7CiB9CiAKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykK
K2Jvb2wgV2ViUGFnZVByb3h5OjptYXlIYXZlVG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudChjb25z
dCBXZWJUb3VjaEV2ZW50JiBldmVudCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIHRvdWNoUG9p
bnQgOiBldmVudC50b3VjaFBvaW50cygpKSB7CisgICAgICAgIGlmICh0b3VjaFBvaW50LnBoYXNl
KCkgPT0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFByZXNzZWQgJiYgbV9zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LT5tYXlIYXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQodG91Y2hQb2ludC5s
b2NhdGlvbigpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK1ZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0
aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEPj4gV2ViUGFnZVByb3h5Ojp0b3VjaEFjdGlv
bnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIGV2ZW50KQoreworICAgIFZlY3Rv
cjxzdGQ6OnBhaXI8T3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlEPj4gdG91Y2hBY3Rpb25zOworICAgIHByb2Nlc3MoKS5zZW5kU3luYyhNZXNz
YWdlczo6V2ViUGFnZTo6VG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudChldmVudCksIE1lc3NhZ2Vz
OjpXZWJQYWdlOjpUb3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50OjpSZXBseSh0b3VjaEFjdGlvbnMp
LCBtX3BhZ2VJRCk7CisgICAgcmV0dXJuIHRvdWNoQWN0aW9uczsKK30KKyNlbmRpZgorCiB2b2lk
IFdlYlBhZ2VQcm94eTo6Y29tbWl0UG90ZW50aWFsVGFwKHVpbnQ2NF90IGxheWVyVHJlZVRyYW5z
YWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KQogewogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpDb21taXRQb3RlbnRpYWxUYXAobGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFz
dFRvdWNoU3RhcnQpLCBtX3BhZ2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggNzE1ZTEyNDUyMGZmMDc2Yjk2MGFlZDcwZTliOTIwNzVhNjU1MmFl
Zi4uZTc4NzVmOTM2ZDNlMWQ1MTFlNzZkZmQ5MDVjZDU3MDIwZDZhZmI5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjE4LDYgKzYxOCw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNhbmNlbFBvdGVudGlhbFRhcCgpOwogICAgIHZvaWQgY2FuY2VsUG90
ZW50aWFsVGFwSW5GcmFtZShXZWJGcmFtZSYpOwogICAgIHZvaWQgdGFwSGlnaGxpZ2h0QXRQb3Np
dGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKKyNp
ZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKyAgICB2b2lkIHRvdWNoQWN0aW9uc0ZvclRvdWNo
RXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYsIFZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0PFdl
YkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEPj4mKTsKKyNlbmRp
ZgogCiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hFbmRlZEF0
UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNTRhYmJh
Zjg5MzRjY2RjZjhlNGYyMGY3ODNmY2I2YjlmMDMwNDBlYi4uOTdhOWZmNjQ4NzBmMTAxN2YxNzdj
OTE5MDNmOWViOTNjMTllNGQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xMjIsNiArMTIyLDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VW
RU5UUykKICAgICBUb3VjaEV2ZW50U3luYyhXZWJLaXQ6OldlYlRvdWNoRXZlbnQgZXZlbnQpIC0+
IChib29sIGhhbmRsZWQpIExlZ2FjeVN5bmMKKyAgICBUb3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50
KFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkgLT4gKFZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9u
U2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEPj4gdG91
Y2hBY3Rpb25zKSBMZWdhY3lTeW5jCiAjZW5kaWYKICNpZiAhRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpICYmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgVG91Y2hFdmVudChXZWJLaXQ6OldlYlRv
dWNoRXZlbnQgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDA2Njk2YzA2NWNjNzc0OGMxY2JkZTAwNTQ1ZTM3MzY0
ZWE2OTRlNTMuLjc2NzgzNmJlMzFmZDQ2ZjRkZmVhNWM5N2I2Nzg5NDkyZmQyNjIyMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CkBAIC0xMDMsNiArMTAzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckJsb2NrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jl
bmRlckltYWdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckxheWVyQmFja2luZy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJW
aWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgpAQCAt
ODYyLDYgKzg2MywyOSBAQCB2b2lkIFdlYlBhZ2U6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWlu
dDY0X3QgcmVxdWVzdElELCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdAogICAgIHNlbmRUYXBIaWdo
bGlnaHRGb3JOb2RlSWZOZWNlc3NhcnkocmVxdWVzdElELCBtYWluZnJhbWUubm9kZVJlc3BvbmRp
bmdUb0NsaWNrRXZlbnRzKHBvc2l0aW9uLCBhZGp1c3RlZFBvaW50KSk7CiB9CiAKKyNpZiBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKK3ZvaWQgV2ViUGFnZTo6dG91Y2hBY3Rpb25zRm9yVG91Y2hF
dmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiBldmVudCwgVmVjdG9yPHN0ZDo6cGFpcjxPcHRpb25T
ZXQ8VG91Y2hBY3Rpb24+LCBTY3JvbGxpbmdOb2RlSUQ+PiYgdG91Y2hBY3Rpb25zKQoreworICAg
IGxheW91dElmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBldmVudEhhbmRsZXIgPSBtX3BhZ2UtPm1h
aW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpOworICAgIGZvciAoYXV0byYgdG91Y2ggOiBldmVudC50
b3VjaFBvaW50cygpKSB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gZXZlbnRIYW5kbGVyLmhpdFRl
c3RSZXN1bHRBdFBvaW50KCh0b3VjaC5sb2NhdGlvbigpKSwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRP
bmx5IHwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1Vz
ZXJBZ2VudFNoYWRvd0NvbnRlbnQgfCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29u
dGVudCk7CisgICAgICAgIHN0ZDo6cGFpcjxPcHRpb25TZXQ8VG91Y2hBY3Rpb24+LCBTY3JvbGxp
bmdOb2RlSUQ+IHRvdWNoQWN0aW9uc0FuZFNjcm9sbGluZ05vZGVJRFBhaXI7CisgICAgICAgIGlm
IChhdXRvKiBlbGVtZW50ID0gcmVzdWx0LmlubmVyTm9uU2hhcmVkRWxlbWVudCgpKSB7CisgICAg
ICAgICAgICB0b3VjaEFjdGlvbnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyLmZpcnN0ID0gZWxlbWVu
dC0+Y29tcHV0ZWRUb3VjaEFjdGlvbnMoKTsKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZM
T1dfU0NST0xMSU5HKQorICAgICAgICAgICAgLy8gTm93IHdlIHNob3VsZCBhbHNvIGxvb2sgdG8g
c2VlIGlmIG91ciBlbGVtZW50IGlzIG9yIGlzIGNvbnRhaW5lZCB3aXRoaW4gYW4gIm92ZXJmbG93
LXNjcm9sbDogdG91Y2giIGVsZW1lbnQKKyAgICAgICAgICAgIC8vIHNvIHRoYXQgd2UgY2FuIHJl
cG9ydCBpdHMgbGF5ZXIgaWQgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgICAgICBpZiAoYXV0
byBzY3JvbGxpbmdOb2RlSUQgPSBlbGVtZW50LT5uZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNpbmdU
b3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkpCisgICAgICAgICAgICAgICAgdG91Y2hBY3Rpb25zQW5k
U2Nyb2xsaW5nTm9kZUlEUGFpci5zZWNvbmQgPSBzY3JvbGxpbmdOb2RlSUQ7CisjZW5kaWYKKyAg
ICAgICAgfQorICAgICAgICB0b3VjaEFjdGlvbnMuYXBwZW5kKHRvdWNoQWN0aW9uc0FuZFNjcm9s
bGluZ05vZGVJRFBhaXIpOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6Omluc3Bl
Y3Rvck5vZGVTZWFyY2hNb3ZlZFRvUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24p
CiB7CiAgICAgSW50UG9pbnQgYWRqdXN0ZWRQb2ludCA9IHJvdW5kZWRJbnRQb2ludChwb3NpdGlv
bik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMTczNjYwYTZkNmQzOTMxNGMyN2U3Y2IwMGU3YjNjOTc0ZWYyY2EzZS4uNGFj
Yzk2M2Q1ODJiMTg1ZDUzZmZlZGFjYzE3MDNmNjBkYTUyMGZiNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDE5LTAxLTE1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAg
ICAgICAgTGltaXQgdXNlci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFj
dGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkzNDQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgc2VyaWVz
IG9mIHRlc3RzIHRoYXQgY2hlY2sgdGhhdCB0aGUgIm5vbmUiLCAicGFuLXgiLCAicGFuLXkiIGFu
ZCAicGluY2gtem9vbSIgdmFsdWVzIGhhdmUgdGhlIGV4cGVjdGVkCisgICAgICAgIGltcGFjdCBv
biBwYWdlIHBhbm5pbmcgb24gaU9TLgorCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLWNvbmZsaWN0aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHktZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3Rp
bmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFtZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LWluLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1v
dmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1u
b25lLW9uLXBhcmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFu
LXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mt
em9vbWluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRz
LXNjcm9sbGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sOiBBZGRl
ZC4KKwogMjAxOS0wMS0xNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBWaXN1YWxWaWV3cG9ydCBBUEkgc2hvdWxkIGJlIHVwZGF0ZWQgdXBvbiBvcGVuaW5nIG9m
IGtleWJvYXJkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFs
dWVzLWluLWhpZXJhcmNoeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTEwYjhmNzJlYTc0YjM4
YWRlMjEzNDU5M2QyNjUyMThkMmI5YmIwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMtaW4taGll
cmFyY2h5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQg
c2V0dGluZyBjb25mbGljdGluZyB0b3VjaC1hY3Rpb24gdmFsdWVzIG9uIHRoZSB0YXJnZXQgZWxl
bWVudCBhbmQgcGFyZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0aW5nLXZh
bHVlcy1pbi1oaWVyYXJjaHkuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMtaW4taGllcmFyY2h5Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzViNTA3NmJiZWJlNmIxZTEzNGE1YTA1YWE0ZThjMzBkMDhmNGYzYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGlj
dGluZy12YWx1ZXMtaW4taGllcmFyY2h5Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAw
cHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50
LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhl
aWdodCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudG91Y2hBY3Rpb24gPSAi
cGFuLXgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi15IjsKKworICAg
IHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9
PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBh
Z2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4g
dGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGlu
ZyB0aGF0IHNldHRpbmcgY29uZmxpY3RpbmcgdG91Y2gtYWN0aW9uIHZhbHVlcyBvbiB0aGUgdGFy
Z2V0IGVsZW1lbnQgYW5kIHBhcmVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LW5vbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyN2U4YWY4MWJkOTg0YzhjMzQwNzA1NTFh
ZjViNjFlOTI3MGZmODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIG9uIGFuIGVsZW1l
bnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZy
YW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODU4NDEwMzIzOWYxYmM3ZjdlOWZlYjc1Mzdm
NWM5OTdlOTllMjc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDQgQEAKKworCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBp
biBjb250ZW50IGhvc3RlZCBpbiBhbiBpZnJhbWUgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
bm9uZS1pbi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1ub25lLWluLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyOGI4MmIzMzVkM2RiYzk1
NjE0NTFkYjUwMDgzNDIxMjBhZmY4M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRtbApAQCAtMCww
ICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxzdHlsZT4KKworaWZyYW1lIHsKKyAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDQwMHB4Owor
ICAgIGhlaWdodDogNDAwcHg7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJh
bWU+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKworYXN5bmNfdGVzdCh0ZXN0ID0+IHsKKyAgICBjb25z
dCBpZnJhbWUgPSBkb2N1bWVudC5ib2R5LmZpcnN0RWxlbWVudENoaWxkOworICAgIGNvbnN0IHRh
cmdldCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBg
CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMDsKKyAgICAgICAg
dG9wOiAwOworICAgICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgaGVpZ2h0OiAyMDAlOworICAg
ICAgICB0b3VjaC1hY3Rpb246IG5vbmU7CisgICAgYCk7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1
MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xs
ZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlP
ZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7Cisg
ICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRv
dWNoLWFjdGlvbjogbm9uZSBpbiBjb250ZW50IGhvc3RlZCBpbiBhbiBpZnJhbWUgcHJldmVudHMg
cGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJj
MDA3MjkxMDI0NWVmNTc1ODdlYmU5YzUyYzlmYWJjMDUzMmQxYzIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVy
Zmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBpbiBjb250ZW50IGhvc3Rl
ZCBpbiBhIHNjcm9sbGFibGUgY29udGFpbmVyIHVzaW5nICctd2Via2l0LW92ZXJmbG93LXNjcm9s
bGluZzogdG91Y2gnIHByZXZlbnRzIHNjcm9sbGluZyBvZiB0aGF0IGNvbnRhaW5lci4gCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWU5NjE0ZmZlZmNlZmJlYWZlNjc0MTc0YjU4MTU0MWMwZjIzNTE0MQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sCkBAIC0wLDAgKzEsNDkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0
aWFsLXNjYWxlPTEiPgorPHN0eWxlPgorCisjc2Nyb2xsaW5nLWNvbnRhaW5lciB7CisgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDA7CisgICAgdG9wOiAwOworICAgIHdpZHRoOiA0
MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgLXdl
YmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOworfQorCisjc2Nyb2xsaW5nLWNvbnRhaW5l
ciA+IGRpdiB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDA7CisgICAgdG9w
OiAwOworICAgIHdpZHRoOiAyMDAlOworICAgIGhlaWdodDogMjAwJTsKKyAgICB0b3VjaC1hY3Rp
b246IG5vbmU7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InNjcm9s
bGluZy1jb250YWluZXIiPjxkaXY+PC9kaXY+PC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0
aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKworYXN5bmNfdGVz
dCh0ZXN0ID0+IHsKKyAgICBjb25zdCBzY3JvbGxpbmdDb250YWluZXIgPSBkb2N1bWVudC5ib2R5
LmZpcnN0RWxlbWVudENoaWxkOworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4
OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Nyb2xs
aW5nQ29udGFpbmVyLnNjcm9sbExlZnQsIDAsICJUaGUgc2Nyb2xsaW5nIGNvbnRhaW5lciB3YXMg
bm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc2Ny
b2xsaW5nQ29udGFpbmVyLnNjcm9sbFRvcCwgMCwgIlRoZSBzY3JvbGxpbmcgY29udGFpbmVyIHdh
cyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7Cisg
ICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIGluIGNv
bnRlbnQgaG9zdGVkIGluIGEgc2Nyb2xsYWJsZSBjb250YWluZXIgdXNpbmcgJy13ZWJraXQtb3Zl
cmZsb3ctc2Nyb2xsaW5nOiB0b3VjaCcgcHJldmVudHMgc2Nyb2xsaW5nIG9mIHRoYXQgY29udGFp
bmVyLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40Njc1MWJkZDdjMzQ2MmExZTA4NmZmYzczZjM1M2VkNDRkYWY3ZmJjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5v
bmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQQVNTIFRlc3Rp
bmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBpZnJhbWUgYW5kIGludGVy
YWN0aW5nIHdpdGggaXRzIGNvbnRlbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1v
bi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1ub25lLW9uLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MjdlYThkYjQ2MTc0MzQxYzUxYTBj
NGNjNTI1M2U1YjYyMDdhMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVy
ZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDQ4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5p
dGlhbC1zY2FsZT0xIj4KKzxzdHlsZT4KKworaWZyYW1lIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhl
aWdodDogNDAwcHg7CisgICAgdG91Y2gtYWN0aW9uOiBub25lOworfQorCis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+Cis8aWZyYW1lPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGls
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3Qo
dGVzdCA9PiB7CisgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuYm9keS5maXJzdEVsZW1lbnRD
aGlsZDsKKyAgICBjb25zdCB0YXJnZXQgPSBpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgIHRhcmdldC5zZXRB
dHRyaWJ1dGUoInN0eWxlIiwgYAorICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAg
IGxlZnQ6IDA7CisgICAgICAgIHRvcDogMDsKKyAgICAgICAgd2lkdGg6IDIwMCU7CisgICAgICAg
IGhlaWdodDogMjAwJTsKKyAgICBgKTsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAg
fSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
d2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUg
eC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwg
IlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVz
dC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9u
OiBub25lIG9uIGFuIGlmcmFtZSBhbmQgaW50ZXJhY3Rpbmcgd2l0aCBpdHMgY29udGVudCBwcmV2
ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAyYjEzMDQ5NjhhMjkxZWFkZDEzNzM5NTI2ZmMwZDhj
YmUyYTI5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIG9uIGEgcGFy
ZW50IGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRt
bCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBh
cmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhNDgwNzkzZjc5MGE1Yzg2MjQxNzY5Zjk5MzFlOGY0ODBj
ZjNiNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
Ij4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIy
MDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1l
bnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUu
aGVpZ2h0ID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS50b3VjaEFjdGlvbiA9
ICJub25lIjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTog
NTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zm
c2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBu
b3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAg
fSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIG9uIGEgcGFy
ZW50IGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWwgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFkMDBiODNiYjk4ZTRhZTVkZGM5YTU5Yzk4NjcyYTZhMDMyOWNlOGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5o
dG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9
ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0
JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0
YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBw
eCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRh
cmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJub25lIjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUw
LCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxl
ZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9m
ZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAg
ICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91
Y2gtYWN0aW9uOiBub25lIG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1wYW4teC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3ZTc4Mzc5ZGY0NWE3MTc3
NDc2YzhiZTdiNWQ2NDA0MGYwYWFjZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGFuLXgg
b24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeS1heGlzLiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBh
bi14LXBhbi15LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1wYW4teC1wYW4teS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU5N2JkZTMy
N2ZjMjljM2FlNGI3ODBhMTExNjQ3Y2Q2OGZkNWY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgJ3RvdWNo
LWFjdGlvbjogcGFuLXggcGFuLXknIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugc2Nyb2xsaW5n
IGluIGJvdGggYXhlcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIyOTFh
NGQ4YzY3YzIyMTUxYzIyOWQ4MzdkNzFhOGYzZDAwYWIxNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1s
CkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsK
KwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJn
ZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7
CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdl
dC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teCBwYW4teSI7CisKKyAgICB1aS5zd2lwZSh7IHg6
IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBh
c3NlcnRfbm90X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgc2Ny
b2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMod2luZG93
LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7
CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5n
ICd0b3VjaC1hY3Rpb246IHBhbi14IHBhbi15JyBvbiBhbiBlbGVtZW50IGFsbG93cyBwYWdlIHNj
cm9sbGluZyBpbiBib3RoIGF4ZXMuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2I5MjA1Zjdl
ZjVkYTJjYWI3MDAxOWNmYjhlYTcwZjk1ZDc3YzZmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1sCkBAIC0wLDAg
KzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRo
LCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0
X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3Qp
ID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9j
dW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50
b3VjaEFjdGlvbiA9ICJwYW4teCI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0s
IHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfbm90X2VxdWFs
cyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHgt
YXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJU
aGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3Qu
ZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjog
cGFuLXggb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeS1heGlz
LiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmY2NThjMzg2NDIy
NjcxNWFlNjdlYTQyZmJiOTI4NjgwNjkyODQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBh
bi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHgtYXhpcy4g
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1wYW4teS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBhbi15Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA5MGQzOTYwMWZiZWUxN2JmZDFiOTVmMjQzZTlmYWJj
NTIyNzk1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4Iiwg
aGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQg
PSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teSI7CisK
KyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4o
KCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRo
ZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0
X25vdF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVk
IGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRl
c3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGFuLXggb24gYW4gZWxlbWVudCBwcmV2
ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeC1heGlzLiIpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mt
em9vbWluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDk0ZTY3NjE1ZTJhNTk5OGYzMzMzZjkwZmRhMzBkZDFkY2E1YTQ2OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16
b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBU
ZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBpbmNoLXpvb20gb24gYW4gZWxlbWVu
dCBhbGxvd3MgcGFnZSB6b29taW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbCBi
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFs
bG93cy16b29taW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRhNjNjOTQyOWUxYWExMzkwMjZlZDQzMTNj
ZWE2ZDVkNDc4Nzk3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLmh0bWwKQEAgLTAs
MCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3Rhcmdl
dF90ZXN0KHsgd2lkdGg6ICI0MDBweCIsIGhlaWdodDogIjQwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0
KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRv
Y3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUu
dG91Y2hBY3Rpb24gPSAicGluY2gtem9vbSI7CisKKyAgICB1aS5waW5jaE91dCh7IHg6IDUwLCB5
OiA1MCwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAsIHNjYWxlOiAwLjUgfSkudGhlbigoKSA9PiB7
CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5pbnRlcm5hbHMucGFnZVNjYWxlRmFj
dG9yKCksIDEsICJUaGUgcGFnZSB3YXMgc2NhbGVkLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsK
KyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBpbmNoLXpv
b20gb24gYW4gZWxlbWVudCBhbGxvd3MgcGFnZSB6b29taW5nLiIpOworCis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2
ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MGM4NWI5YWE1NTJkZjliNzFkOWFlNDM5NzQwNTBlMGMyODk5ODAwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBpbmNoLXpv
b20gb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXBy
ZXZlbnRzLXNjcm9sbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDIzNDFjNjIxNTA3YTNlZTgzNzM0ZDI3NzEzZDg0YmZmNTU5ZDdkZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29t
LXByZXZlbnRzLXNjcm9sbGluZy5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4Iiwg
aGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQg
PSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwaW5jaC16b29t
IjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSku
dGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAw
LCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Ny
b2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9
LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFuIGVs
ZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359363</attachid>
            <date>2019-01-17 02:10:12 -0800</date>
            <delta_ts>2019-01-17 02:55:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190117111009.patch</filename>
            <type>text/plain</type>
            <size>75331</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZhZGNlOWZiZjc1YTQx
YjJmNjJiNjVmM2EyOTNjOTE2ZWM4MmNiYi4uNzcyNGNkNDJkZmM1MDc1NDJlZjY1MGE5YjA0ZGMx
MDQ4ZmNhYWU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE5LTAxLTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21wdXRlCisgICAgICAgIGEgUmVnaW9uIGNvbnRhaW5pbmcgdGhlIGJvdW5kcyBvZiBlYWNoIG9m
IHRob3NlIGVsZW1lbnRzIGFuZCBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFsb25nIHdp
dGggdG91Y2ggcmVnaW9ucy4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHdlIGFsbG93IGEgbGlz
dCBvZiBhbGxvd2VkIHRvdWNoIGFjdGlvbnMgdG8gYmUgY29tcHV0ZWQgZm9yIGEgZ2l2ZW4gZWxl
bWVudCBhY2NvdW50aW5nIGZvciBub3Qgb25seSB0aGUgdmFsdWUgc3BlY2lmaWVkCisgICAgICAg
IGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxlLCBidXQgYWxzbyBpbiBpdHMgaGllcmFy
Y2h5LCBjcm9zc2luZyBhbnkgZnJhbWUgYm91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRv
Y3VtZW50J3Mgcm9vdCBub2RlLgorCisgICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCisgICAgICAg
ICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4t
b3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwK
KyAgICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1s
CisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tYWxsb3dzLXpvb21pbmcuaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwKKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVSZW5kZXJp
bmdEZXBlbmRlbnRSZWdpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpub2RlV2ls
bEJlUmVtb3ZlZCk6IEVuc3VyZSBhIG5vZGUgdGhhdCBpcyBiZWluZyByZW1vdmVkIGZyb20gdGhp
cyBkb2N1bWVudCBpcyBubyBsb25nZXIgbGlzdGVkIGluIGl0cworICAgICAgICBsaXN0IG9mIGVs
ZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJvcGVydHkuCisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlVG91Y2hBY3Rpb25FbGVtZW50cyk6IENyZWF0ZSBhIGxp
c3Qgb2YgZWxlbWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSBpZiBv
bmUgZG9lc24ndAorICAgICAgICBleGlzdCB5ZXQgYW5kIHVwZGF0ZSBpdCB0byBhZGQgdGhlIGdp
dmVuIGVsZW1lbnQgaWYgaXQgY29udGFpbnMgYSBub24tYXV0byB0b3VjaC1hY3Rpb24sIG9yIHJl
bW92ZSBpdCBpZiBpdCBkb2Vzbid0LiBJZiB0aGUgY29udGVudHMKKyAgICAgICAgb2YgdGhhdCBs
aXN0IGNoYW5nZWQgYXMgYSByZXN1bHQsIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3IgaXMgaW5m
b3JtZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6dG91Y2hBY3Rpb25FbGVtZW50cyBjb25zdCk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y29tcHV0ZWRUb3VjaEFjdGlvbnMgY29uc3QpOiBQ
cm92aWRlIHRoZSBsaXN0IG9mIGFsbG93ZWQgdG91Y2ggYWN0aW9ucyBhY2NvdW50aW5nIGZvciB0
aGUgInRvdWNoLWFjdGlvbiIgcHJvcGVydHkKKyAgICAgICAgc3BlY2lmaWVkIG9uIHRoaXMgZWxl
bWVudCBhbmQgYWxsIG9mIGl0cyBoaWVyYXJjaHksIGNyb3NzaW5nIGZyYW1lIGJvdW5kYXJ5Lgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6bmVhcmVzdFNjcm9sbGluZ05vZGVJRFVzaW5nVG91
Y2hPdmVyZmxvd1Njcm9sbGluZyBjb25zdCk6IFByb3ZpZGUgdGhlIFNjcm9sbGluZ05vZGVJRCwg
aWYgYW55LCBmb3IgdGhlIG5lYXJlc3Qgc2Nyb2xsaW5nIG5vZGUKKyAgICAgICAgZm9yIHRoYXQg
ZWxlbWVudC4gVGhpcyB3aWxsIGFsbG93IHRoZSBVSSBwcm9jZXNzIHRvIGlkZW50aWZ5IHdoaWNo
IHNjcm9sbCB2aWV3J3MgYmVoYXZpb3IgdG8gY3VzdG9taXplIHRvIHJlZmxlY3QgdGhlIGVsZW1l
bnQncyBhbGxvd2VkCisgICAgICAgIHRvdWNoIGFjdGlvbnMuCisgICAgICAgICogZG9tL0VsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6YWJzb2x1dGVFdmVudFRy
YWNraW5nUmVnaW9uc0ZvckZyYW1lIGNvbnN0KTogQ29tcHV0ZSB0aGUgcmVnaW9uIGZvciBhbGwg
ZWxlbWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAgICB0
aHJvdWdob3V0IHRoZSBwcm92aWRlZCBmcmFtZSBhbmQgYWxsIG9mIGl0cyBzdWJmcmFtZXMuCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjptYXlIYXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQgY29uc3QpOiBQ
cm92aWRlIGEgcXVpY2sgd2F5IHRvIGluZGVudGlmeSB3aGV0aGVyIHRoZSBwcm92aWRlZCBwb2lu
dCBpcyBjb250YWluZWQgaW4gdGhlIHJlZ2lvbgorICAgICAgICBvZiBlbGVtZW50cyB3aXRoIGEg
bm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKToKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2Rl
Ojp0b3VjaEFjdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5v
ZGU6OnNldFRvdWNoQWN0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxh
dGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNv
bHZlRWxlbWVudCk6IFVwZGF0ZSB0aGUgbGlzdCBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8g
dG91Y2gtYWN0aW9uIHByb3BlcnR5IHdoZW4gYW4gZWxlbWVudCdzIHN0eWxlIGNoYW5nZXMuCisK
IDIwMTktMDEtMTUgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBXaW5DYWlybyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjMjE2
NDc2ZTZhMDY0Zjg2MGQ4N2U1MGRjOGNlZTc0NTQ4NDY0MTMuLmE1NDUzYmIyNTE2YTE5YTQyZmQ1
OGFmYzk1YzcwZDFmNWI5YTE5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTktMDEt
MTcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBMaW1pdCB1
c2VyLWFnZW50IGludGVyYWN0aW9ucyBiYXNlZCBvbiB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM0NDcK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3MjgzODc0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhbmRsZSB0aGUgIm5vbmUiLCAicGFuLXgiLCAi
cGFuLXkiIGFuZCAicGluY2gtem9vbSIgdmFsdWVzIGZvciB0aGUgdG91Y2gtYWN0aW9uIHByb3Bl
cnR5IGJ5IHF1ZXJ5aW5nIHRoZSBzY3JvbGxpbmcgdHJlZSB3aGVuZXZlciBhIHRvdWNoIGJlZ2lu
cworICAgICAgICB0byBpZGVudGlmeSB3aGV0aGVyIGl0cyBwb2ludCBtYXkgYmUgY29udGFpbmVk
IHdpdGhpbiB0aGUgcmVnaW9uIG9mIGVsZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rp
b24gcHJvcGVydHkuIElmIGl0IGlzLCB3ZSBjYWxsIGludG8gdGhlCisgICAgICAgIFdlYiBwcm9j
ZXNzLCBzeW5jaHJvbm91c2x5LCB0byBjb21waWxlIHRoZSBsaXN0IG9mIHBlcm1pdHRlZCB0b3Vj
aCBhY3Rpb25zIHN1Y2ggdGhhdCB3ZSBtYXkgdGhlbiBjdXN0b21pemUgdGhlIGJlaGF2aW9yIG9m
IHRoZSBuZWFyZXN0IHNjcm9sbCB2aWV3CisgICAgICAgIHRvIHBhbiBvciB6b29tIG9ubHkgYXMg
aW5zdHJ1Y3RlZC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAg
ICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmll
dyBzY3JvbGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhWZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zm
c2V0Ol0pOiBBY2NvdW50IGZvciBwYW5uaW5nIGNvbnN0cmFpbnRzIHNldCBvbiB0aGUgY29udGVu
dCB2aWV3IHRvIHByZXZlbnQgZGVjZWxlcmF0aW9uCisgICAgICAgIHRvIHBhbiB0aGUgdmlldyBp
ZiBpdCBvdWdodCBub3QuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVmlldzphZGp1c3Rl
ZE9mZnNldEZvck9mZnNldDp0cmFuc2xhdGlvbjpzdGFydFBvaW50OmxvY2F0aW9uSW5WaWV3Omhv
cml6b250YWxWZWxvY2l0eTp2ZXJ0aWNhbFZlbG9jaXR5Ol0pOiBJbXBsZW1lbnQgYW4gYWRkaXRp
b25hbCBVSVNjcm9sbFZpZXcKKyAgICAgICAgZGVsZWdhdGlvbiBtZXRob2QgdG8gYXBwbHkgdGhl
IHBhbm5pbmcgY29uc3RyYWludHMgc2V0IG9uIHRoZSBjb250ZW50IHZpZXcgd2hpbGUgcGFubmlu
Zy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjptYXlIYXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzZXRUb3VjaEFjdGlv
bnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW06CisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3Jv
bGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhWZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0p
OiBBcHBseSB0aGUgc2FtZSBsb2dpYyBhcyBpbiBXS1dlYlZpZXcuCisgICAgICAgICgtW1dLU2Ny
b2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6d2ls
bERlY2VsZXJhdGU6XSk6IFJlc2V0IHRoZSB0b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRl
ZCBzY3JvbGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBpbnRlcmFjdGlvbgorICAgICAgICBpbiB0
aGUgZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0Rl
bGVnYXRlIHNjcm9sbFZpZXdEaWRFbmREZWNlbGVyYXRpbmc6XSk6IFJlc2V0IHRoZSB0b3VjaCBh
Y3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBzY3JvbGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBp
bnRlcmFjdGlvbiBpbiB0aGUKKyAgICAgICAgZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tT
Y3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0
Rm9yT2Zmc2V0OnRyYW5zbGF0aW9uOnN0YXJ0UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRh
bFZlbG9jaXR5OnZlcnRpY2FsVmVsb2NpdHk6XSk6IEFwcGx5IHRoZSBzYW1lIGxvZ2ljIGFzIGlu
IFdLV2ViVmlldy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNTY3JvbGxpbmdPclpvb21pbmcgY29uc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBjbGVhbnVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd2Vi
VG91Y2hFdmVudHNSZWNvZ25pemVkOl0pOiBBcyB3ZSBwcm9jZXNzIHRvdWNoZXMsIGNoZWNrIHdo
ZXRoZXIgdGhlcmUgbWF5IGJlIHRvdWNoIGFjdGlvbnMgc2V0IGZvciB0aGlzIHRvdWNoJ3MgbG9j
YXRpb24sIGFuZCBpZiB3ZSBoYXZlbid0IGV4Y2x1ZGVkCisgICAgICAgIHRoYXQgcG9zc2liaWxp
dHksIGNhbGwgaW50byB0aGUgV2ViIHByb2Nlc3Mgc3luY2hyb25vdXNseSB0byBmaW5kIHdoaWNo
IHRvdWNoIGFjdGlvbnMgdGhlc2UgbWlnaHQgYmUgZXhhY3RseS4gVGhlbiwgYmFzZWQgb24gdGhv
c2UgdG91Y2ggYWN0aW9ucywgZWl0aGVyIHNldERlZmF1bHRQcmV2ZW50ZWQKKyAgICAgICAgb24g
dGhlIF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgaWYgdGhlIHRvdWNoIGFjdGlvbiBpcyAi
bm9uZSIgb3Igc2VsZWN0aXZlbHkgZGlzYWJsZSBwYW5uaW5nIGFuZCB6b29taW5nLgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQgY29uc3QpOiBDaGVj
ayBhbGwgdG91Y2ggcG9pbnRzIGZvciBhIGdpdmVuIGV2ZW50IHRvIHNlZSBpZiBpdCBtaWdodCBo
YXZlIGFzc29jaWF0ZWQgdG91Y2ggYWN0aW9ucy4gVGhpcyBjaGVja3MgdGhhdAorICAgICAgICB0
aGVzZSBhcmUgbmV3IHRvdWNoZXMgYW5kIHRoYXQgdGhlaXIgbG9jYXRpb24gaXMgY29udGFpbmVk
IHdpdGhpbiB0aGUgdG91Y2ggYWN0aW9uIHJlZ2lvbiBjb21wdXRlZCBpbiB0aGUgV2ViIHByb2Nl
c3MgYW5kIHNlbnQgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6dG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQp
OiBJdGVyYXRlIG92ZXIgYWxsIHRvdWNoIHBvaW50cyBmb3IgYSBnaXZlbiBldmVudCBhbmQgcmV0
dXJuLCBpZiB0aGVyZSBpcyBhIG5vbi1hdXRvIHRvdWNoIGFjdGlvbiBzZXQsIGNyZWF0ZSBhIHBh
aXIgY29uc2lzdGluZyBvZiBhCisgICAgICAgIGxpc3Qgb2YgdG91Y2gtYWN0aW9ucyBhbmQgdGhl
IHNjcm9sbGluZyBub2RlIElEIGZvciB0aGUgbmVhcmVzdCBzY3JvbGwgbm9kZSB0byB0aGUgZWxl
bWVudCB0aGF0IGhpdCB0ZXN0cyBmb3IgdGhpcyBsb2NhdGlvbi4KKwogMjAxOS0wMS0xNSAgRnVq
aWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkIFdpbkNhaXJvIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiOTZmYTJkZWM0MWU0OWUzMTQxNDJkMGI2NDUy
MmJhM2M3OTI0YzZhLi4yOTc4YTY3YTQxZDJlYTM4MzQzODc2ZmE4YmU4NmE0ZWZiNTg5NjY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zMTk1MSw2ICszMTk1MSw3IEBACiAJCQkJNDlFOTEyQUUwRUZBQzkwNjAwOUQwQ0FGIC8q
IFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU0REQwODE4ODFENUY1MDAz
RUVEQkIgLyogVG91Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCTcxQjdFRTBEMjFCNUM2ODcwMDMx
QzFFRiAvKiBUb3VjaEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzFCN0VFMEQyMUI1QzY4
NzAwMzFDMUVGIC8qIFRvdWNoQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU0REQwOTE4
ODFENUY1MDAzRUVEQkIgLyogVG91Y2hFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1NERE
MEExODgxRDVGNTAwM0VFREJCIC8qIFRvdWNoTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcw
MzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCBmZTVjOTUxYmM2NGQ2NjJkYWVjNTE1ZjllNDNlYTRlYzkw
NGU4MWM2Li4wY2RhZDQyZTc5NzIzZDg5ZDkxZTM4M2Y5ODgxZWEwN2Y4ZGVlMzI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOCw2ICsyMDgsNyBAQAogI2luY2x1ZGUgIlRleHRBdXRv
U2l6aW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2
ZXJzYWwuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVNv
dXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIKICNpbmNsdWRlICJVbmRvTWFuYWdlci5o
IgpAQCAtNDE0MCw4ICs0MTQxLDE0IEBAIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVSZW5kZXJp
bmdEZXBlbmRlbnRSZWdpb25zKEFubm90YXRpb25zQWN0aW9uIGFubm90YXRpb25zCiAgICAgVU5V
U0VEX1BBUkFNKGFubm90YXRpb25zQWN0aW9uKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIHNldFRvdWNoRXZlbnRSZWdpb25zTmVlZFVwZGF0ZSgpOworICAgIGlmIChhdXRvKiBw
YWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZVZpZXcgPSB2aWV3
KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2Ut
PnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRp
bmF0b3ItPmZyYW1lVmlld0V2ZW50VHJhY2tpbmdSZWdpb25zQ2hhbmdlZCgqZnJhbWVWaWV3KTsK
KyAgICAgICAgfQorICAgIH0KICNlbmRpZgogfQogCkBAIC00NTI2LDYgKzQ1MzMsMTEgQEAgdm9p
ZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgbm9kZSkKIAogICAgIGlmIChpczxU
ZXh0Pihub2RlKSkKICAgICAgICAgbV9tYXJrZXJzLT5yZW1vdmVNYXJrZXJzKCZub2RlKTsKKwor
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKG1fdG91Y2hBY3Rpb25FbGVtZW50cykK
KyAgICAgICAgbV90b3VjaEFjdGlvbkVsZW1lbnRzLT5yZW1vdmVBbGwoJm5vZGUpOworI2VuZGlm
CiB9CiAKIHN0YXRpYyBOb2RlKiBmYWxsYmFja0ZvY3VzTmF2aWdhdGlvblN0YXJ0aW5nTm9kZUFm
dGVyUmVtb3ZhbChOb2RlJiBub2RlKQpAQCAtODY0OCw0ICs4NjYwLDMzIEBAIHZvaWQgRG9jdW1l
bnQ6OnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFtZShjb25zdCBTdHJpbmcmIG5hbWUs
IFJlZjxQYWludFdvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCit2b2lk
IERvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmIG5vZGUsIFJlbmRlclN0
eWxlKiBzdHlsZSkKK3sKKyAgICBpZiAoIW1fdG91Y2hBY3Rpb25FbGVtZW50cykKKyAgICAgICAg
bV90b3VjaEFjdGlvbkVsZW1lbnRzID0gc3RkOjptYWtlX3VuaXF1ZTxFdmVudFRhcmdldFNldD4o
KTsKKworICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOworCisgICAgaWYgKHN0eWxlICYmIHN0eWxl
LT50b3VjaEFjdGlvbnMoKSAhPSBUb3VjaEFjdGlvbjo6QXV0bykKKyAgICAgICAgY2hhbmdlZCB8
PSBtX3RvdWNoQWN0aW9uRWxlbWVudHMtPmFkZCgmbm9kZSkuaXNOZXdFbnRyeTsKKyAgICBlbHNl
CisgICAgICAgIGNoYW5nZWQgfD0gbV90b3VjaEFjdGlvbkVsZW1lbnRzLT5yZW1vdmVBbGwoJm5v
ZGUpOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoIWNoYW5nZWQpCisgICAg
ICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CisgICAgaWYgKCFw
YWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2
aWV3KCkpIHsKKyAgICAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29y
ZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAgICBzY3Jv
bGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFuZ2VkKCpm
cmFtZVZpZXcpOworICAgIH0KKyNlbmRpZgorfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZWI0NDU1MWNjYWYzNGEwOWI4OTM3OGFhODcx
MzQ5NzcxMzk2ZTMxOS4uODg2ODg4ZWE5ODRhNzQ3MzYzOWYwZTZlOGIzY2IzYWY5MTUyNjRlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyNzMsNiArMTI3Myw3IEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJzKCkgY29u
c3QgeyByZXR1cm4gKG1fdG91Y2hFdmVudFRhcmdldHMuZ2V0KCkpID8gbV90b3VjaEV2ZW50VGFy
Z2V0cy0+c2l6ZSgpIDogZmFsc2U7IH0KICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29udGFp
bihOb2RlJiBub2RlKSBjb25zdCB7IHJldHVybiBtX3RvdWNoRXZlbnRUYXJnZXRzID8gbV90b3Vj
aEV2ZW50VGFyZ2V0cy0+Y29udGFpbnMoJm5vZGUpIDogZmFsc2U7IH0KKyAgICB2b2lkIHVwZGF0
ZVRvdWNoQWN0aW9uRWxlbWVudHMoTm9kZSYsIFJlbmRlclN0eWxlKik7CiAjZWxzZQogICAgIGJv
b2wgaGFzVG91Y2hFdmVudEhhbmRsZXJzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBi
b29sIHRvdWNoRXZlbnRUYXJnZXRzQ29udGFpbihOb2RlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KQEAgLTEyOTIsNiArMTI5MywxNSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyAgICBj
b25zdCBFdmVudFRhcmdldFNldCogdG91Y2hBY3Rpb25FbGVtZW50cygpIGNvbnN0CisgICAgewor
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgICAgIHJldHVybiBtX3RvdWNoQWN0aW9uRWxl
bWVudHMuZ2V0KCk7CisjZWxzZQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorICAg
IH0KKwogICAgIGNvbnN0IEV2ZW50VGFyZ2V0U2V0KiB3aGVlbEV2ZW50VGFyZ2V0cygpIGNvbnN0
IHsgcmV0dXJuIG1fd2hlZWxFdmVudFRhcmdldHMuZ2V0KCk7IH0KIAogICAgIHR5cGVkZWYgc3Rk
OjpwYWlyPFJlZ2lvbiwgYm9vbD4gUmVnaW9uRml4ZWRQYWlyOwpAQCAtMTg3Myw2ICsxODgzLDcg
QEAgcHJpdmF0ZToKICAgICAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHN0ZDo6dW5p
cXVlX3B0cjxFdmVudFRhcmdldFNldD4gbV90b3VjaEV2ZW50VGFyZ2V0czsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+IG1fdG91Y2hBY3Rpb25FbGVtZW50czsKICNlbmRpZgog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudFRhcmdldFNldD4gbV93aGVlbEV2ZW50VGFyZ2V0czsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGRhNWNkMmYwODFjMWU4OGY4MTExZWZmZjMyNmRm
MjAyNjQ0NGM0M2EuLjQyZDU1NTE0MzlkMDVkNWM3ZWFiYzI0NjFmZTkwZjE2NmY1ZTczZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTgxLDYgKzgxLDggQEAKICNpbmNsdWRlICJQb2ludGVy
TG9ja0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJSZW5kZXJGcmFnbWVudENvbnRhaW5lci5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgi
CisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlz
dEJveC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZVVw
ZGF0ZXIuaCIKQEAgLTM0MTYsNyArMzQxOCw3IEBAIHZvaWQgRWxlbWVudDo6c2V0Q29udGFpbnNG
dWxsU2NyZWVuRWxlbWVudChib29sIGZsYWcpCiAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJD
b21wb3NpdGlvbigpOwogfQogCi1zdGF0aWMgRWxlbWVudCogcGFyZW50Q3Jvc3NpbmdGcmFtZUJv
dW5kYXJpZXMoRWxlbWVudCogZWxlbWVudCkKK3N0YXRpYyBFbGVtZW50KiBwYXJlbnRDcm9zc2lu
Z0ZyYW1lQm91bmRhcmllcyhjb25zdCBFbGVtZW50KiBlbGVtZW50KQogewogICAgIEFTU0VSVChl
bGVtZW50KTsKICAgICByZXR1cm4gZWxlbWVudC0+cGFyZW50RWxlbWVudCgpID8gZWxlbWVudC0+
cGFyZW50RWxlbWVudCgpIDogZWxlbWVudC0+ZG9jdW1lbnQoKS5vd25lckVsZW1lbnQoKTsKQEAg
LTQxMjAsNCArNDEyMiw2NiBAQCB2b2lkIEVsZW1lbnQ6OnNldEF0dHJpYnV0ZVN0eWxlTWFwKFJl
ZjxTdHlsZVByb3BlcnR5TWFwPiYmIG1hcCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKK09wdGlvblNldDxUb3VjaEFjdGlvbj4gRWxlbWVudDo6Y29tcHV0ZWRUb3VjaEFj
dGlvbnMoKSBjb25zdAoreworICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gY29tcHV0ZWRUb3Vj
aEFjdGlvbnMgPSBUb3VjaEFjdGlvbjo6QXV0bzsKKyAgICBmb3IgKGF1dG8qIGVsZW1lbnQgPSB0
aGlzOyBlbGVtZW50OyBlbGVtZW50ID0gcGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZWxl
bWVudCkpIHsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOwor
ICAgICAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
YXV0byB0b3VjaEFjdGlvbnMgPSByZW5kZXJlci0+c3R5bGUoKS50b3VjaEFjdGlvbnMoKTsKKwor
ICAgICAgICAvLyBPbmNlIHdlJ3ZlIGVuY291bnRlcmVkIHRvdWNoLWFjdGlvbjogbm9uZSwgd2Ug
a25vdyB0aGF0IHRoaXMgd2lsbCBiZSB0aGUgY29tcHV0ZWQgdmFsdWUuCisgICAgICAgIGlmICh0
b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246Ok5vbmUpCisgICAgICAgICAgICByZXR1cm4gdG91
Y2hBY3Rpb25zOworCisgICAgICAgIC8vIElmIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gc28g
ZmFyIHdhcyAiYXV0byIsIHdlIGNhbiBqdXN0IHVzZSB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91
Y2gtYWN0aW9uLgorICAgICAgICBpZiAoY29tcHV0ZWRUb3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rp
b246OkF1dG8pIHsKKyAgICAgICAgICAgIGNvbXB1dGVkVG91Y2hBY3Rpb25zID0gdG91Y2hBY3Rp
b25zOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0
aGUgY3VycmVudCBlbGVtZW50IGhhcyB0b3VjaC1hY3Rpb246IGF1dG8gb3IgdGhlIHNhbWUgdG91
Y2gtYWN0aW9uIGFzIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24sCisgICAgICAgIC8vIHdlIG5l
ZWQgdG8ga2VlcCBnb2luZyB1cCB0aGUgYW5jZXN0cnkgY2hhaW4uCisgICAgICAgIGlmICh0b3Vj
aEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246OkF1dG8gfHwgdG91Y2hBY3Rpb25zID09IGNvbXB1dGVk
VG91Y2hBY3Rpb25zKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gTm93LCB0
aGUgZWxlbWVudCdzIHRvdWNoLWFjdGlvbiBhbmQgdGhlIGNvbXB1dGVkIHRvdWNoLWFjdGlvbiBh
cmUgZGlmZmVyZW50IGFuZCBhcmUgbmVpdGhlciAiYXV0byIgbm9yICJub25lIi4KKyAgICAgICAg
aWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pIHsK
KyAgICAgICAgICAgIC8vIElmIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gaXMgIm1hbmlwdWxh
dGlvbiIsIHdlIGNhbiB0YWtlIHRoZSBjdXJyZW50IGVsZW1lbnQncyB0b3VjaC1hY3Rpb24gYXMg
dGhlIG5ld2x5CisgICAgICAgICAgICAvLyBjb21wdXRlZCB0b3VjaC1hY3Rpb24uCisgICAgICAg
ICAgICBjb21wdXRlZFRvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsKKyAgICAgICAgfSBlbHNl
IGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgeworICAgICAg
ICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBoYXZlIGEgcmVzdHJpY3RlZCBjb21wdXRlZCB0b3VjaC1h
Y3Rpb24gc28gZmFyLiBJZiB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uIGlzICJt
YW5pcHVsYXRpb24iCisgICAgICAgICAgICAvLyB0aGVuIHdlIGNhbiBqdXN0IGtlZXAgZ29pbmcg
YW5kIGxlYXZlIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gdW50b3VjaGVkLgorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbiBhbnkgb3RoZXIgY2FzZSwg
d2UgaGF2ZSBjb21wZXRpbmcgcmVzdHJpY3RpdmUgdG91Y2gtYWN0aW9uIHZhbHVlcyB0aGF0IGNh
biBvbmx5IHlpZWxkICJub25lIi4KKyAgICAgICAgcmV0dXJuIFRvdWNoQWN0aW9uOjpOb25lOwor
ICAgIH0KKyAgICByZXR1cm4gY29tcHV0ZWRUb3VjaEFjdGlvbnM7Cit9CisjZW5kaWYKKworI2lm
IEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCitTY3JvbGxpbmdOb2RlSUQg
RWxlbWVudDo6bmVhcmVzdFNjcm9sbGluZ05vZGVJRFVzaW5nVG91Y2hPdmVyZmxvd1Njcm9sbGlu
ZygpIGNvbnN0Cit7CisgICAgaWYgKCFyZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIC8vIFdlIGFyZSBub3QgaW50ZXJlc3RlZCBpbiB0aGUgcm9vdCwgc28gY2hlY2sgdGhhdCB3
ZSBhbHNvIGhhdmUgYSB2YWxpZCBwYXJlbnQuCisgICAgZm9yIChhdXRvKiBsYXllciA9IHJlbmRl
cmVyKCktPmVuY2xvc2luZ0xheWVyKCk7IGxheWVyICYmIGxheWVyLT5wYXJlbnQoKTsgbGF5ZXIg
PSBsYXllci0+cGFyZW50KCkpIHsKKyAgICAgICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSkg
eworICAgICAgICAgICAgaWYgKGF1dG8gc2Nyb2xsaW5nTm9kZUlEID0gbGF5ZXItPmJhY2tpbmco
KS0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxDb29yZGluYXRpb25Sb2xlOjpTY3JvbGxp
bmcpKQorICAgICAgICAgICAgICAgIHJldHVybiBzY3JvbGxpbmdOb2RlSUQ7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCAxNjlmZGUxM2FkYjYyNzA0MWZkZDhiNWU2ZjViOGYy
YWRjYjM4NmYzLi5lZDcyNmM5NWI5MjE1MDUxMGE3NTU1NzQ1ZDAyNTdkODRiYzUxMjZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJLZXlmcmFtZUFuaW1h
dGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJTY3JvbGxUb09wdGlvbnMuaCIKICNpbmNsdWRlICJT
Y3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVk
ZSAiU2hhZG93Um9vdE1vZGUuaCIKICNpbmNsdWRlICJTaW11bGF0ZWRDbGlja09wdGlvbnMuaCIK
ICNpbmNsdWRlICJTdHlsZUNoYW5nZS5oIgpAQCAtNTYsNiArNTcsNyBAQCBjbGFzcyBQc2V1ZG9F
bGVtZW50OwogY2xhc3MgUmVuZGVyVHJlZVBvc2l0aW9uOwogY2xhc3MgU3R5bGVQcm9wZXJ0eU1h
cDsKIGNsYXNzIFdlYkFuaW1hdGlvbjsKK2VudW0gY2xhc3MgVG91Y2hBY3Rpb24gOiB1aW50OF90
Owogc3RydWN0IEVsZW1lbnRTdHlsZTsKIHN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnM7CiAK
QEAgLTU4OCw2ICs1OTAsMTQgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJBbmlt
YXRpb24+PiBhbmltYXRlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVj
dD4mJiwgT3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+
JiYpOwogICAgIFZlY3RvcjxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gZ2V0QW5pbWF0aW9ucygpOwog
CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBXRUJDT1JFX0VYUE9SVCBPcHRpb25TZXQ8
VG91Y2hBY3Rpb24+IGNvbXB1dGVkVG91Y2hBY3Rpb25zKCkgY29uc3Q7CisjZW5kaWYKKworI2lm
IEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCisgICAgV0VCQ09SRV9FWFBP
UlQgU2Nyb2xsaW5nTm9kZUlEIG5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZs
b3dTY3JvbGxpbmcoKSBjb25zdDsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBDb25zdHJ1Y3Rpb25UeXBlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwCmluZGV4IGNiODczODM5NmEzYTU4ZWY0NTIwZWU1NDhjZjgzMWViNDE1NDcxYjguLjlj
YTc4NTlhYWYwZTMzZWE3YzIyYmNhZGExNTA5NmY4YzM0YzVkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAg
LTk5LDcgKzk5LDI1IEBAIEV2ZW50VHJhY2tpbmdSZWdpb25zIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjphYnNvbHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUoCiAgICAgYXV0byogZG9jdW1l
bnQgPSBmcmFtZS5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVy
biBFdmVudFRyYWNraW5nUmVnaW9ucygpOwotICAgIHJldHVybiBkb2N1bWVudC0+ZXZlbnRUcmFj
a2luZ1JlZ2lvbnMoKTsKKyAgICBhdXRvIGV2ZW50VHJhY2tpbmdSZWdpb25zID0gZG9jdW1lbnQt
PmV2ZW50VHJhY2tpbmdSZWdpb25zKCk7CisgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hB
Y3Rpb25SZWdpb24gPSBmcmFtZS5kb2N1bWVudCgpLT5hYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFy
Z2V0cyhmcmFtZS5kb2N1bWVudCgpLT50b3VjaEFjdGlvbkVsZW1lbnRzKCkpLmZpcnN0OworCisg
ICAgZm9yIChhdXRvKiBzdWJmcmFtZSA9IGZyYW1lLnRyZWUoKS5maXJzdENoaWxkKCk7IHN1YmZy
YW1lOyBzdWJmcmFtZSA9IHN1YmZyYW1lLT50cmVlKCkubmV4dFNpYmxpbmcoKSkgeworICAgICAg
ICBhdXRvKiBzdWJmcmFtZVZpZXcgPSBzdWJmcmFtZS0+dmlldygpOworICAgICAgICBpZiAoIXN1
YmZyYW1lVmlldykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChhdXRvKiBz
dWJmcmFtZURvY3VtZW50ID0gc3ViZnJhbWUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAgICAgIGF1
dG8gc3ViZnJhbWVSZWdpb24gPSBzdWJmcmFtZURvY3VtZW50LT5hYnNvbHV0ZVJlZ2lvbkZvckV2
ZW50VGFyZ2V0cyhzdWJmcmFtZURvY3VtZW50LT50b3VjaEFjdGlvbkVsZW1lbnRzKCkpLmZpcnN0
OworICAgICAgICAgICAgLy8gTWFwIGZyb20gdGhlIGZyYW1lIGRvY3VtZW50IHRvIG91ciBkb2N1
bWVudC4KKyAgICAgICAgICAgIGF1dG8gb2Zmc2V0ID0gc3ViZnJhbWVWaWV3LT5jb250ZW50c1Rv
Q29udGFpbmluZ1ZpZXdDb250ZW50cyhJbnRQb2ludCgpKTsKKyAgICAgICAgICAgIC8vIEZJWE1F
OiB0aGlzIHRyYW5zbGF0aW9uIGlnbm9yZXMgbm9uLXRyaXZhbCB0cmFuc2Zvcm1zIG9uIHRoZSBm
cmFtZS4KKyAgICAgICAgICAgIHN1YmZyYW1lUmVnaW9uLnRyYW5zbGF0ZSh0b0ludFNpemUob2Zm
c2V0KSk7CisgICAgICAgICAgICBldmVudFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvblJlZ2lv
bi51bml0ZShzdWJmcmFtZVJlZ2lvbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g
ZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAjZWxzZQogICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1l
LnZpZXcoKTsKICAgICBpZiAoIWZyYW1lVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNTI0MzkzZGQxNmFhNjM3ZmYxNjFkNjc1
YjgwZmZkOTRlN2FhMTUwMC4uMzNhMmZmYjdjNzQ3ZTYzMWRlMjkzOTY0OTI2YzkwMWU1ZGNiZDdi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHAKQEAgLTI0Nyw2ICsyNDcsMTEgQEAgVHJhY2tpbmdUeXBlIFNjcm9sbGluZ1RyZWU6OmV2ZW50
VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE4KICAgICByZXR1
cm4gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50cmFja2luZ1R5cGVGb3JQb2ludChldmVudE5hbWUs
IHApOwogfQogCitib29sIFNjcm9sbGluZ1RyZWU6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2lu
dChjb25zdCBJbnRQb2ludCBwKSBjb25zdAoreworICAgIHJldHVybiBtX2V2ZW50VHJhY2tpbmdS
ZWdpb25zLnRvdWNoQWN0aW9uUmVnaW9uLmNvbnRhaW5zKHApOworfQorCiBib29sIFNjcm9sbGlu
Z1RyZWU6OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKQogewogICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsgICAgCkBAIC00MDMsNiArNDA4LDEyIEBAIFN0cmluZyBTY3JvbGxpbmdUcmVlOjpz
Y3JvbGxpbmdUcmVlQXNUZXh0KCkKICAgICByZXR1cm4gdHMucmVsZWFzZSgpOwogfQogCit2b2lk
IFNjcm9sbGluZ1RyZWU6OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25T
ZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05v
ZGVJRCkKK3sKKyAgICBpZiAoYXV0byogc2Nyb2xsaW5nVHJlZU5vZGUgPSBub2RlRm9ySUQoc2Ny
b2xsaW5nTm9kZUlEKSkKKyAgICAgICAgc2Nyb2xsaW5nVHJlZU5vZGUtPnNldFRvdWNoQWN0aW9u
cyh0b3VjaEFjdGlvbnMpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGVmYzY4NDE1YzM5NDMwZGY3ZjI3MDQzZmU5ODIzMzI3
NzU1Njc2MzIuLjM2OTMzMzJlYjM2ZWYxZDlhOGE0NDBlNTc3ZGJkYmNjNzAwMzliOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTMwLDYg
KzMwLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJSZWdp
b24uaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIlRvdWNo
QWN0aW9uLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgpAQCAtMTA0LDcgKzEwNSw4IEBA
IHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50
VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUsIEludFBv
aW50KTsKLSAgICAKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1heUhhdmVUb3VjaEFjdGlvbnNG
b3JQb2ludChjb25zdCBJbnRQb2ludCkgY29uc3Q7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAg
dmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFz
ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmVTY3JvbGxTbmFwSW5kaWNlcyhTY3Jv
bGxpbmdOb2RlSUQsIHVuc2lnbmVkIC8qaG9yaXpvbnRhbEluZGV4Ki8sIHVuc2lnbmVkIC8qdmVy
dGljYWxJbmRleCovKSB7IH0KQEAgLTE1MSw2ICsxNTMsNyBAQCBwdWJsaWM6CiAgICAgfQogICAg
IAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzY3JvbGxpbmdUcmVlQXNUZXh0KCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQoT3B0
aW9uU2V0PFRvdWNoQWN0aW9uPiwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICAKIHByb3RlY3RlZDoK
ICAgICB2b2lkIHNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5kZXgg
YmY3ZjYxYTM2MWI5M2I0N2RmZTQzNGUwNWY5MzI4OGNjZjU5MGJiNi4uZmFiN2Y0YWU2MTVlYTZj
MzgxZTViZjc2YjVhOTAyMTNmMzAyYWI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2lu
Y2x1ZGUgIlNjcm9sbGluZ1N0YXRlTm9kZS5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAK
QEAgLTcwLDYgKzcxLDkgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1w
KFdURjo6VGV4dFN0cmVhbSYsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25z
dDsKIAorICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zKCkgY29uc3QgeyBy
ZXR1cm4gbV90b3VjaEFjdGlvbnM7IH0KKyAgICB2b2lkIHNldFRvdWNoQWN0aW9ucyhPcHRpb25T
ZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykgeyBtX3RvdWNoQWN0aW9ucyA9IHRvdWNoQWN0
aW9uczsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nVHJl
ZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIFNjcm9sbGluZ1Ry
ZWUmIHNjcm9sbGluZ1RyZWUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ1RyZWU7IH0KQEAg
LTg1LDYgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBTY3JvbGxpbmdOb2RlSUQgbV9ub2Rl
SUQ7CiAKICAgICBTY3JvbGxpbmdUcmVlTm9kZSogbV9wYXJlbnQ7CisgICAgT3B0aW9uU2V0PFRv
dWNoQWN0aW9uPiBtX3RvdWNoQWN0aW9uczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25z
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcApp
bmRleCA3ZTc2M2M4OTUzZGNhOGU2ZGQ3Y2FjYWQ2MjUyNDA3YzcwYzVmODYzLi45ZmJlMTAwOGEx
MzZkYjMzZmExYjg0MTk1YjMwNGU1MzZiNTIwOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwCkBAIC03Myw3ICs3Myw4IEBAIHZvaWQg
RXZlbnRUcmFja2luZ1JlZ2lvbnM6OnVuaXRlKGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBl
dmVudFRyYWNraW5nUmVnaW9uCiBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRUcmFja2luZ1Jl
Z2lvbnMmIGEsIGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBiKQogewogICAgIHJldHVybiBh
LmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID09IGIuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdp
b24KLSAgICAgICAgJiYgYS5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMg
PT0gYi5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CisgICAgICAgICYm
IGEuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zID09IGIuZXZlbnRTcGVj
aWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zCisgICAgICAgICYmIGEudG91Y2hBY3Rpb25S
ZWdpb24gPT0gYi50b3VjaEFjdGlvblJlZ2lvbjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lv
bnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKaW5k
ZXggM2Q1OGJhNTVlZmQ2M2VkOWJhZTQwNTAxZTMwOWI4NjFmYzllOWMwNS4uYmJjZGJkYTNhYWE2
ZmQxZGExMWM4NjRjMWNiNzdhYjExNjdjNDNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oCkBAIC00Niw2ICs0Niw4IEBAIHN0cnVjdCBFdmVu
dFRyYWNraW5nUmVnaW9ucyB7CiAgICAgLy8gVGhlIGtleSBpcyB0aGUgRXZlbnQgTmFtZSB3aXRo
IGFuIGFjdGl2ZSBoYW5kbGVyLgogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3Bl
Y2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKIAorICAgIFJlZ2lvbiB0b3VjaEFjdGlv
blJlZ2lvbjsKKwogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCiAgICAgdm9pZCB0cmFuc2xh
dGUoSW50U2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVS
ZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAK
aW5kZXggMzRmOGYzYzNjODZlM2ZkZjk1ZjE4NjA2YjZhY2E2MTMyZTVkOGVlMy4uOTA5MTcxMzk3
MTNiM2FjZGMzMmJmMmM1ZDZiZTc1NTdkMGIxNmZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtMjMyLDYgKzIzMiwxMCBAQCBFbGVtZW50VXBkYXRl
cyBUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgYXV0
byBiZWZvcmVVcGRhdGUgPSByZXNvbHZlUHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBQc2V1
ZG9JZDo6QmVmb3JlKTsKICAgICBhdXRvIGFmdGVyVXBkYXRlID0gcmVzb2x2ZVBzZXVkb1N0eWxl
KGVsZW1lbnQsIHVwZGF0ZSwgUHNldWRvSWQ6OkFmdGVyKTsKIAorI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCisgICAgbV9kb2N1bWVudC51cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKGVsZW1lbnQs
IHVwZGF0ZS5zdHlsZS5nZXQoKSk7CisjZW5kaWYKKwogICAgIHJldHVybiB7IFdURk1vdmUodXBk
YXRlKSwgZGVzY2VuZGFudHNUb1Jlc29sdmUsIFdURk1vdmUoYmVmb3JlVXBkYXRlKSwgV1RGTW92
ZShhZnRlclVwZGF0ZSkgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKaW5kZXggYzc3NGJjNDFjODI5NGYwODExNjcxZDZiNzRjYTg2ZDQ4ZWUxNzk0NC4uZmQ3
ZDQzMWEwMmExNWU1M2U2YjA0ODg0MWFkMjM4ZGQzOTQ4YzgzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMDcsNiArMjA3LDcgQEAgZGVmIGZvcndhcmRf
ZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAgJ1dlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0
YXRlQ2hhbmdlSUQnLAogICAgICAgICAnV2ViS2l0OjpVc2VyQ29udGVudENvbnRyb2xsZXJJZGVu
dGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6VG91Y2hBY3Rpb25BbmRTY3JvbGxpbmdOb2RlSURQ
YWlycycsCiAgICAgXSkKIAogICAgIGZvciBwYXJhbWV0ZXIgaW4gcmVjZWl2ZXIuaXRlcnBhcmFt
ZXRlcnMoKToKQEAgLTQyMiw2ICs0MjMsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToK
ICAgICAgICAgJ1dlYkNvcmU6OlJlY2VudFNlYXJjaCc6IFsnPFdlYkNvcmUvU2VhcmNoUG9wdXBN
ZW51Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3knOiBbJzxXZWJD
b3JlL0F1ZGlvU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCisgICAg
ICAgICdXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQnOiBbJzxXZWJDb3JlL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmll
cic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlw
ZXMuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERhdGEuaD4nLCAnPFdlYkNvcmUv
U2VydmljZVdvcmtlckRhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJP
ckNsaWVudElkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPicsICc8
V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oPiddLApAQCAtNDQzLDYgKzQ0
NSw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViS2l0OjpCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGUnOiBbJyJTZXNzaW9uU3RhdGUuaCInXSwKICAgICAgICAgJ1dl
YktpdDo6TGF5ZXJIb3N0aW5nTW9kZSc6IFsnIkxheWVyVHJlZUNvbnRleHQuaCInXSwKICAgICAg
ICAgJ1dlYktpdDo6UGFnZVN0YXRlJzogWyciU2Vzc2lvblN0YXRlLmgiJ10sCisgICAgICAgICdX
ZWJLaXQ6OlRvdWNoQWN0aW9uQW5kU2Nyb2xsaW5nTm9kZUlEUGFpcnMnOiBbJyJXZWJQYWdlUHJv
eHkuaCInXSwKICAgICAgICAgJ1dlYktpdDo6V2ViR2VzdHVyZUV2ZW50JzogWyciV2ViRXZlbnQu
aCInXSwKICAgICAgICAgJ1dlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCc6IFsnIldlYkV2ZW50Lmgi
J10sCiAgICAgICAgICdXZWJLaXQ6OldlYk1vdXNlRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXgg
M2IwNTI5YTRhOTU5YTIzYmQ1ZDA0MGY1ZmEwMDhhZDdiMGZlYzcxZi4uMTY0OTUzYmNiNjFhOTRi
M2Y0M2Y5ZTVmMjhmMTYyYTkzN2M1ZDA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zMzMsNiArMzMzLDcgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEV2ZW50VHIKIHsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uOwogICAgIGVuY29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lv
bnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOworICAgIGVuY29kZXIg
PDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25SZWdpb247CiB9CiAKIGJvb2wgQXJn
dW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCkBAIC0zNDMsOCAr
MzQ0LDEyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNraW5nCiAgICAgSGFzaE1hcDxTdHJpbmcsIFJl
Z2lvbj4gZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIFJlZ2lvbiB0b3VjaEFjdGlvblJlZ2lvbjsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHRvdWNoQWN0aW9uUmVnaW9uKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9uID0gV1RGTW92ZShhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7CiAgICAgZXZlbnRUcmFj
a2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zID0gV1RG
TW92ZShldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpOworICAgIGV2ZW50
VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9uUmVnaW9uID0gV1RGTW92ZSh0b3VjaEFjdGlvblJl
Z2lvbik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDA3NGNkZGZkMjc4NGU4NjkxMjhkMDIwYmVk
NTkyMTNhMWNiZGRlNjguLjBmZGU3ODFjNTc4MThkNzNjYmM0MDI4OGRhYzBlMWI3OTVkOWQzMjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMjU4MCw2ICsyNTgwLDEyIEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzoo
VUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pCiAgICAgLy8gem9v
bWluZy4gV2UnbGwgYW5pbWF0ZSB0byB0aGUgcmlnaHQgcGxhY2Ugb25jZSB0aGUgem9vbSBmaW5p
c2hlcy4KICAgICBpZiAoW3Njcm9sbFZpZXcgaXNab29taW5nXSkKICAgICAgICAgKnRhcmdldENv
bnRlbnRPZmZzZXQgPSBbc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10pCisgICAgICAg
ICAgICB0YXJnZXRDb250ZW50T2Zmc2V0LT54ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lng7
CisgICAgICAgIGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKQorICAg
ICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eSA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNl
dC55OworICAgIH0KICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSAmJiBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQogICAgIGlmIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkqIGNvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSkgewog
ICAgICAgICAvLyBGSVhNRTogSGVyZSwgSSdtIGZpbmRpbmcgdGhlIG1heGltdW0gaG9yaXpvbnRh
bC92ZXJ0aWNhbCBzY3JvbGwgb2Zmc2V0cy4gVGhlcmUncyBwcm9iYWJseSBhIGJldHRlciB3YXkg
dG8gZG8gdGhpcy4KQEAgLTI2MTcsNiArMjYyMywyMCBAQCAtICh2b2lkKXNjcm9sbFZpZXdEaWRT
Y3JvbGxUb1RvcDooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogICAgIFtzZWxmIF9kaWRGaW5p
c2hTY3JvbGxpbmddOwogfQogCistIChDR1BvaW50KV9zY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1BvaW50KW9mZnNldCB0cmFu
c2xhdGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50OihDR1BvaW50KXN0YXJ0IGxv
Y2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhvcml6b250YWxWZWxvY2l0eToo
aW5vdXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopdnYKK3sK
KyAgICBpZiAoIVtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10gJiYgIVtfY29u
dGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgIHJldHVybiBvZmZzZXQ7
CisKKyAgICBDR1BvaW50IGFkanVzdGVkQ29udGVudE9mZnNldCA9IENHUG9pbnRNYWtlKG9mZnNl
dC54LCBvZmZzZXQueSk7CisgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5Y
QXhpc10pCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC54ID0gc3RhcnQueDsKKyAgICBp
ZiAoW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSkKKyAgICAgICAgYWRqdXN0
ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFydC55OworCisgICAgcmV0dXJuIGFkanVzdGVkQ29udGVu
dE9mZnNldDsKK30KKwogLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xsOihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3CiB7CiAgICAgaWYgKCFbc2VsZiB1c2VzU3RhbmRhcmRDb250ZW50Vmlld10g
JiYgW19jdXN0b21Db250ZW50VmlldyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYl9z
Y3JvbGxWaWV3RGlkU2Nyb2xsOildKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGEzNjdlMTVmMDA1MzZmOGNiNWM4NTA5MDdhYjQzYTdj
MzE2NjczMGEuLjg2MzNjN2YyYzI4M2MyOTlhMWNhYjViNzBiZTdmZDk2NmY5YjA5MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTE2
NCw2ICsxNjQsMTEgQEAgVHJhY2tpbmdUeXBlIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHk6OmV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXQKICAgICByZXR1cm4gbV9zY3Jv
bGxpbmdUcmVlLT5ldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGV2ZW50TmFtZSwgcCk7CiB9CiAK
K2Jvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6bWF5SGF2ZVRvdWNoQWN0aW9u
c0ZvclBvaW50KEludFBvaW50IHApIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xsaW5nVHJl
ZS0+bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclBvaW50KHApOworfQorCiB2b2lkIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6OnZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGlu
ZyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25S
ZWN0LCBkb3VibGUgc2NhbGUpCiB7CiAgICAgbV9zY3JvbGxpbmdUcmVlLT52aWV3cG9ydENoYW5n
ZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcobm9kZUlELCBmaXhlZFBvc2l0aW9uUmVjdCwgc2NhbGUp
OwpAQCAtMjA1LDYgKzIxMCwxMSBAQCBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eTo6c2Nyb2xsaW5nVHJlZUFzVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7CiB9CiAKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2V0VG91Y2hB
Y3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rp
b25zLCBTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEKQoreworICAgIG1fc2Nyb2xsaW5n
VHJlZS0+c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKHRvdWNoQWN0aW9ucywgc2Ny
b2xsaW5nTm9kZUlEKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmgKaW5kZXggYjMyZDc5ZmU5Mjg5YjE0NTdjOGVhZDJkOGQzNWMzYjc5ZGFl
Yzk2YS4uYzY5ODcyOWNiNzllN2Q4MDc1ZTI1NjJjYjRhZGQ3ZmQyYmVkYThhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCkBAIC01OCw2ICs1OCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQ
b3NpdGlvbiwgYm9vbCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAogICAgIFdlYkNv
cmU6OlRyYWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnROYW1lLCBXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CisgICAgYm9vbCBtYXlI
YXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OwogCiAgICAg
Ly8gQ2FsbGVkIGV4dGVybmFsbHkgd2hlbiBuYXRpdmUgdmlld3MgbW92ZSBhcm91bmQuCiAgICAg
dm9pZCB2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBk
b3VibGUgc2NhbGUpOwpAQCAtOTcsNiArOTgsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFN0
cmluZyBzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRUb3VjaEFjdGlv
bnNGb3JTY3JvbGxpbmdOb2RlSUQoT3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGNvbm5lY3RTdGF0
ZU5vZGVMYXllcnMoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlJiwgY29uc3QgUmVtb3RlTGF5
ZXJUcmVlSG9zdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDRjYzdlMWE4N2I4NWFjNzA2MzdlMTVm
NDRjYzFlNGY4ZjkyMTljNGMuLjBiYjE3MzE4NDEzZWI5OTU3NWZhYTIzYTdhMGRiYzRjY2RlMGZk
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTY3LDkgKzY3LDI1IEBAIC0gKHZvaWQpc2Nyb2xsVmll
d1dpbGxCZWdpbkRyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiAgICAgX3Njcm9s
bGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFdpbGxTdGFydCgpOwogfQogCi0jaWYgRU5BQkxF
KENTU19TQ1JPTExfU05BUCkKIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzooVUlT
Y3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pbnQpdmVsb2NpdHkgdGFy
Z2V0Q29udGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAqKXRhcmdldENvbnRlbnRPZmZzZXQKIHsK
KyAgICBpZiAoIVtzY3JvbGxWaWV3IGlzWm9vbWluZ10pIHsKKyAgICAgICAgYXV0byB0b3VjaEFj
dGlvbnMgPSBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnRvdWNo
QWN0aW9ucygpOworICAgICAgICBpZiAodG91Y2hBY3Rpb25zICE9IFdlYkNvcmU6OlRvdWNoQWN0
aW9uOjpBdXRvICYmIHRvdWNoQWN0aW9ucyAhPSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6TWFuaXB1
bGF0aW9uKSB7CisgICAgICAgICAgICBib29sIGNhblBhblggPSB0cnVlOworICAgICAgICAgICAg
Ym9vbCBjYW5QYW5ZID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRh
aW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5YKSkgeworICAgICAgICAgICAgICAgIGNhblBh
blggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0YXJnZXRDb250ZW50T2Zmc2V0LT54ID0gc2Ny
b2xsVmlldy5jb250ZW50T2Zmc2V0Lng7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAo
IXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWSkpIHsKKyAg
ICAgICAgICAgICAgICBjYW5QYW5ZID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdGFyZ2V0Q29u
dGVudE9mZnNldC0+eSA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNldC55OworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgfQorCisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBD
R0Zsb2F0IGhvcml6b250YWxUYXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT54OwogICAgIENH
RmxvYXQgdmVydGljYWxUYXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT55OwogCkBAIC05Niw4
ICsxMTIsOCBAQCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmll
dyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9jaXR5OihDR1BvaQogICAgICAgICB8fCBvcmlnaW5hbFZl
cnRpY2FsU25hcFBvc2l0aW9uICE9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxp
bmdOb2RlKCkuY3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXgoKSkgewogICAgICAgICBfc2Ny
b2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2Uo
X3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5jdXJyZW50SG9yaXpv
bnRhbFNuYXBQb2ludEluZGV4KCksIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxp
bmdOb2RlKCkuY3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXgoKSk7CiAgICAgfQotfQogI2Vu
ZGlmCit9CiAKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3IHdpbGxEZWNlbGVyYXRlOihCT09MKXdpbGxEZWNlbGVyYXRlCiB7CkBAIC0x
MDUsNiArMTIxLDcgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcgd2lsbERlY2VsZXJhdGU6KEJPT0wKICAgICAgICAgX2luVXNlcklu
dGVyYWN0aW9uID0gTk87CiAgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3Jv
bGxWaWV3RGlkU2Nyb2xsKHNjcm9sbFZpZXcuY29udGVudE9mZnNldCwgX2luVXNlckludGVyYWN0
aW9uKTsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbERpZEVuZCgp
OworICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnNl
dFRvdWNoQWN0aW9ucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6QXV0byk7CiAgICAgfQogfQogCkBA
IC0xMTQsOSArMTMxLDI2IEBAIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERlY2VsZXJhdGluZzoo
VUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogICAgICAgICBfaW5Vc2VySW50ZXJhY3Rpb24gPSBO
TzsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRTY3Jv
bGwoc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0LCBfaW5Vc2VySW50ZXJhY3Rpb24pOwogICAgICAg
ICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsRGlkRW5kKCk7CisgICAgICAgIF9z
Y3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuc2V0VG91Y2hBY3Rpb25z
KFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvKTsKICAgICB9CiB9CiAKKy0gKENHUG9pbnQpX3Nj
cm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZz
ZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0
UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZp
ZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5
Oihpbm91dCBkb3VibGUgKil2dgoreworICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gX3Njcm9sbGlu
Z1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS50b3VjaEFjdGlvbnMoKTsKKyAgICBp
ZiAodG91Y2hBY3Rpb25zID09IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvIHx8IHRvdWNoQWN0
aW9ucyA9PSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKQorICAgICAgICByZXR1
cm4gb2Zmc2V0OworCisgICAgQ0dQb2ludCBhZGp1c3RlZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50
TWFrZShvZmZzZXQueCwgb2Zmc2V0LnkpOworCisgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29udGFp
bnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblgpKQorICAgICAgICBhZGp1c3RlZENvbnRlbnRP
ZmZzZXQueCA9IHN0YXJ0Lng7CisgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29y
ZTo6VG91Y2hBY3Rpb246OlBhblkpKQorICAgICAgICBhZGp1c3RlZENvbnRlbnRPZmZzZXQueSA9
IHN0YXJ0Lnk7CisKKyAgICByZXR1cm4gYWRqdXN0ZWRDb250ZW50T2Zmc2V0OworfQorCiBAZW5k
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBkZTk4Njk0YWEzN2RiM2M3ZjJjZTI3Y2M4MjlhOTIwMDIxMWRlMTBkLi5hMzczZDBj
Zjk2Mzg3ZDNjZThkZTcxMmQ2OThhYjk2OWViNTAyNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtODEsOSArODEsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhUHJvZHVjZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNraW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0R3Jh
bnVsYXJpdHkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RvdWNoQWN0aW9uLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8bWVtb3J5
PgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAtMzI5LDYgKzMzMSwxMCBA
QCB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmPiBNYWNo
U2VuZFJpZ2h0Q2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxib29sLCBib29sLCBT
dHJpbmcsIGRvdWJsZSwgZG91YmxlLCB1aW50NjRfdD4gTm93UGxheWluZ0luZm9DYWxsYmFjazsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCit0eXBlZGVmIFZlY3Rvcjxz
dGQ6OnBhaXI8T3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlEPj4gVG91Y2hBY3Rpb25BbmRTY3JvbGxpbmdOb2RlSURQYWlyczsKKyNlbmRpZgor
CiB1c2luZyBTcGVsbERvY3VtZW50VGFnID0gaW50NjRfdDsKIAogY2xhc3MgV2ViUGFnZVByb3h5
IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6UGFnZT4KQEAgLTY4
MCw2ICs2ODYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rp
b24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24pOwogICAgIHZvaWQgcmVxdWVzdEFkZGl0aW9uYWxJ
dGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uKTsKICAgICB2b2lkIGRp
ZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yRGF0YT4pOworICAgIGJvb2wgaXNTY3JvbGxpbmdPclpvb21pbmcoKSBjb25zdCB7IHJldHVy
biBtX2lzU2Nyb2xsaW5nT3Jab29taW5nOyB9CiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShE
QVRBX0RFVEVDVElPTikKQEAgLTExNTYsNiArMTE2MywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
YW5jZWxQb3RlbnRpYWxUYXAoKTsKICAgICB2b2lkIHRhcEhpZ2hsaWdodEF0UG9zaXRpb24oY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIHVpbnQ2NF90JiByZXF1ZXN0SUQpOwogICAgIHZvaWQg
aGFuZGxlVGFwKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCB1aW50NjRfdCBsYXllclRyZWVU
cmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCk7CisjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCisgICAgYm9vbCBtYXlIYXZlVG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudChjb25zdCBXZWJU
b3VjaEV2ZW50JikgY29uc3Q7CisgICAgVG91Y2hBY3Rpb25BbmRTY3JvbGxpbmdOb2RlSURQYWly
cyB0b3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmKTsKKyNlbmRp
ZgogCiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hFbmRlZEF0
UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IGE3
ZmZmZjc4ZjMwYTcwZjRmYzU5MGQ3MDVhMWQxOWUzYTM4ODFiZWYuLmQ2ODhhMTEyMGZiOWQ3YTQ1
YjRhZmFkZDFjNzg5NzhkYjgzYjVjODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTE5Niw2ICsxOTYsOCBA
QCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogICAgIFJldGFpblB0cjxVSVdlYlRvdWNo
RXZlbnRzR2VzdHVyZVJlY29nbml6ZXI+IF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXI7CiAK
ICAgICBCT09MIF9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseTsKKyAgICBCT09MIF9w
cmV2ZW50c1Bhbm5pbmdJblhBeGlzOworICAgIEJPT0wgX3ByZXZlbnRzUGFubmluZ0luWUF4aXM7
CiAKICAgICBSZXRhaW5QdHI8V0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyPiBf
c2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXI7CiAgICAgUmV0YWluUHRyPF9VSVdlYkhpZ2hsaWdo
dExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyPiBfaGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJl
Y29nbml6ZXI7CkBAIC0zNDksNiArMzUxLDggQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRh
IHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgY29uc3QgV2ViS2l0OjpGb2N1c2Vk
RWxlbWVudEluZm9ybWF0aW9uJiBmb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVdlYkZvcm1BY2Nlc3NvcnkgKmZvcm1BY2Nlc3NvcnlW
aWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVRleHRJbnB1dEFzc2lzdGFu
dEl0ZW0gKmlucHV0QXNzaXN0YW50SXRlbUZvcldlYlZpZXc7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgcHJldmVudHNQYW5uaW5nSW5YQXhpczsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzOwogCiAjaWYgRU5B
QkxFKERBVEFMSVNUX0VMRU1FTlQpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBVSVZp
ZXcgPFdLRm9ybUNvbnRyb2w+ICpkYXRhTGlzdFRleHRTdWdnZXN0aW9uc0lucHV0VmlldzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCmluZGV4IDNlNTI5MmE3OGMyYWNmNDYxYTY4MjkzYjNhYWM0MjJjOTBkN2IzYzUu
LmI4ZjIwNWEyZTdkYzMwMjdlMzgyMGIyMjg0NGRjYTRlZDRlYzliMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgog
I2ltcG9ydCAiTmF0aXZlV2ViVG91Y2hFdmVudC5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5oIgorI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eS5oIgogI2ltcG9ydCAiU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5oIgogI2ltcG9y
dCAiVGV4dElucHV0U1BJLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgpAQCAtOTEsNiArOTIsNyBA
QAogI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxiYXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVE
YXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvVG91Y2hBY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPgog
I2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Xcml0aW5nRGly
ZWN0aW9uLmg+CkBAIC02MTUsNiArNjE3LDE2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNGb2N1
c2VkRWxlbWVudChXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24gZm9jdXNlZEVsCiAg
ICAgcmV0dXJuIChmb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlICE9IFdlYktp
dDo6SW5wdXRUeXBlOjpOb25lKTsKIH0KIAorLSAoQk9PTClwcmV2ZW50c1Bhbm5pbmdJblhBeGlz
Cit7CisgICAgcmV0dXJuIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzOworfQorCistIChCT09MKXBy
ZXZlbnRzUGFubmluZ0luWUF4aXMKK3sKKyAgICByZXR1cm4gX3ByZXZlbnRzUGFubmluZ0luWUF4
aXM7Cit9CisKIC0gKFdLRm9ybUlucHV0U2Vzc2lvbiAqKV9mb3JtSW5wdXRTZXNzaW9uCiB7CiAg
ICAgcmV0dXJuIF9mb3JtSW5wdXRTZXNzaW9uLmdldCgpOwpAQCAtODYxLDYgKzg3Myw4IEBAIC0g
KHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAgICAgX2hhc1NldFVwSW50ZXJhY3Rpb25zID0gTk87
CiAgICAgX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucyA9IHsgfTsKICAgICBfaXNa
b29taW5nVG9SZXZlYWxGb2N1c2VkRWxlbWVudCA9IE5POworCisgICAgW3NlbGYgX3Jlc2V0UGFu
bmluZ1ByZXZlbnRpb25GbGFnc107CiB9CiAKIC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0dXJl
UmVjb2duaXplcnMKQEAgLTExMjgsMTYgKzExNDIsNTYgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVu
dHNSZWNvZ25pemVkOihVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJl
UmUKICAgICBXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQgbmF0aXZlV2ViVG91Y2hFdmVudChs
YXN0VG91Y2hFdmVudCk7CiAgICAgbmF0aXZlV2ViVG91Y2hFdmVudC5zZXRDYW5QcmV2ZW50TmF0
aXZlR2VzdHVyZXMoIV9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSB8fCBbZ2VzdHVy
ZVJlY29nbml6ZXIgaXNEZWZhdWx0UHJldmVudGVkXSk7CiAKKyAgICBpZiAoX3BhZ2UtPm1heUhh
dmVUb3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KG5hdGl2ZVdlYlRvdWNoRXZlbnQpKSB7CisgICAg
ICAgIGZvciAoYXV0byB0b3VjaEFjdGlvbnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyIDogX3BhZ2Ut
PnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQobmF0aXZlV2ViVG91Y2hFdmVudCkpIHsKKyAgICAg
ICAgICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gdG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlE
UGFpci5maXJzdDsKKyAgICAgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91
Y2hBY3Rpb246Ok5vbmUpCisgICAgICAgICAgICAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29n
bml6ZXIgc2V0RGVmYXVsdFByZXZlbnRlZDpZRVNdOworICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgLy8gRGlzYWJsZSBhbGwgdGFwLXJlbGF0ZWQgcmVjb2duaXplcnMuCisgICAg
ICAgICAgICAgICAgW19zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsK
KyAgICAgICAgICAgICAgICBbX25vbkJsb2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIg
c2V0RW5hYmxlZDpOT107CisgICAgICAgICAgICAgICAgW190d29GaW5nZXJEb3VibGVUYXBHZXN0
dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBbX2hpZ2hsaWdo
dExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOworICAgICAgICAgICAg
ICAgIFtfdHdvRmluZ2VyU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107
CisgICAgICAgICAgICAgICAgW19zdHlsdXNTaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRF
bmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBbX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVy
IHNldEVuYWJsZWQ6Tk9dOworICAgICAgICAgICAgICAgIFtfbG9uZ1ByZXNzR2VzdHVyZVJlY29n
bml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlvbnMu
Y29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gc2Nyb2xsaW5nTm9kZUlEID0gdG91Y2hBY3Rpb25zQW5kU2Ny
b2xsaW5nTm9kZUlEUGFpci5zZWNvbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChh
dXRvKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3It
PnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRCh0b3VjaEFjdGlvbnMsIHNjcm9sbGlu
Z05vZGVJRCk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6
UGluY2hab29tKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfd2ViVmlldy5zY3JvbGxW
aWV3LnBpbmNoR2VzdHVyZVJlY29nbml6ZXIuZW5hYmxlZCA9IE5POworICAgICAgICAgICAgICAg
ICAgICAgICAgX3ByZXZlbnRzUGFubmluZ0luWEF4aXMgPSAhdG91Y2hBY3Rpb25zLmNvbnRhaW5z
KFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5YKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9w
cmV2ZW50c1Bhbm5pbmdJbllBeGlzID0gIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpU
b3VjaEFjdGlvbjo6UGFuWSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoX2NhblNlbmRU
b3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5KQogICAgICAgICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVu
dEFzeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNoRXZlbnQpOwogICAgIGVsc2UKICAgICAgICAg
X3BhZ2UtPmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNoRXZlbnQp
OwogCi0gICAgaWYgKG5hdGl2ZVdlYlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNl
ZCgpKQorICAgIGlmIChuYXRpdmVXZWJUb3VjaEV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFz
ZWQoKSkgewogICAgICAgICBfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgPSBOTzsK
KworICAgICAgICBpZiAoIV9wYWdlLT5pc1Njcm9sbGluZ09yWm9vbWluZygpKQorICAgICAgICAg
ICAgW3NlbGYgX3Jlc2V0UGFubmluZ1ByZXZlbnRpb25GbGFnc107CisgICAgfQogI2VuZGlmCiB9
CiAKKy0gKHZvaWQpX3Jlc2V0UGFubmluZ1ByZXZlbnRpb25GbGFncworeworICAgIF9wcmV2ZW50
c1Bhbm5pbmdJblhBeGlzID0gTk87CisgICAgX3ByZXZlbnRzUGFubmluZ0luWUF4aXMgPSBOTzsK
K30KKwogLSAodm9pZClfaW5zcGVjdG9yTm9kZVNlYXJjaFJlY29nbml6ZWQ6KFVJR2VzdHVyZVJl
Y29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogewogICAgIEFTU0VSVChfaW5zcGVjdG9yTm9k
ZVNlYXJjaEVuYWJsZWQpOwpAQCAtMjE5NCw2ICsyMjQ4LDggQEAgLSAodm9pZClfZGlkRW5kU2Ny
b2xsaW5nT3Jab29taW5nCiAgICAgfQogICAgIF9wYWdlLT5zZXRJc1Njcm9sbGluZ09yWm9vbWlu
ZyhmYWxzZSk7CiAKKyAgICBbc2VsZiBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXTsKKwog
I2lmIFBMQVRGT1JNKFdBVENIT1MpCiAgICAgW19mb2N1c2VkRm9ybUNvbnRyb2xWaWV3IGVuZ2Fn
ZUZvY3VzZWRGb3JtQ29udHJvbE5hdmlnYXRpb25dOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBiOWJkNzBjOWJlZTEwNjll
MWI0ZjEyMzA5OGI5Y2FlMTJkNjQ4N2M1Li5jNDU3YTFlOGQwYjMzOTVmM2JjOWM3MzVjMTFjNTY3
ZWJiOGEwYWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlN
ZXNzYWdlcy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKKyNpbXBv
cnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKICNpbXBvcnQgIlVJS2l0U1BJ
LmgiCiAjaW1wb3J0ICJVc2VyRGF0YS5oIgogI2ltcG9ydCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5LmgiCkBAIC04MjQsNiArODI1LDI0IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRp
YWxUYXBBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCB1CiAg
ICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBvdGVudGlhbFRhcEF0UG9zaXRp
b24ocmVxdWVzdElELCBwb3NpdGlvbiksIG1fcGFnZUlEKTsKIH0KIAorI2lmIEVOQUJMRShJT1Nf
VE9VQ0hfRVZFTlRTKQorYm9vbCBXZWJQYWdlUHJveHk6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JU
b3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIGV2ZW50KSBjb25zdAoreworICAgIGZvciAo
YXV0byYgdG91Y2hQb2ludCA6IGV2ZW50LnRvdWNoUG9pbnRzKCkpIHsKKyAgICAgICAgaWYgKHRv
dWNoUG9pbnQucGhhc2UoKSA9PSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZCAm
JiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHktPm1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2lu
dCh0b3VjaFBvaW50LmxvY2F0aW9uKCkpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIHJldHVybiBmYWxzZTsKK30KKworVG91Y2hBY3Rpb25BbmRTY3JvbGxpbmdOb2RlSURQ
YWlycyBXZWJQYWdlUHJveHk6OnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91
Y2hFdmVudCYgZXZlbnQpCit7CisgICAgVG91Y2hBY3Rpb25BbmRTY3JvbGxpbmdOb2RlSURQYWly
cyB0b3VjaEFjdGlvbnM7CisgICAgcHJvY2VzcygpLnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdl
OjpUb3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KGV2ZW50KSwgTWVzc2FnZXM6OldlYlBhZ2U6OlRv
dWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQ6OlJlcGx5KHRvdWNoQWN0aW9ucyksIG1fcGFnZUlEKTsK
KyAgICByZXR1cm4gdG91Y2hBY3Rpb25zOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVByb3h5
Ojpjb21taXRQb3RlbnRpYWxUYXAodWludDY0X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFz
dFRvdWNoU3RhcnQpCiB7CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNv
bW1pdFBvdGVudGlhbFRhcChsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCks
IG1fcGFnZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA3MTVlMTI0NTIwZmYwNzZiOTYwYWVkNzBlOWI5MjA3NWE2NTUyYWVmLi4zY2JhMWIyZjZl
ZDU0Yjk5YTYxODhjOTY1MDkwZGQ3Y2UzMDQ4NDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02MTksNiArNjE5LDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIGNhbmNlbFBvdGVudGlhbFRhcEluRnJhbWUoV2ViRnJhbWUmKTsKICAgICB2b2lkIHRhcEhp
Z2hsaWdodEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9h
dFBvaW50Jik7CiAKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKKyAgICB2b2lkIHRvdWNo
QWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYsIFRvdWNoQWN0aW9uQW5k
U2Nyb2xsaW5nTm9kZUlEUGFpcnMmKTsKKyNlbmRpZgorCiAgICAgdm9pZCBpbnNwZWN0b3JOb2Rl
U2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2
b2lkIGluc3BlY3Rvck5vZGVTZWFyY2hFbmRlZEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA1NGFiYmFmODkzNGNjZGNmOGU0ZjIwZjc4M2ZjYjZi
OWYwMzA0MGViLi45YTQ0MjUwNzI2NTkyNjQ1ZTRjNzZhNTY4ODk1Njc1ZTc2YzhhNTE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KQEAgLTEyMiw2ICsxMjIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2Vp
dmVyIHsKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIFRvdWNoRXZlbnRTeW5j
KFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkgLT4gKGJvb2wgaGFuZGxlZCkgTGVnYWN5U3lu
YworICAgIFRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoV2ViS2l0OjpXZWJUb3VjaEV2ZW50IGV2
ZW50KSAtPiAoV2ViS2l0OjpUb3VjaEFjdGlvbkFuZFNjcm9sbGluZ05vZGVJRFBhaXJzIHRvdWNo
QWN0aW9ucykgTGVnYWN5U3luYwogI2VuZGlmCiAjaWYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIFRvdWNoRXZlbnQoV2ViS2l0OjpXZWJUb3Vj
aEV2ZW50IGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQppbmRleCAwNjY5NmMwNjVjYzc3NDhjMWNiZGUwMDU0NWUzNzM2NGVh
Njk0ZTUzLi43Njc4MzZiZTMxZmQ0NmY0ZGZlYTVjOTdiNjc4OTQ5MmZkMjYyMjJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpA
QCAtMTAzLDYgKzEwMyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJCbG9jay5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5k
ZXJJbWFnZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJMYXllckJhY2tpbmcuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUmVuZGVyVGhlbWVJT1MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmll
dy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KQEAgLTg2
Miw2ICs4NjMsMjkgQEAgdm9pZCBXZWJQYWdlOjp0YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXQKICAgICBzZW5kVGFwSGlnaGxp
Z2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHJlcXVlc3RJRCwgbWFpbmZyYW1lLm5vZGVSZXNwb25kaW5n
VG9DbGlja0V2ZW50cyhwb3NpdGlvbiwgYWRqdXN0ZWRQb2ludCkpOwogfQogCisjaWYgRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpCit2b2lkIFdlYlBhZ2U6OnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZl
bnQoY29uc3QgV2ViVG91Y2hFdmVudCYgZXZlbnQsIFZlY3RvcjxzdGQ6OnBhaXI8T3B0aW9uU2V0
PFRvdWNoQWN0aW9uPiwgU2Nyb2xsaW5nTm9kZUlEPj4mIHRvdWNoQWN0aW9ucykKK3sKKyAgICBs
YXlvdXRJZk5lZWRlZCgpOworCisgICAgYXV0byYgZXZlbnRIYW5kbGVyID0gbV9wYWdlLT5tYWlu
RnJhbWUoKS5ldmVudEhhbmRsZXIoKTsKKyAgICBmb3IgKGF1dG8mIHRvdWNoIDogZXZlbnQudG91
Y2hQb2ludHMoKSkgeworICAgICAgICBhdXRvIHJlc3VsdCA9IGV2ZW50SGFuZGxlci5oaXRUZXN0
UmVzdWx0QXRQb2ludCgodG91Y2gubG9jYXRpb24oKSksIEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25s
eSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2Vy
QWdlbnRTaGFkb3dDb250ZW50IHwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRl
bnQpOworICAgICAgICBzdGQ6OnBhaXI8T3B0aW9uU2V0PFRvdWNoQWN0aW9uPiwgU2Nyb2xsaW5n
Tm9kZUlEPiB0b3VjaEFjdGlvbnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyOworICAgICAgICBpZiAo
YXV0byogZWxlbWVudCA9IHJlc3VsdC5pbm5lck5vblNoYXJlZEVsZW1lbnQoKSkgeworICAgICAg
ICAgICAgdG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpci5maXJzdCA9IGVsZW1lbnQt
PmNvbXB1dGVkVG91Y2hBY3Rpb25zKCk7CisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9X
X1NDUk9MTElORykKKyAgICAgICAgICAgIC8vIE5vdyB3ZSBzaG91bGQgYWxzbyBsb29rIHRvIHNl
ZSBpZiBvdXIgZWxlbWVudCBpcyBvciBpcyBjb250YWluZWQgd2l0aGluIGFuICJvdmVyZmxvdy1z
Y3JvbGw6IHRvdWNoIiBlbGVtZW50CisgICAgICAgICAgICAvLyBzbyB0aGF0IHdlIGNhbiByZXBv
cnQgaXRzIGxheWVyIGlkIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAgICAgaWYgKGF1dG8g
c2Nyb2xsaW5nTm9kZUlEID0gZWxlbWVudC0+bmVhcmVzdFNjcm9sbGluZ05vZGVJRFVzaW5nVG91
Y2hPdmVyZmxvd1Njcm9sbGluZygpKQorICAgICAgICAgICAgICAgIHRvdWNoQWN0aW9uc0FuZFNj
cm9sbGluZ05vZGVJRFBhaXIuc2Vjb25kID0gc2Nyb2xsaW5nTm9kZUlEOworI2VuZGlmCisgICAg
ICAgIH0KKyAgICAgICAgdG91Y2hBY3Rpb25zLmFwcGVuZCh0b3VjaEFjdGlvbnNBbmRTY3JvbGxp
bmdOb2RlSURQYWlyKTsKKyAgICB9Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjppbnNwZWN0
b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uKQog
ewogICAgIEludFBvaW50IGFkanVzdGVkUG9pbnQgPSByb3VuZGVkSW50UG9pbnQocG9zaXRpb24p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDE3MzY2MGE2ZDZkMzkzMTRjMjdlN2NiMDBlN2IzYzk3NGVmMmNhM2UuLmM4Y2E2
ZThjOWJkMzE1YmI4NTY3MTIxMjZmNTdiMjUzMTFmNzRmNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBA
QAorMjAxOS0wMS0xNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAg
ICAgIExpbWl0IHVzZXItYWdlbnQgaW50ZXJhY3Rpb25zIGJhc2VkIG9uIHRoZSB0b3VjaC1hY3Rp
b24gcHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MzQ0NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDcyODM4NzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHNlcmllcyBv
ZiB0ZXN0cyB0aGF0IGNoZWNrIHRoYXQgdGhlICJub25lIiwgInBhbi14IiwgInBhbi15IiBhbmQg
InBpbmNoLXpvb20iIHZhbHVlcyBoYXZlIHRoZSBleHBlY3RlZAorICAgICAgICBpbXBhY3Qgb24g
cGFnZSBwYW5uaW5nIG9uIGlPUy4KKworICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMtaW4taGllcmFyY2h5LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0aW5n
LXZhbHVlcy1pbi1oaWVyYXJjaHkuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1p
bi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3Zl
cmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICog
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBhbi14LXBhbi15Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpv
b21pbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1z
Y3JvbGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbDogQWRkZWQu
CisKIDIwMTktMDEtMTUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVmlzdWFsVmlld3BvcnQgQVBJIHNob3VsZCBiZSB1cGRhdGVkIHVwb24gb3BlbmluZyBvZiBr
ZXlib2FyZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLWNvbmZsaWN0aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0aW5nLXZhbHVl
cy1pbi1oaWVyYXJjaHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxMGI4ZjcyZWE3NGIzOGFk
ZTIxMzQ1OTNkMjY1MjE4ZDJiOWJiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJh
cmNoeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNl
dHRpbmcgY29uZmxpY3RpbmcgdG91Y2gtYWN0aW9uIHZhbHVlcyBvbiB0aGUgdGFyZ2V0IGVsZW1l
bnQgYW5kIHBhcmVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1
ZXMtaW4taGllcmFyY2h5Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc1YjUwNzZiYmViZTZiMWUxMzRhNWEwNWFhNGU4YzMwZDA4ZjRmM2IKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3Rp
bmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4
IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5i
b2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWln
aHQgPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnRvdWNoQWN0aW9uID0gInBh
bi14IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teSI7CisKKyAgICB1
aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4g
eworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdl
IHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRo
ZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3Rpbmcg
dGhhdCBzZXR0aW5nIGNvbmZsaWN0aW5nIHRvdWNoLWFjdGlvbiB2YWx1ZXMgb24gdGhlIHRhcmdl
dCBlbGVtZW50IGFuZCBwYXJlbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1u
b25lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjdlOGFmODFiZDk4NGM4YzM0MDcwNTUxYWY1
YjYxZTkyNzBmZjgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBlbGVtZW50
IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFt
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg1ODQxMDMyMzlmMWJjN2Y3ZTlmZWI3NTM3ZjVj
OTk3ZTk5ZTI3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACisKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4g
Y29udGVudCBob3N0ZWQgaW4gYW4gaWZyYW1lIHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5v
bmUtaW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjhiODJiMzM1ZDNkYmM5NTYx
NDUxZGI1MDA4MzQyMTIwYWZmODNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLmh0bWwKQEAgLTAsMCAr
MSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CisKK2lmcmFtZSB7CisgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgIGxlZnQ6IDA7CisgICAgdG9wOiAwOworICAgIHdpZHRoOiA0MDBweDsKKyAg
ICBoZWlnaHQ6IDQwMHB4OworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1l
PjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCisndXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3QodGVzdCA9PiB7CisgICAgY29uc3Qg
aWZyYW1lID0gZG9jdW1lbnQuYm9keS5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICBjb25zdCB0YXJn
ZXQgPSBpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2IikpOworICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgYAor
ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDA7CisgICAgICAgIHRv
cDogMDsKKyAgICAgICAgd2lkdGg6IDIwMCU7CisgICAgICAgIGhlaWdodDogMjAwJTsKKyAgICAg
ICAgdG91Y2gtYWN0aW9uOiBub25lOworICAgIGApOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAs
IHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVk
IGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zm
c2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAg
ICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3Vj
aC1hY3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4gYW4gaWZyYW1lIHByZXZlbnRzIHBh
Z2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
aW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzAw
NzI5MTAyNDVlZjU3NTg3ZWJlOWM1MmM5ZmFiYzA1MzJkMWMyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZs
b3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBU
ZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0ZWQg
aW4gYSBzY3JvbGxhYmxlIGNvbnRhaW5lciB1c2luZyAnLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxp
bmc6IHRvdWNoJyBwcmV2ZW50cyBzY3JvbGxpbmcgb2YgdGhhdCBjb250YWluZXIuIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1p
bi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjllOTYxNGZmZWZjZWZiZWFmZTY3NDE3NGI1ODE1NDFjMGYyMzUxNDEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbApAQCAtMCwwICsxLDQ5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04Pgor
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlh
bC1zY2FsZT0xIj4KKzxzdHlsZT4KKworI3Njcm9sbGluZy1jb250YWluZXIgeworICAgIHBvc2l0
aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOworICAgIHRvcDogMDsKKyAgICB3aWR0aDogNDAw
cHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgIC13ZWJr
aXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKK30KKworI3Njcm9sbGluZy1jb250YWluZXIg
PiBkaXYgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOworICAgIHRvcDog
MDsKKyAgICB3aWR0aDogMjAwJTsKKyAgICBoZWlnaHQ6IDIwMCU7CisgICAgdG91Y2gtYWN0aW9u
OiBub25lOworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJzY3JvbGxp
bmctY29udGFpbmVyIj48ZGl2PjwvZGl2PjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGls
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3Qo
dGVzdCA9PiB7CisgICAgY29uc3Qgc2Nyb2xsaW5nQ29udGFpbmVyID0gZG9jdW1lbnQuYm9keS5m
aXJzdEVsZW1lbnRDaGlsZDsKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDog
NTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGlu
Z0NvbnRhaW5lci5zY3JvbGxMZWZ0LCAwLCAiVGhlIHNjcm9sbGluZyBjb250YWluZXIgd2FzIG5v
dCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9s
bGluZ0NvbnRhaW5lci5zY3JvbGxUb3AsIDAsICJUaGUgc2Nyb2xsaW5nIGNvbnRhaW5lciB3YXMg
bm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAg
IH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBpbiBjb250
ZW50IGhvc3RlZCBpbiBhIHNjcm9sbGFibGUgY29udGFpbmVyIHVzaW5nICctd2Via2l0LW92ZXJm
bG93LXNjcm9sbGluZzogdG91Y2gnIHByZXZlbnRzIHNjcm9sbGluZyBvZiB0aGF0IGNvbnRhaW5l
ci4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDY3NTFiZGQ3YzM0NjJhMWUwODZmZmM3M2YzNTNlZDQ0ZGFmN2ZiYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LW9uLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBUZXN0aW5n
IHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gaWZyYW1lIGFuZCBpbnRlcmFj
dGluZyB3aXRoIGl0cyBjb250ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24t
aWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
bm9uZS1vbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTI3ZWE4ZGI0NjE3NDM0MWM1MWEwYzRj
YzUyNTNlNWI2MjA3YTJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0OCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4K
KzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRp
YWwtc2NhbGU9MSI+Cis8c3R5bGU+CisKK2lmcmFtZSB7CisgICAgcG9zaXRpb246IGFic29sdXRl
OworICAgIGxlZnQ6IDA7CisgICAgdG9wOiAwOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWln
aHQ6IDQwMHB4OworICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKK30KKworPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGlmcmFtZT48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCithc3luY190ZXN0KHRl
c3QgPT4geworICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmJvZHkuZmlyc3RFbGVtZW50Q2hp
bGQ7CisgICAgY29uc3QgdGFyZ2V0ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICB0YXJnZXQuc2V0QXR0
cmlidXRlKCJzdHlsZSIsIGAKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBs
ZWZ0OiAwOworICAgICAgICB0b3A6IDA7CisgICAgICAgIHdpZHRoOiAyMDAlOworICAgICAgICBo
ZWlnaHQ6IDIwMCU7CisgICAgYCk7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0s
IHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdp
bmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgt
YXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJU
aGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3Qu
ZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjog
bm9uZSBvbiBhbiBpZnJhbWUgYW5kIGludGVyYWN0aW5nIHdpdGggaXRzIGNvbnRlbnQgcHJldmVu
dHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMmIxMzA0OTY4YTI5MWVhZGQxMzczOTUyNmZjMGQ4Y2Jl
MmEyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhIHBhcmVu
dCBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJl
bnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45YTQ4MDc5M2Y3OTBhNWM4NjI0MTc2OWY5OTMxZThmNDgwY2Yz
Yjc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAw
cHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50
LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhl
aWdodCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudG91Y2hBY3Rpb24gPSAi
bm9uZSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUw
IH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNl
dCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90
IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0p
OworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhIHBhcmVu
dCBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZDAwYjgzYmI5OGU0YWU1ZGRjOWE1OWM5ODY3MmE2YTAzMjljZThiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRt
bApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRl
dmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7
CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFy
Z2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgi
OworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJn
ZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAibm9uZSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwg
eTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQg
aW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZz
ZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAg
ICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNo
LWFjdGlvbjogbm9uZSBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
cGFuLXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2U3ODM3OWRmNDVhNzE3NzQ3
NmM4YmU3YjVkNjQwNDBmMGFhY2RlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9u
IGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHktYXhpcy4gCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4t
eC1wYW4teS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlOTdiZGUzMjdm
YzI5YzNhZTRiNzgwYTExMTY0N2NkNjhmZDVmODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nICd0b3VjaC1h
Y3Rpb246IHBhbi14IHBhbi15JyBvbiBhbiBlbGVtZW50IGFsbG93cyBwYWdlIHNjcm9sbGluZyBp
biBib3RoIGF4ZXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyMjkxYTRk
OGM2N2MyMjE1MWMyMjlkODM3ZDcxYThmM2QwMGFiMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbApA
QCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisK
K3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0
LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOwor
ICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQu
c3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXggcGFuLXkiOworCisgICAgdWkuc3dpcGUoeyB4OiAx
NTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNz
ZXJ0X25vdF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9s
bGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5w
YWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOwor
ICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyAn
dG91Y2gtYWN0aW9uOiBwYW4teCBwYW4teScgb24gYW4gZWxlbWVudCBhbGxvd3MgcGFnZSBzY3Jv
bGxpbmcgaW4gYm90aCBheGVzLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVy
ZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiOTIwNWY3ZWY1
ZGEyY2FiNzAwMTljZmI4ZWE3MGY5NWQ3N2M2ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbApAQCAtMCwwICsx
LDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0
Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwg
aW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91
dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90
ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9
PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3Vt
ZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91
Y2hBY3Rpb24gPSAicGFuLXgiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7
IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMo
d2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVkIGluIHRoZSB4LWF4
aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhl
IHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRv
bmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBh
bi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHktYXhpcy4i
KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXBhbi15LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmNjU4YzM4NjQyMjY3
MTVhZTY3ZWE0MmZiYjkyODY4MDY5Mjg0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4t
eCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB4LWF4aXMuIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
cGFuLXkuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1w
YW4teS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOTBkMzk2MDFmYmVlMTdiZmQxYjk1ZjI0M2U5ZmFiYzUy
Mjc5NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGFuLXkuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhl
aWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5z
dHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0g
IjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXkiOworCisg
ICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgp
ID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUg
cGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9u
b3RfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBp
biB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0
aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVu
dHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHgtYXhpcy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpv
b21pbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjA5NGU2NzYxNWUyYTU5OThmMzMzM2Y5MGZkYTMwZGQxZGNhNWE0NjgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9v
bS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVz
dGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFuIGVsZW1lbnQg
YWxsb3dzIHBhZ2Ugem9vbWluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxv
d3Mtem9vbWluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkYTYzYzk0MjllMWFhMTM5MDI2ZWQ0MzEzY2Vh
NmQ1ZDQ3ODc5NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sCkBAIC0wLDAg
KzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxl
eGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
dXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRf
dGVzdCh7IHdpZHRoOiAiNDAwcHgiLCBoZWlnaHQ6ICI0MDBweCIgfSwgKHRhcmdldCwgdGVzdCkg
PT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1
bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRv
dWNoQWN0aW9uID0gInBpbmNoLXpvb20iOworCisgICAgdWkucGluY2hPdXQoeyB4OiA1MCwgeTog
NTAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwLCBzY2FsZTogMC41IH0pLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cuaW50ZXJuYWxzLnBhZ2VTY2FsZUZhY3Rv
cigpLCAxLCAiVGhlIHBhZ2Ugd2FzIHNjYWxlZC4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7Cisg
ICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29t
IG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugem9vbWluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVu
dHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjBjODViOWFhNTUyZGY5YjcxZDlhZTQzOTc0MDUwZTBjMjg5OTgwMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29t
IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2
ZW50cy1zY3JvbGxpbmcuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAy
MzQxYzYyMTUwN2EzZWU4MzczNGQyNzcxM2Q4NGJmZjU1OWQ3ZGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1w
cmV2ZW50cy1zY3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhl
aWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5z
dHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0g
IjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGluY2gtem9vbSI7
CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRo
ZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwg
IlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9s
bGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwg
IlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVt
ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>359365</attachid>
            <date>2019-01-17 02:55:55 -0800</date>
            <delta_ts>2019-01-24 13:00:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190117115553.patch</filename>
            <type>text/plain</type>
            <size>75365</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwMDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZhZGNlOWZiZjc1YTQx
YjJmNjJiNjVmM2EyOTNjOTE2ZWM4MmNiYi4uNzcyNGNkNDJkZmM1MDc1NDJlZjY1MGE5YjA0ZGMx
MDQ4ZmNhYWU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE5LTAxLTE3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21wdXRlCisgICAgICAgIGEgUmVnaW9uIGNvbnRhaW5pbmcgdGhlIGJvdW5kcyBvZiBlYWNoIG9m
IHRob3NlIGVsZW1lbnRzIGFuZCBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFsb25nIHdp
dGggdG91Y2ggcmVnaW9ucy4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHdlIGFsbG93IGEgbGlz
dCBvZiBhbGxvd2VkIHRvdWNoIGFjdGlvbnMgdG8gYmUgY29tcHV0ZWQgZm9yIGEgZ2l2ZW4gZWxl
bWVudCBhY2NvdW50aW5nIGZvciBub3Qgb25seSB0aGUgdmFsdWUgc3BlY2lmaWVkCisgICAgICAg
IGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxlLCBidXQgYWxzbyBpbiBpdHMgaGllcmFy
Y2h5LCBjcm9zc2luZyBhbnkgZnJhbWUgYm91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRv
Y3VtZW50J3Mgcm9vdCBub2RlLgorCisgICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sCisgICAgICAg
ICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4t
b3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbAorICAgICAg
ICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwK
KyAgICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1s
CisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRt
bAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tYWxsb3dzLXpvb21pbmcuaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwKKworICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVSZW5kZXJp
bmdEZXBlbmRlbnRSZWdpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpub2RlV2ls
bEJlUmVtb3ZlZCk6IEVuc3VyZSBhIG5vZGUgdGhhdCBpcyBiZWluZyByZW1vdmVkIGZyb20gdGhp
cyBkb2N1bWVudCBpcyBubyBsb25nZXIgbGlzdGVkIGluIGl0cworICAgICAgICBsaXN0IG9mIGVs
ZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJvcGVydHkuCisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlVG91Y2hBY3Rpb25FbGVtZW50cyk6IENyZWF0ZSBhIGxp
c3Qgb2YgZWxlbWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSBpZiBv
bmUgZG9lc24ndAorICAgICAgICBleGlzdCB5ZXQgYW5kIHVwZGF0ZSBpdCB0byBhZGQgdGhlIGdp
dmVuIGVsZW1lbnQgaWYgaXQgY29udGFpbnMgYSBub24tYXV0byB0b3VjaC1hY3Rpb24sIG9yIHJl
bW92ZSBpdCBpZiBpdCBkb2Vzbid0LiBJZiB0aGUgY29udGVudHMKKyAgICAgICAgb2YgdGhhdCBs
aXN0IGNoYW5nZWQgYXMgYSByZXN1bHQsIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3IgaXMgaW5m
b3JtZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6dG91Y2hBY3Rpb25FbGVtZW50cyBjb25zdCk6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y29tcHV0ZWRUb3VjaEFjdGlvbnMgY29uc3QpOiBQ
cm92aWRlIHRoZSBsaXN0IG9mIGFsbG93ZWQgdG91Y2ggYWN0aW9ucyBhY2NvdW50aW5nIGZvciB0
aGUgInRvdWNoLWFjdGlvbiIgcHJvcGVydHkKKyAgICAgICAgc3BlY2lmaWVkIG9uIHRoaXMgZWxl
bWVudCBhbmQgYWxsIG9mIGl0cyBoaWVyYXJjaHksIGNyb3NzaW5nIGZyYW1lIGJvdW5kYXJ5Lgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6bmVhcmVzdFNjcm9sbGluZ05vZGVJRFVzaW5nVG91
Y2hPdmVyZmxvd1Njcm9sbGluZyBjb25zdCk6IFByb3ZpZGUgdGhlIFNjcm9sbGluZ05vZGVJRCwg
aWYgYW55LCBmb3IgdGhlIG5lYXJlc3Qgc2Nyb2xsaW5nIG5vZGUKKyAgICAgICAgZm9yIHRoYXQg
ZWxlbWVudC4gVGhpcyB3aWxsIGFsbG93IHRoZSBVSSBwcm9jZXNzIHRvIGlkZW50aWZ5IHdoaWNo
IHNjcm9sbCB2aWV3J3MgYmVoYXZpb3IgdG8gY3VzdG9taXplIHRvIHJlZmxlY3QgdGhlIGVsZW1l
bnQncyBhbGxvd2VkCisgICAgICAgIHRvdWNoIGFjdGlvbnMuCisgICAgICAgICogZG9tL0VsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6YWJzb2x1dGVFdmVudFRy
YWNraW5nUmVnaW9uc0ZvckZyYW1lIGNvbnN0KTogQ29tcHV0ZSB0aGUgcmVnaW9uIGZvciBhbGwg
ZWxlbWVudHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAgICB0
aHJvdWdob3V0IHRoZSBwcm92aWRlZCBmcmFtZSBhbmQgYWxsIG9mIGl0cyBzdWJmcmFtZXMuCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjptYXlIYXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQgY29uc3QpOiBQ
cm92aWRlIGEgcXVpY2sgd2F5IHRvIGluZGVudGlmeSB3aGV0aGVyIHRoZSBwcm92aWRlZCBwb2lu
dCBpcyBjb250YWluZWQgaW4gdGhlIHJlZ2lvbgorICAgICAgICBvZiBlbGVtZW50cyB3aXRoIGEg
bm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKToKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2Rl
Ojp0b3VjaEFjdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5v
ZGU6OnNldFRvdWNoQWN0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcGxh
dGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNv
bHZlRWxlbWVudCk6IFVwZGF0ZSB0aGUgbGlzdCBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8g
dG91Y2gtYWN0aW9uIHByb3BlcnR5IHdoZW4gYW4gZWxlbWVudCdzIHN0eWxlIGNoYW5nZXMuCisK
IDIwMTktMDEtMTUgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBXaW5DYWlybyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjMjE2
NDc2ZTZhMDY0Zjg2MGQ4N2U1MGRjOGNlZTc0NTQ4NDY0MTMuLmE1NDUzYmIyNTE2YTE5YTQyZmQ1
OGFmYzk1YzcwZDFmNWI5YTE5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTktMDEt
MTcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBMaW1pdCB1
c2VyLWFnZW50IGludGVyYWN0aW9ucyBiYXNlZCBvbiB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM0NDcK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3MjgzODc0PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhbmRsZSB0aGUgIm5vbmUiLCAicGFuLXgiLCAi
cGFuLXkiIGFuZCAicGluY2gtem9vbSIgdmFsdWVzIGZvciB0aGUgdG91Y2gtYWN0aW9uIHByb3Bl
cnR5IGJ5IHF1ZXJ5aW5nIHRoZSBzY3JvbGxpbmcgdHJlZSB3aGVuZXZlciBhIHRvdWNoIGJlZ2lu
cworICAgICAgICB0byBpZGVudGlmeSB3aGV0aGVyIGl0cyBwb2ludCBtYXkgYmUgY29udGFpbmVk
IHdpdGhpbiB0aGUgcmVnaW9uIG9mIGVsZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rp
b24gcHJvcGVydHkuIElmIGl0IGlzLCB3ZSBjYWxsIGludG8gdGhlCisgICAgICAgIFdlYiBwcm9j
ZXNzLCBzeW5jaHJvbm91c2x5LCB0byBjb21waWxlIHRoZSBsaXN0IG9mIHBlcm1pdHRlZCB0b3Vj
aCBhY3Rpb25zIHN1Y2ggdGhhdCB3ZSBtYXkgdGhlbiBjdXN0b21pemUgdGhlIGJlaGF2aW9yIG9m
IHRoZSBuZWFyZXN0IHNjcm9sbCB2aWV3CisgICAgICAgIHRvIHBhbiBvciB6b29tIG9ubHkgYXMg
aW5zdHJ1Y3RlZC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAg
ICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmll
dyBzY3JvbGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhWZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zm
c2V0Ol0pOiBBY2NvdW50IGZvciBwYW5uaW5nIGNvbnN0cmFpbnRzIHNldCBvbiB0aGUgY29udGVu
dCB2aWV3IHRvIHByZXZlbnQgZGVjZWxlcmF0aW9uCisgICAgICAgIHRvIHBhbiB0aGUgdmlldyBp
ZiBpdCBvdWdodCBub3QuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVmlldzphZGp1c3Rl
ZE9mZnNldEZvck9mZnNldDp0cmFuc2xhdGlvbjpzdGFydFBvaW50OmxvY2F0aW9uSW5WaWV3Omhv
cml6b250YWxWZWxvY2l0eTp2ZXJ0aWNhbFZlbG9jaXR5Ol0pOiBJbXBsZW1lbnQgYW4gYWRkaXRp
b25hbCBVSVNjcm9sbFZpZXcKKyAgICAgICAgZGVsZWdhdGlvbiBtZXRob2QgdG8gYXBwbHkgdGhl
IHBhbm5pbmcgY29uc3RyYWludHMgc2V0IG9uIHRoZSBjb250ZW50IHZpZXcgd2hpbGUgcGFubmlu
Zy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjptYXlIYXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzZXRUb3VjaEFjdGlv
bnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MubW06CisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3Jv
bGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhWZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0p
OiBBcHBseSB0aGUgc2FtZSBsb2dpYyBhcyBpbiBXS1dlYlZpZXcuCisgICAgICAgICgtW1dLU2Ny
b2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6d2ls
bERlY2VsZXJhdGU6XSk6IFJlc2V0IHRoZSB0b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRl
ZCBzY3JvbGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBpbnRlcmFjdGlvbgorICAgICAgICBpbiB0
aGUgZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0Rl
bGVnYXRlIHNjcm9sbFZpZXdEaWRFbmREZWNlbGVyYXRpbmc6XSk6IFJlc2V0IHRoZSB0b3VjaCBh
Y3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBzY3JvbGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBp
bnRlcmFjdGlvbiBpbiB0aGUKKyAgICAgICAgZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tT
Y3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0
Rm9yT2Zmc2V0OnRyYW5zbGF0aW9uOnN0YXJ0UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRh
bFZlbG9jaXR5OnZlcnRpY2FsVmVsb2NpdHk6XSk6IEFwcGx5IHRoZSBzYW1lIGxvZ2ljIGFzIGlu
IFdLV2ViVmlldy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNTY3JvbGxpbmdPclpvb21pbmcgY29uc3QpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBjbGVhbnVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd2Vi
VG91Y2hFdmVudHNSZWNvZ25pemVkOl0pOiBBcyB3ZSBwcm9jZXNzIHRvdWNoZXMsIGNoZWNrIHdo
ZXRoZXIgdGhlcmUgbWF5IGJlIHRvdWNoIGFjdGlvbnMgc2V0IGZvciB0aGlzIHRvdWNoJ3MgbG9j
YXRpb24sIGFuZCBpZiB3ZSBoYXZlbid0IGV4Y2x1ZGVkCisgICAgICAgIHRoYXQgcG9zc2liaWxp
dHksIGNhbGwgaW50byB0aGUgV2ViIHByb2Nlc3Mgc3luY2hyb25vdXNseSB0byBmaW5kIHdoaWNo
IHRvdWNoIGFjdGlvbnMgdGhlc2UgbWlnaHQgYmUgZXhhY3RseS4gVGhlbiwgYmFzZWQgb24gdGhv
c2UgdG91Y2ggYWN0aW9ucywgZWl0aGVyIHNldERlZmF1bHRQcmV2ZW50ZWQKKyAgICAgICAgb24g
dGhlIF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgaWYgdGhlIHRvdWNoIGFjdGlvbiBpcyAi
bm9uZSIgb3Igc2VsZWN0aXZlbHkgZGlzYWJsZSBwYW5uaW5nIGFuZCB6b29taW5nLgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nXSk6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6bWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQgY29uc3QpOiBDaGVj
ayBhbGwgdG91Y2ggcG9pbnRzIGZvciBhIGdpdmVuIGV2ZW50IHRvIHNlZSBpZiBpdCBtaWdodCBo
YXZlIGFzc29jaWF0ZWQgdG91Y2ggYWN0aW9ucy4gVGhpcyBjaGVja3MgdGhhdAorICAgICAgICB0
aGVzZSBhcmUgbmV3IHRvdWNoZXMgYW5kIHRoYXQgdGhlaXIgbG9jYXRpb24gaXMgY29udGFpbmVk
IHdpdGhpbiB0aGUgdG91Y2ggYWN0aW9uIHJlZ2lvbiBjb21wdXRlZCBpbiB0aGUgV2ViIHByb2Nl
c3MgYW5kIHNlbnQgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6dG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQp
OiBJdGVyYXRlIG92ZXIgYWxsIHRvdWNoIHBvaW50cyBmb3IgYSBnaXZlbiBldmVudCBhbmQgcmV0
dXJuLCBpZiB0aGVyZSBpcyBhIG5vbi1hdXRvIHRvdWNoIGFjdGlvbiBzZXQsIGNyZWF0ZSBhIHBh
aXIgY29uc2lzdGluZyBvZiBhCisgICAgICAgIGxpc3Qgb2YgdG91Y2gtYWN0aW9ucyBhbmQgdGhl
IHNjcm9sbGluZyBub2RlIElEIGZvciB0aGUgbmVhcmVzdCBzY3JvbGwgbm9kZSB0byB0aGUgZWxl
bWVudCB0aGF0IGhpdCB0ZXN0cyBmb3IgdGhpcyBsb2NhdGlvbi4KKwogMjAxOS0wMS0xNSAgRnVq
aWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkIFdpbkNhaXJvIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiOTZmYTJkZWM0MWU0OWUzMTQxNDJkMGI2NDUy
MmJhM2M3OTI0YzZhLi4yOTc4YTY3YTQxZDJlYTM4MzQzODc2ZmE4YmU4NmE0ZWZiNTg5NjY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zMTk1MSw2ICszMTk1MSw3IEBACiAJCQkJNDlFOTEyQUUwRUZBQzkwNjAwOUQwQ0FGIC8q
IFRpbWluZ0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU0REQwODE4ODFENUY1MDAz
RUVEQkIgLyogVG91Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCTcxQjdFRTBEMjFCNUM2ODcwMDMx
QzFFRiAvKiBUb3VjaEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzFCN0VFMEQyMUI1QzY4
NzAwMzFDMUVGIC8qIFRvdWNoQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU0REQwOTE4
ODFENUY1MDAzRUVEQkIgLyogVG91Y2hFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1NERE
MEExODgxRDVGNTAwM0VFREJCIC8qIFRvdWNoTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDcw
MzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFzZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCBmZTVjOTUxYmM2NGQ2NjJkYWVjNTE1ZjllNDNlYTRlYzkw
NGU4MWM2Li5mN2U4ZjcyMWU0ZGQ5MjgwMzgyNDZiODAyNWI4Njc5YzIwYmU4YWUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOCw2ICsyMDgsNyBAQAogI2luY2x1ZGUgIlRleHRBdXRv
U2l6aW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2
ZXJzYWwuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVNv
dXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIKICNpbmNsdWRlICJVbmRvTWFuYWdlci5o
IgpAQCAtNDE0MCw4ICs0MTQxLDE2IEBAIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVSZW5kZXJp
bmdEZXBlbmRlbnRSZWdpb25zKEFubm90YXRpb25zQWN0aW9uIGFubm90YXRpb25zCiAgICAgVU5V
U0VEX1BBUkFNKGFubm90YXRpb25zQWN0aW9uKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgc2V0VG91Y2hFdmVudFJlZ2lvbnNOZWVk
VXBkYXRlKCk7CisjZW5kaWYKKyAgICBpZiAoYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKSkgewor
ICAgICAgICBpZiAoYXV0byogZnJhbWVWaWV3ID0gdmlldygpKSB7CisgICAgICAgICAgICBpZiAo
YXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvcigp
KQorICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdFdmVudFRy
YWNraW5nUmVnaW9uc0NoYW5nZWQoKmZyYW1lVmlldyk7CisgICAgICAgIH0KKyAgICB9CiAjZW5k
aWYKIH0KIApAQCAtNDUyNiw2ICs0NTM1LDExIEBAIHZvaWQgRG9jdW1lbnQ6Om5vZGVXaWxsQmVS
ZW1vdmVkKE5vZGUmIG5vZGUpCiAKICAgICBpZiAoaXM8VGV4dD4obm9kZSkpCiAgICAgICAgIG1f
bWFya2Vycy0+cmVtb3ZlTWFya2Vycygmbm9kZSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQorICAgIGlmIChtX3RvdWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIG1fdG91Y2hBY3Rpb25F
bGVtZW50cy0+cmVtb3ZlQWxsKCZub2RlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgTm9kZSogZmFs
bGJhY2tGb2N1c05hdmlnYXRpb25TdGFydGluZ05vZGVBZnRlclJlbW92YWwoTm9kZSYgbm9kZSkK
QEAgLTg2NDgsNCArODY2MiwzMyBAQCB2b2lkIERvY3VtZW50OjpzZXRQYWludFdvcmtsZXRHbG9i
YWxTY29wZUZvck5hbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBSZWY8UGFpbnRXbwogfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQordm9pZCBEb2N1bWVudDo6dXBkYXRlVG91Y2hB
Y3Rpb25FbGVtZW50cyhOb2RlJiBub2RlLCBSZW5kZXJTdHlsZSogc3R5bGUpCit7CisgICAgaWYg
KCFtX3RvdWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIG1fdG91Y2hBY3Rpb25FbGVtZW50cyA9
IHN0ZDo6bWFrZV91bmlxdWU8RXZlbnRUYXJnZXRTZXQ+KCk7CisKKyAgICBib29sIGNoYW5nZWQg
PSBmYWxzZTsKKworICAgIGlmIChzdHlsZSAmJiBzdHlsZS0+dG91Y2hBY3Rpb25zKCkgIT0gVG91
Y2hBY3Rpb246OkF1dG8pCisgICAgICAgIGNoYW5nZWQgfD0gbV90b3VjaEFjdGlvbkVsZW1lbnRz
LT5hZGQoJm5vZGUpLmlzTmV3RW50cnk7CisgICAgZWxzZQorICAgICAgICBjaGFuZ2VkIHw9IG1f
dG91Y2hBY3Rpb25FbGVtZW50cy0+cmVtb3ZlQWxsKCZub2RlKTsKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgaWYgKCFjaGFuZ2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBQYWdl
KiBwYWdlID0gdGhpcy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdmlldygpKSB7CisgICAgICAgIGlmIChT
Y3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlLT5zY3JvbGxp
bmdDb29yZGluYXRvcigpKQorICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1l
Vmlld0V2ZW50VHJhY2tpbmdSZWdpb25zQ2hhbmdlZCgqZnJhbWVWaWV3KTsKKyAgICB9CisjZW5k
aWYKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IGViNDQ1NTFjY2FmMzRhMDliODkzNzhhYTg3MTM0OTc3MTM5NmUzMTkuLjg4Njg4OGVh
OTg0YTc0NzM2MzlmMGU2ZThiM2NiM2FmOTE1MjY0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC0xMjczLDYgKzEyNzMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAg
ICBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVycygpIGNvbnN0IHsgcmV0dXJuIChtX3RvdWNoRXZl
bnRUYXJnZXRzLmdldCgpKSA/IG1fdG91Y2hFdmVudFRhcmdldHMtPnNpemUoKSA6IGZhbHNlOyB9
CiAgICAgYm9vbCB0b3VjaEV2ZW50VGFyZ2V0c0NvbnRhaW4oTm9kZSYgbm9kZSkgY29uc3QgeyBy
ZXR1cm4gbV90b3VjaEV2ZW50VGFyZ2V0cyA/IG1fdG91Y2hFdmVudFRhcmdldHMtPmNvbnRhaW5z
KCZub2RlKSA6IGZhbHNlOyB9CisgICAgdm9pZCB1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5v
ZGUmLCBSZW5kZXJTdHlsZSopOwogI2Vsc2UKICAgICBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVy
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCB0b3VjaEV2ZW50VGFyZ2V0c0Nv
bnRhaW4oTm9kZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xMjkyLDYgKzEyOTMsMTUg
QEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisgICAgY29uc3QgRXZlbnRUYXJnZXRTZXQqIHRv
dWNoQWN0aW9uRWxlbWVudHMoKSBjb25zdAorICAgIHsKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQorICAgICAgICByZXR1cm4gbV90b3VjaEFjdGlvbkVsZW1lbnRzLmdldCgpOworI2Vsc2UKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKyAgICB9CisKICAgICBjb25zdCBFdmVudFRh
cmdldFNldCogd2hlZWxFdmVudFRhcmdldHMoKSBjb25zdCB7IHJldHVybiBtX3doZWVsRXZlbnRU
YXJnZXRzLmdldCgpOyB9CiAKICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxSZWdpb24sIGJvb2w+IFJl
Z2lvbkZpeGVkUGFpcjsKQEAgLTE4NzMsNiArMTg4Myw3IEBAIHByaXZhdGU6CiAgICAgCiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+
IG1fdG91Y2hFdmVudFRhcmdldHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50VGFyZ2V0U2V0
PiBtX3RvdWNoQWN0aW9uRWxlbWVudHM7CiAjZW5kaWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZl
bnRUYXJnZXRTZXQ+IG1fd2hlZWxFdmVudFRhcmdldHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApp
bmRleCBkYTVjZDJmMDgxYzFlODhmODExMWVmZmYzMjZkZjIwMjY0NDRjNDNhLi40MmQ1NTUxNDM5
ZDA1ZDVjN2VhYmMyNDYxZmU5MGYxNjZmNWU3M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC04MSw2ICs4MSw4IEBACiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyRnJhZ21lbnRDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgorI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVy
Q29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIKICNpbmNsdWRlICJSZW5k
ZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVVcGRhdGVyLmgiCkBAIC0zNDE2LDcgKzM0
MTgsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9vbCBm
bGFnKQogICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKIH0KIAotc3Rh
dGljIEVsZW1lbnQqIHBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKEVsZW1lbnQqIGVsZW1l
bnQpCitzdGF0aWMgRWxlbWVudCogcGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoY29uc3Qg
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgcmV0dXJuIGVs
ZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA/IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA6IGVsZW1l
bnQtPmRvY3VtZW50KCkub3duZXJFbGVtZW50KCk7CkBAIC00MTIwLDQgKzQxMjIsNjYgQEAgdm9p
ZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVTdHlsZU1hcChSZWY8U3R5bGVQcm9wZXJ0eU1hcD4mJiBt
YXApCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCitPcHRpb25TZXQ8VG91
Y2hBY3Rpb24+IEVsZW1lbnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zKCkgY29uc3QKK3sKKyAgICBP
cHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVkVG91Y2hBY3Rpb25zID0gVG91Y2hBY3Rpb246
OkF1dG87CisgICAgZm9yIChhdXRvKiBlbGVtZW50ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9
IHBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGVsZW1lbnQpKSB7CisgICAgICAgIGF1dG8q
IHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICAgICAgaWYgKCFyZW5kZXJlcikK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gcmVu
ZGVyZXItPnN0eWxlKCkudG91Y2hBY3Rpb25zKCk7CisKKyAgICAgICAgLy8gT25jZSB3ZSd2ZSBl
bmNvdW50ZXJlZCB0b3VjaC1hY3Rpb246IG5vbmUsIHdlIGtub3cgdGhhdCB0aGlzIHdpbGwgYmUg
dGhlIGNvbXB1dGVkIHZhbHVlLgorICAgICAgICBpZiAodG91Y2hBY3Rpb25zID09IFRvdWNoQWN0
aW9uOjpOb25lKQorICAgICAgICAgICAgcmV0dXJuIHRvdWNoQWN0aW9uczsKKworICAgICAgICAv
LyBJZiB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIHNvIGZhciB3YXMgImF1dG8iLCB3ZSBjYW4g
anVzdCB1c2UgdGhlIGN1cnJlbnQgZWxlbWVudCdzIHRvdWNoLWFjdGlvbi4KKyAgICAgICAgaWYg
KGNvbXB1dGVkVG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpBdXRvKSB7CisgICAgICAgICAg
ICBjb21wdXRlZFRvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCBoYXMg
dG91Y2gtYWN0aW9uOiBhdXRvIG9yIHRoZSBzYW1lIHRvdWNoLWFjdGlvbiBhcyB0aGUgY29tcHV0
ZWQgdG91Y2gtYWN0aW9uLAorICAgICAgICAvLyB3ZSBuZWVkIHRvIGtlZXAgZ29pbmcgdXAgdGhl
IGFuY2VzdHJ5IGNoYWluLgorICAgICAgICBpZiAodG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9u
OjpBdXRvIHx8IHRvdWNoQWN0aW9ucyA9PSBjb21wdXRlZFRvdWNoQWN0aW9ucykKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIE5vdywgdGhlIGVsZW1lbnQncyB0b3VjaC1hY3Rp
b24gYW5kIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gYXJlIGRpZmZlcmVudCBhbmQgYXJlIG5l
aXRoZXIgImF1dG8iIG5vciAibm9uZSIuCisgICAgICAgIGlmIChjb21wdXRlZFRvdWNoQWN0aW9u
cyA9PSBUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKSB7CisgICAgICAgICAgICAvLyBJZiB0aGUg
Y29tcHV0ZWQgdG91Y2gtYWN0aW9uIGlzICJtYW5pcHVsYXRpb24iLCB3ZSBjYW4gdGFrZSB0aGUg
Y3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uIGFzIHRoZSBuZXdseQorICAgICAgICAgICAg
Ly8gY29tcHV0ZWQgdG91Y2gtYWN0aW9uLgorICAgICAgICAgICAgY29tcHV0ZWRUb3VjaEFjdGlv
bnMgPSB0b3VjaEFjdGlvbnM7CisgICAgICAgIH0gZWxzZSBpZiAodG91Y2hBY3Rpb25zID09IFRv
dWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pIHsKKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2Ug
aGF2ZSBhIHJlc3RyaWN0ZWQgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIHNvIGZhci4gSWYgdGhlIGN1
cnJlbnQgZWxlbWVudCdzIHRvdWNoLWFjdGlvbiBpcyAibWFuaXB1bGF0aW9uIgorICAgICAgICAg
ICAgLy8gdGhlbiB3ZSBjYW4ganVzdCBrZWVwIGdvaW5nIGFuZCBsZWF2ZSB0aGUgY29tcHV0ZWQg
dG91Y2gtYWN0aW9uIHVudG91Y2hlZC4KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9
CisKKyAgICAgICAgLy8gSW4gYW55IG90aGVyIGNhc2UsIHdlIGhhdmUgY29tcGV0aW5nIHJlc3Ry
aWN0aXZlIHRvdWNoLWFjdGlvbiB2YWx1ZXMgdGhhdCBjYW4gb25seSB5aWVsZCAibm9uZSIuCisg
ICAgICAgIHJldHVybiBUb3VjaEFjdGlvbjo6Tm9uZTsKKyAgICB9CisgICAgcmV0dXJuIGNvbXB1
dGVkVG91Y2hBY3Rpb25zOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZF
UkZMT1dfU0NST0xMSU5HKQorU2Nyb2xsaW5nTm9kZUlEIEVsZW1lbnQ6Om5lYXJlc3RTY3JvbGxp
bmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25zdAoreworICAgIGlmICgh
cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBXZSBhcmUgbm90IGludGVy
ZXN0ZWQgaW4gdGhlIHJvb3QsIHNvIGNoZWNrIHRoYXQgd2UgYWxzbyBoYXZlIGEgdmFsaWQgcGFy
ZW50LgorICAgIGZvciAoYXV0byogbGF5ZXIgPSByZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigp
OyBsYXllciAmJiBsYXllci0+cGFyZW50KCk7IGxheWVyID0gbGF5ZXItPnBhcmVudCgpKSB7Cisg
ICAgICAgIGlmIChsYXllci0+aXNDb21wb3NpdGVkKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRv
IHNjcm9sbGluZ05vZGVJRCA9IGxheWVyLT5iYWNraW5nKCktPnNjcm9sbGluZ05vZGVJREZvclJv
bGUoU2Nyb2xsQ29vcmRpbmF0aW9uUm9sZTo6U2Nyb2xsaW5nKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc2Nyb2xsaW5nTm9kZUlEOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5k
ZXggMTY5ZmRlMTNhZGI2MjcwNDFmZGQ4YjVlNmY1YjhmMmFkY2IzODZmMy4uZWQ3MjZjOTViOTIx
NTA1MTBhNzU1NTc0NWQwMjU3ZDg0YmM1MTI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiS2V5ZnJhbWVBbmltYXRpb25PcHRpb25zLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsVG9PcHRpb25zLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRl
ICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3RNb2RlLmgiCiAj
aW5jbHVkZSAiU2ltdWxhdGVkQ2xpY2tPcHRpb25zLmgiCiAjaW5jbHVkZSAiU3R5bGVDaGFuZ2Uu
aCIKQEAgLTU2LDYgKzU3LDcgQEAgY2xhc3MgUHNldWRvRWxlbWVudDsKIGNsYXNzIFJlbmRlclRy
ZWVQb3NpdGlvbjsKIGNsYXNzIFN0eWxlUHJvcGVydHlNYXA7CiBjbGFzcyBXZWJBbmltYXRpb247
CitlbnVtIGNsYXNzIFRvdWNoQWN0aW9uIDogdWludDhfdDsKIHN0cnVjdCBFbGVtZW50U3R5bGU7
CiBzdHJ1Y3QgU2Nyb2xsSW50b1ZpZXdPcHRpb25zOwogCkBAIC01ODgsNiArNTkwLDE0IEBAIHB1
YmxpYzoKICAgICBFeGNlcHRpb25PcjxSZWY8V2ViQW5pbWF0aW9uPj4gYW5pbWF0ZShKU0M6OkV4
ZWNTdGF0ZSYsIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYsIE9wdGlvbmFsPFZhcmlhbnQ8
ZG91YmxlLCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnM+PiYmKTsKICAgICBWZWN0b3I8UmVmUHRy
PFdlYkFuaW1hdGlvbj4+IGdldEFuaW1hdGlvbnMoKTsKIAorI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBjb21wdXRlZFRv
dWNoQWN0aW9ucygpIGNvbnN0OworI2VuZGlmCisKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZF
UkZMT1dfU0NST0xMSU5HKQorICAgIFdFQkNPUkVfRVhQT1JUIFNjcm9sbGluZ05vZGVJRCBuZWFy
ZXN0U2Nyb2xsaW5nTm9kZUlEVXNpbmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkgY29uc3Q7Cisj
ZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBjYjg3MzgzOTZh
M2E1OGVmNDUyMGVlNTQ4Y2Y4MzFlYjQxNTQ3MWI4Li45Y2E3ODU5YWFmMGUzM2VhN2MyMmJjYWRh
MTUwOTZmOGMzNGM1ZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC05OSw3ICs5OSwyNSBAQCBFdmVudFRy
YWNraW5nUmVnaW9ucyBTY3JvbGxpbmdDb29yZGluYXRvcjo6YWJzb2x1dGVFdmVudFRyYWNraW5n
UmVnaW9uc0ZvckZyYW1lKAogICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKTsK
ICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm4gRXZlbnRUcmFja2luZ1JlZ2lvbnMo
KTsKLSAgICByZXR1cm4gZG9jdW1lbnQtPmV2ZW50VHJhY2tpbmdSZWdpb25zKCk7CisgICAgYXV0
byBldmVudFRyYWNraW5nUmVnaW9ucyA9IGRvY3VtZW50LT5ldmVudFRyYWNraW5nUmVnaW9ucygp
OworICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9uUmVnaW9uID0gZnJhbWUuZG9j
dW1lbnQoKS0+YWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMoZnJhbWUuZG9jdW1lbnQoKS0+
dG91Y2hBY3Rpb25FbGVtZW50cygpKS5maXJzdDsKKworICAgIGZvciAoYXV0byogc3ViZnJhbWUg
PSBmcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBzdWJmcmFtZTsgc3ViZnJhbWUgPSBzdWJmcmFt
ZS0+dHJlZSgpLm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgYXV0byogc3ViZnJhbWVWaWV3ID0g
c3ViZnJhbWUtPnZpZXcoKTsKKyAgICAgICAgaWYgKCFzdWJmcmFtZVZpZXcpCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBpZiAoYXV0byogc3ViZnJhbWVEb2N1bWVudCA9IHN1YmZy
YW1lLT5kb2N1bWVudCgpKSB7CisgICAgICAgICAgICBhdXRvIHN1YmZyYW1lUmVnaW9uID0gc3Vi
ZnJhbWVEb2N1bWVudC0+YWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMoc3ViZnJhbWVEb2N1
bWVudC0+dG91Y2hBY3Rpb25FbGVtZW50cygpKS5maXJzdDsKKyAgICAgICAgICAgIC8vIE1hcCBm
cm9tIHRoZSBmcmFtZSBkb2N1bWVudCB0byBvdXIgZG9jdW1lbnQuCisgICAgICAgICAgICBhdXRv
IG9mZnNldCA9IHN1YmZyYW1lVmlldy0+Y29udGVudHNUb0NvbnRhaW5pbmdWaWV3Q29udGVudHMo
SW50UG9pbnQoKSk7CisgICAgICAgICAgICAvLyBGSVhNRTogdGhpcyB0cmFuc2xhdGlvbiBpZ25v
cmVzIG5vbi10cml2YWwgdHJhbnNmb3JtcyBvbiB0aGUgZnJhbWUuCisgICAgICAgICAgICBzdWJm
cmFtZVJlZ2lvbi50cmFuc2xhdGUodG9JbnRTaXplKG9mZnNldCkpOworICAgICAgICAgICAgZXZl
bnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25SZWdpb24udW5pdGUoc3ViZnJhbWVSZWdpb24p
OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGV2ZW50VHJhY2tpbmdSZWdpb25zOwog
I2Vsc2UKICAgICBhdXRvKiBmcmFtZVZpZXcgPSBmcmFtZS52aWV3KCk7CiAgICAgaWYgKCFmcmFt
ZVZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
Y3BwCmluZGV4IDUyNDM5M2RkMTZhYTYzN2ZmMTYxZDY3NWI4MGZmZDk0ZTdhYTE1MDAuLjMzYTJm
ZmI3Yzc0N2U2MzFkZTI5Mzk2NDkyNmM5MDFlNWRjYmQ3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0yNDcsNiArMjQ3LDExIEBA
IFRyYWNraW5nVHlwZSBTY3JvbGxpbmdUcmVlOjpldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnROCiAgICAgcmV0dXJuIG1fZXZlbnRUcmFja2luZ1JlZ2lv
bnMudHJhY2tpbmdUeXBlRm9yUG9pbnQoZXZlbnROYW1lLCBwKTsKIH0KIAorYm9vbCBTY3JvbGxp
bmdUcmVlOjptYXlIYXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQoY29uc3QgSW50UG9pbnQgcCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9ldmVudFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvblJlZ2lv
bi5jb250YWlucyhwKTsKK30KKwogYm9vbCBTY3JvbGxpbmdUcmVlOjppc1J1YmJlckJhbmRJblBy
b2dyZXNzKCkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7ICAgIApAQCAtNDAzLDYg
KzQwOCwxMiBAQCBTdHJpbmcgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZUFzVGV4dCgpCiAg
ICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRUb3Vj
aEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFj
dGlvbnMsIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQpCit7CisgICAgaWYgKGF1dG8q
IHNjcm9sbGluZ1RyZWVOb2RlID0gbm9kZUZvcklEKHNjcm9sbGluZ05vZGVJRCkpCisgICAgICAg
IHNjcm9sbGluZ1RyZWVOb2RlLT5zZXRUb3VjaEFjdGlvbnModG91Y2hBY3Rpb25zKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRl
eCBlZmM2ODQxNWMzOTQzMGRmN2YyNzA0M2ZlOTgyMzMyNzc1NTY3NjMyLi4zNjkzMzMyZWIzNmVm
MWQ5YThhNDQwZTU3N2RiZGJjYzcwMDM5Yjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUGxh
dGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIldo
ZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL0xvY2suaD4KQEAgLTEwNCw3ICsxMDUsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAg
IFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCk7Ci0gICAgCisgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBtYXlIYXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQoY29uc3QgSW50UG9pbnQp
IGNvbnN0OworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVl
bEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCAv
Kmhvcml6b250YWxJbmRleCovLCB1bnNpZ25lZCAvKnZlcnRpY2FsSW5kZXgqLykgeyB9CkBAIC0x
NTEsNiArMTUzLDcgQEAgcHVibGljOgogICAgIH0KICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgc2Nyb2xsaW5nVHJlZUFzVGV4dCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKE9wdGlvblNldDxUb3VjaEFjdGlvbj4sIFNj
cm9sbGluZ05vZGVJRCk7CiAgICAgCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRNYWluRnJhbWVT
Y3JvbGxQb3NpdGlvbihGbG9hdFBvaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmluZGV4IGJmN2Y2MWEzNjFiOTNiNDdkZmU0MzRl
MDVmOTMyODhjY2Y1OTBiYjYuLmZhYjdmNGFlNjE1ZWE2YzM4MWU1YmY3NmI1YTkwMjEzZjMwMmFi
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZU5v
ZGUuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC03MCw2ICs3MSw5IEBAIHB1Ymxp
YzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZHVtcChXVEY6OlRleHRTdHJlYW0mLCBTY3Jv
bGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKKyAgICBPcHRpb25TZXQ8VG91
Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hBY3Rpb25zOyB9
CisgICAgdm9pZCBzZXRUb3VjaEFjdGlvbnMoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFj
dGlvbnMpIHsgbV90b3VjaEFjdGlvbnMgPSB0b3VjaEFjdGlvbnM7IH0KKwogcHJvdGVjdGVkOgog
ICAgIFNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwg
U2Nyb2xsaW5nTm9kZUlEKTsKICAgICBTY3JvbGxpbmdUcmVlJiBzY3JvbGxpbmdUcmVlKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlOyB9CkBAIC04NSw2ICs4OSw3IEBAIHByaXZhdGU6
CiAgICAgY29uc3QgU2Nyb2xsaW5nTm9kZUlEIG1fbm9kZUlEOwogCiAgICAgU2Nyb2xsaW5nVHJl
ZU5vZGUqIG1fcGFyZW50OworICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gbV90b3VjaEFjdGlv
bnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKaW5kZXggN2U3NjNjODk1M2RjYThlNmRk
N2NhY2FkNjI1MjQwN2M3MGM1Zjg2My4uOWZiZTEwMDhhMTM2ZGIzM2ZhMWI4NDE5NWIzMDRlNTM2
YjUyMDhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2lu
Z1JlZ2lvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdS
ZWdpb25zLmNwcApAQCAtNzMsNyArNzMsOCBAQCB2b2lkIEV2ZW50VHJhY2tpbmdSZWdpb25zOjp1
bml0ZShjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbgogYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBhLCBjb25zdCBFdmVudFRy
YWNraW5nUmVnaW9ucyYgYikKIHsKICAgICByZXR1cm4gYS5hc3luY2hyb25vdXNEaXNwYXRjaFJl
Z2lvbiA9PSBiLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uCi0gICAgICAgICYmIGEuZXZlbnRT
cGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zID09IGIuZXZlbnRTcGVjaWZpY1N5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb25zOworICAgICAgICAmJiBhLmV2ZW50U3BlY2lmaWNTeW5jaHJv
bm91c0Rpc3BhdGNoUmVnaW9ucyA9PSBiLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9ucworICAgICAgICAmJiBhLnRvdWNoQWN0aW9uUmVnaW9uID09IGIudG91Y2hBY3Rpb25S
ZWdpb247CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oCmluZGV4IDNkNThiYTU1ZWZkNjNlZDliYWU0
MDUwMWUzMDliODYxZmM5ZTljMDUuLmJiY2RiZGEzYWFhNmZkMWRhMTFjODY0YzFjYjc3YWIxMTY3
YzQzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdS
ZWdpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lv
bnMuaApAQCAtNDYsNiArNDYsOCBAQCBzdHJ1Y3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMgewogICAg
IC8vIFRoZSBrZXkgaXMgdGhlIEV2ZW50IE5hbWUgd2l0aCBhbiBhY3RpdmUgaGFuZGxlci4KICAg
ICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRj
aFJlZ2lvbnM7CiAKKyAgICBSZWdpb24gdG91Y2hBY3Rpb25SZWdpb247CisKICAgICBib29sIGlz
RW1wdHkoKSBjb25zdDsKIAogICAgIHZvaWQgdHJhbnNsYXRlKEludFNpemUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IDM0ZjhmM2MzYzg2ZTNmZGY5
NWYxODYwNmI2YWNhNjEzMmU1ZDhlZTMuLjkwOTE3MTM5NzEzYjNhY2RjMzJiZjJjNWQ2YmU3NTU3
ZDBiMTZmZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29s
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAK
QEAgLTIzMiw2ICsyMzIsMTAgQEAgRWxlbWVudFVwZGF0ZXMgVHJlZVJlc29sdmVyOjpyZXNvbHZl
RWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgIGF1dG8gYmVmb3JlVXBkYXRlID0gcmVzb2x2
ZVBzZXVkb1N0eWxlKGVsZW1lbnQsIHVwZGF0ZSwgUHNldWRvSWQ6OkJlZm9yZSk7CiAgICAgYXV0
byBhZnRlclVwZGF0ZSA9IHJlc29sdmVQc2V1ZG9TdHlsZShlbGVtZW50LCB1cGRhdGUsIFBzZXVk
b0lkOjpBZnRlcik7CiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIG1fZG9jdW1lbnQu
dXBkYXRlVG91Y2hBY3Rpb25FbGVtZW50cyhlbGVtZW50LCB1cGRhdGUuc3R5bGUuZ2V0KCkpOwor
I2VuZGlmCisKICAgICByZXR1cm4geyBXVEZNb3ZlKHVwZGF0ZSksIGRlc2NlbmRhbnRzVG9SZXNv
bHZlLCBXVEZNb3ZlKGJlZm9yZVVwZGF0ZSksIFdURk1vdmUoYWZ0ZXJVcGRhdGUpIH07CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGM3NzRiYzQxYzgy
OTRmMDgxMTY3MWQ2Yjc0Y2E4NmQ0OGVlMTc5NDQuLmZkN2Q0MzFhMDJhMTVlNTNlNmIwNDg4NDFh
ZDIzOGRkMzk0OGM4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtMjA3LDYgKzIwNyw3IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVy
cyhyZWNlaXZlcik6CiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAg
J1dlYktpdDo6VXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcicsCisgICAgICAgICdXZWJL
aXQ6OlRvdWNoQWN0aW9uQW5kU2Nyb2xsaW5nTm9kZUlEUGFpcnMnLAogICAgIF0pCiAKICAgICBm
b3IgcGFyYW1ldGVyIGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJzKCk6CkBAIC00MjIsNiArNDIz
LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpSZWNl
bnRTZWFyY2gnOiBbJzxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5JzogWyc8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInOiBbJzxXZWJD
b3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAorICAgICAgICAnV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZUlEJzogWyc8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRvci5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50
RGF0YSc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+JywgJzxXZWJDb3JlL1NlcnZp
Y2VXb3JrZXJDbGllbnREYXRhLmg+JywgJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJEYXRhLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJzogWyc8
V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIuaD4nXSwKQEAgLTQ0Myw2ICs0NDUsNyBAQCBkZWYgaGVhZGVyc19mb3Jf
dHlwZSh0eXBlKToKICAgICAgICAgJ1dlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJzog
WyciU2Vzc2lvblN0YXRlLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkxheWVySG9zdGluZ01vZGUn
OiBbJyJMYXllclRyZWVDb250ZXh0LmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OlBhZ2VTdGF0ZSc6
IFsnIlNlc3Npb25TdGF0ZS5oIiddLAorICAgICAgICAnV2ViS2l0OjpUb3VjaEFjdGlvbkFuZFNj
cm9sbGluZ05vZGVJRFBhaXJzJzogWyciV2ViUGFnZVByb3h5LmgiJ10sCiAgICAgICAgICdXZWJL
aXQ6OldlYkdlc3R1cmVFdmVudCc6IFsnIldlYkV2ZW50LmgiJ10sCiAgICAgICAgICdXZWJLaXQ6
OldlYktleWJvYXJkRXZlbnQnOiBbJyJXZWJFdmVudC5oIiddLAogICAgICAgICAnV2ViS2l0OjpX
ZWJNb3VzZUV2ZW50JzogWyciV2ViRXZlbnQuaCInXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDNiMDUyOWE0YTk1OWEyM2JkNWQwNDBm
NWZhMDA4YWQ3YjBmZWM3MWYuLjE2NDk1M2JjYjYxYTk0YjNmNDNmOWU1ZjI4ZjE2MmE5MzdjNWQw
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cApAQCAtMzMzLDYgKzMzMyw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVn
aW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFdmVudFRyCiB7CiAgICAgZW5j
b2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsK
ICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJv
bm91c0Rpc3BhdGNoUmVnaW9uczsKKyAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25z
LnRvdWNoQWN0aW9uUmVnaW9uOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2lu
Z1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZlbnRUcmFja2luZ1JlZ2lvbnMm
IGV2ZW50VHJhY2tpbmdSZWdpb25zKQpAQCAtMzQzLDggKzM0NCwxMiBAQCBib29sIEFyZ3VtZW50
Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZl
bnRUcmFja2luZwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNTeW5j
aHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGV2ZW50U3Bl
Y2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBSZWdpb24gdG91Y2hBY3Rpb25SZWdpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0
b3VjaEFjdGlvblJlZ2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBldmVudFRyYWNr
aW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IFdURk1vdmUoYXN5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb24pOwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lm
aWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9IFdURk1vdmUoZXZlbnRTcGVjaWZpY1N5bmNo
cm9ub3VzRGlzcGF0Y2hSZWdpb25zKTsKKyAgICBldmVudFRyYWNraW5nUmVnaW9ucy50b3VjaEFj
dGlvblJlZ2lvbiA9IFdURk1vdmUodG91Y2hBY3Rpb25SZWdpb24pOwogICAgIHJldHVybiB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQppbmRleCAwNzRjZGRmZDI3ODRlODY5MTI4ZDAyMGJlZDU5MjEzYTFjYmRkZTY4Li4wZmRlNzgx
YzU3ODE4ZDczY2JjNDAyODhkYWMwZTFiNzk1ZDlkMzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI1ODAsNiArMjU4MCwxMiBAQCAt
ICh2b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZp
ZXcgd2l0aFZlbG9jaXR5OihDR1BvaQogICAgIC8vIHpvb21pbmcuIFdlJ2xsIGFuaW1hdGUgdG8g
dGhlIHJpZ2h0IHBsYWNlIG9uY2UgdGhlIHpvb20gZmluaXNoZXMuCiAgICAgaWYgKFtzY3JvbGxW
aWV3IGlzWm9vbWluZ10pCiAgICAgICAgICp0YXJnZXRDb250ZW50T2Zmc2V0ID0gW3Njcm9sbFZp
ZXcgY29udGVudE9mZnNldF07CisgICAgZWxzZSB7CisgICAgICAgIGlmIChbX2NvbnRlbnRWaWV3
IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKQorICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNl
dC0+eCA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNldC54OworICAgICAgICBpZiAoW19jb250ZW50
VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSkKKyAgICAgICAgICAgIHRhcmdldENvbnRlbnRP
ZmZzZXQtPnkgPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueTsKKyAgICB9CiAjaWYgRU5BQkxF
KENTU19TQ1JPTExfU05BUCkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBpZiAoV2Vi
S2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdl
LT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkpIHsKICAgICAgICAgLy8gRklYTUU6IEhlcmUs
IEknbSBmaW5kaW5nIHRoZSBtYXhpbXVtIGhvcml6b250YWwvdmVydGljYWwgc2Nyb2xsIG9mZnNl
dHMuIFRoZXJlJ3MgcHJvYmFibHkgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMuCkBAIC0yNjE3LDYg
KzI2MjMsMjAgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xsVG9Ub3A6KFVJU2Nyb2xsVmll
dyAqKXNjcm9sbFZpZXcKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsKIH0KIAorLSAo
Q0dQb2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9m
ZnNldEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNs
YXRpb24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludCls
b2NhdGlvbkluVmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRp
Y2FsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7CisgICAgaWYgKCFbX2NvbnRlbnRWaWV3
IHByZXZlbnRzUGFubmluZ0luWEF4aXNdICYmICFbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmlu
Z0luWUF4aXNdKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAgQ0dQb2ludCBhZGp1c3Rl
ZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShvZmZzZXQueCwgb2Zmc2V0LnkpOworICAgIGlm
IChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKQorICAgICAgICBhZGp1c3Rl
ZENvbnRlbnRPZmZzZXQueCA9IHN0YXJ0Lng7CisgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVu
dHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC55ID0gc3Rh
cnQueTsKKworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisKIC0gKHZvaWQp
c2Nyb2xsVmlld0RpZFNjcm9sbDooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAgIGlm
ICghW3NlbGYgdXNlc1N0YW5kYXJkQ29udGVudFZpZXddICYmIFtfY3VzdG9tQ29udGVudFZpZXcg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJfc2Nyb2xsVmlld0RpZFNjcm9sbDopXSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRl
eCBhMzY3ZTE1ZjAwNTM2ZjhjYjVjODUwOTA3YWI0M2E3YzMxNjY3MzBhLi44NjMzYzdmMmMyODNj
Mjk5YTFjYWI1YjcwYmU3ZmQ5NjZmOWIwOTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xNjQsNiArMTY0LDExIEBAIFRyYWNraW5n
VHlwZSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpldmVudFRyYWNraW5nVHlwZUZv
clBvaW50KGNvbnN0IEF0CiAgICAgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZS0+ZXZlbnRUcmFja2lu
Z1R5cGVGb3JQb2ludChldmVudE5hbWUsIHApOwogfQogCitib29sIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6Om1heUhhdmVUb3VjaEFjdGlvbnNGb3JQb2ludChJbnRQb2ludCBwKSBj
b25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGluZ1RyZWUtPm1heUhhdmVUb3VjaEFjdGlvbnNG
b3JQb2ludChwKTsKK30KKwogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojp2
aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJ
RCwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlKQogewog
ICAgIG1fc2Nyb2xsaW5nVHJlZS0+dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5n
KG5vZGVJRCwgZml4ZWRQb3NpdGlvblJlY3QsIHNjYWxlKTsKQEAgLTIwNSw2ICsyMTAsMTEgQEAg
U3RyaW5nIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVBc1Rl
eHQoKSBjb25zdAogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCit2b2lkIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJ
RChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9kZUlEIHNj
cm9sbGluZ05vZGVJRCkKK3sKKyAgICBtX3Njcm9sbGluZ1RyZWUtPnNldFRvdWNoQWN0aW9uc0Zv
clNjcm9sbGluZ05vZGVJRCh0b3VjaEFjdGlvbnMsIHNjcm9sbGluZ05vZGVJRCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IGIz
MmQ3OWZlOTI4OWIxNDU3YzhlYWQyZDhkMzVjM2I3OWRhZWM5NmEuLmM2OTg3MjljYjc5ZTdkODA3
NWUyNTYyY2I0YWRkN2ZkMmJlZGE4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaApAQCAtNTgsNiArNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
Y3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcmVwcmVzZW50
c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiAKICAgICBXZWJDb3JlOjpUcmFja2luZ1R5cGUgZXZlbnRU
cmFja2luZ1R5cGVGb3JQb2ludChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50TmFtZSwgV2ViQ29y
ZTo6SW50UG9pbnQpIGNvbnN0OworICAgIGJvb2wgbWF5SGF2ZVRvdWNoQWN0aW9uc0ZvclBvaW50
KFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKIAogICAgIC8vIENhbGxlZCBleHRlcm5hbGx5IHdo
ZW4gbmF0aXZlIHZpZXdzIG1vdmUgYXJvdW5kLgogICAgIHZvaWQgdmlld3BvcnRDaGFuZ2VkVmlh
RGVsZWdhdGVkU2Nyb2xsaW5nKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlKTsKQEAgLTk3LDYg
Kzk4LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICBTdHJpbmcgc2Nyb2xsaW5nVHJlZUFzVGV4
dCgpIGNvbnN0OworICAgIHZvaWQgc2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKE9w
dGlvblNldDxXZWJDb3JlOjpUb3VjaEFjdGlvbj4sIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7
CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb25uZWN0U3RhdGVOb2RlTGF5ZXJzKFdlYkNvcmU6OlNj
cm9sbGluZ1N0YXRlVHJlZSYsIGNvbnN0IFJlbW90ZUxheWVyVHJlZUhvc3QmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlP
Uy5tbQppbmRleCA0Y2M3ZTFhODdiODVhYzcwNjM3ZTE1ZjQ0Y2MxZTRmOGY5MjE5YzRjLi4wYmIx
NzMxODQxM2ViOTk1NzVmYWEyM2E3YTBkYmM0Y2NkZTBmZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCkBA
IC02Nyw5ICs2NywyNSBAQCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsQmVnaW5EcmFnZ2luZzooVUlT
Y3JvbGxWaWV3ICopc2Nyb2xsVmlldwogICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5z
Y3JvbGxXaWxsU3RhcnQoKTsKIH0KIAotI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAtICh2
b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcg
d2l0aFZlbG9jaXR5OihDR1BvaW50KXZlbG9jaXR5IHRhcmdldENvbnRlbnRPZmZzZXQ6KGlub3V0
IENHUG9pbnQgKil0YXJnZXRDb250ZW50T2Zmc2V0CiB7CisgICAgaWYgKCFbc2Nyb2xsVmlldyBp
c1pvb21pbmddKSB7CisgICAgICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gX3Njcm9sbGluZ1RyZWVO
b2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS50b3VjaEFjdGlvbnMoKTsKKyAgICAgICAgaWYg
KHRvdWNoQWN0aW9ucyAhPSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6QXV0byAmJiB0b3VjaEFjdGlv
bnMgIT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgeworICAgICAgICAgICAg
Ym9vbCBjYW5QYW5YID0gdHJ1ZTsKKyAgICAgICAgICAgIGJvb2wgY2FuUGFuWSA9IHRydWU7Cisg
ICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlv
bjo6UGFuWCkpIHsKKyAgICAgICAgICAgICAgICBjYW5QYW5YID0gZmFsc2U7CisgICAgICAgICAg
ICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eCA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNldC54
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29udGFpbnMo
V2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblkpKSB7CisgICAgICAgICAgICAgICAgY2FuUGFuWSA9
IGZhbHNlOworICAgICAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQtPnkgPSBzY3JvbGxW
aWV3LmNvbnRlbnRPZmZzZXQueTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwor
I2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgQ0dGbG9hdCBob3Jpem9udGFsVGFyZ2V0
ID0gdGFyZ2V0Q29udGVudE9mZnNldC0+eDsKICAgICBDR0Zsb2F0IHZlcnRpY2FsVGFyZ2V0ID0g
dGFyZ2V0Q29udGVudE9mZnNldC0+eTsKIApAQCAtOTYsOCArMTEyLDggQEAgLSAodm9pZClzY3Jv
bGxWaWV3V2lsbEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxv
Y2l0eTooQ0dQb2kKICAgICAgICAgfHwgb3JpZ2luYWxWZXJ0aWNhbFNuYXBQb3NpdGlvbiAhPSBf
c2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRWZXJ0aWNh
bFNuYXBQb2ludEluZGV4KCkpIHsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUt
PmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKF9zY3JvbGxpbmdUcmVlTm9kZURlbGVn
YXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudEhvcml6b250YWxTbmFwUG9pbnRJbmRleCgpLCBf
c2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRWZXJ0aWNh
bFNuYXBQb2ludEluZGV4KCkpOwogICAgIH0KLX0KICNlbmRpZgorfQogCiAtICh2b2lkKXNjcm9s
bFZpZXdEaWRFbmREcmFnZ2luZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aWxsRGVjZWxl
cmF0ZTooQk9PTCl3aWxsRGVjZWxlcmF0ZQogewpAQCAtMTA1LDYgKzEyMSw3IEBAIC0gKHZvaWQp
c2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxE
ZWNlbGVyYXRlOihCT09MCiAgICAgICAgIF9pblVzZXJJbnRlcmFjdGlvbiA9IE5POwogICAgICAg
ICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsVmlld0RpZFNjcm9sbChzY3JvbGxW
aWV3LmNvbnRlbnRPZmZzZXQsIF9pblVzZXJJbnRlcmFjdGlvbik7CiAgICAgICAgIF9zY3JvbGxp
bmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxEaWRFbmQoKTsKKyAgICAgICAgX3Njcm9sbGluZ1Ry
ZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5zZXRUb3VjaEFjdGlvbnMoV2ViQ29yZTo6
VG91Y2hBY3Rpb246OkF1dG8pOwogICAgIH0KIH0KIApAQCAtMTE0LDkgKzEzMSwyNiBAQCAtICh2
b2lkKXNjcm9sbFZpZXdEaWRFbmREZWNlbGVyYXRpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZp
ZXcKICAgICAgICAgX2luVXNlckludGVyYWN0aW9uID0gTk87CiAgICAgICAgIF9zY3JvbGxpbmdU
cmVlTm9kZURlbGVnYXRlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNjcm9sbFZpZXcuY29udGVudE9m
ZnNldCwgX2luVXNlckludGVyYWN0aW9uKTsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVs
ZWdhdGUtPnNjcm9sbERpZEVuZCgpOworICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0
ZS0+c2Nyb2xsaW5nTm9kZSgpLnNldFRvdWNoQWN0aW9ucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6
QXV0byk7CiAgICAgfQogfQogCistIChDR1BvaW50KV9zY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1BvaW50KW9mZnNldCB0cmFu
c2xhdGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50OihDR1BvaW50KXN0YXJ0IGxv
Y2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhvcml6b250YWxWZWxvY2l0eToo
aW5vdXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopdnYKK3sK
KyAgICBhdXRvIHRvdWNoQWN0aW9ucyA9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3Jv
bGxpbmdOb2RlKCkudG91Y2hBY3Rpb25zKCk7CisgICAgaWYgKHRvdWNoQWN0aW9ucyA9PSBXZWJD
b3JlOjpUb3VjaEFjdGlvbjo6QXV0byB8fCB0b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hB
Y3Rpb246Ok1hbmlwdWxhdGlvbikKKyAgICAgICAgcmV0dXJuIG9mZnNldDsKKworICAgIENHUG9p
bnQgYWRqdXN0ZWRDb250ZW50T2Zmc2V0ID0gQ0dQb2ludE1ha2Uob2Zmc2V0LngsIG9mZnNldC55
KTsKKworICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9u
OjpQYW5YKSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnggPSBzdGFydC54OworICAg
IGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5ZKSkK
KyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFydC55OworCisgICAgcmV0dXJu
IGFkanVzdGVkQ29udGVudE9mZnNldDsKK30KKwogQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZGU5ODY5NGFhMzdkYjNj
N2YyY2UyN2NjODI5YTkyMDAyMTFkZTEwZC4uYTM3M2QwY2Y5NjM4N2QzY2U4ZGU3MTJkNjk4YWI5
NjllYjUwMjU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgx
LDkgKzgxLDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlw
ZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVj
a2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEdyYW51bGFyaXR5Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbi5oPgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KQEAgLTMyOSw2ICszMzEsMTAgQEAgdHlwZWRlZiBHZW5lcmljQ2FsbGJh
Y2s8Y29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0Jj4gTWFjaFNlbmRSaWdodENhbGxiYWNrOwogdHlw
ZWRlZiBHZW5lcmljQ2FsbGJhY2s8Ym9vbCwgYm9vbCwgU3RyaW5nLCBkb3VibGUsIGRvdWJsZSwg
dWludDY0X3Q+IE5vd1BsYXlpbmdJbmZvQ2FsbGJhY2s7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJ
T1NfVE9VQ0hfRVZFTlRTKQordHlwZWRlZiBWZWN0b3I8c3RkOjpwYWlyPE9wdGlvblNldDxXZWJD
b3JlOjpUb3VjaEFjdGlvbj4sIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRD4+IFRvdWNoQWN0aW9u
QW5kU2Nyb2xsaW5nTm9kZUlEUGFpcnM7CisjZW5kaWYKKwogdXNpbmcgU3BlbGxEb2N1bWVudFRh
ZyA9IGludDY0X3Q7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdElt
cGw8QVBJOjpPYmplY3Q6OlR5cGU6OlBhZ2U+CkBAIC02ODAsNiArNjg2LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uKTsKICAgICB2b2lkIHJlcXVlc3RBZGRpdGlvbmFsSXRlbXNGb3JEcmFnU2Vzc2lvbihjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbik7CiAgICAgdm9pZCBkaWRDb25jbHVkZUVkaXREYXRhSW50ZXJh
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+KTsKKyAgICBib29sIGlz
U2Nyb2xsaW5nT3Jab29taW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc1Njcm9sbGluZ09yWm9vbWlu
ZzsgfQogI2VuZGlmCiAjZW5kaWYKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCkBAIC0xMTU2
LDYgKzExNjMsMTAgQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsUG90ZW50aWFsVGFwKCk7CiAg
ICAgdm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
LCB1aW50NjRfdCYgcmVxdWVzdElEKTsKICAgICB2b2lkIGhhbmRsZVRhcChjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiwgdWludDY0X3QgbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNo
U3RhcnQpOworI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQorICAgIGJvb2wgbWF5SGF2ZVRv
dWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYpIGNvbnN0OworICAg
IFRvdWNoQWN0aW9uQW5kU2Nyb2xsaW5nTm9kZUlEUGFpcnMgdG91Y2hBY3Rpb25zRm9yVG91Y2hF
dmVudChjb25zdCBXZWJUb3VjaEV2ZW50Jik7CisjZW5kaWYKIAogICAgIHZvaWQgaW5zcGVjdG9y
Tm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAg
ICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNoRW5kZWRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBhN2ZmZmY3OGYzMGE3MGY0ZmM1OTBkNzA1
YTFkMTllM2EzODgxYmVmLi5kNjg4YTExMjBmYjlkN2E0NWI0YWZhZGQxYzc4OTc4ZGI4M2I1Yzgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCkBAIC0xOTYsNiArMTk2LDggQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rp
b25EYXRhIHsKICAgICBSZXRhaW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVy
PiBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyOwogCiAgICAgQk9PTCBfY2FuU2VuZFRvdWNo
RXZlbnRzQXN5bmNocm9ub3VzbHk7CisgICAgQk9PTCBfcHJldmVudHNQYW5uaW5nSW5YQXhpczsK
KyAgICBCT09MIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzOwogCiAgICAgUmV0YWluUHRyPFdLU3lu
dGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplcj4gX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25p
emVyOwogICAgIFJldGFpblB0cjxfVUlXZWJIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2du
aXplcj4gX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyOwpAQCAtMzQ5LDYgKzM1
MSw4IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYgZm9j
dXNlZEVsZW1lbnRJbmZvcm1hdGlvbjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
VUlXZWJGb3JtQWNjZXNzb3J5ICpmb3JtQWNjZXNzb3J5VmlldzsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgVUlUZXh0SW5wdXRBc3Npc3RhbnRJdGVtICppbnB1dEFzc2lzdGFudEl0
ZW1Gb3JXZWJWaWV3OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZl
bnRzUGFubmluZ0luWEF4aXM7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wg
cHJldmVudHNQYW5uaW5nSW5ZQXhpczsKIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQog
QHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgVUlWaWV3IDxXS0Zvcm1Db250cm9sPiAqZGF0
YUxpc3RUZXh0U3VnZ2VzdGlvbnNJbnB1dFZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAzZTUyOTJh
NzhjMmFjZjQ2MWE2ODI5M2IzYWFjNDIyYzkwZDdiM2M1Li5iOGYyMDVhMmU3ZGMzMDI3ZTM4MjBi
MjI4NDRkY2E0ZWQ0ZWM5YjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM3LDYgKzM3LDcgQEAKICNp
bXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYlRvdWNo
RXZlbnQuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKKyNp
bXBvcnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKICNpbXBvcnQgIlNtYXJ0
TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlRleHRJbnB1dFNQSS5oIgogI2lt
cG9ydCAiVUlLaXRTUEkuaCIKQEAgLTkxLDYgKzkyLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2Ny
b2xsYmFyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NoYXJlRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9UZXh0SW5kaWNhdG9yLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RvdWNoQWN0aW9uLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZl
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV3JpdGluZ0RpcmVjdGlvbi5oPgpAQCAtNjE1LDYgKzYx
NywxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFzRm9jdXNlZEVsZW1lbnQoV2ViS2l0OjpGb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uIGZvY3VzZWRFbAogICAgIHJldHVybiAoZm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbi5lbGVtZW50VHlwZSAhPSBXZWJLaXQ6OklucHV0VHlwZTo6Tm9uZSk7CiB9
CiAKKy0gKEJPT0wpcHJldmVudHNQYW5uaW5nSW5YQXhpcworeworICAgIHJldHVybiBfcHJldmVu
dHNQYW5uaW5nSW5YQXhpczsKK30KKworLSAoQk9PTClwcmV2ZW50c1Bhbm5pbmdJbllBeGlzCit7
CisgICAgcmV0dXJuIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzOworfQorCiAtIChXS0Zvcm1JbnB1
dFNlc3Npb24gKilfZm9ybUlucHV0U2Vzc2lvbgogewogICAgIHJldHVybiBfZm9ybUlucHV0U2Vz
c2lvbi5nZXQoKTsKQEAgLTg2MSw2ICs4NzMsOCBAQCAtICh2b2lkKWNsZWFudXBJbnRlcmFjdGlv
bgogICAgIF9oYXNTZXRVcEludGVyYWN0aW9ucyA9IE5POwogICAgIF9zdXBwcmVzc1NlbGVjdGlv
bkFzc2lzdGFudFJlYXNvbnMgPSB7IH07CiAgICAgX2lzWm9vbWluZ1RvUmV2ZWFsRm9jdXNlZEVs
ZW1lbnQgPSBOTzsKKworICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOwog
fQogCiAtICh2b2lkKV9yZW1vdmVEZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCkBAIC0xMTI4LDE2
ICsxMTQyLDU2IEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDooVUlXZWJUb3Vj
aEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlCiAgICAgV2ViS2l0OjpOYXRpdmVX
ZWJUb3VjaEV2ZW50IG5hdGl2ZVdlYlRvdWNoRXZlbnQobGFzdFRvdWNoRXZlbnQpOwogICAgIG5h
dGl2ZVdlYlRvdWNoRXZlbnQuc2V0Q2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKCFfY2FuU2VuZFRv
dWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgfHwgW2dlc3R1cmVSZWNvZ25pemVyIGlzRGVmYXVsdFBy
ZXZlbnRlZF0pOwogCisgICAgaWYgKF9wYWdlLT5tYXlIYXZlVG91Y2hBY3Rpb25zRm9yVG91Y2hF
dmVudChuYXRpdmVXZWJUb3VjaEV2ZW50KSkgeworICAgICAgICBmb3IgKGF1dG8gdG91Y2hBY3Rp
b25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpciA6IF9wYWdlLT50b3VjaEFjdGlvbnNGb3JUb3VjaEV2
ZW50KG5hdGl2ZVdlYlRvdWNoRXZlbnQpKSB7CisgICAgICAgICAgICBhdXRvIHRvdWNoQWN0aW9u
cyA9IHRvdWNoQWN0aW9uc0FuZFNjcm9sbGluZ05vZGVJRFBhaXIuZmlyc3Q7CisgICAgICAgICAg
ICBpZiAodG91Y2hBY3Rpb25zID09IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpOb25lKQorICAgICAg
ICAgICAgICAgIFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIHNldERlZmF1bHRQcmV2ZW50
ZWQ6WUVTXTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIERpc2FibGUg
YWxsIHRhcC1yZWxhdGVkIHJlY29nbml6ZXJzLgorICAgICAgICAgICAgICAgIFtfc2luZ2xlVGFw
R2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgICAgICAgICAgICAgW19ub25C
bG9ja2luZ0RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOworICAgICAg
ICAgICAgICAgIFtfdHdvRmluZ2VyRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxl
ZDpOT107CisgICAgICAgICAgICAgICAgW19oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2du
aXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAgICAgICAgICAgICBbX3R3b0ZpbmdlclNpbmdsZVRh
cEdlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOworICAgICAgICAgICAgICAgIFtfc3R5
bHVzU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDpOT107CisgICAgICAgICAg
ICAgICAgW19kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOk5PXTsKKyAgICAg
ICAgICAgICAgICBbX2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6Tk9dOwor
ICAgICAgICAgICAgICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNo
QWN0aW9uOjpNYW5pcHVsYXRpb24pKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIHNj
cm9sbGluZ05vZGVJRCA9IHRvdWNoQWN0aW9uc0FuZFNjcm9sbGluZ05vZGVJRFBhaXIuc2Vjb25k
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0
b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5zZXRUb3VjaEFjdGlvbnNGb3JTY3Jv
bGxpbmdOb2RlSUQodG91Y2hBY3Rpb25zLCBzY3JvbGxpbmdOb2RlSUQpOworICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlv
bnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBpbmNoWm9vbSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgX3dlYlZpZXcuc2Nyb2xsVmlldy5waW5jaEdlc3R1cmVSZWNvZ25p
emVyLmVuYWJsZWQgPSBOTzsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9wcmV2ZW50c1Bhbm5p
bmdJblhBeGlzID0gIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6
UGFuWCk7CisgICAgICAgICAgICAgICAgICAgICAgICBfcHJldmVudHNQYW5uaW5nSW5ZQXhpcyA9
ICF0b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblkpOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfQorCiAgICAgaWYgKF9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNs
eSkKICAgICAgICAgX3BhZ2UtPmhhbmRsZVRvdWNoRXZlbnRBc3luY2hyb25vdXNseShuYXRpdmVX
ZWJUb3VjaEV2ZW50KTsKICAgICBlbHNlCiAgICAgICAgIF9wYWdlLT5oYW5kbGVUb3VjaEV2ZW50
U3luY2hyb25vdXNseShuYXRpdmVXZWJUb3VjaEV2ZW50KTsKIAotICAgIGlmIChuYXRpdmVXZWJU
b3VjaEV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkKKyAgICBpZiAobmF0aXZlV2Vi
VG91Y2hFdmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpIHsKICAgICAgICAgX2NhblNl
bmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5ID0gTk87CisKKyAgICAgICAgaWYgKCFfcGFnZS0+
aXNTY3JvbGxpbmdPclpvb21pbmcoKSkKKyAgICAgICAgICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQ
cmV2ZW50aW9uRmxhZ3NdOworICAgIH0KICNlbmRpZgogfQogCistICh2b2lkKV9yZXNldFBhbm5p
bmdQcmV2ZW50aW9uRmxhZ3MKK3sKKyAgICBfcHJldmVudHNQYW5uaW5nSW5YQXhpcyA9IE5POwor
ICAgIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzID0gTk87Cit9CisKIC0gKHZvaWQpX2luc3BlY3Rv
ck5vZGVTZWFyY2hSZWNvZ25pemVkOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29n
bml6ZXIKIHsKICAgICBBU1NFUlQoX2luc3BlY3Rvck5vZGVTZWFyY2hFbmFibGVkKTsKQEAgLTIx
OTQsNiArMjI0OCw4IEBAIC0gKHZvaWQpX2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZwogICAgIH0K
ICAgICBfcGFnZS0+c2V0SXNTY3JvbGxpbmdPclpvb21pbmcoZmFsc2UpOwogCisgICAgW3NlbGYg
X3Jlc2V0UGFubmluZ1ByZXZlbnRpb25GbGFnc107CisKICNpZiBQTEFURk9STShXQVRDSE9TKQog
ICAgIFtfZm9jdXNlZEZvcm1Db250cm9sVmlldyBlbmdhZ2VGb2N1c2VkRm9ybUNvbnRyb2xOYXZp
Z2F0aW9uXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0KaW5kZXggYjliZDcwYzliZWUxMDY5ZTFiNGYxMjMwOThiOWNhZTEyZDY0ODdj
NS4uYzQ1N2ExZThkMGIzMzk1ZjNiYzljNzM1YzExYzU2N2ViYjhhMGFjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC00MSw2ICs0MSw3
IEBACiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0
ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIlJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCisjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiVXNlckRhdGEu
aCIKICNpbXBvcnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgpAQCAtODI0LDYgKzgy
NSwyNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cG90ZW50aWFsVGFwQXRQb3NpdGlvbihjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBwb3NpdGlvbiwgdQogICAgIHByb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHJlcXVlc3RJRCwgcG9zaXRpb24p
LCBtX3BhZ2VJRCk7CiB9CiAKKyNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKK2Jvb2wgV2Vi
UGFnZVByb3h5OjptYXlIYXZlVG91Y2hBY3Rpb25zRm9yVG91Y2hFdmVudChjb25zdCBXZWJUb3Vj
aEV2ZW50JiBldmVudCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIHRvdWNoUG9pbnQgOiBldmVu
dC50b3VjaFBvaW50cygpKSB7CisgICAgICAgIGlmICh0b3VjaFBvaW50LnBoYXNlKCkgPT0gV2Vi
UGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFByZXNzZWQgJiYgbV9zY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LT5tYXlIYXZlVG91Y2hBY3Rpb25zRm9yUG9pbnQodG91Y2hQb2ludC5sb2NhdGlvbigp
KSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK1RvdWNoQWN0aW9uQW5kU2Nyb2xsaW5nTm9kZUlEUGFpcnMgV2ViUGFnZVByb3h5Ojp0b3Vj
aEFjdGlvbnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIGV2ZW50KQoreworICAg
IFRvdWNoQWN0aW9uQW5kU2Nyb2xsaW5nTm9kZUlEUGFpcnMgdG91Y2hBY3Rpb25zOworICAgIHBy
b2Nlc3MoKS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZTo6VG91Y2hBY3Rpb25zRm9yVG91Y2hF
dmVudChldmVudCksIE1lc3NhZ2VzOjpXZWJQYWdlOjpUb3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50
OjpSZXBseSh0b3VjaEFjdGlvbnMpLCBtX3BhZ2VJRCk7CisgICAgcmV0dXJuIHRvdWNoQWN0aW9u
czsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UG90ZW50aWFsVGFwKHVp
bnQ2NF90IGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KQogewogICAgIHBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21taXRQb3RlbnRpYWxUYXAobGF5ZXJU
cmVlVHJhbnNhY3Rpb25JZEF0TGFzdFRvdWNoU3RhcnQpLCBtX3BhZ2VJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzE1ZTEyNDUyMGZmMDc2Yjk2
MGFlZDcwZTliOTIwNzVhNjU1MmFlZi4uM2NiYTFiMmY2ZWQ1NGI5OWE2MTg4Yzk2NTA5MGRkN2Nl
MzA0ODQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtNjE5LDYgKzYxOSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXBJ
bkZyYW1lKFdlYkZyYW1lJik7CiAgICAgdm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOwogCisjaWYgRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpCisgICAgdm9pZCB0b3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KGNv
bnN0IFdlYlRvdWNoRXZlbnQmLCBUb3VjaEFjdGlvbkFuZFNjcm9sbGluZ05vZGVJRFBhaXJzJik7
CisjZW5kaWYKKwogICAgIHZvaWQgaW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3NpdGlvbihj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAgICAgdm9pZCBpbnNwZWN0b3JOb2RlU2VhcmNo
RW5kZWRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggNTRhYmJhZjg5MzRjY2RjZjhlNGYyMGY3ODNmY2I2YjlmMDMwNDBlYi4uOWE0NDI1MDcyNjU5
MjY0NWU0Yzc2YTU2ODg5NTY3NWU3NmM4YTUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xMjIsNiArMTIyLDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBFTkFCTEUoSU9T
X1RPVUNIX0VWRU5UUykKICAgICBUb3VjaEV2ZW50U3luYyhXZWJLaXQ6OldlYlRvdWNoRXZlbnQg
ZXZlbnQpIC0+IChib29sIGhhbmRsZWQpIExlZ2FjeVN5bmMKKyAgICBUb3VjaEFjdGlvbnNGb3JU
b3VjaEV2ZW50KFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkgLT4gKFdlYktpdDo6VG91Y2hB
Y3Rpb25BbmRTY3JvbGxpbmdOb2RlSURQYWlycyB0b3VjaEFjdGlvbnMpIExlZ2FjeVN5bmMKICNl
bmRpZgogI2lmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgJiYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICAgICBUb3VjaEV2ZW50KFdlYktpdDo6V2ViVG91Y2hFdmVudCBldmVudCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXgg
MDY2OTZjMDY1Y2M3NzQ4YzFjYmRlMDA1NDVlMzczNjRlYTY5NGU1My4uNzY3ODM2YmUzMWZkNDZm
NGRmZWE1Yzk3YjY3ODk0OTJmZDI2MjIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEwMyw2ICsxMDMsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1vdXNlRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVu
ZGVyQmxvY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVySW1hZ2UuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvUmVuZGVyTGF5ZXJCYWNraW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclRoZW1l
SU9TLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+CkBAIC04NjIsNiArODYzLDI5IEBAIHZvaWQgV2Vi
UGFnZTo6dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IEZs
b2F0UG9pbnQmIHBvc2l0CiAgICAgc2VuZFRhcEhpZ2hsaWdodEZvck5vZGVJZk5lY2Vzc2FyeShy
ZXF1ZXN0SUQsIG1haW5mcmFtZS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocG9zaXRpb24s
IGFkanVzdGVkUG9pbnQpKTsKIH0KIAorI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQordm9p
ZCBXZWJQYWdlOjp0b3VjaEFjdGlvbnNGb3JUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQm
IGV2ZW50LCBWZWN0b3I8c3RkOjpwYWlyPE9wdGlvblNldDxUb3VjaEFjdGlvbj4sIFNjcm9sbGlu
Z05vZGVJRD4+JiB0b3VjaEFjdGlvbnMpCit7CisgICAgbGF5b3V0SWZOZWVkZWQoKTsKKworICAg
IGF1dG8mIGV2ZW50SGFuZGxlciA9IG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCk7
CisgICAgZm9yIChhdXRvJiB0b3VjaCA6IGV2ZW50LnRvdWNoUG9pbnRzKCkpIHsKKyAgICAgICAg
YXV0byByZXN1bHQgPSBldmVudEhhbmRsZXIuaGl0VGVzdFJlc3VsdEF0UG9pbnQoKHRvdWNoLmxv
Y2F0aW9uKCkpLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCB8IEhp
dFRlc3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50KTsKKyAgICAgICAgc3RkOjpwYWly
PE9wdGlvblNldDxUb3VjaEFjdGlvbj4sIFNjcm9sbGluZ05vZGVJRD4gdG91Y2hBY3Rpb25zQW5k
U2Nyb2xsaW5nTm9kZUlEUGFpcjsKKyAgICAgICAgaWYgKGF1dG8qIGVsZW1lbnQgPSByZXN1bHQu
aW5uZXJOb25TaGFyZWRFbGVtZW50KCkpIHsKKyAgICAgICAgICAgIHRvdWNoQWN0aW9uc0FuZFNj
cm9sbGluZ05vZGVJRFBhaXIuZmlyc3QgPSBlbGVtZW50LT5jb21wdXRlZFRvdWNoQWN0aW9ucygp
OworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCisgICAgICAgICAg
ICAvLyBOb3cgd2Ugc2hvdWxkIGFsc28gbG9vayB0byBzZWUgaWYgb3VyIGVsZW1lbnQgaXMgb3Ig
aXMgY29udGFpbmVkIHdpdGhpbiBhbiAib3ZlcmZsb3ctc2Nyb2xsOiB0b3VjaCIgZWxlbWVudAor
ICAgICAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gcmVwb3J0IGl0cyBsYXllciBpZCB0byB0aGUg
VUkgcHJvY2Vzcy4KKyAgICAgICAgICAgIGlmIChhdXRvIHNjcm9sbGluZ05vZGVJRCA9IGVsZW1l
bnQtPm5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSkK
KyAgICAgICAgICAgICAgICB0b3VjaEFjdGlvbnNBbmRTY3JvbGxpbmdOb2RlSURQYWlyLnNlY29u
ZCA9IHNjcm9sbGluZ05vZGVJRDsKKyNlbmRpZgorICAgICAgICB9CisgICAgICAgIHRvdWNoQWN0
aW9ucy5hcHBlbmQodG91Y2hBY3Rpb25zQW5kU2Nyb2xsaW5nTm9kZUlEUGFpcik7CisgICAgfQor
fQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZTo6aW5zcGVjdG9yTm9kZVNlYXJjaE1vdmVkVG9Qb3Np
dGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKIHsKICAgICBJbnRQb2ludCBhZGp1c3Rl
ZFBvaW50ID0gcm91bmRlZEludFBvaW50KHBvc2l0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNzM2NjBhNmQ2ZDM5
MzE0YzI3ZTdjYjAwZTdiM2M5NzRlZjJjYTNlLi5jOGNhNmU4YzliZDMxNWJiODU2NzEyMTI2ZjU3
YjI1MzExZjc0ZjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTktMDEtMTcgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBMaW1pdCB1c2VyLWFnZW50IGlu
dGVyYWN0aW9ucyBiYXNlZCBvbiB0aGUgdG91Y2gtYWN0aW9uIHByb3BlcnR5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTM0NDcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQ3MjgzODc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBzZXJpZXMgb2YgdGVzdHMgdGhhdCBjaGVjayB0aGF0
IHRoZSAibm9uZSIsICJwYW4teCIsICJwYW4teSIgYW5kICJwaW5jaC16b29tIiB2YWx1ZXMgaGF2
ZSB0aGUgZXhwZWN0ZWQKKyAgICAgICAgaW1wYWN0IG9uIHBhZ2UgcGFubmluZyBvbiBpT1MuCisK
KyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFs
dWVzLWluLWhpZXJhcmNoeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMtaW4taGllcmFyY2h5Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtaW4taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93
LXNjcm9sbGluZy10b3VjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICog
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
b24tcGFyZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1ub25lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1wYW4teC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgu
aHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBh
bi15LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLXBhbi15Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20t
YWxsb3dzLXpvb21pbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDE5LTAxLTE1ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFZpc3VhbFZpZXdwb3J0IEFQSSBz
aG91bGQgYmUgdXBkYXRlZCB1cG9uIG9wZW5pbmcgb2Yga2V5Ym9hcmQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1
ZXMtaW4taGllcmFyY2h5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1jb25mbGljdGluZy12YWx1ZXMtaW4taGllcmFyY2h5LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MTBiOGY3MmVhNzRiMzhhZGUyMTM0NTkzZDI2NTIxOGQyYjliYjBk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLWNvbmZsaWN0aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIGNvbmZsaWN0aW5nIHRvdWNo
LWFjdGlvbiB2YWx1ZXMgb24gdGhlIHRhcmdldCBlbGVtZW50IGFuZCBwYXJlbnQgcHJldmVudHMg
cGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tY29uZmxpY3RpbmctdmFsdWVzLWluLWhpZXJhcmNoeS5odG1sIGIv
TGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0aW5nLXZh
bHVlcy1pbi1oaWVyYXJjaHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWI1MDc2YmJlYmU2YjFlMTM0YTVh
MDVhYTRlOGMzMGQwOGY0ZjNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLWNvbmZsaWN0aW5nLXZhbHVlcy1pbi1oaWVyYXJjaHku
aHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRo
PWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmlj
dCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAo
dGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAw
cHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisgICAgZG9j
dW1lbnQuYm9keS5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teCI7CisKKyAgICB0YXJnZXQuc3R5
bGUudG91Y2hBY3Rpb24gPSAicGFuLXkiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1
MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRo
ZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAw
LCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0
ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyBjb25mbGljdGlu
ZyB0b3VjaC1hY3Rpb24gdmFsdWVzIG9uIHRoZSB0YXJnZXQgZWxlbWVudCBhbmQgcGFyZW50IHBy
ZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzI3ZThhZjgxYmQ5ODRjOGMzNDA3MDU1MWFmNWI2MWU5MjcwZmY4MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGlu
ZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGlu
Zy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1ub25lLWluLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI4NTg0MTAzMjM5ZjFiYzdmN2U5ZmViNzUzN2Y1Yzk5N2U5OWUyNzcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1p
bi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgVGVzdGluZyB0
aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIGluIGNvbnRlbnQgaG9zdGVkIGluIGFuIGlm
cmFtZSBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLWlmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4taWZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzI4YjgyYjMzNWQzZGJjOTU2MTQ1MWRiNTAwODM0MjEyMGFmZjgzYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1ub25lLWluLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPHN0
eWxlPgorCitpZnJhbWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOwor
ICAgIHRvcDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKK30KKwor
PC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZT48L2lmcmFtZT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOwor
Cithc3luY190ZXN0KHRlc3QgPT4geworICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmJvZHku
Zmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgY29uc3QgdGFyZ2V0ID0gaWZyYW1lLmNvbnRlbnREb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAg
ICB0YXJnZXQuc2V0QXR0cmlidXRlKCJzdHlsZSIsIGAKKyAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgICBsZWZ0OiAwOworICAgICAgICB0b3A6IDA7CisgICAgICAgIHdpZHRoOiAy
MDAlOworICAgICAgICBoZWlnaHQ6IDIwMCU7CisgICAgICAgIHRvdWNoLWFjdGlvbjogbm9uZTsK
KyAgICBgKTsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTog
NTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zm
c2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBu
b3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAg
fSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIGluIGNvbnRl
bnQgaG9zdGVkIGluIGFuIGlmcmFtZSBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
aW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10
b3VjaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMwMDcyOTEwMjQ1ZWY1NzU4N2ViZTljNTJj
OWZhYmMwNTMyZDFjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91
Y2gtYWN0aW9uOiBub25lIGluIGNvbnRlbnQgaG9zdGVkIGluIGEgc2Nyb2xsYWJsZSBjb250YWlu
ZXIgdXNpbmcgJy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaCcgcHJldmVudHMgc2Ny
b2xsaW5nIG9mIHRoYXQgY29udGFpbmVyLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRv
dWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTk2MTRmZmVm
Y2VmYmVhZmU2NzQxNzRiNTgxNTQxYzBmMjM1MTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Ny
b2xsaW5nLXRvdWNoLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CisK
KyNzY3JvbGxpbmctY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVm
dDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7
CisgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzog
dG91Y2g7Cit9CisKKyNzY3JvbGxpbmctY29udGFpbmVyID4gZGl2IHsKKyAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDIwMCU7Cisg
ICAgaGVpZ2h0OiAyMDAlOworICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKK30KKworPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ic2Nyb2xsaW5nLWNvbnRhaW5lciI+PGRpdj48L2Rp
dj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKworJ3VzZSBzdHJpY3QnOworCithc3luY190ZXN0KHRlc3QgPT4geworICAgIGNvbnN0IHNj
cm9sbGluZ0NvbnRhaW5lciA9IGRvY3VtZW50LmJvZHkuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAg
dWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdDb250YWluZXIuc2Nyb2xsTGVmdCwg
MCwgIlRoZSBzY3JvbGxpbmcgY29udGFpbmVyIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhp
cy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdDb250YWluZXIuc2Nyb2xsVG9w
LCAwLCAiVGhlIHNjcm9sbGluZyBjb250YWluZXIgd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1h
eGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQg
c2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4gYSBzY3JvbGxh
YmxlIGNvbnRhaW5lciB1c2luZyAnLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoJyBw
cmV2ZW50cyBzY3JvbGxpbmcgb2YgdGhhdCBjb250YWluZXIuIik7CisKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
bm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NzUxYmRkN2MzNDYyYTFl
MDg2ZmZjNzNmMzUzZWQ0NGRhZjdmYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0
aW9uOiBub25lIG9uIGFuIGlmcmFtZSBhbmQgaW50ZXJhY3Rpbmcgd2l0aCBpdHMgY29udGVudCBw
cmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDkyN2VhOGRiNDYxNzQzNDFjNTFhMGM0Y2M1MjUzZTViNjIwN2EyZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1u
b25lLW9uLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPHN0eWxlPgor
CitpZnJhbWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOworICAgIHRv
cDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICB0b3VjaC1h
Y3Rpb246IG5vbmU7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWU+PC9p
ZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisKKyd1c2Ugc3RyaWN0JzsKKworYXN5bmNfdGVzdCh0ZXN0ID0+IHsKKyAgICBjb25zdCBpZnJh
bWUgPSBkb2N1bWVudC5ib2R5LmZpcnN0RWxlbWVudENoaWxkOworICAgIGNvbnN0IHRhcmdldCA9
IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKSk7CisgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBgCisgICAg
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMDsKKyAgICAgICAgdG9wOiAw
OworICAgICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgaGVpZ2h0OiAyMDAlOworICAgIGApOwor
CisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVu
KCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJU
aGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxl
ZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJU
ZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gaWZyYW1lIGFuZCBp
bnRlcmFjdGluZyB3aXRoIGl0cyBjb250ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOwor
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
bm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MDJiMTMwNDk2OGEyOTFlYWRkMTM3Mzk1MjZmYzBkOGNiZTJhMjliCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFy
ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0
dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYSBwYXJlbnQgZWxlbWVudCBwcmV2ZW50cyBwYWdl
IHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE0
ODA3OTNmNzkwYTVjODYyNDE3NjlmOTkzMWU4ZjQ4MGNmM2I3NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVu
dC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3Ry
aWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0s
ICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIw
MDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKyAgICBk
b2N1bWVudC5ib2R5LnN0eWxlLnRvdWNoQWN0aW9uID0gIm5vbmUiOworCisgICAgdWkuc3dpcGUo
eyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90
IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93
LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlz
LiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0
dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYSBwYXJlbnQgZWxlbWVudCBwcmV2ZW50cyBwYWdl
IHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1ub25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQwMGI4M2JiOThlNGFlNWRkYzlh
NTljOTg2NzJhNmEwMzI5Y2U4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2Nh
bGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRo
OiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRv
Y3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0
eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0g
Im5vbmUiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1
MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZz
ZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5v
dCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9
KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gZWxl
bWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODdlNzgzNzlkZjQ1YTcxNzc0NzZjOGJlN2I1ZDY0MDQwZjBhYWNkZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1wYW4teC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0
aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBh
Z2Ugc2Nyb2xsaW5nIGluIHRoZSB5LWF4aXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTk3YmRlMzI3ZmMyOWMzYWU0Yjc4MGExMTE2NDdjZDY4
ZmQ1ZjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBhbi14LXBhbi15LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyAndG91Y2gtYWN0aW9uOiBwYW4teCBwYW4teScgb24g
YW4gZWxlbWVudCBhbGxvd3MgcGFnZSBzY3JvbGxpbmcgaW4gYm90aCBheGVzLiAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBh
bi15Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFu
LXgtcGFuLXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjI5MWE0ZDhjNjdjMjIxNTFjMjI5ZDgzN2Q3MWE4
ZjNkMDBhYjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9
MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAi
MjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3Vt
ZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxl
LmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBh
bi14IHBhbi15IjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwg
eTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5w
YWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOwor
ICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFn
ZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7Cisg
ICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgJ3RvdWNoLWFjdGlvbjogcGFuLXggcGFu
LXknIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugc2Nyb2xsaW5nIGluIGJvdGggYXhlcy4iKTsK
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBhbi14Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
cGFuLXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjkyMDVmN2VmNWRhMmNhYjcwMDE5Y2ZiOGVhNzBmOTVk
NzdjNmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBo
ZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHku
c3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9
ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi14IjsKKwor
ICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigo
KSA9PiB7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwg
IlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQg
aW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVz
dGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZl
bnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB5LWF4aXMuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNmZjY1OGMzODY0MjI2NzE1YWU2N2VhNDJmYmI5Mjg2ODA2OTI4
NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3Rp
bmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGFuLXggb24gYW4gZWxlbWVudCBwcmV2ZW50
cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeC1heGlzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15Lmh0bWwgYi9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
MDkwZDM5NjAxZmJlZTE3YmZkMWI5NWYyNDNlOWZhYmM1MjI3OTVlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15Lmh0bWwK
QEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOwor
Cit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdl
dCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsK
KyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0
LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi15IjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5
OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9l
cXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBp
biB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cucGFnZVlP
ZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAg
ICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gt
YWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRo
ZSB4LWF4aXMuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93
cy16b29taW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTRlNjc2MTVlMmE1OTk4ZjMzMzNm
OTBmZGEzMGRkMWRjYTVhNDY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNo
LWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IGFsbG93cyBwYWdlIHpvb21pbmcuIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
cGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZGE2M2M5NDI5ZTFhYTEzOTAyNmVkNDMxM2NlYTZkNWQ0Nzg3OTc2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNo
LXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0t
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjQwMHB4Iiwg
aGVpZ2h0OiAiNDAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQg
PSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwaW5jaC16b29t
IjsKKworICAgIHVpLnBpbmNoT3V0KHsgeDogNTAsIHk6IDUwLCB3aWR0aDogMTAwLCBoZWlnaHQ6
IDEwMCwgc2NhbGU6IDAuNSB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVh
bHMod2luZG93LmludGVybmFscy5wYWdlU2NhbGVGYWN0b3IoKSwgMSwgIlRoZSBwYWdlIHdhcyBz
Y2FsZWQuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhh
dCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IGFsbG93cyBw
YWdlIHpvb21pbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9v
bS1wcmV2ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwYzg1YjlhYTU1
MmRmOWI3MWQ5YWU0Mzk3NDA1MGUwYzI4OTk4MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1z
Y3JvbGxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhh
dCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IHByZXZlbnRz
IHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2
ZW50cy1zY3JvbGxpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjM0MWM2MjE1MDdhM2VlODM3MzRkMjc3
MTNkODRiZmY1NTlkN2RkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwK
QEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOwor
Cit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdl
dCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsK
KyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0
LnN0eWxlLnRvdWNoQWN0aW9uID0gInBpbmNoLXpvb20iOworCisgICAgdWkuc3dpcGUoeyB4OiAx
NTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9s
bGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZ
T2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOwor
ICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0
b3VjaC1hY3Rpb246IHBpbmNoLXpvb20gb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9s
bGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360028</attachid>
            <date>2019-01-24 13:00:24 -0800</date>
            <delta_ts>2019-01-24 13:17:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190124220022.patch</filename>
            <type>text/plain</type>
            <size>83077</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVhNTUwNTNjZjg2MmRk
NDI5ZGVkYzE2ZWM5OGU2NzJlMDRmNDkyNi4uYzg5YTY5ZmM5YTM1ZDljMjliMTJlNjU5M2ZmNmEw
OWFiNzAyMDI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE5LTAxLTI0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21waWxlCisgICAgICAgIGEgbGlzdCBvZiBUb3VjaEFjdGlvbkRhdGEgc3RydWN0dXJlcyB3aGlj
aCBob2xkIHRoZSB0b3VjaC1hY3Rpb24gdmFsdWUsIHRoZSBJRCBvZiB0aGUgbmVhcmVzdCBzY3Jv
bGwgbm9kZSBhbmQgdGhlIFJlZ2lvbiBjb250YWluaW5nCisgICAgICAgIHRoZSBib3VuZHMgb2Yg
ZWFjaCBvZiB0aG9zZSBlbGVtZW50cyB0byBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFs
b25nIHdpdGggdG91Y2ggcmVnaW9ucy4gQ29tcHV0aW5nIHRoZSBsaXN0IG9mIGFsbG93ZWQgdG91
Y2gKKyAgICAgICAgYWN0aW9ucyBmb3IgYSBnaXZlbiBlbGVtZW50IGFjY291bnRzIGZvciBub3Qg
b25seSB0aGUgdmFsdWUgc3BlY2lmaWVkIGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxl
LCBidXQgYWxzbyBpbiBpdHMgaGllcmFyY2h5LAorICAgICAgICBjcm9zc2luZyBhbnkgZnJhbWUg
Ym91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRvY3VtZW50J3Mgcm9vdCBub2RlLgorCisg
ICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVy
Zmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbAorICAg
ICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKKyAg
ICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCisg
ICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1h
bGxvd3Mtem9vbWluZy5odG1sCisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW52YWxpZGF0ZVJlbmRlcmluZ0Rl
cGVuZGVudFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVXaWxsQmVS
ZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJvbSB0aGlzIGRv
Y3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qgb2YgZWxlbWVu
dHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRlIGEgbGlzdCBv
ZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5IGlmIG9uZSBk
b2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0aGUgZ2l2ZW4g
ZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwgb3IgcmVtb3Zl
IGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0aGF0IGxpc3Qg
Y2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBpcyBpbmZvcm1l
ZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjogY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zIGNvbnN0KTogUHJvdmlkZSB0aGUgbGlzdCBvZiBhbGxv
d2VkIHRvdWNoIGFjdGlvbnMgYWNjb3VudGluZyBmb3IgdGhlICJ0b3VjaC1hY3Rpb24iIHByb3Bl
cnR5CisgICAgICAgIHNwZWNpZmllZCBvbiB0aGlzIGVsZW1lbnQgYW5kIGFsbCBvZiBpdHMgaGll
cmFyY2h5LCBjcm9zc2luZyBmcmFtZSBib3VuZGFyeS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcgY29u
c3QpOiBQcm92aWRlIHRoZSBTY3JvbGxpbmdOb2RlSUQsIGlmIGFueSwgZm9yIHRoZSBuZWFyZXN0
IHNjcm9sbGluZyBub2RlCisgICAgICAgIGZvciB0aGF0IGVsZW1lbnQuIFRoaXMgd2lsbCBhbGxv
dyB0aGUgVUkgcHJvY2VzcyB0byBpZGVudGlmeSB3aGljaCBzY3JvbGwgdmlldydzIGJlaGF2aW9y
IHRvIGN1c3RvbWl6ZSB0byByZWZsZWN0IHRoZSBlbGVtZW50J3MgYWxsb3dlZAorICAgICAgICB0
b3VjaCBhY3Rpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNGb3JGcmFtZSBj
b25zdCk6IENvbXB1dGUgdGhlIHJlZ2lvbiBmb3IgYWxsIGVsZW1lbnRzIHdpdGggYSBub24tYXV0
byB0b3VjaC1hY3Rpb24gcHJvcGVydHkKKyAgICAgICAgdGhyb3VnaG91dCB0aGUgcHJvdmlkZWQg
ZnJhbWUgYW5kIGFsbCBvZiBpdHMgc3ViZnJhbWVzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludCBjb25zdCk6IFF1ZXJ5IHRo
ZSBsaXN0IG9mIFRvdWNoQWN0aW9uRGF0YSBvYmplY3RzIGZvciBhIG1hdGNoIGJhc2VkIG9uIHRo
ZSBwcm92aWRlZCBwb2ludC4gUmlnaHQKKyAgICAgICAgbm93IHRoZSBsb2dpYyBpcyBwcmV0dHkg
Y3J1ZGUsIHN0b3BwaW5nIGF0IHRoZSBmaXJzdCBUb3VjaEFjdGlvbkRhdGEgZm9yIHdoaWNoIHRo
ZSByZWdpb24gY29udGFpbnMgdGhlIHByb3ZpZGVkIHBvaW50LCBidXQgZnV0dXJlIHBhdGNoZXMg
d2lsbAorICAgICAgICBhY2NvdW50IGZvciBvdmVybGFwIGFuZCBuZXN0aW5nLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlE
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWVOb2RlOjp0b3VjaEFjdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZU5vZGU6OnNldFRvdWNoQWN0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0v
RXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6
CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50
KTogVXBkYXRlIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rp
b24gcHJvcGVydHkgd2hlbiBhbiBlbGVtZW50J3Mgc3R5bGUgY2hhbmdlcy4KKwogMjAxOS0wMS0y
MyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFu
Z2Ugc29tZSBSZW5kZXJMYXllckNvbXBvc2l0b3IgZnVuY3Rpb25zIHRvIHVzZSByZWZlcmVuY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDFhMzMyZDkyNTU4ZjU0ZGY3NTA5OTQ0NzBjOTM1MWNkOWQxNWZmNjguLjdi
YzY1NjAxZGFjODM4YTY0YmJkODU3YjJmZmM1ZmQyMWYzNWZiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTEgQEAKKzIwMTktMDEtMjQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4K
KworICAgICAgICBMaW1pdCB1c2VyLWFnZW50IGludGVyYWN0aW9ucyBiYXNlZCBvbiB0aGUgdG91
Y2gtYWN0aW9uIHByb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTM0NDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3MjgzODc0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhbmRsZSB0aGUg
Im5vbmUiLCAicGFuLXgiLCAicGFuLXkiIGFuZCAicGluY2gtem9vbSIgdmFsdWVzIGZvciB0aGUg
dG91Y2gtYWN0aW9uIHByb3BlcnR5IGJ5IHF1ZXJ5aW5nIHRoZSBzY3JvbGxpbmcgdHJlZSB3aGVu
ZXZlciBhIHRvdWNoIGJlZ2lucworICAgICAgICB0byBpZGVudGlmeSB3aGV0aGVyIGl0cyBwb2lu
dCBpcyBjb250YWluZWQgd2l0aGluIHRoZSByZWdpb24gb2YgYW4gZWxlbWVudCB3aXRoIGEgbm9u
LWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5LiBJZiBpdCBpcywgd2UgdXNlIHRoZSBsaXN0IG9m
CisgICAgICAgIHBlcm1pdHRlZCB0b3VjaCBhY3Rpb25zIHN1Y2ggdG8gdGhlbiBjdXN0b21pemUg
dGhlIGJlaGF2aW9yIG9mIHRoZSBuZWFyZXN0IHNjcm9sbCB2aWV3IHRvIHBhbiBvciB6b29tIG9u
bHkgYXMgaW5zdHJ1Y3RlZC4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0YT46OmVu
Y29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VG91Y2hBY3Rpb25EYXRhPjo6ZGVj
b2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46
OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lv
bnM+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFJlZ2lvbj46OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
c2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzp3aXRoVmVsb2NpdHk6dGFyZ2V0Q29udGVudE9mZnNl
dDpdKTogQWNjb3VudCBmb3IgcGFubmluZyBjb25zdHJhaW50cyBzZXQgb24gdGhlIGNvbnRlbnQg
dmlldyB0byBwcmV2ZW50IGRlY2VsZXJhdGlvbgorICAgICAgICB0byBwYW4gdGhlIHZpZXcgaWYg
aXQgb3VnaHQgbm90LgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbFZpZXc6YWRqdXN0ZWRP
ZmZzZXRGb3JPZmZzZXQ6dHJhbnNsYXRpb246c3RhcnRQb2ludDpsb2NhdGlvbkluVmlldzpob3Jp
em9udGFsVmVsb2NpdHk6dmVydGljYWxWZWxvY2l0eTpdKTogSW1wbGVtZW50IGFuIGFkZGl0aW9u
YWwKKyAgICAgICAgVUlTY3JvbGxWaWV3IGRlbGVnYXRpb24gbWV0aG9kIHRvIGFwcGx5IHRoZSBw
YW5uaW5nIGNvbnN0cmFpbnRzIHNldCBvbiB0aGUgY29udGVudCB2aWV3IHdoaWxlIHBhbm5pbmcu
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludCBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNldFRvdWNoQWN0aW9uc0ZvclNj
cm9sbGluZ05vZGVJRCk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbToK
KyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdX
aWxsRW5kRHJhZ2dpbmc6d2l0aFZlbG9jaXR5OnRhcmdldENvbnRlbnRPZmZzZXQ6XSk6IEFwcGx5
IHRoZSBzYW1lIGxvZ2ljIGFzIGluIFdLV2ViVmlldy4KKyAgICAgICAgKC1bV0tTY3JvbGxpbmdO
b2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmREcmFnZ2luZzp3aWxsRGVjZWxl
cmF0ZTpdKTogUmVzZXQgdGhlIHRvdWNoIGFjdGlvbnMgZm9yIHRoZSBhc3NvY2lhdGVkIHNjcm9s
bCBub2RlIHRvIHN0YXJ0IHRoZSBuZXh0CisgICAgICAgIGludGVyYWN0aW9uIGluIHRoZSBkZWZh
dWx0IHN0YXRlLgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUg
c2Nyb2xsVmlld0RpZEVuZERlY2VsZXJhdGluZzpdKTogUmVzZXQgdGhlIHRvdWNoIGFjdGlvbnMg
Zm9yIHRoZSBhc3NvY2lhdGVkIHNjcm9sbCBub2RlIHRvIHN0YXJ0IHRoZSBuZXh0IGludGVyYWN0
aW9uCisgICAgICAgIGluIHRoZSBkZWZhdWx0IHN0YXRlLgorICAgICAgICAoLVtXS1Njcm9sbGlu
Z05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgX3Njcm9sbFZpZXc6YWRqdXN0ZWRPZmZzZXRGb3JPZmZz
ZXQ6dHJhbnNsYXRpb246c3RhcnRQb2ludDpsb2NhdGlvbkluVmlldzpob3Jpem9udGFsVmVsb2Np
dHk6dmVydGljYWxWZWxvY2l0eTpdKTogQXBwbHkKKyAgICAgICAgdGhlIHNhbWUgbG9naWMgYXMg
aW4gV0tXZWJWaWV3LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc1Njcm9sbGluZ09yWm9vbWluZyBjb25zdCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzXSk6CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5ZQXhpc10pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGNsZWFudXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF93
ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6XSk6IEFzIHdlIHByb2Nlc3MgdG91Y2hlcywgY2hlY2sg
d2hldGhlciB0aGVyZSBhcmUgdG91Y2ggYWN0aW9ucyBzZXQgZm9yIHRoaXMgdG91Y2gncyBwb2lu
dHMnIGxvY2F0aW9ucy4gQmFzZWQKKyAgICAgICAgb24gdGhvc2UgdG91Y2ggYWN0aW9ucywgZWl0
aGVyIHNldERlZmF1bHRQcmV2ZW50ZWQgb24gdGhlIF90b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6
ZXIgaWYgdGhlIHRvdWNoIGFjdGlvbiBpcyAibm9uZSIgb3Igc2VsZWN0aXZlbHkgZGlzYWJsZSBw
YW5uaW5nIGFuZCB6b29taW5nLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9yZXNldFBhbm5p
bmdQcmV2ZW50aW9uRmxhZ3NdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkRW5kU2Ny
b2xsaW5nT3Jab29taW5nXSk6CisKIDIwMTktMDEtMjMgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtp
cnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtDdXJsXSBVbnJldmlld2VkIGJ1aWxkIGZpeCBm
b3IgcjI0MDI5MiBhbmQgZnJpZW5kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkYWI0ZGY1MDRlMjY0MzNjZGUwZDFjMTQ0ZDQ2
YjUzYzVjYTllOTI4Li5kMDc2MzlmMzhkMWJlNDI3MjM5OWE5ZmU1MTMwZDc1NjI3OTlhY2I5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yMDgyLDYgKzIwODIsNyBAQAogCQk3MTJCRTQ4MzFGRTg2NUREMDAyMDMxQ0MgLyogRmls
bE1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcx
MkJFNDgxMUZFODY1RDQwMDIwMzFDQyAvKiBGaWxsTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMkJFNDg4MUZFODY4NkEwMDIwMzFDQyAv
KiBKU0ZpbGxNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3MTJCRTQ4NTFGRTg2ODE4MDAyMDMxQ0MgLyogSlNGaWxsTW9kZS5oICovOyB9OwogCQk3
MTJCRTQ4OTFGRTg2ODc1MDAyMDMxQ0MgLyogSlNQbGF5YmFja0RpcmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyQkU0ODYxRkU4Njg1OTAw
MjAzMUNDIC8qIEpTUGxheWJhY2tEaXJlY3Rpb24uaCAqLzsgfTsKKwkJNzEyREJBNDkyMUY4QUQ4
MzAwOEYzNkIyIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMkRCQTQ3MjFGOEFENzkwMDhGMzZCMiAv
KiBTY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzEzMTcxMzQxRkJFNzhEQjAwRjc1OERFIC8qIENTU1By
b3BlcnR5QmxlbmRpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDcxMzE3MTMyMUZCRTc4QzUwMEY3NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5k
aW5nQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNzEzMjQ0NTEyMDEwOURBNTAwQUU3RkIyIC8qIFdlYkFuaW1hdGlvblV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEzMjQ0NEYy
MDEwOUQ5QjAwQUU3RkIyIC8qIFdlYkFuaW1hdGlvblV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzQ0OTZFMTQ2OTQxQjMwMDcy
MDMxMiAvKiBTVkdMZW5ndGhDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MTM0NDk2QzE0Njk0MUIzMDA3MjAzMTIgLyogU1ZHTGVuZ3RoQ29u
dGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0yNDA0LDcgKzI0MDUsNyBAQAogCQk4MzQ0NzZFRjFEQTVCQzVFMDAyQjZFRDIgLyogSlNTY3Jv
bGxUb09wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzRTlCMzAxMURBNUE1MUUwMEZGRThGNiAvKiBKU1Njcm9sbFRvT3B0aW9ucy5oICovOyB9
OwogCQk4MzQ4QkZBQzFCODU3Mjk4MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQ4QkZBQTFCODU3Mjk1
MDA5MTJGMzYgLyogQ2xhc3NDb2xsZWN0aW9uLmggKi87IH07CiAJCTgzNERGQUQwMUY3REFFNUQw
MEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzRERkFDQzFGN0RBRTU2MDBDMjcyNUIgLyogU2hhcmVkU3Ry
aW5nSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTgzNTIwQzdFMUE3MUJGQ0MwMDZCRDJBQSAvKiBDU1NGb250RmFtaWx5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUyMEM3RDFBNzFCRkNDMDA2
QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovOyB9OworCQk4MzUyMEM3RTFBNzFCRkNDMDA2QkQy
QUEgLyogQ1NTRm9udEZhbWlseS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM1MjBDN0QxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzU4Q0I3
MDFDNTMyNzc1MDBFMEMyRDggLyogSlNYTUxEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGNTcwQUQxQzUzMjY4RTAwN0ZENkNCIC8qIEpT
WE1MRG9jdW1lbnQuaCAqLzsgfTsKIAkJODM1RDJENzgxRjVGMUZCRDAwMTQxREVEIC8qIEhUTUxJ
bnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MzVEMkQ3NTFGNUYxRkI4MDAxNDFERUQgLyogSFRNTElucHV0RWxlbWVu
dEVudHJpZXNBUEkuaCAqLzsgfTsKIAkJODM1RDM2MzcxOUZGNjE5MzAwNEM5M0FCIC8qIFN0eWxl
QnVpbGRlckN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM1RDM2MzYxOUZGNjE5MzAwNEM5M0FCIC8qIFN0eWxlQnVpbGRlckN1c3RvbS5oICov
OyB9OwpAQCAtMjg5MCw3ICsyODkxLDcgQEAKIAkJOTkyMDM5ODMxOEI5NUJDNjAwQjM5QUY5IC8q
IFVzZXJJbnB1dEJyaWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTkyMDM5ODExOEI5NUJDNjAwQjM5QUY5IC8qIFVzZXJJbnB1dEJyaWRnZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5NkU1OURG
MURGMDEyOEQwMDY2MTJCOSAvKiBOYXZpZ2F0b3JXZWJEcml2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NkU1OURDMURGMDBEOTAwMDY2MTJCOSAv
KiBOYXZpZ2F0b3JXZWJEcml2ZXIuaCAqLzsgfTsKIAkJOUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4
IC8qIEZsb2F0aW5nT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUE1MjhFODIxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTlBQjFG
MzgwMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUIxRjM3RTE4RTI0ODlB
MDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oICovOyB9OworCQk5QUIxRjM4
MDE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFCMUYzN0UxOEUyNDg5QTAw
NTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjI0REU4RTE1MTk0Qjk1MDBDNTlDMjcg
LyogSFRNTEJESUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMjRERThDMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJRWxlbWVudC5oICov
OyB9OwogCQk5QjJEOEE3OTE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMkQ4QTc4MTQ5OTdDQ0YwMEVD
RUYzRSAvKiBVbmRvU3RlcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTlCMzJDREE5MTNERjdGQTkwMEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjMyQ0RB
NzEzREY3RkE5MDBGMzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oICovOyB9OwpAQCAtNDc2Nyw3
ICs0NzY4LDcgQEAKIAkJRTFFMUJGMDAxMTVGRjZGQjAwNkY1MkNBIC8qIFdpbmRvd3NLZXlib2Fy
ZENvZGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUUxQkVGRjExNUZGNkZCMDA2RjUyQ0EgLyogV2luZG93c0tleWJvYXJkQ29kZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUU2RUVBODBCNjI4
REIzMDA1RjJGNzAgLyogSlNIVE1MU2VsZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNkVFQTcwQjYyOERCMzAwNUYyRjcwIC8qIEpT
SFRNTFNlbGVjdEVsZW1lbnQuaCAqLzsgfTsKIAkJRTFFQzI5QTAwQkIwNEM2QjAwRUExODdCIC8q
IFhQYXRoTm9kZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFFQzI5OUUwQkIwNEM2QjAwRUExODdCIC8qIFhQYXRoTm9kZVNldC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUUxRUQ4QUMzMENDNDlC
RTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcg
LyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oICovOyB9OworCQlFMUVEOEFDMzBDQzQ5QkUw
MDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8q
IENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUYxRTgzMDBDM0MyQkI5MDA2REIzOTEgLyogWFNMVEV4
dGVuc2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRjFFODJFMEMzQzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5oICovOyB9OwogCQlF
MUY4MEI4ODE4MzE3MjUyMDA3ODg1QzMgLyogQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGODBCODYxODMxNzI1MjAwNzg4NUMz
IC8qIENyeXB0b0tleVBhaXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlFMUY4MEI4RTE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWly
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUY4MEI4
QzE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWlyLmggKi87IH07CkBAIC05Mjg3LDYg
KzkyODgsNyBAQAogCQk3MTJCRTQ4NTFGRTg2ODE4MDAyMDMxQ0MgLyogSlNGaWxsTW9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ZpbGxNb2RlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcxMkJFNDg2MUZFODY4NTkwMDIwMzFDQyAvKiBKU1BsYXliYWNr
RGlyZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUGxheWJhY2tE
aXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzEyQkU0ODcxRkU4Njg1
QTAwMjAzMUNDIC8qIEpTUGxheWJhY2tEaXJlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNQbGF5YmFja0RpcmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTcxMkRCQTQ3MjFGOEFENzkwMDhGMzZCMiAvKiBTY3JvbGxpbmdDb29y
ZGluYXRvclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzEzMDE0
MUQxREM5QzA4NjAwQ0EzQTg4IC8qIHBpcC1zdXBwb3J0LmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBwYXRoID0gInBpcC1zdXBwb3J0LmpzIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzEzMTcxMzIxRkJFNzhDNTAwRjc1OERFIC8qIENTU1Byb3BlcnR5QmxlbmRp
bmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTUHJvcGVydHlC
bGVuZGluZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTMyNDQ0RjIw
MTA5RDlCMDBBRTdGQjIgLyogV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFuaW1hdGlvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTY4ODgsNiArMTY4OTAsNyBAQAogCQkJCTBGNjA1QUVCMTVGOTQ4
NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oICovLAogCQkJCTFBRjYyRUU0MTRE
QTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgKi8sCiAJCQkJMUFGNjJF
RTUxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggKi8sCisJCQkJNzEy
REJBNDcyMUY4QUQ3OTAwOEYzNkIyIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCAqLywK
IAkJCQk1MUM2MUIwODFERTUzNkU3MDA4QTIxMkQgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxh
dG9yLmNwcCAqLywKIAkJCQk1MUM2MUIwOTFERTUzNkU3MDA4QTIxMkQgLyogU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yLmggKi8sCiAJCQkJOTNDMzhCRkMxNjQ0NzNDNzAwMDkxRUIyIC8qIFNj
cm9sbGluZ1N0YXRlRml4ZWROb2RlLmNwcCAqLywKQEAgLTMxMzg5LDYgKzMxMzkyLDcgQEAKIAkJ
CQkxQUY2MkVFODE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzRFNDBEMTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdDb29y
ZGluYXRvcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5MUE5OTExNjI3NDZDQjAwMjk3MzMw
IC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MTJEQkE0
OTIxRjhBRDgzMDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTFDNjFCMEIxREU1MzZFNzAwOEEyMTJEIC8qIFNjcm9sbGluZ01vbWVudHVt
Q2FsY3VsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3REVFRTgxREU5NEIwODAwQjkxNjQ0
IC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNDMzhCRkYxNjQ0NzNDNzAwMDkxRUIyIC8qIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDVkYjcxZjUxNmY2Zjg4ZDc0
MjExNDliMTk1MjdmNGU3YWQ4YzE3NTkuLmQyOTllZjIyYzNiNWJkYjhkOWNkYTIxNWZmMmY2NWZi
NzFkOTVkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjA4LDYgKzIwOCw3IEBACiAj
aW5jbHVkZSAiVGV4dEF1dG9TaXppbmcuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNs
dWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5j
bHVkZSAiVHJhbnNmb3JtU291cmNlLmgiCiAjaW5jbHVkZSAiVHJlZVdhbGtlci5oIgogI2luY2x1
ZGUgIlVuZG9NYW5hZ2VyLmgiCkBAIC00MTUxLDYgKzQxNTIsMTQgQEAgdm9pZCBEb2N1bWVudDo6
aW52YWxpZGF0ZVJlbmRlcmluZ0RlcGVuZGVudFJlZ2lvbnMoQW5ub3RhdGlvbnNBY3Rpb24gYW5u
b3RhdGlvbnMKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQogICAgIHNldFRvdWNoRXZlbnRSZWdpb25zTmVlZFVwZGF0ZSgpOwogI2VuZGlmCisjaWYgRU5B
QkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7
CisgICAgICAgIGlmIChhdXRvKiBmcmFtZVZpZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgICAgIGlm
IChhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9y
KCkpCisgICAgICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0V2ZW50
VHJhY2tpbmdSZWdpb25zQ2hhbmdlZCgqZnJhbWVWaWV3KTsKKyAgICAgICAgfQorICAgIH0KKyNl
bmRpZgogfQogCiB2b2lkIERvY3VtZW50OjppbnZhbGlkYXRlU2Nyb2xsYmFyRGVwZW5kZW50UmVn
aW9ucygpCkBAIC00NTM0LDYgKzQ1NDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJl
bW92ZWQoTm9kZSYgbm9kZSkKIAogICAgIGlmIChpczxUZXh0Pihub2RlKSkKICAgICAgICAgbV9t
YXJrZXJzLT5yZW1vdmVNYXJrZXJzKG5vZGUpOworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQorICAgIGlmIChtX3RvdWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIG1fdG91Y2hBY3Rpb25F
bGVtZW50cy0+cmVtb3ZlKCZub2RlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgTm9kZSogZmFsbGJh
Y2tGb2N1c05hdmlnYXRpb25TdGFydGluZ05vZGVBZnRlclJlbW92YWwoTm9kZSYgbm9kZSkKQEAg
LTcwOTYsNiArNzExMCwzNCBAQCBMYXlvdXRSZWN0IERvY3VtZW50OjphYnNvbHV0ZUV2ZW50SGFu
ZGxlckJvdW5kcyhib29sJiBpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVtZQogICAgIHJldHVybiBM
YXlvdXRSZWN0KCk7CiB9CiAKK0RvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6OmFi
c29sdXRlUmVnaW9uRm9yTm9kZShOb2RlKiBub2RlKQoreworICAgIFJlZ2lvbiByZWdpb247Cisg
ICAgTGF5b3V0UmVjdCByb290UmVsYXRpdmVCb3VuZHM7CisgICAgYm9vbCBpbnNpZGVGaXhlZFBv
c2l0aW9uID0gZmFsc2U7CisKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KG5vZGUpKSB7CisgICAgICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihub2RlKTsKKyAgICAgICAg
aWYgKGRvY3VtZW50ID09IHRoaXMpCisgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBh
YnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKKyAgICAgICAg
ZWxzZSBpZiAoRWxlbWVudCogZWxlbWVudCA9IGRvY3VtZW50LT5vd25lckVsZW1lbnQoKSkKKyAg
ICAgICAgICAgIHJvb3RSZWxhdGl2ZUJvdW5kcyA9IGVsZW1lbnQtPmFic29sdXRlRXZlbnRIYW5k
bGVyQm91bmRzKGluc2lkZUZpeGVkUG9zaXRpb24pOworICAgIH0gZWxzZSBpZiAoaXM8RWxlbWVu
dD4obm9kZSkpIHsKKyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+
KG5vZGUpOworICAgICAgICBpZiAoaXM8SFRNTEJvZHlFbGVtZW50PihlbGVtZW50KSkgeworICAg
ICAgICAgICAgLy8gRm9yIHRoZSBib2R5LCBqdXN0IHVzZSB0aGUgZG9jdW1lbnQgYm91bmRzLgor
ICAgICAgICAgICAgLy8gVGhlIGJvZHkgbWF5IG5vdCBjb3ZlciB0aGlzIHdob2xlIGFyZWEsIGJ1
dCBpdCdzIE9LIGZvciB0aGlzIHJlZ2lvbiB0byBiZSBhbiBvdmVyZXN0aW1hdGUuCisgICAgICAg
ICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBhYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNp
ZGVGaXhlZFBvc2l0aW9uKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByb290UmVsYXRp
dmVCb3VuZHMgPSBlbGVtZW50LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhl
ZFBvc2l0aW9uKTsKKyAgICB9CisKKyAgICBpZiAoIXJvb3RSZWxhdGl2ZUJvdW5kcy5pc0VtcHR5
KCkpCisgICAgICAgIHJlZ2lvbi51bml0ZShSZWdpb24oZW5jbG9zaW5nSW50UmVjdChyb290UmVs
YXRpdmVCb3VuZHMpKSk7CisKKyAgICByZXR1cm4gUmVnaW9uRml4ZWRQYWlyKHJlZ2lvbiwgaW5z
aWRlRml4ZWRQb3NpdGlvbik7Cit9CisKIERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1l
bnQ6OmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyZ2V0U2V0KiB0
YXJnZXRzKQogewogICAgIExheW91dERpc2FsbG93ZWRTY29wZSBsYXlvdXREaXNhbGxvd2VkU2Nv
cGUoTGF5b3V0RGlzYWxsb3dlZFNjb3BlOjpSZWFzb246OlJlZW50cmFuY3lBdm9pZGFuY2UpOwpA
QCAtNzEwNywyNiArNzE0OSw5IEBAIERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6
OmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyCiAgICAgYm9vbCBp
bnNpZGVGaXhlZFBvc2l0aW9uID0gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGtleVZhbHVlUGFp
ciA6ICp0YXJnZXRzKSB7Ci0gICAgICAgIExheW91dFJlY3Qgcm9vdFJlbGF0aXZlQm91bmRzOwot
Ci0gICAgICAgIGlmIChpczxEb2N1bWVudD4oa2V5VmFsdWVQYWlyLmtleSkpIHsKLSAgICAgICAg
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihrZXlWYWx1ZVBhaXIu
a2V5KTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudCA9PSB0aGlzKQotICAgICAgICAgICAgICAg
IHJvb3RSZWxhdGl2ZUJvdW5kcyA9IGFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGluc2lkZUZp
eGVkUG9zaXRpb24pOwotICAgICAgICAgICAgZWxzZSBpZiAoRWxlbWVudCogZWxlbWVudCA9IGRv
Y3VtZW50LT5vd25lckVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICByb290UmVsYXRpdmVCb3Vu
ZHMgPSBlbGVtZW50LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0
aW9uKTsKLSAgICAgICAgfSBlbHNlIGlmIChpczxFbGVtZW50PihrZXlWYWx1ZVBhaXIua2V5KSkg
ewotICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KGtleVZh
bHVlUGFpci5rZXkpOwotICAgICAgICAgICAgaWYgKGlzPEhUTUxCb2R5RWxlbWVudD4oZWxlbWVu
dCkpIHsKLSAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGJvZHksIGp1c3QgdXNlIHRoZSBkb2N1
bWVudCBib3VuZHMuCi0gICAgICAgICAgICAgICAgLy8gVGhlIGJvZHkgbWF5IG5vdCBjb3ZlciB0
aGlzIHdob2xlIGFyZWEsIGJ1dCBpdCdzIE9LIGZvciB0aGlzIHJlZ2lvbiB0byBiZSBhbiBvdmVy
ZXN0aW1hdGUuCi0gICAgICAgICAgICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0gYWJzb2x1dGVF
dmVudEhhbmRsZXJCb3VuZHMoaW5zaWRlRml4ZWRQb3NpdGlvbik7Ci0gICAgICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBlbGVtZW50LT5hYnNvbHV0
ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKLSAgICAgICAgfQotICAg
ICAgICAKLSAgICAgICAgaWYgKCFyb290UmVsYXRpdmVCb3VuZHMuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgdGFyZ2V0UmVnaW9uLnVuaXRlKFJlZ2lvbihlbmNsb3NpbmdJbnRSZWN0KHJvb3RSZWxh
dGl2ZUJvdW5kcykpKTsKKyAgICAgICAgYXV0byB0YXJnZXRSZWdpb25GaXhlZFBhaXIgPSBhYnNv
bHV0ZVJlZ2lvbkZvck5vZGUoa2V5VmFsdWVQYWlyLmtleSk7CisgICAgICAgIHRhcmdldFJlZ2lv
bi51bml0ZSh0YXJnZXRSZWdpb25GaXhlZFBhaXIuZmlyc3QpOworICAgICAgICBpbnNpZGVGaXhl
ZFBvc2l0aW9uIHw9IHRhcmdldFJlZ2lvbkZpeGVkUGFpci5zZWNvbmQ7CiAgICAgfQogCiAgICAg
cmV0dXJuIFJlZ2lvbkZpeGVkUGFpcih0YXJnZXRSZWdpb24sIGluc2lkZUZpeGVkUG9zaXRpb24p
OwpAQCAtODY1MSw0ICs4Njc2LDMzIEBAIHZvaWQgRG9jdW1lbnQ6OnNldFBhaW50V29ya2xldEds
b2JhbFNjb3BlRm9yTmFtZShjb25zdCBTdHJpbmcmIG5hbWUsIFJlZjxQYWludFdvCiB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRv
dWNoQWN0aW9uRWxlbWVudHMoTm9kZSYgbm9kZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAg
IGlmICghbV90b3VjaEFjdGlvbkVsZW1lbnRzKQorICAgICAgICBtX3RvdWNoQWN0aW9uRWxlbWVu
dHMgPSBzdGQ6Om1ha2VfdW5pcXVlPEhhc2hTZXQ8Tm9kZSo+PigpOworCisgICAgYm9vbCBjaGFu
Z2VkID0gZmFsc2U7CisKKyAgICBpZiAoc3R5bGUgJiYgc3R5bGUtPnRvdWNoQWN0aW9ucygpICE9
IFRvdWNoQWN0aW9uOjpBdXRvKQorICAgICAgICBjaGFuZ2VkIHw9IG1fdG91Y2hBY3Rpb25FbGVt
ZW50cy0+YWRkKCZub2RlKS5pc05ld0VudHJ5OworICAgIGVsc2UKKyAgICAgICAgY2hhbmdlZCB8
PSBtX3RvdWNoQWN0aW9uRWxlbWVudHMtPnJlbW92ZSgmbm9kZSk7CisKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIGlmICghY2hhbmdlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFn
ZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHZpZXcoKSkgeworICAgICAgICBpZiAo
U2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Nyb2xs
aW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFt
ZVZpZXdFdmVudFRyYWNraW5nUmVnaW9uc0NoYW5nZWQoKmZyYW1lVmlldyk7CisgICAgfQorI2Vu
ZGlmCit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCBiYjVjMWMwNDY2NTRmMTlhMWE4Njk1NDRiNjMzM2U3MjZiMDcxNmQ0Li40YTZhMWFh
MjkwZGM0ZWVjYjg5NzYxNThhNjQ5MTg1N2Y0MGM3Y2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTI3MSw2ICsxMjcxLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAg
ICAgYm9vbCBoYXNUb3VjaEV2ZW50SGFuZGxlcnMoKSBjb25zdCB7IHJldHVybiAobV90b3VjaEV2
ZW50VGFyZ2V0cy5nZXQoKSkgPyBtX3RvdWNoRXZlbnRUYXJnZXRzLT5zaXplKCkgOiBmYWxzZTsg
fQogICAgIGJvb2wgdG91Y2hFdmVudFRhcmdldHNDb250YWluKE5vZGUmIG5vZGUpIGNvbnN0IHsg
cmV0dXJuIG1fdG91Y2hFdmVudFRhcmdldHMgPyBtX3RvdWNoRXZlbnRUYXJnZXRzLT5jb250YWlu
cygmbm9kZSkgOiBmYWxzZTsgfQorICAgIHZvaWQgdXBkYXRlVG91Y2hBY3Rpb25FbGVtZW50cyhO
b2RlJiwgUmVuZGVyU3R5bGUqKTsKICNlbHNlCiAgICAgYm9vbCBoYXNUb3VjaEV2ZW50SGFuZGxl
cnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgdG91Y2hFdmVudFRhcmdldHND
b250YWluKE5vZGUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtMTI5MCw5ICsxMjkxLDE0
IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykK
KyAgICBjb25zdCBIYXNoU2V0PE5vZGUqPiogdG91Y2hBY3Rpb25FbGVtZW50cygpIGNvbnN0IHsg
cmV0dXJuIG1fdG91Y2hBY3Rpb25FbGVtZW50cy5nZXQoKTsgfQorI2VuZGlmCisKICAgICBjb25z
dCBFdmVudFRhcmdldFNldCogd2hlZWxFdmVudFRhcmdldHMoKSBjb25zdCB7IHJldHVybiBtX3do
ZWVsRXZlbnRUYXJnZXRzLmdldCgpOyB9CiAKICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxSZWdpb24s
IGJvb2w+IFJlZ2lvbkZpeGVkUGFpcjsKKyAgICBSZWdpb25GaXhlZFBhaXIgYWJzb2x1dGVSZWdp
b25Gb3JOb2RlKE5vZGUqKTsKICAgICBSZWdpb25GaXhlZFBhaXIgYWJzb2x1dGVSZWdpb25Gb3JF
dmVudFRhcmdldHMoY29uc3QgRXZlbnRUYXJnZXRTZXQqKTsKIAogICAgIExheW91dFJlY3QgYWJz
b2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoYm9vbCYpIGZpbmFsOwpAQCAtMTg3Myw2ICsxODc5LDkg
QEAgcHJpdmF0ZToKICAgICAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHN0ZDo6dW5p
cXVlX3B0cjxFdmVudFRhcmdldFNldD4gbV90b3VjaEV2ZW50VGFyZ2V0czsKKyNlbmRpZgorI2lm
IEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8SGFzaFNldDxOb2Rl
Kj4+IG1fdG91Y2hBY3Rpb25FbGVtZW50czsKICNlbmRpZgogICAgIHN0ZDo6dW5pcXVlX3B0cjxF
dmVudFRhcmdldFNldD4gbV93aGVlbEV2ZW50VGFyZ2V0czsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CmluZGV4IGIyZjEzZDAyMmMwOTg3MzI1MjQ3OWNiZWFhNTA4NjI3MGE4NDJiZDYuLmUyOGEzYWY1
YzI3MGI0YTEzODZmMTIxMDVkNDQzMmU2NWY4NWQzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
QEAgLTgxLDYgKzgxLDggQEAKICNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJGcmFnbWVudENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVy
LmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEJveC5oIgogI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZVVwZGF0ZXIuaCIKQEAgLTM0MTYsNyAr
MzQxOCw3IEBAIHZvaWQgRWxlbWVudDo6c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudChib29s
IGZsYWcpCiAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOwogfQogCi1z
dGF0aWMgRWxlbWVudCogcGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoRWxlbWVudCogZWxl
bWVudCkKK3N0YXRpYyBFbGVtZW50KiBwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmllcyhjb25z
dCBFbGVtZW50KiBlbGVtZW50KQogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICByZXR1cm4g
ZWxlbWVudC0+cGFyZW50RWxlbWVudCgpID8gZWxlbWVudC0+cGFyZW50RWxlbWVudCgpIDogZWxl
bWVudC0+ZG9jdW1lbnQoKS5vd25lckVsZW1lbnQoKTsKQEAgLTQxMjAsNCArNDEyMiw2NiBAQCB2
b2lkIEVsZW1lbnQ6OnNldEF0dHJpYnV0ZVN0eWxlTWFwKFJlZjxTdHlsZVByb3BlcnR5TWFwPiYm
IG1hcCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorT3B0aW9uU2V0
PFRvdWNoQWN0aW9uPiBFbGVtZW50Ojpjb21wdXRlZFRvdWNoQWN0aW9ucygpIGNvbnN0Cit7Cisg
ICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBjb21wdXRlZFRvdWNoQWN0aW9ucyA9IFRvdWNoQWN0
aW9uOjpBdXRvOworICAgIGZvciAoYXV0byogZWxlbWVudCA9IHRoaXM7IGVsZW1lbnQ7IGVsZW1l
bnQgPSBwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmllcyhlbGVtZW50KSkgeworICAgICAgICBh
dXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgICAgIGlmICghcmVuZGVy
ZXIpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBhdXRvIHRvdWNoQWN0aW9ucyA9
IHJlbmRlcmVyLT5zdHlsZSgpLnRvdWNoQWN0aW9ucygpOworCisgICAgICAgIC8vIE9uY2Ugd2Un
dmUgZW5jb3VudGVyZWQgdG91Y2gtYWN0aW9uOiBub25lLCB3ZSBrbm93IHRoYXQgdGhpcyB3aWxs
IGJlIHRoZSBjb21wdXRlZCB2YWx1ZS4KKyAgICAgICAgaWYgKHRvdWNoQWN0aW9ucyA9PSBUb3Vj
aEFjdGlvbjo6Tm9uZSkKKyAgICAgICAgICAgIHJldHVybiB0b3VjaEFjdGlvbnM7CisKKyAgICAg
ICAgLy8gSWYgdGhlIGNvbXB1dGVkIHRvdWNoLWFjdGlvbiBzbyBmYXIgd2FzICJhdXRvIiwgd2Ug
Y2FuIGp1c3QgdXNlIHRoZSBjdXJyZW50IGVsZW1lbnQncyB0b3VjaC1hY3Rpb24uCisgICAgICAg
IGlmIChjb21wdXRlZFRvdWNoQWN0aW9ucyA9PSBUb3VjaEFjdGlvbjo6QXV0bykgeworICAgICAg
ICAgICAgY29tcHV0ZWRUb3VjaEFjdGlvbnMgPSB0b3VjaEFjdGlvbnM7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGVsZW1lbnQg
aGFzIHRvdWNoLWFjdGlvbjogYXV0byBvciB0aGUgc2FtZSB0b3VjaC1hY3Rpb24gYXMgdGhlIGNv
bXB1dGVkIHRvdWNoLWFjdGlvbiwKKyAgICAgICAgLy8gd2UgbmVlZCB0byBrZWVwIGdvaW5nIHVw
IHRoZSBhbmNlc3RyeSBjaGFpbi4KKyAgICAgICAgaWYgKHRvdWNoQWN0aW9ucyA9PSBUb3VjaEFj
dGlvbjo6QXV0byB8fCB0b3VjaEFjdGlvbnMgPT0gY29tcHV0ZWRUb3VjaEFjdGlvbnMpCisgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBOb3csIHRoZSBlbGVtZW50J3MgdG91Y2gt
YWN0aW9uIGFuZCB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIGFyZSBkaWZmZXJlbnQgYW5kIGFy
ZSBuZWl0aGVyICJhdXRvIiBub3IgIm5vbmUiLgorICAgICAgICBpZiAoY29tcHV0ZWRUb3VjaEFj
dGlvbnMgPT0gVG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgeworICAgICAgICAgICAgLy8gSWYg
dGhlIGNvbXB1dGVkIHRvdWNoLWFjdGlvbiBpcyAibWFuaXB1bGF0aW9uIiwgd2UgY2FuIHRha2Ug
dGhlIGN1cnJlbnQgZWxlbWVudCdzIHRvdWNoLWFjdGlvbiBhcyB0aGUgbmV3bHkKKyAgICAgICAg
ICAgIC8vIGNvbXB1dGVkIHRvdWNoLWFjdGlvbi4KKyAgICAgICAgICAgIGNvbXB1dGVkVG91Y2hB
Y3Rpb25zID0gdG91Y2hBY3Rpb25zOworICAgICAgICB9IGVsc2UgaWYgKHRvdWNoQWN0aW9ucyA9
PSBUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKSB7CisgICAgICAgICAgICAvLyBPdGhlcndpc2Us
IHdlIGhhdmUgYSByZXN0cmljdGVkIGNvbXB1dGVkIHRvdWNoLWFjdGlvbiBzbyBmYXIuIElmIHRo
ZSBjdXJyZW50IGVsZW1lbnQncyB0b3VjaC1hY3Rpb24gaXMgIm1hbmlwdWxhdGlvbiIKKyAgICAg
ICAgICAgIC8vIHRoZW4gd2UgY2FuIGp1c3Qga2VlcCBnb2luZyBhbmQgbGVhdmUgdGhlIGNvbXB1
dGVkIHRvdWNoLWFjdGlvbiB1bnRvdWNoZWQuCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQorCisgICAgICAgIC8vIEluIGFueSBvdGhlciBjYXNlLCB3ZSBoYXZlIGNvbXBldGluZyBy
ZXN0cmljdGl2ZSB0b3VjaC1hY3Rpb24gdmFsdWVzIHRoYXQgY2FuIG9ubHkgeWllbGQgIm5vbmUi
LgorICAgICAgICByZXR1cm4gVG91Y2hBY3Rpb246Ok5vbmU7CisgICAgfQorICAgIHJldHVybiBj
b21wdXRlZFRvdWNoQWN0aW9uczsKK30KKworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxP
V19TQ1JPTExJTkcpCitTY3JvbGxpbmdOb2RlSUQgRWxlbWVudDo6bmVhcmVzdFNjcm9sbGluZ05v
ZGVJRFVzaW5nVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIGNvbnN0Cit7CisgICAgaWYgKCFyZW5k
ZXJlcigpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIFdlIGFyZSBub3QgaW50ZXJlc3Rl
ZCBpbiB0aGUgcm9vdCwgc28gY2hlY2sgdGhhdCB3ZSBhbHNvIGhhdmUgYSB2YWxpZCBwYXJlbnQu
CisgICAgZm9yIChhdXRvKiBsYXllciA9IHJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCk7IGxh
eWVyICYmIGxheWVyLT5wYXJlbnQoKTsgbGF5ZXIgPSBsYXllci0+cGFyZW50KCkpIHsKKyAgICAg
ICAgaWYgKGxheWVyLT5pc0NvbXBvc2l0ZWQoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gc2Ny
b2xsaW5nTm9kZUlEID0gbGF5ZXItPmJhY2tpbmcoKS0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShT
Y3JvbGxDb29yZGluYXRpb25Sb2xlOjpTY3JvbGxpbmcpKQorICAgICAgICAgICAgICAgIHJldHVy
biBzY3JvbGxpbmdOb2RlSUQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30K
KyNlbmRpZgorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CmluZGV4IGM1ZWI2Y2I4YzQ0OGIwOTljNWUwMTI2YWQ1YTFlN2M0ZTg4NDJiODYuLjhjODg2NjEz
OWY0OWZjOGE4NTQ0MDJjOTdmZDIyYWU4NDMyNGRkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIktleWZyYW1lQW5pbWF0aW9uT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgIlNjcm9sbFRvT3B0aW9ucy5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCisjaW5j
bHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTaGFkb3dSb290TW9kZS5o
IgogI2luY2x1ZGUgIlNpbXVsYXRlZENsaWNrT3B0aW9ucy5oIgogI2luY2x1ZGUgIlN0eWxlQ2hh
bmdlLmgiCkBAIC01Niw2ICs1Nyw3IEBAIGNsYXNzIFBzZXVkb0VsZW1lbnQ7CiBjbGFzcyBSZW5k
ZXJUcmVlUG9zaXRpb247CiBjbGFzcyBTdHlsZVByb3BlcnR5TWFwOwogY2xhc3MgV2ViQW5pbWF0
aW9uOworZW51bSBjbGFzcyBUb3VjaEFjdGlvbiA6IHVpbnQ4X3Q7CiBzdHJ1Y3QgRWxlbWVudFN0
eWxlOwogc3RydWN0IFNjcm9sbEludG9WaWV3T3B0aW9uczsKIApAQCAtNTg4LDYgKzU5MCwxMyBA
QCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmPFdlYkFuaW1hdGlvbj4+IGFuaW1hdGUoSlND
OjpFeGVjU3RhdGUmLCBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiYmLCBPcHRpb25hbDxWYXJp
YW50PGRvdWJsZSwgS2V5ZnJhbWVBbmltYXRpb25PcHRpb25zPj4mJik7CiAgICAgVmVjdG9yPFJl
ZlB0cjxXZWJBbmltYXRpb24+PiBnZXRBbmltYXRpb25zKCk7CiAKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9FVkVOVFMpCisgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBjb21wdXRlZFRvdWNoQWN0aW9u
cygpIGNvbnN0OworI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCisg
ICAgU2Nyb2xsaW5nTm9kZUlEIG5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZs
b3dTY3JvbGxpbmcoKSBjb25zdDsKKyNlbmRpZgorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIENvbnN0cnVjdGlvblR5cGUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHAKaW5kZXggOTA4YzIyMTQ5Y2ExM2ExMzg4MTEyMjUxYmIzYmViZDQ5ZDc3
OGUxOS4uOTNkZjA2ZTRiNDhiOGMwZWQ0MmM5M2Q3NTYyMjEyY2I1MzA0YzhhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlJl
bmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRl
ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC0x
MDcsNyArMTA4LDI1IEBAIEV2ZW50VHJhY2tpbmdSZWdpb25zIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjphYnNvbHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUoCiAgICAgYXV0byogZG9jdW1l
bnQgPSBmcmFtZS5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVy
biBFdmVudFRyYWNraW5nUmVnaW9ucygpOwotICAgIHJldHVybiBkb2N1bWVudC0+ZXZlbnRUcmFj
a2luZ1JlZ2lvbnMoKTsKKyAgICBhdXRvIGV2ZW50VHJhY2tpbmdSZWdpb25zID0gZG9jdW1lbnQt
PmV2ZW50VHJhY2tpbmdSZWdpb25zKCk7CisKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucG9pbnRlckV2
ZW50c0VuYWJsZWQoKSkgeworICAgICAgICBhdXRvJiB0b3VjaEFjdGlvbkRhdGEgPSBldmVudFRy
YWNraW5nUmVnaW9ucy50b3VjaEFjdGlvbkRhdGE7CisgICAgICAgIGZvciAoYXV0byYgbm9kZSA6
ICpmcmFtZS5kb2N1bWVudCgpLT50b3VjaEFjdGlvbkVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAg
IGlmICghaXM8RWxlbWVudD4obm9kZSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICBhdXRvJiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOworICAgICAg
ICAgICAgdG91Y2hBY3Rpb25EYXRhLmFwcGVuZCh7CisgICAgICAgICAgICAgICAgZWxlbWVudC5j
b21wdXRlZFRvdWNoQWN0aW9ucygpLAorICAgICAgICAgICAgICAgIGVsZW1lbnQubmVhcmVzdFNj
cm9sbGluZ05vZGVJRFVzaW5nVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpLAorICAgICAgICAgICAg
ICAgIG5vZGUtPmRvY3VtZW50KCkuYWJzb2x1dGVSZWdpb25Gb3JOb2RlKG5vZGUpLmZpcnN0Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIGV2
ZW50VHJhY2tpbmdSZWdpb25zOwogI2Vsc2UKICAgICBhdXRvKiBmcmFtZVZpZXcgPSBmcmFtZS52
aWV3KCk7CiAgICAgaWYgKCFmcmFtZVZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBmN2ExYzU2ZTM2YTc3ZDkz
YzE4YmY5YjY5MDZkYzk2NDRiNDhlMjVjLi5kNGJiNWY1MmQ3YzE3NjcxNmE5ZTJkZDkwNWNkYWMz
ZGNhZmUwZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9y
bVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxTbmFwT2Zmc2V0c0luZm8uaCIKICNpbmNs
dWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KQEAgLTUxLDI2ICs1Miw2IEBA
IGNsYXNzIFRleHRTdHJlYW07CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdHlwZWRlZiB1bnNp
Z25lZCBTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnM7Ci10eXBlZGVmIHVpbnQ2NF90IFNjcm9s
bGluZ05vZGVJRDsKLQotZW51bSBjbGFzcyBTY3JvbGxpbmdOb2RlVHlwZSA6IHVpbnQ4X3Qgewot
ICAgIE1haW5GcmFtZSwKLSAgICBTdWJmcmFtZSwKLSAgICBPdmVyZmxvdywKLSAgICBGaXhlZCwK
LSAgICBTdGlja3kKLX07Ci0KLWVudW0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JG
bGFncyB7Ci0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwgICAgICAg
ICAgICAgICAgICA9IDAsCi0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNs
dWRlTGF5ZXJJRHMgICAgICAgICA9IDEgPDwgMCwKLSAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1Rl
eHRCZWhhdmlvckluY2x1ZGVOb2RlSURzICAgICAgICAgID0gMSA8PCAxLAotICAgIFNjcm9sbGlu
Z1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVyUG9zaXRpb25zICAgPSAxIDw8IDIs
Ci0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JEZWJ1ZyAgICAgICAgICAgICAg
ICAgICA9IFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVySURzIHwg
U2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTm9kZUlEcyB8IFNjcm9sbGlu
Z1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVyUG9zaXRpb25zCi19OwotdHlwZWRl
ZiB1bnNpZ25lZCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcjsKLQogY2xhc3MgRG9j
dW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lVmlldzsKQEAgLTg1LDQyICs2Niw2IEBA
IGNsYXNzIFZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBTY3JvbGxpbmdUcmVlOwogI2VuZGlm
CiAKLWVudW0gY2xhc3MgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiB7Ci0gICAgU2V0LAot
ICAgIFNldEFwcHJveGltYXRlLAotICAgIFN5bmMKLX07Ci0KLXN0cnVjdCBTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnMgewotICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9sbEVsYXN0
aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwotICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVy
dGljYWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKLQotICAgIFNj
cm9sbGJhck1vZGUgaG9yaXpvbnRhbFNjcm9sbGJhck1vZGUgeyBTY3JvbGxiYXJBdXRvIH07Ci0g
ICAgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgeyBTY3JvbGxiYXJBdXRvIH07
Ci0KLSAgICBib29sIGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKLSAg
ICBib29sIGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhciB7IGZhbHNlIH07Ci0KLSAgICBib29s
IHVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFycyB7IGZhbHNlIH07Ci0KLSAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJiBvdGhlcikgY29uc3QKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSA9PSBvdGhlci5o
b3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eQotICAgICAgICAgICAgJiYgdmVydGljYWxTY3JvbGxF
bGFzdGljaXR5ID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eQotICAgICAgICAgICAg
JiYgaG9yaXpvbnRhbFNjcm9sbGJhck1vZGUgPT0gb3RoZXIuaG9yaXpvbnRhbFNjcm9sbGJhck1v
ZGUKLSAgICAgICAgICAgICYmIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9PSBvdGhlci52ZXJ0aWNh
bFNjcm9sbGJhck1vZGUKLSAgICAgICAgICAgICYmIGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xs
YmFyID09IG90aGVyLmhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyCi0gICAgICAgICAgICAm
JiBoYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIgPT0gb3RoZXIuaGFzRW5hYmxlZFZlcnRpY2Fs
U2Nyb2xsYmFyCi0gICAgICAgICAgICAmJiB1c2VEYXJrQXBwZWFyYW5jZUZvclNjcm9sbGJhcnMg
PT0gb3RoZXIudXNlRGFya0FwcGVhcmFuY2VGb3JTY3JvbGxiYXJzOwotICAgIH0KLX07Ci0KLWVu
dW0gY2xhc3MgVmlld3BvcnRSZWN0U3RhYmlsaXR5IHsKLSAgICBTdGFibGUsCi0gICAgVW5zdGFi
bGUsCi0gICAgQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkgLy8gVGhpcyBpbXBs
aWVzIFVuc3RhYmxlLgotfTsKLQogY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGUoUGFnZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JU
eXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUeXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4MDU3YWFkYjBhYjIzOTFhZTZmZWUyZGIzYjgxOTFiZGMy
ZTIyZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit0eXBlZGVmIHVuc2lnbmVkIFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uczsK
K3R5cGVkZWYgdWludDY0X3QgU2Nyb2xsaW5nTm9kZUlEOworCitlbnVtIGNsYXNzIFNjcm9sbGlu
Z05vZGVUeXBlIDogdWludDhfdCB7CisgICAgTWFpbkZyYW1lLAorICAgIFN1YmZyYW1lLAorICAg
IE92ZXJmbG93LAorICAgIEZpeGVkLAorICAgIFN0aWNreQorfTsKKworZW51bSBTY3JvbGxpbmdT
dGF0ZVRyZWVBc1RleHRCZWhhdmlvckZsYWdzIHsKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1Rl
eHRCZWhhdmlvck5vcm1hbCAgICAgICAgICAgICAgICAgID0gMCwKKyAgICBTY3JvbGxpbmdTdGF0
ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVMYXllcklEcyAgICAgICAgID0gMSA8PCAwLAorICAg
IFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZU5vZGVJRHMgICAgICAgICAg
PSAxIDw8IDEsCisgICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5
ZXJQb3NpdGlvbnMgICA9IDEgPDwgMiwKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhh
dmlvckRlYnVnICAgICAgICAgICAgICAgICAgID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVo
YXZpb3JJbmNsdWRlTGF5ZXJJRHMgfCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcklu
Y2x1ZGVOb2RlSURzIHwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5
ZXJQb3NpdGlvbnMKK307Cit0eXBlZGVmIHVuc2lnbmVkIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4
dEJlaGF2aW9yOworCitlbnVtIGNsYXNzIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gewor
ICAgIFNldCwKKyAgICBTZXRBcHByb3hpbWF0ZSwKKyAgICBTeW5jCit9OworCitzdHJ1Y3QgU2Ny
b2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHsKKyAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxT
Y3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKKyAgICBTY3JvbGxFbGFz
dGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07
CisKKyAgICBTY3JvbGxiYXJNb2RlIGhvcml6b250YWxTY3JvbGxiYXJNb2RlIHsgU2Nyb2xsYmFy
QXV0byB9OworICAgIFNjcm9sbGJhck1vZGUgdmVydGljYWxTY3JvbGxiYXJNb2RlIHsgU2Nyb2xs
YmFyQXV0byB9OworCisgICAgYm9vbCBoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZh
bHNlIH07CisgICAgYm9vbCBoYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9Owor
CisgICAgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZUZvclNjcm9sbGJhcnMgeyBmYWxzZSB9OworCisg
ICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyYgb3RoZXIp
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkg
PT0gb3RoZXIuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkKKyAgICAgICAgICAgICYmIHZlcnRp
Y2FsU2Nyb2xsRWxhc3RpY2l0eSA9PSBvdGhlci52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkKKyAg
ICAgICAgICAgICYmIGhvcml6b250YWxTY3JvbGxiYXJNb2RlID09IG90aGVyLmhvcml6b250YWxT
Y3JvbGxiYXJNb2RlCisgICAgICAgICAgICAmJiB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPT0gb3Ro
ZXIudmVydGljYWxTY3JvbGxiYXJNb2RlCisgICAgICAgICAgICAmJiBoYXNFbmFibGVkSG9yaXpv
bnRhbFNjcm9sbGJhciA9PSBvdGhlci5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhcgorICAg
ICAgICAgICAgJiYgaGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFyID09IG90aGVyLmhhc0VuYWJs
ZWRWZXJ0aWNhbFNjcm9sbGJhcgorICAgICAgICAgICAgJiYgdXNlRGFya0FwcGVhcmFuY2VGb3JT
Y3JvbGxiYXJzID09IG90aGVyLnVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFyczsKKyAgICB9
Cit9OworCitlbnVtIGNsYXNzIFZpZXdwb3J0UmVjdFN0YWJpbGl0eSB7CisgICAgU3RhYmxlLAor
ICAgIFVuc3RhYmxlLAorICAgIENoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5IC8v
IFRoaXMgaW1wbGllcyBVbnN0YWJsZS4KK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNTI0MzkzZGQxNmFhNjM3ZmYxNjFk
Njc1YjgwZmZkOTRlN2FhMTUwMC4uNmY3M2UwYTk4ZjYxZmJhMjc3NDRhYWNhNmViNGExYTkxN2M0
MjA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5jcHAKQEAgLTQwMyw2ICs0MDMsMjUgQEAgU3RyaW5nIFNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z1RyZWVBc1RleHQoKQogICAgIHJldHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKKyNpZiBFTkFCTEUo
UE9JTlRFUl9FVkVOVFMpCitPcHRpb25hbDxUb3VjaEFjdGlvbkRhdGE+IFNjcm9sbGluZ1RyZWU6
OnRvdWNoQWN0aW9uRGF0YUF0UG9pbnQoY29uc3QgSW50UG9pbnQgcCkgY29uc3QKK3sKKyAgICAv
LyBGSVhNRTogVGhpcyBkb2VzIG5vdCBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgYXJlIG11
bHRpcGxlIHJlZ2lvbnMgbWF0Y2hpbmcgdGhpcyBwb2ludC4KKyAgICBmb3IgKGF1dG8mIHRvdWNo
QWN0aW9uRGF0YSA6IG1fZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhKSB7Cisg
ICAgICAgIGlmICh0b3VjaEFjdGlvbkRhdGEucmVnaW9uLmNvbnRhaW5zKHApKQorICAgICAgICAg
ICAgcmV0dXJuIHRvdWNoQWN0aW9uRGF0YTsKKyAgICB9CisKKyAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworfQorCit2b2lkIFNjcm9sbGluZ1RyZWU6OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGlu
Z05vZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9k
ZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBpZiAoYXV0byogc2Nyb2xsaW5nVHJlZU5vZGUg
PSBub2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAgc2Nyb2xsaW5nVHJlZU5vZGUt
PnNldFRvdWNoQWN0aW9ucyh0b3VjaEFjdGlvbnMpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggZWZjNjg0MTVj
Mzk0MzBkZjdmMjcwNDNmZTk4MjMzMjc3NTU2NzYzMi4uOGU3ODZiNjI1OWE4YmI4M2FjMDY1MzIz
MWY3MjdmYmRlMzM0YTNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxF
dmVudC5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5h
dG9yLmgiCisjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50VGVz
dFRyaWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CkBAIC0xMDQsNyArMTA1LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9F
WFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50KTsKLSAgICAKKyNpZiBFTkFCTEUoUE9JTlRFUl9F
VkVOVFMpCisgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VG91Y2hBY3Rpb25EYXRhPiB0b3Vj
aEFjdGlvbkRhdGFBdFBvaW50KGNvbnN0IEludFBvaW50KSBjb25zdDsKKyNlbmRpZgorCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlU2Ny
b2xsU25hcEluZGljZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCAvKmhvcml6b250YWxJbmRl
eCovLCB1bnNpZ25lZCAvKnZlcnRpY2FsSW5kZXgqLykgeyB9CkBAIC0xNTEsNiArMTU1LDkgQEAg
cHVibGljOgogICAgIH0KICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Nyb2xsaW5n
VHJlZUFzVGV4dCgpOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8VG91
Y2hBY3Rpb24+LCBTY3JvbGxpbmdOb2RlSUQpOworI2VuZGlmCiAgICAgCiBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmluZGV4IGJm
N2Y2MWEzNjFiOTNiNDdkZmU0MzRlMDVmOTMyODhjY2Y1OTBiYjYuLmQyMzZiZDA1NDQ4YzFiMjY4
NjFhZjEzN2JhODUyMjE0MTQ2MGQyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg
IlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNs
dWRlICJTY3JvbGxpbmdTdGF0ZU5vZGUuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBA
IC03MCw2ICs3MSwxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1bXAo
V1RGOjpUZXh0U3RyZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0
OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIE9wdGlvblNldDxUb3VjaEFjdGlv
bj4gdG91Y2hBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbnM7IH0KKyAgICB2
b2lkIHNldFRvdWNoQWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykg
eyBtX3RvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoK
ICAgICBTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUs
IFNjcm9sbGluZ05vZGVJRCk7CiAgICAgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZTsgfQpAQCAtODUsNiArOTEsOSBAQCBwcml2YXRl
OgogICAgIGNvbnN0IFNjcm9sbGluZ05vZGVJRCBtX25vZGVJRDsKIAogICAgIFNjcm9sbGluZ1Ry
ZWVOb2RlKiBtX3BhcmVudDsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgT3B0aW9u
U2V0PFRvdWNoQWN0aW9uPiBtX3RvdWNoQWN0aW9uczsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRU
cmFja2luZ1JlZ2lvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2lu
Z1JlZ2lvbnMuY3BwCmluZGV4IDdlNzYzYzg5NTNkY2E4ZTZkZDdjYWNhZDYyNTI0MDdjNzBjNWY4
NjMuLjQzNzc4MDA5ODUyOGJlZDEwOTYyZjQ4NjIwNzFiMjg2NzEwMTA5NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKQEAgLTczLDcg
KzczLDE5IEBAIHZvaWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnVuaXRlKGNvbnN0IEV2ZW50VHJh
Y2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9uCiBib29sIG9wZXJhdG9yPT0oY29uc3Qg
RXZlbnRUcmFja2luZ1JlZ2lvbnMmIGEsIGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBiKQog
ewogICAgIHJldHVybiBhLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID09IGIuYXN5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb24KKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgICAgICYm
IGEudG91Y2hBY3Rpb25EYXRhID09IGIudG91Y2hBY3Rpb25EYXRhCisjZW5kaWYKICAgICAgICAg
JiYgYS5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5ldmVudFNw
ZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9FVkVOVFMpCitib29sIG9wZXJhdG9yPT0oY29uc3QgVG91Y2hBY3Rpb25EYXRhJiBhLCBjb25z
dCBUb3VjaEFjdGlvbkRhdGEmIGIpCit7CisgICAgcmV0dXJuIGEudG91Y2hBY3Rpb25zID09IGIu
dG91Y2hBY3Rpb25zCisgICAgICAgICYmIGEuc2Nyb2xsaW5nTm9kZUlEID09IGIuc2Nyb2xsaW5n
Tm9kZUlECisgICAgICAgICYmIGEucmVnaW9uID09IGIucmVnaW9uOworfQorI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0V2ZW50VHJhY2tpbmdSZWdpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRy
YWNraW5nUmVnaW9ucy5oCmluZGV4IDNkNThiYTU1ZWZkNjNlZDliYWU0MDUwMWUzMDliODYxZmM5
ZTljMDUuLmMyYTIwNjMwMWFmMTdkYzE2Y2U4ZmQ3OWVlNTNiY2JmMWNhMTI2ZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaApAQCAtMzAsNiAr
MzAsMTIgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisjaW5jbHVk
ZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVHlwZXMuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogZW51bSBjbGFzcyBUcmFja2luZ1R5cGUgOiB1aW50OF90IHsKQEAg
LTM4LDYgKzQ0LDE4IEBAIGVudW0gY2xhc3MgVHJhY2tpbmdUeXBlIDogdWludDhfdCB7CiAgICAg
U3luY2hyb25vdXMgPSAyCiB9OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQordHlwZWRl
ZiB1aW50NjRfdCBTY3JvbGxpbmdOb2RlSUQ7CitzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhIHsKKyAg
ICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucyB7IFRvdWNoQWN0aW9uOjpBdXRv
IH07CisgICAgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRDsKKyAgICBSZWdpb24gcmVn
aW9uOworfTsKKworYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYsIGNvbnN0
IFRvdWNoQWN0aW9uRGF0YSYpOworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBUb3VjaEFj
dGlvbkRhdGEmIGEsIGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYgYikgeyByZXR1cm4gIShhID09IGIp
OyB9CisjZW5kaWYKKwogc3RydWN0IEV2ZW50VHJhY2tpbmdSZWdpb25zIHsKICAgICAvLyBSZWdp
b24gZm9yIHdoaWNoIGV2ZW50cyBjYW4gYmUgZGlzcGF0Y2hlZCB3aXRob3V0IGJsb2NraW5nIHNj
cm9sbGluZy4KICAgICBSZWdpb24gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CkBAIC00Niw2
ICs2NCwxMCBAQCBzdHJ1Y3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMgewogICAgIC8vIFRoZSBrZXkg
aXMgdGhlIEV2ZW50IE5hbWUgd2l0aCBhbiBhY3RpdmUgaGFuZGxlci4KICAgICBIYXNoTWFwPFN0
cmluZywgUmVnaW9uPiBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiAK
KyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgVmVjdG9yPFRvdWNoQWN0aW9uRGF0YT4g
dG91Y2hBY3Rpb25EYXRhOworI2VuZGlmCisKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAog
ICAgIHZvaWQgdHJhbnNsYXRlKEludFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVU
cmVlUmVzb2x2ZXIuY3BwCmluZGV4IDFiMTM0ZGZlYTNhMjUwZTUyY2ZkODY0YzhiYjE1NzNjYjg1
NGMyMWYuLmE2MTc3ZjkyYTc3ZGZmMDI5NGUxZmY5N2ZhMjE1MTE1YWJmMzRhY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKQEAgLTIzNiw2ICsyMzYsMTEg
QEAgRWxlbWVudFVwZGF0ZXMgVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudChFbGVtZW50JiBl
bGVtZW50KQogICAgIGF1dG8gYmVmb3JlVXBkYXRlID0gcmVzb2x2ZVBzZXVkb1N0eWxlKGVsZW1l
bnQsIHVwZGF0ZSwgUHNldWRvSWQ6OkJlZm9yZSk7CiAgICAgYXV0byBhZnRlclVwZGF0ZSA9IHJl
c29sdmVQc2V1ZG9TdHlsZShlbGVtZW50LCB1cGRhdGUsIFBzZXVkb0lkOjpBZnRlcik7CiAKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkucG9pbnRlckV2ZW50c0VuYWJsZWQoKSkKKyAgICAgICAgbV9kb2N1
bWVudC51cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKGVsZW1lbnQsIHVwZGF0ZS5zdHlsZS5nZXQo
KSk7CisjZW5kaWYKKwogICAgIHJldHVybiB7IFdURk1vdmUodXBkYXRlKSwgZGVzY2VuZGFudHNU
b1Jlc29sdmUsIFdURk1vdmUoYmVmb3JlVXBkYXRlKSwgV1RGTW92ZShhZnRlclVwZGF0ZSkgfTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
aW5kZXggM2IwNTI5YTRhOTU5YTIzYmQ1ZDA0MGY1ZmEwMDhhZDdiMGZlYzcxZi4uNTRkMTk5ZTI1
ZDg0YjI1MTgzZmQ5YmY5ZjAyY2I5NWI1YWM4Y2E3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zMjksMTAgKzMyOSw0MCBAQCBPcHRp
b25hbDxET01DYWNoZUVuZ2luZTo6UmVjb3JkPiBBcmd1bWVudENvZGVyPERPTUNhY2hlRW5naW5l
OjpSZWNvcmQ+OjpkZWNvZGUoRAogICAgIHJldHVybiB7eyBXVEZNb3ZlKGlkZW50aWZpZXIpLCBX
VEZNb3ZlKHVwZGF0ZVJlc3BvbnNlQ291bnRlciksIFdURk1vdmUocmVxdWVzdEhlYWRlcnNHdWFy
ZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucy52YWx1ZSgpKSwgV1RGTW92ZShy
ZWZlcnJlciksIFdURk1vdmUocmVzcG9uc2VIZWFkZXJzR3VhcmQpLCBXVEZNb3ZlKHJlc3BvbnNl
KSwgV1RGTW92ZShyZXNwb25zZUJvZHkpLCByZXNwb25zZUJvZHlTaXplIH19OwogfQogCisjaWYg
RU5BQkxFKFBPSU5URVJfRVZFTlRTKQordm9pZCBBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0
YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUb3VjaEFjdGlvbkRhdGEmIHRvdWNo
QWN0aW9uRGF0YSkKK3sKKyAgICBlbmNvZGVyIDw8IHRvdWNoQWN0aW9uRGF0YS50b3VjaEFjdGlv
bnMgPDwgdG91Y2hBY3Rpb25EYXRhLnNjcm9sbGluZ05vZGVJRCA8PCB0b3VjaEFjdGlvbkRhdGEu
cmVnaW9uOworfQorCitPcHRpb25hbDxUb3VjaEFjdGlvbkRhdGE+IEFyZ3VtZW50Q29kZXI8VG91
Y2hBY3Rpb25EYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8
T3B0aW9uU2V0PFRvdWNoQWN0aW9uPj4gdG91Y2hBY3Rpb25zOworICAgIGRlY29kZXIgPj4gdG91
Y2hBY3Rpb25zOworICAgIGlmICghdG91Y2hBY3Rpb25zKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgT3B0aW9uYWw8U2Nyb2xsaW5nTm9kZUlEPiBzY3JvbGxpbmdOb2RlSUQ7
CisgICAgZGVjb2RlciA+PiBzY3JvbGxpbmdOb2RlSUQ7CisgICAgaWYgKCFzY3JvbGxpbmdOb2Rl
SUQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxSZWdpb24+
IHJlZ2lvbjsKKyAgICBkZWNvZGVyID4+IHJlZ2lvbjsKKyAgICBpZiAoIXJlZ2lvbikKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyBXVEZNb3ZlKCp0b3VjaEFj
dGlvbnMpLCBXVEZNb3ZlKCpzY3JvbGxpbmdOb2RlSUQpLCBXVEZNb3ZlKCpyZWdpb24pIH19Owor
fQorI2VuZGlmCisKIHZvaWQgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRU
cmFja2luZ1JlZ2lvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5h
c3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdS
ZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKKyNpZiBFTkFC
TEUoUE9JTlRFUl9FVkVOVFMpCisgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy50
b3VjaEFjdGlvbkRhdGE7CisjZW5kaWYKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJh
Y2tpbmdSZWdpb25zPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEV2ZW50VHJhY2tpbmdSZWdp
b25zJiBldmVudFRyYWNraW5nUmVnaW9ucykKQEAgLTM0Myw4ICszNzMsMTYgQEAgYm9vbCBBcmd1
bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IEV2ZW50VHJhY2tpbmcKICAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVudFNwZWNpZmlj
U3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIFZlY3RvcjxUb3VjaEFjdGlvbkRh
dGE+IHRvdWNoQWN0aW9uRGF0YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRvdWNoQWN0aW9u
RGF0YSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogICAgIGV2ZW50VHJhY2tpbmdS
ZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID0gV1RGTW92ZShhc3luY2hyb25vdXNE
aXNwYXRjaFJlZ2lvbik7CiAgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zID0gV1RGTW92ZShldmVudFNwZWNpZmljU3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbnMpOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBldmVu
dFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvbkRhdGEgPSBXVEZNb3ZlKHRvdWNoQWN0aW9uRGF0
YSk7CisjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTE1LDYgKzk1MywxNSBAQCBi
b29sIEFyZ3VtZW50Q29kZXI8UmVnaW9uPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlZ2lv
biYgcmVnaW9uKQogICAgIHJldHVybiB0cnVlOwogfQogCitPcHRpb25hbDxSZWdpb24+IEFyZ3Vt
ZW50Q29kZXI8UmVnaW9uPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgUmVnaW9u
IHJlZ2lvbjsKKyAgICBpZiAoIWRlY29kZShkZWNvZGVyLCByZWdpb24pKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlZ2lvbjsKK30KKwogdm9pZCBBcmd1bWVu
dENvZGVyPExlbmd0aD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMZW5ndGgmIGxl
bmd0aCkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShlbmNvZGVy
LCBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aAppbmRleCAzYWU3ZTQ3NWQ4MzM2ZWZjMjdkY2YyYzUxZjcyMmNjMmRiOTg0NWE2Li4yZWY1ZTQz
YWRiNDg5NTE4MTljOWE3MTNkNjllMDEzZDIwZGQ2ZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTIxLDYgKzEyMSw5IEBAIHN0cnVjdCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwogc3RydWN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVyczsK
IHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiBzdHJ1Y3QgVGV4dEluZGljYXRvckRhdGE7Cisj
aWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKKyNlbmRp
Zgogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKICAg
ICAKQEAgLTE5OSw2ICsyMDIsMTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiB7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdl
YkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCisj
aWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpUb3VjaEFjdGlvbkRhdGE+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OlRvdWNoQWN0aW9uRGF0YSYpOworICAgIHN0YXRpYyBPcHRp
b25hbDxXZWJDb3JlOjpUb3VjaEFjdGlvbkRhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworI2Vu
ZGlmCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RXZlbnRUcmFj
a2luZ1JlZ2lvbnM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERl
Y29kZXImLCBXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9ucyYpOwpAQCAtMzE2LDYgKzMyNiw3
IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF0aD4gewogdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZWdpb24+IHsKICAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpOwogICAgIHN0
YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVnaW9uJik7CisgICAgc3RhdGlj
IE9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lvbj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKIHRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TGVuZ3RoPiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA1Zjc1NGFhNTVm
ODZkNDAxY2Q3NmJlZTY1Y2Q5NTRkZGQ3NjFmODc2Li40MGFiMzY3ZTFiOTY0YTk0N2Q3ZWEwMzNl
NTcyYmNiYTNiMDgyYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0KQEAgLTI1ODEsNiArMjU4MSwxNCBAQCAtICh2b2lkKXNjcm9sbFZpZXdX
aWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9jaXR5OihD
R1BvaQogICAgIC8vIHpvb21pbmcuIFdlJ2xsIGFuaW1hdGUgdG8gdGhlIHJpZ2h0IHBsYWNlIG9u
Y2UgdGhlIHpvb20gZmluaXNoZXMuCiAgICAgaWYgKFtzY3JvbGxWaWV3IGlzWm9vbWluZ10pCiAg
ICAgICAgICp0YXJnZXRDb250ZW50T2Zmc2V0ID0gW3Njcm9sbFZpZXcgY29udGVudE9mZnNldF07
CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGVsc2UgeworICAgICAgICBpZiAoW19j
b250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzXSkKKyAgICAgICAgICAgIHRhcmdldENv
bnRlbnRPZmZzZXQtPnggPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueDsKKyAgICAgICAgaWYg
KFtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgICAgICB0YXJn
ZXRDb250ZW50T2Zmc2V0LT55ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lnk7CisgICAgfQor
I2VuZGlmCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgJiYgRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKICAgICBpZiAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBj
b29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkpIHsKICAgICAg
ICAgLy8gRklYTUU6IEhlcmUsIEknbSBmaW5kaW5nIHRoZSBtYXhpbXVtIGhvcml6b250YWwvdmVy
dGljYWwgc2Nyb2xsIG9mZnNldHMuIFRoZXJlJ3MgcHJvYmFibHkgYSBiZXR0ZXIgd2F5IHRvIGRv
IHRoaXMuCkBAIC0yNjE4LDYgKzI2MjYsMjAgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xs
VG9Ub3A6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKICAgICBbc2VsZiBfZGlkRmluaXNoU2Ny
b2xsaW5nXTsKIH0KIAorLSAoQ0dQb2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Ny
b2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRp
b246KENHUG9pbnQpdHJhbnNsYXRpb24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlv
bkluVmlldzooQ0dQb2ludClsb2NhdGlvbkluVmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0
IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7CisgICAg
aWYgKCFbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdICYmICFbX2NvbnRlbnRW
aWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisg
ICAgQ0dQb2ludCBhZGp1c3RlZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShvZmZzZXQueCwg
b2Zmc2V0LnkpOworICAgIGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNd
KQorICAgICAgICBhZGp1c3RlZENvbnRlbnRPZmZzZXQueCA9IHN0YXJ0Lng7CisgICAgaWYgKFtf
Y29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgIGFkanVzdGVkQ29u
dGVudE9mZnNldC55ID0gc3RhcnQueTsKKworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZz
ZXQ7Cit9CisKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZFNjcm9sbDooVUlTY3JvbGxWaWV3ICopc2Ny
b2xsVmlldwogewogICAgIGlmICghW3NlbGYgdXNlc1N0YW5kYXJkQ29udGVudFZpZXddICYmIFtf
Y3VzdG9tQ29udGVudFZpZXcgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJfc2Nyb2xs
Vmlld0RpZFNjcm9sbDopXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LmNwcAppbmRleCBhMzY3ZTE1ZjAwNTM2ZjhjYjVjODUwOTA3YWI0M2E3YzMxNjY3
MzBhLi5lNGE5NjhkY2UxMTJiYjRmZjlhOTM4YzYxODkxMmUzN2QzZjRjNGMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0yMDUsNiAr
MjA1LDE4IEBAIFN0cmluZyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxp
bmdUcmVlQXNUZXh0KCkgY29uc3QKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAorI2lm
IEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK09wdGlvbmFsPFRvdWNoQWN0aW9uRGF0YT4gUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludChJbnRQb2lu
dCBwKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGluZ1RyZWUtPnRvdWNoQWN0aW9uRGF0
YUF0UG9pbnQocCk7Cit9CisKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKE9wdGlvblNldDxUb3VjaEFjdGlvbj4g
dG91Y2hBY3Rpb25zLCBTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEKQoreworICAgIG1f
c2Nyb2xsaW5nVHJlZS0+c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKHRvdWNoQWN0
aW9ucywgc2Nyb2xsaW5nTm9kZUlEKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRleCBiMzJkNzlmZTkyODliMTQ1N2M4
ZWFkMmQ4ZDM1YzNiNzlkYWVjOTZhLi5jMGIwMmMxOWUzMDJlOTUyYWYxYTk5ZjIyNmRlNWNiZmQy
OGJkYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
LmgKQEAgLTk4LDYgKzk4LDExIEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBzY3JvbGxpbmdUcmVl
QXNUZXh0KCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgT3B0aW9u
YWw8V2ViQ29yZTo6VG91Y2hBY3Rpb25EYXRhPiB0b3VjaEFjdGlvbkRhdGFBdFBvaW50KFdlYkNv
cmU6OkludFBvaW50KSBjb25zdDsKKyAgICB2b2lkIHNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGlu
Z05vZGVJRChPcHRpb25TZXQ8V2ViQ29yZTo6VG91Y2hBY3Rpb24+LCBXZWJDb3JlOjpTY3JvbGxp
bmdOb2RlSUQpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBjb25uZWN0U3RhdGVOb2Rl
TGF5ZXJzKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZSYsIGNvbnN0IFJlbW90ZUxheWVyVHJl
ZUhvc3QmKTsKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4
IDRjYzdlMWE4N2I4NWFjNzA2MzdlMTVmNDRjYzFlNGY4ZjkyMTljNGMuLmM5ZTZkMTIyMTQyNDY4
MzQ5YjI3Y2FiNmEzM2Y2MTUzZWFmNWI2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxl
Z2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTY3LDkgKzY3
LDI3IEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxCZWdpbkRyYWdnaW5nOihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3CiAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFdpbGxT
dGFydCgpOwogfQogCi0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKIC0gKHZvaWQpc2Nyb2xs
Vmlld1dpbGxFbmREcmFnZ2luZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2Np
dHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAq
KXRhcmdldENvbnRlbnRPZmZzZXQKIHsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAg
aWYgKCFbc2Nyb2xsVmlldyBpc1pvb21pbmddKSB7CisgICAgICAgIGF1dG8gdG91Y2hBY3Rpb25z
ID0gX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS50b3VjaEFjdGlv
bnMoKTsKKyAgICAgICAgaWYgKHRvdWNoQWN0aW9ucyAhPSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6
QXV0byAmJiB0b3VjaEFjdGlvbnMgIT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlv
bikgeworICAgICAgICAgICAgYm9vbCBjYW5QYW5YID0gdHJ1ZTsKKyAgICAgICAgICAgIGJvb2wg
Y2FuUGFuWSA9IHRydWU7CisgICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250YWlucyhX
ZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWCkpIHsKKyAgICAgICAgICAgICAgICBjYW5QYW5YID0g
ZmFsc2U7CisgICAgICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eCA9IHNjcm9sbFZp
ZXcuY29udGVudE9mZnNldC54OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCF0b3Vj
aEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblkpKSB7CisgICAgICAg
ICAgICAgICAgY2FuUGFuWSA9IGZhbHNlOworICAgICAgICAgICAgICAgIHRhcmdldENvbnRlbnRP
ZmZzZXQtPnkgPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAg
ICBDR0Zsb2F0IGhvcml6b250YWxUYXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT54OwogICAg
IENHRmxvYXQgdmVydGljYWxUYXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT55OwogCkBAIC05
Niw4ICsxMTQsOCBAQCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9jaXR5OihDR1BvaQogICAgICAgICB8fCBvcmlnaW5h
bFZlcnRpY2FsU25hcFBvc2l0aW9uICE9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3Jv
bGxpbmdOb2RlKCkuY3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXgoKSkgewogICAgICAgICBf
c2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFu
Z2UoX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5jdXJyZW50SG9y
aXpvbnRhbFNuYXBQb2ludEluZGV4KCksIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3Jv
bGxpbmdOb2RlKCkuY3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXgoKSk7CiAgICAgfQotfQog
I2VuZGlmCit9CiAKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihVSVNjcm9sbFZp
ZXcgKilzY3JvbGxWaWV3IHdpbGxEZWNlbGVyYXRlOihCT09MKXdpbGxEZWNlbGVyYXRlCiB7CkBA
IC0xMDUsNiArMTIzLDkgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcgd2lsbERlY2VsZXJhdGU6KEJPT0wKICAgICAgICAgX2luVXNl
ckludGVyYWN0aW9uID0gTk87CiAgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5z
Y3JvbGxWaWV3RGlkU2Nyb2xsKHNjcm9sbFZpZXcuY29udGVudE9mZnNldCwgX2luVXNlckludGVy
YWN0aW9uKTsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbERpZEVu
ZCgpOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICAgICAgX3Njcm9sbGluZ1RyZWVO
b2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5zZXRUb3VjaEFjdGlvbnMoV2ViQ29yZTo6VG91
Y2hBY3Rpb246OkF1dG8pOworI2VuZGlmCiAgICAgfQogfQogCkBAIC0xMTQsOSArMTM1LDMwIEBA
IC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Ny
b2xsVmlldwogICAgICAgICBfaW5Vc2VySW50ZXJhY3Rpb24gPSBOTzsKICAgICAgICAgX3Njcm9s
bGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmlldy5jb250
ZW50T2Zmc2V0LCBfaW5Vc2VySW50ZXJhY3Rpb24pOwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5v
ZGVEZWxlZ2F0ZS0+c2Nyb2xsRGlkRW5kKCk7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQor
ICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnNldFRv
dWNoQWN0aW9ucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6QXV0byk7CisjZW5kaWYKICAgICB9CiB9
CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCistIChDR1BvaW50KV9zY3JvbGxWaWV3OihV
SVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1BvaW50
KW9mZnNldCB0cmFuc2xhdGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50OihDR1Bv
aW50KXN0YXJ0IGxvY2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhvcml6b250
YWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5vdXQgZG91
YmxlICopdnYKK3sKKyAgICBhdXRvIHRvdWNoQWN0aW9ucyA9IF9zY3JvbGxpbmdUcmVlTm9kZURl
bGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkudG91Y2hBY3Rpb25zKCk7CisgICAgaWYgKHRvdWNoQWN0
aW9ucyA9PSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6QXV0byB8fCB0b3VjaEFjdGlvbnMgPT0gV2Vi
Q29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikKKyAgICAgICAgcmV0dXJuIG9mZnNldDsK
KworICAgIENHUG9pbnQgYWRqdXN0ZWRDb250ZW50T2Zmc2V0ID0gQ0dQb2ludE1ha2Uob2Zmc2V0
LngsIG9mZnNldC55KTsKKworICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6
OlRvdWNoQWN0aW9uOjpQYW5YKSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnggPSBz
dGFydC54OworICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0
aW9uOjpQYW5ZKSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFydC55Owor
CisgICAgcmV0dXJuIGFkanVzdGVkQ29udGVudE9mZnNldDsKK30KKyNlbmRpZgorCiBAZW5kCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCBhZDdkN2RjOTI4MmUzNTdmMzBlZjI0ZTI4OWExMTNkYTYzMjAxZDkyLi40MGRjMzA5NDBh
MWQxZDkzYWY1ZDJiMzMxZDJjYmUyYWJkNGU0YzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtNjg0LDYgKzY4NCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVl
c3RTdGFydERhdGFJbnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbik7CiAgICAgdm9p
ZCByZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9z
aXRpb24pOwogICAgIHZvaWQgZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uKE9wdGlvbmFs
PFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPik7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQorICAgIGJvb2wgaXNTY3JvbGxpbmdPclpvb21pbmcoKSBjb25zdCB7IHJldHVybiBtX2lzU2Ny
b2xsaW5nT3Jab29taW5nOyB9CisjZW5kaWYKICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKERB
VEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IGQ1MDhhM2U0YmE3Y2Q3YWM4MjE4NmU2OWE2
YzI3NWE1YTBjODQzN2UuLjVkOWViNjk2YTY5NDA2NTAyNTgzYjQ5ZWVlMTQ5MjRjZWRiMGFjNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKQEAgLTE5Niw2ICsxOTYsMTAgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rp
b25EYXRhIHsKICAgICBSZXRhaW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVy
PiBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyOwogCiAgICAgQk9PTCBfY2FuU2VuZFRvdWNo
RXZlbnRzQXN5bmNocm9ub3VzbHk7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIEJP
T0wgX3ByZXZlbnRzUGFubmluZ0luWEF4aXM7CisgICAgQk9PTCBfcHJldmVudHNQYW5uaW5nSW5Z
QXhpczsKKyNlbmRpZgogCiAgICAgUmV0YWluUHRyPFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJl
UmVjb2duaXplcj4gX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyOwogICAgIFJldGFpblB0cjxf
VUlXZWJIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcj4gX2hpZ2hsaWdodExvbmdQ
cmVzc0dlc3R1cmVSZWNvZ25pemVyOwpAQCAtMzQ5LDYgKzM1MywxMCBAQCBzdHJ1Y3QgV0tBdXRv
Q29ycmVjdGlvbkRhdGEgewogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBjb25zdCBX
ZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGZvY3VzZWRFbGVtZW50SW5mb3JtYXRp
b247CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJV2ViRm9ybUFjY2Vzc29yeSAq
Zm9ybUFjY2Vzc29yeVZpZXc7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVGV4
dElucHV0QXNzaXN0YW50SXRlbSAqaW5wdXRBc3Npc3RhbnRJdGVtRm9yV2ViVmlldzsKKyNpZiBF
TkFCTEUoUE9JTlRFUl9FVkVOVFMpCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgcHJldmVudHNQYW5uaW5nSW5YQXhpczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgQk9PTCBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzOworI2VuZGlmCiAKICNpZiBFTkFCTEUoREFU
QUxJU1RfRUxFTUVOVCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFVJVmlldyA8V0tG
b3JtQ29udHJvbD4gKmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zSW5wdXRWaWV3OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KaW5kZXggYmQxYzZiYTRmNWZkYzc2YjI3ZTJiMzg5ZmI0ZmM2YTU2NGI4OGVlOC4uZGYwOTYw
MDUwNzA1MTVmMmU2M2YyYjhhMGJlMjA0MjNhODU4NWNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0x
MjksNiArMTI5LDExIEBACiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tQbGF0Zm9ybUZpbGVV
cGxvYWRQYW5lbC5tbT4KICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorI2lt
cG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9Ub3VjaEFjdGlvbi5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShXQVRDSE9TKQogCiBAaW50
ZXJmYWNlIFdLQ29udGVudFZpZXcgKFdhdGNoU3VwcG9ydCkgPFdLRm9jdXNlZEZvcm1Db250cm9s
Vmlld0RlbGVnYXRlLCBXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSwgV0tU
ZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4KQEAgLTYwOCw2ICs2MTMsMTggQEAg
c3RhdGljIGlubGluZSBib29sIGhhc0ZvY3VzZWRFbGVtZW50KFdlYktpdDo6Rm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbiBmb2N1c2VkRWwKICAgICByZXR1cm4gKGZvY3VzZWRFbGVtZW50SW5mb3Jt
YXRpb24uZWxlbWVudFR5cGUgIT0gV2ViS2l0OjpJbnB1dFR5cGU6Ok5vbmUpOwogfQogCisjaWYg
RU5BQkxFKFBPSU5URVJfRVZFTlRTKQorLSAoQk9PTClwcmV2ZW50c1Bhbm5pbmdJblhBeGlzCit7
CisgICAgcmV0dXJuIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzOworfQorCistIChCT09MKXByZXZl
bnRzUGFubmluZ0luWUF4aXMKK3sKKyAgICByZXR1cm4gX3ByZXZlbnRzUGFubmluZ0luWUF4aXM7
Cit9CisjZW5kaWYKKwogLSAoV0tGb3JtSW5wdXRTZXNzaW9uICopX2Zvcm1JbnB1dFNlc3Npb24K
IHsKICAgICByZXR1cm4gX2Zvcm1JbnB1dFNlc3Npb24uZ2V0KCk7CkBAIC04NTQsNiArODcxLDEw
IEBAIC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAgICAgX2hhc1NldFVwSW50ZXJhY3Rpb25z
ID0gTk87CiAgICAgX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucyA9IHsgfTsKICAg
ICBfaXNab29taW5nVG9SZXZlYWxGb2N1c2VkRWxlbWVudCA9IE5POworCisjaWYgRU5BQkxFKFBP
SU5URVJfRVZFTlRTKQorICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOwor
I2VuZGlmCiB9CiAKIC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKQEAg
LTExMjEsMTYgKzExNDIsNTQgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihV
SVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKICAgICBXZWJLaXQ6
Ok5hdGl2ZVdlYlRvdWNoRXZlbnQgbmF0aXZlV2ViVG91Y2hFdmVudChsYXN0VG91Y2hFdmVudCk7
CiAgICAgbmF0aXZlV2ViVG91Y2hFdmVudC5zZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoIV9j
YW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSB8fCBbZ2VzdHVyZVJlY29nbml6ZXIgaXNE
ZWZhdWx0UHJldmVudGVkXSk7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgaWYg
KGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkoKSkgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHRvdWNoUG9pbnQgOiBuYXRpdmVX
ZWJUb3VjaEV2ZW50LnRvdWNoUG9pbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICh0b3VjaFBvaW50
LnBoYXNlKCkgIT0gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZCkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKGF1dG8gdG91Y2hB
Y3Rpb25EYXRhID0gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnRvdWNoQWN0aW9uRGF0YUF0UG9pbnQo
dG91Y2hQb2ludC5sb2NhdGlvbigpKSkgeworICAgICAgICAgICAgICAgIGlmICh0b3VjaEFjdGlv
bkRhdGEtPnRvdWNoQWN0aW9ucyA9PSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6Tm9uZSkKKyAgICAg
ICAgICAgICAgICAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVmYXVsdFBy
ZXZlbnRlZDpZRVNdOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF0b3VjaEFjdGlvbkRhdGEt
PnRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9u
KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzY3JvbGxpbmdOb2RlSUQgPSB0b3Vj
aEFjdGlvbkRhdGEtPnNjcm9sbGluZ05vZGVJRCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yLT5zZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQodG91
Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnMsIHRvdWNoQWN0aW9uRGF0YS0+c2Nyb2xsaW5nTm9k
ZUlEKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoIXRvdWNoQWN0aW9uRGF0YS0+dG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRv
dWNoQWN0aW9uOjpQaW5jaFpvb20pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF93ZWJW
aWV3LnNjcm9sbFZpZXcucGluY2hHZXN0dXJlUmVjb2duaXplci5lbmFibGVkID0gTk87CisgICAg
ICAgICAgICAgICAgICAgICAgICBfcHJldmVudHNQYW5uaW5nSW5YQXhpcyA9ICF0b3VjaEFjdGlv
bkRhdGEtPnRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBfcHJldmVudHNQYW5uaW5nSW5ZQXhpcyA9ICF0b3Vj
aEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6
UGFuWSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChfY2FuU2VuZFRvdWNo
RXZlbnRzQXN5bmNocm9ub3VzbHkpCiAgICAgICAgIF9wYWdlLT5oYW5kbGVUb3VjaEV2ZW50QXN5
bmNocm9ub3VzbHkobmF0aXZlV2ViVG91Y2hFdmVudCk7CiAgICAgZWxzZQogICAgICAgICBfcGFn
ZS0+aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkobmF0aXZlV2ViVG91Y2hFdmVudCk7CiAK
LSAgICBpZiAobmF0aXZlV2ViVG91Y2hFdmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkp
CisgICAgaWYgKG5hdGl2ZVdlYlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgp
KSB7CiAgICAgICAgIF9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSA9IE5POworCisj
aWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgICAgICBpZiAoIV9wYWdlLT5pc1Njcm9sbGlu
Z09yWm9vbWluZygpKQorICAgICAgICAgICAgW3NlbGYgX3Jlc2V0UGFubmluZ1ByZXZlbnRpb25G
bGFnc107CisjZW5kaWYKKyAgICB9CiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VW
RU5UUykKKy0gKHZvaWQpX3Jlc2V0UGFubmluZ1ByZXZlbnRpb25GbGFncworeworICAgIF9wcmV2
ZW50c1Bhbm5pbmdJblhBeGlzID0gTk87CisgICAgX3ByZXZlbnRzUGFubmluZ0luWUF4aXMgPSBO
TzsKK30KKyNlbmRpZgorCiAtICh2b2lkKV9pbnNwZWN0b3JOb2RlU2VhcmNoUmVjb2duaXplZDoo
VUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiB7CiAgICAgQVNTRVJUKF9p
bnNwZWN0b3JOb2RlU2VhcmNoRW5hYmxlZCk7CkBAIC0yMTk1LDYgKzIyNTQsMTAgQEAgLSAodm9p
ZClfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nCiAgICAgfQogICAgIF9wYWdlLT5zZXRJc1Njcm9s
bGluZ09yWm9vbWluZyhmYWxzZSk7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAg
W3NlbGYgX3Jlc2V0UGFubmluZ1ByZXZlbnRpb25GbGFnc107CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKFdBVENIT1MpCiAgICAgW19mb2N1c2VkRm9ybUNvbnRyb2xWaWV3IGVuZ2FnZUZvY3VzZWRG
b3JtQ29udHJvbE5hdmlnYXRpb25dOwogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmU2NGIzMDQ0NTYyN2M4MjU1
OWEyNWY0ZmM0NjU5MTI0NThjY2ZiNS4uMjc5YzIyODY2MTg5ZmMzOGQ0YzdmMjAxZDIyNzM0MzQ5
MmRhNDI0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAxLTI0ICBBbnRvaW5lIFF1aW50
ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2VudCBpbnRlcmFj
dGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBuZXcgc2VyaWVzIG9mIHRlc3RzIHRoYXQgY2hlY2sgdGhhdCB0aGUg
Im5vbmUiLCAicGFuLXgiLCAicGFuLXkiIGFuZCAicGluY2gtem9vbSIgdmFsdWVzIGhhdmUgdGhl
IGV4cGVjdGVkCisgICAgICAgIGltcGFjdCBvbiBwYWdlIHBhbm5pbmcgb24gaU9TLgorCisgICAg
ICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1v
dmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmct
dG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1ub25lLW9uLXBhcmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tbm9uZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFu
LXkuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBhbi14Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1wYW4teS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5j
aC16b29tLWFsbG93cy16b29taW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1w
aW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sOiBBZGRlZC4KKwogMjAxOS0wMS0yMyAg
T3Jpb2wgQnJ1ZmF1ICA8b2JydWZhdUBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFsbG93IGZhaWx1
cmVzIGluIGZsYWt5IHRlc3RzIGZyb20gYnVnIDE5MzY1NwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcyN2U4YWY4MWJkOTg0YzhjMzQwNzA1NTFhZjViNjFlOTI3MGZmODEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tbm9uZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0
IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBz
Y3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3Zl
cmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzAwNzI5MTAy
NDVlZjU3NTg3ZWJlOWM1MmM5ZmFiYzA1MzJkMWMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Ny
b2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5n
IHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4gYSBz
Y3JvbGxhYmxlIGNvbnRhaW5lciB1c2luZyAnLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRv
dWNoJyBwcmV2ZW50cyBzY3JvbGxpbmcgb2YgdGhhdCBjb250YWluZXIuIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVy
Zmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjllOTYxNGZmZWZjZWZiZWFmZTY3NDE3NGI1ODE1NDFjMGYyMzUxNDEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEg
bmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2Fs
ZT0xIj4KKzxzdHlsZT4KKworI3Njcm9sbGluZy1jb250YWluZXIgeworICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICBsZWZ0OiAwOworICAgIHRvcDogMDsKKyAgICB3aWR0aDogNDAwcHg7Cisg
ICAgaGVpZ2h0OiA0MDBweDsKKyAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgIC13ZWJraXQtb3Zl
cmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKK30KKworI3Njcm9sbGluZy1jb250YWluZXIgPiBkaXYg
eworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOworICAgIHRvcDogMDsKKyAg
ICB3aWR0aDogMjAwJTsKKyAgICBoZWlnaHQ6IDIwMCU7CisgICAgdG91Y2gtYWN0aW9uOiBub25l
OworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJzY3JvbGxpbmctY29u
dGFpbmVyIj48ZGl2PjwvZGl2PjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3QodGVzdCA9
PiB7CisgICAgY29uc3Qgc2Nyb2xsaW5nQ29udGFpbmVyID0gZG9jdW1lbnQuYm9keS5maXJzdEVs
ZW1lbnRDaGlsZDsKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6
IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0NvbnRh
aW5lci5zY3JvbGxMZWZ0LCAwLCAiVGhlIHNjcm9sbGluZyBjb250YWluZXIgd2FzIG5vdCBzY3Jv
bGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0Nv
bnRhaW5lci5zY3JvbGxUb3AsIDAsICJUaGUgc2Nyb2xsaW5nIGNvbnRhaW5lciB3YXMgbm90IHNj
cm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOwor
fSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBpbiBjb250ZW50IGhv
c3RlZCBpbiBhIHNjcm9sbGFibGUgY29udGFpbmVyIHVzaW5nICctd2Via2l0LW92ZXJmbG93LXNj
cm9sbGluZzogdG91Y2gnIHByZXZlbnRzIHNjcm9sbGluZyBvZiB0aGF0IGNvbnRhaW5lci4iKTsK
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDY3NTFiZGQ3YzM0NjJhMWUwODZmZmM3M2YzNTNlZDQ0ZGFmN2ZiYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlm
cmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBUZXN0aW5nIHRoYXQg
c2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gaWZyYW1lIGFuZCBpbnRlcmFjdGluZyB3
aXRoIGl0cyBjb250ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1v
bi1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTI3ZWE4ZGI0NjE3NDM0MWM1MWEwYzRjYzUyNTNl
NWI2MjA3YTJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2Nh
bGU9MSI+Cis8c3R5bGU+CisKK2lmcmFtZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
IGxlZnQ6IDA7CisgICAgdG9wOiAwOworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQw
MHB4OworICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPGlmcmFtZT48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCithc3luY190ZXN0KHRlc3QgPT4g
eworICAgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmJvZHkuZmlyc3RFbGVtZW50Q2hpbGQ7Cisg
ICAgY29uc3QgdGFyZ2V0ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsKKyAgICB0YXJnZXQuc2V0QXR0cmlidXRl
KCJzdHlsZSIsIGAKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAw
OworICAgICAgICB0b3A6IDA7CisgICAgICAgIHdpZHRoOiAyMDAlOworICAgICAgICBoZWlnaHQ6
IDIwMCU7CisgICAgYCk7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDog
NTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5w
YWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4i
KTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFn
ZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgp
OworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBv
biBhbiBpZnJhbWUgYW5kIGludGVyYWN0aW5nIHdpdGggaXRzIGNvbnRlbnQgcHJldmVudHMgcGFn
ZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQwMmIxMzA0OTY4YTI5MWVhZGQxMzczOTUyNmZjMGQ4Y2JlMmEyOWIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhIHBhcmVudCBlbGVt
ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YTQ4MDc5M2Y3OTBhNWM4NjI0MTc2OWY5OTMxZThmNDgwY2YzYjc0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBo
ZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHku
c3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9
ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUudG91Y2hBY3Rpb24gPSAibm9uZSI7
CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRo
ZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwg
IlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9s
bGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwg
IlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhIHBhcmVudCBlbGVt
ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sIGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDAw
YjgzYmI5OGU0YWU1ZGRjOWE1OWM5ODY3MmE2YTAzMjljZThiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbApAQCAt
MCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3Rh
cmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0
ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5
bGUudG91Y2hBY3Rpb24gPSAibm9uZSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUw
IH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhl
IHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAs
ICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRl
c3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlv
bjogbm9uZSBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBhbi14LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44N2U3ODM3OWRmNDVhNzE3NzQ3NmM4YmU3
YjVkNjQwNDBmMGFhY2RlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9uIGFuIGVs
ZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHktYXhpcy4gCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4t
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlOTdiZGUzMjdmYzI5YzNh
ZTRiNzgwYTExMTY0N2NkNjhmZDVmODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nICd0b3VjaC1hY3Rpb246
IHBhbi14IHBhbi15JyBvbiBhbiBlbGVtZW50IGFsbG93cyBwYWdlIHNjcm9sbGluZyBpbiBib3Ro
IGF4ZXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyMjkxYTRkOGM2N2My
MjE1MWMyMjlkODM3ZDcxYThmM2QwMGFiMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbApAQCAtMCww
ICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3Rhcmdl
dF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0
KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRv
Y3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUu
dG91Y2hBY3Rpb24gPSAicGFuLXggcGFuLXkiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6
IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X25v
dF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVkIGlu
IHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdlWU9m
ZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAg
ICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyAndG91Y2gt
YWN0aW9uOiBwYW4teCBwYW4teScgb24gYW4gZWxlbWVudCBhbGxvd3MgcGFnZSBzY3JvbGxpbmcg
aW4gYm90aCBheGVzLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiOTIwNWY3ZWY1ZGEyY2Fi
NzAwMTljZmI4ZWE3MGY5NWQ3N2M2ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbApAQCAtMCwwICsxLDMwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04Pgor
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlh
bC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsg
d2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7Cisg
ICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJv
ZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rp
b24gPSAicGFuLXgiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUw
LCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMod2luZG93
LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ug
d2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsK
KyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9u
IGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHktYXhpcy4iKTsKKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBh
bi15LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1wYW4teS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmNjU4YzM4NjQyMjY3MTVhZTY3
ZWE0MmZiYjkyODY4MDY5Mjg0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBh
biBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB4LWF4aXMuIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXku
aHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkwOTBkMzk2MDFmYmVlMTdiZmQxYjk1ZjI0M2U5ZmFiYzUyMjc5NWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcGFuLXkuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
CisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDog
IjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53
aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBw
eCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXkiOworCisgICAgdWku
c3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3
YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9ub3RfZXF1
YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUg
eS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRo
YXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFn
ZSBzY3JvbGxpbmcgaW4gdGhlIHgtYXhpcy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5NGU2
NzYxNWUyYTU5OThmMzMzM2Y5MGZkYTMwZGQxZGNhNWE0NjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxv
d3Mtem9vbWluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0
aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFuIGVsZW1lbnQgYWxsb3dz
IHBhZ2Ugem9vbWluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9v
bWluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkYTYzYzk0MjllMWFhMTM5MDI2ZWQ0MzEzY2VhNmQ1ZDQ3
ODc5NzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sCkBAIC0wLDAgKzEsMjkg
QEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVW
aWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4K
KzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRp
YWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7
IHdpZHRoOiAiNDAwcHgiLCBoZWlnaHQ6ICI0MDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4gewor
ICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5i
b2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0
aW9uID0gInBpbmNoLXpvb20iOworCisgICAgdWkucGluY2hPdXQoeyB4OiA1MCwgeTogNTAsIHdp
ZHRoOiAxMDAsIGhlaWdodDogMTAwLCBzY2FsZTogMC41IH0pLnRoZW4oKCkgPT4geworICAgICAg
ICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cuaW50ZXJuYWxzLnBhZ2VTY2FsZUZhY3RvcigpLCAx
LCAiVGhlIHBhZ2Ugd2FzIHNjYWxlZC4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7
Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFu
IGVsZW1lbnQgYWxsb3dzIHBhZ2Ugem9vbWluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Ny
b2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjBjODViOWFhNTUyZGY5YjcxZDlhZTQzOTc0MDUwZTBjMjg5OTgwMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5j
aC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFu
IGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1z
Y3JvbGxpbmcuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyMzQxYzYy
MTUwN2EzZWU4MzczNGQyNzcxM2Q4NGJmZjU1OWQ3ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50
cy1zY3JvbGxpbmcuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
CisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDog
IjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53
aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBw
eCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGluY2gtem9vbSI7CisKKyAg
ICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkg
PT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBw
YWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGlu
IHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3Rp
bmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IHBy
ZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360029</attachid>
            <date>2019-01-24 13:17:13 -0800</date>
            <delta_ts>2019-01-24 13:33:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190124221711.patch</filename>
            <type>text/plain</type>
            <size>83213</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyMjY5OWQ1YmJlODA0
MzBlNTViNjgwZmFlMTNhMzY4ZGJmN2I5OC4uYjNmYjFlYTVmZDgwMTRhNzE2NzAwYzU0OWVmOWFh
MTI1NDNlODE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE5LTAxLTI0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21waWxlCisgICAgICAgIGEgbGlzdCBvZiBUb3VjaEFjdGlvbkRhdGEgc3RydWN0dXJlcyB3aGlj
aCBob2xkIHRoZSB0b3VjaC1hY3Rpb24gdmFsdWUsIHRoZSBJRCBvZiB0aGUgbmVhcmVzdCBzY3Jv
bGwgbm9kZSBhbmQgdGhlIFJlZ2lvbiBjb250YWluaW5nCisgICAgICAgIHRoZSBib3VuZHMgb2Yg
ZWFjaCBvZiB0aG9zZSBlbGVtZW50cyB0byBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFs
b25nIHdpdGggdG91Y2ggcmVnaW9ucy4gQ29tcHV0aW5nIHRoZSBsaXN0IG9mIGFsbG93ZWQgdG91
Y2gKKyAgICAgICAgYWN0aW9ucyBmb3IgYSBnaXZlbiBlbGVtZW50IGFjY291bnRzIGZvciBub3Qg
b25seSB0aGUgdmFsdWUgc3BlY2lmaWVkIGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxl
LCBidXQgYWxzbyBpbiBpdHMgaGllcmFyY2h5LAorICAgICAgICBjcm9zc2luZyBhbnkgZnJhbWUg
Ym91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRvY3VtZW50J3Mgcm9vdCBub2RlLgorCisg
ICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVy
Zmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbAorICAg
ICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKKyAg
ICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCisg
ICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1h
bGxvd3Mtem9vbWluZy5odG1sCisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW52YWxpZGF0ZVJlbmRlcmluZ0Rl
cGVuZGVudFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVXaWxsQmVS
ZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJvbSB0aGlzIGRv
Y3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qgb2YgZWxlbWVu
dHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRlIGEgbGlzdCBv
ZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5IGlmIG9uZSBk
b2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0aGUgZ2l2ZW4g
ZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwgb3IgcmVtb3Zl
IGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0aGF0IGxpc3Qg
Y2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBpcyBpbmZvcm1l
ZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjogY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zIGNvbnN0KTogUHJvdmlkZSB0aGUgbGlzdCBvZiBhbGxv
d2VkIHRvdWNoIGFjdGlvbnMgYWNjb3VudGluZyBmb3IgdGhlICJ0b3VjaC1hY3Rpb24iIHByb3Bl
cnR5CisgICAgICAgIHNwZWNpZmllZCBvbiB0aGlzIGVsZW1lbnQgYW5kIGFsbCBvZiBpdHMgaGll
cmFyY2h5LCBjcm9zc2luZyBmcmFtZSBib3VuZGFyeS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcgY29u
c3QpOiBQcm92aWRlIHRoZSBTY3JvbGxpbmdOb2RlSUQsIGlmIGFueSwgZm9yIHRoZSBuZWFyZXN0
IHNjcm9sbGluZyBub2RlCisgICAgICAgIGZvciB0aGF0IGVsZW1lbnQuIFRoaXMgd2lsbCBhbGxv
dyB0aGUgVUkgcHJvY2VzcyB0byBpZGVudGlmeSB3aGljaCBzY3JvbGwgdmlldydzIGJlaGF2aW9y
IHRvIGN1c3RvbWl6ZSB0byByZWZsZWN0IHRoZSBlbGVtZW50J3MgYWxsb3dlZAorICAgICAgICB0
b3VjaCBhY3Rpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNGb3JGcmFtZSBj
b25zdCk6IENvbXB1dGUgdGhlIHJlZ2lvbiBmb3IgYWxsIGVsZW1lbnRzIHdpdGggYSBub24tYXV0
byB0b3VjaC1hY3Rpb24gcHJvcGVydHkKKyAgICAgICAgdGhyb3VnaG91dCB0aGUgcHJvdmlkZWQg
ZnJhbWUgYW5kIGFsbCBvZiBpdHMgc3ViZnJhbWVzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludCBjb25zdCk6IFF1ZXJ5IHRo
ZSBsaXN0IG9mIFRvdWNoQWN0aW9uRGF0YSBvYmplY3RzIGZvciBhIG1hdGNoIGJhc2VkIG9uIHRo
ZSBwcm92aWRlZCBwb2ludC4gUmlnaHQKKyAgICAgICAgbm93IHRoZSBsb2dpYyBpcyBwcmV0dHkg
Y3J1ZGUsIHN0b3BwaW5nIGF0IHRoZSBmaXJzdCBUb3VjaEFjdGlvbkRhdGEgZm9yIHdoaWNoIHRo
ZSByZWdpb24gY29udGFpbnMgdGhlIHByb3ZpZGVkIHBvaW50LCBidXQgZnV0dXJlIHBhdGNoZXMg
d2lsbAorICAgICAgICBhY2NvdW50IGZvciBvdmVybGFwIGFuZCBuZXN0aW5nLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlE
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWVOb2RlOjp0b3VjaEFjdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZU5vZGU6OnNldFRvdWNoQWN0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0v
RXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6
CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50
KTogVXBkYXRlIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rp
b24gcHJvcGVydHkgd2hlbiBhbiBlbGVtZW50J3Mgc3R5bGUgY2hhbmdlcy4KKwogMjAxOS0wMS0y
NCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBY3RpdmF0
ZSB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGluIHRoZSBOZXR3b3JrUHJvY2Vz
cyBhbmQgZGVhY3RpdmF0ZSBpdCBpbiB0aGUgVUlQcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwNGM1YzA0
OTc3NTBmZTg0YjY3YmVmNTA0YmI1YzBkZTNlMjNlMTJlLi5lMGNkNDZlNzAxYjkzMzE0MzBlMDM4
MDYwODJhMjVmOGJlMTE3ODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTAxLTI0
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNl
ci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUgdGhlICJub25lIiwgInBhbi14IiwgInBh
bi15IiBhbmQgInBpbmNoLXpvb20iIHZhbHVlcyBmb3IgdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0
eSBieSBxdWVyeWluZyB0aGUgc2Nyb2xsaW5nIHRyZWUgd2hlbmV2ZXIgYSB0b3VjaCBiZWdpbnMK
KyAgICAgICAgdG8gaWRlbnRpZnkgd2hldGhlciBpdHMgcG9pbnQgaXMgY29udGFpbmVkIHdpdGhp
biB0aGUgcmVnaW9uIG9mIGFuIGVsZW1lbnQgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBw
cm9wZXJ0eS4gSWYgaXQgaXMsIHdlIHVzZSB0aGUgbGlzdCBvZgorICAgICAgICBwZXJtaXR0ZWQg
dG91Y2ggYWN0aW9ucyBzdWNoIHRvIHRoZW4gY3VzdG9taXplIHRoZSBiZWhhdmlvciBvZiB0aGUg
bmVhcmVzdCBzY3JvbGwgdmlldyB0byBwYW4gb3Igem9vbSBvbmx5IGFzIGluc3RydWN0ZWQuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxUb3VjaEFjdGlvbkRhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0YT46OmRlY29kZSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjplbmNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWdpb24+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdXaWxsRW5kRHJh
Z2dpbmc6d2l0aFZlbG9jaXR5OnRhcmdldENvbnRlbnRPZmZzZXQ6XSk6IEFjY291bnQgZm9yIHBh
bm5pbmcgY29uc3RyYWludHMgc2V0IG9uIHRoZSBjb250ZW50IHZpZXcgdG8gcHJldmVudCBkZWNl
bGVyYXRpb24KKyAgICAgICAgdG8gcGFuIHRoZSB2aWV3IGlmIGl0IG91Z2h0IG5vdC4KKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OnRyYW5z
bGF0aW9uOnN0YXJ0UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRhbFZlbG9jaXR5OnZlcnRp
Y2FsVmVsb2NpdHk6XSk6IEltcGxlbWVudCBhbiBhZGRpdGlvbmFsCisgICAgICAgIFVJU2Nyb2xs
VmlldyBkZWxlZ2F0aW9uIG1ldGhvZCB0byBhcHBseSB0aGUgcGFubmluZyBjb25zdHJhaW50cyBz
ZXQgb24gdGhlIGNvbnRlbnQgdmlldyB3aGlsZSBwYW5uaW5nLgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnRvdWNoQWN0
aW9uRGF0YUF0UG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06CisgICAgICAgICgtW1dLU2Nyb2xs
aW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhW
ZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0pOiBBcHBseSB0aGUgc2FtZSBsb2dpYyBhcyBp
biBXS1dlYlZpZXcuCisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0
ZSBzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6d2lsbERlY2VsZXJhdGU6XSk6IFJlc2V0IHRoZSB0
b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBzY3JvbGwgbm9kZSB0byBzdGFydCB0aGUg
bmV4dAorICAgICAgICBpbnRlcmFjdGlvbiBpbiB0aGUgZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAg
KC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmREZWNl
bGVyYXRpbmc6XSk6IFJlc2V0IHRoZSB0b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBz
Y3JvbGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBpbnRlcmFjdGlvbgorICAgICAgICBpbiB0aGUg
ZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVn
YXRlIF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OnRyYW5zbGF0aW9uOnN0YXJ0
UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRhbFZlbG9jaXR5OnZlcnRpY2FsVmVsb2NpdHk6
XSk6IEFwcGx5CisgICAgICAgIHRoZSBzYW1lIGxvZ2ljIGFzIGluIFdLV2ViVmlldy4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNTY3JvbGxpbmdPclpvb21pbmcgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJl
dmVudHNQYW5uaW5nSW5YQXhpc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHByZXZlbnRz
UGFubmluZ0luWUF4aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhbnVwSW50ZXJh
Y3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNvZ25p
emVkOl0pOiBBcyB3ZSBwcm9jZXNzIHRvdWNoZXMsIGNoZWNrIHdoZXRoZXIgdGhlcmUgYXJlIHRv
dWNoIGFjdGlvbnMgc2V0IGZvciB0aGlzIHRvdWNoJ3MgcG9pbnRzJyBsb2NhdGlvbnMuIEJhc2Vk
CisgICAgICAgIG9uIHRob3NlIHRvdWNoIGFjdGlvbnMsIGVpdGhlciBzZXREZWZhdWx0UHJldmVu
dGVkIG9uIHRoZSBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIGlmIHRoZSB0b3VjaCBhY3Rp
b24gaXMgIm5vbmUiIG9yIHNlbGVjdGl2ZWx5IGRpc2FibGUgcGFubmluZyBhbmQgem9vbWluZy4K
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZ10pOgor
CiAyMDE5LTAxLTI0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFjdGl2YXRlIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgaW4gdGhlIE5l
dHdvcmtQcm9jZXNzIGFuZCBkZWFjdGl2YXRlIGl0IGluIHRoZSBVSVByb2Nlc3MuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzNk
OGZkYjA0NTYzNDBjOWNjZjA0YTAyZjdhZjE0Mzk4ODY0MmM2NC4uODExMzc1OTljYTQzYmVlOGQ1
ZWJlMjU0NjllNjFjNTI2MDYxYmJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA4Miw2ICsyMDgyLDcgQEAKIAkJNzEyQkU0
ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTJCRTQ4MTFGRTg2NUQ0MDAyMDMxQ0MgLyogRmlsbE1v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
MTJCRTQ4ODFGRTg2ODZBMDAyMDMxQ0MgLyogSlNGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyQkU0ODUxRkU4NjgxODAwMjAzMUNDIC8q
IEpTRmlsbE1vZGUuaCAqLzsgfTsKIAkJNzEyQkU0ODkxRkU4Njg3NTAwMjAzMUNDIC8qIEpTUGxh
eWJhY2tEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxMkJFNDg2MUZFODY4NTkwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9uLmgg
Ki87IH07CisJCTcxMkRCQTQ5MjFGOEFEODMwMDhGMzZCMiAvKiBTY3JvbGxpbmdDb29yZGluYXRv
clR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MTJEQkE0NzIxRjhBRDc5MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzE3MTM0
MUZCRTc4REIwMEY3NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTMxNzEzMjFGQkU3OEM1MDBG
NzU4REUgLyogQ1NTUHJvcGVydHlCbGVuZGluZ0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzI0NDUxMjAxMDlEQTUwMEFFN0ZCMiAv
KiBXZWJBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcxMzI0NDRGMjAxMDlEOUIwMEFFN0ZCMiAvKiBXZWJBbmltYXRpb25V
dGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3MTM0NDk2RTE0Njk0MUIzMDA3MjAzMTIgLyogU1ZHTGVuZ3RoQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEzNDQ5NkMxNDY5NDFC
MzAwNzIwMzEyIC8qIFNWR0xlbmd0aENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQwNCw3ICsyNDA1LDcgQEAKIAkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUQyIC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RjYgLyog
SlNTY3JvbGxUb09wdGlvbnMuaCAqLzsgfTsKIAkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8q
IENsYXNzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM0OEJGQUExQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICov
OyB9OwogCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0REZBQ0MxRjdE
QUU1NjAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4MzUyMEM3RTFBNzFCRkNDMDA2QkQyQUEgLyog
Q1NTRm9udEZhbWlseS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM1MjBDN0QxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCAqLzsgfTsK
KwkJODM1MjBDN0UxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNTIwQzdEMUE3MUJGQ0MwMDZC
RDJBQSAvKiBDU1NGb250RmFtaWx5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODM1OENCNzAxQzUzMjc3NTAwRTBDMkQ4IC8qIEpTWE1MRG9jdW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjU3
MEFEMUM1MzI2OEUwMDdGRDZDQiAvKiBKU1hNTERvY3VtZW50LmggKi87IH07CiAJCTgzNUQyRDc4
MUY1RjFGQkQwMDE0MURFRCAvKiBIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1RDJENzUxRjVGMUZCODAw
MTQxREVEIC8qIEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggKi87IH07CiAJCTgzNUQzNjM3
MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0b20uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAv
KiBTdHlsZUJ1aWxkZXJDdXN0b20uaCAqLzsgfTsKQEAgLTI4OTAsNyArMjg5MSw3IEBACiAJCTk5
MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYwMEIzOUFG
OSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5OTZFNTlERjFERjAxMjhEMDA2NjEyQjkgLyogTmF2aWdhdG9yV2Vi
RHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTZFNTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi87IH07CiAJ
CTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBNTI4RTgyMTdEN0Y1MkYwMEFB
OTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk5QUIxRjM4MDE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUFCMUYzN0UxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuaCAqLzsgfTsKKwkJOUFCMUYzODAxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OUIyNERFOEUxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlD
MjcgLyogSFRNTEJESUVsZW1lbnQuaCAqLzsgfTsKIAkJOUIyRDhBNzkxNDk5N0NDRjAwRUNFRjNF
IC8qIFVuZG9TdGVwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjMyQ0RBOTEzREY3RkE5MDBG
MzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uaCAqLzsgfTsKQEAgLTQ3NjcsNyArNDc2OCw3IEBACiAJCUUxRTFCRjAwMTE1RkY2RkIw
MDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFMUJFRkYxMTVGRjZGQjAwNkY1MkNBIC8qIFdpbmRv
d3NLZXlib2FyZENvZGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTFFNkVFQTgwQjYyOERCMzAwNUYyRjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTZF
RUE3MEI2MjhEQjMwMDVGMkY3MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50LmggKi87IH07CiAJCUUx
RUMyOUEwMEJCMDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5vZGVTZXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUMyOTlFMEJCMDRDNkIwMEVBMTg3QiAv
KiBYUGF0aE5vZGVTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlFMUVEOEFDMzBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAq
LzsgfTsKKwkJRTFFRDhBQzMwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGMUU4MzAw
QzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUYxRTgyRTBDM0MyQkI5MDA2REIzOTEgLyogWFNM
VEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJRTFGODBCODgxODMxNzI1MjAwNzg4NUMzIC8qIENyeXB0
b0tleVBhaXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRjgwQjg2MTgzMTcyNTIwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGODBCOEUxODMxNzJCNTAw
Nzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGODBCOEMxODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5
UGFpci5oICovOyB9OwpAQCAtOTI4Niw2ICs5Mjg3LDcgQEAKIAkJNzEyQkU0ODUxRkU4NjgxODAw
MjAzMUNDIC8qIEpTRmlsbE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNGaWxsTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTJCRTQ4NjFGRTg2
ODU5MDAyMDMxQ0MgLyogSlNQbGF5YmFja0RpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1BsYXliYWNrRGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxMkJFNDg3MUZFODY4NUEwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGxheWJhY2tEaXJl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MTJEQkE0NzIxRjhBRDc5
MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcxMzAxNDFEMURDOUMwODYwMENBM0E4OCAvKiBwaXAtc3VwcG9y
dC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJwaXAtc3VwcG9y
dC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMzE3MTMyMUZCRTc4QzUwMEY3
NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzEzMjQ0NEYyMDEwOUQ5QjAwQUU3RkIyIC8qIFdlYkFuaW1hdGlvblV0
aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBbmltYXRpb25V
dGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2ODg0LDYgKzE2ODg2
LDcgQEAKIAkJCQkwRjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWlu
dHMuaCAqLywKIAkJCQkxQUY2MkVFNDE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwICovLAogCQkJCTFBRjYyRUU1MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdD
b29yZGluYXRvci5oICovLAorCQkJCTcxMkRCQTQ3MjFGOEFENzkwMDhGMzZCMiAvKiBTY3JvbGxp
bmdDb29yZGluYXRvclR5cGVzLmggKi8sCiAJCQkJNTFDNjFCMDgxREU1MzZFNzAwOEEyMTJEIC8q
IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5jcHAgKi8sCiAJCQkJNTFDNjFCMDkxREU1MzZF
NzAwOEEyMTJEIC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oICovLAogCQkJCTkzQzM4
QkZDMTY0NDczQzcwMDA5MUVCMiAvKiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHAgKi8sCkBA
IC0zMTM3Myw2ICszMTM3Niw3IEBACiAJCQkJMUFGNjJFRTgxNERBMjJBNzAwNDE1NTZDIC8qIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0RTQwRDE4N0Y4MkUx
MDA0NTg4MkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzOTFBOTkxMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzEyREJBNDkyMUY4QUQ4MzAwOEYzNkIyIC8qIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzYxQjBCMURFNTM2RTcwMDhB
MjEyRCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxN0RFRUU4MURFOTRCMDgwMEI5MTY0NCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JN
YWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQzM4QkZGMTY0NDczQzcwMDA5MUVCMiAvKiBTY3Jv
bGxpbmdTdGF0ZUZpeGVkTm9kZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCA1ZGI3MWY1MTZmNmY4OGQ3NDIxMTQ5YjE5NTI3ZjRlN2FkOGMxNzU5Li5kMjk5ZWYy
MmMzYjViZGI4ZDljZGEyMTVmZjJmNjVmYjcxZDk1ZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTIwOCw2ICsyMDgsNyBAQAogI2luY2x1ZGUgIlRleHRBdXRvU2l6aW5nLmgiCiAjaW5j
bHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNs
dWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2luY2x1
ZGUgIlRyZWVXYWxrZXIuaCIKICNpbmNsdWRlICJVbmRvTWFuYWdlci5oIgpAQCAtNDE1MSw2ICs0
MTUyLDE0IEBAIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVSZW5kZXJpbmdEZXBlbmRlbnRSZWdp
b25zKEFubm90YXRpb25zQWN0aW9uIGFubm90YXRpb25zCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBzZXRUb3VjaEV2ZW50UmVnaW9uc05lZWRV
cGRhdGUoKTsKICNlbmRpZgorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBpZiAoYXV0
byogcGFnZSA9IHRoaXMtPnBhZ2UoKSkgeworICAgICAgICBpZiAoYXV0byogZnJhbWVWaWV3ID0g
dmlldygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBw
YWdlLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nv
b3JkaW5hdG9yLT5mcmFtZVZpZXdFdmVudFRyYWNraW5nUmVnaW9uc0NoYW5nZWQoKmZyYW1lVmll
dyk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVudDo6aW52YWxp
ZGF0ZVNjcm9sbGJhckRlcGVuZGVudFJlZ2lvbnMoKQpAQCAtNDUzNCw2ICs0NTQzLDExIEBAIHZv
aWQgRG9jdW1lbnQ6Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUmIG5vZGUpCiAKICAgICBpZiAoaXM8
VGV4dD4obm9kZSkpCiAgICAgICAgIG1fbWFya2Vycy0+cmVtb3ZlTWFya2Vycyhub2RlKTsKKwor
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBpZiAobV90b3VjaEFjdGlvbkVsZW1lbnRz
KQorICAgICAgICBtX3RvdWNoQWN0aW9uRWxlbWVudHMtPnJlbW92ZSgmbm9kZSk7CisjZW5kaWYK
IH0KIAogc3RhdGljIE5vZGUqIGZhbGxiYWNrRm9jdXNOYXZpZ2F0aW9uU3RhcnRpbmdOb2RlQWZ0
ZXJSZW1vdmFsKE5vZGUmIG5vZGUpCkBAIC03MDk2LDYgKzcxMTAsMzQgQEAgTGF5b3V0UmVjdCBE
b2N1bWVudDo6YWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoYm9vbCYgaW5jbHVkZXNGaXhlZFBv
c2l0aW9uRWxlbWUKICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwogfQogCitEb2N1bWVudDo6UmVn
aW9uRml4ZWRQYWlyIERvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvck5vZGUoTm9kZSogbm9kZSkK
K3sKKyAgICBSZWdpb24gcmVnaW9uOworICAgIExheW91dFJlY3Qgcm9vdFJlbGF0aXZlQm91bmRz
OworICAgIGJvb2wgaW5zaWRlRml4ZWRQb3NpdGlvbiA9IGZhbHNlOworCisgICAgaWYgKGlzPERv
Y3VtZW50Pihub2RlKSkgeworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb3duY2FzdDxE
b2N1bWVudD4obm9kZSk7CisgICAgICAgIGlmIChkb2N1bWVudCA9PSB0aGlzKQorICAgICAgICAg
ICAgcm9vdFJlbGF0aXZlQm91bmRzID0gYWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoaW5zaWRl
Rml4ZWRQb3NpdGlvbik7CisgICAgICAgIGVsc2UgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBkb2N1
bWVudC0+b3duZXJFbGVtZW50KCkpCisgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBl
bGVtZW50LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsK
KyAgICB9IGVsc2UgaWYgKGlzPEVsZW1lbnQ+KG5vZGUpKSB7CisgICAgICAgIEVsZW1lbnQqIGVs
ZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pihub2RlKTsKKyAgICAgICAgaWYgKGlzPEhUTUxCb2R5
RWxlbWVudD4oZWxlbWVudCkpIHsKKyAgICAgICAgICAgIC8vIEZvciB0aGUgYm9keSwganVzdCB1
c2UgdGhlIGRvY3VtZW50IGJvdW5kcy4KKyAgICAgICAgICAgIC8vIFRoZSBib2R5IG1heSBub3Qg
Y292ZXIgdGhpcyB3aG9sZSBhcmVhLCBidXQgaXQncyBPSyBmb3IgdGhpcyByZWdpb24gdG8gYmUg
YW4gb3ZlcmVzdGltYXRlLgorICAgICAgICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0gYWJzb2x1
dGVFdmVudEhhbmRsZXJCb3VuZHMoaW5zaWRlRml4ZWRQb3NpdGlvbik7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0gZWxlbWVudC0+YWJzb2x1dGVFdmVu
dEhhbmRsZXJCb3VuZHMoaW5zaWRlRml4ZWRQb3NpdGlvbik7CisgICAgfQorCisgICAgaWYgKCFy
b290UmVsYXRpdmVCb3VuZHMuaXNFbXB0eSgpKQorICAgICAgICByZWdpb24udW5pdGUoUmVnaW9u
KGVuY2xvc2luZ0ludFJlY3Qocm9vdFJlbGF0aXZlQm91bmRzKSkpOworCisgICAgcmV0dXJuIFJl
Z2lvbkZpeGVkUGFpcihyZWdpb24sIGluc2lkZUZpeGVkUG9zaXRpb24pOworfQorCiBEb2N1bWVu
dDo6UmVnaW9uRml4ZWRQYWlyIERvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0
cyhjb25zdCBFdmVudFRhcmdldFNldCogdGFyZ2V0cykKIHsKICAgICBMYXlvdXREaXNhbGxvd2Vk
U2NvcGUgbGF5b3V0RGlzYWxsb3dlZFNjb3BlKExheW91dERpc2FsbG93ZWRTY29wZTo6UmVhc29u
OjpSZWVudHJhbmN5QXZvaWRhbmNlKTsKQEAgLTcxMDcsMjYgKzcxNDksOSBAQCBEb2N1bWVudDo6
UmVnaW9uRml4ZWRQYWlyIERvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhj
b25zdCBFdmVudFRhcgogICAgIGJvb2wgaW5zaWRlRml4ZWRQb3NpdGlvbiA9IGZhbHNlOwogCiAg
ICAgZm9yIChhdXRvJiBrZXlWYWx1ZVBhaXIgOiAqdGFyZ2V0cykgewotICAgICAgICBMYXlvdXRS
ZWN0IHJvb3RSZWxhdGl2ZUJvdW5kczsKLQotICAgICAgICBpZiAoaXM8RG9jdW1lbnQ+KGtleVZh
bHVlUGFpci5rZXkpKSB7Ci0gICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb3duY2Fz
dDxEb2N1bWVudD4oa2V5VmFsdWVQYWlyLmtleSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQg
PT0gdGhpcykKLSAgICAgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBhYnNvbHV0ZUV2
ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBkb2N1bWVudC0+b3duZXJFbGVtZW50KCkpCi0gICAgICAg
ICAgICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0gZWxlbWVudC0+YWJzb2x1dGVFdmVudEhhbmRs
ZXJCb3VuZHMoaW5zaWRlRml4ZWRQb3NpdGlvbik7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXM8RWxl
bWVudD4oa2V5VmFsdWVQYWlyLmtleSkpIHsKLSAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSBkb3duY2FzdDxFbGVtZW50PihrZXlWYWx1ZVBhaXIua2V5KTsKLSAgICAgICAgICAgIGlmIChp
czxIVE1MQm9keUVsZW1lbnQ+KGVsZW1lbnQpKSB7Ci0gICAgICAgICAgICAgICAgLy8gRm9yIHRo
ZSBib2R5LCBqdXN0IHVzZSB0aGUgZG9jdW1lbnQgYm91bmRzLgotICAgICAgICAgICAgICAgIC8v
IFRoZSBib2R5IG1heSBub3QgY292ZXIgdGhpcyB3aG9sZSBhcmVhLCBidXQgaXQncyBPSyBmb3Ig
dGhpcyByZWdpb24gdG8gYmUgYW4gb3ZlcmVzdGltYXRlLgotICAgICAgICAgICAgICAgIHJvb3RS
ZWxhdGl2ZUJvdW5kcyA9IGFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGluc2lkZUZpeGVkUG9z
aXRpb24pOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgcm9vdFJlbGF0aXZl
Qm91bmRzID0gZWxlbWVudC0+YWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoaW5zaWRlRml4ZWRQ
b3NpdGlvbik7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmICghcm9vdFJlbGF0aXZl
Qm91bmRzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHRhcmdldFJlZ2lvbi51bml0ZShSZWdpb24o
ZW5jbG9zaW5nSW50UmVjdChyb290UmVsYXRpdmVCb3VuZHMpKSk7CisgICAgICAgIGF1dG8gdGFy
Z2V0UmVnaW9uRml4ZWRQYWlyID0gYWJzb2x1dGVSZWdpb25Gb3JOb2RlKGtleVZhbHVlUGFpci5r
ZXkpOworICAgICAgICB0YXJnZXRSZWdpb24udW5pdGUodGFyZ2V0UmVnaW9uRml4ZWRQYWlyLmZp
cnN0KTsKKyAgICAgICAgaW5zaWRlRml4ZWRQb3NpdGlvbiB8PSB0YXJnZXRSZWdpb25GaXhlZFBh
aXIuc2Vjb25kOwogICAgIH0KIAogICAgIHJldHVybiBSZWdpb25GaXhlZFBhaXIodGFyZ2V0UmVn
aW9uLCBpbnNpZGVGaXhlZFBvc2l0aW9uKTsKQEAgLTg2NTEsNCArODY3NiwzMyBAQCB2b2lkIERv
Y3VtZW50OjpzZXRQYWludFdvcmtsZXRHbG9iYWxTY29wZUZvck5hbWUoY29uc3QgU3RyaW5nJiBu
YW1lLCBSZWY8UGFpbnRXbwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMp
Cit2b2lkIERvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmIG5vZGUsIFJl
bmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBpZiAoIW1fdG91Y2hBY3Rpb25FbGVtZW50cykKKyAg
ICAgICAgbV90b3VjaEFjdGlvbkVsZW1lbnRzID0gc3RkOjptYWtlX3VuaXF1ZTxIYXNoU2V0PE5v
ZGUqPj4oKTsKKworICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOworCisgICAgaWYgKHN0eWxlICYm
IHN0eWxlLT50b3VjaEFjdGlvbnMoKSAhPSBUb3VjaEFjdGlvbjo6QXV0bykKKyAgICAgICAgY2hh
bmdlZCB8PSBtX3RvdWNoQWN0aW9uRWxlbWVudHMtPmFkZCgmbm9kZSkuaXNOZXdFbnRyeTsKKyAg
ICBlbHNlCisgICAgICAgIGNoYW5nZWQgfD0gbV90b3VjaEFjdGlvbkVsZW1lbnRzLT5yZW1vdmUo
Jm5vZGUpOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoIWNoYW5nZWQpCisg
ICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcg
PSB2aWV3KCkpIHsKKyAgICAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdD
b29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAgICBz
Y3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFuZ2Vk
KCpmcmFtZVZpZXcpOworICAgIH0KKyNlbmRpZgorfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYmI1YzFjMDQ2NjU0ZjE5YTFhODY5NTQ0
YjYzMzNlNzI2YjA3MTZkNC4uNGE2YTFhYTI5MGRjNGVlY2I4OTc2MTU4YTY0OTE4NTdmNDBjN2Nh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyNzEsNiArMTI3MSw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJzKCkg
Y29uc3QgeyByZXR1cm4gKG1fdG91Y2hFdmVudFRhcmdldHMuZ2V0KCkpID8gbV90b3VjaEV2ZW50
VGFyZ2V0cy0+c2l6ZSgpIDogZmFsc2U7IH0KICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29u
dGFpbihOb2RlJiBub2RlKSBjb25zdCB7IHJldHVybiBtX3RvdWNoRXZlbnRUYXJnZXRzID8gbV90
b3VjaEV2ZW50VGFyZ2V0cy0+Y29udGFpbnMoJm5vZGUpIDogZmFsc2U7IH0KKyAgICB2b2lkIHVw
ZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMoTm9kZSYsIFJlbmRlclN0eWxlKik7CiAjZWxzZQogICAg
IGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29udGFpbihOb2RlJikgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KQEAgLTEyOTAsOSArMTI5MSwxNCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgY29uc3QgSGFzaFNldDxOb2RlKj4qIHRvdWNo
QWN0aW9uRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoQWN0aW9uRWxlbWVudHMuZ2V0
KCk7IH0KKyNlbmRpZgorCiAgICAgY29uc3QgRXZlbnRUYXJnZXRTZXQqIHdoZWVsRXZlbnRUYXJn
ZXRzKCkgY29uc3QgeyByZXR1cm4gbV93aGVlbEV2ZW50VGFyZ2V0cy5nZXQoKTsgfQogCiAgICAg
dHlwZWRlZiBzdGQ6OnBhaXI8UmVnaW9uLCBib29sPiBSZWdpb25GaXhlZFBhaXI7CisgICAgUmVn
aW9uRml4ZWRQYWlyIGFic29sdXRlUmVnaW9uRm9yTm9kZShOb2RlKik7CiAgICAgUmVnaW9uRml4
ZWRQYWlyIGFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyZ2V0U2V0
Kik7CiAKICAgICBMYXlvdXRSZWN0IGFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGJvb2wmKSBm
aW5hbDsKQEAgLTE4NzMsNiArMTg3OSw5IEBAIHByaXZhdGU6CiAgICAgCiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+IG1fdG91Y2hF
dmVudFRhcmdldHM7CisjZW5kaWYKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEhhc2hTZXQ8Tm9kZSo+PiBtX3RvdWNoQWN0aW9uRWxlbWVudHM7CiAjZW5k
aWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+IG1fd2hlZWxFdmVudFRhcmdl
dHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiMmYxM2QwMjJjMDk4NzMyNTI0NzljYmVh
YTUwODYyNzBhODQyYmQ2Li5lMjhhM2FmNWMyNzBiNGExMzg2ZjEyMTA1ZDQ0MzJlNjVmODVkMzk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC04MSw2ICs4MSw4IEBACiAjaW5jbHVkZSAiUG9p
bnRlckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyRnJhZ21lbnRDb250YWluZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2lu
Zy5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRl
ckxpc3RCb3guaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclRy
ZWVVcGRhdGVyLmgiCkBAIC0zNDE2LDcgKzM0MTgsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldENvbnRh
aW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9vbCBmbGFnKQogICAgIGludmFsaWRhdGVTdHlsZUFuZExh
eWVyQ29tcG9zaXRpb24oKTsKIH0KIAotc3RhdGljIEVsZW1lbnQqIHBhcmVudENyb3NzaW5nRnJh
bWVCb3VuZGFyaWVzKEVsZW1lbnQqIGVsZW1lbnQpCitzdGF0aWMgRWxlbWVudCogcGFyZW50Q3Jv
c3NpbmdGcmFtZUJvdW5kYXJpZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBBU1NF
UlQoZWxlbWVudCk7CiAgICAgcmV0dXJuIGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA/IGVsZW1l
bnQtPnBhcmVudEVsZW1lbnQoKSA6IGVsZW1lbnQtPmRvY3VtZW50KCkub3duZXJFbGVtZW50KCk7
CkBAIC00MTIwLDQgKzQxMjIsNjYgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVTdHlsZU1h
cChSZWY8U3R5bGVQcm9wZXJ0eU1hcD4mJiBtYXApCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKK09wdGlvblNldDxUb3VjaEFjdGlvbj4gRWxlbWVudDo6Y29tcHV0ZWRU
b3VjaEFjdGlvbnMoKSBjb25zdAoreworICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gY29tcHV0
ZWRUb3VjaEFjdGlvbnMgPSBUb3VjaEFjdGlvbjo6QXV0bzsKKyAgICBmb3IgKGF1dG8qIGVsZW1l
bnQgPSB0aGlzOyBlbGVtZW50OyBlbGVtZW50ID0gcGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJp
ZXMoZWxlbWVudCkpIHsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJl
cigpOworICAgICAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgYXV0byB0b3VjaEFjdGlvbnMgPSByZW5kZXJlci0+c3R5bGUoKS50b3VjaEFjdGlvbnMo
KTsKKworICAgICAgICAvLyBPbmNlIHdlJ3ZlIGVuY291bnRlcmVkIHRvdWNoLWFjdGlvbjogbm9u
ZSwgd2Uga25vdyB0aGF0IHRoaXMgd2lsbCBiZSB0aGUgY29tcHV0ZWQgdmFsdWUuCisgICAgICAg
IGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246Ok5vbmUpCisgICAgICAgICAgICByZXR1
cm4gdG91Y2hBY3Rpb25zOworCisgICAgICAgIC8vIElmIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rp
b24gc28gZmFyIHdhcyAiYXV0byIsIHdlIGNhbiBqdXN0IHVzZSB0aGUgY3VycmVudCBlbGVtZW50
J3MgdG91Y2gtYWN0aW9uLgorICAgICAgICBpZiAoY29tcHV0ZWRUb3VjaEFjdGlvbnMgPT0gVG91
Y2hBY3Rpb246OkF1dG8pIHsKKyAgICAgICAgICAgIGNvbXB1dGVkVG91Y2hBY3Rpb25zID0gdG91
Y2hBY3Rpb25zOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAv
LyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGhhcyB0b3VjaC1hY3Rpb246IGF1dG8gb3IgdGhlIHNh
bWUgdG91Y2gtYWN0aW9uIGFzIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24sCisgICAgICAgIC8v
IHdlIG5lZWQgdG8ga2VlcCBnb2luZyB1cCB0aGUgYW5jZXN0cnkgY2hhaW4uCisgICAgICAgIGlm
ICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246OkF1dG8gfHwgdG91Y2hBY3Rpb25zID09IGNv
bXB1dGVkVG91Y2hBY3Rpb25zKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8g
Tm93LCB0aGUgZWxlbWVudCdzIHRvdWNoLWFjdGlvbiBhbmQgdGhlIGNvbXB1dGVkIHRvdWNoLWFj
dGlvbiBhcmUgZGlmZmVyZW50IGFuZCBhcmUgbmVpdGhlciAiYXV0byIgbm9yICJub25lIi4KKyAg
ICAgICAgaWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRp
b24pIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gaXMgIm1h
bmlwdWxhdGlvbiIsIHdlIGNhbiB0YWtlIHRoZSBjdXJyZW50IGVsZW1lbnQncyB0b3VjaC1hY3Rp
b24gYXMgdGhlIG5ld2x5CisgICAgICAgICAgICAvLyBjb21wdXRlZCB0b3VjaC1hY3Rpb24uCisg
ICAgICAgICAgICBjb21wdXRlZFRvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsKKyAgICAgICAg
fSBlbHNlIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgewor
ICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBoYXZlIGEgcmVzdHJpY3RlZCBjb21wdXRlZCB0
b3VjaC1hY3Rpb24gc28gZmFyLiBJZiB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9u
IGlzICJtYW5pcHVsYXRpb24iCisgICAgICAgICAgICAvLyB0aGVuIHdlIGNhbiBqdXN0IGtlZXAg
Z29pbmcgYW5kIGxlYXZlIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gdW50b3VjaGVkLgorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbiBhbnkgb3RoZXIg
Y2FzZSwgd2UgaGF2ZSBjb21wZXRpbmcgcmVzdHJpY3RpdmUgdG91Y2gtYWN0aW9uIHZhbHVlcyB0
aGF0IGNhbiBvbmx5IHlpZWxkICJub25lIi4KKyAgICAgICAgcmV0dXJuIFRvdWNoQWN0aW9uOjpO
b25lOworICAgIH0KKyAgICByZXR1cm4gY29tcHV0ZWRUb3VjaEFjdGlvbnM7Cit9CisKKyNpZiBF
TkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQorU2Nyb2xsaW5nTm9kZUlEIEVs
ZW1lbnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmco
KSBjb25zdAoreworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICAvLyBXZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gdGhlIHJvb3QsIHNvIGNoZWNrIHRoYXQgd2Ug
YWxzbyBoYXZlIGEgdmFsaWQgcGFyZW50LgorICAgIGZvciAoYXV0byogbGF5ZXIgPSByZW5kZXJl
cigpLT5lbmNsb3NpbmdMYXllcigpOyBsYXllciAmJiBsYXllci0+cGFyZW50KCk7IGxheWVyID0g
bGF5ZXItPnBhcmVudCgpKSB7CisgICAgICAgIGlmIChsYXllci0+aXNDb21wb3NpdGVkKCkpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvIHNjcm9sbGluZ05vZGVJRCA9IGxheWVyLT5iYWNraW5nKCkt
PnNjcm9sbGluZ05vZGVJREZvclJvbGUoU2Nyb2xsQ29vcmRpbmF0aW9uUm9sZTo6U2Nyb2xsaW5n
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsaW5nTm9kZUlEOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBjNWViNmNiOGM0NDhiMDk5YzVlMDEyNmFk
NWExZTdjNGU4ODQyYjg2Li44Yzg4NjYxMzlmNDlmYzhhODU0NDAyYzk3ZmQyMmFlODQzMjRkZDA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJLZXlmcmFt
ZUFuaW1hdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJTY3JvbGxUb09wdGlvbnMuaCIKICNpbmNs
dWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAj
aW5jbHVkZSAiU2hhZG93Um9vdE1vZGUuaCIKICNpbmNsdWRlICJTaW11bGF0ZWRDbGlja09wdGlv
bnMuaCIKICNpbmNsdWRlICJTdHlsZUNoYW5nZS5oIgpAQCAtNTYsNiArNTcsNyBAQCBjbGFzcyBQ
c2V1ZG9FbGVtZW50OwogY2xhc3MgUmVuZGVyVHJlZVBvc2l0aW9uOwogY2xhc3MgU3R5bGVQcm9w
ZXJ0eU1hcDsKIGNsYXNzIFdlYkFuaW1hdGlvbjsKK2VudW0gY2xhc3MgVG91Y2hBY3Rpb24gOiB1
aW50OF90Owogc3RydWN0IEVsZW1lbnRTdHlsZTsKIHN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlv
bnM7CiAKQEAgLTU4OCw2ICs1OTAsMTMgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxX
ZWJBbmltYXRpb24+PiBhbmltYXRlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpTdHJvbmc8SlNDOjpK
U09iamVjdD4mJiwgT3B0aW9uYWw8VmFyaWFudDxkb3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0
aW9ucz4+JiYpOwogICAgIFZlY3RvcjxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gZ2V0QW5pbWF0aW9u
cygpOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIE9wdGlvblNldDxUb3VjaEFj
dGlvbj4gY29tcHV0ZWRUb3VjaEFjdGlvbnMoKSBjb25zdDsKKyNpZiBFTkFCTEUoQUNDRUxFUkFU
RURfT1ZFUkZMT1dfU0NST0xMSU5HKQorICAgIFNjcm9sbGluZ05vZGVJRCBuZWFyZXN0U2Nyb2xs
aW5nTm9kZUlEVXNpbmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkgY29uc3Q7CisjZW5kaWYKKyNl
bmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmLCBDb25zdHJ1Y3Rpb25UeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGM0ZmFlZGQzZThm
NTQ4NWIzMDBiZjQzZDNhYTZmMWVhYjkzMDE1NDUuLjEzMGIyNjExMmE5MjBhN2RiNjBlMWRlZDQz
OGU4OWIyMzRhNmFhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl
ICJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2lu
Y2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgpAQCAtMTA3LDcgKzEwOCwyNSBAQCBFdmVudFRyYWNraW5nUmVn
aW9ucyBTY3JvbGxpbmdDb29yZGluYXRvcjo6YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0Zv
ckZyYW1lKAogICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKTsKICAgICBpZiAo
IWRvY3VtZW50KQogICAgICAgICByZXR1cm4gRXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsKLSAgICBy
ZXR1cm4gZG9jdW1lbnQtPmV2ZW50VHJhY2tpbmdSZWdpb25zKCk7CisgICAgYXV0byBldmVudFRy
YWNraW5nUmVnaW9ucyA9IGRvY3VtZW50LT5ldmVudFRyYWNraW5nUmVnaW9ucygpOworCisjaWYg
RU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnBvaW50ZXJFdmVudHNFbmFibGVkKCkpIHsKKyAgICAgICAgYXV0byYg
dG91Y2hBY3Rpb25EYXRhID0gZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhOwor
ICAgICAgICBmb3IgKGF1dG8mIG5vZGUgOiAqZnJhbWUuZG9jdW1lbnQoKS0+dG91Y2hBY3Rpb25F
bGVtZW50cygpKSB7CisgICAgICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KG5vZGUpKQorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgYXV0byYgZWxlbWVudCA9IGRvd25jYXN0
PEVsZW1lbnQ+KCpub2RlKTsKKyAgICAgICAgICAgIHRvdWNoQWN0aW9uRGF0YS5hcHBlbmQoewor
ICAgICAgICAgICAgICAgIGVsZW1lbnQuY29tcHV0ZWRUb3VjaEFjdGlvbnMoKSwKKyAgICAgICAg
ICAgICAgICBlbGVtZW50Lm5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dT
Y3JvbGxpbmcoKSwKKyAgICAgICAgICAgICAgICBub2RlLT5kb2N1bWVudCgpLmFic29sdXRlUmVn
aW9uRm9yTm9kZShub2RlKS5maXJzdAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9
CisjZW5kaWYKKworICAgIHJldHVybiBldmVudFRyYWNraW5nUmVnaW9uczsKICNlbHNlCiAgICAg
YXV0byogZnJhbWVWaWV3ID0gZnJhbWUudmlldygpOwogICAgIGlmICghZnJhbWVWaWV3KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmgKaW5kZXggYWM5NzZlM2JjYTIyNmFiNWI3NTBlYjYwMGIwNzc1OGM2MDk2MWIxZS4uZDRiYjVm
NTJkN2MxNzY3MTZhOWUyZGQ5MDVjZGFjM2RjYWZlMGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xs
U25hcE9mZnNldHNJbmZvLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRlICJT
Y3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNh
c3RzLmg+CkBAIC01MSwyNyArNTIsNiBAQCBjbGFzcyBUZXh0U3RyZWFtOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXR5cGVkZWYgdW5zaWduZWQgU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25z
OwotdHlwZWRlZiB1aW50NjRfdCBTY3JvbGxpbmdOb2RlSUQ7Ci0KLWVudW0gY2xhc3MgU2Nyb2xs
aW5nTm9kZVR5cGUgOiB1aW50OF90IHsKLSAgICBNYWluRnJhbWUsCi0gICAgU3ViZnJhbWUsCi0g
ICAgRnJhbWVIb3N0aW5nLAotICAgIE92ZXJmbG93LAotICAgIEZpeGVkLAotICAgIFN0aWNreQot
fTsKLQotZW51bSBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckZsYWdzIHsKLSAgICBT
Y3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCAgICAgICAgICAgICAgICAgID0g
MCwKLSAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVMYXllcklEcyAg
ICAgICAgID0gMSA8PCAwLAotICAgIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5j
bHVkZU5vZGVJRHMgICAgICAgICAgPSAxIDw8IDEsCi0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNU
ZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJQb3NpdGlvbnMgICA9IDEgPDwgMiwKLSAgICBTY3JvbGxp
bmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckRlYnVnICAgICAgICAgICAgICAgICAgID0gU2Nyb2xs
aW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJJRHMgfCBTY3JvbGxpbmdTdGF0
ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVOb2RlSURzIHwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNU
ZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJQb3NpdGlvbnMKLX07Ci10eXBlZGVmIHVuc2lnbmVkIFNj
cm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yOwotCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNz
IEZyYW1lOwogY2xhc3MgRnJhbWVWaWV3OwpAQCAtODYsNDIgKzY2LDYgQEAgY2xhc3MgVmlld3Bv
cnRDb25zdHJhaW50czsKIGNsYXNzIFNjcm9sbGluZ1RyZWU7CiAjZW5kaWYKIAotZW51bSBjbGFz
cyBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsKLSAgICBTZXQsCi0gICAgU2V0QXBwcm94
aW1hdGUsCi0gICAgU3luYwotfTsKLQotc3RydWN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyB7
Ci0gICAgU2Nyb2xsRWxhc3RpY2l0eSBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9s
bEVsYXN0aWNpdHlOb25lIH07Ci0gICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVs
YXN0aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwotCi0gICAgU2Nyb2xsYmFyTW9kZSBo
b3Jpem9udGFsU2Nyb2xsYmFyTW9kZSB7IFNjcm9sbGJhckF1dG8gfTsKLSAgICBTY3JvbGxiYXJN
b2RlIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSB7IFNjcm9sbGJhckF1dG8gfTsKLQotICAgIGJvb2wg
aGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9OwotICAgIGJvb2wgaGFzRW5h
YmxlZFZlcnRpY2FsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKLQotICAgIGJvb2wgdXNlRGFya0FwcGVh
cmFuY2VGb3JTY3JvbGxiYXJzIHsgZmFsc2UgfTsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAg
cmV0dXJuIGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5ID09IG90aGVyLmhvcml6b250YWxTY3Jv
bGxFbGFzdGljaXR5Ci0gICAgICAgICAgICAmJiB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPT0g
b3RoZXIudmVydGljYWxTY3JvbGxFbGFzdGljaXR5Ci0gICAgICAgICAgICAmJiBob3Jpem9udGFs
U2Nyb2xsYmFyTW9kZSA9PSBvdGhlci5ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZQotICAgICAgICAg
ICAgJiYgdmVydGljYWxTY3JvbGxiYXJNb2RlID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsYmFyTW9k
ZQotICAgICAgICAgICAgJiYgaGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgPT0gb3RoZXIu
aGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIKLSAgICAgICAgICAgICYmIGhhc0VuYWJsZWRW
ZXJ0aWNhbFNjcm9sbGJhciA9PSBvdGhlci5oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIKLSAg
ICAgICAgICAgICYmIHVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFycyA9PSBvdGhlci51c2VE
YXJrQXBwZWFyYW5jZUZvclNjcm9sbGJhcnM7Ci0gICAgfQotfTsKLQotZW51bSBjbGFzcyBWaWV3
cG9ydFJlY3RTdGFiaWxpdHkgewotICAgIFN0YWJsZSwKLSAgICBVbnN0YWJsZSwKLSAgICBDaGFu
Z2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSAvLyBUaGlzIGltcGxpZXMgVW5zdGFibGUu
Ci19OwotCiBjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxTY3JvbGxpbmdDb29yZGluYXRvcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8
U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZShQYWdlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTM3ZWJkMmZmY2M5YzhmZTQwMGMwY2VjNjdkNjAxNjk2NzkxNGIxNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yVHlwZXMuaApAQCAtMCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5
cGVkZWYgdW5zaWduZWQgU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zOwordHlwZWRlZiB1aW50
NjRfdCBTY3JvbGxpbmdOb2RlSUQ7CisKK2VudW0gY2xhc3MgU2Nyb2xsaW5nTm9kZVR5cGUgOiB1
aW50OF90IHsKKyAgICBNYWluRnJhbWUsCisgICAgU3ViZnJhbWUsCisgICAgRnJhbWVIb3N0aW5n
LAorICAgIE92ZXJmbG93LAorICAgIEZpeGVkLAorICAgIFN0aWNreQorfTsKKworZW51bSBTY3Jv
bGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckZsYWdzIHsKKyAgICBTY3JvbGxpbmdTdGF0ZVRy
ZWVBc1RleHRCZWhhdmlvck5vcm1hbCAgICAgICAgICAgICAgICAgID0gMCwKKyAgICBTY3JvbGxp
bmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVMYXllcklEcyAgICAgICAgID0gMSA8PCAw
LAorICAgIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZU5vZGVJRHMgICAg
ICAgICAgPSAxIDw8IDEsCisgICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNs
dWRlTGF5ZXJQb3NpdGlvbnMgICA9IDEgPDwgMiwKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1Rl
eHRCZWhhdmlvckRlYnVnICAgICAgICAgICAgICAgICAgID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNU
ZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJJRHMgfCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhh
dmlvckluY2x1ZGVOb2RlSURzIHwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNs
dWRlTGF5ZXJQb3NpdGlvbnMKK307Cit0eXBlZGVmIHVuc2lnbmVkIFNjcm9sbGluZ1N0YXRlVHJl
ZUFzVGV4dEJlaGF2aW9yOworCitlbnVtIGNsYXNzIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rp
b24geworICAgIFNldCwKKyAgICBTZXRBcHByb3hpbWF0ZSwKKyAgICBTeW5jCit9OworCitzdHJ1
Y3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzIHsKKyAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6
b250YWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKKyAgICBTY3Jv
bGxFbGFzdGljaXR5IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlO
b25lIH07CisKKyAgICBTY3JvbGxiYXJNb2RlIGhvcml6b250YWxTY3JvbGxiYXJNb2RlIHsgU2Ny
b2xsYmFyQXV0byB9OworICAgIFNjcm9sbGJhck1vZGUgdmVydGljYWxTY3JvbGxiYXJNb2RlIHsg
U2Nyb2xsYmFyQXV0byB9OworCisgICAgYm9vbCBoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJh
ciB7IGZhbHNlIH07CisgICAgYm9vbCBoYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIgeyBmYWxz
ZSB9OworCisgICAgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZUZvclNjcm9sbGJhcnMgeyBmYWxzZSB9
OworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyYg
b3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbEVsYXN0
aWNpdHkgPT0gb3RoZXIuaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkKKyAgICAgICAgICAgICYm
IHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eSA9PSBvdGhlci52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNp
dHkKKyAgICAgICAgICAgICYmIGhvcml6b250YWxTY3JvbGxiYXJNb2RlID09IG90aGVyLmhvcml6
b250YWxTY3JvbGxiYXJNb2RlCisgICAgICAgICAgICAmJiB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUg
PT0gb3RoZXIudmVydGljYWxTY3JvbGxiYXJNb2RlCisgICAgICAgICAgICAmJiBoYXNFbmFibGVk
SG9yaXpvbnRhbFNjcm9sbGJhciA9PSBvdGhlci5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJh
cgorICAgICAgICAgICAgJiYgaGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFyID09IG90aGVyLmhh
c0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhcgorICAgICAgICAgICAgJiYgdXNlRGFya0FwcGVhcmFu
Y2VGb3JTY3JvbGxiYXJzID09IG90aGVyLnVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFyczsK
KyAgICB9Cit9OworCitlbnVtIGNsYXNzIFZpZXdwb3J0UmVjdFN0YWJpbGl0eSB7CisgICAgU3Rh
YmxlLAorICAgIFVuc3RhYmxlLAorICAgIENoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2
ZWx5IC8vIFRoaXMgaW1wbGllcyBVbnN0YWJsZS4KK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNTI0MzkzZGQxNmFhNjM3
ZmYxNjFkNjc1YjgwZmZkOTRlN2FhMTUwMC4uNmY3M2UwYTk4ZjYxZmJhMjc3NDRhYWNhNmViNGEx
YTkxN2M0MjA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKQEAgLTQwMyw2ICs0MDMsMjUgQEAgU3RyaW5nIFNjcm9sbGluZ1RyZWU6OnNj
cm9sbGluZ1RyZWVBc1RleHQoKQogICAgIHJldHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKKyNpZiBF
TkFCTEUoUE9JTlRFUl9FVkVOVFMpCitPcHRpb25hbDxUb3VjaEFjdGlvbkRhdGE+IFNjcm9sbGlu
Z1RyZWU6OnRvdWNoQWN0aW9uRGF0YUF0UG9pbnQoY29uc3QgSW50UG9pbnQgcCkgY29uc3QKK3sK
KyAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlcmUg
YXJlIG11bHRpcGxlIHJlZ2lvbnMgbWF0Y2hpbmcgdGhpcyBwb2ludC4KKyAgICBmb3IgKGF1dG8m
IHRvdWNoQWN0aW9uRGF0YSA6IG1fZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRh
KSB7CisgICAgICAgIGlmICh0b3VjaEFjdGlvbkRhdGEucmVnaW9uLmNvbnRhaW5zKHApKQorICAg
ICAgICAgICAgcmV0dXJuIHRvdWNoQWN0aW9uRGF0YTsKKyAgICB9CisKKyAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworfQorCit2b2lkIFNjcm9sbGluZ1RyZWU6OnNldFRvdWNoQWN0aW9uc0ZvclNj
cm9sbGluZ05vZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xs
aW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBpZiAoYXV0byogc2Nyb2xsaW5nVHJl
ZU5vZGUgPSBub2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAgc2Nyb2xsaW5nVHJl
ZU5vZGUtPnNldFRvdWNoQWN0aW9ucyh0b3VjaEFjdGlvbnMpOworfQorI2VuZGlmCisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggZWZj
Njg0MTVjMzk0MzBkZjdmMjcwNDNmZTk4MjMzMjc3NTU2NzYzMi4uOGU3ODZiNjI1OWE4YmI4M2Fj
MDY1MzIzMWY3MjdmYmRlMzM0YTNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3Jt
V2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nv
b3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKICNpbmNsdWRlICJXaGVlbEV2
ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CkBAIC0xMDQsNyArMTA1LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgVHJhY2tpbmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudE5hbWUsIEludFBvaW50KTsKLSAgICAKKyNpZiBFTkFCTEUoUE9J
TlRFUl9FVkVOVFMpCisgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VG91Y2hBY3Rpb25EYXRh
PiB0b3VjaEFjdGlvbkRhdGFBdFBvaW50KGNvbnN0IEludFBvaW50KSBjb25zdDsKKyNlbmRpZgor
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhh
c2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0
aXZlU2Nyb2xsU25hcEluZGljZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCAvKmhvcml6b250
YWxJbmRleCovLCB1bnNpZ25lZCAvKnZlcnRpY2FsSW5kZXgqLykgeyB9CkBAIC0xNTEsNiArMTU1
LDkgQEAgcHVibGljOgogICAgIH0KICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Ny
b2xsaW5nVHJlZUFzVGV4dCgpOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25T
ZXQ8VG91Y2hBY3Rpb24+LCBTY3JvbGxpbmdOb2RlSUQpOworI2VuZGlmCiAgICAgCiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBzZXRNYWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmlu
ZGV4IDJmNDQxNWFjODg1MjY2OWM3MzBkMjhhNjU3NTExMzFlNWJhMmM5OTMuLmFmNjMwYjEyOTcz
ZGZmYmFhZjZmYWUzZjBhMzgzOWI5ZmY1M2M0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIK
ICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZU5vZGUuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5o
IgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5o
PgogCkBAIC03MSw2ICs3MiwxMSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGR1bXAoV1RGOjpUZXh0U3RyZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3Ip
IGNvbnN0OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIE9wdGlvblNldDxUb3Vj
aEFjdGlvbj4gdG91Y2hBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbnM7IH0K
KyAgICB2b2lkIHNldFRvdWNoQWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0
aW9ucykgeyBtX3RvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsgfQorI2VuZGlmCisKIHByb3Rl
Y3RlZDoKICAgICBTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAgICAgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJl
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZTsgfQpAQCAtODYsNiArOTIsOSBAQCBw
cml2YXRlOgogICAgIGNvbnN0IFNjcm9sbGluZ05vZGVJRCBtX25vZGVJRDsKIAogICAgIFNjcm9s
bGluZ1RyZWVOb2RlKiBtX3BhcmVudDsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAg
T3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBtX3RvdWNoQWN0aW9uczsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRU
cmFja2luZ1JlZ2lvbnMuY3BwCmluZGV4IDdlNzYzYzg5NTNkY2E4ZTZkZDdjYWNhZDYyNTI0MDdj
NzBjNWY4NjMuLjQzNzc4MDA5ODUyOGJlZDEwOTYyZjQ4NjIwNzFiMjg2NzEwMTA5NDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKQEAg
LTczLDcgKzczLDE5IEBAIHZvaWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnVuaXRlKGNvbnN0IEV2
ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9uCiBib29sIG9wZXJhdG9yPT0o
Y29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGEsIGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25z
JiBiKQogewogICAgIHJldHVybiBhLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID09IGIuYXN5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24KKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAg
ICAgICYmIGEudG91Y2hBY3Rpb25EYXRhID09IGIudG91Y2hBY3Rpb25EYXRhCisjZW5kaWYKICAg
ICAgICAgJiYgYS5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5l
dmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiB9CiAKKyNpZiBFTkFCTEUo
UE9JTlRFUl9FVkVOVFMpCitib29sIG9wZXJhdG9yPT0oY29uc3QgVG91Y2hBY3Rpb25EYXRhJiBh
LCBjb25zdCBUb3VjaEFjdGlvbkRhdGEmIGIpCit7CisgICAgcmV0dXJuIGEudG91Y2hBY3Rpb25z
ID09IGIudG91Y2hBY3Rpb25zCisgICAgICAgICYmIGEuc2Nyb2xsaW5nTm9kZUlEID09IGIuc2Ny
b2xsaW5nTm9kZUlECisgICAgICAgICYmIGEucmVnaW9uID09IGIucmVnaW9uOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9F
dmVudFRyYWNraW5nUmVnaW9ucy5oCmluZGV4IDNkNThiYTU1ZWZkNjNlZDliYWU0MDUwMWUzMDli
ODYxZmM5ZTljMDUuLmMyYTIwNjMwMWFmMTdkYzE2Y2U4ZmQ3OWVlNTNiY2JmMWNhMTI2ZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaApAQCAt
MzAsNiArMzAsMTIgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisj
aW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIgorI2luY2x1ZGUgIlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHlwZXMuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBjbGFzcyBUcmFja2luZ1R5cGUgOiB1aW50OF90
IHsKQEAgLTM4LDYgKzQ0LDE4IEBAIGVudW0gY2xhc3MgVHJhY2tpbmdUeXBlIDogdWludDhfdCB7
CiAgICAgU3luY2hyb25vdXMgPSAyCiB9OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQor
dHlwZWRlZiB1aW50NjRfdCBTY3JvbGxpbmdOb2RlSUQ7CitzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRh
IHsKKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucyB7IFRvdWNoQWN0aW9u
OjpBdXRvIH07CisgICAgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRDsKKyAgICBSZWdp
b24gcmVnaW9uOworfTsKKworYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYs
IGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYpOworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBU
b3VjaEFjdGlvbkRhdGEmIGEsIGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYgYikgeyByZXR1cm4gIShh
ID09IGIpOyB9CisjZW5kaWYKKwogc3RydWN0IEV2ZW50VHJhY2tpbmdSZWdpb25zIHsKICAgICAv
LyBSZWdpb24gZm9yIHdoaWNoIGV2ZW50cyBjYW4gYmUgZGlzcGF0Y2hlZCB3aXRob3V0IGJsb2Nr
aW5nIHNjcm9sbGluZy4KICAgICBSZWdpb24gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CkBA
IC00Niw2ICs2NCwxMCBAQCBzdHJ1Y3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMgewogICAgIC8vIFRo
ZSBrZXkgaXMgdGhlIEV2ZW50IE5hbWUgd2l0aCBhbiBhY3RpdmUgaGFuZGxlci4KICAgICBIYXNo
TWFwPFN0cmluZywgUmVnaW9uPiBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lv
bnM7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgVmVjdG9yPFRvdWNoQWN0aW9u
RGF0YT4gdG91Y2hBY3Rpb25EYXRhOworI2VuZGlmCisKICAgICBib29sIGlzRW1wdHkoKSBjb25z
dDsKIAogICAgIHZvaWQgdHJhbnNsYXRlKEludFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IDFiMTM0ZGZlYTNhMjUwZTUyY2ZkODY0YzhiYjE1
NzNjYjg1NGMyMWYuLmE2MTc3ZjkyYTc3ZGZmMDI5NGUxZmY5N2ZhMjE1MTE1YWJmMzRhY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKQEAgLTIzNiw2ICsy
MzYsMTEgQEAgRWxlbWVudFVwZGF0ZXMgVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudChFbGVt
ZW50JiBlbGVtZW50KQogICAgIGF1dG8gYmVmb3JlVXBkYXRlID0gcmVzb2x2ZVBzZXVkb1N0eWxl
KGVsZW1lbnQsIHVwZGF0ZSwgUHNldWRvSWQ6OkJlZm9yZSk7CiAgICAgYXV0byBhZnRlclVwZGF0
ZSA9IHJlc29sdmVQc2V1ZG9TdHlsZShlbGVtZW50LCB1cGRhdGUsIFBzZXVkb0lkOjpBZnRlcik7
CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucG9pbnRlckV2ZW50c0VuYWJsZWQoKSkKKyAgICAgICAg
bV9kb2N1bWVudC51cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKGVsZW1lbnQsIHVwZGF0ZS5zdHls
ZS5nZXQoKSk7CisjZW5kaWYKKwogICAgIHJldHVybiB7IFdURk1vdmUodXBkYXRlKSwgZGVzY2Vu
ZGFudHNUb1Jlc29sdmUsIFdURk1vdmUoYmVmb3JlVXBkYXRlKSwgV1RGTW92ZShhZnRlclVwZGF0
ZSkgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKaW5kZXggM2IwNTI5YTRhOTU5YTIzYmQ1ZDA0MGY1ZmEwMDhhZDdiMGZlYzcxZi4uNTRk
MTk5ZTI1ZDg0YjI1MTgzZmQ5YmY5ZjAyY2I5NWI1YWM4Y2E3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zMjksMTAgKzMyOSw0MCBA
QCBPcHRpb25hbDxET01DYWNoZUVuZ2luZTo6UmVjb3JkPiBBcmd1bWVudENvZGVyPERPTUNhY2hl
RW5naW5lOjpSZWNvcmQ+OjpkZWNvZGUoRAogICAgIHJldHVybiB7eyBXVEZNb3ZlKGlkZW50aWZp
ZXIpLCBXVEZNb3ZlKHVwZGF0ZVJlc3BvbnNlQ291bnRlciksIFdURk1vdmUocmVxdWVzdEhlYWRl
cnNHdWFyZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucy52YWx1ZSgpKSwgV1RG
TW92ZShyZWZlcnJlciksIFdURk1vdmUocmVzcG9uc2VIZWFkZXJzR3VhcmQpLCBXVEZNb3ZlKHJl
c3BvbnNlKSwgV1RGTW92ZShyZXNwb25zZUJvZHkpLCByZXNwb25zZUJvZHlTaXplIH19OwogfQog
CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQordm9pZCBBcmd1bWVudENvZGVyPFRvdWNoQWN0
aW9uRGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUb3VjaEFjdGlvbkRhdGEm
IHRvdWNoQWN0aW9uRGF0YSkKK3sKKyAgICBlbmNvZGVyIDw8IHRvdWNoQWN0aW9uRGF0YS50b3Vj
aEFjdGlvbnMgPDwgdG91Y2hBY3Rpb25EYXRhLnNjcm9sbGluZ05vZGVJRCA8PCB0b3VjaEFjdGlv
bkRhdGEucmVnaW9uOworfQorCitPcHRpb25hbDxUb3VjaEFjdGlvbkRhdGE+IEFyZ3VtZW50Q29k
ZXI8VG91Y2hBY3Rpb25EYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0
aW9uYWw8T3B0aW9uU2V0PFRvdWNoQWN0aW9uPj4gdG91Y2hBY3Rpb25zOworICAgIGRlY29kZXIg
Pj4gdG91Y2hBY3Rpb25zOworICAgIGlmICghdG91Y2hBY3Rpb25zKQorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U2Nyb2xsaW5nTm9kZUlEPiBzY3JvbGxpbmdO
b2RlSUQ7CisgICAgZGVjb2RlciA+PiBzY3JvbGxpbmdOb2RlSUQ7CisgICAgaWYgKCFzY3JvbGxp
bmdOb2RlSUQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxS
ZWdpb24+IHJlZ2lvbjsKKyAgICBkZWNvZGVyID4+IHJlZ2lvbjsKKyAgICBpZiAoIXJlZ2lvbikK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyBXVEZNb3ZlKCp0
b3VjaEFjdGlvbnMpLCBXVEZNb3ZlKCpzY3JvbGxpbmdOb2RlSUQpLCBXVEZNb3ZlKCpyZWdpb24p
IH19OworfQorI2VuZGlmCisKIHZvaWQgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9u
cz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYg
ZXZlbnRUcmFja2luZ1JlZ2lvbnMpCiB7CiAgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVn
aW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJh
Y2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVn
aW9ucy50b3VjaEFjdGlvbkRhdGE7CisjZW5kaWYKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPEV2
ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEV2ZW50VHJhY2tp
bmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9ucykKQEAgLTM0Myw4ICszNzMsMTYgQEAgYm9v
bCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIEV2ZW50VHJhY2tpbmcKICAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVudFNw
ZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIFZlY3RvcjxUb3VjaEFj
dGlvbkRhdGE+IHRvdWNoQWN0aW9uRGF0YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRvdWNo
QWN0aW9uRGF0YSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogICAgIGV2ZW50VHJh
Y2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID0gV1RGTW92ZShhc3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbik7CiAgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVj
aWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zID0gV1RGTW92ZShldmVudFNwZWNpZmljU3lu
Y2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAg
ICBldmVudFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvbkRhdGEgPSBXVEZNb3ZlKHRvdWNoQWN0
aW9uRGF0YSk7CisjZW5kaWYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTE1LDYgKzk1Mywx
NSBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVnaW9uPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFJlZ2lvbiYgcmVnaW9uKQogICAgIHJldHVybiB0cnVlOwogfQogCitPcHRpb25hbDxSZWdpb24+
IEFyZ3VtZW50Q29kZXI8UmVnaW9uPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAg
UmVnaW9uIHJlZ2lvbjsKKyAgICBpZiAoIWRlY29kZShkZWNvZGVyLCByZWdpb24pKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJlZ2lvbjsKK30KKwogdm9pZCBB
cmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMZW5n
dGgmIGxlbmd0aCkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShl
bmNvZGVyLCBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAppbmRleCAzYWU3ZTQ3NWQ4MzM2ZWZjMjdkY2YyYzUxZjcyMmNjMmRiOTg0NWE2Li4y
ZWY1ZTQzYWRiNDg5NTE4MTljOWE3MTNkNjllMDEzZDIwZGQ2ZTliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMTIxLDYgKzEyMSw5IEBAIHN0
cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwogc3RydWN0IFNjcm9sbGFibGVBcmVhUGFyYW1l
dGVyczsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiBzdHJ1Y3QgVGV4dEluZGljYXRvckRh
dGE7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsK
KyNlbmRpZgogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJl
czsKICAgICAKQEAgLTE5OSw2ICsyMDIsMTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiB7CiAgICAgc3RhdGljIE9wdGlv
bmFsPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmQ+IGRlY29kZShEZWNvZGVyJik7CiB9
OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpUb3VjaEFjdGlvbkRhdGE+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRvdWNoQWN0aW9uRGF0YSYpOworICAgIHN0YXRp
YyBPcHRpb25hbDxXZWJDb3JlOjpUb3VjaEFjdGlvbkRhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9
OworI2VuZGlmCisKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RXZl
bnRUcmFja2luZ1JlZ2lvbnM+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zJik7CiAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9ucyYpOwpAQCAtMzE2LDYg
KzMyNiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF0aD4g
ewogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpSZWdpb24+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpOwog
ICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UmVnaW9uJik7CisgICAg
c3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lvbj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAK
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6TGVuZ3RoPiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA1Zjc1
NGFhNTVmODZkNDAxY2Q3NmJlZTY1Y2Q5NTRkZGQ3NjFmODc2Li40MGFiMzY3ZTFiOTY0YTk0N2Q3
ZWEwMzNlNTcyYmNiYTNiMDgyYmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI1ODEsNiArMjU4MSwxNCBAQCAtICh2b2lkKXNjcm9s
bFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9j
aXR5OihDR1BvaQogICAgIC8vIHpvb21pbmcuIFdlJ2xsIGFuaW1hdGUgdG8gdGhlIHJpZ2h0IHBs
YWNlIG9uY2UgdGhlIHpvb20gZmluaXNoZXMuCiAgICAgaWYgKFtzY3JvbGxWaWV3IGlzWm9vbWlu
Z10pCiAgICAgICAgICp0YXJnZXRDb250ZW50T2Zmc2V0ID0gW3Njcm9sbFZpZXcgY29udGVudE9m
ZnNldF07CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGVsc2UgeworICAgICAgICBp
ZiAoW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzXSkKKyAgICAgICAgICAgIHRh
cmdldENvbnRlbnRPZmZzZXQtPnggPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueDsKKyAgICAg
ICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgICAg
ICB0YXJnZXRDb250ZW50T2Zmc2V0LT55ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lnk7Cisg
ICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgJiYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKICAgICBpZiAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkpIHsK
ICAgICAgICAgLy8gRklYTUU6IEhlcmUsIEknbSBmaW5kaW5nIHRoZSBtYXhpbXVtIGhvcml6b250
YWwvdmVydGljYWwgc2Nyb2xsIG9mZnNldHMuIFRoZXJlJ3MgcHJvYmFibHkgYSBiZXR0ZXIgd2F5
IHRvIGRvIHRoaXMuCkBAIC0yNjE4LDYgKzI2MjYsMjAgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlk
U2Nyb2xsVG9Ub3A6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcKICAgICBbc2VsZiBfZGlkRmlu
aXNoU2Nyb2xsaW5nXTsKIH0KIAorLSAoQ0dQb2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3
ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQgdHJh
bnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRpb24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFydCBs
b2NhdGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbkluVmlldyBob3Jpem9udGFsVmVsb2NpdHk6
KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7
CisgICAgaWYgKCFbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdICYmICFbX2Nv
bnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKQorICAgICAgICByZXR1cm4gb2Zmc2V0
OworCisgICAgQ0dQb2ludCBhZGp1c3RlZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShvZmZz
ZXQueCwgb2Zmc2V0LnkpOworICAgIGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0lu
WEF4aXNdKQorICAgICAgICBhZGp1c3RlZENvbnRlbnRPZmZzZXQueCA9IHN0YXJ0Lng7CisgICAg
aWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgIGFkanVz
dGVkQ29udGVudE9mZnNldC55ID0gc3RhcnQueTsKKworICAgIHJldHVybiBhZGp1c3RlZENvbnRl
bnRPZmZzZXQ7Cit9CisKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZFNjcm9sbDooVUlTY3JvbGxWaWV3
ICopc2Nyb2xsVmlldwogewogICAgIGlmICghW3NlbGYgdXNlc1N0YW5kYXJkQ29udGVudFZpZXdd
ICYmIFtfY3VzdG9tQ29udGVudFZpZXcgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJf
c2Nyb2xsVmlld0RpZFNjcm9sbDopXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5LmNwcAppbmRleCBhOTU5YzkzYmM3NTlkMWM5ODY2OGM4MWRhZGEwMWUy
NjdmMzViOWIxLi5hOGM2ZjdjMzVhZWNjYjkzODBmOTE0YzE5YTRlMzM3ZGExNWFmOGZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0y
MDYsNiArMjA2LDE4IEBAIFN0cmluZyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpz
Y3JvbGxpbmdUcmVlQXNUZXh0KCkgY29uc3QKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0K
IAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK09wdGlvbmFsPFRvdWNoQWN0aW9uRGF0YT4g
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludChJ
bnRQb2ludCBwKSBjb25zdAoreworICAgIHJldHVybiBtX3Njcm9sbGluZ1RyZWUtPnRvdWNoQWN0
aW9uRGF0YUF0UG9pbnQocCk7Cit9CisKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKE9wdGlvblNldDxUb3VjaEFj
dGlvbj4gdG91Y2hBY3Rpb25zLCBTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEKQorewor
ICAgIG1fc2Nyb2xsaW5nVHJlZS0+c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKHRv
dWNoQWN0aW9ucywgc2Nyb2xsaW5nTm9kZUlEKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRleCBiMzJkNzlmZTkyODli
MTQ1N2M4ZWFkMmQ4ZDM1YzNiNzlkYWVjOTZhLi5jMGIwMmMxOWUzMDJlOTUyYWYxYTk5ZjIyNmRl
NWNiZmQyOGJkYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LmgKQEAgLTk4LDYgKzk4LDExIEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBzY3JvbGxp
bmdUcmVlQXNUZXh0KCkgY29uc3Q7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAg
T3B0aW9uYWw8V2ViQ29yZTo6VG91Y2hBY3Rpb25EYXRhPiB0b3VjaEFjdGlvbkRhdGFBdFBvaW50
KFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKKyAgICB2b2lkIHNldFRvdWNoQWN0aW9uc0ZvclNj
cm9sbGluZ05vZGVJRChPcHRpb25TZXQ8V2ViQ29yZTo6VG91Y2hBY3Rpb24+LCBXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlSUQpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBjb25uZWN0U3Rh
dGVOb2RlTGF5ZXJzKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZSYsIGNvbnN0IFJlbW90ZUxh
eWVyVHJlZUhvc3QmKTsKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1t
CmluZGV4IDRjYzdlMWE4N2I4NWFjNzA2MzdlMTVmNDRjYzFlNGY4ZjkyMTljNGMuLmM5ZTZkMTIy
MTQyNDY4MzQ5YjI3Y2FiNmEzM2Y2MTUzZWFmNWI2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTY3
LDkgKzY3LDI3IEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxCZWdpbkRyYWdnaW5nOihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3CiAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9s
bFdpbGxTdGFydCgpOwogfQogCi0jaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKIC0gKHZvaWQp
c2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRo
VmVsb2NpdHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDooaW5vdXQgQ0dQ
b2ludCAqKXRhcmdldENvbnRlbnRPZmZzZXQKIHsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMp
CisgICAgaWYgKCFbc2Nyb2xsVmlldyBpc1pvb21pbmddKSB7CisgICAgICAgIGF1dG8gdG91Y2hB
Y3Rpb25zID0gX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS50b3Vj
aEFjdGlvbnMoKTsKKyAgICAgICAgaWYgKHRvdWNoQWN0aW9ucyAhPSBXZWJDb3JlOjpUb3VjaEFj
dGlvbjo6QXV0byAmJiB0b3VjaEFjdGlvbnMgIT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok1hbmlw
dWxhdGlvbikgeworICAgICAgICAgICAgYm9vbCBjYW5QYW5YID0gdHJ1ZTsKKyAgICAgICAgICAg
IGJvb2wgY2FuUGFuWSA9IHRydWU7CisgICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250
YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWCkpIHsKKyAgICAgICAgICAgICAgICBjYW5Q
YW5YID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eCA9IHNj
cm9sbFZpZXcuY29udGVudE9mZnNldC54OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KCF0b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblkpKSB7Cisg
ICAgICAgICAgICAgICAgY2FuUGFuWSA9IGZhbHNlOworICAgICAgICAgICAgICAgIHRhcmdldENv
bnRlbnRPZmZzZXQtPnkgPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05B
UCkKICAgICBDR0Zsb2F0IGhvcml6b250YWxUYXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT54
OwogICAgIENHRmxvYXQgdmVydGljYWxUYXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT55Owog
CkBAIC05Niw4ICsxMTQsOCBAQCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJ
U2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9jaXR5OihDR1BvaQogICAgICAgICB8fCBv
cmlnaW5hbFZlcnRpY2FsU25hcFBvc2l0aW9uICE9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRl
LT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXgoKSkgewogICAg
ICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+Y3VycmVudFNuYXBQb2ludEluZGljZXNE
aWRDaGFuZ2UoX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5jdXJy
ZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4KCksIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRl
LT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudFZlcnRpY2FsU25hcFBvaW50SW5kZXgoKSk7CiAgICAg
fQotfQogI2VuZGlmCit9CiAKIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihVSVNj
cm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxEZWNlbGVyYXRlOihCT09MKXdpbGxEZWNlbGVyYXRl
CiB7CkBAIC0xMDUsNiArMTIzLDkgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6
KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2lsbERlY2VsZXJhdGU6KEJPT0wKICAgICAgICAg
X2luVXNlckludGVyYWN0aW9uID0gTk87CiAgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVn
YXRlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNjcm9sbFZpZXcuY29udGVudE9mZnNldCwgX2luVXNl
ckludGVyYWN0aW9uKTsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9s
bERpZEVuZCgpOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICAgICAgX3Njcm9sbGlu
Z1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5zZXRUb3VjaEFjdGlvbnMoV2ViQ29y
ZTo6VG91Y2hBY3Rpb246OkF1dG8pOworI2VuZGlmCiAgICAgfQogfQogCkBAIC0xMTQsOSArMTM1
LDMwIEBAIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3
ICopc2Nyb2xsVmlldwogICAgICAgICBfaW5Vc2VySW50ZXJhY3Rpb24gPSBOTzsKICAgICAgICAg
X3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmll
dy5jb250ZW50T2Zmc2V0LCBfaW5Vc2VySW50ZXJhY3Rpb24pOwogICAgICAgICBfc2Nyb2xsaW5n
VHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsRGlkRW5kKCk7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQorICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgp
LnNldFRvdWNoQWN0aW9ucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6QXV0byk7CisjZW5kaWYKICAg
ICB9CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCistIChDR1BvaW50KV9zY3JvbGxW
aWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihD
R1BvaW50KW9mZnNldCB0cmFuc2xhdGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50
OihDR1BvaW50KXN0YXJ0IGxvY2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhv
cml6b250YWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5v
dXQgZG91YmxlICopdnYKK3sKKyAgICBhdXRvIHRvdWNoQWN0aW9ucyA9IF9zY3JvbGxpbmdUcmVl
Tm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkudG91Y2hBY3Rpb25zKCk7CisgICAgaWYgKHRv
dWNoQWN0aW9ucyA9PSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6QXV0byB8fCB0b3VjaEFjdGlvbnMg
PT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikKKyAgICAgICAgcmV0dXJuIG9m
ZnNldDsKKworICAgIENHUG9pbnQgYWRqdXN0ZWRDb250ZW50T2Zmc2V0ID0gQ0dQb2ludE1ha2Uo
b2Zmc2V0LngsIG9mZnNldC55KTsKKworICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdl
YkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5YKSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0
LnggPSBzdGFydC54OworICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRv
dWNoQWN0aW9uOjpQYW5ZKSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFy
dC55OworCisgICAgcmV0dXJuIGFkanVzdGVkQ29udGVudE9mZnNldDsKK30KKyNlbmRpZgorCiBA
ZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCBhZDdkN2RjOTI4MmUzNTdmMzBlZjI0ZTI4OWExMTNkYTYzMjAxZDkyLi40MGRj
MzA5NDBhMWQxZDkzYWY1ZDJiMzMxZDJjYmUyYWJkNGU0YzNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjg0LDYgKzY4NCw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xp
ZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbik7CiAg
ICAgdm9pZCByZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xv
YmFsUG9zaXRpb24pOwogICAgIHZvaWQgZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uKE9w
dGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhPik7CisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQorICAgIGJvb2wgaXNTY3JvbGxpbmdPclpvb21pbmcoKSBjb25zdCB7IHJldHVybiBt
X2lzU2Nyb2xsaW5nT3Jab29taW5nOyB9CisjZW5kaWYKICNlbmRpZgogI2VuZGlmCiAjaWYgRU5B
QkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IGQ1MDhhM2U0YmE3Y2Q3YWM4MjE4
NmU2OWE2YzI3NWE1YTBjODQzN2UuLjVkOWViNjk2YTY5NDA2NTAyNTgzYjQ5ZWVlMTQ5MjRjZWRi
MGFjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTE5Niw2ICsxOTYsMTAgQEAgc3RydWN0IFdLQXV0b0Nv
cnJlY3Rpb25EYXRhIHsKICAgICBSZXRhaW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNv
Z25pemVyPiBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyOwogCiAgICAgQk9PTCBfY2FuU2Vu
ZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHk7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQor
ICAgIEJPT0wgX3ByZXZlbnRzUGFubmluZ0luWEF4aXM7CisgICAgQk9PTCBfcHJldmVudHNQYW5u
aW5nSW5ZQXhpczsKKyNlbmRpZgogCiAgICAgUmV0YWluUHRyPFdLU3ludGhldGljQ2xpY2tUYXBH
ZXN0dXJlUmVjb2duaXplcj4gX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyOwogICAgIFJldGFp
blB0cjxfVUlXZWJIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcj4gX2hpZ2hsaWdo
dExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyOwpAQCAtMzQ5LDYgKzM1MywxMCBAQCBzdHJ1Y3Qg
V0tBdXRvQ29ycmVjdGlvbkRhdGEgewogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBj
b25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGZvY3VzZWRFbGVtZW50SW5m
b3JtYXRpb247CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJV2ViRm9ybUFjY2Vz
c29yeSAqZm9ybUFjY2Vzc29yeVZpZXc7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IFVJVGV4dElucHV0QXNzaXN0YW50SXRlbSAqaW5wdXRBc3Npc3RhbnRJdGVtRm9yV2ViVmlldzsK
KyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIEJPT0wgcHJldmVudHNQYW5uaW5nSW5YQXhpczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzOworI2VuZGlmCiAKICNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFVJVmll
dyA8V0tGb3JtQ29udHJvbD4gKmRhdGFMaXN0VGV4dFN1Z2dlc3Rpb25zSW5wdXRWaWV3OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KaW5kZXggYjI4ZjE3N2NhMTQ4NWY3NWUxNGNjY2YxNTgyODRjMjk2MmI0Yjc5MS4u
NTgzOGQyMDUxZTg3ZTAxNWI0YjRhYjQzMTllMTFjNGRlNzY4ZGZjNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CkBAIC0xMjksNiArMTI5LDExIEBACiAjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tQbGF0Zm9y
bUZpbGVVcGxvYWRQYW5lbC5tbT4KICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQorI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIgorI2ltcG9ydCA8
V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShXQVRDSE9TKQog
CiBAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKFdhdGNoU3VwcG9ydCkgPFdLRm9jdXNlZEZvcm1D
b250cm9sVmlld0RlbGVnYXRlLCBXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXJEZWxlZ2F0
ZSwgV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4KQEAgLTYwOCw2ICs2MTMs
MTggQEAgc3RhdGljIGlubGluZSBib29sIGhhc0ZvY3VzZWRFbGVtZW50KFdlYktpdDo6Rm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbiBmb2N1c2VkRWwKICAgICByZXR1cm4gKGZvY3VzZWRFbGVtZW50
SW5mb3JtYXRpb24uZWxlbWVudFR5cGUgIT0gV2ViS2l0OjpJbnB1dFR5cGU6Ok5vbmUpOwogfQog
CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorLSAoQk9PTClwcmV2ZW50c1Bhbm5pbmdJblhB
eGlzCit7CisgICAgcmV0dXJuIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzOworfQorCistIChCT09M
KXByZXZlbnRzUGFubmluZ0luWUF4aXMKK3sKKyAgICByZXR1cm4gX3ByZXZlbnRzUGFubmluZ0lu
WUF4aXM7Cit9CisjZW5kaWYKKwogLSAoV0tGb3JtSW5wdXRTZXNzaW9uICopX2Zvcm1JbnB1dFNl
c3Npb24KIHsKICAgICByZXR1cm4gX2Zvcm1JbnB1dFNlc3Npb24uZ2V0KCk7CkBAIC04NTQsNiAr
ODcxLDEwIEBAIC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAgICAgX2hhc1NldFVwSW50ZXJh
Y3Rpb25zID0gTk87CiAgICAgX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucyA9IHsg
fTsKICAgICBfaXNab29taW5nVG9SZXZlYWxGb2N1c2VkRWxlbWVudCA9IE5POworCisjaWYgRU5B
QkxFKFBPSU5URVJfRVZFTlRTKQorICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxh
Z3NdOworI2VuZGlmCiB9CiAKIC0gKHZvaWQpX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXpl
cnMKQEAgLTExMjEsMTYgKzExNDIsNTQgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25p
emVkOihVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKICAgICBX
ZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQgbmF0aXZlV2ViVG91Y2hFdmVudChsYXN0VG91Y2hF
dmVudCk7CiAgICAgbmF0aXZlV2ViVG91Y2hFdmVudC5zZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVy
ZXMoIV9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSB8fCBbZ2VzdHVyZVJlY29nbml6
ZXIgaXNEZWZhdWx0UHJldmVudGVkXSk7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisg
ICAgaWYgKGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkoKSkgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHRvdWNoUG9pbnQgOiBu
YXRpdmVXZWJUb3VjaEV2ZW50LnRvdWNoUG9pbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICh0b3Vj
aFBvaW50LnBoYXNlKCkgIT0gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJl
c3NlZCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKGF1dG8g
dG91Y2hBY3Rpb25EYXRhID0gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnRvdWNoQWN0aW9uRGF0YUF0
UG9pbnQodG91Y2hQb2ludC5sb2NhdGlvbigpKSkgeworICAgICAgICAgICAgICAgIGlmICh0b3Vj
aEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucyA9PSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6Tm9uZSkK
KyAgICAgICAgICAgICAgICAgICAgW190b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVm
YXVsdFByZXZlbnRlZDpZRVNdOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF0b3VjaEFjdGlv
bkRhdGEtPnRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6TWFuaXB1
bGF0aW9uKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byBzY3JvbGxpbmdOb2RlSUQg
PSB0b3VjaEFjdGlvbkRhdGEtPnNjcm9sbGluZ05vZGVJRCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5zZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2Rl
SUQodG91Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnMsIHRvdWNoQWN0aW9uRGF0YS0+c2Nyb2xs
aW5nTm9kZUlEKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIXRvdWNoQWN0aW9uRGF0YS0+dG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNv
cmU6OlRvdWNoQWN0aW9uOjpQaW5jaFpvb20pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF93ZWJWaWV3LnNjcm9sbFZpZXcucGluY2hHZXN0dXJlUmVjb2duaXplci5lbmFibGVkID0gTk87
CisgICAgICAgICAgICAgICAgICAgICAgICBfcHJldmVudHNQYW5uaW5nSW5YQXhpcyA9ICF0b3Vj
aEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6
UGFuWCk7CisgICAgICAgICAgICAgICAgICAgICAgICBfcHJldmVudHNQYW5uaW5nSW5ZQXhpcyA9
ICF0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFj
dGlvbjo6UGFuWSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChfY2FuU2Vu
ZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkpCiAgICAgICAgIF9wYWdlLT5oYW5kbGVUb3VjaEV2
ZW50QXN5bmNocm9ub3VzbHkobmF0aXZlV2ViVG91Y2hFdmVudCk7CiAgICAgZWxzZQogICAgICAg
ICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVudFN5bmNocm9ub3VzbHkobmF0aXZlV2ViVG91Y2hFdmVu
dCk7CiAKLSAgICBpZiAobmF0aXZlV2ViVG91Y2hFdmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVh
c2VkKCkpCisgICAgaWYgKG5hdGl2ZVdlYlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxl
YXNlZCgpKSB7CiAgICAgICAgIF9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSA9IE5P
OworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgICAgICBpZiAoIV9wYWdlLT5pc1Nj
cm9sbGluZ09yWm9vbWluZygpKQorICAgICAgICAgICAgW3NlbGYgX3Jlc2V0UGFubmluZ1ByZXZl
bnRpb25GbGFnc107CisjZW5kaWYKKyAgICB9CiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShQT0lO
VEVSX0VWRU5UUykKKy0gKHZvaWQpX3Jlc2V0UGFubmluZ1ByZXZlbnRpb25GbGFncworeworICAg
IF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzID0gTk87CisgICAgX3ByZXZlbnRzUGFubmluZ0luWUF4
aXMgPSBOTzsKK30KKyNlbmRpZgorCiAtICh2b2lkKV9pbnNwZWN0b3JOb2RlU2VhcmNoUmVjb2du
aXplZDooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiB7CiAgICAgQVNT
RVJUKF9pbnNwZWN0b3JOb2RlU2VhcmNoRW5hYmxlZCk7CkBAIC0yMTk1LDYgKzIyNTQsMTAgQEAg
LSAodm9pZClfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nCiAgICAgfQogICAgIF9wYWdlLT5zZXRJ
c1Njcm9sbGluZ09yWm9vbWluZyhmYWxzZSk7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMp
CisgICAgW3NlbGYgX3Jlc2V0UGFubmluZ1ByZXZlbnRpb25GbGFnc107CisjZW5kaWYKKwogI2lm
IFBMQVRGT1JNKFdBVENIT1MpCiAgICAgW19mb2N1c2VkRm9ybUNvbnRyb2xWaWV3IGVuZ2FnZUZv
Y3VzZWRGb3JtQ29udHJvbE5hdmlnYXRpb25dOwogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzJhYmQ3ZDY3OTcz
NjYyYzE3NDYyZDYwNTNlYTVjYzg3ZWNhNWQ5YS4uYzQwOGUwNjA0MDg0MmRlYjgyZjUyZDA1Y2M4
NDJiNDM5MzlmYTc0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAxLTI0ICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2VudCBp
bnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgc2VyaWVzIG9mIHRlc3RzIHRoYXQgY2hlY2sgdGhh
dCB0aGUgIm5vbmUiLCAicGFuLXgiLCAicGFuLXkiIGFuZCAicGluY2gtem9vbSIgdmFsdWVzIGhh
dmUgdGhlIGV4cGVjdGVkCisgICAgICAgIGltcGFjdCBvbiBwYWdlIHBhbm5pbmcgb24gaU9TLgor
CisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3Jv
bGxpbmctdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVu
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVy
ZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFu
LXgtcGFuLXkuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBhbi14Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1waW5jaC16b29tLWFsbG93cy16b29taW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sOiBBZGRlZC4KKwogMjAxOS0w
MS0yNCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
QWQgQ2xpY2sgQXR0cmlidXRpb24gYXMgYW4gaW50ZXJuYWwvZXhwZXJpbWVudGFsIGZlYXR1cmUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1u
b25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1ub25lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjdlOGFmODFiZDk4NGM4YzM0MDcw
NTUxYWY1YjYxZTkyNzBmZjgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBl
bGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xs
aW5nLXRvdWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmMwMDcyOTEwMjQ1ZWY1NzU4N2ViZTljNTJjOWZhYmMwNTMyZDFjMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIGlu
IGNvbnRlbnQgaG9zdGVkIGluIGEgc2Nyb2xsYWJsZSBjb250YWluZXIgdXNpbmcgJy13ZWJraXQt
b3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaCcgcHJldmVudHMgc2Nyb2xsaW5nIG9mIHRoYXQgY29u
dGFpbmVyLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3Jv
bGxpbmctdG91Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTk2MTRmZmVmY2VmYmVhZmU2NzQxNzRiNTgx
NTQxYzBmMjM1MTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwK
QEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CisKKyNzY3JvbGxpbmctY29udGFp
bmVyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7
CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7CisgICAgb3ZlcmZsb3c6IHNj
cm9sbDsKKyAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7Cit9CisKKyNzY3Jv
bGxpbmctY29udGFpbmVyID4gZGl2IHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVm
dDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDIwMCU7CisgICAgaGVpZ2h0OiAyMDAlOwor
ICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBpZD0ic2Nyb2xsaW5nLWNvbnRhaW5lciI+PGRpdj48L2Rpdj48L2Rpdj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3Qn
OworCithc3luY190ZXN0KHRlc3QgPT4geworICAgIGNvbnN0IHNjcm9sbGluZ0NvbnRhaW5lciA9
IGRvY3VtZW50LmJvZHkuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgdWkuc3dpcGUoeyB4OiAxNTAs
IHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhzY3JvbGxpbmdDb250YWluZXIuc2Nyb2xsTGVmdCwgMCwgIlRoZSBzY3JvbGxpbmcg
Y29udGFpbmVyIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhzY3JvbGxpbmdDb250YWluZXIuc2Nyb2xsVG9wLCAwLCAiVGhlIHNjcm9sbGlu
ZyBjb250YWluZXIgd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0
ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rp
b246IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4gYSBzY3JvbGxhYmxlIGNvbnRhaW5lciB1c2lu
ZyAnLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoJyBwcmV2ZW50cyBzY3JvbGxpbmcg
b2YgdGhhdCBjb250YWluZXIuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NzUxYmRkN2MzNDYyYTFlMDg2ZmZjNzNmMzUzZWQ0NGRh
ZjdmYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
CisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIG9uIGFuIGlm
cmFtZSBhbmQgaW50ZXJhY3Rpbmcgd2l0aCBpdHMgY29udGVudCBwcmV2ZW50cyBwYWdlIHNjcm9s
bGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDkyN2VhOGRi
NDYxNzQzNDFjNTFhMGM0Y2M1MjUzZTViNjIwN2EyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1s
CkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPHN0eWxlPgorCitpZnJhbWUgeworICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOworICAgIHRvcDogMDsKKyAgICB3aWR0aDog
NDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICB0b3VjaC1hY3Rpb246IG5vbmU7Cit9CisK
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWU+PC9pZnJhbWU+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsK
KworYXN5bmNfdGVzdCh0ZXN0ID0+IHsKKyAgICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5ib2R5
LmZpcnN0RWxlbWVudENoaWxkOworICAgIGNvbnN0IHRhcmdldCA9IGlmcmFtZS5jb250ZW50RG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7Cisg
ICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBgCisgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgbGVmdDogMDsKKyAgICAgICAgdG9wOiAwOworICAgICAgICB3aWR0aDog
MjAwJTsKKyAgICAgICAgaGVpZ2h0OiAyMDAlOworICAgIGApOworCisgICAgdWkuc3dpcGUoeyB4
OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNj
cm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBh
Z2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIp
OworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGlu
ZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gaWZyYW1lIGFuZCBpbnRlcmFjdGluZyB3aXRoIGl0
cyBjb250ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5v
bmUtb24tcGFyZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDJiMTMwNDk2OGEyOTFlYWRk
MTM3Mzk1MjZmYzBkOGNiZTJhMjliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246
IG5vbmUgb24gYSBwYXJlbnQgZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LW9uLXBhcmVudC5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE0ODA3OTNmNzkwYTVjODYyNDE3
NjlmOTkzMWU4ZjQ4MGNmM2I3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sCkBAIC0wLDAgKzEs
MjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRm
LTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0
aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rl
c3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+
IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1l
bnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxl
LnRvdWNoQWN0aW9uID0gIm5vbmUiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9
LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3
aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4
LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAi
VGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0
LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246
IG5vbmUgb24gYSBwYXJlbnQgZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5v
bmUuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWQwMGI4M2JiOThlNGFlNWRkYzlhNTljOTg2NzJhNmEwMzI5Y2U4
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1ub25lLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6
ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUu
d2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAw
cHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gIm5vbmUiOworCisgICAgdWku
c3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3
YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
d2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUg
eS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRo
YXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdl
IHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdl
NzgzNzlkZjQ1YTcxNzc0NzZjOGJlN2I1ZDY0MDQwZjBhYWNkZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gt
YWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRo
ZSB5LWF4aXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iZTk3YmRlMzI3ZmMyOWMzYWU0Yjc4MGExMTE2NDdjZDY4ZmQ1ZjgyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14
LXBhbi15LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQg
c2V0dGluZyAndG91Y2gtYWN0aW9uOiBwYW4teCBwYW4teScgb24gYW4gZWxlbWVudCBhbGxvd3Mg
cGFnZSBzY3JvbGxpbmcgaW4gYm90aCBheGVzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41MjI5MWE0ZDhjNjdjMjIxNTFjMjI5ZDgzN2Q3MWE4ZjNkMDBhYjE0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBh
bi14LXBhbi15Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwor
J3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIy
MDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lk
dGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgi
OworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi14IHBhbi15IjsKKworICAg
IHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9
PiB7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRo
ZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfbm90
X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgc2Nyb2xsZWQgaW4g
dGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGlu
ZyB0aGF0IHNldHRpbmcgJ3RvdWNoLWFjdGlvbjogcGFuLXggcGFuLXknIG9uIGFuIGVsZW1lbnQg
YWxsb3dzIHBhZ2Ugc2Nyb2xsaW5nIGluIGJvdGggYXhlcy4iKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jYjkyMDVmN2VmNWRhMmNhYjcwMDE5Y2ZiOGVhNzBmOTVkNzdjNmY3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14
Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJp
Y3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwg
KHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAw
MHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAg
dGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi14IjsKKworICAgIHVpLnN3aXBlKHsgeDog
MTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFz
c2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3Jv
bGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdl
WU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsK
KyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcg
dG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5n
IGluIHRoZSB5LWF4aXMuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNmZjY1OGMzODY0MjI2NzE1YWU2N2VhNDJmYmI5Mjg2ODA2OTI4NDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXktZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRv
dWNoLWFjdGlvbjogcGFuLXggb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBp
biB0aGUgeC1heGlzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLXBhbi15Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDkwZDM5NjAxZmJlZTE3YmZk
MWI5NWYyNDNlOWZhYmM1MjI3OTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwt
c2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdp
ZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9u
ID0gInBhbi15IjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwg
eTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VY
T2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOwor
ICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFn
ZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7Cisg
ICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBh
biBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB4LWF4aXMuIik7CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5j
aC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wOTRlNjc2MTVlMmE1OTk4ZjMzMzNmOTBmZGEzMGRkMWRjYTVhNDY4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9v
bSBvbiBhbiBlbGVtZW50IGFsbG93cyBwYWdlIHpvb21pbmcuIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mt
em9vbWluZy5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGE2M2M5NDI5ZTFh
YTEzOTAyNmVkNDMxM2NlYTZkNWQ0Nzg3OTc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21p
bmcuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3Ry
aWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjQwMHB4IiwgaGVpZ2h0OiAiNDAwcHgiIH0s
ICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIw
MDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAg
IHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwaW5jaC16b29tIjsKKworICAgIHVpLnBpbmNo
T3V0KHsgeDogNTAsIHk6IDUwLCB3aWR0aDogMTAwLCBoZWlnaHQ6IDEwMCwgc2NhbGU6IDAuNSB9
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMod2luZG93LmludGVybmFs
cy5wYWdlU2NhbGVGYWN0b3IoKSwgMSwgIlRoZSBwYWdlIHdhcyBzY2FsZWQuIik7CisgICAgICAg
IHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFj
dGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IGFsbG93cyBwYWdlIHpvb21pbmcuIik7CisK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1w
aW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxp
bmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwYzg1YjlhYTU1MmRmOWI3MWQ5YWU0Mzk3NDA1
MGUwYzI4OTk4MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFj
dGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVy
ZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wMjM0MWM2MjE1MDdhM2VlODM3MzRkMjc3MTNkODRiZmY1NTlkN2RkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwKQEAgLTAsMCArMSwzMCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwt
c2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdp
ZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9u
ID0gInBpbmNoLXpvb20iOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6
IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cu
cGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMu
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBh
Z2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUo
KTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBpbmNo
LXpvb20gb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360031</attachid>
            <date>2019-01-24 13:33:31 -0800</date>
            <delta_ts>2019-01-25 00:17:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190124223329.patch</filename>
            <type>text/plain</type>
            <size>83816</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyMjY5OWQ1YmJlODA0
MzBlNTViNjgwZmFlMTNhMzY4ZGJmN2I5OC4uYjNmYjFlYTVmZDgwMTRhNzE2NzAwYzU0OWVmOWFh
MTI1NDNlODE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE5LTAxLTI0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21waWxlCisgICAgICAgIGEgbGlzdCBvZiBUb3VjaEFjdGlvbkRhdGEgc3RydWN0dXJlcyB3aGlj
aCBob2xkIHRoZSB0b3VjaC1hY3Rpb24gdmFsdWUsIHRoZSBJRCBvZiB0aGUgbmVhcmVzdCBzY3Jv
bGwgbm9kZSBhbmQgdGhlIFJlZ2lvbiBjb250YWluaW5nCisgICAgICAgIHRoZSBib3VuZHMgb2Yg
ZWFjaCBvZiB0aG9zZSBlbGVtZW50cyB0byBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFs
b25nIHdpdGggdG91Y2ggcmVnaW9ucy4gQ29tcHV0aW5nIHRoZSBsaXN0IG9mIGFsbG93ZWQgdG91
Y2gKKyAgICAgICAgYWN0aW9ucyBmb3IgYSBnaXZlbiBlbGVtZW50IGFjY291bnRzIGZvciBub3Qg
b25seSB0aGUgdmFsdWUgc3BlY2lmaWVkIGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxl
LCBidXQgYWxzbyBpbiBpdHMgaGllcmFyY2h5LAorICAgICAgICBjcm9zc2luZyBhbnkgZnJhbWUg
Ym91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRvY3VtZW50J3Mgcm9vdCBub2RlLgorCisg
ICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVy
Zmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbAorICAg
ICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKKyAg
ICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCisg
ICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1h
bGxvd3Mtem9vbWluZy5odG1sCisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW52YWxpZGF0ZVJlbmRlcmluZ0Rl
cGVuZGVudFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVXaWxsQmVS
ZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJvbSB0aGlzIGRv
Y3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qgb2YgZWxlbWVu
dHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRlIGEgbGlzdCBv
ZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5IGlmIG9uZSBk
b2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0aGUgZ2l2ZW4g
ZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwgb3IgcmVtb3Zl
IGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0aGF0IGxpc3Qg
Y2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBpcyBpbmZvcm1l
ZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjogY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zIGNvbnN0KTogUHJvdmlkZSB0aGUgbGlzdCBvZiBhbGxv
d2VkIHRvdWNoIGFjdGlvbnMgYWNjb3VudGluZyBmb3IgdGhlICJ0b3VjaC1hY3Rpb24iIHByb3Bl
cnR5CisgICAgICAgIHNwZWNpZmllZCBvbiB0aGlzIGVsZW1lbnQgYW5kIGFsbCBvZiBpdHMgaGll
cmFyY2h5LCBjcm9zc2luZyBmcmFtZSBib3VuZGFyeS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcgY29u
c3QpOiBQcm92aWRlIHRoZSBTY3JvbGxpbmdOb2RlSUQsIGlmIGFueSwgZm9yIHRoZSBuZWFyZXN0
IHNjcm9sbGluZyBub2RlCisgICAgICAgIGZvciB0aGF0IGVsZW1lbnQuIFRoaXMgd2lsbCBhbGxv
dyB0aGUgVUkgcHJvY2VzcyB0byBpZGVudGlmeSB3aGljaCBzY3JvbGwgdmlldydzIGJlaGF2aW9y
IHRvIGN1c3RvbWl6ZSB0byByZWZsZWN0IHRoZSBlbGVtZW50J3MgYWxsb3dlZAorICAgICAgICB0
b3VjaCBhY3Rpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNGb3JGcmFtZSBj
b25zdCk6IENvbXB1dGUgdGhlIHJlZ2lvbiBmb3IgYWxsIGVsZW1lbnRzIHdpdGggYSBub24tYXV0
byB0b3VjaC1hY3Rpb24gcHJvcGVydHkKKyAgICAgICAgdGhyb3VnaG91dCB0aGUgcHJvdmlkZWQg
ZnJhbWUgYW5kIGFsbCBvZiBpdHMgc3ViZnJhbWVzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludCBjb25zdCk6IFF1ZXJ5IHRo
ZSBsaXN0IG9mIFRvdWNoQWN0aW9uRGF0YSBvYmplY3RzIGZvciBhIG1hdGNoIGJhc2VkIG9uIHRo
ZSBwcm92aWRlZCBwb2ludC4gUmlnaHQKKyAgICAgICAgbm93IHRoZSBsb2dpYyBpcyBwcmV0dHkg
Y3J1ZGUsIHN0b3BwaW5nIGF0IHRoZSBmaXJzdCBUb3VjaEFjdGlvbkRhdGEgZm9yIHdoaWNoIHRo
ZSByZWdpb24gY29udGFpbnMgdGhlIHByb3ZpZGVkIHBvaW50LCBidXQgZnV0dXJlIHBhdGNoZXMg
d2lsbAorICAgICAgICBhY2NvdW50IGZvciBvdmVybGFwIGFuZCBuZXN0aW5nLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlE
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWVOb2RlOjp0b3VjaEFjdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZU5vZGU6OnNldFRvdWNoQWN0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0v
RXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6
CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50
KTogVXBkYXRlIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rp
b24gcHJvcGVydHkgd2hlbiBhbiBlbGVtZW50J3Mgc3R5bGUgY2hhbmdlcy4KKwogMjAxOS0wMS0y
NCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBY3RpdmF0
ZSB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGluIHRoZSBOZXR3b3JrUHJvY2Vz
cyBhbmQgZGVhY3RpdmF0ZSBpdCBpbiB0aGUgVUlQcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwNGM1YzA0
OTc3NTBmZTg0YjY3YmVmNTA0YmI1YzBkZTNlMjNlMTJlLi5lMGNkNDZlNzAxYjkzMzE0MzBlMDM4
MDYwODJhMjVmOGJlMTE3ODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTAxLTI0
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNl
ci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUgdGhlICJub25lIiwgInBhbi14IiwgInBh
bi15IiBhbmQgInBpbmNoLXpvb20iIHZhbHVlcyBmb3IgdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0
eSBieSBxdWVyeWluZyB0aGUgc2Nyb2xsaW5nIHRyZWUgd2hlbmV2ZXIgYSB0b3VjaCBiZWdpbnMK
KyAgICAgICAgdG8gaWRlbnRpZnkgd2hldGhlciBpdHMgcG9pbnQgaXMgY29udGFpbmVkIHdpdGhp
biB0aGUgcmVnaW9uIG9mIGFuIGVsZW1lbnQgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBw
cm9wZXJ0eS4gSWYgaXQgaXMsIHdlIHVzZSB0aGUgbGlzdCBvZgorICAgICAgICBwZXJtaXR0ZWQg
dG91Y2ggYWN0aW9ucyBzdWNoIHRvIHRoZW4gY3VzdG9taXplIHRoZSBiZWhhdmlvciBvZiB0aGUg
bmVhcmVzdCBzY3JvbGwgdmlldyB0byBwYW4gb3Igem9vbSBvbmx5IGFzIGluc3RydWN0ZWQuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxUb3VjaEFjdGlvbkRhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0YT46OmRlY29kZSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjplbmNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWdpb24+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdXaWxsRW5kRHJh
Z2dpbmc6d2l0aFZlbG9jaXR5OnRhcmdldENvbnRlbnRPZmZzZXQ6XSk6IEFjY291bnQgZm9yIHBh
bm5pbmcgY29uc3RyYWludHMgc2V0IG9uIHRoZSBjb250ZW50IHZpZXcgdG8gcHJldmVudCBkZWNl
bGVyYXRpb24KKyAgICAgICAgdG8gcGFuIHRoZSB2aWV3IGlmIGl0IG91Z2h0IG5vdC4KKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OnRyYW5z
bGF0aW9uOnN0YXJ0UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRhbFZlbG9jaXR5OnZlcnRp
Y2FsVmVsb2NpdHk6XSk6IEltcGxlbWVudCBhbiBhZGRpdGlvbmFsCisgICAgICAgIFVJU2Nyb2xs
VmlldyBkZWxlZ2F0aW9uIG1ldGhvZCB0byBhcHBseSB0aGUgcGFubmluZyBjb25zdHJhaW50cyBz
ZXQgb24gdGhlIGNvbnRlbnQgdmlldyB3aGlsZSBwYW5uaW5nLgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnRvdWNoQWN0
aW9uRGF0YUF0UG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06CisgICAgICAgICgtW1dLU2Nyb2xs
aW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhW
ZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0pOiBBcHBseSB0aGUgc2FtZSBsb2dpYyBhcyBp
biBXS1dlYlZpZXcuCisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0
ZSBzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6d2lsbERlY2VsZXJhdGU6XSk6IFJlc2V0IHRoZSB0
b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBzY3JvbGwgbm9kZSB0byBzdGFydCB0aGUg
bmV4dAorICAgICAgICBpbnRlcmFjdGlvbiBpbiB0aGUgZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAg
KC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmREZWNl
bGVyYXRpbmc6XSk6IFJlc2V0IHRoZSB0b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBz
Y3JvbGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBpbnRlcmFjdGlvbgorICAgICAgICBpbiB0aGUg
ZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVn
YXRlIF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OnRyYW5zbGF0aW9uOnN0YXJ0
UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRhbFZlbG9jaXR5OnZlcnRpY2FsVmVsb2NpdHk6
XSk6IEFwcGx5CisgICAgICAgIHRoZSBzYW1lIGxvZ2ljIGFzIGluIFdLV2ViVmlldy4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNTY3JvbGxpbmdPclpvb21pbmcgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJl
dmVudHNQYW5uaW5nSW5YQXhpc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHByZXZlbnRz
UGFubmluZ0luWUF4aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhbnVwSW50ZXJh
Y3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNvZ25p
emVkOl0pOiBBcyB3ZSBwcm9jZXNzIHRvdWNoZXMsIGNoZWNrIHdoZXRoZXIgdGhlcmUgYXJlIHRv
dWNoIGFjdGlvbnMgc2V0IGZvciB0aGlzIHRvdWNoJ3MgcG9pbnRzJyBsb2NhdGlvbnMuIEJhc2Vk
CisgICAgICAgIG9uIHRob3NlIHRvdWNoIGFjdGlvbnMsIGVpdGhlciBzZXREZWZhdWx0UHJldmVu
dGVkIG9uIHRoZSBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIGlmIHRoZSB0b3VjaCBhY3Rp
b24gaXMgIm5vbmUiIG9yIHNlbGVjdGl2ZWx5IGRpc2FibGUgcGFubmluZyBhbmQgem9vbWluZy4K
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZ10pOgor
CiAyMDE5LTAxLTI0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFjdGl2YXRlIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgaW4gdGhlIE5l
dHdvcmtQcm9jZXNzIGFuZCBkZWFjdGl2YXRlIGl0IGluIHRoZSBVSVByb2Nlc3MuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzNk
OGZkYjA0NTYzNDBjOWNjZjA0YTAyZjdhZjE0Mzk4ODY0MmM2NC4uODExMzc1OTljYTQzYmVlOGQ1
ZWJlMjU0NjllNjFjNTI2MDYxYmJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA4Miw2ICsyMDgyLDcgQEAKIAkJNzEyQkU0
ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTJCRTQ4MTFGRTg2NUQ0MDAyMDMxQ0MgLyogRmlsbE1v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
MTJCRTQ4ODFGRTg2ODZBMDAyMDMxQ0MgLyogSlNGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyQkU0ODUxRkU4NjgxODAwMjAzMUNDIC8q
IEpTRmlsbE1vZGUuaCAqLzsgfTsKIAkJNzEyQkU0ODkxRkU4Njg3NTAwMjAzMUNDIC8qIEpTUGxh
eWJhY2tEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxMkJFNDg2MUZFODY4NTkwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9uLmgg
Ki87IH07CisJCTcxMkRCQTQ5MjFGOEFEODMwMDhGMzZCMiAvKiBTY3JvbGxpbmdDb29yZGluYXRv
clR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MTJEQkE0NzIxRjhBRDc5MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzE3MTM0
MUZCRTc4REIwMEY3NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTMxNzEzMjFGQkU3OEM1MDBG
NzU4REUgLyogQ1NTUHJvcGVydHlCbGVuZGluZ0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzI0NDUxMjAxMDlEQTUwMEFFN0ZCMiAv
KiBXZWJBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcxMzI0NDRGMjAxMDlEOUIwMEFFN0ZCMiAvKiBXZWJBbmltYXRpb25V
dGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3MTM0NDk2RTE0Njk0MUIzMDA3MjAzMTIgLyogU1ZHTGVuZ3RoQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEzNDQ5NkMxNDY5NDFC
MzAwNzIwMzEyIC8qIFNWR0xlbmd0aENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQwNCw3ICsyNDA1LDcgQEAKIAkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUQyIC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RjYgLyog
SlNTY3JvbGxUb09wdGlvbnMuaCAqLzsgfTsKIAkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8q
IENsYXNzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM0OEJGQUExQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICov
OyB9OwogCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0REZBQ0MxRjdE
QUU1NjAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4MzUyMEM3RTFBNzFCRkNDMDA2QkQyQUEgLyog
Q1NTRm9udEZhbWlseS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM1MjBDN0QxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCAqLzsgfTsK
KwkJODM1MjBDN0UxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNTIwQzdEMUE3MUJGQ0MwMDZC
RDJBQSAvKiBDU1NGb250RmFtaWx5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODM1OENCNzAxQzUzMjc3NTAwRTBDMkQ4IC8qIEpTWE1MRG9jdW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjU3
MEFEMUM1MzI2OEUwMDdGRDZDQiAvKiBKU1hNTERvY3VtZW50LmggKi87IH07CiAJCTgzNUQyRDc4
MUY1RjFGQkQwMDE0MURFRCAvKiBIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1RDJENzUxRjVGMUZCODAw
MTQxREVEIC8qIEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggKi87IH07CiAJCTgzNUQzNjM3
MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0b20uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAv
KiBTdHlsZUJ1aWxkZXJDdXN0b20uaCAqLzsgfTsKQEAgLTI4OTAsNyArMjg5MSw3IEBACiAJCTk5
MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYwMEIzOUFG
OSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5OTZFNTlERjFERjAxMjhEMDA2NjEyQjkgLyogTmF2aWdhdG9yV2Vi
RHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTZFNTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi87IH07CiAJ
CTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBNTI4RTgyMTdEN0Y1MkYwMEFB
OTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk5QUIxRjM4MDE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUFCMUYzN0UxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuaCAqLzsgfTsKKwkJOUFCMUYzODAxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OUIyNERFOEUxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlD
MjcgLyogSFRNTEJESUVsZW1lbnQuaCAqLzsgfTsKIAkJOUIyRDhBNzkxNDk5N0NDRjAwRUNFRjNF
IC8qIFVuZG9TdGVwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjMyQ0RBOTEzREY3RkE5MDBG
MzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uaCAqLzsgfTsKQEAgLTQ3NjcsNyArNDc2OCw3IEBACiAJCUUxRTFCRjAwMTE1RkY2RkIw
MDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFMUJFRkYxMTVGRjZGQjAwNkY1MkNBIC8qIFdpbmRv
d3NLZXlib2FyZENvZGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTFFNkVFQTgwQjYyOERCMzAwNUYyRjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTZF
RUE3MEI2MjhEQjMwMDVGMkY3MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50LmggKi87IH07CiAJCUUx
RUMyOUEwMEJCMDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5vZGVTZXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUMyOTlFMEJCMDRDNkIwMEVBMTg3QiAv
KiBYUGF0aE5vZGVTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlFMUVEOEFDMzBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAq
LzsgfTsKKwkJRTFFRDhBQzMwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGMUU4MzAw
QzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUYxRTgyRTBDM0MyQkI5MDA2REIzOTEgLyogWFNM
VEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJRTFGODBCODgxODMxNzI1MjAwNzg4NUMzIC8qIENyeXB0
b0tleVBhaXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRjgwQjg2MTgzMTcyNTIwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGODBCOEUxODMxNzJCNTAw
Nzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGODBCOEMxODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5
UGFpci5oICovOyB9OwpAQCAtOTI4Niw2ICs5Mjg3LDcgQEAKIAkJNzEyQkU0ODUxRkU4NjgxODAw
MjAzMUNDIC8qIEpTRmlsbE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNGaWxsTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTJCRTQ4NjFGRTg2
ODU5MDAyMDMxQ0MgLyogSlNQbGF5YmFja0RpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1BsYXliYWNrRGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxMkJFNDg3MUZFODY4NUEwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGxheWJhY2tEaXJl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MTJEQkE0NzIxRjhBRDc5
MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcxMzAxNDFEMURDOUMwODYwMENBM0E4OCAvKiBwaXAtc3VwcG9y
dC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJwaXAtc3VwcG9y
dC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMzE3MTMyMUZCRTc4QzUwMEY3
NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzEzMjQ0NEYyMDEwOUQ5QjAwQUU3RkIyIC8qIFdlYkFuaW1hdGlvblV0
aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBbmltYXRpb25V
dGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2ODg0LDYgKzE2ODg2
LDcgQEAKIAkJCQkwRjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWlu
dHMuaCAqLywKIAkJCQkxQUY2MkVFNDE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwICovLAogCQkJCTFBRjYyRUU1MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdD
b29yZGluYXRvci5oICovLAorCQkJCTcxMkRCQTQ3MjFGOEFENzkwMDhGMzZCMiAvKiBTY3JvbGxp
bmdDb29yZGluYXRvclR5cGVzLmggKi8sCiAJCQkJNTFDNjFCMDgxREU1MzZFNzAwOEEyMTJEIC8q
IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5jcHAgKi8sCiAJCQkJNTFDNjFCMDkxREU1MzZF
NzAwOEEyMTJEIC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oICovLAogCQkJCTkzQzM4
QkZDMTY0NDczQzcwMDA5MUVCMiAvKiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHAgKi8sCkBA
IC0zMTM3Myw2ICszMTM3Niw3IEBACiAJCQkJMUFGNjJFRTgxNERBMjJBNzAwNDE1NTZDIC8qIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0RTQwRDE4N0Y4MkUx
MDA0NTg4MkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzOTFBOTkxMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzEyREJBNDkyMUY4QUQ4MzAwOEYzNkIyIC8qIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzYxQjBCMURFNTM2RTcwMDhB
MjEyRCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxN0RFRUU4MURFOTRCMDgwMEI5MTY0NCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JN
YWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQzM4QkZGMTY0NDczQzcwMDA5MUVCMiAvKiBTY3Jv
bGxpbmdTdGF0ZUZpeGVkTm9kZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnRpZXMuanNvbgppbmRleCA5NzZmYTM5NDYxNDBmZWZjNmFmZjdkZGJmNmUyMDc0N2M1YTA0
YjQ5Li5lOWY5NDVhN2IwMDUyZWNhMGEwMTQ2NTEwYTY0ZTJjYWRiZmM1YzI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KQEAgLTY5MzQsNyArNjkzNCw3IEBACiAgICAgICAg
ICAgICBdLAogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAg
ICAgICAibmFtZS1mb3ItbWV0aG9kcyI6ICJUb3VjaEFjdGlvbnMiLAotICAgICAgICAgICAgICAg
ICJlbmFibGUtaWYiOiAiRU5BQkxFX1RPVUNIX0VWRU5UUyIsCisgICAgICAgICAgICAgICAgImVu
YWJsZS1pZiI6ICJFTkFCTEVfUE9JTlRFUl9FVkVOVFMiLAogICAgICAgICAgICAgICAgICJjb252
ZXJ0ZXIiOiAiVG91Y2hBY3Rpb24iCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgInNwZWNp
ZmljYXRpb24iOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1ZGI3MWY1MTZmNmY4OGQ3
NDIxMTQ5YjE5NTI3ZjRlN2FkOGMxNzU5Li5kMjk5ZWYyMmMzYjViZGI4ZDljZGEyMTVmZjJmNjVm
YjcxZDk1ZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIwOCw2ICsyMDgsNyBAQAog
I2luY2x1ZGUgIlRleHRBdXRvU2l6aW5nLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5j
bHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2lu
Y2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgogI2luY2x1ZGUgIlRyZWVXYWxrZXIuaCIKICNpbmNs
dWRlICJVbmRvTWFuYWdlci5oIgpAQCAtNDE1MSw2ICs0MTUyLDE0IEBAIHZvaWQgRG9jdW1lbnQ6
OmludmFsaWRhdGVSZW5kZXJpbmdEZXBlbmRlbnRSZWdpb25zKEFubm90YXRpb25zQWN0aW9uIGFu
bm90YXRpb25zCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICAgICBzZXRUb3VjaEV2ZW50UmVnaW9uc05lZWRVcGRhdGUoKTsKICNlbmRpZgorI2lmIEVO
QUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBpZiAoYXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKSkg
eworICAgICAgICBpZiAoYXV0byogZnJhbWVWaWV3ID0gdmlldygpKSB7CisgICAgICAgICAgICBp
ZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBwYWdlLT5zY3JvbGxpbmdDb29yZGluYXRv
cigpKQorICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdFdmVu
dFRyYWNraW5nUmVnaW9uc0NoYW5nZWQoKmZyYW1lVmlldyk7CisgICAgICAgIH0KKyAgICB9Cisj
ZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVudDo6aW52YWxpZGF0ZVNjcm9sbGJhckRlcGVuZGVudFJl
Z2lvbnMoKQpAQCAtNDUzNCw2ICs0NTQzLDExIEBAIHZvaWQgRG9jdW1lbnQ6Om5vZGVXaWxsQmVS
ZW1vdmVkKE5vZGUmIG5vZGUpCiAKICAgICBpZiAoaXM8VGV4dD4obm9kZSkpCiAgICAgICAgIG1f
bWFya2Vycy0+cmVtb3ZlTWFya2Vycyhub2RlKTsKKworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5U
UykKKyAgICBpZiAobV90b3VjaEFjdGlvbkVsZW1lbnRzKQorICAgICAgICBtX3RvdWNoQWN0aW9u
RWxlbWVudHMtPnJlbW92ZSgmbm9kZSk7CisjZW5kaWYKIH0KIAogc3RhdGljIE5vZGUqIGZhbGxi
YWNrRm9jdXNOYXZpZ2F0aW9uU3RhcnRpbmdOb2RlQWZ0ZXJSZW1vdmFsKE5vZGUmIG5vZGUpCkBA
IC03MDk2LDYgKzcxMTAsMzQgQEAgTGF5b3V0UmVjdCBEb2N1bWVudDo6YWJzb2x1dGVFdmVudEhh
bmRsZXJCb3VuZHMoYm9vbCYgaW5jbHVkZXNGaXhlZFBvc2l0aW9uRWxlbWUKICAgICByZXR1cm4g
TGF5b3V0UmVjdCgpOwogfQogCitEb2N1bWVudDo6UmVnaW9uRml4ZWRQYWlyIERvY3VtZW50Ojph
YnNvbHV0ZVJlZ2lvbkZvck5vZGUoTm9kZSogbm9kZSkKK3sKKyAgICBSZWdpb24gcmVnaW9uOwor
ICAgIExheW91dFJlY3Qgcm9vdFJlbGF0aXZlQm91bmRzOworICAgIGJvb2wgaW5zaWRlRml4ZWRQ
b3NpdGlvbiA9IGZhbHNlOworCisgICAgaWYgKGlzPERvY3VtZW50Pihub2RlKSkgeworICAgICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4obm9kZSk7CisgICAgICAg
IGlmIChkb2N1bWVudCA9PSB0aGlzKQorICAgICAgICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0g
YWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoaW5zaWRlRml4ZWRQb3NpdGlvbik7CisgICAgICAg
IGVsc2UgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBkb2N1bWVudC0+b3duZXJFbGVtZW50KCkpCisg
ICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBlbGVtZW50LT5hYnNvbHV0ZUV2ZW50SGFu
ZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKKyAgICB9IGVsc2UgaWYgKGlzPEVsZW1l
bnQ+KG5vZGUpKSB7CisgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50
Pihub2RlKTsKKyAgICAgICAgaWYgKGlzPEhUTUxCb2R5RWxlbWVudD4oZWxlbWVudCkpIHsKKyAg
ICAgICAgICAgIC8vIEZvciB0aGUgYm9keSwganVzdCB1c2UgdGhlIGRvY3VtZW50IGJvdW5kcy4K
KyAgICAgICAgICAgIC8vIFRoZSBib2R5IG1heSBub3QgY292ZXIgdGhpcyB3aG9sZSBhcmVhLCBi
dXQgaXQncyBPSyBmb3IgdGhpcyByZWdpb24gdG8gYmUgYW4gb3ZlcmVzdGltYXRlLgorICAgICAg
ICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0gYWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoaW5z
aWRlRml4ZWRQb3NpdGlvbik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgcm9vdFJlbGF0
aXZlQm91bmRzID0gZWxlbWVudC0+YWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoaW5zaWRlRml4
ZWRQb3NpdGlvbik7CisgICAgfQorCisgICAgaWYgKCFyb290UmVsYXRpdmVCb3VuZHMuaXNFbXB0
eSgpKQorICAgICAgICByZWdpb24udW5pdGUoUmVnaW9uKGVuY2xvc2luZ0ludFJlY3Qocm9vdFJl
bGF0aXZlQm91bmRzKSkpOworCisgICAgcmV0dXJuIFJlZ2lvbkZpeGVkUGFpcihyZWdpb24sIGlu
c2lkZUZpeGVkUG9zaXRpb24pOworfQorCiBEb2N1bWVudDo6UmVnaW9uRml4ZWRQYWlyIERvY3Vt
ZW50OjphYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhjb25zdCBFdmVudFRhcmdldFNldCog
dGFyZ2V0cykKIHsKICAgICBMYXlvdXREaXNhbGxvd2VkU2NvcGUgbGF5b3V0RGlzYWxsb3dlZFNj
b3BlKExheW91dERpc2FsbG93ZWRTY29wZTo6UmVhc29uOjpSZWVudHJhbmN5QXZvaWRhbmNlKTsK
QEAgLTcxMDcsMjYgKzcxNDksOSBAQCBEb2N1bWVudDo6UmVnaW9uRml4ZWRQYWlyIERvY3VtZW50
OjphYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhjb25zdCBFdmVudFRhcgogICAgIGJvb2wg
aW5zaWRlRml4ZWRQb3NpdGlvbiA9IGZhbHNlOwogCiAgICAgZm9yIChhdXRvJiBrZXlWYWx1ZVBh
aXIgOiAqdGFyZ2V0cykgewotICAgICAgICBMYXlvdXRSZWN0IHJvb3RSZWxhdGl2ZUJvdW5kczsK
LQotICAgICAgICBpZiAoaXM8RG9jdW1lbnQ+KGtleVZhbHVlUGFpci5rZXkpKSB7Ci0gICAgICAg
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oa2V5VmFsdWVQYWly
LmtleSk7Ci0gICAgICAgICAgICBpZiAoZG9jdW1lbnQgPT0gdGhpcykKLSAgICAgICAgICAgICAg
ICByb290UmVsYXRpdmVCb3VuZHMgPSBhYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVG
aXhlZFBvc2l0aW9uKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBk
b2N1bWVudC0+b3duZXJFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgcm9vdFJlbGF0aXZlQm91
bmRzID0gZWxlbWVudC0+YWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoaW5zaWRlRml4ZWRQb3Np
dGlvbik7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXM8RWxlbWVudD4oa2V5VmFsdWVQYWlyLmtleSkp
IHsKLSAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50PihrZXlW
YWx1ZVBhaXIua2V5KTsKLSAgICAgICAgICAgIGlmIChpczxIVE1MQm9keUVsZW1lbnQ+KGVsZW1l
bnQpKSB7Ci0gICAgICAgICAgICAgICAgLy8gRm9yIHRoZSBib2R5LCBqdXN0IHVzZSB0aGUgZG9j
dW1lbnQgYm91bmRzLgotICAgICAgICAgICAgICAgIC8vIFRoZSBib2R5IG1heSBub3QgY292ZXIg
dGhpcyB3aG9sZSBhcmVhLCBidXQgaXQncyBPSyBmb3IgdGhpcyByZWdpb24gdG8gYmUgYW4gb3Zl
cmVzdGltYXRlLgotICAgICAgICAgICAgICAgIHJvb3RSZWxhdGl2ZUJvdW5kcyA9IGFic29sdXRl
RXZlbnRIYW5kbGVyQm91bmRzKGluc2lkZUZpeGVkUG9zaXRpb24pOwotICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0gZWxlbWVudC0+YWJzb2x1
dGVFdmVudEhhbmRsZXJCb3VuZHMoaW5zaWRlRml4ZWRQb3NpdGlvbik7Ci0gICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIGlmICghcm9vdFJlbGF0aXZlQm91bmRzLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIHRhcmdldFJlZ2lvbi51bml0ZShSZWdpb24oZW5jbG9zaW5nSW50UmVjdChyb290UmVs
YXRpdmVCb3VuZHMpKSk7CisgICAgICAgIGF1dG8gdGFyZ2V0UmVnaW9uRml4ZWRQYWlyID0gYWJz
b2x1dGVSZWdpb25Gb3JOb2RlKGtleVZhbHVlUGFpci5rZXkpOworICAgICAgICB0YXJnZXRSZWdp
b24udW5pdGUodGFyZ2V0UmVnaW9uRml4ZWRQYWlyLmZpcnN0KTsKKyAgICAgICAgaW5zaWRlRml4
ZWRQb3NpdGlvbiB8PSB0YXJnZXRSZWdpb25GaXhlZFBhaXIuc2Vjb25kOwogICAgIH0KIAogICAg
IHJldHVybiBSZWdpb25GaXhlZFBhaXIodGFyZ2V0UmVnaW9uLCBpbnNpZGVGaXhlZFBvc2l0aW9u
KTsKQEAgLTg2NTEsNCArODY3NiwzMyBAQCB2b2lkIERvY3VtZW50OjpzZXRQYWludFdvcmtsZXRH
bG9iYWxTY29wZUZvck5hbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBSZWY8UGFpbnRXbwogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCit2b2lkIERvY3VtZW50Ojp1cGRhdGVU
b3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmIG5vZGUsIFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAg
ICBpZiAoIW1fdG91Y2hBY3Rpb25FbGVtZW50cykKKyAgICAgICAgbV90b3VjaEFjdGlvbkVsZW1l
bnRzID0gc3RkOjptYWtlX3VuaXF1ZTxIYXNoU2V0PE5vZGUqPj4oKTsKKworICAgIGJvb2wgY2hh
bmdlZCA9IGZhbHNlOworCisgICAgaWYgKHN0eWxlICYmIHN0eWxlLT50b3VjaEFjdGlvbnMoKSAh
PSBUb3VjaEFjdGlvbjo6QXV0bykKKyAgICAgICAgY2hhbmdlZCB8PSBtX3RvdWNoQWN0aW9uRWxl
bWVudHMtPmFkZCgmbm9kZSkuaXNOZXdFbnRyeTsKKyAgICBlbHNlCisgICAgICAgIGNoYW5nZWQg
fD0gbV90b3VjaEFjdGlvbkVsZW1lbnRzLT5yZW1vdmUoJm5vZGUpOworCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBpZiAoIWNoYW5nZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFBh
Z2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgaWYg
KFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9s
bGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJh
bWVWaWV3RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFuZ2VkKCpmcmFtZVZpZXcpOworICAgIH0KKyNl
bmRpZgorfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKaW5kZXggYmI1YzFjMDQ2NjU0ZjE5YTFhODY5NTQ0YjYzMzNlNzI2YjA3MTZkNC4uNGE2YTFh
YTI5MGRjNGVlY2I4OTc2MTU4YTY0OTE4NTdmNDBjN2NhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
QEAgLTEyNzEsNiArMTI3MSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQog
ICAgIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRsZXJzKCkgY29uc3QgeyByZXR1cm4gKG1fdG91Y2hF
dmVudFRhcmdldHMuZ2V0KCkpID8gbV90b3VjaEV2ZW50VGFyZ2V0cy0+c2l6ZSgpIDogZmFsc2U7
IH0KICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRzQ29udGFpbihOb2RlJiBub2RlKSBjb25zdCB7
IHJldHVybiBtX3RvdWNoRXZlbnRUYXJnZXRzID8gbV90b3VjaEV2ZW50VGFyZ2V0cy0+Y29udGFp
bnMoJm5vZGUpIDogZmFsc2U7IH0KKyAgICB2b2lkIHVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVudHMo
Tm9kZSYsIFJlbmRlclN0eWxlKik7CiAjZWxzZQogICAgIGJvb2wgaGFzVG91Y2hFdmVudEhhbmRs
ZXJzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHRvdWNoRXZlbnRUYXJnZXRz
Q29udGFpbihOb2RlJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEyOTAsOSArMTI5MSwx
NCBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMp
CisgICAgY29uc3QgSGFzaFNldDxOb2RlKj4qIHRvdWNoQWN0aW9uRWxlbWVudHMoKSBjb25zdCB7
IHJldHVybiBtX3RvdWNoQWN0aW9uRWxlbWVudHMuZ2V0KCk7IH0KKyNlbmRpZgorCiAgICAgY29u
c3QgRXZlbnRUYXJnZXRTZXQqIHdoZWVsRXZlbnRUYXJnZXRzKCkgY29uc3QgeyByZXR1cm4gbV93
aGVlbEV2ZW50VGFyZ2V0cy5nZXQoKTsgfQogCiAgICAgdHlwZWRlZiBzdGQ6OnBhaXI8UmVnaW9u
LCBib29sPiBSZWdpb25GaXhlZFBhaXI7CisgICAgUmVnaW9uRml4ZWRQYWlyIGFic29sdXRlUmVn
aW9uRm9yTm9kZShOb2RlKik7CiAgICAgUmVnaW9uRml4ZWRQYWlyIGFic29sdXRlUmVnaW9uRm9y
RXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyZ2V0U2V0Kik7CiAKICAgICBMYXlvdXRSZWN0IGFi
c29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGJvb2wmKSBmaW5hbDsKQEAgLTE4NzMsNiArMTg3OSw5
IEBAIHByaXZhdGU6CiAgICAgCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RXZlbnRUYXJnZXRTZXQ+IG1fdG91Y2hFdmVudFRhcmdldHM7CisjZW5kaWYKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgc3RkOjp1bmlxdWVfcHRyPEhhc2hTZXQ8Tm9k
ZSo+PiBtX3RvdWNoQWN0aW9uRWxlbWVudHM7CiAjZW5kaWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
RXZlbnRUYXJnZXRTZXQ+IG1fd2hlZWxFdmVudFRhcmdldHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCBiMmYxM2QwMjJjMDk4NzMyNTI0NzljYmVhYTUwODYyNzBhODQyYmQ2Li5lMjhhM2Fm
NWMyNzBiNGExMzg2ZjEyMTA1ZDQ0MzJlNjVmODVkMzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC04MSw2ICs4MSw4IEBACiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiUmVuZGVyRnJhZ21lbnRDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXll
ci5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgorI2luY2x1ZGUgIlJlbmRlckxh
eWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIKICNpbmNsdWRlICJS
ZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVVcGRhdGVyLmgiCkBAIC0zNDE2LDcg
KzM0MTgsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9v
bCBmbGFnKQogICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKIH0KIAot
c3RhdGljIEVsZW1lbnQqIHBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKEVsZW1lbnQqIGVs
ZW1lbnQpCitzdGF0aWMgRWxlbWVudCogcGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoY29u
c3QgRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgcmV0dXJu
IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA/IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA6IGVs
ZW1lbnQtPmRvY3VtZW50KCkub3duZXJFbGVtZW50KCk7CkBAIC00MTIwLDQgKzQxMjIsNjYgQEAg
dm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVTdHlsZU1hcChSZWY8U3R5bGVQcm9wZXJ0eU1hcD4m
JiBtYXApCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK09wdGlvblNl
dDxUb3VjaEFjdGlvbj4gRWxlbWVudDo6Y29tcHV0ZWRUb3VjaEFjdGlvbnMoKSBjb25zdAorewor
ICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gY29tcHV0ZWRUb3VjaEFjdGlvbnMgPSBUb3VjaEFj
dGlvbjo6QXV0bzsKKyAgICBmb3IgKGF1dG8qIGVsZW1lbnQgPSB0aGlzOyBlbGVtZW50OyBlbGVt
ZW50ID0gcGFyZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoZWxlbWVudCkpIHsKKyAgICAgICAg
YXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOworICAgICAgICBpZiAoIXJlbmRl
cmVyKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byB0b3VjaEFjdGlvbnMg
PSByZW5kZXJlci0+c3R5bGUoKS50b3VjaEFjdGlvbnMoKTsKKworICAgICAgICAvLyBPbmNlIHdl
J3ZlIGVuY291bnRlcmVkIHRvdWNoLWFjdGlvbjogbm9uZSwgd2Uga25vdyB0aGF0IHRoaXMgd2ls
bCBiZSB0aGUgY29tcHV0ZWQgdmFsdWUuCisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91
Y2hBY3Rpb246Ok5vbmUpCisgICAgICAgICAgICByZXR1cm4gdG91Y2hBY3Rpb25zOworCisgICAg
ICAgIC8vIElmIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gc28gZmFyIHdhcyAiYXV0byIsIHdl
IGNhbiBqdXN0IHVzZSB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uLgorICAgICAg
ICBpZiAoY29tcHV0ZWRUb3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246OkF1dG8pIHsKKyAgICAg
ICAgICAgIGNvbXB1dGVkVG91Y2hBY3Rpb25zID0gdG91Y2hBY3Rpb25zOworICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50
IGhhcyB0b3VjaC1hY3Rpb246IGF1dG8gb3IgdGhlIHNhbWUgdG91Y2gtYWN0aW9uIGFzIHRoZSBj
b21wdXRlZCB0b3VjaC1hY3Rpb24sCisgICAgICAgIC8vIHdlIG5lZWQgdG8ga2VlcCBnb2luZyB1
cCB0aGUgYW5jZXN0cnkgY2hhaW4uCisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hB
Y3Rpb246OkF1dG8gfHwgdG91Y2hBY3Rpb25zID09IGNvbXB1dGVkVG91Y2hBY3Rpb25zKQorICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gTm93LCB0aGUgZWxlbWVudCdzIHRvdWNo
LWFjdGlvbiBhbmQgdGhlIGNvbXB1dGVkIHRvdWNoLWFjdGlvbiBhcmUgZGlmZmVyZW50IGFuZCBh
cmUgbmVpdGhlciAiYXV0byIgbm9yICJub25lIi4KKyAgICAgICAgaWYgKGNvbXB1dGVkVG91Y2hB
Y3Rpb25zID09IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pIHsKKyAgICAgICAgICAgIC8vIElm
IHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gaXMgIm1hbmlwdWxhdGlvbiIsIHdlIGNhbiB0YWtl
IHRoZSBjdXJyZW50IGVsZW1lbnQncyB0b3VjaC1hY3Rpb24gYXMgdGhlIG5ld2x5CisgICAgICAg
ICAgICAvLyBjb21wdXRlZCB0b3VjaC1hY3Rpb24uCisgICAgICAgICAgICBjb21wdXRlZFRvdWNo
QWN0aW9ucyA9IHRvdWNoQWN0aW9uczsKKyAgICAgICAgfSBlbHNlIGlmICh0b3VjaEFjdGlvbnMg
PT0gVG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgeworICAgICAgICAgICAgLy8gT3RoZXJ3aXNl
LCB3ZSBoYXZlIGEgcmVzdHJpY3RlZCBjb21wdXRlZCB0b3VjaC1hY3Rpb24gc28gZmFyLiBJZiB0
aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uIGlzICJtYW5pcHVsYXRpb24iCisgICAg
ICAgICAgICAvLyB0aGVuIHdlIGNhbiBqdXN0IGtlZXAgZ29pbmcgYW5kIGxlYXZlIHRoZSBjb21w
dXRlZCB0b3VjaC1hY3Rpb24gdW50b3VjaGVkLgorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIH0KKworICAgICAgICAvLyBJbiBhbnkgb3RoZXIgY2FzZSwgd2UgaGF2ZSBjb21wZXRpbmcg
cmVzdHJpY3RpdmUgdG91Y2gtYWN0aW9uIHZhbHVlcyB0aGF0IGNhbiBvbmx5IHlpZWxkICJub25l
Ii4KKyAgICAgICAgcmV0dXJuIFRvdWNoQWN0aW9uOjpOb25lOworICAgIH0KKyAgICByZXR1cm4g
Y29tcHV0ZWRUb3VjaEFjdGlvbnM7Cit9CisKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZM
T1dfU0NST0xMSU5HKQorU2Nyb2xsaW5nTm9kZUlEIEVsZW1lbnQ6Om5lYXJlc3RTY3JvbGxpbmdO
b2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSBjb25zdAoreworICAgIGlmICghcmVu
ZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBXZSBhcmUgbm90IGludGVyZXN0
ZWQgaW4gdGhlIHJvb3QsIHNvIGNoZWNrIHRoYXQgd2UgYWxzbyBoYXZlIGEgdmFsaWQgcGFyZW50
LgorICAgIGZvciAoYXV0byogbGF5ZXIgPSByZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOyBs
YXllciAmJiBsYXllci0+cGFyZW50KCk7IGxheWVyID0gbGF5ZXItPnBhcmVudCgpKSB7CisgICAg
ICAgIGlmIChsYXllci0+aXNDb21wb3NpdGVkKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHNj
cm9sbGluZ05vZGVJRCA9IGxheWVyLT5iYWNraW5nKCktPnNjcm9sbGluZ05vZGVJREZvclJvbGUo
U2Nyb2xsQ29vcmRpbmF0aW9uUm9sZTo6U2Nyb2xsaW5nKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gc2Nyb2xsaW5nTm9kZUlEOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9
CisjZW5kaWYKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAppbmRleCBjNWViNmNiOGM0NDhiMDk5YzVlMDEyNmFkNWExZTdjNGU4ODQyYjg2Li44Yzg4NjYx
MzlmNDlmYzhhODU0NDAyYzk3ZmQyMmFlODQzMjRkZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnMuaCIKICNp
bmNsdWRlICJTY3JvbGxUb09wdGlvbnMuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2lu
Y2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdE1vZGUu
aCIKICNpbmNsdWRlICJTaW11bGF0ZWRDbGlja09wdGlvbnMuaCIKICNpbmNsdWRlICJTdHlsZUNo
YW5nZS5oIgpAQCAtNTYsNiArNTcsNyBAQCBjbGFzcyBQc2V1ZG9FbGVtZW50OwogY2xhc3MgUmVu
ZGVyVHJlZVBvc2l0aW9uOwogY2xhc3MgU3R5bGVQcm9wZXJ0eU1hcDsKIGNsYXNzIFdlYkFuaW1h
dGlvbjsKK2VudW0gY2xhc3MgVG91Y2hBY3Rpb24gOiB1aW50OF90Owogc3RydWN0IEVsZW1lbnRT
dHlsZTsKIHN0cnVjdCBTY3JvbGxJbnRvVmlld09wdGlvbnM7CiAKQEAgLTU4OCw2ICs1OTAsMTMg
QEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmltYXRlKEpT
Qzo6RXhlY1N0YXRlJiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mJiwgT3B0aW9uYWw8VmFy
aWFudDxkb3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+JiYpOwogICAgIFZlY3RvcjxS
ZWZQdHI8V2ViQW5pbWF0aW9uPj4gZ2V0QW5pbWF0aW9ucygpOwogCisjaWYgRU5BQkxFKFBPSU5U
RVJfRVZFTlRTKQorICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gY29tcHV0ZWRUb3VjaEFjdGlv
bnMoKSBjb25zdDsKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQor
ICAgIFNjcm9sbGluZ05vZGVJRCBuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNpbmdUb3VjaE92ZXJm
bG93U2Nyb2xsaW5nKCkgY29uc3Q7CisjZW5kaWYKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAg
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBDb25zdHJ1Y3Rpb25UeXBl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCmluZGV4IGM0ZmFlZGQzZThmNTQ4NWIzMDBiZjQzZDNhYTZmMWVhYjkz
MDE1NDUuLjEzMGIyNjExMmE5MjBhN2RiNjBlMWRlZDQzOGU4OWIyMzRhNmFhNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJS
ZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgi
CiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAt
MTA3LDcgKzEwOCwyNSBAQCBFdmVudFRyYWNraW5nUmVnaW9ucyBTY3JvbGxpbmdDb29yZGluYXRv
cjo6YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKAogICAgIGF1dG8qIGRvY3Vt
ZW50ID0gZnJhbWUuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1
cm4gRXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsKLSAgICByZXR1cm4gZG9jdW1lbnQtPmV2ZW50VHJh
Y2tpbmdSZWdpb25zKCk7CisgICAgYXV0byBldmVudFRyYWNraW5nUmVnaW9ucyA9IGRvY3VtZW50
LT5ldmVudFRyYWNraW5nUmVnaW9ucygpOworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQor
ICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnBvaW50ZXJF
dmVudHNFbmFibGVkKCkpIHsKKyAgICAgICAgYXV0byYgdG91Y2hBY3Rpb25EYXRhID0gZXZlbnRU
cmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhOworICAgICAgICBmb3IgKGF1dG8mIG5vZGUg
OiAqZnJhbWUuZG9jdW1lbnQoKS0+dG91Y2hBY3Rpb25FbGVtZW50cygpKSB7CisgICAgICAgICAg
ICBpZiAoIWlzPEVsZW1lbnQ+KG5vZGUpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgYXV0byYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsKKyAgICAg
ICAgICAgIHRvdWNoQWN0aW9uRGF0YS5hcHBlbmQoeworICAgICAgICAgICAgICAgIGVsZW1lbnQu
Y29tcHV0ZWRUb3VjaEFjdGlvbnMoKSwKKyAgICAgICAgICAgICAgICBlbGVtZW50Lm5lYXJlc3RT
Y3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSwKKyAgICAgICAgICAg
ICAgICBub2RlLT5kb2N1bWVudCgpLmFic29sdXRlUmVnaW9uRm9yTm9kZShub2RlKS5maXJzdAor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiBl
dmVudFRyYWNraW5nUmVnaW9uczsKICNlbHNlCiAgICAgYXV0byogZnJhbWVWaWV3ID0gZnJhbWUu
dmlldygpOwogICAgIGlmICghZnJhbWVWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggYWM5NzZlM2JjYTIyNmFi
NWI3NTBlYjYwMGIwNzc1OGM2MDk2MWIxZS4uZDRiYjVmNTJkN2MxNzY3MTZhOWUyZGQ5MDVjZGFj
M2RjYWZlMGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUGxhdGZv
cm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsU25hcE9mZnNldHNJbmZvLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvclR5cGVz
LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CkBAIC01MSwyNyArNTIsNiBA
QCBjbGFzcyBUZXh0U3RyZWFtOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXR5cGVkZWYgdW5z
aWduZWQgU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zOwotdHlwZWRlZiB1aW50NjRfdCBTY3Jv
bGxpbmdOb2RlSUQ7Ci0KLWVudW0gY2xhc3MgU2Nyb2xsaW5nTm9kZVR5cGUgOiB1aW50OF90IHsK
LSAgICBNYWluRnJhbWUsCi0gICAgU3ViZnJhbWUsCi0gICAgRnJhbWVIb3N0aW5nLAotICAgIE92
ZXJmbG93LAotICAgIEZpeGVkLAotICAgIFN0aWNreQotfTsKLQotZW51bSBTY3JvbGxpbmdTdGF0
ZVRyZWVBc1RleHRCZWhhdmlvckZsYWdzIHsKLSAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRC
ZWhhdmlvck5vcm1hbCAgICAgICAgICAgICAgICAgID0gMCwKLSAgICBTY3JvbGxpbmdTdGF0ZVRy
ZWVBc1RleHRCZWhhdmlvckluY2x1ZGVMYXllcklEcyAgICAgICAgID0gMSA8PCAwLAotICAgIFNj
cm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZU5vZGVJRHMgICAgICAgICAgPSAx
IDw8IDEsCi0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJQ
b3NpdGlvbnMgICA9IDEgPDwgMiwKLSAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlv
ckRlYnVnICAgICAgICAgICAgICAgICAgID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZp
b3JJbmNsdWRlTGF5ZXJJRHMgfCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1
ZGVOb2RlSURzIHwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJQ
b3NpdGlvbnMKLX07Ci10eXBlZGVmIHVuc2lnbmVkIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJl
aGF2aW9yOwotCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVWaWV3
OwpAQCAtODYsNDIgKzY2LDYgQEAgY2xhc3MgVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIFNj
cm9sbGluZ1RyZWU7CiAjZW5kaWYKIAotZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBvc2l0aW9u
QWN0aW9uIHsKLSAgICBTZXQsCi0gICAgU2V0QXBwcm94aW1hdGUsCi0gICAgU3luYwotfTsKLQot
c3RydWN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyB7Ci0gICAgU2Nyb2xsRWxhc3RpY2l0eSBo
b3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07Ci0gICAg
U2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFzdGlj
aXR5Tm9uZSB9OwotCi0gICAgU2Nyb2xsYmFyTW9kZSBob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSB7
IFNjcm9sbGJhckF1dG8gfTsKLSAgICBTY3JvbGxiYXJNb2RlIHZlcnRpY2FsU2Nyb2xsYmFyTW9k
ZSB7IFNjcm9sbGJhckF1dG8gfTsKLQotICAgIGJvb2wgaGFzRW5hYmxlZEhvcml6b250YWxTY3Jv
bGxiYXIgeyBmYWxzZSB9OwotICAgIGJvb2wgaGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFyIHsg
ZmFsc2UgfTsKLQotICAgIGJvb2wgdXNlRGFya0FwcGVhcmFuY2VGb3JTY3JvbGxiYXJzIHsgZmFs
c2UgfTsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGhvcml6b250YWxTY3JvbGxF
bGFzdGljaXR5ID09IG90aGVyLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5Ci0gICAgICAgICAg
ICAmJiB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPT0gb3RoZXIudmVydGljYWxTY3JvbGxFbGFz
dGljaXR5Ci0gICAgICAgICAgICAmJiBob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSA9PSBvdGhlci5o
b3Jpem9udGFsU2Nyb2xsYmFyTW9kZQotICAgICAgICAgICAgJiYgdmVydGljYWxTY3JvbGxiYXJN
b2RlID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsYmFyTW9kZQotICAgICAgICAgICAgJiYgaGFzRW5h
YmxlZEhvcml6b250YWxTY3JvbGxiYXIgPT0gb3RoZXIuaGFzRW5hYmxlZEhvcml6b250YWxTY3Jv
bGxiYXIKLSAgICAgICAgICAgICYmIGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhciA9PSBvdGhl
ci5oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIKLSAgICAgICAgICAgICYmIHVzZURhcmtBcHBl
YXJhbmNlRm9yU2Nyb2xsYmFycyA9PSBvdGhlci51c2VEYXJrQXBwZWFyYW5jZUZvclNjcm9sbGJh
cnM7Ci0gICAgfQotfTsKLQotZW51bSBjbGFzcyBWaWV3cG9ydFJlY3RTdGFiaWxpdHkgewotICAg
IFN0YWJsZSwKLSAgICBVbnN0YWJsZSwKLSAgICBDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJh
Y3RpdmVseSAvLyBUaGlzIGltcGxpZXMgVW5zdGFibGUuCi19OwotCiBjbGFzcyBTY3JvbGxpbmdD
b29yZGluYXRvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdDb29yZGlu
YXRvcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNy
ZWF0ZShQYWdlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM3ZWJkMmZmY2M5Yzhm
ZTQwMGMwY2VjNjdkNjAxNjk2NzkxNGIxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaApAQCAtMCwwICsx
LDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTY3JvbGxUeXBl
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgdW5zaWduZWQgU3luY2hyb25v
dXNTY3JvbGxpbmdSZWFzb25zOwordHlwZWRlZiB1aW50NjRfdCBTY3JvbGxpbmdOb2RlSUQ7CisK
K2VudW0gY2xhc3MgU2Nyb2xsaW5nTm9kZVR5cGUgOiB1aW50OF90IHsKKyAgICBNYWluRnJhbWUs
CisgICAgU3ViZnJhbWUsCisgICAgRnJhbWVIb3N0aW5nLAorICAgIE92ZXJmbG93LAorICAgIEZp
eGVkLAorICAgIFN0aWNreQorfTsKKworZW51bSBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhh
dmlvckZsYWdzIHsKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvck5vcm1hbCAg
ICAgICAgICAgICAgICAgID0gMCwKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlv
ckluY2x1ZGVMYXllcklEcyAgICAgICAgID0gMSA8PCAwLAorICAgIFNjcm9sbGluZ1N0YXRlVHJl
ZUFzVGV4dEJlaGF2aW9ySW5jbHVkZU5vZGVJRHMgICAgICAgICAgPSAxIDw8IDEsCisgICAgU2Ny
b2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJQb3NpdGlvbnMgICA9IDEg
PDwgMiwKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckRlYnVnICAgICAgICAg
ICAgICAgICAgID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJJ
RHMgfCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVOb2RlSURzIHwgU2Ny
b2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJQb3NpdGlvbnMKK307Cit0
eXBlZGVmIHVuc2lnbmVkIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yOworCitlbnVt
IGNsYXNzIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24geworICAgIFNldCwKKyAgICBTZXRB
cHByb3hpbWF0ZSwKKyAgICBTeW5jCit9OworCitzdHJ1Y3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0
ZXJzIHsKKyAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5IHsg
U2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKKyAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRpY2FsU2Ny
b2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07CisKKyAgICBTY3JvbGxiYXJN
b2RlIGhvcml6b250YWxTY3JvbGxiYXJNb2RlIHsgU2Nyb2xsYmFyQXV0byB9OworICAgIFNjcm9s
bGJhck1vZGUgdmVydGljYWxTY3JvbGxiYXJNb2RlIHsgU2Nyb2xsYmFyQXV0byB9OworCisgICAg
Ym9vbCBoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CisgICAgYm9vbCBo
YXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9OworCisgICAgYm9vbCB1c2VEYXJr
QXBwZWFyYW5jZUZvclNjcm9sbGJhcnMgeyBmYWxzZSB9OworCisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyYgb3RoZXIpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgPT0gb3RoZXIuaG9yaXpvbnRh
bFNjcm9sbEVsYXN0aWNpdHkKKyAgICAgICAgICAgICYmIHZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0
eSA9PSBvdGhlci52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkKKyAgICAgICAgICAgICYmIGhvcml6
b250YWxTY3JvbGxiYXJNb2RlID09IG90aGVyLmhvcml6b250YWxTY3JvbGxiYXJNb2RlCisgICAg
ICAgICAgICAmJiB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPT0gb3RoZXIudmVydGljYWxTY3JvbGxi
YXJNb2RlCisgICAgICAgICAgICAmJiBoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciA9PSBv
dGhlci5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhcgorICAgICAgICAgICAgJiYgaGFzRW5h
YmxlZFZlcnRpY2FsU2Nyb2xsYmFyID09IG90aGVyLmhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJh
cgorICAgICAgICAgICAgJiYgdXNlRGFya0FwcGVhcmFuY2VGb3JTY3JvbGxiYXJzID09IG90aGVy
LnVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFyczsKKyAgICB9Cit9OworCitlbnVtIGNsYXNz
IFZpZXdwb3J0UmVjdFN0YWJpbGl0eSB7CisgICAgU3RhYmxlLAorICAgIFVuc3RhYmxlLAorICAg
IENoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5IC8vIFRoaXMgaW1wbGllcyBVbnN0
YWJsZS4KK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKaW5kZXggNTI0MzkzZGQxNmFhNjM3ZmYxNjFkNjc1YjgwZmZkOTRlN2FhMTUw
MC4uNmY3M2UwYTk4ZjYxZmJhMjc3NDRhYWNhNmViNGExYTkxN2M0MjA2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTQwMyw2ICs0
MDMsMjUgQEAgU3RyaW5nIFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVBc1RleHQoKQogICAg
IHJldHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitP
cHRpb25hbDxUb3VjaEFjdGlvbkRhdGE+IFNjcm9sbGluZ1RyZWU6OnRvdWNoQWN0aW9uRGF0YUF0
UG9pbnQoY29uc3QgSW50UG9pbnQgcCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBkb2Vz
IG5vdCBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIHJlZ2lvbnMgbWF0
Y2hpbmcgdGhpcyBwb2ludC4KKyAgICBmb3IgKGF1dG8mIHRvdWNoQWN0aW9uRGF0YSA6IG1fZXZl
bnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhKSB7CisgICAgICAgIGlmICh0b3VjaEFj
dGlvbkRhdGEucmVnaW9uLmNvbnRhaW5zKHApKQorICAgICAgICAgICAgcmV0dXJuIHRvdWNoQWN0
aW9uRGF0YTsKKyAgICB9CisKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCit2b2lkIFNj
cm9sbGluZ1RyZWU6OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8
VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJ
RCkKK3sKKyAgICBpZiAoYXV0byogc2Nyb2xsaW5nVHJlZU5vZGUgPSBub2RlRm9ySUQoc2Nyb2xs
aW5nTm9kZUlEKSkKKyAgICAgICAgc2Nyb2xsaW5nVHJlZU5vZGUtPnNldFRvdWNoQWN0aW9ucyh0
b3VjaEFjdGlvbnMpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggZWZjNjg0MTVjMzk0MzBkZjdmMjcwNDNmZTk4
MjMzMjc3NTU2NzYzMi4uOGU3ODZiNjI1OWE4YmI4M2FjMDY1MzIzMWY3MjdmYmRlMzM0YTNmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUg
IlJlZ2lvbi5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAi
VG91Y2hBY3Rpb24uaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBAIC0xMDQsNyArMTA1
LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgVHJhY2tpbmdUeXBl
IGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudE5hbWUs
IEludFBvaW50KTsKLSAgICAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgV0VCQ09S
RV9FWFBPUlQgT3B0aW9uYWw8VG91Y2hBY3Rpb25EYXRhPiB0b3VjaEFjdGlvbkRhdGFBdFBvaW50
KGNvbnN0IEludFBvaW50KSBjb25zdDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGljZXMoU2Ny
b2xsaW5nTm9kZUlELCB1bnNpZ25lZCAvKmhvcml6b250YWxJbmRleCovLCB1bnNpZ25lZCAvKnZl
cnRpY2FsSW5kZXgqLykgeyB9CkBAIC0xNTEsNiArMTU1LDkgQEAgcHVibGljOgogICAgIH0KICAg
ICAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Nyb2xsaW5nVHJlZUFzVGV4dCgpOworI2lm
IEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRvdWNo
QWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+LCBTY3JvbGxp
bmdOb2RlSUQpOworI2VuZGlmCiAgICAgCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRNYWluRnJh
bWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmluZGV4IDJmNDQxNWFjODg1MjY2OWM3MzBk
MjhhNjU3NTExMzFlNWJhMmM5OTMuLmFmNjMwYjEyOTczZGZmYmFhZjZmYWUzZjBhMzgzOWI5ZmY1
M2M0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZU5vZGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAj
aW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0
ZU5vZGUuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC03MSw2ICs3MiwxMSBAQCBw
dWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1bXAoV1RGOjpUZXh0U3RyZWFtJiwg
U2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0OwogCisjaWYgRU5BQkxFKFBP
SU5URVJfRVZFTlRTKQorICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zKCkg
Y29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbnM7IH0KKyAgICB2b2lkIHNldFRvdWNoQWN0aW9u
cyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykgeyBtX3RvdWNoQWN0aW9ucyA9
IHRvdWNoQWN0aW9uczsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBTY3JvbGxpbmdUcmVl
Tm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7
CiAgICAgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
b2xsaW5nVHJlZTsgfQpAQCAtODYsNiArOTIsOSBAQCBwcml2YXRlOgogICAgIGNvbnN0IFNjcm9s
bGluZ05vZGVJRCBtX25vZGVJRDsKIAogICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBtX3BhcmVudDsK
KyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBt
X3RvdWNoQWN0aW9uczsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwCmluZGV4
IDdlNzYzYzg5NTNkY2E4ZTZkZDdjYWNhZDYyNTI0MDdjNzBjNWY4NjMuLjQzNzc4MDA5ODUyOGJl
ZDEwOTYyZjQ4NjIwNzFiMjg2NzEwMTA5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKQEAgLTczLDcgKzczLDE5IEBAIHZvaWQgRXZl
bnRUcmFja2luZ1JlZ2lvbnM6OnVuaXRlKGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVu
dFRyYWNraW5nUmVnaW9uCiBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lv
bnMmIGEsIGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBiKQogewogICAgIHJldHVybiBhLmFz
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID09IGIuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24K
KyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgICAgICYmIGEudG91Y2hBY3Rpb25EYXRh
ID09IGIudG91Y2hBY3Rpb25EYXRhCisjZW5kaWYKICAgICAgICAgJiYgYS5ldmVudFNwZWNpZmlj
U3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5ldmVudFNwZWNpZmljU3luY2hyb25vdXNE
aXNwYXRjaFJlZ2lvbnM7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitib29sIG9w
ZXJhdG9yPT0oY29uc3QgVG91Y2hBY3Rpb25EYXRhJiBhLCBjb25zdCBUb3VjaEFjdGlvbkRhdGEm
IGIpCit7CisgICAgcmV0dXJuIGEudG91Y2hBY3Rpb25zID09IGIudG91Y2hBY3Rpb25zCisgICAg
ICAgICYmIGEuc2Nyb2xsaW5nTm9kZUlEID09IGIuc2Nyb2xsaW5nTm9kZUlECisgICAgICAgICYm
IGEucmVnaW9uID09IGIucmVnaW9uOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdp
b25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oCmlu
ZGV4IDNkNThiYTU1ZWZkNjNlZDliYWU0MDUwMWUzMDliODYxZmM5ZTljMDUuLmMyYTIwNjMwMWFm
MTdkYzE2Y2U4ZmQ3OWVlNTNiY2JmMWNhMTI2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaApAQCAtMzAsNiArMzAsMTIgQEAKICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCIKKyNp
bmNsdWRlICJUb3VjaEFjdGlvbi5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ZW51bSBjbGFzcyBUcmFja2luZ1R5cGUgOiB1aW50OF90IHsKQEAgLTM4LDYgKzQ0LDE4IEBAIGVu
dW0gY2xhc3MgVHJhY2tpbmdUeXBlIDogdWludDhfdCB7CiAgICAgU3luY2hyb25vdXMgPSAyCiB9
OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQordHlwZWRlZiB1aW50NjRfdCBTY3JvbGxp
bmdOb2RlSUQ7CitzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhIHsKKyAgICBPcHRpb25TZXQ8VG91Y2hB
Y3Rpb24+IHRvdWNoQWN0aW9ucyB7IFRvdWNoQWN0aW9uOjpBdXRvIH07CisgICAgU2Nyb2xsaW5n
Tm9kZUlEIHNjcm9sbGluZ05vZGVJRDsKKyAgICBSZWdpb24gcmVnaW9uOworfTsKKworYm9vbCBv
cGVyYXRvcj09KGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYsIGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYp
OworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBUb3VjaEFjdGlvbkRhdGEmIGEsIGNvbnN0
IFRvdWNoQWN0aW9uRGF0YSYgYikgeyByZXR1cm4gIShhID09IGIpOyB9CisjZW5kaWYKKwogc3Ry
dWN0IEV2ZW50VHJhY2tpbmdSZWdpb25zIHsKICAgICAvLyBSZWdpb24gZm9yIHdoaWNoIGV2ZW50
cyBjYW4gYmUgZGlzcGF0Y2hlZCB3aXRob3V0IGJsb2NraW5nIHNjcm9sbGluZy4KICAgICBSZWdp
b24gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CkBAIC00Niw2ICs2NCwxMCBAQCBzdHJ1Y3Qg
RXZlbnRUcmFja2luZ1JlZ2lvbnMgewogICAgIC8vIFRoZSBrZXkgaXMgdGhlIEV2ZW50IE5hbWUg
d2l0aCBhbiBhY3RpdmUgaGFuZGxlci4KICAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVu
dFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiAKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9FVkVOVFMpCisgICAgVmVjdG9yPFRvdWNoQWN0aW9uRGF0YT4gdG91Y2hBY3Rpb25EYXRhOwor
I2VuZGlmCisKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAogICAgIHZvaWQgdHJhbnNsYXRl
KEludFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmlu
ZGV4IDFiMTM0ZGZlYTNhMjUwZTUyY2ZkODY0YzhiYjE1NzNjYjg1NGMyMWYuLmE2MTc3ZjkyYTc3
ZGZmMDI5NGUxZmY5N2ZhMjE1MTE1YWJmMzRhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVRyZWVSZXNvbHZlci5jcHAKQEAgLTIzNiw2ICsyMzYsMTEgQEAgRWxlbWVudFVwZGF0ZXMg
VHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgIGF1dG8g
YmVmb3JlVXBkYXRlID0gcmVzb2x2ZVBzZXVkb1N0eWxlKGVsZW1lbnQsIHVwZGF0ZSwgUHNldWRv
SWQ6OkJlZm9yZSk7CiAgICAgYXV0byBhZnRlclVwZGF0ZSA9IHJlc29sdmVQc2V1ZG9TdHlsZShl
bGVtZW50LCB1cGRhdGUsIFBzZXVkb0lkOjpBZnRlcik7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9F
VkVOVFMpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
cG9pbnRlckV2ZW50c0VuYWJsZWQoKSkKKyAgICAgICAgbV9kb2N1bWVudC51cGRhdGVUb3VjaEFj
dGlvbkVsZW1lbnRzKGVsZW1lbnQsIHVwZGF0ZS5zdHlsZS5nZXQoKSk7CisjZW5kaWYKKwogICAg
IHJldHVybiB7IFdURk1vdmUodXBkYXRlKSwgZGVzY2VuZGFudHNUb1Jlc29sdmUsIFdURk1vdmUo
YmVmb3JlVXBkYXRlKSwgV1RGTW92ZShhZnRlclVwZGF0ZSkgfTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggM2IwNTI5YTRhOTU5
YTIzYmQ1ZDA0MGY1ZmEwMDhhZDdiMGZlYzcxZi4uNTRkMTk5ZTI1ZDg0YjI1MTgzZmQ5YmY5ZjAy
Y2I5NWI1YWM4Y2E3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCkBAIC0zMjksMTAgKzMyOSw0MCBAQCBPcHRpb25hbDxET01DYWNoZUVuZ2lu
ZTo6UmVjb3JkPiBBcmd1bWVudENvZGVyPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+OjpkZWNvZGUo
RAogICAgIHJldHVybiB7eyBXVEZNb3ZlKGlkZW50aWZpZXIpLCBXVEZNb3ZlKHVwZGF0ZVJlc3Bv
bnNlQ291bnRlciksIFdURk1vdmUocmVxdWVzdEhlYWRlcnNHdWFyZCksIFdURk1vdmUocmVxdWVz
dCksIFdURk1vdmUob3B0aW9ucy52YWx1ZSgpKSwgV1RGTW92ZShyZWZlcnJlciksIFdURk1vdmUo
cmVzcG9uc2VIZWFkZXJzR3VhcmQpLCBXVEZNb3ZlKHJlc3BvbnNlKSwgV1RGTW92ZShyZXNwb25z
ZUJvZHkpLCByZXNwb25zZUJvZHlTaXplIH19OwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQordm9pZCBBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0YT46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBUb3VjaEFjdGlvbkRhdGEmIHRvdWNoQWN0aW9uRGF0YSkKK3sKKyAg
ICBlbmNvZGVyIDw8IHRvdWNoQWN0aW9uRGF0YS50b3VjaEFjdGlvbnMgPDwgdG91Y2hBY3Rpb25E
YXRhLnNjcm9sbGluZ05vZGVJRCA8PCB0b3VjaEFjdGlvbkRhdGEucmVnaW9uOworfQorCitPcHRp
b25hbDxUb3VjaEFjdGlvbkRhdGE+IEFyZ3VtZW50Q29kZXI8VG91Y2hBY3Rpb25EYXRhPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8T3B0aW9uU2V0PFRvdWNoQWN0
aW9uPj4gdG91Y2hBY3Rpb25zOworICAgIGRlY29kZXIgPj4gdG91Y2hBY3Rpb25zOworICAgIGlm
ICghdG91Y2hBY3Rpb25zKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0
aW9uYWw8U2Nyb2xsaW5nTm9kZUlEPiBzY3JvbGxpbmdOb2RlSUQ7CisgICAgZGVjb2RlciA+PiBz
Y3JvbGxpbmdOb2RlSUQ7CisgICAgaWYgKCFzY3JvbGxpbmdOb2RlSUQpCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxSZWdpb24+IHJlZ2lvbjsKKyAgICBkZWNv
ZGVyID4+IHJlZ2lvbjsKKyAgICBpZiAoIXJlZ2lvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIHJldHVybiB7eyBXVEZNb3ZlKCp0b3VjaEFjdGlvbnMpLCBXVEZNb3ZlKCpz
Y3JvbGxpbmdOb2RlSUQpLCBXVEZNb3ZlKCpyZWdpb24pIH19OworfQorI2VuZGlmCisKIHZvaWQg
QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCiB7
CiAgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRj
aFJlZ2lvbjsKICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lm
aWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMp
CisgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvbkRhdGE7Cisj
ZW5kaWYKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5n
UmVnaW9ucykKQEAgLTM0Myw4ICszNzMsMTYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJh
Y2tpbmdSZWdpb25zPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEV2ZW50VHJhY2tpbmcKICAg
ICBIYXNoTWFwPFN0cmluZywgUmVnaW9uPiBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRj
aFJlZ2lvbnM7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShldmVudFNwZWNpZmljU3luY2hyb25v
dXNEaXNwYXRjaFJlZ2lvbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgRU5BQkxFKFBP
SU5URVJfRVZFTlRTKQorICAgIFZlY3RvcjxUb3VjaEFjdGlvbkRhdGE+IHRvdWNoQWN0aW9uRGF0
YTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRvdWNoQWN0aW9uRGF0YSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5jaHJvbm91
c0Rpc3BhdGNoUmVnaW9uID0gV1RGTW92ZShhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7CiAg
ICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb25zID0gV1RGTW92ZShldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMp
OworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBldmVudFRyYWNraW5nUmVnaW9ucy50
b3VjaEFjdGlvbkRhdGEgPSBXVEZNb3ZlKHRvdWNoQWN0aW9uRGF0YSk7CisjZW5kaWYKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTE1LDYgKzk1MywxNSBAQCBib29sIEFyZ3VtZW50Q29kZXI8
UmVnaW9uPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlZ2lvbiYgcmVnaW9uKQogICAgIHJl
dHVybiB0cnVlOwogfQogCitPcHRpb25hbDxSZWdpb24+IEFyZ3VtZW50Q29kZXI8UmVnaW9uPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgUmVnaW9uIHJlZ2lvbjsKKyAgICBpZiAo
IWRlY29kZShkZWNvZGVyLCByZWdpb24pKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHJlZ2lvbjsKK30KKwogdm9pZCBBcmd1bWVudENvZGVyPExlbmd0aD46OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBMZW5ndGgmIGxlbmd0aCkKIHsKICAgICBTaW1w
bGVBcmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShlbmNvZGVyLCBsZW5ndGgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAzYWU3ZTQ3NWQ4
MzM2ZWZjMjdkY2YyYzUxZjcyMmNjMmRiOTg0NWE2Li4yZWY1ZTQzYWRiNDg5NTE4MTljOWE3MTNk
NjllMDEzZDIwZGQ2ZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaApAQCAtMTIxLDYgKzEyMSw5IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzOwogc3RydWN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKIHN0cnVjdCBUZXh0Q2hlY2tp
bmdSZXN1bHQ7CiBzdHJ1Y3QgVGV4dEluZGljYXRvckRhdGE7CisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQorc3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKKyNlbmRpZgogc3RydWN0IFZpZXdwb3J0
QXR0cmlidXRlczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKICAgICAKQEAgLTE5OSw2ICsyMDIs
MTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpET01DYWNoZUVu
Z2luZTo6UmVjb3JkPiB7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkRPTUNhY2hlRW5n
aW5lOjpSZWNvcmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUb3VjaEFj
dGlvbkRhdGE+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlRvdWNoQWN0aW9uRGF0YSYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpUb3Vj
aEFjdGlvbkRhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworI2VuZGlmCisKIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkV2ZW50VHJhY2tp
bmdSZWdpb25zJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpF
dmVudFRyYWNraW5nUmVnaW9ucyYpOwpAQCAtMzE2LDYgKzMyNiw3IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF0aD4gewogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpSZWdpb24+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5j
b2RlciYsIGNvbnN0IFdlYkNvcmU6OlJlZ2lvbiYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6UmVnaW9uJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6
OlJlZ2lvbj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6TGVuZ3RoPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA1Zjc1NGFhNTVmODZkNDAxY2Q3NmJlZTY1Y2Q5
NTRkZGQ3NjFmODc2Li40MGFiMzY3ZTFiOTY0YTk0N2Q3ZWEwMzNlNTcyYmNiYTNiMDgyYmE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAg
LTI1ODEsNiArMjU4MSwxNCBAQCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJ
U2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9jaXR5OihDR1BvaQogICAgIC8vIHpvb21p
bmcuIFdlJ2xsIGFuaW1hdGUgdG8gdGhlIHJpZ2h0IHBsYWNlIG9uY2UgdGhlIHpvb20gZmluaXNo
ZXMuCiAgICAgaWYgKFtzY3JvbGxWaWV3IGlzWm9vbWluZ10pCiAgICAgICAgICp0YXJnZXRDb250
ZW50T2Zmc2V0ID0gW3Njcm9sbFZpZXcgY29udGVudE9mZnNldF07CisjaWYgRU5BQkxFKFBPSU5U
RVJfRVZFTlRTKQorICAgIGVsc2UgeworICAgICAgICBpZiAoW19jb250ZW50VmlldyBwcmV2ZW50
c1Bhbm5pbmdJblhBeGlzXSkKKyAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQtPnggPSBz
Y3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueDsKKyAgICAgICAgaWYgKFtfY29udGVudFZpZXcgcHJl
dmVudHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgICAgICB0YXJnZXRDb250ZW50T2Zmc2V0LT55
ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lnk7CisgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxF
KENTU19TQ1JPTExfU05BUCkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBpZiAoV2Vi
S2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdl
LT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCkpIHsKICAgICAgICAgLy8gRklYTUU6IEhlcmUs
IEknbSBmaW5kaW5nIHRoZSBtYXhpbXVtIGhvcml6b250YWwvdmVydGljYWwgc2Nyb2xsIG9mZnNl
dHMuIFRoZXJlJ3MgcHJvYmFibHkgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMuCkBAIC0yNjE4LDYg
KzI2MjYsMjAgQEAgLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xsVG9Ub3A6KFVJU2Nyb2xsVmll
dyAqKXNjcm9sbFZpZXcKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsKIH0KIAorLSAo
Q0dQb2ludClfc2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9m
ZnNldEZvck9mZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNs
YXRpb24gc3RhcnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludCls
b2NhdGlvbkluVmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRp
Y2FsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7CisgICAgaWYgKCFbX2NvbnRlbnRWaWV3
IHByZXZlbnRzUGFubmluZ0luWEF4aXNdICYmICFbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmlu
Z0luWUF4aXNdKQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAgQ0dQb2ludCBhZGp1c3Rl
ZENvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShvZmZzZXQueCwgb2Zmc2V0LnkpOworICAgIGlm
IChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKQorICAgICAgICBhZGp1c3Rl
ZENvbnRlbnRPZmZzZXQueCA9IHN0YXJ0Lng7CisgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVu
dHNQYW5uaW5nSW5ZQXhpc10pCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC55ID0gc3Rh
cnQueTsKKworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisKIC0gKHZvaWQp
c2Nyb2xsVmlld0RpZFNjcm9sbDooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAgIGlm
ICghW3NlbGYgdXNlc1N0YW5kYXJkQ29udGVudFZpZXddICYmIFtfY3VzdG9tQ29udGVudFZpZXcg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJfc2Nyb2xsVmlld0RpZFNjcm9sbDopXSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRl
eCBhOTU5YzkzYmM3NTlkMWM5ODY2OGM4MWRhZGEwMWUyNjdmMzViOWIxLi5hOGM2ZjdjMzVhZWNj
YjkzODBmOTE0YzE5YTRlMzM3ZGExNWFmOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0yMDYsNiArMjA2LDE4IEBAIFN0cmluZyBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29u
c3QKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VW
RU5UUykKK09wdGlvbmFsPFRvdWNoQWN0aW9uRGF0YT4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludChJbnRQb2ludCBwKSBjb25zdAoreworICAg
IHJldHVybiBtX3Njcm9sbGluZ1RyZWUtPnRvdWNoQWN0aW9uRGF0YUF0UG9pbnQocCk7Cit9CisK
K3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2V0VG91Y2hBY3Rpb25zRm9y
U2Nyb2xsaW5nTm9kZUlEKE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zLCBTY3Jv
bGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlEKQoreworICAgIG1fc2Nyb2xsaW5nVHJlZS0+c2V0
VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKHRvdWNoQWN0aW9ucywgc2Nyb2xsaW5nTm9k
ZUlEKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVO
QUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaAppbmRleCBiMzJkNzlmZTkyODliMTQ1N2M4ZWFkMmQ4ZDM1YzNiNzlkYWVj
OTZhLi5jMGIwMmMxOWUzMDJlOTUyYWYxYTk5ZjIyNmRlNWNiZmQyOGJkYWRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAgLTk4LDYgKzk4LDEx
IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29uc3Q7CiAK
KyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgT3B0aW9uYWw8V2ViQ29yZTo6VG91Y2hB
Y3Rpb25EYXRhPiB0b3VjaEFjdGlvbkRhdGFBdFBvaW50KFdlYkNvcmU6OkludFBvaW50KSBjb25z
dDsKKyAgICB2b2lkIHNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8
V2ViQ29yZTo6VG91Y2hBY3Rpb24+LCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOworI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgdm9pZCBjb25uZWN0U3RhdGVOb2RlTGF5ZXJzKFdlYkNvcmU6OlNj
cm9sbGluZ1N0YXRlVHJlZSYsIGNvbnN0IFJlbW90ZUxheWVyVHJlZUhvc3QmKTsKICNpZiBFTkFC
TEUoQ1NTX1NDUk9MTF9TTkFQKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDRjYzdlMWE4N2I4NWFjNzA2
MzdlMTVmNDRjYzFlNGY4ZjkyMTljNGMuLmM5ZTZkMTIyMTQyNDY4MzQ5YjI3Y2FiNmEzM2Y2MTUz
ZWFmNWI2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KQEAgLTY3LDkgKzY3LDI3IEBAIC0gKHZvaWQpc2Ny
b2xsVmlld1dpbGxCZWdpbkRyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiAgICAg
X3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFdpbGxTdGFydCgpOwogfQogCi0jaWYg
RU5BQkxFKENTU19TQ1JPTExfU05BUCkKIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2lu
ZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pbnQpdmVsb2Np
dHkgdGFyZ2V0Q29udGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAqKXRhcmdldENvbnRlbnRPZmZz
ZXQKIHsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgaWYgKCFbc2Nyb2xsVmlldyBp
c1pvb21pbmddKSB7CisgICAgICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gX3Njcm9sbGluZ1RyZWVO
b2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS50b3VjaEFjdGlvbnMoKTsKKyAgICAgICAgaWYg
KHRvdWNoQWN0aW9ucyAhPSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6QXV0byAmJiB0b3VjaEFjdGlv
bnMgIT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgeworICAgICAgICAgICAg
Ym9vbCBjYW5QYW5YID0gdHJ1ZTsKKyAgICAgICAgICAgIGJvb2wgY2FuUGFuWSA9IHRydWU7Cisg
ICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlv
bjo6UGFuWCkpIHsKKyAgICAgICAgICAgICAgICBjYW5QYW5YID0gZmFsc2U7CisgICAgICAgICAg
ICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eCA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNldC54
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29udGFpbnMo
V2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblkpKSB7CisgICAgICAgICAgICAgICAgY2FuUGFuWSA9
IGZhbHNlOworICAgICAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQtPnkgPSBzY3JvbGxW
aWV3LmNvbnRlbnRPZmZzZXQueTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyNl
bmRpZgorCisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBDR0Zsb2F0IGhvcml6b250
YWxUYXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT54OwogICAgIENHRmxvYXQgdmVydGljYWxU
YXJnZXQgPSB0YXJnZXRDb250ZW50T2Zmc2V0LT55OwogCkBAIC05Niw4ICsxMTQsOCBAQCAtICh2
b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcg
d2l0aFZlbG9jaXR5OihDR1BvaQogICAgICAgICB8fCBvcmlnaW5hbFZlcnRpY2FsU25hcFBvc2l0
aW9uICE9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVu
dFZlcnRpY2FsU25hcFBvaW50SW5kZXgoKSkgewogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVE
ZWxlZ2F0ZS0+Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoX3Njcm9sbGluZ1RyZWVO
b2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5jdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludElu
ZGV4KCksIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVu
dFZlcnRpY2FsU25hcFBvaW50SW5kZXgoKSk7CiAgICAgfQotfQogI2VuZGlmCit9CiAKIC0gKHZv
aWQpc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdp
bGxEZWNlbGVyYXRlOihCT09MKXdpbGxEZWNlbGVyYXRlCiB7CkBAIC0xMDUsNiArMTIzLDkgQEAg
LSAodm9pZClzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZp
ZXcgd2lsbERlY2VsZXJhdGU6KEJPT0wKICAgICAgICAgX2luVXNlckludGVyYWN0aW9uID0gTk87
CiAgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxWaWV3RGlkU2Nyb2xs
KHNjcm9sbFZpZXcuY29udGVudE9mZnNldCwgX2luVXNlckludGVyYWN0aW9uKTsKICAgICAgICAg
X3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbERpZEVuZCgpOworI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKKyAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9s
bGluZ05vZGUoKS5zZXRUb3VjaEFjdGlvbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OkF1dG8pOwor
I2VuZGlmCiAgICAgfQogfQogCkBAIC0xMTQsOSArMTM1LDMwIEBAIC0gKHZvaWQpc2Nyb2xsVmll
d0RpZEVuZERlY2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogICAgICAgICBf
aW5Vc2VySW50ZXJhY3Rpb24gPSBOTzsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdh
dGUtPnNjcm9sbFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0LCBfaW5Vc2Vy
SW50ZXJhY3Rpb24pOwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xs
RGlkRW5kKCk7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgICAgICBfc2Nyb2xsaW5n
VHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnNldFRvdWNoQWN0aW9ucyhXZWJDb3Jl
OjpUb3VjaEFjdGlvbjo6QXV0byk7CisjZW5kaWYKICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoUE9J
TlRFUl9FVkVOVFMpCistIChDR1BvaW50KV9zY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3Jv
bGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1BvaW50KW9mZnNldCB0cmFuc2xhdGlv
bjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFydFBvaW50OihDR1BvaW50KXN0YXJ0IGxvY2F0aW9u
SW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGhvcml6b250YWxWZWxvY2l0eTooaW5vdXQg
ZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopdnYKK3sKKyAgICBh
dXRvIHRvdWNoQWN0aW9ucyA9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdO
b2RlKCkudG91Y2hBY3Rpb25zKCk7CisgICAgaWYgKHRvdWNoQWN0aW9ucyA9PSBXZWJDb3JlOjpU
b3VjaEFjdGlvbjo6QXV0byB8fCB0b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246
Ok1hbmlwdWxhdGlvbikKKyAgICAgICAgcmV0dXJuIG9mZnNldDsKKworICAgIENHUG9pbnQgYWRq
dXN0ZWRDb250ZW50T2Zmc2V0ID0gQ0dQb2ludE1ha2Uob2Zmc2V0LngsIG9mZnNldC55KTsKKwor
ICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5Y
KSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnggPSBzdGFydC54OworICAgIGlmICgh
dG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5ZKSkKKyAgICAg
ICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFydC55OworCisgICAgcmV0dXJuIGFkanVz
dGVkQ29udGVudE9mZnNldDsKK30KKyNlbmRpZgorCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhZDdkN2RjOTI4MmUz
NTdmMzBlZjI0ZTI4OWExMTNkYTYzMjAxZDkyLi40MGRjMzA5NDBhMWQxZDkzYWY1ZDJiMzMxZDJj
YmUyYWJkNGU0YzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
Njg0LDYgKzY4NCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdGFydERhdGFJbnRlcmFj
dGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbik7CiAgICAgdm9pZCByZXF1ZXN0QWRkaXRpb25h
bEl0ZW1zRm9yRHJhZ1Nlc3Npb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24pOwogICAgIHZvaWQg
ZGlkQ29uY2x1ZGVFZGl0RGF0YUludGVyYWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JEYXRhPik7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGJvb2wgaXNTY3Jv
bGxpbmdPclpvb21pbmcoKSBjb25zdCB7IHJldHVybiBtX2lzU2Nyb2xsaW5nT3Jab29taW5nOyB9
CisjZW5kaWYKICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCmluZGV4IGQ1MDhhM2U0YmE3Y2Q3YWM4MjE4NmU2OWE2YzI3NWE1YTBjODQzN2UuLjVk
OWViNjk2YTY5NDA2NTAyNTgzYjQ5ZWVlMTQ5MjRjZWRiMGFjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAg
LTE5Niw2ICsxOTYsMTAgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAgICBSZXRh
aW5QdHI8VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hFdmVudEdlc3R1
cmVSZWNvZ25pemVyOwogCiAgICAgQk9PTCBfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3Vz
bHk7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIEJPT0wgX3ByZXZlbnRzUGFubmlu
Z0luWEF4aXM7CisgICAgQk9PTCBfcHJldmVudHNQYW5uaW5nSW5ZQXhpczsKKyNlbmRpZgogCiAg
ICAgUmV0YWluUHRyPFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplcj4gX3Npbmds
ZVRhcEdlc3R1cmVSZWNvZ25pemVyOwogICAgIFJldGFpblB0cjxfVUlXZWJIaWdobGlnaHRMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplcj4gX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25p
emVyOwpAQCAtMzQ5LDYgKzM1MywxMCBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24mIGZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb247CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIFVJV2ViRm9ybUFjY2Vzc29yeSAqZm9ybUFjY2Vzc29yeVZpZXc7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVGV4dElucHV0QXNzaXN0YW50SXRl
bSAqaW5wdXRBc3Npc3RhbnRJdGVtRm9yV2ViVmlldzsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVO
VFMpCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgcHJldmVudHNQYW5uaW5n
SW5YQXhpczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bh
bm5pbmdJbllBeGlzOworI2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFVJVmlldyA8V0tGb3JtQ29udHJvbD4gKmRhdGFM
aXN0VGV4dFN1Z2dlc3Rpb25zSW5wdXRWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYjI4ZjE3N2Nh
MTQ4NWY3NWUxNGNjY2YxNTgyODRjMjk2MmI0Yjc5MS4uNTgzOGQyMDUxZTg3ZTAxNWI0YjRhYjQz
MTllMTFjNGRlNzY4ZGZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMjksNiArMTI5LDExIEBACiAj
aW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tQbGF0Zm9ybUZpbGVVcGxvYWRQYW5lbC5tbT4KICNl
bmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorI2ltcG9ydCAiUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgor
I2VuZGlmCisKICNpZiBQTEFURk9STShXQVRDSE9TKQogCiBAaW50ZXJmYWNlIFdLQ29udGVudFZp
ZXcgKFdhdGNoU3VwcG9ydCkgPFdLRm9jdXNlZEZvcm1Db250cm9sVmlld0RlbGVnYXRlLCBXS1Nl
bGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSwgV0tUZXh0SW5wdXRMaXN0Vmlld0Nv
bnRyb2xsZXJEZWxlZ2F0ZT4KQEAgLTYwOCw2ICs2MTMsMTggQEAgc3RhdGljIGlubGluZSBib29s
IGhhc0ZvY3VzZWRFbGVtZW50KFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiBmb2N1
c2VkRWwKICAgICByZXR1cm4gKGZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUg
IT0gV2ViS2l0OjpJbnB1dFR5cGU6Ok5vbmUpOwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQorLSAoQk9PTClwcmV2ZW50c1Bhbm5pbmdJblhBeGlzCit7CisgICAgcmV0dXJuIF9wcmV2
ZW50c1Bhbm5pbmdJblhBeGlzOworfQorCistIChCT09MKXByZXZlbnRzUGFubmluZ0luWUF4aXMK
K3sKKyAgICByZXR1cm4gX3ByZXZlbnRzUGFubmluZ0luWUF4aXM7Cit9CisjZW5kaWYKKwogLSAo
V0tGb3JtSW5wdXRTZXNzaW9uICopX2Zvcm1JbnB1dFNlc3Npb24KIHsKICAgICByZXR1cm4gX2Zv
cm1JbnB1dFNlc3Npb24uZ2V0KCk7CkBAIC04NTQsNiArODcxLDEwIEBAIC0gKHZvaWQpY2xlYW51
cEludGVyYWN0aW9uCiAgICAgX2hhc1NldFVwSW50ZXJhY3Rpb25zID0gTk87CiAgICAgX3N1cHBy
ZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucyA9IHsgfTsKICAgICBfaXNab29taW5nVG9SZXZl
YWxGb2N1c2VkRWxlbWVudCA9IE5POworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAg
IFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOworI2VuZGlmCiB9CiAKIC0gKHZv
aWQpX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKQEAgLTExMjEsMTYgKzExNDIsNTQg
QEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihVSVdlYlRvdWNoRXZlbnRzR2Vz
dHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKICAgICBXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZl
bnQgbmF0aXZlV2ViVG91Y2hFdmVudChsYXN0VG91Y2hFdmVudCk7CiAgICAgbmF0aXZlV2ViVG91
Y2hFdmVudC5zZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoIV9jYW5TZW5kVG91Y2hFdmVudHNB
c3luY2hyb25vdXNseSB8fCBbZ2VzdHVyZVJlY29nbml6ZXIgaXNEZWZhdWx0UHJldmVudGVkXSk7
CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgaWYgKGF1dG8qIHNjcm9sbGluZ0Nv
b3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSkgeworICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIHRvdWNoUG9pbnQgOiBuYXRpdmVXZWJUb3VjaEV2ZW50LnRvdWNo
UG9pbnRzKCkpIHsKKyAgICAgICAgICAgIGlmICh0b3VjaFBvaW50LnBoYXNlKCkgIT0gV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZCkKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICAgICAgaWYgKGF1dG8gdG91Y2hBY3Rpb25EYXRhID0gc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPnRvdWNoQWN0aW9uRGF0YUF0UG9pbnQodG91Y2hQb2ludC5sb2NhdGlv
bigpKSkgeworICAgICAgICAgICAgICAgIGlmICh0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9u
cyA9PSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6Tm9uZSkKKyAgICAgICAgICAgICAgICAgICAgW190
b3VjaEV2ZW50R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVmYXVsdFByZXZlbnRlZDpZRVNdOworICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKCF0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucy5jb250
YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKSkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoYXV0byBzY3JvbGxpbmdOb2RlSUQgPSB0b3VjaEFjdGlvbkRhdGEtPnNjcm9s
bGluZ05vZGVJRCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9y
LT5zZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQodG91Y2hBY3Rpb25EYXRhLT50b3Vj
aEFjdGlvbnMsIHRvdWNoQWN0aW9uRGF0YS0+c2Nyb2xsaW5nTm9kZUlEKTsKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9u
RGF0YS0+dG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQaW5jaFpv
b20pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF93ZWJWaWV3LnNjcm9sbFZpZXcucGlu
Y2hHZXN0dXJlUmVjb2duaXplci5lbmFibGVkID0gTk87CisgICAgICAgICAgICAgICAgICAgICAg
ICBfcHJldmVudHNQYW5uaW5nSW5YQXhpcyA9ICF0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9u
cy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBfcHJldmVudHNQYW5uaW5nSW5ZQXhpcyA9ICF0b3VjaEFjdGlvbkRhdGEtPnRvdWNo
QWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisjZW5kaWYKKwogICAgIGlmIChfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3Vz
bHkpCiAgICAgICAgIF9wYWdlLT5oYW5kbGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkobmF0aXZl
V2ViVG91Y2hFdmVudCk7CiAgICAgZWxzZQogICAgICAgICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVu
dFN5bmNocm9ub3VzbHkobmF0aXZlV2ViVG91Y2hFdmVudCk7CiAKLSAgICBpZiAobmF0aXZlV2Vi
VG91Y2hFdmVudC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCisgICAgaWYgKG5hdGl2ZVdl
YlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKSB7CiAgICAgICAgIF9jYW5T
ZW5kVG91Y2hFdmVudHNBc3luY2hyb25vdXNseSA9IE5POworCisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQorICAgICAgICBpZiAoIV9wYWdlLT5pc1Njcm9sbGluZ09yWm9vbWluZygpKQorICAg
ICAgICAgICAgW3NlbGYgX3Jlc2V0UGFubmluZ1ByZXZlbnRpb25GbGFnc107CisjZW5kaWYKKyAg
ICB9CiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKy0gKHZvaWQpX3Jl
c2V0UGFubmluZ1ByZXZlbnRpb25GbGFncworeworICAgIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlz
ID0gTk87CisgICAgX3ByZXZlbnRzUGFubmluZ0luWUF4aXMgPSBOTzsKK30KKyNlbmRpZgorCiAt
ICh2b2lkKV9pbnNwZWN0b3JOb2RlU2VhcmNoUmVjb2duaXplZDooVUlHZXN0dXJlUmVjb2duaXpl
ciAqKWdlc3R1cmVSZWNvZ25pemVyCiB7CiAgICAgQVNTRVJUKF9pbnNwZWN0b3JOb2RlU2VhcmNo
RW5hYmxlZCk7CkBAIC0yMTk1LDYgKzIyNTQsMTAgQEAgLSAodm9pZClfZGlkRW5kU2Nyb2xsaW5n
T3Jab29taW5nCiAgICAgfQogICAgIF9wYWdlLT5zZXRJc1Njcm9sbGluZ09yWm9vbWluZyhmYWxz
ZSk7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgW3NlbGYgX3Jlc2V0UGFubmlu
Z1ByZXZlbnRpb25GbGFnc107CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAgICAg
W19mb2N1c2VkRm9ybUNvbnRyb2xWaWV3IGVuZ2FnZUZvY3VzZWRGb3JtQ29udHJvbE5hdmlnYXRp
b25dOwogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzJhYmQ3ZDY3OTczNjYyYzE3NDYyZDYwNTNlYTVjYzg3ZWNh
NWQ5YS4uYzQwOGUwNjA0MDg0MmRlYjgyZjUyZDA1Y2M4NDJiNDM5MzlmYTc0NSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDE5LTAxLTI0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5j
b20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhl
IHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBu
ZXcgc2VyaWVzIG9mIHRlc3RzIHRoYXQgY2hlY2sgdGhhdCB0aGUgIm5vbmUiLCAicGFuLXgiLCAi
cGFuLXkiIGFuZCAicGluY2gtem9vbSIgdmFsdWVzIGhhdmUgdGhlIGV4cGVjdGVkCisgICAgICAg
IGltcGFjdCBvbiBwYWdlIHBhbm5pbmcgb24gaU9TLgorCisgICAgICAgICogcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmct
dG91Y2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbDogQWRkZWQu
CisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1l
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
cGFuLXgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1w
YW4teS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29t
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRz
LXNjcm9sbGluZy5odG1sOiBBZGRlZC4KKwogMjAxOS0wMS0yNCAgSm9obiBXaWxhbmRlciAgPHdp
bGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgQWQgQ2xpY2sgQXR0cmlidXRpb24gYXMg
YW4gaW50ZXJuYWwvZXhwZXJpbWVudGFsIGZlYXR1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MjdlOGFmODFiZDk4NGM4YzM0MDcwNTUxYWY1YjYxZTkyNzBmZjgxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LW5vbmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBz
ZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Ny
b2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJm
bG93LXNjcm9sbGluZy10b3VjaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMwMDcyOTEwMjQ1
ZWY1NzU4N2ViZTljNTJjOWZhYmMwNTMyZDFjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9s
bGluZy10b3VjaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0
aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIGluIGNvbnRlbnQgaG9zdGVkIGluIGEgc2Ny
b2xsYWJsZSBjb250YWluZXIgdXNpbmcgJy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3Vj
aCcgcHJldmVudHMgc2Nyb2xsaW5nIG9mIHRoYXQgY29udGFpbmVyLiAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZs
b3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45ZTk2MTRmZmVmY2VmYmVhZmU2NzQxNzRiNTgxNTQxYzBmMjM1MTQxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
aW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9
MSI+Cis8c3R5bGU+CisKKyNzY3JvbGxpbmctY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAg
IGhlaWdodDogNDAwcHg7CisgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAtd2Via2l0LW92ZXJm
bG93LXNjcm9sbGluZzogdG91Y2g7Cit9CisKKyNzY3JvbGxpbmctY29udGFpbmVyID4gZGl2IHsK
KyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAg
d2lkdGg6IDIwMCU7CisgICAgaGVpZ2h0OiAyMDAlOworICAgIHRvdWNoLWFjdGlvbjogbm9uZTsK
K30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ic2Nyb2xsaW5nLWNvbnRh
aW5lciI+PGRpdj48L2Rpdj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCithc3luY190ZXN0KHRlc3QgPT4g
eworICAgIGNvbnN0IHNjcm9sbGluZ0NvbnRhaW5lciA9IGRvY3VtZW50LmJvZHkuZmlyc3RFbGVt
ZW50Q2hpbGQ7CisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1
MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdDb250YWlu
ZXIuc2Nyb2xsTGVmdCwgMCwgIlRoZSBzY3JvbGxpbmcgY29udGFpbmVyIHdhcyBub3Qgc2Nyb2xs
ZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdDb250
YWluZXIuc2Nyb2xsVG9wLCAwLCAiVGhlIHNjcm9sbGluZyBjb250YWluZXIgd2FzIG5vdCBzY3Jv
bGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30s
ICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0
ZWQgaW4gYSBzY3JvbGxhYmxlIGNvbnRhaW5lciB1c2luZyAnLXdlYmtpdC1vdmVyZmxvdy1zY3Jv
bGxpbmc6IHRvdWNoJyBwcmV2ZW50cyBzY3JvbGxpbmcgb2YgdGhhdCBjb250YWluZXIuIik7CisK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1u
b25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2
NzUxYmRkN2MzNDYyYTFlMDg2ZmZjNzNmMzUzZWQ0NGRhZjdmYmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJh
bWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgVGVzdGluZyB0aGF0IHNl
dHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIG9uIGFuIGlmcmFtZSBhbmQgaW50ZXJhY3Rpbmcgd2l0
aCBpdHMgY29udGVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5o
dG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24t
aWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDkyN2VhOGRiNDYxNzQzNDFjNTFhMGM0Y2M1MjUzZTVi
NjIwN2EyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxl
PTEiPgorPHN0eWxlPgorCitpZnJhbWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBs
ZWZ0OiAwOworICAgIHRvcDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBw
eDsKKyAgICB0b3VjaC1hY3Rpb246IG5vbmU7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxpZnJhbWU+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKworYXN5bmNfdGVzdCh0ZXN0ID0+IHsK
KyAgICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5ib2R5LmZpcnN0RWxlbWVudENoaWxkOworICAg
IGNvbnN0IHRhcmdldCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgi
c3R5bGUiLCBgCisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMDsK
KyAgICAgICAgdG9wOiAwOworICAgICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgaGVpZ2h0OiAy
MDAlOworICAgIGApOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUw
LCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFn
ZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ug
d2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsK
KyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24g
YW4gaWZyYW1lIGFuZCBpbnRlcmFjdGluZyB3aXRoIGl0cyBjb250ZW50IHByZXZlbnRzIHBhZ2Ug
c2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMDJiMTMwNDk2OGEyOTFlYWRkMTM3Mzk1MjZmYzBkOGNiZTJhMjliCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBU
ZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYSBwYXJlbnQgZWxlbWVu
dCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWE0ODA3OTNmNzkwYTVjODYyNDE3NjlmOTkzMWU4ZjQ4MGNmM2I3NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1ub25lLW9uLXBhcmVudC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9y
dCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVp
Z2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0
eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAi
MjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnRvdWNoQWN0aW9uID0gIm5vbmUiOwor
CisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVu
KCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJU
aGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxl
ZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJU
ZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYSBwYXJlbnQgZWxlbWVu
dCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQwMGI4
M2JiOThlNGFlNWRkYzlhNTljOTg2NzJhNmEwMzI5Y2U4YgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWwKQEAgLTAs
MCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lk
dGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJn
ZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVz
dCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBk
b2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxl
LnRvdWNoQWN0aW9uID0gIm5vbmUiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9
LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3
aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4
LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAi
VGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0
LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246
IG5vbmUgb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1w
YW4teC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdlNzgzNzlkZjQ1YTcxNzc0NzZjOGJlN2I1
ZDY0MDQwZjBhYWNkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVt
ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB5LWF4aXMuIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBhbi14LXBhbi15LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTk3YmRlMzI3ZmMyOWMzYWU0
Yjc4MGExMTE2NDdjZDY4ZmQ1ZjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyAndG91Y2gtYWN0aW9uOiBw
YW4teCBwYW4teScgb24gYW4gZWxlbWVudCBhbGxvd3MgcGFnZSBzY3JvbGxpbmcgaW4gYm90aCBh
eGVzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBhbi14LXBhbi15Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjI5MWE0ZDhjNjdjMjIx
NTFjMjI5ZDgzN2Q3MWE4ZjNkMDBhYjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwKQEAgLTAsMCAr
MSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
dXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRf
dGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkg
PT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1
bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRv
dWNoQWN0aW9uID0gInBhbi14IHBhbi15IjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAx
NTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9ub3Rf
ZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0
aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cucGFnZVlPZmZz
ZXQsIDAsICJUaGUgcGFnZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAg
dGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgJ3RvdWNoLWFj
dGlvbjogcGFuLXggcGFuLXknIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugc2Nyb2xsaW5nIGlu
IGJvdGggYXhlcy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjkyMDVmN2VmNWRhMmNhYjcw
MDE5Y2ZiOGVhNzBmOTVkNzdjNmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwt
c2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdp
ZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9u
ID0gInBhbi14IjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwg
eTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5w
YWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdh
cyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7Cisg
ICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBh
biBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB5LWF4aXMuIik7CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4t
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tcGFuLXktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZjY1OGMzODY0MjI2NzE1YWU2N2Vh
NDJmYmI5Mjg2ODA2OTI4NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVy
ZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGFuLXggb24gYW4g
ZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeC1heGlzLiAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15Lmh0
bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MDkwZDM5NjAxZmJlZTE3YmZkMWI5NWYyNDNlOWZhYmM1MjI3OTVlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXBhbi15Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwor
J3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIy
MDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lk
dGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgi
OworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi15IjsKKworICAgIHVpLnN3
aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2Fz
IG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFs
cyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHkt
YXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0
IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ug
c2Nyb2xsaW5nIGluIHRoZSB4LWF4aXMuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1w
aW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTRlNjc2
MTVlMmE1OTk4ZjMzMzNmOTBmZGEzMGRkMWRjYTVhNDY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dz
LXpvb21pbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhh
dCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IGFsbG93cyBw
YWdlIHpvb21pbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sIGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21p
bmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZGE2M2M5NDI5ZTFhYTEzOTAyNmVkNDMxM2NlYTZkNWQ0Nzg3
OTc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbApAQCAtMCwwICsxLDI5IEBA
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmll
d3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFs
LXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3
aWR0aDogIjQwMHB4IiwgaGVpZ2h0OiAiNDAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAg
ICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9k
eS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlv
biA9ICJwaW5jaC16b29tIjsKKworICAgIHVpLnBpbmNoT3V0KHsgeDogNTAsIHk6IDUwLCB3aWR0
aDogMTAwLCBoZWlnaHQ6IDEwMCwgc2NhbGU6IDAuNSB9KS50aGVuKCgpID0+IHsKKyAgICAgICAg
YXNzZXJ0X25vdF9lcXVhbHMod2luZG93LmludGVybmFscy5wYWdlU2NhbGVGYWN0b3IoKSwgMSwg
IlRoZSBwYWdlIHdhcyBzY2FsZWQuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOwor
fSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBl
bGVtZW50IGFsbG93cyBwYWdlIHpvb21pbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9s
bGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYwYzg1YjlhYTU1MmRmOWI3MWQ5YWU0Mzk3NDA1MGUwYzI4OTk4MDAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gt
em9vbS1wcmV2ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBl
bGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Ny
b2xsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
cGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjM0MWM2MjE1
MDdhM2VlODM3MzRkMjc3MTNkODRiZmY1NTlkN2RkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMt
c2Nyb2xsaW5nLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwor
J3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIy
MDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lk
dGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgi
OworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBpbmNoLXpvb20iOworCisgICAg
dWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFn
ZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0
aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5n
IHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBpbmNoLXpvb20gb24gYW4gZWxlbWVudCBwcmV2
ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360089</attachid>
            <date>2019-01-25 00:17:41 -0800</date>
            <delta_ts>2019-01-25 00:23:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190125091739.patch</filename>
            <type>text/plain</type>
            <size>91901</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyMjY5OWQ1YmJlODA0
MzBlNTViNjgwZmFlMTNhMzY4ZGJmN2I5OC4uYjNmYjFlYTVmZDgwMTRhNzE2NzAwYzU0OWVmOWFh
MTI1NDNlODE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE5LTAxLTI0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21waWxlCisgICAgICAgIGEgbGlzdCBvZiBUb3VjaEFjdGlvbkRhdGEgc3RydWN0dXJlcyB3aGlj
aCBob2xkIHRoZSB0b3VjaC1hY3Rpb24gdmFsdWUsIHRoZSBJRCBvZiB0aGUgbmVhcmVzdCBzY3Jv
bGwgbm9kZSBhbmQgdGhlIFJlZ2lvbiBjb250YWluaW5nCisgICAgICAgIHRoZSBib3VuZHMgb2Yg
ZWFjaCBvZiB0aG9zZSBlbGVtZW50cyB0byBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFs
b25nIHdpdGggdG91Y2ggcmVnaW9ucy4gQ29tcHV0aW5nIHRoZSBsaXN0IG9mIGFsbG93ZWQgdG91
Y2gKKyAgICAgICAgYWN0aW9ucyBmb3IgYSBnaXZlbiBlbGVtZW50IGFjY291bnRzIGZvciBub3Qg
b25seSB0aGUgdmFsdWUgc3BlY2lmaWVkIGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxl
LCBidXQgYWxzbyBpbiBpdHMgaGllcmFyY2h5LAorICAgICAgICBjcm9zc2luZyBhbnkgZnJhbWUg
Ym91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRvY3VtZW50J3Mgcm9vdCBub2RlLgorCisg
ICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVy
Zmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbAorICAg
ICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKKyAg
ICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCisg
ICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1h
bGxvd3Mtem9vbWluZy5odG1sCisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW52YWxpZGF0ZVJlbmRlcmluZ0Rl
cGVuZGVudFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVXaWxsQmVS
ZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJvbSB0aGlzIGRv
Y3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qgb2YgZWxlbWVu
dHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRlIGEgbGlzdCBv
ZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5IGlmIG9uZSBk
b2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0aGUgZ2l2ZW4g
ZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwgb3IgcmVtb3Zl
IGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0aGF0IGxpc3Qg
Y2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBpcyBpbmZvcm1l
ZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjogY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zIGNvbnN0KTogUHJvdmlkZSB0aGUgbGlzdCBvZiBhbGxv
d2VkIHRvdWNoIGFjdGlvbnMgYWNjb3VudGluZyBmb3IgdGhlICJ0b3VjaC1hY3Rpb24iIHByb3Bl
cnR5CisgICAgICAgIHNwZWNpZmllZCBvbiB0aGlzIGVsZW1lbnQgYW5kIGFsbCBvZiBpdHMgaGll
cmFyY2h5LCBjcm9zc2luZyBmcmFtZSBib3VuZGFyeS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcgY29u
c3QpOiBQcm92aWRlIHRoZSBTY3JvbGxpbmdOb2RlSUQsIGlmIGFueSwgZm9yIHRoZSBuZWFyZXN0
IHNjcm9sbGluZyBub2RlCisgICAgICAgIGZvciB0aGF0IGVsZW1lbnQuIFRoaXMgd2lsbCBhbGxv
dyB0aGUgVUkgcHJvY2VzcyB0byBpZGVudGlmeSB3aGljaCBzY3JvbGwgdmlldydzIGJlaGF2aW9y
IHRvIGN1c3RvbWl6ZSB0byByZWZsZWN0IHRoZSBlbGVtZW50J3MgYWxsb3dlZAorICAgICAgICB0
b3VjaCBhY3Rpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNGb3JGcmFtZSBj
b25zdCk6IENvbXB1dGUgdGhlIHJlZ2lvbiBmb3IgYWxsIGVsZW1lbnRzIHdpdGggYSBub24tYXV0
byB0b3VjaC1hY3Rpb24gcHJvcGVydHkKKyAgICAgICAgdGhyb3VnaG91dCB0aGUgcHJvdmlkZWQg
ZnJhbWUgYW5kIGFsbCBvZiBpdHMgc3ViZnJhbWVzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludCBjb25zdCk6IFF1ZXJ5IHRo
ZSBsaXN0IG9mIFRvdWNoQWN0aW9uRGF0YSBvYmplY3RzIGZvciBhIG1hdGNoIGJhc2VkIG9uIHRo
ZSBwcm92aWRlZCBwb2ludC4gUmlnaHQKKyAgICAgICAgbm93IHRoZSBsb2dpYyBpcyBwcmV0dHkg
Y3J1ZGUsIHN0b3BwaW5nIGF0IHRoZSBmaXJzdCBUb3VjaEFjdGlvbkRhdGEgZm9yIHdoaWNoIHRo
ZSByZWdpb24gY29udGFpbnMgdGhlIHByb3ZpZGVkIHBvaW50LCBidXQgZnV0dXJlIHBhdGNoZXMg
d2lsbAorICAgICAgICBhY2NvdW50IGZvciBvdmVybGFwIGFuZCBuZXN0aW5nLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlE
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWVOb2RlOjp0b3VjaEFjdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZU5vZGU6OnNldFRvdWNoQWN0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0v
RXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6
CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50
KTogVXBkYXRlIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rp
b24gcHJvcGVydHkgd2hlbiBhbiBlbGVtZW50J3Mgc3R5bGUgY2hhbmdlcy4KKwogMjAxOS0wMS0y
NCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBY3RpdmF0
ZSB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGluIHRoZSBOZXR3b3JrUHJvY2Vz
cyBhbmQgZGVhY3RpdmF0ZSBpdCBpbiB0aGUgVUlQcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwNGM1YzA0
OTc3NTBmZTg0YjY3YmVmNTA0YmI1YzBkZTNlMjNlMTJlLi5lMGNkNDZlNzAxYjkzMzE0MzBlMDM4
MDYwODJhMjVmOGJlMTE3ODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTAxLTI0
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNl
ci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUgdGhlICJub25lIiwgInBhbi14IiwgInBh
bi15IiBhbmQgInBpbmNoLXpvb20iIHZhbHVlcyBmb3IgdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0
eSBieSBxdWVyeWluZyB0aGUgc2Nyb2xsaW5nIHRyZWUgd2hlbmV2ZXIgYSB0b3VjaCBiZWdpbnMK
KyAgICAgICAgdG8gaWRlbnRpZnkgd2hldGhlciBpdHMgcG9pbnQgaXMgY29udGFpbmVkIHdpdGhp
biB0aGUgcmVnaW9uIG9mIGFuIGVsZW1lbnQgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBw
cm9wZXJ0eS4gSWYgaXQgaXMsIHdlIHVzZSB0aGUgbGlzdCBvZgorICAgICAgICBwZXJtaXR0ZWQg
dG91Y2ggYWN0aW9ucyBzdWNoIHRvIHRoZW4gY3VzdG9taXplIHRoZSBiZWhhdmlvciBvZiB0aGUg
bmVhcmVzdCBzY3JvbGwgdmlldyB0byBwYW4gb3Igem9vbSBvbmx5IGFzIGluc3RydWN0ZWQuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxUb3VjaEFjdGlvbkRhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0YT46OmRlY29kZSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjplbmNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWdpb24+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdXaWxsRW5kRHJh
Z2dpbmc6d2l0aFZlbG9jaXR5OnRhcmdldENvbnRlbnRPZmZzZXQ6XSk6IEFjY291bnQgZm9yIHBh
bm5pbmcgY29uc3RyYWludHMgc2V0IG9uIHRoZSBjb250ZW50IHZpZXcgdG8gcHJldmVudCBkZWNl
bGVyYXRpb24KKyAgICAgICAgdG8gcGFuIHRoZSB2aWV3IGlmIGl0IG91Z2h0IG5vdC4KKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OnRyYW5z
bGF0aW9uOnN0YXJ0UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRhbFZlbG9jaXR5OnZlcnRp
Y2FsVmVsb2NpdHk6XSk6IEltcGxlbWVudCBhbiBhZGRpdGlvbmFsCisgICAgICAgIFVJU2Nyb2xs
VmlldyBkZWxlZ2F0aW9uIG1ldGhvZCB0byBhcHBseSB0aGUgcGFubmluZyBjb25zdHJhaW50cyBz
ZXQgb24gdGhlIGNvbnRlbnQgdmlldyB3aGlsZSBwYW5uaW5nLgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnRvdWNoQWN0
aW9uRGF0YUF0UG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06CisgICAgICAgICgtW1dLU2Nyb2xs
aW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhW
ZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0pOiBBcHBseSB0aGUgc2FtZSBsb2dpYyBhcyBp
biBXS1dlYlZpZXcuCisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0
ZSBzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6d2lsbERlY2VsZXJhdGU6XSk6IFJlc2V0IHRoZSB0
b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBzY3JvbGwgbm9kZSB0byBzdGFydCB0aGUg
bmV4dAorICAgICAgICBpbnRlcmFjdGlvbiBpbiB0aGUgZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAg
KC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmREZWNl
bGVyYXRpbmc6XSk6IFJlc2V0IHRoZSB0b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBz
Y3JvbGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBpbnRlcmFjdGlvbgorICAgICAgICBpbiB0aGUg
ZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVn
YXRlIF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OnRyYW5zbGF0aW9uOnN0YXJ0
UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRhbFZlbG9jaXR5OnZlcnRpY2FsVmVsb2NpdHk6
XSk6IEFwcGx5CisgICAgICAgIHRoZSBzYW1lIGxvZ2ljIGFzIGluIFdLV2ViVmlldy4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNTY3JvbGxpbmdPclpvb21pbmcgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJl
dmVudHNQYW5uaW5nSW5YQXhpc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHByZXZlbnRz
UGFubmluZ0luWUF4aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhbnVwSW50ZXJh
Y3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNvZ25p
emVkOl0pOiBBcyB3ZSBwcm9jZXNzIHRvdWNoZXMsIGNoZWNrIHdoZXRoZXIgdGhlcmUgYXJlIHRv
dWNoIGFjdGlvbnMgc2V0IGZvciB0aGlzIHRvdWNoJ3MgcG9pbnRzJyBsb2NhdGlvbnMuIEJhc2Vk
CisgICAgICAgIG9uIHRob3NlIHRvdWNoIGFjdGlvbnMsIGVpdGhlciBzZXREZWZhdWx0UHJldmVu
dGVkIG9uIHRoZSBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIGlmIHRoZSB0b3VjaCBhY3Rp
b24gaXMgIm5vbmUiIG9yIHNlbGVjdGl2ZWx5IGRpc2FibGUgcGFubmluZyBhbmQgem9vbWluZy4K
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZ10pOgor
CiAyMDE5LTAxLTI0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFjdGl2YXRlIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgaW4gdGhlIE5l
dHdvcmtQcm9jZXNzIGFuZCBkZWFjdGl2YXRlIGl0IGluIHRoZSBVSVByb2Nlc3MuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzNk
OGZkYjA0NTYzNDBjOWNjZjA0YTAyZjdhZjE0Mzk4ODY0MmM2NC4uODExMzc1OTljYTQzYmVlOGQ1
ZWJlMjU0NjllNjFjNTI2MDYxYmJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA4Miw2ICsyMDgyLDcgQEAKIAkJNzEyQkU0
ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTJCRTQ4MTFGRTg2NUQ0MDAyMDMxQ0MgLyogRmlsbE1v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
MTJCRTQ4ODFGRTg2ODZBMDAyMDMxQ0MgLyogSlNGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyQkU0ODUxRkU4NjgxODAwMjAzMUNDIC8q
IEpTRmlsbE1vZGUuaCAqLzsgfTsKIAkJNzEyQkU0ODkxRkU4Njg3NTAwMjAzMUNDIC8qIEpTUGxh
eWJhY2tEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxMkJFNDg2MUZFODY4NTkwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9uLmgg
Ki87IH07CisJCTcxMkRCQTQ5MjFGOEFEODMwMDhGMzZCMiAvKiBTY3JvbGxpbmdDb29yZGluYXRv
clR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MTJEQkE0NzIxRjhBRDc5MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzE3MTM0
MUZCRTc4REIwMEY3NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTMxNzEzMjFGQkU3OEM1MDBG
NzU4REUgLyogQ1NTUHJvcGVydHlCbGVuZGluZ0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzI0NDUxMjAxMDlEQTUwMEFFN0ZCMiAv
KiBXZWJBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcxMzI0NDRGMjAxMDlEOUIwMEFFN0ZCMiAvKiBXZWJBbmltYXRpb25V
dGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3MTM0NDk2RTE0Njk0MUIzMDA3MjAzMTIgLyogU1ZHTGVuZ3RoQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEzNDQ5NkMxNDY5NDFC
MzAwNzIwMzEyIC8qIFNWR0xlbmd0aENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQwNCw3ICsyNDA1LDcgQEAKIAkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUQyIC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RjYgLyog
SlNTY3JvbGxUb09wdGlvbnMuaCAqLzsgfTsKIAkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8q
IENsYXNzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM0OEJGQUExQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICov
OyB9OwogCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0REZBQ0MxRjdE
QUU1NjAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4MzUyMEM3RTFBNzFCRkNDMDA2QkQyQUEgLyog
Q1NTRm9udEZhbWlseS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM1MjBDN0QxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCAqLzsgfTsK
KwkJODM1MjBDN0UxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNTIwQzdEMUE3MUJGQ0MwMDZC
RDJBQSAvKiBDU1NGb250RmFtaWx5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODM1OENCNzAxQzUzMjc3NTAwRTBDMkQ4IC8qIEpTWE1MRG9jdW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjU3
MEFEMUM1MzI2OEUwMDdGRDZDQiAvKiBKU1hNTERvY3VtZW50LmggKi87IH07CiAJCTgzNUQyRDc4
MUY1RjFGQkQwMDE0MURFRCAvKiBIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1RDJENzUxRjVGMUZCODAw
MTQxREVEIC8qIEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggKi87IH07CiAJCTgzNUQzNjM3
MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0b20uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAv
KiBTdHlsZUJ1aWxkZXJDdXN0b20uaCAqLzsgfTsKQEAgLTI4OTAsNyArMjg5MSw3IEBACiAJCTk5
MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYwMEIzOUFG
OSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5OTZFNTlERjFERjAxMjhEMDA2NjEyQjkgLyogTmF2aWdhdG9yV2Vi
RHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTZFNTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi87IH07CiAJ
CTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBNTI4RTgyMTdEN0Y1MkYwMEFB
OTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk5QUIxRjM4MDE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUFCMUYzN0UxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuaCAqLzsgfTsKKwkJOUFCMUYzODAxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OUIyNERFOEUxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlD
MjcgLyogSFRNTEJESUVsZW1lbnQuaCAqLzsgfTsKIAkJOUIyRDhBNzkxNDk5N0NDRjAwRUNFRjNF
IC8qIFVuZG9TdGVwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjMyQ0RBOTEzREY3RkE5MDBG
MzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uaCAqLzsgfTsKQEAgLTQ3NjcsNyArNDc2OCw3IEBACiAJCUUxRTFCRjAwMTE1RkY2RkIw
MDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFMUJFRkYxMTVGRjZGQjAwNkY1MkNBIC8qIFdpbmRv
d3NLZXlib2FyZENvZGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTFFNkVFQTgwQjYyOERCMzAwNUYyRjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTZF
RUE3MEI2MjhEQjMwMDVGMkY3MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50LmggKi87IH07CiAJCUUx
RUMyOUEwMEJCMDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5vZGVTZXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUMyOTlFMEJCMDRDNkIwMEVBMTg3QiAv
KiBYUGF0aE5vZGVTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlFMUVEOEFDMzBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAq
LzsgfTsKKwkJRTFFRDhBQzMwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGMUU4MzAw
QzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUYxRTgyRTBDM0MyQkI5MDA2REIzOTEgLyogWFNM
VEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJRTFGODBCODgxODMxNzI1MjAwNzg4NUMzIC8qIENyeXB0
b0tleVBhaXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRjgwQjg2MTgzMTcyNTIwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGODBCOEUxODMxNzJCNTAw
Nzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGODBCOEMxODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5
UGFpci5oICovOyB9OwpAQCAtOTI4Niw2ICs5Mjg3LDcgQEAKIAkJNzEyQkU0ODUxRkU4NjgxODAw
MjAzMUNDIC8qIEpTRmlsbE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNGaWxsTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTJCRTQ4NjFGRTg2
ODU5MDAyMDMxQ0MgLyogSlNQbGF5YmFja0RpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1BsYXliYWNrRGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxMkJFNDg3MUZFODY4NUEwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGxheWJhY2tEaXJl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MTJEQkE0NzIxRjhBRDc5
MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcxMzAxNDFEMURDOUMwODYwMENBM0E4OCAvKiBwaXAtc3VwcG9y
dC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJwaXAtc3VwcG9y
dC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMzE3MTMyMUZCRTc4QzUwMEY3
NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzEzMjQ0NEYyMDEwOUQ5QjAwQUU3RkIyIC8qIFdlYkFuaW1hdGlvblV0
aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBbmltYXRpb25V
dGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2ODg0LDYgKzE2ODg2
LDcgQEAKIAkJCQkwRjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWlu
dHMuaCAqLywKIAkJCQkxQUY2MkVFNDE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwICovLAogCQkJCTFBRjYyRUU1MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdD
b29yZGluYXRvci5oICovLAorCQkJCTcxMkRCQTQ3MjFGOEFENzkwMDhGMzZCMiAvKiBTY3JvbGxp
bmdDb29yZGluYXRvclR5cGVzLmggKi8sCiAJCQkJNTFDNjFCMDgxREU1MzZFNzAwOEEyMTJEIC8q
IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5jcHAgKi8sCiAJCQkJNTFDNjFCMDkxREU1MzZF
NzAwOEEyMTJEIC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oICovLAogCQkJCTkzQzM4
QkZDMTY0NDczQzcwMDA5MUVCMiAvKiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHAgKi8sCkBA
IC0zMTM3Myw2ICszMTM3Niw3IEBACiAJCQkJMUFGNjJFRTgxNERBMjJBNzAwNDE1NTZDIC8qIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0RTQwRDE4N0Y4MkUx
MDA0NTg4MkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzOTFBOTkxMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzEyREJBNDkyMUY4QUQ4MzAwOEYzNkIyIC8qIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzYxQjBCMURFNTM2RTcwMDhB
MjEyRCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxN0RFRUU4MURFOTRCMDgwMEI5MTY0NCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JN
YWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQzM4QkZGMTY0NDczQzcwMDA5MUVCMiAvKiBTY3Jv
bGxpbmdTdGF0ZUZpeGVkTm9kZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGI0YjEwM2I0Y2Fm
ZDNhYjcyOWQ3ZTA4MDg4ZWZmMmY2YzQ0NTNjODcuLjVhYWFlNzJmZTU1MDI0OWJkMGY2YmQ3MzU4
MDYzOGY2N2RhMjhhMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xNzQ3LDcgKzE3NDcsNyBAQCBzdGF0aWMgUmVmPENT
U1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZUZvckZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWls
eSkKICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVGb250RmFtaWx5
VmFsdWUoZmFtaWx5KTsKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaWYgRU5BQkxF
KFBPSU5URVJfRVZFTlRTKQogc3RhdGljIFJlZjxDU1NWYWx1ZT4gdG91Y2hBY3Rpb25GbGFnc1Rv
Q1NTVmFsdWUoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMpCiB7CiAgICAgYXV0
byYgY3NzVmFsdWVQb29sID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKTsKQEAgLTM3NjIsNiAr
Mzc2Miw4IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVG
b3JQcm9wZXJ0eWluU3R5bGUoY29uc3QgUmVuZGVyU3R5CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRhcEhpZ2hsaWdodENvbG9yOgogICAg
ICAgICAgICAgcmV0dXJuIGN1cnJlbnRDb2xvck9yVmFsaWRDb2xvcigmc3R5bGUsIHN0eWxlLnRh
cEhpZ2hsaWdodENvbG9yKCkpOworI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5VG91Y2hBY3Rpb246CiAgICAgICAgICAgICByZXR1cm4g
dG91Y2hBY3Rpb25GbGFnc1RvQ1NTVmFsdWUoc3R5bGUudG91Y2hBY3Rpb25zKCkpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRl
eCBlZmQ4NDIzZGI0NGQyNTcxMGQ4NDkxZjU4ZWJkNWMxZmFkNWRhYzNiLi5kMDlmNDlmNDQzNzkx
MDU3NzYwMDJjYmRjOWYwNTQ3MDY0N2U2ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTUyMzYsNyArNTIzNiw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0Wm9vbSB0
ZXh0Wm9vbSkKICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKIH0KIAotI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRvdWNoQWN0
aW9uIHRvdWNoQWN0aW9uKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgppbmRleCA5NzZmYTM5NDYxNDBmZWZjNmFmZjdk
ZGJmNmUyMDc0N2M1YTA0YjQ5Li5lOWY5NDVhN2IwMDUyZWNhMGEwMTQ2NTEwYTY0ZTJjYWRiZmM1
YzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KQEAgLTY5MzQsNyArNjkz
NCw3IEBACiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6
IHsKICAgICAgICAgICAgICAgICAibmFtZS1mb3ItbWV0aG9kcyI6ICJUb3VjaEFjdGlvbnMiLAot
ICAgICAgICAgICAgICAgICJlbmFibGUtaWYiOiAiRU5BQkxFX1RPVUNIX0VWRU5UUyIsCisgICAg
ICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfUE9JTlRFUl9FVkVOVFMiLAogICAgICAg
ICAgICAgICAgICJjb252ZXJ0ZXIiOiAiVG91Y2hBY3Rpb24iCiAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluCmluZGV4IDA5MzIxOTAxYmY1OTliM2M0ZDA2NGM4NGI5ZjQyMDQ3NGI3ZGE2Y2IuLmQ4
ZDNkMmQ1NDRiNzg3ZmM5N2M0MjYwNzNhNjJiOWNhNjc4ZWY0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMzUyLDcgKzEzNTIsNyBAQCBzdHlsZQogc2Nyb2xs
LXBvc2l0aW9uCiAvL2NvbnRlbnRzCiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMp
ICYmIEVOQUJMRV9UT1VDSF9FVkVOVFMKKyNpZiBkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0VWRU5U
UykgJiYgRU5BQkxFX1BPSU5URVJfRVZFTlRTCiAvLyB0b3VjaC1hY3Rpb24KIC8vIGF1dG8KIC8v
IG5vbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAppbmRleCA4
MGQ4MWFhNmY4NTA5YWFiMjdlZjJmMjNjOWU2MTExNGQ0MjExYzU1Li41MGE1ZjUwYWIxNTM5ZDUz
NzcxNTQ5MmViODg2YjA3M2RkZGUxZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVCdWlsZGVyQ29udmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVp
bGRlckNvbnZlcnRlci5oCkBAIC0xMTcsNiArMTE3LDggQEAgcHVibGljOgogI2VuZGlmCiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBzdGF0aWMgQ29sb3IgY29udmVydFRhcEhpZ2hsaWdo
dENvbG9yKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NWYWx1ZSYpOworI2VuZGlmCisjaWYgRU5B
QkxFKFBPSU5URVJfRVZFTlRTKQogICAgIHN0YXRpYyBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNv
bnZlcnRUb3VjaEFjdGlvbihTdHlsZVJlc29sdmVyJiwgY29uc3QgQ1NTVmFsdWUmKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCkBAIC0xMzQ3LDcg
KzEzNDksOSBAQCBpbmxpbmUgQ29sb3IgU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0VGFw
SGlnaGxpZ2h0Q29sb3IoU3R5bGVSZXNvbHZlciYgc3R5bAogewogICAgIHJldHVybiBzdHlsZVJl
c29sdmVyLmNvbG9yRnJvbVByaW1pdGl2ZVZhbHVlKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Pih2YWx1ZSkpOwogfQorI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCiBpbmxp
bmUgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRU
b3VjaEFjdGlvbihTdHlsZVJlc29sdmVyJiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQogewogICAg
IGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCAxZjc5NWQ5MDMyMTcxYmZkZWQw
ODU0OGFiMWViOGMyNzM1YzU2YjE3Li5iMzlmZDFjNWQ1YjBkYTc4NWM0ODhmMzUxZDMyOTYyMmE1
NjEwN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VyLmNwcApAQCAtMTM0Nyw3ICsxMzQ3LDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZUNsaXAoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3MKICAg
ICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShXVEZNb3ZlKHJl
Y3QpKTsKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVRvdWNoQWN0aW9uKENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIENTU1ZhbHVlSUQgaWQgPSByYW5nZS5wZWVr
KCkuaWQoKTsKQEAgLTQwMzgsNyArNDAzOCw3IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVy
dHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAj
ZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVD
bGlwKG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKICAgICBjYXNlIENTU1Byb3BlcnR5VG91Y2hBY3Rp
b246CiAgICAgICAgIHJldHVybiBjb25zdW1lVG91Y2hBY3Rpb24obV9yYW5nZSk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDVkYjcxZjUxNmY2Zjg4ZDc0MjExNDliMTk1Mjdm
NGU3YWQ4YzE3NTkuLmQyOTllZjIyYzNiNWJkYjhkOWNkYTIxNWZmMmY2NWZiNzFkOTVkZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjA4LDYgKzIwOCw3IEBACiAjaW5jbHVkZSAiVGV4
dEF1dG9TaXppbmcuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0Tm9k
ZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAiVHJhbnNm
b3JtU291cmNlLmgiCiAjaW5jbHVkZSAiVHJlZVdhbGtlci5oIgogI2luY2x1ZGUgIlVuZG9NYW5h
Z2VyLmgiCkBAIC00MTUxLDYgKzQxNTIsMTQgQEAgdm9pZCBEb2N1bWVudDo6aW52YWxpZGF0ZVJl
bmRlcmluZ0RlcGVuZGVudFJlZ2lvbnMoQW5ub3RhdGlvbnNBY3Rpb24gYW5ub3RhdGlvbnMKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHNldFRv
dWNoRXZlbnRSZWdpb25zTmVlZFVwZGF0ZSgpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQorICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgIGlm
IChhdXRvKiBmcmFtZVZpZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBzY3Jv
bGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAg
ICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0V2ZW50VHJhY2tpbmdSZWdp
b25zQ2hhbmdlZCgqZnJhbWVWaWV3KTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogfQogCiB2
b2lkIERvY3VtZW50OjppbnZhbGlkYXRlU2Nyb2xsYmFyRGVwZW5kZW50UmVnaW9ucygpCkBAIC00
NTM0LDYgKzQ1NDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYg
bm9kZSkKIAogICAgIGlmIChpczxUZXh0Pihub2RlKSkKICAgICAgICAgbV9tYXJrZXJzLT5yZW1v
dmVNYXJrZXJzKG5vZGUpOworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGlmICht
X3RvdWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIG1fdG91Y2hBY3Rpb25FbGVtZW50cy0+cmVt
b3ZlKCZub2RlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgTm9kZSogZmFsbGJhY2tGb2N1c05hdmln
YXRpb25TdGFydGluZ05vZGVBZnRlclJlbW92YWwoTm9kZSYgbm9kZSkKQEAgLTcwOTYsNiArNzEx
MCwzNCBAQCBMYXlvdXRSZWN0IERvY3VtZW50OjphYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhi
b29sJiBpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVtZQogICAgIHJldHVybiBMYXlvdXRSZWN0KCk7
CiB9CiAKK0RvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6OmFic29sdXRlUmVnaW9u
Rm9yTm9kZShOb2RlKiBub2RlKQoreworICAgIFJlZ2lvbiByZWdpb247CisgICAgTGF5b3V0UmVj
dCByb290UmVsYXRpdmVCb3VuZHM7CisgICAgYm9vbCBpbnNpZGVGaXhlZFBvc2l0aW9uID0gZmFs
c2U7CisKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KG5vZGUpKSB7CisgICAgICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihub2RlKTsKKyAgICAgICAgaWYgKGRvY3VtZW50
ID09IHRoaXMpCisgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBhYnNvbHV0ZUV2ZW50
SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKKyAgICAgICAgZWxzZSBpZiAoRWxl
bWVudCogZWxlbWVudCA9IGRvY3VtZW50LT5vd25lckVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJv
b3RSZWxhdGl2ZUJvdW5kcyA9IGVsZW1lbnQtPmFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGlu
c2lkZUZpeGVkUG9zaXRpb24pOworICAgIH0gZWxzZSBpZiAoaXM8RWxlbWVudD4obm9kZSkpIHsK
KyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpOworICAg
ICAgICBpZiAoaXM8SFRNTEJvZHlFbGVtZW50PihlbGVtZW50KSkgeworICAgICAgICAgICAgLy8g
Rm9yIHRoZSBib2R5LCBqdXN0IHVzZSB0aGUgZG9jdW1lbnQgYm91bmRzLgorICAgICAgICAgICAg
Ly8gVGhlIGJvZHkgbWF5IG5vdCBjb3ZlciB0aGlzIHdob2xlIGFyZWEsIGJ1dCBpdCdzIE9LIGZv
ciB0aGlzIHJlZ2lvbiB0byBiZSBhbiBvdmVyZXN0aW1hdGUuCisgICAgICAgICAgICByb290UmVs
YXRpdmVCb3VuZHMgPSBhYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0
aW9uKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBl
bGVtZW50LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsK
KyAgICB9CisKKyAgICBpZiAoIXJvb3RSZWxhdGl2ZUJvdW5kcy5pc0VtcHR5KCkpCisgICAgICAg
IHJlZ2lvbi51bml0ZShSZWdpb24oZW5jbG9zaW5nSW50UmVjdChyb290UmVsYXRpdmVCb3VuZHMp
KSk7CisKKyAgICByZXR1cm4gUmVnaW9uRml4ZWRQYWlyKHJlZ2lvbiwgaW5zaWRlRml4ZWRQb3Np
dGlvbik7Cit9CisKIERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6OmFic29sdXRl
UmVnaW9uRm9yRXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyZ2V0U2V0KiB0YXJnZXRzKQogewog
ICAgIExheW91dERpc2FsbG93ZWRTY29wZSBsYXlvdXREaXNhbGxvd2VkU2NvcGUoTGF5b3V0RGlz
YWxsb3dlZFNjb3BlOjpSZWFzb246OlJlZW50cmFuY3lBdm9pZGFuY2UpOwpAQCAtNzEwNywyNiAr
NzE0OSw5IEBAIERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6OmFic29sdXRlUmVn
aW9uRm9yRXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyCiAgICAgYm9vbCBpbnNpZGVGaXhlZFBv
c2l0aW9uID0gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGtleVZhbHVlUGFpciA6ICp0YXJnZXRz
KSB7Ci0gICAgICAgIExheW91dFJlY3Qgcm9vdFJlbGF0aXZlQm91bmRzOwotCi0gICAgICAgIGlm
IChpczxEb2N1bWVudD4oa2V5VmFsdWVQYWlyLmtleSkpIHsKLSAgICAgICAgICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihrZXlWYWx1ZVBhaXIua2V5KTsKLSAgICAg
ICAgICAgIGlmIChkb2N1bWVudCA9PSB0aGlzKQotICAgICAgICAgICAgICAgIHJvb3RSZWxhdGl2
ZUJvdW5kcyA9IGFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGluc2lkZUZpeGVkUG9zaXRpb24p
OwotICAgICAgICAgICAgZWxzZSBpZiAoRWxlbWVudCogZWxlbWVudCA9IGRvY3VtZW50LT5vd25l
ckVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBlbGVtZW50
LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChpczxFbGVtZW50PihrZXlWYWx1ZVBhaXIua2V5KSkgewotICAgICAgICAg
ICAgRWxlbWVudCogZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KGtleVZhbHVlUGFpci5rZXkp
OwotICAgICAgICAgICAgaWYgKGlzPEhUTUxCb2R5RWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAg
ICAgICAgICAgICAvLyBGb3IgdGhlIGJvZHksIGp1c3QgdXNlIHRoZSBkb2N1bWVudCBib3VuZHMu
Ci0gICAgICAgICAgICAgICAgLy8gVGhlIGJvZHkgbWF5IG5vdCBjb3ZlciB0aGlzIHdob2xlIGFy
ZWEsIGJ1dCBpdCdzIE9LIGZvciB0aGlzIHJlZ2lvbiB0byBiZSBhbiBvdmVyZXN0aW1hdGUuCi0g
ICAgICAgICAgICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0gYWJzb2x1dGVFdmVudEhhbmRsZXJC
b3VuZHMoaW5zaWRlRml4ZWRQb3NpdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBlbGVtZW50LT5hYnNvbHV0ZUV2ZW50SGFuZGxl
ckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgaWYgKCFyb290UmVsYXRpdmVCb3VuZHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgdGFyZ2V0
UmVnaW9uLnVuaXRlKFJlZ2lvbihlbmNsb3NpbmdJbnRSZWN0KHJvb3RSZWxhdGl2ZUJvdW5kcykp
KTsKKyAgICAgICAgYXV0byB0YXJnZXRSZWdpb25GaXhlZFBhaXIgPSBhYnNvbHV0ZVJlZ2lvbkZv
ck5vZGUoa2V5VmFsdWVQYWlyLmtleSk7CisgICAgICAgIHRhcmdldFJlZ2lvbi51bml0ZSh0YXJn
ZXRSZWdpb25GaXhlZFBhaXIuZmlyc3QpOworICAgICAgICBpbnNpZGVGaXhlZFBvc2l0aW9uIHw9
IHRhcmdldFJlZ2lvbkZpeGVkUGFpci5zZWNvbmQ7CiAgICAgfQogCiAgICAgcmV0dXJuIFJlZ2lv
bkZpeGVkUGFpcih0YXJnZXRSZWdpb24sIGluc2lkZUZpeGVkUG9zaXRpb24pOwpAQCAtODY1MSw0
ICs4Njc2LDMzIEBAIHZvaWQgRG9jdW1lbnQ6OnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9y
TmFtZShjb25zdCBTdHJpbmcmIG5hbWUsIFJlZjxQYWludFdvCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShQT0lOVEVSX0VWRU5UUykKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRvdWNoQWN0aW9uRWxl
bWVudHMoTm9kZSYgbm9kZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAgIGlmICghbV90b3Vj
aEFjdGlvbkVsZW1lbnRzKQorICAgICAgICBtX3RvdWNoQWN0aW9uRWxlbWVudHMgPSBzdGQ6Om1h
a2VfdW5pcXVlPEhhc2hTZXQ8Tm9kZSo+PigpOworCisgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7
CisKKyAgICBpZiAoc3R5bGUgJiYgc3R5bGUtPnRvdWNoQWN0aW9ucygpICE9IFRvdWNoQWN0aW9u
OjpBdXRvKQorICAgICAgICBjaGFuZ2VkIHw9IG1fdG91Y2hBY3Rpb25FbGVtZW50cy0+YWRkKCZu
b2RlKS5pc05ld0VudHJ5OworICAgIGVsc2UKKyAgICAgICAgY2hhbmdlZCB8PSBtX3RvdWNoQWN0
aW9uRWxlbWVudHMtPnJlbW92ZSgmbm9kZSk7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGlmICghY2hhbmdlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IHRo
aXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChG
cmFtZVZpZXcqIGZyYW1lVmlldyA9IHZpZXcoKSkgeworICAgICAgICBpZiAoU2Nyb2xsaW5nQ29v
cmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0
b3IoKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdFdmVudFRy
YWNraW5nUmVnaW9uc0NoYW5nZWQoKmZyYW1lVmlldyk7CisgICAgfQorI2VuZGlmCit9CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBiYjVj
MWMwNDY2NTRmMTlhMWE4Njk1NDRiNjMzM2U3MjZiMDcxNmQ0Li45ZTRmMGI0Zjg0MWFmYzZjOGJi
OWU3ZTJkZjUwNjhjN2FmZmRlNTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTI3NSw2ICsx
Mjc1LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVycygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCB0b3VjaEV2ZW50VGFyZ2V0c0NvbnRhaW4oTm9k
ZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoUE9JTlRFUl9F
VkVOVFMpCisgICAgdm9pZCB1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmLCBSZW5kZXJT
dHlsZSopOworICAgIGNvbnN0IEhhc2hTZXQ8Tm9kZSo+KiB0b3VjaEFjdGlvbkVsZW1lbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbkVsZW1lbnRzLmdldCgpOyB9CisjZW5kaWYKIAog
ICAgIHZvaWQgZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIoTm9kZSYpOwogICAgIHZvaWQgZGlkUmVt
b3ZlVG91Y2hFdmVudEhhbmRsZXIoTm9kZSYsIEV2ZW50SGFuZGxlclJlbW92YWwgPSBFdmVudEhh
bmRsZXJSZW1vdmFsOjpPbmUpOwpAQCAtMTI5Myw2ICsxMjk3LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IEV2ZW50VGFyZ2V0U2V0KiB3aGVlbEV2ZW50VGFyZ2V0cygpIGNvbnN0IHsgcmV0dXJuIG1f
d2hlZWxFdmVudFRhcmdldHMuZ2V0KCk7IH0KIAogICAgIHR5cGVkZWYgc3RkOjpwYWlyPFJlZ2lv
biwgYm9vbD4gUmVnaW9uRml4ZWRQYWlyOworICAgIFJlZ2lvbkZpeGVkUGFpciBhYnNvbHV0ZVJl
Z2lvbkZvck5vZGUoTm9kZSopOwogICAgIFJlZ2lvbkZpeGVkUGFpciBhYnNvbHV0ZVJlZ2lvbkZv
ckV2ZW50VGFyZ2V0cyhjb25zdCBFdmVudFRhcmdldFNldCopOwogCiAgICAgTGF5b3V0UmVjdCBh
YnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhib29sJikgZmluYWw7CkBAIC0xODczLDYgKzE4Nzgs
OSBAQCBwcml2YXRlOgogICAgIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgc3RkOjp1
bmlxdWVfcHRyPEV2ZW50VGFyZ2V0U2V0PiBtX3RvdWNoRXZlbnRUYXJnZXRzOworI2VuZGlmCisj
aWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PE5v
ZGUqPj4gbV90b3VjaEFjdGlvbkVsZW1lbnRzOwogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRy
PEV2ZW50VGFyZ2V0U2V0PiBtX3doZWVsRXZlbnRUYXJnZXRzOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKaW5kZXggYjJmMTNkMDIyYzA5ODczMjUyNDc5Y2JlYWE1MDg2MjcwYTg0MmJkNi4uY2E0YmM5
OWMzM2M4YmM5OGYzMWFlOTRiN2MzYTdhMWQ2NDhjZGEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cApAQCAtODEsNiArODEsOCBAQAogI2luY2x1ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlJlbmRlckZyYWdtZW50Q29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5
ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJSZW5kZXJM
YXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0Qm94LmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlVXBkYXRlci5oIgpAQCAtMTY2NSw4
ICsxNjY3LDEwIEBAIFVSTCBFbGVtZW50OjphYnNvbHV0ZUxpbmtVUkwoKSBjb25zdAogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCiBib29sIEVsZW1lbnQ6OmFsbG93c0RvdWJsZVRhcEdlc3R1cmUo
KSBjb25zdAogeworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKICAgICBpZiAocmVuZGVyU3R5
bGUoKSAmJiByZW5kZXJTdHlsZSgpLT50b3VjaEFjdGlvbnMoKSAhPSBUb3VjaEFjdGlvbjo6QXV0
bykKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAKICAgICBFbGVtZW50KiBwYXJlbnQg
PSBwYXJlbnRFbGVtZW50KCk7CiAgICAgcmV0dXJuICFwYXJlbnQgfHwgcGFyZW50LT5hbGxvd3NE
b3VibGVUYXBHZXN0dXJlKCk7CkBAIC0zNDE2LDcgKzM0MjAsNyBAQCB2b2lkIEVsZW1lbnQ6OnNl
dENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9vbCBmbGFnKQogICAgIGludmFsaWRhdGVTdHls
ZUFuZExheWVyQ29tcG9zaXRpb24oKTsKIH0KIAotc3RhdGljIEVsZW1lbnQqIHBhcmVudENyb3Nz
aW5nRnJhbWVCb3VuZGFyaWVzKEVsZW1lbnQqIGVsZW1lbnQpCitzdGF0aWMgRWxlbWVudCogcGFy
ZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKICAg
ICBBU1NFUlQoZWxlbWVudCk7CiAgICAgcmV0dXJuIGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA/
IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA6IGVsZW1lbnQtPmRvY3VtZW50KCkub3duZXJFbGVt
ZW50KCk7CkBAIC00MTIwLDQgKzQxMjQsNjYgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVT
dHlsZU1hcChSZWY8U3R5bGVQcm9wZXJ0eU1hcD4mJiBtYXApCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShQT0lOVEVSX0VWRU5UUykKK09wdGlvblNldDxUb3VjaEFjdGlvbj4gRWxlbWVudDo6Y29t
cHV0ZWRUb3VjaEFjdGlvbnMoKSBjb25zdAoreworICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4g
Y29tcHV0ZWRUb3VjaEFjdGlvbnMgPSBUb3VjaEFjdGlvbjo6QXV0bzsKKyAgICBmb3IgKGF1dG8q
IGVsZW1lbnQgPSB0aGlzOyBlbGVtZW50OyBlbGVtZW50ID0gcGFyZW50Q3Jvc3NpbmdGcmFtZUJv
dW5kYXJpZXMoZWxlbWVudCkpIHsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5y
ZW5kZXJlcigpOworICAgICAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgYXV0byB0b3VjaEFjdGlvbnMgPSByZW5kZXJlci0+c3R5bGUoKS50b3VjaEFj
dGlvbnMoKTsKKworICAgICAgICAvLyBPbmNlIHdlJ3ZlIGVuY291bnRlcmVkIHRvdWNoLWFjdGlv
bjogbm9uZSwgd2Uga25vdyB0aGF0IHRoaXMgd2lsbCBiZSB0aGUgY29tcHV0ZWQgdmFsdWUuCisg
ICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246Ok5vbmUpCisgICAgICAgICAg
ICByZXR1cm4gdG91Y2hBY3Rpb25zOworCisgICAgICAgIC8vIElmIHRoZSBjb21wdXRlZCB0b3Vj
aC1hY3Rpb24gc28gZmFyIHdhcyAiYXV0byIsIHdlIGNhbiBqdXN0IHVzZSB0aGUgY3VycmVudCBl
bGVtZW50J3MgdG91Y2gtYWN0aW9uLgorICAgICAgICBpZiAoY29tcHV0ZWRUb3VjaEFjdGlvbnMg
PT0gVG91Y2hBY3Rpb246OkF1dG8pIHsKKyAgICAgICAgICAgIGNvbXB1dGVkVG91Y2hBY3Rpb25z
ID0gdG91Y2hBY3Rpb25zOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAg
ICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGhhcyB0b3VjaC1hY3Rpb246IGF1dG8gb3Ig
dGhlIHNhbWUgdG91Y2gtYWN0aW9uIGFzIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24sCisgICAg
ICAgIC8vIHdlIG5lZWQgdG8ga2VlcCBnb2luZyB1cCB0aGUgYW5jZXN0cnkgY2hhaW4uCisgICAg
ICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246OkF1dG8gfHwgdG91Y2hBY3Rpb25z
ID09IGNvbXB1dGVkVG91Y2hBY3Rpb25zKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgLy8gTm93LCB0aGUgZWxlbWVudCdzIHRvdWNoLWFjdGlvbiBhbmQgdGhlIGNvbXB1dGVkIHRv
dWNoLWFjdGlvbiBhcmUgZGlmZmVyZW50IGFuZCBhcmUgbmVpdGhlciAiYXV0byIgbm9yICJub25l
Ii4KKyAgICAgICAgaWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpNYW5p
cHVsYXRpb24pIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24g
aXMgIm1hbmlwdWxhdGlvbiIsIHdlIGNhbiB0YWtlIHRoZSBjdXJyZW50IGVsZW1lbnQncyB0b3Vj
aC1hY3Rpb24gYXMgdGhlIG5ld2x5CisgICAgICAgICAgICAvLyBjb21wdXRlZCB0b3VjaC1hY3Rp
b24uCisgICAgICAgICAgICBjb21wdXRlZFRvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsKKyAg
ICAgICAgfSBlbHNlIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlv
bikgeworICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBoYXZlIGEgcmVzdHJpY3RlZCBjb21w
dXRlZCB0b3VjaC1hY3Rpb24gc28gZmFyLiBJZiB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gt
YWN0aW9uIGlzICJtYW5pcHVsYXRpb24iCisgICAgICAgICAgICAvLyB0aGVuIHdlIGNhbiBqdXN0
IGtlZXAgZ29pbmcgYW5kIGxlYXZlIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gdW50b3VjaGVk
LgorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbiBhbnkg
b3RoZXIgY2FzZSwgd2UgaGF2ZSBjb21wZXRpbmcgcmVzdHJpY3RpdmUgdG91Y2gtYWN0aW9uIHZh
bHVlcyB0aGF0IGNhbiBvbmx5IHlpZWxkICJub25lIi4KKyAgICAgICAgcmV0dXJuIFRvdWNoQWN0
aW9uOjpOb25lOworICAgIH0KKyAgICByZXR1cm4gY29tcHV0ZWRUb3VjaEFjdGlvbnM7Cit9CisK
KyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQorU2Nyb2xsaW5nTm9k
ZUlEIEVsZW1lbnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3Jv
bGxpbmcoKSBjb25zdAoreworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICAvLyBXZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gdGhlIHJvb3QsIHNvIGNoZWNrIHRo
YXQgd2UgYWxzbyBoYXZlIGEgdmFsaWQgcGFyZW50LgorICAgIGZvciAoYXV0byogbGF5ZXIgPSBy
ZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOyBsYXllciAmJiBsYXllci0+cGFyZW50KCk7IGxh
eWVyID0gbGF5ZXItPnBhcmVudCgpKSB7CisgICAgICAgIGlmIChsYXllci0+aXNDb21wb3NpdGVk
KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHNjcm9sbGluZ05vZGVJRCA9IGxheWVyLT5iYWNr
aW5nKCktPnNjcm9sbGluZ05vZGVJREZvclJvbGUoU2Nyb2xsQ29vcmRpbmF0aW9uUm9sZTo6U2Ny
b2xsaW5nKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsaW5nTm9kZUlEOworICAgICAg
ICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBjNWViNmNiOGM0NDhiMDk5YzVl
MDEyNmFkNWExZTdjNGU4ODQyYjg2Li42YWUxNjE4NWU5YWM0NzE4NTRhOTM0OWQ3NDFkZDQ2NGEx
MWY0ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJL
ZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJTY3JvbGxUb09wdGlvbnMuaCIK
ICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9y
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdE1vZGUuaCIKICNpbmNsdWRlICJTaW11bGF0ZWRDbGlj
a09wdGlvbnMuaCIKICNpbmNsdWRlICJTdHlsZUNoYW5nZS5oIgpAQCAtNzUsNiArNzYsMTAgQEAg
ZW51bSBjbGFzcyBTZWxlY3Rpb25SZXZlYWxNb2RlIHsKICAgICBEb05vdFJldmVhbAogfTsKIAor
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK2VudW0gY2xhc3MgVG91Y2hBY3Rpb24gOiB1aW50
OF90OworI2VuZGlmCisKIGNsYXNzIEVsZW1lbnQgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7CiAg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChFbGVtZW50KTsKIHB1YmxpYzoKQEAgLTU4OCw2ICs1
OTMsMTMgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmlt
YXRlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mJiwgT3B0aW9u
YWw8VmFyaWFudDxkb3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+JiYpOwogICAgIFZl
Y3RvcjxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gZ2V0QW5pbWF0aW9ucygpOwogCisjaWYgRU5BQkxF
KFBPSU5URVJfRVZFTlRTKQorICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gY29tcHV0ZWRUb3Vj
aEFjdGlvbnMoKSBjb25zdDsKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xM
SU5HKQorICAgIFNjcm9sbGluZ05vZGVJRCBuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNpbmdUb3Vj
aE92ZXJmbG93U2Nyb2xsaW5nKCkgY29uc3Q7CisjZW5kaWYKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6
CiAgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBDb25zdHJ1Y3Rp
b25UeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGM0ZmFlZGQzZThmNTQ4NWIzMDBiZjQzZDNhYTZm
MWVhYjkzMDE1NDUuLjEzMGIyNjExMmE5MjBhN2RiNjBlMWRlZDQzOGU4OWIyMzRhNmFhNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNs
dWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisj
aW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcm9sbEFuaW1h
dG9yLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgpAQCAtMTA3LDcgKzEwOCwyNSBAQCBFdmVudFRyYWNraW5nUmVnaW9ucyBTY3JvbGxpbmdDb29y
ZGluYXRvcjo6YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKAogICAgIGF1dG8q
IGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAg
ICByZXR1cm4gRXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsKLSAgICByZXR1cm4gZG9jdW1lbnQtPmV2
ZW50VHJhY2tpbmdSZWdpb25zKCk7CisgICAgYXV0byBldmVudFRyYWNraW5nUmVnaW9ucyA9IGRv
Y3VtZW50LT5ldmVudFRyYWNraW5nUmVnaW9ucygpOworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnBv
aW50ZXJFdmVudHNFbmFibGVkKCkpIHsKKyAgICAgICAgYXV0byYgdG91Y2hBY3Rpb25EYXRhID0g
ZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhOworICAgICAgICBmb3IgKGF1dG8m
IG5vZGUgOiAqZnJhbWUuZG9jdW1lbnQoKS0+dG91Y2hBY3Rpb25FbGVtZW50cygpKSB7CisgICAg
ICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KG5vZGUpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgYXV0byYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsK
KyAgICAgICAgICAgIHRvdWNoQWN0aW9uRGF0YS5hcHBlbmQoeworICAgICAgICAgICAgICAgIGVs
ZW1lbnQuY29tcHV0ZWRUb3VjaEFjdGlvbnMoKSwKKyAgICAgICAgICAgICAgICBlbGVtZW50Lm5l
YXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSwKKyAgICAg
ICAgICAgICAgICBub2RlLT5kb2N1bWVudCgpLmFic29sdXRlUmVnaW9uRm9yTm9kZShub2RlKS5m
aXJzdAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworICAgIHJl
dHVybiBldmVudFRyYWNraW5nUmVnaW9uczsKICNlbHNlCiAgICAgYXV0byogZnJhbWVWaWV3ID0g
ZnJhbWUudmlldygpOwogICAgIGlmICghZnJhbWVWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggYWM5NzZlM2Jj
YTIyNmFiNWI3NTBlYjYwMGIwNzc1OGM2MDk2MWIxZS4uZDRiYjVmNTJkN2MxNzY3MTZhOWUyZGQ5
MDVjZGFjM2RjYWZlMGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsU25hcE9mZnNldHNJbmZvLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRv
clR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CkBAIC01MSwyNyAr
NTIsNiBAQCBjbGFzcyBUZXh0U3RyZWFtOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXR5cGVk
ZWYgdW5zaWduZWQgU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zOwotdHlwZWRlZiB1aW50NjRf
dCBTY3JvbGxpbmdOb2RlSUQ7Ci0KLWVudW0gY2xhc3MgU2Nyb2xsaW5nTm9kZVR5cGUgOiB1aW50
OF90IHsKLSAgICBNYWluRnJhbWUsCi0gICAgU3ViZnJhbWUsCi0gICAgRnJhbWVIb3N0aW5nLAot
ICAgIE92ZXJmbG93LAotICAgIEZpeGVkLAotICAgIFN0aWNreQotfTsKLQotZW51bSBTY3JvbGxp
bmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckZsYWdzIHsKLSAgICBTY3JvbGxpbmdTdGF0ZVRyZWVB
c1RleHRCZWhhdmlvck5vcm1hbCAgICAgICAgICAgICAgICAgID0gMCwKLSAgICBTY3JvbGxpbmdT
dGF0ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVMYXllcklEcyAgICAgICAgID0gMSA8PCAwLAot
ICAgIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZU5vZGVJRHMgICAgICAg
ICAgPSAxIDw8IDEsCi0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRl
TGF5ZXJQb3NpdGlvbnMgICA9IDEgPDwgMiwKLSAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRC
ZWhhdmlvckRlYnVnICAgICAgICAgICAgICAgICAgID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0
QmVoYXZpb3JJbmNsdWRlTGF5ZXJJRHMgfCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlv
ckluY2x1ZGVOb2RlSURzIHwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRl
TGF5ZXJQb3NpdGlvbnMKLX07Ci10eXBlZGVmIHVuc2lnbmVkIFNjcm9sbGluZ1N0YXRlVHJlZUFz
VGV4dEJlaGF2aW9yOwotCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJh
bWVWaWV3OwpAQCAtODYsNDIgKzY2LDYgQEAgY2xhc3MgVmlld3BvcnRDb25zdHJhaW50czsKIGNs
YXNzIFNjcm9sbGluZ1RyZWU7CiAjZW5kaWYKIAotZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uIHsKLSAgICBTZXQsCi0gICAgU2V0QXBwcm94aW1hdGUsCi0gICAgU3luYwot
fTsKLQotc3RydWN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyB7Ci0gICAgU2Nyb2xsRWxhc3Rp
Y2l0eSBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07
Ci0gICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxF
bGFzdGljaXR5Tm9uZSB9OwotCi0gICAgU2Nyb2xsYmFyTW9kZSBob3Jpem9udGFsU2Nyb2xsYmFy
TW9kZSB7IFNjcm9sbGJhckF1dG8gfTsKLSAgICBTY3JvbGxiYXJNb2RlIHZlcnRpY2FsU2Nyb2xs
YmFyTW9kZSB7IFNjcm9sbGJhckF1dG8gfTsKLQotICAgIGJvb2wgaGFzRW5hYmxlZEhvcml6b250
YWxTY3JvbGxiYXIgeyBmYWxzZSB9OwotICAgIGJvb2wgaGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xs
YmFyIHsgZmFsc2UgfTsKLQotICAgIGJvb2wgdXNlRGFya0FwcGVhcmFuY2VGb3JTY3JvbGxiYXJz
IHsgZmFsc2UgfTsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnMmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGhvcml6b250YWxT
Y3JvbGxFbGFzdGljaXR5ID09IG90aGVyLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5Ci0gICAg
ICAgICAgICAmJiB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPT0gb3RoZXIudmVydGljYWxTY3Jv
bGxFbGFzdGljaXR5Ci0gICAgICAgICAgICAmJiBob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSA9PSBv
dGhlci5ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZQotICAgICAgICAgICAgJiYgdmVydGljYWxTY3Jv
bGxiYXJNb2RlID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsYmFyTW9kZQotICAgICAgICAgICAgJiYg
aGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgPT0gb3RoZXIuaGFzRW5hYmxlZEhvcml6b250
YWxTY3JvbGxiYXIKLSAgICAgICAgICAgICYmIGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhciA9
PSBvdGhlci5oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIKLSAgICAgICAgICAgICYmIHVzZURh
cmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFycyA9PSBvdGhlci51c2VEYXJrQXBwZWFyYW5jZUZvclNj
cm9sbGJhcnM7Ci0gICAgfQotfTsKLQotZW51bSBjbGFzcyBWaWV3cG9ydFJlY3RTdGFiaWxpdHkg
ewotICAgIFN0YWJsZSwKLSAgICBVbnN0YWJsZSwKLSAgICBDaGFuZ2luZ09ic2N1cmVkSW5zZXRz
SW50ZXJhY3RpdmVseSAvLyBUaGlzIGltcGxpZXMgVW5zdGFibGUuCi19OwotCiBjbGFzcyBTY3Jv
bGxpbmdDb29yZGluYXRvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdD
b29yZGluYXRvcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nQ29vcmRpbmF0
b3I+IGNyZWF0ZShQYWdlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM3ZWJkMmZm
Y2M5YzhmZTQwMGMwY2VjNjdkNjAxNjk2NzkxNGIxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaApAQCAt
MCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTY3Jv
bGxUeXBlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgdW5zaWduZWQgU3lu
Y2hyb25vdXNTY3JvbGxpbmdSZWFzb25zOwordHlwZWRlZiB1aW50NjRfdCBTY3JvbGxpbmdOb2Rl
SUQ7CisKK2VudW0gY2xhc3MgU2Nyb2xsaW5nTm9kZVR5cGUgOiB1aW50OF90IHsKKyAgICBNYWlu
RnJhbWUsCisgICAgU3ViZnJhbWUsCisgICAgRnJhbWVIb3N0aW5nLAorICAgIE92ZXJmbG93LAor
ICAgIEZpeGVkLAorICAgIFN0aWNreQorfTsKKworZW51bSBTY3JvbGxpbmdTdGF0ZVRyZWVBc1Rl
eHRCZWhhdmlvckZsYWdzIHsKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvck5v
cm1hbCAgICAgICAgICAgICAgICAgID0gMCwKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRC
ZWhhdmlvckluY2x1ZGVMYXllcklEcyAgICAgICAgID0gMSA8PCAwLAorICAgIFNjcm9sbGluZ1N0
YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZU5vZGVJRHMgICAgICAgICAgPSAxIDw8IDEsCisg
ICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJQb3NpdGlvbnMg
ICA9IDEgPDwgMiwKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckRlYnVnICAg
ICAgICAgICAgICAgICAgID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRl
TGF5ZXJJRHMgfCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVOb2RlSURz
IHwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJQb3NpdGlvbnMK
K307Cit0eXBlZGVmIHVuc2lnbmVkIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yOwor
CitlbnVtIGNsYXNzIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24geworICAgIFNldCwKKyAg
ICBTZXRBcHByb3hpbWF0ZSwKKyAgICBTeW5jCit9OworCitzdHJ1Y3QgU2Nyb2xsYWJsZUFyZWFQ
YXJhbWV0ZXJzIHsKKyAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGlj
aXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKKyAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRp
Y2FsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07CisKKyAgICBTY3Jv
bGxiYXJNb2RlIGhvcml6b250YWxTY3JvbGxiYXJNb2RlIHsgU2Nyb2xsYmFyQXV0byB9OworICAg
IFNjcm9sbGJhck1vZGUgdmVydGljYWxTY3JvbGxiYXJNb2RlIHsgU2Nyb2xsYmFyQXV0byB9Owor
CisgICAgYm9vbCBoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CisgICAg
Ym9vbCBoYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9OworCisgICAgYm9vbCB1
c2VEYXJrQXBwZWFyYW5jZUZvclNjcm9sbGJhcnMgeyBmYWxzZSB9OworCisgICAgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyYgb3RoZXIpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgPT0gb3RoZXIuaG9y
aXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkKKyAgICAgICAgICAgICYmIHZlcnRpY2FsU2Nyb2xsRWxh
c3RpY2l0eSA9PSBvdGhlci52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkKKyAgICAgICAgICAgICYm
IGhvcml6b250YWxTY3JvbGxiYXJNb2RlID09IG90aGVyLmhvcml6b250YWxTY3JvbGxiYXJNb2Rl
CisgICAgICAgICAgICAmJiB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPT0gb3RoZXIudmVydGljYWxT
Y3JvbGxiYXJNb2RlCisgICAgICAgICAgICAmJiBoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJh
ciA9PSBvdGhlci5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhcgorICAgICAgICAgICAgJiYg
aGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFyID09IG90aGVyLmhhc0VuYWJsZWRWZXJ0aWNhbFNj
cm9sbGJhcgorICAgICAgICAgICAgJiYgdXNlRGFya0FwcGVhcmFuY2VGb3JTY3JvbGxiYXJzID09
IG90aGVyLnVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFyczsKKyAgICB9Cit9OworCitlbnVt
IGNsYXNzIFZpZXdwb3J0UmVjdFN0YWJpbGl0eSB7CisgICAgU3RhYmxlLAorICAgIFVuc3RhYmxl
LAorICAgIENoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5IC8vIFRoaXMgaW1wbGll
cyBVbnN0YWJsZS4KK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNTI0MzkzZGQxNmFhNjM3ZmYxNjFkNjc1YjgwZmZkOTRl
N2FhMTUwMC4uNmY3M2UwYTk4ZjYxZmJhMjc3NDRhYWNhNmViNGExYTkxN2M0MjA2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTQw
Myw2ICs0MDMsMjUgQEAgU3RyaW5nIFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVBc1RleHQo
KQogICAgIHJldHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVO
VFMpCitPcHRpb25hbDxUb3VjaEFjdGlvbkRhdGE+IFNjcm9sbGluZ1RyZWU6OnRvdWNoQWN0aW9u
RGF0YUF0UG9pbnQoY29uc3QgSW50UG9pbnQgcCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogVGhp
cyBkb2VzIG5vdCBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIHJlZ2lv
bnMgbWF0Y2hpbmcgdGhpcyBwb2ludC4KKyAgICBmb3IgKGF1dG8mIHRvdWNoQWN0aW9uRGF0YSA6
IG1fZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhKSB7CisgICAgICAgIGlmICh0
b3VjaEFjdGlvbkRhdGEucmVnaW9uLmNvbnRhaW5zKHApKQorICAgICAgICAgICAgcmV0dXJuIHRv
dWNoQWN0aW9uRGF0YTsKKyAgICB9CisKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCit2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRp
b25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGlu
Z05vZGVJRCkKK3sKKyAgICBpZiAoYXV0byogc2Nyb2xsaW5nVHJlZU5vZGUgPSBub2RlRm9ySUQo
c2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAgc2Nyb2xsaW5nVHJlZU5vZGUtPnNldFRvdWNoQWN0
aW9ucyh0b3VjaEFjdGlvbnMpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggZWZjNjg0MTVjMzk0MzBkZjdmMjcw
NDNmZTk4MjMzMjc3NTU2NzYzMi4uOGU3ODZiNjI1OWE4YmI4M2FjMDY1MzIzMWY3MjdmYmRlMzM0
YTNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
aApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2lu
Y2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5j
bHVkZSAiVG91Y2hBY3Rpb24uaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBAIC0xMDQs
NyArMTA1LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgVHJhY2tp
bmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dE5hbWUsIEludFBvaW50KTsKLSAgICAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAg
V0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VG91Y2hBY3Rpb25EYXRhPiB0b3VjaEFjdGlvbkRhdGFB
dFBvaW50KGNvbnN0IEludFBvaW50KSBjb25zdDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGlj
ZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCAvKmhvcml6b250YWxJbmRleCovLCB1bnNpZ25l
ZCAvKnZlcnRpY2FsSW5kZXgqLykgeyB9CkBAIC0xNTEsNiArMTU1LDkgQEAgcHVibGljOgogICAg
IH0KICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Nyb2xsaW5nVHJlZUFzVGV4dCgp
OworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+LCBT
Y3JvbGxpbmdOb2RlSUQpOworI2VuZGlmCiAgICAgCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRN
YWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmluZGV4IDJmNDQxNWFjODg1MjY2
OWM3MzBkMjhhNjU3NTExMzFlNWJhMmM5OTMuLmFmNjMwYjEyOTczZGZmYmFhZjZmYWUzZjBhMzgz
OWI5ZmY1M2M0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZU5vZGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlNjcm9sbFR5cGVz
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxp
bmdTdGF0ZU5vZGUuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC03MSw2ICs3Miwx
MSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1bXAoV1RGOjpUZXh0U3Ry
ZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0OwogCisjaWYgRU5B
QkxFKFBPSU5URVJfRVZFTlRTKQorICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rp
b25zKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbnM7IH0KKyAgICB2b2lkIHNldFRvdWNo
QWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykgeyBtX3RvdWNoQWN0
aW9ucyA9IHRvdWNoQWN0aW9uczsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBTY3JvbGxp
bmdUcmVlTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCk7CiAgICAgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2Nyb2xsaW5nVHJlZTsgfQpAQCAtODYsNiArOTIsOSBAQCBwcml2YXRlOgogICAgIGNvbnN0
IFNjcm9sbGluZ05vZGVJRCBtX25vZGVJRDsKIAogICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBtX3Bh
cmVudDsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgT3B0aW9uU2V0PFRvdWNoQWN0
aW9uPiBtX3RvdWNoQWN0aW9uczsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lv
bnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3Bw
CmluZGV4IDdlNzYzYzg5NTNkY2E4ZTZkZDdjYWNhZDYyNTI0MDdjNzBjNWY4NjMuLjQzNzc4MDA5
ODUyOGJlZDEwOTYyZjQ4NjIwNzFiMjg2NzEwMTA5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKQEAgLTczLDcgKzczLDE5IEBAIHZv
aWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnVuaXRlKGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25z
JiBldmVudFRyYWNraW5nUmVnaW9uCiBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRUcmFja2lu
Z1JlZ2lvbnMmIGEsIGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBiKQogewogICAgIHJldHVy
biBhLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID09IGIuYXN5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24KKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgICAgICYmIGEudG91Y2hBY3Rp
b25EYXRhID09IGIudG91Y2hBY3Rpb25EYXRhCisjZW5kaWYKICAgICAgICAgJiYgYS5ldmVudFNw
ZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5ldmVudFNwZWNpZmljU3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbnM7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCiti
b29sIG9wZXJhdG9yPT0oY29uc3QgVG91Y2hBY3Rpb25EYXRhJiBhLCBjb25zdCBUb3VjaEFjdGlv
bkRhdGEmIGIpCit7CisgICAgcmV0dXJuIGEudG91Y2hBY3Rpb25zID09IGIudG91Y2hBY3Rpb25z
CisgICAgICAgICYmIGEuc2Nyb2xsaW5nTm9kZUlEID09IGIuc2Nyb2xsaW5nTm9kZUlECisgICAg
ICAgICYmIGEucmVnaW9uID09IGIucmVnaW9uOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tp
bmdSZWdpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9u
cy5oCmluZGV4IDNkNThiYTU1ZWZkNjNlZDliYWU0MDUwMWUzMDliODYxZmM5ZTljMDUuLmMyYTIw
NjMwMWFmMTdkYzE2Y2U4ZmQ3OWVlNTNiY2JmMWNhMTI2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaApAQCAtMzAsNiArMzAsMTIgQEAKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisjaW5jbHVkZSAiQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMu
aCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogZW51bSBjbGFzcyBUcmFja2luZ1R5cGUgOiB1aW50OF90IHsKQEAgLTM4LDYgKzQ0LDE4
IEBAIGVudW0gY2xhc3MgVHJhY2tpbmdUeXBlIDogdWludDhfdCB7CiAgICAgU3luY2hyb25vdXMg
PSAyCiB9OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQordHlwZWRlZiB1aW50NjRfdCBT
Y3JvbGxpbmdOb2RlSUQ7CitzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhIHsKKyAgICBPcHRpb25TZXQ8
VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucyB7IFRvdWNoQWN0aW9uOjpBdXRvIH07CisgICAgU2Ny
b2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRDsKKyAgICBSZWdpb24gcmVnaW9uOworfTsKKwor
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYsIGNvbnN0IFRvdWNoQWN0aW9u
RGF0YSYpOworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBUb3VjaEFjdGlvbkRhdGEmIGEs
IGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYgYikgeyByZXR1cm4gIShhID09IGIpOyB9CisjZW5kaWYK
Kwogc3RydWN0IEV2ZW50VHJhY2tpbmdSZWdpb25zIHsKICAgICAvLyBSZWdpb24gZm9yIHdoaWNo
IGV2ZW50cyBjYW4gYmUgZGlzcGF0Y2hlZCB3aXRob3V0IGJsb2NraW5nIHNjcm9sbGluZy4KICAg
ICBSZWdpb24gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CkBAIC00Niw2ICs2NCwxMCBAQCBz
dHJ1Y3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMgewogICAgIC8vIFRoZSBrZXkgaXMgdGhlIEV2ZW50
IE5hbWUgd2l0aCBhbiBhY3RpdmUgaGFuZGxlci4KICAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9u
PiBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiAKKyNpZiBFTkFCTEUo
UE9JTlRFUl9FVkVOVFMpCisgICAgVmVjdG9yPFRvdWNoQWN0aW9uRGF0YT4gdG91Y2hBY3Rpb25E
YXRhOworI2VuZGlmCisKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAogICAgIHZvaWQgdHJh
bnNsYXRlKEludFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVG91
Y2hBY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNoQWN0aW9uLmgKaW5kZXgg
ODY4MmI3ZmM0Njc3NTg5ZDgxOWY5MmY5ZDU0OTZjM2NhNTNlM2YxZi4uYjBjYjQ3NmU4ODk3NDg5
OGRkY2M3YmVlMDVlMTQ1NGQ0YzMwMzFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVG91Y2hBY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEFj
dGlvbi5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFBP
SU5URVJfRVZFTlRTKQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgVG91Y2hB
Y3Rpb24gOiB1aW50OF90IHsKQEAgLTM3LDMgKzM5LDUgQEAgZW51bSBjbGFzcyBUb3VjaEFjdGlv
biA6IHVpbnQ4X3QgewogfTsKIAogfQorCisjZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAz
ZDg3ZmJkNDhkYzYyMzdmZmUyYzUxOWE4YjBjNDUyNGI3YTQxYzk1Li44MzMyZWU2N2M0NDQ2YWNh
ZTc0YzliYzU4MzVjNmQxNzc5MjAzNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTIyMyw3ICsxMjIzLDcgQEAgcHVibGljOgogICAgIAog
ICAgIHZvaWQgc2V0SW5pdGlhbExldHRlcihjb25zdCBJbnRTaXplJiBzaXplKSB7IFNFVF9WQVIo
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgaW5pdGlhbExldHRlciwgc2l6ZSk7IH0KICAgICAKLSNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKICAgICB2
b2lkIHNldFRvdWNoQWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykg
eyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIHRvdWNoQWN0aW9ucywgdG91Y2hBY3Rp
b25zLnRvUmF3KCkpOyB9CiAjZW5kaWYKIApAQCAtMTYxOSw3ICsxNjE5LDcgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIFdpbGxDaGFuZ2VEYXRhKiBpbml0aWFsV2lsbENoYW5nZSgpIHsgcmV0dXJu
IG51bGxwdHI7IH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaWYgRU5BQkxFKFBPSU5U
RVJfRVZFTlRTKQogICAgIHN0YXRpYyBUb3VjaEFjdGlvbiBpbml0aWFsVG91Y2hBY3Rpb25zKCkg
eyByZXR1cm4gVG91Y2hBY3Rpb246OkF1dG87IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5jcHAKaW5kZXggYjY2YzMyOGZjYjU5NGNjM2IyYWE5ODU2YjFmZmMxMWViMzEzYTVlMC4uMTll
MzM3MmUxM2M0NGJmM2NkNmFiZjJiMzlhOWI2ZTViODZjNmNlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmNwcApAQCAtNzYsNyArNzYsNyBAQCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhKCkKICAgICAsIGp1c3RpZnlJdGVtcyhSZW5kZXJTdHlsZTo6
aW5pdGlhbEp1c3RpZnlJdGVtcygpKQogICAgICwganVzdGlmeVNlbGYoUmVuZGVyU3R5bGU6Omlu
aXRpYWxTZWxmQWxpZ25tZW50KCkpCiAgICAgLCBjdXN0b21Qcm9wZXJ0aWVzKFN0eWxlQ3VzdG9t
UHJvcGVydHlEYXRhOjpjcmVhdGUoKSkKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorI2lmIEVO
QUJMRShQT0lOVEVSX0VWRU5UUykKICAgICAsIHRvdWNoQWN0aW9ucyhzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUmVuZGVyU3R5bGU6OmluaXRpYWxUb3VjaEFjdGlvbnMoKSkpCiAjZW5kaWYKICAgICAs
IHBhZ2VTaXplVHlwZShQQUdFX1NJWkVfQVVUTykKQEAgLTE3MCw3ICsxNzAsNyBAQCBpbmxpbmUg
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YShjb25z
dCBTdHlsZVJhcmVOb25JbgogICAgICwganVzdGlmeVNlbGYoby5qdXN0aWZ5U2VsZikKICAgICAs
IGN1c3RvbVByb3BlcnRpZXMoby5jdXN0b21Qcm9wZXJ0aWVzKQogICAgICwgY3VzdG9tUGFpbnRX
YXRjaGVkUHJvcGVydGllcyhvLmN1c3RvbVBhaW50V2F0Y2hlZFByb3BlcnRpZXMgPyBzdGQ6Om1h
a2VfdW5pcXVlPEhhc2hTZXQ8U3RyaW5nPj4oKm8uY3VzdG9tUGFpbnRXYXRjaGVkUHJvcGVydGll
cykgOiBudWxscHRyKQotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaWYgRU5BQkxFKFBPSU5U
RVJfRVZFTlRTKQogICAgICwgdG91Y2hBY3Rpb25zKG8udG91Y2hBY3Rpb25zKQogI2VuZGlmCiAg
ICAgLCBwYWdlU2l6ZVR5cGUoby5wYWdlU2l6ZVR5cGUpCkBAIC0yODUsNyArMjg1LDcgQEAgYm9v
bCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEmIG8pIGMKICAgICAgICAgJiYgYm9yZGVyRml0ID09IG8uYm9yZGVyRml0
CiAgICAgICAgICYmIHRleHRDb21iaW5lID09IG8udGV4dENvbWJpbmUKICAgICAgICAgJiYgdGV4
dERlY29yYXRpb25TdHlsZSA9PSBvLnRleHREZWNvcmF0aW9uU3R5bGUKLSNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKICAgICAgICAgJiYgdG91Y2hB
Y3Rpb25zID09IG8udG91Y2hBY3Rpb25zCiAjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lU
SU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMzExMTI0MDQ2ZWU1ZWEzNTM0NWNjYTE2Njgx
ZThjMTQ2YzdmYjhjOC4uMjEzM2I4ODVjMzI4ZjA1ODU2MDA2ZjE1YzhjMWU0YjliNGMxZTk3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0xNzQsNyArMTc0LDcgQEAgcHVibGljOgogICAgIERh
dGFSZWY8U3R5bGVDdXN0b21Qcm9wZXJ0eURhdGE+IGN1c3RvbVByb3BlcnRpZXM7CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEhhc2hTZXQ8U3RyaW5nPj4gY3VzdG9tUGFpbnRXYXRjaGVkUHJvcGVydGll
czsKIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQogICAgIHVuc2lnbmVkIHRvdWNoQWN0aW9ucyA6IDU7IC8vIFRvdWNoQWN0aW9uCiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCmluZGV4IDFiMTM0
ZGZlYTNhMjUwZTUyY2ZkODY0YzhiYjE1NzNjYjg1NGMyMWYuLmE2MTc3ZjkyYTc3ZGZmMDI5NGUx
ZmY5N2ZhMjE1MTE1YWJmMzRhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlVHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVS
ZXNvbHZlci5jcHAKQEAgLTIzNiw2ICsyMzYsMTEgQEAgRWxlbWVudFVwZGF0ZXMgVHJlZVJlc29s
dmVyOjpyZXNvbHZlRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogICAgIGF1dG8gYmVmb3JlVXBk
YXRlID0gcmVzb2x2ZVBzZXVkb1N0eWxlKGVsZW1lbnQsIHVwZGF0ZSwgUHNldWRvSWQ6OkJlZm9y
ZSk7CiAgICAgYXV0byBhZnRlclVwZGF0ZSA9IHJlc29sdmVQc2V1ZG9TdHlsZShlbGVtZW50LCB1
cGRhdGUsIFBzZXVkb0lkOjpBZnRlcik7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucG9pbnRlckV2
ZW50c0VuYWJsZWQoKSkKKyAgICAgICAgbV9kb2N1bWVudC51cGRhdGVUb3VjaEFjdGlvbkVsZW1l
bnRzKGVsZW1lbnQsIHVwZGF0ZS5zdHlsZS5nZXQoKSk7CisjZW5kaWYKKwogICAgIHJldHVybiB7
IFdURk1vdmUodXBkYXRlKSwgZGVzY2VuZGFudHNUb1Jlc29sdmUsIFdURk1vdmUoYmVmb3JlVXBk
YXRlKSwgV1RGTW92ZShhZnRlclVwZGF0ZSkgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggM2IwNTI5YTRhOTU5YTIzYmQ1ZDA0
MGY1ZmEwMDhhZDdiMGZlYzcxZi4uNTRkMTk5ZTI1ZDg0YjI1MTgzZmQ5YmY5ZjAyY2I5NWI1YWM4
Y2E3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCkBAIC0zMjksMTAgKzMyOSw0MCBAQCBPcHRpb25hbDxET01DYWNoZUVuZ2luZTo6UmVjb3Jk
PiBBcmd1bWVudENvZGVyPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+OjpkZWNvZGUoRAogICAgIHJl
dHVybiB7eyBXVEZNb3ZlKGlkZW50aWZpZXIpLCBXVEZNb3ZlKHVwZGF0ZVJlc3BvbnNlQ291bnRl
ciksIFdURk1vdmUocmVxdWVzdEhlYWRlcnNHdWFyZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUob3B0aW9ucy52YWx1ZSgpKSwgV1RGTW92ZShyZWZlcnJlciksIFdURk1vdmUocmVzcG9uc2VI
ZWFkZXJzR3VhcmQpLCBXVEZNb3ZlKHJlc3BvbnNlKSwgV1RGTW92ZShyZXNwb25zZUJvZHkpLCBy
ZXNwb25zZUJvZHlTaXplIH19OwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQordm9p
ZCBBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBUb3VjaEFjdGlvbkRhdGEmIHRvdWNoQWN0aW9uRGF0YSkKK3sKKyAgICBlbmNvZGVy
IDw8IHRvdWNoQWN0aW9uRGF0YS50b3VjaEFjdGlvbnMgPDwgdG91Y2hBY3Rpb25EYXRhLnNjcm9s
bGluZ05vZGVJRCA8PCB0b3VjaEFjdGlvbkRhdGEucmVnaW9uOworfQorCitPcHRpb25hbDxUb3Vj
aEFjdGlvbkRhdGE+IEFyZ3VtZW50Q29kZXI8VG91Y2hBY3Rpb25EYXRhPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8T3B0aW9uU2V0PFRvdWNoQWN0aW9uPj4gdG91
Y2hBY3Rpb25zOworICAgIGRlY29kZXIgPj4gdG91Y2hBY3Rpb25zOworICAgIGlmICghdG91Y2hB
Y3Rpb25zKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U2Ny
b2xsaW5nTm9kZUlEPiBzY3JvbGxpbmdOb2RlSUQ7CisgICAgZGVjb2RlciA+PiBzY3JvbGxpbmdO
b2RlSUQ7CisgICAgaWYgKCFzY3JvbGxpbmdOb2RlSUQpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICBPcHRpb25hbDxSZWdpb24+IHJlZ2lvbjsKKyAgICBkZWNvZGVyID4+IHJl
Z2lvbjsKKyAgICBpZiAoIXJlZ2lvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwor
ICAgIHJldHVybiB7eyBXVEZNb3ZlKCp0b3VjaEFjdGlvbnMpLCBXVEZNb3ZlKCpzY3JvbGxpbmdO
b2RlSUQpLCBXVEZNb3ZlKCpyZWdpb24pIH19OworfQorI2VuZGlmCisKIHZvaWQgQXJndW1lbnRD
b2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCiB7CiAgICAgZW5j
b2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbjsK
ICAgICBlbmNvZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNTeW5jaHJv
bm91c0Rpc3BhdGNoUmVnaW9uczsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgZW5j
b2RlciA8PCBldmVudFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlvbkRhdGE7CisjZW5kaWYKIH0K
IAogYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIsIEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9ucykK
QEAgLTM0Myw4ICszNzMsMTYgQEAgYm9vbCBBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdp
b25zPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEV2ZW50VHJhY2tpbmcKICAgICBIYXNoTWFw
PFN0cmluZywgUmVnaW9uPiBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRj
aFJlZ2lvbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQorICAgIFZlY3RvcjxUb3VjaEFjdGlvbkRhdGE+IHRvdWNoQWN0aW9uRGF0YTsKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHRvdWNoQWN0aW9uRGF0YSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9uID0gV1RGTW92ZShhc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbik7CiAgICAgZXZlbnRU
cmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zID0g
V1RGTW92ZShldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMpOworI2lmIEVO
QUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBldmVudFRyYWNraW5nUmVnaW9ucy50b3VjaEFjdGlv
bkRhdGEgPSBXVEZNb3ZlKHRvdWNoQWN0aW9uRGF0YSk7CisjZW5kaWYKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtOTE1LDYgKzk1MywxNSBAQCBib29sIEFyZ3VtZW50Q29kZXI8UmVnaW9uPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlZ2lvbiYgcmVnaW9uKQogICAgIHJldHVybiB0cnVl
OwogfQogCitPcHRpb25hbDxSZWdpb24+IEFyZ3VtZW50Q29kZXI8UmVnaW9uPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgUmVnaW9uIHJlZ2lvbjsKKyAgICBpZiAoIWRlY29kZShk
ZWNvZGVyLCByZWdpb24pKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0
dXJuIHJlZ2lvbjsKK30KKwogdm9pZCBBcmd1bWVudENvZGVyPExlbmd0aD46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBMZW5ndGgmIGxlbmd0aCkKIHsKICAgICBTaW1wbGVBcmd1bWVu
dENvZGVyPExlbmd0aD46OmVuY29kZShlbmNvZGVyLCBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAzYWU3ZTQ3NWQ4MzM2ZWZjMjdk
Y2YyYzUxZjcyMmNjMmRiOTg0NWE2Li4yZWY1ZTQzYWRiNDg5NTE4MTljOWE3MTNkNjllMDEzZDIw
ZGQ2ZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aApAQCAtMTIxLDYgKzEyMSw5IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwogc3Ry
dWN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7
CiBzdHJ1Y3QgVGV4dEluZGljYXRvckRhdGE7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQor
c3RydWN0IFRvdWNoQWN0aW9uRGF0YTsKKyNlbmRpZgogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRl
czsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKICAgICAKQEAgLTE5OSw2ICsyMDIsMTMgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVj
b3JkPiB7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNv
cmQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQor
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUb3VjaEFjdGlvbkRhdGE+
IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRvdWNo
QWN0aW9uRGF0YSYpOworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpUb3VjaEFjdGlvbkRh
dGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworI2VuZGlmCisKIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnM+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkV2ZW50VHJhY2tpbmdSZWdpb25z
Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpFdmVudFRyYWNr
aW5nUmVnaW9ucyYpOwpAQCAtMzE2LDYgKzMyNiw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6UGF0aD4gewogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpSZWdpb24+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OlJlZ2lvbiYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6UmVnaW9uJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lvbj4g
ZGVjb2RlKERlY29kZXImKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6TGVuZ3RoPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCA1Zjc1NGFhNTVmODZkNDAxY2Q3NmJlZTY1Y2Q5NTRkZGQ3NjFm
ODc2Li40MGFiMzY3ZTFiOTY0YTk0N2Q3ZWEwMzNlNTcyYmNiYTNiMDgyYmE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI1ODEsNiAr
MjU4MSwxNCBAQCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmll
dyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9jaXR5OihDR1BvaQogICAgIC8vIHpvb21pbmcuIFdlJ2xs
IGFuaW1hdGUgdG8gdGhlIHJpZ2h0IHBsYWNlIG9uY2UgdGhlIHpvb20gZmluaXNoZXMuCiAgICAg
aWYgKFtzY3JvbGxWaWV3IGlzWm9vbWluZ10pCiAgICAgICAgICp0YXJnZXRDb250ZW50T2Zmc2V0
ID0gW3Njcm9sbFZpZXcgY29udGVudE9mZnNldF07CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQorICAgIGVsc2UgeworICAgICAgICBpZiAoW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJ
blhBeGlzXSkKKyAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQtPnggPSBzY3JvbGxWaWV3
LmNvbnRlbnRPZmZzZXQueDsKKyAgICAgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5u
aW5nSW5ZQXhpc10pCisgICAgICAgICAgICB0YXJnZXRDb250ZW50T2Zmc2V0LT55ID0gc2Nyb2xs
Vmlldy5jb250ZW50T2Zmc2V0Lnk7CisgICAgfQorI2VuZGlmCiAjaWYgRU5BQkxFKENTU19TQ1JP
TExfU05BUCkgJiYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICAgICBpZiAoV2ViS2l0OjpSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5KCkpIHsKICAgICAgICAgLy8gRklYTUU6IEhlcmUsIEknbSBmaW5k
aW5nIHRoZSBtYXhpbXVtIGhvcml6b250YWwvdmVydGljYWwgc2Nyb2xsIG9mZnNldHMuIFRoZXJl
J3MgcHJvYmFibHkgYSBiZXR0ZXIgd2F5IHRvIGRvIHRoaXMuCkBAIC0yNjE4LDYgKzI2MjYsMjAg
QEAgLSAodm9pZClzY3JvbGxWaWV3RGlkU2Nyb2xsVG9Ub3A6KFVJU2Nyb2xsVmlldyAqKXNjcm9s
bFZpZXcKICAgICBbc2VsZiBfZGlkRmluaXNoU2Nyb2xsaW5nXTsKIH0KIAorLSAoQ0dQb2ludClf
c2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9m
ZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRpb24gc3Rh
cnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbklu
VmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2Np
dHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7CisgICAgaWYgKCFbX2NvbnRlbnRWaWV3IHByZXZlbnRz
UGFubmluZ0luWEF4aXNdICYmICFbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNd
KQorICAgICAgICByZXR1cm4gb2Zmc2V0OworCisgICAgQ0dQb2ludCBhZGp1c3RlZENvbnRlbnRP
ZmZzZXQgPSBDR1BvaW50TWFrZShvZmZzZXQueCwgb2Zmc2V0LnkpOworICAgIGlmIChbX2NvbnRl
bnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKQorICAgICAgICBhZGp1c3RlZENvbnRlbnRP
ZmZzZXQueCA9IHN0YXJ0Lng7CisgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5n
SW5ZQXhpc10pCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC55ID0gc3RhcnQueTsKKwor
ICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisKIC0gKHZvaWQpc2Nyb2xsVmll
d0RpZFNjcm9sbDooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewogICAgIGlmICghW3NlbGYg
dXNlc1N0YW5kYXJkQ29udGVudFZpZXddICYmIFtfY3VzdG9tQ29udGVudFZpZXcgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJfc2Nyb2xsVmlld0RpZFNjcm9sbDopXSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCBhOTU5Yzkz
YmM3NTlkMWM5ODY2OGM4MWRhZGEwMWUyNjdmMzViOWIxLi5hOGM2ZjdjMzVhZWNjYjkzODBmOTE0
YzE5YTRlMzM3ZGExNWFmOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuY3BwCkBAIC0yMDYsNiArMjA2LDE4IEBAIFN0cmluZyBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29uc3QKICAgICBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK09w
dGlvbmFsPFRvdWNoQWN0aW9uRGF0YT4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
dG91Y2hBY3Rpb25EYXRhQXRQb2ludChJbnRQb2ludCBwKSBjb25zdAoreworICAgIHJldHVybiBt
X3Njcm9sbGluZ1RyZWUtPnRvdWNoQWN0aW9uRGF0YUF0UG9pbnQocCk7Cit9CisKK3ZvaWQgUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5n
Tm9kZUlEKE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rpb25zLCBTY3JvbGxpbmdOb2Rl
SUQgc2Nyb2xsaW5nTm9kZUlEKQoreworICAgIG1fc2Nyb2xsaW5nVHJlZS0+c2V0VG91Y2hBY3Rp
b25zRm9yU2Nyb2xsaW5nTm9kZUlEKHRvdWNoQWN0aW9ucywgc2Nyb2xsaW5nTm9kZUlEKTsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShBU1lO
Q19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuaAppbmRleCBiMzJkNzlmZTkyODliMTQ1N2M4ZWFkMmQ4ZDM1YzNiNzlkYWVjOTZhLi5jMGIw
MmMxOWUzMDJlOTUyYWYxYTk5ZjIyNmRlNWNiZmQyOGJkYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKQEAgLTk4LDYgKzk4LDExIEBAIHB1Ymxp
YzoKIAogICAgIFN0cmluZyBzY3JvbGxpbmdUcmVlQXNUZXh0KCkgY29uc3Q7CiAKKyNpZiBFTkFC
TEUoUE9JTlRFUl9FVkVOVFMpCisgICAgT3B0aW9uYWw8V2ViQ29yZTo6VG91Y2hBY3Rpb25EYXRh
PiB0b3VjaEFjdGlvbkRhdGFBdFBvaW50KFdlYkNvcmU6OkludFBvaW50KSBjb25zdDsKKyAgICB2
b2lkIHNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8V2ViQ29yZTo6
VG91Y2hBY3Rpb24+LCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOworI2VuZGlmCisKIHByaXZh
dGU6CiAgICAgdm9pZCBjb25uZWN0U3RhdGVOb2RlTGF5ZXJzKFdlYkNvcmU6OlNjcm9sbGluZ1N0
YXRlVHJlZSYsIGNvbnN0IFJlbW90ZUxheWVyVHJlZUhvc3QmKTsKICNpZiBFTkFCTEUoQ1NTX1ND
Uk9MTF9TTkFQKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCmluZGV4IDRjYzdlMWE4N2I4NWFjNzA2MzdlMTVmNDRj
YzFlNGY4ZjkyMTljNGMuLmM5ZTZkMTIyMTQyNDY4MzQ5YjI3Y2FiNmEzM2Y2MTUzZWFmNWI2MDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1MubW0KQEAgLTY3LDkgKzY3LDI3IEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dp
bGxCZWdpbkRyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiAgICAgX3Njcm9sbGlu
Z1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbFdpbGxTdGFydCgpOwogfQogCi0jaWYgRU5BQkxFKENT
U19TQ1JPTExfU05BUCkKIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzooVUlTY3Jv
bGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0
Q29udGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAqKXRhcmdldENvbnRlbnRPZmZzZXQKIHsKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgaWYgKCFbc2Nyb2xsVmlldyBpc1pvb21pbmdd
KSB7CisgICAgICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdh
dGUtPnNjcm9sbGluZ05vZGUoKS50b3VjaEFjdGlvbnMoKTsKKyAgICAgICAgaWYgKHRvdWNoQWN0
aW9ucyAhPSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6QXV0byAmJiB0b3VjaEFjdGlvbnMgIT0gV2Vi
Q29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgeworICAgICAgICAgICAgYm9vbCBjYW5Q
YW5YID0gdHJ1ZTsKKyAgICAgICAgICAgIGJvb2wgY2FuUGFuWSA9IHRydWU7CisgICAgICAgICAg
ICBpZiAoIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWCkp
IHsKKyAgICAgICAgICAgICAgICBjYW5QYW5YID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdGFy
Z2V0Q29udGVudE9mZnNldC0+eCA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNldC54OworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6
VG91Y2hBY3Rpb246OlBhblkpKSB7CisgICAgICAgICAgICAgICAgY2FuUGFuWSA9IGZhbHNlOwor
ICAgICAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQtPnkgPSBzY3JvbGxWaWV3LmNvbnRl
bnRPZmZzZXQueTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCisj
aWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBDR0Zsb2F0IGhvcml6b250YWxUYXJnZXQg
PSB0YXJnZXRDb250ZW50T2Zmc2V0LT54OwogICAgIENHRmxvYXQgdmVydGljYWxUYXJnZXQgPSB0
YXJnZXRDb250ZW50T2Zmc2V0LT55OwogCkBAIC05Niw4ICsxMTQsOCBAQCAtICh2b2lkKXNjcm9s
bFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9j
aXR5OihDR1BvaQogICAgICAgICB8fCBvcmlnaW5hbFZlcnRpY2FsU25hcFBvc2l0aW9uICE9IF9z
Y3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudFZlcnRpY2Fs
U25hcFBvaW50SW5kZXgoKSkgewogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+
Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdh
dGUtPnNjcm9sbGluZ05vZGUoKS5jdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4KCksIF9z
Y3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudFZlcnRpY2Fs
U25hcFBvaW50SW5kZXgoKSk7CiAgICAgfQotfQogI2VuZGlmCit9CiAKIC0gKHZvaWQpc2Nyb2xs
Vmlld0RpZEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxEZWNlbGVy
YXRlOihCT09MKXdpbGxEZWNlbGVyYXRlCiB7CkBAIC0xMDUsNiArMTIzLDkgQEAgLSAodm9pZClz
Y3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2lsbERl
Y2VsZXJhdGU6KEJPT0wKICAgICAgICAgX2luVXNlckludGVyYWN0aW9uID0gTk87CiAgICAgICAg
IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNjcm9sbFZp
ZXcuY29udGVudE9mZnNldCwgX2luVXNlckludGVyYWN0aW9uKTsKICAgICAgICAgX3Njcm9sbGlu
Z1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbERpZEVuZCgpOworI2lmIEVOQUJMRShQT0lOVEVSX0VW
RU5UUykKKyAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUo
KS5zZXRUb3VjaEFjdGlvbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OkF1dG8pOworI2VuZGlmCiAg
ICAgfQogfQogCkBAIC0xMTQsOSArMTM1LDMwIEBAIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERl
Y2VsZXJhdGluZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogICAgICAgICBfaW5Vc2VySW50
ZXJhY3Rpb24gPSBOTzsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9s
bFZpZXdEaWRTY3JvbGwoc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0LCBfaW5Vc2VySW50ZXJhY3Rp
b24pOwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsRGlkRW5kKCk7
CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVE
ZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnNldFRvdWNoQWN0aW9ucyhXZWJDb3JlOjpUb3VjaEFj
dGlvbjo6QXV0byk7CisjZW5kaWYKICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVO
VFMpCistIChDR1BvaW50KV9zY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IGFk
anVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1BvaW50KW9mZnNldCB0cmFuc2xhdGlvbjooQ0dQb2lu
dCl0cmFuc2xhdGlvbiBzdGFydFBvaW50OihDR1BvaW50KXN0YXJ0IGxvY2F0aW9uSW5WaWV3OihD
R1BvaW50KWxvY2F0aW9uSW5WaWV3IGhvcml6b250YWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICop
aHYgdmVydGljYWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopdnYKK3sKKyAgICBhdXRvIHRvdWNo
QWN0aW9ucyA9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkudG91
Y2hBY3Rpb25zKCk7CisgICAgaWYgKHRvdWNoQWN0aW9ucyA9PSBXZWJDb3JlOjpUb3VjaEFjdGlv
bjo6QXV0byB8fCB0b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxh
dGlvbikKKyAgICAgICAgcmV0dXJuIG9mZnNldDsKKworICAgIENHUG9pbnQgYWRqdXN0ZWRDb250
ZW50T2Zmc2V0ID0gQ0dQb2ludE1ha2Uob2Zmc2V0LngsIG9mZnNldC55KTsKKworICAgIGlmICgh
dG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5YKSkKKyAgICAg
ICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnggPSBzdGFydC54OworICAgIGlmICghdG91Y2hBY3Rp
b25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5ZKSkKKyAgICAgICAgYWRqdXN0
ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFydC55OworCisgICAgcmV0dXJuIGFkanVzdGVkQ29udGVu
dE9mZnNldDsKK30KKyNlbmRpZgorCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBhZDdkN2RjOTI4MmUzNTdmMzBlZjI0
ZTI4OWExMTNkYTYzMjAxZDkyLi40MGRjMzA5NDBhMWQxZDkzYWY1ZDJiMzMxZDJjYmUyYWJkNGU0
YzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjg0LDYgKzY4
NCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbihjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBnbG9iYWxQb3NpdGlvbik7CiAgICAgdm9pZCByZXF1ZXN0QWRkaXRpb25hbEl0ZW1zRm9y
RHJhZ1Nlc3Npb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24pOwogICAgIHZvaWQgZGlkQ29uY2x1
ZGVFZGl0RGF0YUludGVyYWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRh
Pik7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGJvb2wgaXNTY3JvbGxpbmdPclpv
b21pbmcoKSBjb25zdCB7IHJldHVybiBtX2lzU2Nyb2xsaW5nT3Jab29taW5nOyB9CisjZW5kaWYK
ICNlbmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmlu
ZGV4IGQ1MDhhM2U0YmE3Y2Q3YWM4MjE4NmU2OWE2YzI3NWE1YTBjODQzN2UuLjVkOWViNjk2YTY5
NDA2NTAyNTgzYjQ5ZWVlMTQ5MjRjZWRiMGFjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTE5Niw2ICsx
OTYsMTAgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAgICBSZXRhaW5QdHI8VUlX
ZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyPiBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25p
emVyOwogCiAgICAgQk9PTCBfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHk7CisjaWYg
RU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIEJPT0wgX3ByZXZlbnRzUGFubmluZ0luWEF4aXM7
CisgICAgQk9PTCBfcHJldmVudHNQYW5uaW5nSW5ZQXhpczsKKyNlbmRpZgogCiAgICAgUmV0YWlu
UHRyPFdLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXplcj4gX3NpbmdsZVRhcEdlc3R1
cmVSZWNvZ25pemVyOwogICAgIFJldGFpblB0cjxfVUlXZWJIaWdobGlnaHRMb25nUHJlc3NHZXN0
dXJlUmVjb2duaXplcj4gX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyOwpAQCAt
MzQ5LDYgKzM1MywxMCBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3Jt
YXRpb24mIGZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb247CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIFVJV2ViRm9ybUFjY2Vzc29yeSAqZm9ybUFjY2Vzc29yeVZpZXc7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJVGV4dElucHV0QXNzaXN0YW50SXRlbSAqaW5wdXRB
c3Npc3RhbnRJdGVtRm9yV2ViVmlldzsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgcHJldmVudHNQYW5uaW5nSW5YQXhpczsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBwcmV2ZW50c1Bhbm5pbmdJbllB
eGlzOworI2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzdHJvbmcpIFVJVmlldyA8V0tGb3JtQ29udHJvbD4gKmRhdGFMaXN0VGV4dFN1
Z2dlc3Rpb25zSW5wdXRWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYjI4ZjE3N2NhMTQ4NWY3NWUx
NGNjY2YxNTgyODRjMjk2MmI0Yjc5MS4uNTgzOGQyMDUxZTg3ZTAxNWI0YjRhYjQzMTllMTFjNGRl
NzY4ZGZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMjksNiArMTI5LDExIEBACiAjaW1wb3J0IDxX
ZWJLaXRBZGRpdGlvbnMvV0tQbGF0Zm9ybUZpbGVVcGxvYWRQYW5lbC5tbT4KICNlbmRpZgogCisj
aWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorI2ltcG9ydCAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9Ub3VjaEFjdGlvbi5oPgorI2VuZGlmCisK
ICNpZiBQTEFURk9STShXQVRDSE9TKQogCiBAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKFdhdGNo
U3VwcG9ydCkgPFdLRm9jdXNlZEZvcm1Db250cm9sVmlld0RlbGVnYXRlLCBXS1NlbGVjdE1lbnVM
aXN0Vmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSwgV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXJE
ZWxlZ2F0ZT4KQEAgLTYwOCw2ICs2MTMsMTggQEAgc3RhdGljIGlubGluZSBib29sIGhhc0ZvY3Vz
ZWRFbGVtZW50KFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiBmb2N1c2VkRWwKICAg
ICByZXR1cm4gKGZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUgIT0gV2ViS2l0
OjpJbnB1dFR5cGU6Ok5vbmUpOwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorLSAo
Qk9PTClwcmV2ZW50c1Bhbm5pbmdJblhBeGlzCit7CisgICAgcmV0dXJuIF9wcmV2ZW50c1Bhbm5p
bmdJblhBeGlzOworfQorCistIChCT09MKXByZXZlbnRzUGFubmluZ0luWUF4aXMKK3sKKyAgICBy
ZXR1cm4gX3ByZXZlbnRzUGFubmluZ0luWUF4aXM7Cit9CisjZW5kaWYKKwogLSAoV0tGb3JtSW5w
dXRTZXNzaW9uICopX2Zvcm1JbnB1dFNlc3Npb24KIHsKICAgICByZXR1cm4gX2Zvcm1JbnB1dFNl
c3Npb24uZ2V0KCk7CkBAIC04NTQsNiArODcxLDEwIEBAIC0gKHZvaWQpY2xlYW51cEludGVyYWN0
aW9uCiAgICAgX2hhc1NldFVwSW50ZXJhY3Rpb25zID0gTk87CiAgICAgX3N1cHByZXNzU2VsZWN0
aW9uQXNzaXN0YW50UmVhc29ucyA9IHsgfTsKICAgICBfaXNab29taW5nVG9SZXZlYWxGb2N1c2Vk
RWxlbWVudCA9IE5POworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIFtzZWxmIF9y
ZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOworI2VuZGlmCiB9CiAKIC0gKHZvaWQpX3JlbW92
ZURlZmF1bHRHZXN0dXJlUmVjb2duaXplcnMKQEAgLTExMjEsMTYgKzExNDIsNTQgQEAgLSAodm9p
ZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29n
bml6ZXIgKilnZXN0dXJlUmUKICAgICBXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQgbmF0aXZl
V2ViVG91Y2hFdmVudChsYXN0VG91Y2hFdmVudCk7CiAgICAgbmF0aXZlV2ViVG91Y2hFdmVudC5z
ZXRDYW5QcmV2ZW50TmF0aXZlR2VzdHVyZXMoIV9jYW5TZW5kVG91Y2hFdmVudHNBc3luY2hyb25v
dXNseSB8fCBbZ2VzdHVyZVJlY29nbml6ZXIgaXNEZWZhdWx0UHJldmVudGVkXSk7CiAKKyNpZiBF
TkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgaWYgKGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9y
ID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKSkgeworICAgICAgICBmb3IgKGNv
bnN0IGF1dG8mIHRvdWNoUG9pbnQgOiBuYXRpdmVXZWJUb3VjaEV2ZW50LnRvdWNoUG9pbnRzKCkp
IHsKKyAgICAgICAgICAgIGlmICh0b3VjaFBvaW50LnBoYXNlKCkgIT0gV2ViS2l0OjpXZWJQbGF0
Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICAgICAgaWYgKGF1dG8gdG91Y2hBY3Rpb25EYXRhID0gc2Nyb2xsaW5nQ29vcmRp
bmF0b3ItPnRvdWNoQWN0aW9uRGF0YUF0UG9pbnQodG91Y2hQb2ludC5sb2NhdGlvbigpKSkgewor
ICAgICAgICAgICAgICAgIGlmICh0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucyA9PSBXZWJD
b3JlOjpUb3VjaEFjdGlvbjo6Tm9uZSkKKyAgICAgICAgICAgICAgICAgICAgW190b3VjaEV2ZW50
R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVmYXVsdFByZXZlbnRlZDpZRVNdOworICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKCF0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJD
b3JlOjpUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKSkgeworICAgICAgICAgICAgICAgICAgICBp
ZiAoYXV0byBzY3JvbGxpbmdOb2RlSUQgPSB0b3VjaEFjdGlvbkRhdGEtPnNjcm9sbGluZ05vZGVJ
RCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5zZXRUb3Vj
aEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQodG91Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnMs
IHRvdWNoQWN0aW9uRGF0YS0+c2Nyb2xsaW5nTm9kZUlEKTsKKyAgICAgICAgICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9uRGF0YS0+dG91
Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQaW5jaFpvb20pKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF93ZWJWaWV3LnNjcm9sbFZpZXcucGluY2hHZXN0dXJl
UmVjb2duaXplci5lbmFibGVkID0gTk87CisgICAgICAgICAgICAgICAgICAgICAgICBfcHJldmVu
dHNQYW5uaW5nSW5YQXhpcyA9ICF0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucy5jb250YWlu
cyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWCk7CisgICAgICAgICAgICAgICAgICAgICAgICBf
cHJldmVudHNQYW5uaW5nSW5ZQXhpcyA9ICF0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucy5j
b250YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cisj
ZW5kaWYKKwogICAgIGlmIChfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkpCiAgICAg
ICAgIF9wYWdlLT5oYW5kbGVUb3VjaEV2ZW50QXN5bmNocm9ub3VzbHkobmF0aXZlV2ViVG91Y2hF
dmVudCk7CiAgICAgZWxzZQogICAgICAgICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVudFN5bmNocm9u
b3VzbHkobmF0aXZlV2ViVG91Y2hFdmVudCk7CiAKLSAgICBpZiAobmF0aXZlV2ViVG91Y2hFdmVu
dC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCisgICAgaWYgKG5hdGl2ZVdlYlRvdWNoRXZl
bnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgpKSB7CiAgICAgICAgIF9jYW5TZW5kVG91Y2hF
dmVudHNBc3luY2hyb25vdXNseSA9IE5POworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQor
ICAgICAgICBpZiAoIV9wYWdlLT5pc1Njcm9sbGluZ09yWm9vbWluZygpKQorICAgICAgICAgICAg
W3NlbGYgX3Jlc2V0UGFubmluZ1ByZXZlbnRpb25GbGFnc107CisjZW5kaWYKKyAgICB9CiAjZW5k
aWYKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKy0gKHZvaWQpX3Jlc2V0UGFubmlu
Z1ByZXZlbnRpb25GbGFncworeworICAgIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzID0gTk87Cisg
ICAgX3ByZXZlbnRzUGFubmluZ0luWUF4aXMgPSBOTzsKK30KKyNlbmRpZgorCiAtICh2b2lkKV9p
bnNwZWN0b3JOb2RlU2VhcmNoUmVjb2duaXplZDooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1
cmVSZWNvZ25pemVyCiB7CiAgICAgQVNTRVJUKF9pbnNwZWN0b3JOb2RlU2VhcmNoRW5hYmxlZCk7
CkBAIC0yMTk1LDYgKzIyNTQsMTAgQEAgLSAodm9pZClfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5n
CiAgICAgfQogICAgIF9wYWdlLT5zZXRJc1Njcm9sbGluZ09yWm9vbWluZyhmYWxzZSk7CiAKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgW3NlbGYgX3Jlc2V0UGFubmluZ1ByZXZlbnRp
b25GbGFnc107CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdBVENIT1MpCiAgICAgW19mb2N1c2Vk
Rm9ybUNvbnRyb2xWaWV3IGVuZ2FnZUZvY3VzZWRGb3JtQ29udHJvbE5hdmlnYXRpb25dOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggYzJhYmQ3ZDY3OTczNjYyYzE3NDYyZDYwNTNlYTVjYzg3ZWNhNWQ5YS4uYzQw
OGUwNjA0MDg0MmRlYjgyZjUyZDA1Y2M4NDJiNDM5MzlmYTc0NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDE5LTAxLTI0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAg
ICAgICAgTGltaXQgdXNlci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFj
dGlvbiBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkzNDQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgc2VyaWVz
IG9mIHRlc3RzIHRoYXQgY2hlY2sgdGhhdCB0aGUgIm5vbmUiLCAicGFuLXgiLCAicGFuLXkiIGFu
ZCAicGluY2gtem9vbSIgdmFsdWVzIGhhdmUgdGhlIGV4cGVjdGVkCisgICAgICAgIGltcGFjdCBv
biBwYWdlIHBhbm5pbmcgb24gaU9TLgorCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAg
ICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5v
bmUtb24taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbDogQWRkZWQuCisgICAgICAgICog
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gt
em9vbS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16
b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGlu
Zy5odG1sOiBBZGRlZC4KKwogMjAxOS0wMS0yNCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgQWQgQ2xpY2sgQXR0cmlidXRpb24gYXMgYW4gaW50ZXJu
YWwvZXhwZXJpbWVudGFsIGZlYXR1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MjdlOGFmODFiZDk4NGM4YzM0MDcwNTUxYWY1YjYxZTkyNzBmZjgxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRv
dWNoLWFjdGlvbjogbm9uZSBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9s
bGluZy10b3VjaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMwMDcyOTEwMjQ1ZWY1NzU4N2Vi
ZTljNTJjOWZhYmMwNTMyZDFjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3Vj
aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRp
bmcgdG91Y2gtYWN0aW9uOiBub25lIGluIGNvbnRlbnQgaG9zdGVkIGluIGEgc2Nyb2xsYWJsZSBj
b250YWluZXIgdXNpbmcgJy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaCcgcHJldmVu
dHMgc2Nyb2xsaW5nIG9mIHRoYXQgY29udGFpbmVyLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xs
aW5nLXRvdWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTk2
MTRmZmVmY2VmYmVhZmU2NzQxNzRiNTgxNTQxYzBmMjM1MTQxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZs
b3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8c3R5
bGU+CisKKyNzY3JvbGxpbmctY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDog
NDAwcHg7CisgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9s
bGluZzogdG91Y2g7Cit9CisKKyNzY3JvbGxpbmctY29udGFpbmVyID4gZGl2IHsKKyAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDIw
MCU7CisgICAgaGVpZ2h0OiAyMDAlOworICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKK30KKworPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ic2Nyb2xsaW5nLWNvbnRhaW5lciI+PGRp
dj48L2Rpdj48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCithc3luY190ZXN0KHRlc3QgPT4geworICAgIGNv
bnN0IHNjcm9sbGluZ0NvbnRhaW5lciA9IGRvY3VtZW50LmJvZHkuZmlyc3RFbGVtZW50Q2hpbGQ7
CisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVu
KCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdDb250YWluZXIuc2Nyb2xs
TGVmdCwgMCwgIlRoZSBzY3JvbGxpbmcgY29udGFpbmVyIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhl
IHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhzY3JvbGxpbmdDb250YWluZXIuc2Ny
b2xsVG9wLCAwLCAiVGhlIHNjcm9sbGluZyBjb250YWluZXIgd2FzIG5vdCBzY3JvbGxlZCBpbiB0
aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5n
IHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4gYSBz
Y3JvbGxhYmxlIGNvbnRhaW5lciB1c2luZyAnLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRv
dWNoJyBwcmV2ZW50cyBzY3JvbGxpbmcgb2YgdGhhdCBjb250YWluZXIuIik7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlm
cmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NzUxYmRkN2Mz
NDYyYTFlMDg2ZmZjNzNmMzUzZWQ0NGRhZjdmYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91
Y2gtYWN0aW9uOiBub25lIG9uIGFuIGlmcmFtZSBhbmQgaW50ZXJhY3Rpbmcgd2l0aCBpdHMgY29u
dGVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDkyN2VhOGRiNDYxNzQzNDFjNTFhMGM0Y2M1MjUzZTViNjIwN2EyZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPHN0
eWxlPgorCitpZnJhbWUgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOwor
ICAgIHRvcDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICB0
b3VjaC1hY3Rpb246IG5vbmU7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJh
bWU+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKworYXN5bmNfdGVzdCh0ZXN0ID0+IHsKKyAgICBjb25z
dCBpZnJhbWUgPSBkb2N1bWVudC5ib2R5LmZpcnN0RWxlbWVudENoaWxkOworICAgIGNvbnN0IHRh
cmdldCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKSk7CisgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCBg
CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMDsKKyAgICAgICAg
dG9wOiAwOworICAgICAgICB3aWR0aDogMjAwJTsKKyAgICAgICAgaGVpZ2h0OiAyMDAlOworICAg
IGApOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQs
IDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBz
Y3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsK
K30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gaWZyYW1l
IGFuZCBpbnRlcmFjdGluZyB3aXRoIGl0cyBjb250ZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5n
LiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMDJiMTMwNDk2OGEyOTFlYWRkMTM3Mzk1MjZmYzBkOGNiZTJhMjliCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
b24tcGFyZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRo
YXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYSBwYXJlbnQgZWxlbWVudCBwcmV2ZW50
cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWE0ODA3OTNmNzkwYTVjODYyNDE3NjlmOTkzMWU4ZjQ4MGNmM2I3NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9u
LXBhcmVudC5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1
c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAw
cHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRo
ID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsK
KyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnRvdWNoQWN0aW9uID0gIm5vbmUiOworCisgICAgdWku
c3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3
YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
d2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUg
eS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRo
YXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYSBwYXJlbnQgZWxlbWVudCBwcmV2ZW50
cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQwMGI4M2JiOThlNGFl
NWRkYzlhNTljOTg2NzJhNmEwMzI5Y2U4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWwKQEAgLTAsMCArMSwzMCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4K
KzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRp
YWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7
IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4gewor
ICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5i
b2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0
aW9uID0gIm5vbmUiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUw
LCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFn
ZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7
CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ug
d2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsK
KyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24g
YW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODdlNzgzNzlkZjQ1YTcxNzc0NzZjOGJlN2I1ZDY0MDQwZjBh
YWNkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1wYW4teC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVz
dGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZl
bnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB5LWF4aXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBh
bi15LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTk3YmRlMzI3ZmMyOWMzYWU0Yjc4MGExMTE2
NDdjZDY4ZmQ1ZjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyAndG91Y2gtYWN0aW9uOiBwYW4teCBwYW4t
eScgb24gYW4gZWxlbWVudCBhbGxvd3MgcGFnZSBzY3JvbGxpbmcgaW4gYm90aCBheGVzLiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBh
bi14LXBhbi15Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tcGFuLXgtcGFuLXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjI5MWE0ZDhjNjdjMjIxNTFjMjI5ZDgz
N2Q3MWE4ZjNkMDBhYjE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwt
c2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdp
ZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9u
ID0gInBhbi14IHBhbi15IjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4
OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdp
bmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeC1heGlz
LiIpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJU
aGUgcGFnZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25l
KCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgJ3RvdWNoLWFjdGlvbjogcGFu
LXggcGFuLXknIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugc2Nyb2xsaW5nIGluIGJvdGggYXhl
cy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBhbi14Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcGFuLXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjkyMDVmN2VmNWRhMmNhYjcwMDE5Y2ZiOGVh
NzBmOTVkNzdjNmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAw
cHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50
LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhl
aWdodCA9ICIyMDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi14
IjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSku
dGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNl
dCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Ny
b2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9
LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50
IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nIGluIHRoZSB5LWF4aXMuIik7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZjY1OGMzODY0MjI2NzE1YWU2N2VhNDJmYmI5Mjg2
ODA2OTI4NDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGFuLXggb24gYW4gZWxlbWVudCBw
cmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeC1heGlzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15Lmh0bWwgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45MDkwZDM5NjAxZmJlZTE3YmZkMWI5NWYyNDNlOWZhYmM1MjI3OTVlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15
Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJp
Y3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwg
KHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAw
MHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAg
dGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBhbi15IjsKKworICAgIHVpLnN3aXBlKHsgeDog
MTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3Jv
bGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cu
cGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsK
KyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcg
dG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5n
IGluIHRoZSB4LWF4aXMuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29t
LWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOTRlNjc2MTVlMmE1OTk4
ZjMzMzNmOTBmZGEzMGRkMWRjYTVhNDY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5n
IHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IGFsbG93cyBwYWdlIHpvb21p
bmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZGE2M2M5NDI5ZTFhYTEzOTAyNmVkNDMxM2NlYTZkNWQ0Nzg3OTc2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1
ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEi
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjQw
MHB4IiwgaGVpZ2h0OiAiNDAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVu
dC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5o
ZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwaW5j
aC16b29tIjsKKworICAgIHVpLnBpbmNoT3V0KHsgeDogNTAsIHk6IDUwLCB3aWR0aDogMTAwLCBo
ZWlnaHQ6IDEwMCwgc2NhbGU6IDAuNSB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X25v
dF9lcXVhbHMod2luZG93LmludGVybmFscy5wYWdlU2NhbGVGYWN0b3IoKSwgMSwgIlRoZSBwYWdl
IHdhcyBzY2FsZWQuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3Rp
bmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IGFs
bG93cyBwYWdlIHpvb21pbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGlu
Y2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwYzg1
YjlhYTU1MmRmOWI3MWQ5YWU0Mzk3NDA1MGUwYzI4OTk4MDAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2
ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3Rp
bmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IHBy
ZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9v
bS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjM0MWM2MjE1MDdhM2VlODM3
MzRkMjc3MTNkODRiZmY1NTlkN2RkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5n
Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJp
Y3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwg
KHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAw
MHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworCisgICAg
dGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBpbmNoLXpvb20iOworCisgICAgdWkuc3dpcGUo
eyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90
IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93
LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeS1heGlz
LiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0
dGluZyB0b3VjaC1hY3Rpb246IHBpbmNoLXpvb20gb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdl
IHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360090</attachid>
            <date>2019-01-25 00:23:29 -0800</date>
            <delta_ts>2019-01-25 03:39:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190125092327.patch</filename>
            <type>text/plain</type>
            <size>92271</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyMjY5OWQ1YmJlODA0
MzBlNTViNjgwZmFlMTNhMzY4ZGJmN2I5OC4uYjNmYjFlYTVmZDgwMTRhNzE2NzAwYzU0OWVmOWFh
MTI1NDNlODE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE5LTAxLTI0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21waWxlCisgICAgICAgIGEgbGlzdCBvZiBUb3VjaEFjdGlvbkRhdGEgc3RydWN0dXJlcyB3aGlj
aCBob2xkIHRoZSB0b3VjaC1hY3Rpb24gdmFsdWUsIHRoZSBJRCBvZiB0aGUgbmVhcmVzdCBzY3Jv
bGwgbm9kZSBhbmQgdGhlIFJlZ2lvbiBjb250YWluaW5nCisgICAgICAgIHRoZSBib3VuZHMgb2Yg
ZWFjaCBvZiB0aG9zZSBlbGVtZW50cyB0byBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFs
b25nIHdpdGggdG91Y2ggcmVnaW9ucy4gQ29tcHV0aW5nIHRoZSBsaXN0IG9mIGFsbG93ZWQgdG91
Y2gKKyAgICAgICAgYWN0aW9ucyBmb3IgYSBnaXZlbiBlbGVtZW50IGFjY291bnRzIGZvciBub3Qg
b25seSB0aGUgdmFsdWUgc3BlY2lmaWVkIGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxl
LCBidXQgYWxzbyBpbiBpdHMgaGllcmFyY2h5LAorICAgICAgICBjcm9zc2luZyBhbnkgZnJhbWUg
Ym91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRvY3VtZW50J3Mgcm9vdCBub2RlLgorCisg
ICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVy
Zmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbAorICAg
ICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKKyAg
ICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCisg
ICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1h
bGxvd3Mtem9vbWluZy5odG1sCisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW52YWxpZGF0ZVJlbmRlcmluZ0Rl
cGVuZGVudFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVXaWxsQmVS
ZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJvbSB0aGlzIGRv
Y3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qgb2YgZWxlbWVu
dHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRlIGEgbGlzdCBv
ZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5IGlmIG9uZSBk
b2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0aGUgZ2l2ZW4g
ZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwgb3IgcmVtb3Zl
IGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0aGF0IGxpc3Qg
Y2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBpcyBpbmZvcm1l
ZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjogY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zIGNvbnN0KTogUHJvdmlkZSB0aGUgbGlzdCBvZiBhbGxv
d2VkIHRvdWNoIGFjdGlvbnMgYWNjb3VudGluZyBmb3IgdGhlICJ0b3VjaC1hY3Rpb24iIHByb3Bl
cnR5CisgICAgICAgIHNwZWNpZmllZCBvbiB0aGlzIGVsZW1lbnQgYW5kIGFsbCBvZiBpdHMgaGll
cmFyY2h5LCBjcm9zc2luZyBmcmFtZSBib3VuZGFyeS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcgY29u
c3QpOiBQcm92aWRlIHRoZSBTY3JvbGxpbmdOb2RlSUQsIGlmIGFueSwgZm9yIHRoZSBuZWFyZXN0
IHNjcm9sbGluZyBub2RlCisgICAgICAgIGZvciB0aGF0IGVsZW1lbnQuIFRoaXMgd2lsbCBhbGxv
dyB0aGUgVUkgcHJvY2VzcyB0byBpZGVudGlmeSB3aGljaCBzY3JvbGwgdmlldydzIGJlaGF2aW9y
IHRvIGN1c3RvbWl6ZSB0byByZWZsZWN0IHRoZSBlbGVtZW50J3MgYWxsb3dlZAorICAgICAgICB0
b3VjaCBhY3Rpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNGb3JGcmFtZSBj
b25zdCk6IENvbXB1dGUgdGhlIHJlZ2lvbiBmb3IgYWxsIGVsZW1lbnRzIHdpdGggYSBub24tYXV0
byB0b3VjaC1hY3Rpb24gcHJvcGVydHkKKyAgICAgICAgdGhyb3VnaG91dCB0aGUgcHJvdmlkZWQg
ZnJhbWUgYW5kIGFsbCBvZiBpdHMgc3ViZnJhbWVzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludCBjb25zdCk6IFF1ZXJ5IHRo
ZSBsaXN0IG9mIFRvdWNoQWN0aW9uRGF0YSBvYmplY3RzIGZvciBhIG1hdGNoIGJhc2VkIG9uIHRo
ZSBwcm92aWRlZCBwb2ludC4gUmlnaHQKKyAgICAgICAgbm93IHRoZSBsb2dpYyBpcyBwcmV0dHkg
Y3J1ZGUsIHN0b3BwaW5nIGF0IHRoZSBmaXJzdCBUb3VjaEFjdGlvbkRhdGEgZm9yIHdoaWNoIHRo
ZSByZWdpb24gY29udGFpbnMgdGhlIHByb3ZpZGVkIHBvaW50LCBidXQgZnV0dXJlIHBhdGNoZXMg
d2lsbAorICAgICAgICBhY2NvdW50IGZvciBvdmVybGFwIGFuZCBuZXN0aW5nLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlE
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWVOb2RlOjp0b3VjaEFjdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZU5vZGU6OnNldFRvdWNoQWN0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0v
RXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6
CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50
KTogVXBkYXRlIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rp
b24gcHJvcGVydHkgd2hlbiBhbiBlbGVtZW50J3Mgc3R5bGUgY2hhbmdlcy4KKwogMjAxOS0wMS0y
NCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBY3RpdmF0
ZSB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGluIHRoZSBOZXR3b3JrUHJvY2Vz
cyBhbmQgZGVhY3RpdmF0ZSBpdCBpbiB0aGUgVUlQcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwNGM1YzA0
OTc3NTBmZTg0YjY3YmVmNTA0YmI1YzBkZTNlMjNlMTJlLi5lMGNkNDZlNzAxYjkzMzE0MzBlMDM4
MDYwODJhMjVmOGJlMTE3ODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE5LTAxLTI0
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNl
ci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUgdGhlICJub25lIiwgInBhbi14IiwgInBh
bi15IiBhbmQgInBpbmNoLXpvb20iIHZhbHVlcyBmb3IgdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0
eSBieSBxdWVyeWluZyB0aGUgc2Nyb2xsaW5nIHRyZWUgd2hlbmV2ZXIgYSB0b3VjaCBiZWdpbnMK
KyAgICAgICAgdG8gaWRlbnRpZnkgd2hldGhlciBpdHMgcG9pbnQgaXMgY29udGFpbmVkIHdpdGhp
biB0aGUgcmVnaW9uIG9mIGFuIGVsZW1lbnQgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBw
cm9wZXJ0eS4gSWYgaXQgaXMsIHdlIHVzZSB0aGUgbGlzdCBvZgorICAgICAgICBwZXJtaXR0ZWQg
dG91Y2ggYWN0aW9ucyBzdWNoIHRvIHRoZW4gY3VzdG9taXplIHRoZSBiZWhhdmlvciBvZiB0aGUg
bmVhcmVzdCBzY3JvbGwgdmlldyB0byBwYW4gb3Igem9vbSBvbmx5IGFzIGluc3RydWN0ZWQuCisK
KyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxUb3VjaEFjdGlvbkRhdGE+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0YT46OmRlY29kZSk6CisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjplbmNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZGVjb2RlKToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxSZWdpb24+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdXaWxsRW5kRHJh
Z2dpbmc6d2l0aFZlbG9jaXR5OnRhcmdldENvbnRlbnRPZmZzZXQ6XSk6IEFjY291bnQgZm9yIHBh
bm5pbmcgY29uc3RyYWludHMgc2V0IG9uIHRoZSBjb250ZW50IHZpZXcgdG8gcHJldmVudCBkZWNl
bGVyYXRpb24KKyAgICAgICAgdG8gcGFuIHRoZSB2aWV3IGlmIGl0IG91Z2h0IG5vdC4KKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OnRyYW5z
bGF0aW9uOnN0YXJ0UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRhbFZlbG9jaXR5OnZlcnRp
Y2FsVmVsb2NpdHk6XSk6IEltcGxlbWVudCBhbiBhZGRpdGlvbmFsCisgICAgICAgIFVJU2Nyb2xs
VmlldyBkZWxlZ2F0aW9uIG1ldGhvZCB0byBhcHBseSB0aGUgcGFubmluZyBjb25zdHJhaW50cyBz
ZXQgb24gdGhlIGNvbnRlbnQgdmlldyB3aGlsZSBwYW5uaW5nLgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnRvdWNoQWN0
aW9uRGF0YUF0UG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW06CisgICAgICAgICgtW1dLU2Nyb2xs
aW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhW
ZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0pOiBBcHBseSB0aGUgc2FtZSBsb2dpYyBhcyBp
biBXS1dlYlZpZXcuCisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0
ZSBzY3JvbGxWaWV3RGlkRW5kRHJhZ2dpbmc6d2lsbERlY2VsZXJhdGU6XSk6IFJlc2V0IHRoZSB0
b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBzY3JvbGwgbm9kZSB0byBzdGFydCB0aGUg
bmV4dAorICAgICAgICBpbnRlcmFjdGlvbiBpbiB0aGUgZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAg
KC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVnYXRlIHNjcm9sbFZpZXdEaWRFbmREZWNl
bGVyYXRpbmc6XSk6IFJlc2V0IHRoZSB0b3VjaCBhY3Rpb25zIGZvciB0aGUgYXNzb2NpYXRlZCBz
Y3JvbGwgbm9kZSB0byBzdGFydCB0aGUgbmV4dCBpbnRlcmFjdGlvbgorICAgICAgICBpbiB0aGUg
ZGVmYXVsdCBzdGF0ZS4KKyAgICAgICAgKC1bV0tTY3JvbGxpbmdOb2RlU2Nyb2xsVmlld0RlbGVn
YXRlIF9zY3JvbGxWaWV3OmFkanVzdGVkT2Zmc2V0Rm9yT2Zmc2V0OnRyYW5zbGF0aW9uOnN0YXJ0
UG9pbnQ6bG9jYXRpb25JblZpZXc6aG9yaXpvbnRhbFZlbG9jaXR5OnZlcnRpY2FsVmVsb2NpdHk6
XSk6IEFwcGx5CisgICAgICAgIHRoZSBzYW1lIGxvZ2ljIGFzIGluIFdLV2ViVmlldy4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aXNTY3JvbGxpbmdPclpvb21pbmcgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJl
dmVudHNQYW5uaW5nSW5YQXhpc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHByZXZlbnRz
UGFubmluZ0luWUF4aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhbnVwSW50ZXJh
Y3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd2ViVG91Y2hFdmVudHNSZWNvZ25p
emVkOl0pOiBBcyB3ZSBwcm9jZXNzIHRvdWNoZXMsIGNoZWNrIHdoZXRoZXIgdGhlcmUgYXJlIHRv
dWNoIGFjdGlvbnMgc2V0IGZvciB0aGlzIHRvdWNoJ3MgcG9pbnRzJyBsb2NhdGlvbnMuIEJhc2Vk
CisgICAgICAgIG9uIHRob3NlIHRvdWNoIGFjdGlvbnMsIGVpdGhlciBzZXREZWZhdWx0UHJldmVu
dGVkIG9uIHRoZSBfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIGlmIHRoZSB0b3VjaCBhY3Rp
b24gaXMgIm5vbmUiIG9yIHNlbGVjdGl2ZWx5IGRpc2FibGUgcGFubmluZyBhbmQgem9vbWluZy4K
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZ10pOgor
CiAyMDE5LTAxLTI0ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFjdGl2YXRlIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgaW4gdGhlIE5l
dHdvcmtQcm9jZXNzIGFuZCBkZWFjdGl2YXRlIGl0IGluIHRoZSBVSVByb2Nlc3MuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzNk
OGZkYjA0NTYzNDBjOWNjZjA0YTAyZjdhZjE0Mzk4ODY0MmM2NC4uODExMzc1OTljYTQzYmVlOGQ1
ZWJlMjU0NjllNjFjNTI2MDYxYmJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA4Miw2ICsyMDgyLDcgQEAKIAkJNzEyQkU0
ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTJCRTQ4MTFGRTg2NUQ0MDAyMDMxQ0MgLyogRmlsbE1v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
MTJCRTQ4ODFGRTg2ODZBMDAyMDMxQ0MgLyogSlNGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyQkU0ODUxRkU4NjgxODAwMjAzMUNDIC8q
IEpTRmlsbE1vZGUuaCAqLzsgfTsKIAkJNzEyQkU0ODkxRkU4Njg3NTAwMjAzMUNDIC8qIEpTUGxh
eWJhY2tEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxMkJFNDg2MUZFODY4NTkwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9uLmgg
Ki87IH07CisJCTcxMkRCQTQ5MjFGOEFEODMwMDhGMzZCMiAvKiBTY3JvbGxpbmdDb29yZGluYXRv
clR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MTJEQkE0NzIxRjhBRDc5MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzE3MTM0
MUZCRTc4REIwMEY3NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTMxNzEzMjFGQkU3OEM1MDBG
NzU4REUgLyogQ1NTUHJvcGVydHlCbGVuZGluZ0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzI0NDUxMjAxMDlEQTUwMEFFN0ZCMiAv
KiBXZWJBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcxMzI0NDRGMjAxMDlEOUIwMEFFN0ZCMiAvKiBXZWJBbmltYXRpb25V
dGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3MTM0NDk2RTE0Njk0MUIzMDA3MjAzMTIgLyogU1ZHTGVuZ3RoQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEzNDQ5NkMxNDY5NDFC
MzAwNzIwMzEyIC8qIFNWR0xlbmd0aENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQwNCw3ICsyNDA1LDcgQEAKIAkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUQyIC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RjYgLyog
SlNTY3JvbGxUb09wdGlvbnMuaCAqLzsgfTsKIAkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8q
IENsYXNzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM0OEJGQUExQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICov
OyB9OwogCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0REZBQ0MxRjdE
QUU1NjAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4MzUyMEM3RTFBNzFCRkNDMDA2QkQyQUEgLyog
Q1NTRm9udEZhbWlseS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM1MjBDN0QxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCAqLzsgfTsK
KwkJODM1MjBDN0UxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNTIwQzdEMUE3MUJGQ0MwMDZC
RDJBQSAvKiBDU1NGb250RmFtaWx5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODM1OENCNzAxQzUzMjc3NTAwRTBDMkQ4IC8qIEpTWE1MRG9jdW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjU3
MEFEMUM1MzI2OEUwMDdGRDZDQiAvKiBKU1hNTERvY3VtZW50LmggKi87IH07CiAJCTgzNUQyRDc4
MUY1RjFGQkQwMDE0MURFRCAvKiBIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1RDJENzUxRjVGMUZCODAw
MTQxREVEIC8qIEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggKi87IH07CiAJCTgzNUQzNjM3
MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0b20uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAv
KiBTdHlsZUJ1aWxkZXJDdXN0b20uaCAqLzsgfTsKQEAgLTI4OTAsNyArMjg5MSw3IEBACiAJCTk5
MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYwMEIzOUFG
OSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5OTZFNTlERjFERjAxMjhEMDA2NjEyQjkgLyogTmF2aWdhdG9yV2Vi
RHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTZFNTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi87IH07CiAJ
CTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBNTI4RTgyMTdEN0Y1MkYwMEFB
OTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk5QUIxRjM4MDE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUFCMUYzN0UxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuaCAqLzsgfTsKKwkJOUFCMUYzODAxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OUIyNERFOEUxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlD
MjcgLyogSFRNTEJESUVsZW1lbnQuaCAqLzsgfTsKIAkJOUIyRDhBNzkxNDk5N0NDRjAwRUNFRjNF
IC8qIFVuZG9TdGVwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjMyQ0RBOTEzREY3RkE5MDBG
MzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uaCAqLzsgfTsKQEAgLTQ3NjcsNyArNDc2OCw3IEBACiAJCUUxRTFCRjAwMTE1RkY2RkIw
MDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFMUJFRkYxMTVGRjZGQjAwNkY1MkNBIC8qIFdpbmRv
d3NLZXlib2FyZENvZGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTFFNkVFQTgwQjYyOERCMzAwNUYyRjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTZF
RUE3MEI2MjhEQjMwMDVGMkY3MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50LmggKi87IH07CiAJCUUx
RUMyOUEwMEJCMDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5vZGVTZXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUMyOTlFMEJCMDRDNkIwMEVBMTg3QiAv
KiBYUGF0aE5vZGVTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlFMUVEOEFDMzBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAq
LzsgfTsKKwkJRTFFRDhBQzMwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGMUU4MzAw
QzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUYxRTgyRTBDM0MyQkI5MDA2REIzOTEgLyogWFNM
VEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJRTFGODBCODgxODMxNzI1MjAwNzg4NUMzIC8qIENyeXB0
b0tleVBhaXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRjgwQjg2MTgzMTcyNTIwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGODBCOEUxODMxNzJCNTAw
Nzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGODBCOEMxODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5
UGFpci5oICovOyB9OwpAQCAtOTI4Niw2ICs5Mjg3LDcgQEAKIAkJNzEyQkU0ODUxRkU4NjgxODAw
MjAzMUNDIC8qIEpTRmlsbE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNGaWxsTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTJCRTQ4NjFGRTg2
ODU5MDAyMDMxQ0MgLyogSlNQbGF5YmFja0RpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1BsYXliYWNrRGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxMkJFNDg3MUZFODY4NUEwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGxheWJhY2tEaXJl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MTJEQkE0NzIxRjhBRDc5
MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcxMzAxNDFEMURDOUMwODYwMENBM0E4OCAvKiBwaXAtc3VwcG9y
dC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJwaXAtc3VwcG9y
dC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMzE3MTMyMUZCRTc4QzUwMEY3
NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzEzMjQ0NEYyMDEwOUQ5QjAwQUU3RkIyIC8qIFdlYkFuaW1hdGlvblV0
aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBbmltYXRpb25V
dGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2ODg0LDYgKzE2ODg2
LDcgQEAKIAkJCQkwRjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWlu
dHMuaCAqLywKIAkJCQkxQUY2MkVFNDE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwICovLAogCQkJCTFBRjYyRUU1MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdD
b29yZGluYXRvci5oICovLAorCQkJCTcxMkRCQTQ3MjFGOEFENzkwMDhGMzZCMiAvKiBTY3JvbGxp
bmdDb29yZGluYXRvclR5cGVzLmggKi8sCiAJCQkJNTFDNjFCMDgxREU1MzZFNzAwOEEyMTJEIC8q
IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5jcHAgKi8sCiAJCQkJNTFDNjFCMDkxREU1MzZF
NzAwOEEyMTJEIC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oICovLAogCQkJCTkzQzM4
QkZDMTY0NDczQzcwMDA5MUVCMiAvKiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHAgKi8sCkBA
IC0zMTM3Myw2ICszMTM3Niw3IEBACiAJCQkJMUFGNjJFRTgxNERBMjJBNzAwNDE1NTZDIC8qIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0RTQwRDE4N0Y4MkUx
MDA0NTg4MkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzOTFBOTkxMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzEyREJBNDkyMUY4QUQ4MzAwOEYzNkIyIC8qIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQzYxQjBCMURFNTM2RTcwMDhB
MjEyRCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxN0RFRUU4MURFOTRCMDgwMEI5MTY0NCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3JN
YWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQzM4QkZGMTY0NDczQzcwMDA5MUVCMiAvKiBTY3Jv
bGxpbmdTdGF0ZUZpeGVkTm9kZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGI0YjEwM2I0Y2Fm
ZDNhYjcyOWQ3ZTA4MDg4ZWZmMmY2YzQ0NTNjODcuLjVhYWFlNzJmZTU1MDI0OWJkMGY2YmQ3MzU4
MDYzOGY2N2RhMjhhMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0xNzQ3LDcgKzE3NDcsNyBAQCBzdGF0aWMgUmVmPENT
U1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZUZvckZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWls
eSkKICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVGb250RmFtaWx5
VmFsdWUoZmFtaWx5KTsKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaWYgRU5BQkxF
KFBPSU5URVJfRVZFTlRTKQogc3RhdGljIFJlZjxDU1NWYWx1ZT4gdG91Y2hBY3Rpb25GbGFnc1Rv
Q1NTVmFsdWUoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMpCiB7CiAgICAgYXV0
byYgY3NzVmFsdWVQb29sID0gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKTsKQEAgLTM3NjIsNiAr
Mzc2Miw4IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVG
b3JQcm9wZXJ0eWluU3R5bGUoY29uc3QgUmVuZGVyU3R5CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFRhcEhpZ2hsaWdodENvbG9yOgogICAg
ICAgICAgICAgcmV0dXJuIGN1cnJlbnRDb2xvck9yVmFsaWRDb2xvcigmc3R5bGUsIHN0eWxlLnRh
cEhpZ2hsaWdodENvbG9yKCkpOworI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5VG91Y2hBY3Rpb246CiAgICAgICAgICAgICByZXR1cm4g
dG91Y2hBY3Rpb25GbGFnc1RvQ1NTVmFsdWUoc3R5bGUudG91Y2hBY3Rpb25zKCkpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRl
eCBlZmQ4NDIzZGI0NGQyNTcxMGQ4NDkxZjU4ZWJkNWMxZmFkNWRhYzNiLi5kMDlmNDlmNDQzNzkx
MDU3NzYwMDJjYmRjOWYwNTQ3MDY0N2U2ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTUyMzYsNyArNTIzNiw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShUZXh0Wm9vbSB0
ZXh0Wm9vbSkKICAgICBtX3ZhbHVlLnZhbHVlSUQgPSBDU1NWYWx1ZU5vcm1hbDsKIH0KIAotI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQogdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRvdWNoQWN0
aW9uIHRvdWNoQWN0aW9uKQogICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMuanNvbgppbmRleCA5NzZmYTM5NDYxNDBmZWZjNmFmZjdk
ZGJmNmUyMDc0N2M1YTA0YjQ5Li5lOWY5NDVhN2IwMDUyZWNhMGEwMTQ2NTEwYTY0ZTJjYWRiZmM1
YzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0aWVzLmpzb24KQEAgLTY5MzQsNyArNjkz
NCw3IEBACiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6
IHsKICAgICAgICAgICAgICAgICAibmFtZS1mb3ItbWV0aG9kcyI6ICJUb3VjaEFjdGlvbnMiLAot
ICAgICAgICAgICAgICAgICJlbmFibGUtaWYiOiAiRU5BQkxFX1RPVUNIX0VWRU5UUyIsCisgICAg
ICAgICAgICAgICAgImVuYWJsZS1pZiI6ICJFTkFCTEVfUE9JTlRFUl9FVkVOVFMiLAogICAgICAg
ICAgICAgICAgICJjb252ZXJ0ZXIiOiAiVG91Y2hBY3Rpb24iCiAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdv
cmRzLmluCmluZGV4IDA5MzIxOTAxYmY1OTliM2M0ZDA2NGM4NGI5ZjQyMDQ3NGI3ZGE2Y2IuLmQ4
ZDNkMmQ1NDRiNzg3ZmM5N2M0MjYwNzNhNjJiOWNhNjc4ZWY0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xMzUyLDcgKzEzNTIsNyBAQCBzdHlsZQogc2Nyb2xs
LXBvc2l0aW9uCiAvL2NvbnRlbnRzCiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMp
ICYmIEVOQUJMRV9UT1VDSF9FVkVOVFMKKyNpZiBkZWZpbmVkKEVOQUJMRV9QT0lOVEVSX0VWRU5U
UykgJiYgRU5BQkxFX1BPSU5URVJfRVZFTlRTCiAvLyB0b3VjaC1hY3Rpb24KIC8vIGF1dG8KIC8v
IG5vbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAppbmRleCA4
MGQ4MWFhNmY4NTA5YWFiMjdlZjJmMjNjOWU2MTExNGQ0MjExYzU1Li41MGE1ZjUwYWIxNTM5ZDUz
NzcxNTQ5MmViODg2YjA3M2RkZGUxZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVCdWlsZGVyQ29udmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVp
bGRlckNvbnZlcnRlci5oCkBAIC0xMTcsNiArMTE3LDggQEAgcHVibGljOgogI2VuZGlmCiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBzdGF0aWMgQ29sb3IgY29udmVydFRhcEhpZ2hsaWdo
dENvbG9yKFN0eWxlUmVzb2x2ZXImLCBjb25zdCBDU1NWYWx1ZSYpOworI2VuZGlmCisjaWYgRU5B
QkxFKFBPSU5URVJfRVZFTlRTKQogICAgIHN0YXRpYyBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNv
bnZlcnRUb3VjaEFjdGlvbihTdHlsZVJlc29sdmVyJiwgY29uc3QgQ1NTVmFsdWUmKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcpCkBAIC0xMzQ3LDcg
KzEzNDksOSBAQCBpbmxpbmUgQ29sb3IgU3R5bGVCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0VGFw
SGlnaGxpZ2h0Q29sb3IoU3R5bGVSZXNvbHZlciYgc3R5bAogewogICAgIHJldHVybiBzdHlsZVJl
c29sdmVyLmNvbG9yRnJvbVByaW1pdGl2ZVZhbHVlKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Pih2YWx1ZSkpOwogfQorI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCiBpbmxp
bmUgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRU
b3VjaEFjdGlvbihTdHlsZVJlc29sdmVyJiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQogewogICAg
IGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCAxZjc5NWQ5MDMyMTcxYmZkZWQw
ODU0OGFiMWViOGMyNzM1YzU2YjE3Li5iMzlmZDFjNWQ1YjBkYTc4NWM0ODhmMzUxZDMyOTYyMmE1
NjEwN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VyLmNwcApAQCAtMTM0Nyw3ICsxMzQ3LDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZUNsaXAoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENTU1BhcnNlck1vZGUgY3MKICAg
ICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24oKS5jcmVhdGVWYWx1ZShXVEZNb3ZlKHJl
Y3QpKTsKIH0KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQogc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZVRvdWNoQWN0aW9uKENTU1Bh
cnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIENTU1ZhbHVlSUQgaWQgPSByYW5nZS5wZWVr
KCkuaWQoKTsKQEAgLTQwMzgsNyArNDAzOCw3IEBAIFJlZlB0cjxDU1NWYWx1ZT4gQ1NTUHJvcGVy
dHlQYXJzZXI6OnBhcnNlU2luZ2xlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgQ1NTCiAj
ZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5Q2xpcDoKICAgICAgICAgcmV0dXJuIGNvbnN1bWVD
bGlwKG1fcmFuZ2UsIG1fY29udGV4dC5tb2RlKTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKICAgICBjYXNlIENTU1Byb3BlcnR5VG91Y2hBY3Rp
b246CiAgICAgICAgIHJldHVybiBjb25zdW1lVG91Y2hBY3Rpb24obV9yYW5nZSk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDVkYjcxZjUxNmY2Zjg4ZDc0MjExNDliMTk1Mjdm
NGU3YWQ4YzE3NTkuLmQyOTllZjIyYzNiNWJkYjhkOWNkYTIxNWZmMmY2NWZiNzFkOTVkZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjA4LDYgKzIwOCw3IEBACiAjaW5jbHVkZSAiVGV4
dEF1dG9TaXppbmcuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0Tm9k
ZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAiVHJhbnNm
b3JtU291cmNlLmgiCiAjaW5jbHVkZSAiVHJlZVdhbGtlci5oIgogI2luY2x1ZGUgIlVuZG9NYW5h
Z2VyLmgiCkBAIC00MTUxLDYgKzQxNTIsMTQgQEAgdm9pZCBEb2N1bWVudDo6aW52YWxpZGF0ZVJl
bmRlcmluZ0RlcGVuZGVudFJlZ2lvbnMoQW5ub3RhdGlvbnNBY3Rpb24gYW5ub3RhdGlvbnMKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHNldFRv
dWNoRXZlbnRSZWdpb25zTmVlZFVwZGF0ZSgpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQorICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgIGlm
IChhdXRvKiBmcmFtZVZpZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBzY3Jv
bGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAg
ICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0V2ZW50VHJhY2tpbmdSZWdp
b25zQ2hhbmdlZCgqZnJhbWVWaWV3KTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogfQogCiB2
b2lkIERvY3VtZW50OjppbnZhbGlkYXRlU2Nyb2xsYmFyRGVwZW5kZW50UmVnaW9ucygpCkBAIC00
NTM0LDYgKzQ1NDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYg
bm9kZSkKIAogICAgIGlmIChpczxUZXh0Pihub2RlKSkKICAgICAgICAgbV9tYXJrZXJzLT5yZW1v
dmVNYXJrZXJzKG5vZGUpOworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGlmICht
X3RvdWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIG1fdG91Y2hBY3Rpb25FbGVtZW50cy0+cmVt
b3ZlKCZub2RlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgTm9kZSogZmFsbGJhY2tGb2N1c05hdmln
YXRpb25TdGFydGluZ05vZGVBZnRlclJlbW92YWwoTm9kZSYgbm9kZSkKQEAgLTcwOTYsNiArNzEx
MCwzNCBAQCBMYXlvdXRSZWN0IERvY3VtZW50OjphYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhi
b29sJiBpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVtZQogICAgIHJldHVybiBMYXlvdXRSZWN0KCk7
CiB9CiAKK0RvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6OmFic29sdXRlUmVnaW9u
Rm9yTm9kZShOb2RlKiBub2RlKQoreworICAgIFJlZ2lvbiByZWdpb247CisgICAgTGF5b3V0UmVj
dCByb290UmVsYXRpdmVCb3VuZHM7CisgICAgYm9vbCBpbnNpZGVGaXhlZFBvc2l0aW9uID0gZmFs
c2U7CisKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KG5vZGUpKSB7CisgICAgICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihub2RlKTsKKyAgICAgICAgaWYgKGRvY3VtZW50
ID09IHRoaXMpCisgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBhYnNvbHV0ZUV2ZW50
SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKKyAgICAgICAgZWxzZSBpZiAoRWxl
bWVudCogZWxlbWVudCA9IGRvY3VtZW50LT5vd25lckVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJv
b3RSZWxhdGl2ZUJvdW5kcyA9IGVsZW1lbnQtPmFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGlu
c2lkZUZpeGVkUG9zaXRpb24pOworICAgIH0gZWxzZSBpZiAoaXM8RWxlbWVudD4obm9kZSkpIHsK
KyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpOworICAg
ICAgICBpZiAoaXM8SFRNTEJvZHlFbGVtZW50PihlbGVtZW50KSkgeworICAgICAgICAgICAgLy8g
Rm9yIHRoZSBib2R5LCBqdXN0IHVzZSB0aGUgZG9jdW1lbnQgYm91bmRzLgorICAgICAgICAgICAg
Ly8gVGhlIGJvZHkgbWF5IG5vdCBjb3ZlciB0aGlzIHdob2xlIGFyZWEsIGJ1dCBpdCdzIE9LIGZv
ciB0aGlzIHJlZ2lvbiB0byBiZSBhbiBvdmVyZXN0aW1hdGUuCisgICAgICAgICAgICByb290UmVs
YXRpdmVCb3VuZHMgPSBhYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0
aW9uKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBl
bGVtZW50LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsK
KyAgICB9CisKKyAgICBpZiAoIXJvb3RSZWxhdGl2ZUJvdW5kcy5pc0VtcHR5KCkpCisgICAgICAg
IHJlZ2lvbi51bml0ZShSZWdpb24oZW5jbG9zaW5nSW50UmVjdChyb290UmVsYXRpdmVCb3VuZHMp
KSk7CisKKyAgICByZXR1cm4gUmVnaW9uRml4ZWRQYWlyKHJlZ2lvbiwgaW5zaWRlRml4ZWRQb3Np
dGlvbik7Cit9CisKIERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6OmFic29sdXRl
UmVnaW9uRm9yRXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyZ2V0U2V0KiB0YXJnZXRzKQogewog
ICAgIExheW91dERpc2FsbG93ZWRTY29wZSBsYXlvdXREaXNhbGxvd2VkU2NvcGUoTGF5b3V0RGlz
YWxsb3dlZFNjb3BlOjpSZWFzb246OlJlZW50cmFuY3lBdm9pZGFuY2UpOwpAQCAtNzEwNywyNiAr
NzE0OSw5IEBAIERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6OmFic29sdXRlUmVn
aW9uRm9yRXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyCiAgICAgYm9vbCBpbnNpZGVGaXhlZFBv
c2l0aW9uID0gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGtleVZhbHVlUGFpciA6ICp0YXJnZXRz
KSB7Ci0gICAgICAgIExheW91dFJlY3Qgcm9vdFJlbGF0aXZlQm91bmRzOwotCi0gICAgICAgIGlm
IChpczxEb2N1bWVudD4oa2V5VmFsdWVQYWlyLmtleSkpIHsKLSAgICAgICAgICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihrZXlWYWx1ZVBhaXIua2V5KTsKLSAgICAg
ICAgICAgIGlmIChkb2N1bWVudCA9PSB0aGlzKQotICAgICAgICAgICAgICAgIHJvb3RSZWxhdGl2
ZUJvdW5kcyA9IGFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGluc2lkZUZpeGVkUG9zaXRpb24p
OwotICAgICAgICAgICAgZWxzZSBpZiAoRWxlbWVudCogZWxlbWVudCA9IGRvY3VtZW50LT5vd25l
ckVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBlbGVtZW50
LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChpczxFbGVtZW50PihrZXlWYWx1ZVBhaXIua2V5KSkgewotICAgICAgICAg
ICAgRWxlbWVudCogZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KGtleVZhbHVlUGFpci5rZXkp
OwotICAgICAgICAgICAgaWYgKGlzPEhUTUxCb2R5RWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAg
ICAgICAgICAgICAvLyBGb3IgdGhlIGJvZHksIGp1c3QgdXNlIHRoZSBkb2N1bWVudCBib3VuZHMu
Ci0gICAgICAgICAgICAgICAgLy8gVGhlIGJvZHkgbWF5IG5vdCBjb3ZlciB0aGlzIHdob2xlIGFy
ZWEsIGJ1dCBpdCdzIE9LIGZvciB0aGlzIHJlZ2lvbiB0byBiZSBhbiBvdmVyZXN0aW1hdGUuCi0g
ICAgICAgICAgICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0gYWJzb2x1dGVFdmVudEhhbmRsZXJC
b3VuZHMoaW5zaWRlRml4ZWRQb3NpdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBlbGVtZW50LT5hYnNvbHV0ZUV2ZW50SGFuZGxl
ckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgaWYgKCFyb290UmVsYXRpdmVCb3VuZHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgdGFyZ2V0
UmVnaW9uLnVuaXRlKFJlZ2lvbihlbmNsb3NpbmdJbnRSZWN0KHJvb3RSZWxhdGl2ZUJvdW5kcykp
KTsKKyAgICAgICAgYXV0byB0YXJnZXRSZWdpb25GaXhlZFBhaXIgPSBhYnNvbHV0ZVJlZ2lvbkZv
ck5vZGUoa2V5VmFsdWVQYWlyLmtleSk7CisgICAgICAgIHRhcmdldFJlZ2lvbi51bml0ZSh0YXJn
ZXRSZWdpb25GaXhlZFBhaXIuZmlyc3QpOworICAgICAgICBpbnNpZGVGaXhlZFBvc2l0aW9uIHw9
IHRhcmdldFJlZ2lvbkZpeGVkUGFpci5zZWNvbmQ7CiAgICAgfQogCiAgICAgcmV0dXJuIFJlZ2lv
bkZpeGVkUGFpcih0YXJnZXRSZWdpb24sIGluc2lkZUZpeGVkUG9zaXRpb24pOwpAQCAtODY1MSw0
ICs4Njc2LDMzIEBAIHZvaWQgRG9jdW1lbnQ6OnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9y
TmFtZShjb25zdCBTdHJpbmcmIG5hbWUsIFJlZjxQYWludFdvCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShQT0lOVEVSX0VWRU5UUykKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRvdWNoQWN0aW9uRWxl
bWVudHMoTm9kZSYgbm9kZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAgIGlmICghbV90b3Vj
aEFjdGlvbkVsZW1lbnRzKQorICAgICAgICBtX3RvdWNoQWN0aW9uRWxlbWVudHMgPSBzdGQ6Om1h
a2VfdW5pcXVlPEhhc2hTZXQ8Tm9kZSo+PigpOworCisgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7
CisKKyAgICBpZiAoc3R5bGUgJiYgc3R5bGUtPnRvdWNoQWN0aW9ucygpICE9IFRvdWNoQWN0aW9u
OjpBdXRvKQorICAgICAgICBjaGFuZ2VkIHw9IG1fdG91Y2hBY3Rpb25FbGVtZW50cy0+YWRkKCZu
b2RlKS5pc05ld0VudHJ5OworICAgIGVsc2UKKyAgICAgICAgY2hhbmdlZCB8PSBtX3RvdWNoQWN0
aW9uRWxlbWVudHMtPnJlbW92ZSgmbm9kZSk7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGlmICghY2hhbmdlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IHRo
aXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChG
cmFtZVZpZXcqIGZyYW1lVmlldyA9IHZpZXcoKSkgeworICAgICAgICBpZiAoU2Nyb2xsaW5nQ29v
cmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0
b3IoKSkKKyAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdFdmVudFRy
YWNraW5nUmVnaW9uc0NoYW5nZWQoKmZyYW1lVmlldyk7CisgICAgfQorI2VuZGlmCit9CisjZW5k
aWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBiYjVj
MWMwNDY2NTRmMTlhMWE4Njk1NDRiNjMzM2U3MjZiMDcxNmQ0Li45ZTRmMGI0Zjg0MWFmYzZjOGJi
OWU3ZTJkZjUwNjhjN2FmZmRlNTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTI3NSw2ICsx
Mjc1LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVycygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCB0b3VjaEV2ZW50VGFyZ2V0c0NvbnRhaW4oTm9k
ZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoUE9JTlRFUl9F
VkVOVFMpCisgICAgdm9pZCB1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmLCBSZW5kZXJT
dHlsZSopOworICAgIGNvbnN0IEhhc2hTZXQ8Tm9kZSo+KiB0b3VjaEFjdGlvbkVsZW1lbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbkVsZW1lbnRzLmdldCgpOyB9CisjZW5kaWYKIAog
ICAgIHZvaWQgZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIoTm9kZSYpOwogICAgIHZvaWQgZGlkUmVt
b3ZlVG91Y2hFdmVudEhhbmRsZXIoTm9kZSYsIEV2ZW50SGFuZGxlclJlbW92YWwgPSBFdmVudEhh
bmRsZXJSZW1vdmFsOjpPbmUpOwpAQCAtMTI5Myw2ICsxMjk3LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IEV2ZW50VGFyZ2V0U2V0KiB3aGVlbEV2ZW50VGFyZ2V0cygpIGNvbnN0IHsgcmV0dXJuIG1f
d2hlZWxFdmVudFRhcmdldHMuZ2V0KCk7IH0KIAogICAgIHR5cGVkZWYgc3RkOjpwYWlyPFJlZ2lv
biwgYm9vbD4gUmVnaW9uRml4ZWRQYWlyOworICAgIFJlZ2lvbkZpeGVkUGFpciBhYnNvbHV0ZVJl
Z2lvbkZvck5vZGUoTm9kZSopOwogICAgIFJlZ2lvbkZpeGVkUGFpciBhYnNvbHV0ZVJlZ2lvbkZv
ckV2ZW50VGFyZ2V0cyhjb25zdCBFdmVudFRhcmdldFNldCopOwogCiAgICAgTGF5b3V0UmVjdCBh
YnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhib29sJikgZmluYWw7CkBAIC0xODczLDYgKzE4Nzgs
OSBAQCBwcml2YXRlOgogICAgIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgc3RkOjp1
bmlxdWVfcHRyPEV2ZW50VGFyZ2V0U2V0PiBtX3RvdWNoRXZlbnRUYXJnZXRzOworI2VuZGlmCisj
aWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PE5v
ZGUqPj4gbV90b3VjaEFjdGlvbkVsZW1lbnRzOwogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRy
PEV2ZW50VGFyZ2V0U2V0PiBtX3doZWVsRXZlbnRUYXJnZXRzOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKaW5kZXggYjJmMTNkMDIyYzA5ODczMjUyNDc5Y2JlYWE1MDg2MjcwYTg0MmJkNi4uY2E0YmM5
OWMzM2M4YmM5OGYzMWFlOTRiN2MzYTdhMWQ2NDhjZGEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cApAQCAtODEsNiArODEsOCBAQAogI2luY2x1ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlJlbmRlckZyYWdtZW50Q29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5
ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJSZW5kZXJM
YXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0Qm94LmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlVXBkYXRlci5oIgpAQCAtMTY2NSw4
ICsxNjY3LDEwIEBAIFVSTCBFbGVtZW50OjphYnNvbHV0ZUxpbmtVUkwoKSBjb25zdAogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCiBib29sIEVsZW1lbnQ6OmFsbG93c0RvdWJsZVRhcEdlc3R1cmUo
KSBjb25zdAogeworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKICAgICBpZiAocmVuZGVyU3R5
bGUoKSAmJiByZW5kZXJTdHlsZSgpLT50b3VjaEFjdGlvbnMoKSAhPSBUb3VjaEFjdGlvbjo6QXV0
bykKICAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAKICAgICBFbGVtZW50KiBwYXJlbnQg
PSBwYXJlbnRFbGVtZW50KCk7CiAgICAgcmV0dXJuICFwYXJlbnQgfHwgcGFyZW50LT5hbGxvd3NE
b3VibGVUYXBHZXN0dXJlKCk7CkBAIC0zNDE2LDcgKzM0MjAsNyBAQCB2b2lkIEVsZW1lbnQ6OnNl
dENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoYm9vbCBmbGFnKQogICAgIGludmFsaWRhdGVTdHls
ZUFuZExheWVyQ29tcG9zaXRpb24oKTsKIH0KIAotc3RhdGljIEVsZW1lbnQqIHBhcmVudENyb3Nz
aW5nRnJhbWVCb3VuZGFyaWVzKEVsZW1lbnQqIGVsZW1lbnQpCitzdGF0aWMgRWxlbWVudCogcGFy
ZW50Q3Jvc3NpbmdGcmFtZUJvdW5kYXJpZXMoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIHsKICAg
ICBBU1NFUlQoZWxlbWVudCk7CiAgICAgcmV0dXJuIGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA/
IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSA6IGVsZW1lbnQtPmRvY3VtZW50KCkub3duZXJFbGVt
ZW50KCk7CkBAIC00MTIwLDQgKzQxMjQsNjYgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVT
dHlsZU1hcChSZWY8U3R5bGVQcm9wZXJ0eU1hcD4mJiBtYXApCiB9CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShQT0lOVEVSX0VWRU5UUykKK09wdGlvblNldDxUb3VjaEFjdGlvbj4gRWxlbWVudDo6Y29t
cHV0ZWRUb3VjaEFjdGlvbnMoKSBjb25zdAoreworICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4g
Y29tcHV0ZWRUb3VjaEFjdGlvbnMgPSBUb3VjaEFjdGlvbjo6QXV0bzsKKyAgICBmb3IgKGF1dG8q
IGVsZW1lbnQgPSB0aGlzOyBlbGVtZW50OyBlbGVtZW50ID0gcGFyZW50Q3Jvc3NpbmdGcmFtZUJv
dW5kYXJpZXMoZWxlbWVudCkpIHsKKyAgICAgICAgYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5y
ZW5kZXJlcigpOworICAgICAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgYXV0byB0b3VjaEFjdGlvbnMgPSByZW5kZXJlci0+c3R5bGUoKS50b3VjaEFj
dGlvbnMoKTsKKworICAgICAgICAvLyBPbmNlIHdlJ3ZlIGVuY291bnRlcmVkIHRvdWNoLWFjdGlv
bjogbm9uZSwgd2Uga25vdyB0aGF0IHRoaXMgd2lsbCBiZSB0aGUgY29tcHV0ZWQgdmFsdWUuCisg
ICAgICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246Ok5vbmUpCisgICAgICAgICAg
ICByZXR1cm4gdG91Y2hBY3Rpb25zOworCisgICAgICAgIC8vIElmIHRoZSBjb21wdXRlZCB0b3Vj
aC1hY3Rpb24gc28gZmFyIHdhcyAiYXV0byIsIHdlIGNhbiBqdXN0IHVzZSB0aGUgY3VycmVudCBl
bGVtZW50J3MgdG91Y2gtYWN0aW9uLgorICAgICAgICBpZiAoY29tcHV0ZWRUb3VjaEFjdGlvbnMg
PT0gVG91Y2hBY3Rpb246OkF1dG8pIHsKKyAgICAgICAgICAgIGNvbXB1dGVkVG91Y2hBY3Rpb25z
ID0gdG91Y2hBY3Rpb25zOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAg
ICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGhhcyB0b3VjaC1hY3Rpb246IGF1dG8gb3Ig
dGhlIHNhbWUgdG91Y2gtYWN0aW9uIGFzIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24sCisgICAg
ICAgIC8vIHdlIG5lZWQgdG8ga2VlcCBnb2luZyB1cCB0aGUgYW5jZXN0cnkgY2hhaW4uCisgICAg
ICAgIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246OkF1dG8gfHwgdG91Y2hBY3Rpb25z
ID09IGNvbXB1dGVkVG91Y2hBY3Rpb25zKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgLy8gTm93LCB0aGUgZWxlbWVudCdzIHRvdWNoLWFjdGlvbiBhbmQgdGhlIGNvbXB1dGVkIHRv
dWNoLWFjdGlvbiBhcmUgZGlmZmVyZW50IGFuZCBhcmUgbmVpdGhlciAiYXV0byIgbm9yICJub25l
Ii4KKyAgICAgICAgaWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpNYW5p
cHVsYXRpb24pIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24g
aXMgIm1hbmlwdWxhdGlvbiIsIHdlIGNhbiB0YWtlIHRoZSBjdXJyZW50IGVsZW1lbnQncyB0b3Vj
aC1hY3Rpb24gYXMgdGhlIG5ld2x5CisgICAgICAgICAgICAvLyBjb21wdXRlZCB0b3VjaC1hY3Rp
b24uCisgICAgICAgICAgICBjb21wdXRlZFRvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsKKyAg
ICAgICAgfSBlbHNlIGlmICh0b3VjaEFjdGlvbnMgPT0gVG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlv
bikgeworICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB3ZSBoYXZlIGEgcmVzdHJpY3RlZCBjb21w
dXRlZCB0b3VjaC1hY3Rpb24gc28gZmFyLiBJZiB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gt
YWN0aW9uIGlzICJtYW5pcHVsYXRpb24iCisgICAgICAgICAgICAvLyB0aGVuIHdlIGNhbiBqdXN0
IGtlZXAgZ29pbmcgYW5kIGxlYXZlIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gdW50b3VjaGVk
LgorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbiBhbnkg
b3RoZXIgY2FzZSwgd2UgaGF2ZSBjb21wZXRpbmcgcmVzdHJpY3RpdmUgdG91Y2gtYWN0aW9uIHZh
bHVlcyB0aGF0IGNhbiBvbmx5IHlpZWxkICJub25lIi4KKyAgICAgICAgcmV0dXJuIFRvdWNoQWN0
aW9uOjpOb25lOworICAgIH0KKyAgICByZXR1cm4gY29tcHV0ZWRUb3VjaEFjdGlvbnM7Cit9CisK
KyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQorU2Nyb2xsaW5nTm9k
ZUlEIEVsZW1lbnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3Jv
bGxpbmcoKSBjb25zdAoreworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICAvLyBXZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gdGhlIHJvb3QsIHNvIGNoZWNrIHRo
YXQgd2UgYWxzbyBoYXZlIGEgdmFsaWQgcGFyZW50LgorICAgIGZvciAoYXV0byogbGF5ZXIgPSBy
ZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOyBsYXllciAmJiBsYXllci0+cGFyZW50KCk7IGxh
eWVyID0gbGF5ZXItPnBhcmVudCgpKSB7CisgICAgICAgIGlmIChsYXllci0+aXNDb21wb3NpdGVk
KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvIHNjcm9sbGluZ05vZGVJRCA9IGxheWVyLT5iYWNr
aW5nKCktPnNjcm9sbGluZ05vZGVJREZvclJvbGUoU2Nyb2xsQ29vcmRpbmF0aW9uUm9sZTo6U2Ny
b2xsaW5nKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsaW5nTm9kZUlEOworICAgICAg
ICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBjNWViNmNiOGM0NDhiMDk5YzVl
MDEyNmFkNWExZTdjNGU4ODQyYjg2Li42YWUxNjE4NWU5YWM0NzE4NTRhOTM0OWQ3NDFkZDQ2NGEx
MWY0ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJL
ZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJTY3JvbGxUb09wdGlvbnMuaCIK
ICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9y
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdE1vZGUuaCIKICNpbmNsdWRlICJTaW11bGF0ZWRDbGlj
a09wdGlvbnMuaCIKICNpbmNsdWRlICJTdHlsZUNoYW5nZS5oIgpAQCAtNzUsNiArNzYsMTAgQEAg
ZW51bSBjbGFzcyBTZWxlY3Rpb25SZXZlYWxNb2RlIHsKICAgICBEb05vdFJldmVhbAogfTsKIAor
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK2VudW0gY2xhc3MgVG91Y2hBY3Rpb24gOiB1aW50
OF90OworI2VuZGlmCisKIGNsYXNzIEVsZW1lbnQgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7CiAg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChFbGVtZW50KTsKIHB1YmxpYzoKQEAgLTU4OCw2ICs1
OTMsMTMgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBhbmlt
YXRlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4mJiwgT3B0aW9u
YWw8VmFyaWFudDxkb3VibGUsIEtleWZyYW1lQW5pbWF0aW9uT3B0aW9ucz4+JiYpOwogICAgIFZl
Y3RvcjxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gZ2V0QW5pbWF0aW9ucygpOwogCisjaWYgRU5BQkxF
KFBPSU5URVJfRVZFTlRTKQorICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gY29tcHV0ZWRUb3Vj
aEFjdGlvbnMoKSBjb25zdDsKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xM
SU5HKQorICAgIFNjcm9sbGluZ05vZGVJRCBuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNpbmdUb3Vj
aE92ZXJmbG93U2Nyb2xsaW5nKCkgY29uc3Q7CisjZW5kaWYKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6
CiAgICAgRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBDb25zdHJ1Y3Rp
b25UeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGM0ZmFlZGQzZThmNTQ4NWIzMDBiZjQzZDNhYTZm
MWVhYjkzMDE1NDUuLjEzMGIyNjExMmE5MjBhN2RiNjBlMWRlZDQzOGU4OWIyMzRhNmFhNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNs
dWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisj
aW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcm9sbEFuaW1h
dG9yLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgpAQCAtMTA3LDcgKzEwOCwyNSBAQCBFdmVudFRyYWNraW5nUmVnaW9ucyBTY3JvbGxpbmdDb29y
ZGluYXRvcjo6YWJzb2x1dGVFdmVudFRyYWNraW5nUmVnaW9uc0ZvckZyYW1lKAogICAgIGF1dG8q
IGRvY3VtZW50ID0gZnJhbWUuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAg
ICByZXR1cm4gRXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsKLSAgICByZXR1cm4gZG9jdW1lbnQtPmV2
ZW50VHJhY2tpbmdSZWdpb25zKCk7CisgICAgYXV0byBldmVudFRyYWNraW5nUmVnaW9ucyA9IGRv
Y3VtZW50LT5ldmVudFRyYWNraW5nUmVnaW9ucygpOworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnBv
aW50ZXJFdmVudHNFbmFibGVkKCkpIHsKKyAgICAgICAgYXV0byYgdG91Y2hBY3Rpb25EYXRhID0g
ZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhOworICAgICAgICBmb3IgKGF1dG8m
IG5vZGUgOiAqZnJhbWUuZG9jdW1lbnQoKS0+dG91Y2hBY3Rpb25FbGVtZW50cygpKSB7CisgICAg
ICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KG5vZGUpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgYXV0byYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsK
KyAgICAgICAgICAgIHRvdWNoQWN0aW9uRGF0YS5hcHBlbmQoeworICAgICAgICAgICAgICAgIGVs
ZW1lbnQuY29tcHV0ZWRUb3VjaEFjdGlvbnMoKSwKKyAgICAgICAgICAgICAgICBlbGVtZW50Lm5l
YXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSwKKyAgICAg
ICAgICAgICAgICBub2RlLT5kb2N1bWVudCgpLmFic29sdXRlUmVnaW9uRm9yTm9kZShub2RlKS5m
aXJzdAorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworICAgIHJl
dHVybiBldmVudFRyYWNraW5nUmVnaW9uczsKICNlbHNlCiAgICAgYXV0byogZnJhbWVWaWV3ID0g
ZnJhbWUudmlldygpOwogICAgIGlmICghZnJhbWVWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggYWM5NzZlM2Jj
YTIyNmFiNWI3NTBlYjYwMGIwNzc1OGM2MDk2MWIxZS4uZDRiYjVmNTJkN2MxNzY3MTZhOWUyZGQ5
MDVjZGFjM2RjYWZlMGYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xsU25hcE9mZnNldHNJbmZvLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRv
clR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CkBAIC01MSwyNyAr
NTIsNiBAQCBjbGFzcyBUZXh0U3RyZWFtOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXR5cGVk
ZWYgdW5zaWduZWQgU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zOwotdHlwZWRlZiB1aW50NjRf
dCBTY3JvbGxpbmdOb2RlSUQ7Ci0KLWVudW0gY2xhc3MgU2Nyb2xsaW5nTm9kZVR5cGUgOiB1aW50
OF90IHsKLSAgICBNYWluRnJhbWUsCi0gICAgU3ViZnJhbWUsCi0gICAgRnJhbWVIb3N0aW5nLAot
ICAgIE92ZXJmbG93LAotICAgIEZpeGVkLAotICAgIFN0aWNreQotfTsKLQotZW51bSBTY3JvbGxp
bmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckZsYWdzIHsKLSAgICBTY3JvbGxpbmdTdGF0ZVRyZWVB
c1RleHRCZWhhdmlvck5vcm1hbCAgICAgICAgICAgICAgICAgID0gMCwKLSAgICBTY3JvbGxpbmdT
dGF0ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVMYXllcklEcyAgICAgICAgID0gMSA8PCAwLAot
ICAgIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZU5vZGVJRHMgICAgICAg
ICAgPSAxIDw8IDEsCi0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRl
TGF5ZXJQb3NpdGlvbnMgICA9IDEgPDwgMiwKLSAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRC
ZWhhdmlvckRlYnVnICAgICAgICAgICAgICAgICAgID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0
QmVoYXZpb3JJbmNsdWRlTGF5ZXJJRHMgfCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlv
ckluY2x1ZGVOb2RlSURzIHwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRl
TGF5ZXJQb3NpdGlvbnMKLX07Ci10eXBlZGVmIHVuc2lnbmVkIFNjcm9sbGluZ1N0YXRlVHJlZUFz
VGV4dEJlaGF2aW9yOwotCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJh
bWVWaWV3OwpAQCAtODYsNDIgKzY2LDYgQEAgY2xhc3MgVmlld3BvcnRDb25zdHJhaW50czsKIGNs
YXNzIFNjcm9sbGluZ1RyZWU7CiAjZW5kaWYKIAotZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uIHsKLSAgICBTZXQsCi0gICAgU2V0QXBwcm94aW1hdGUsCi0gICAgU3luYwot
fTsKLQotc3RydWN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyB7Ci0gICAgU2Nyb2xsRWxhc3Rp
Y2l0eSBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07
Ci0gICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxF
bGFzdGljaXR5Tm9uZSB9OwotCi0gICAgU2Nyb2xsYmFyTW9kZSBob3Jpem9udGFsU2Nyb2xsYmFy
TW9kZSB7IFNjcm9sbGJhckF1dG8gfTsKLSAgICBTY3JvbGxiYXJNb2RlIHZlcnRpY2FsU2Nyb2xs
YmFyTW9kZSB7IFNjcm9sbGJhckF1dG8gfTsKLQotICAgIGJvb2wgaGFzRW5hYmxlZEhvcml6b250
YWxTY3JvbGxiYXIgeyBmYWxzZSB9OwotICAgIGJvb2wgaGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xs
YmFyIHsgZmFsc2UgfTsKLQotICAgIGJvb2wgdXNlRGFya0FwcGVhcmFuY2VGb3JTY3JvbGxiYXJz
IHsgZmFsc2UgfTsKLQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTY3JvbGxhYmxlQXJlYVBh
cmFtZXRlcnMmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGhvcml6b250YWxT
Y3JvbGxFbGFzdGljaXR5ID09IG90aGVyLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5Ci0gICAg
ICAgICAgICAmJiB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPT0gb3RoZXIudmVydGljYWxTY3Jv
bGxFbGFzdGljaXR5Ci0gICAgICAgICAgICAmJiBob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSA9PSBv
dGhlci5ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZQotICAgICAgICAgICAgJiYgdmVydGljYWxTY3Jv
bGxiYXJNb2RlID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsYmFyTW9kZQotICAgICAgICAgICAgJiYg
aGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgPT0gb3RoZXIuaGFzRW5hYmxlZEhvcml6b250
YWxTY3JvbGxiYXIKLSAgICAgICAgICAgICYmIGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhciA9
PSBvdGhlci5oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIKLSAgICAgICAgICAgICYmIHVzZURh
cmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFycyA9PSBvdGhlci51c2VEYXJrQXBwZWFyYW5jZUZvclNj
cm9sbGJhcnM7Ci0gICAgfQotfTsKLQotZW51bSBjbGFzcyBWaWV3cG9ydFJlY3RTdGFiaWxpdHkg
ewotICAgIFN0YWJsZSwKLSAgICBVbnN0YWJsZSwKLSAgICBDaGFuZ2luZ09ic2N1cmVkSW5zZXRz
SW50ZXJhY3RpdmVseSAvLyBUaGlzIGltcGxpZXMgVW5zdGFibGUuCi19OwotCiBjbGFzcyBTY3Jv
bGxpbmdDb29yZGluYXRvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdD
b29yZGluYXRvcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nQ29vcmRpbmF0
b3I+IGNyZWF0ZShQYWdlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM3ZWJkMmZm
Y2M5YzhmZTQwMGMwY2VjNjdkNjAxNjk2NzkxNGIxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaApAQCAt
MCwwICsxLDg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTY3Jv
bGxUeXBlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3R5cGVkZWYgdW5zaWduZWQgU3lu
Y2hyb25vdXNTY3JvbGxpbmdSZWFzb25zOwordHlwZWRlZiB1aW50NjRfdCBTY3JvbGxpbmdOb2Rl
SUQ7CisKK2VudW0gY2xhc3MgU2Nyb2xsaW5nTm9kZVR5cGUgOiB1aW50OF90IHsKKyAgICBNYWlu
RnJhbWUsCisgICAgU3ViZnJhbWUsCisgICAgRnJhbWVIb3N0aW5nLAorICAgIE92ZXJmbG93LAor
ICAgIEZpeGVkLAorICAgIFN0aWNreQorfTsKKworZW51bSBTY3JvbGxpbmdTdGF0ZVRyZWVBc1Rl
eHRCZWhhdmlvckZsYWdzIHsKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvck5v
cm1hbCAgICAgICAgICAgICAgICAgID0gMCwKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRC
ZWhhdmlvckluY2x1ZGVMYXllcklEcyAgICAgICAgID0gMSA8PCAwLAorICAgIFNjcm9sbGluZ1N0
YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZU5vZGVJRHMgICAgICAgICAgPSAxIDw8IDEsCisg
ICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJQb3NpdGlvbnMg
ICA9IDEgPDwgMiwKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckRlYnVnICAg
ICAgICAgICAgICAgICAgID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRl
TGF5ZXJJRHMgfCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVOb2RlSURz
IHwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJQb3NpdGlvbnMK
K307Cit0eXBlZGVmIHVuc2lnbmVkIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yOwor
CitlbnVtIGNsYXNzIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24geworICAgIFNldCwKKyAg
ICBTZXRBcHByb3hpbWF0ZSwKKyAgICBTeW5jCit9OworCitzdHJ1Y3QgU2Nyb2xsYWJsZUFyZWFQ
YXJhbWV0ZXJzIHsKKyAgICBTY3JvbGxFbGFzdGljaXR5IGhvcml6b250YWxTY3JvbGxFbGFzdGlj
aXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKKyAgICBTY3JvbGxFbGFzdGljaXR5IHZlcnRp
Y2FsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07CisKKyAgICBTY3Jv
bGxiYXJNb2RlIGhvcml6b250YWxTY3JvbGxiYXJNb2RlIHsgU2Nyb2xsYmFyQXV0byB9OworICAg
IFNjcm9sbGJhck1vZGUgdmVydGljYWxTY3JvbGxiYXJNb2RlIHsgU2Nyb2xsYmFyQXV0byB9Owor
CisgICAgYm9vbCBoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CisgICAg
Ym9vbCBoYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9OworCisgICAgYm9vbCB1
c2VEYXJrQXBwZWFyYW5jZUZvclNjcm9sbGJhcnMgeyBmYWxzZSB9OworCisgICAgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyYgb3RoZXIpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkgPT0gb3RoZXIuaG9y
aXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkKKyAgICAgICAgICAgICYmIHZlcnRpY2FsU2Nyb2xsRWxh
c3RpY2l0eSA9PSBvdGhlci52ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkKKyAgICAgICAgICAgICYm
IGhvcml6b250YWxTY3JvbGxiYXJNb2RlID09IG90aGVyLmhvcml6b250YWxTY3JvbGxiYXJNb2Rl
CisgICAgICAgICAgICAmJiB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPT0gb3RoZXIudmVydGljYWxT
Y3JvbGxiYXJNb2RlCisgICAgICAgICAgICAmJiBoYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJh
ciA9PSBvdGhlci5oYXNFbmFibGVkSG9yaXpvbnRhbFNjcm9sbGJhcgorICAgICAgICAgICAgJiYg
aGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFyID09IG90aGVyLmhhc0VuYWJsZWRWZXJ0aWNhbFNj
cm9sbGJhcgorICAgICAgICAgICAgJiYgdXNlRGFya0FwcGVhcmFuY2VGb3JTY3JvbGxiYXJzID09
IG90aGVyLnVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFyczsKKyAgICB9Cit9OworCitlbnVt
IGNsYXNzIFZpZXdwb3J0UmVjdFN0YWJpbGl0eSB7CisgICAgU3RhYmxlLAorICAgIFVuc3RhYmxl
LAorICAgIENoYW5naW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5IC8vIFRoaXMgaW1wbGll
cyBVbnN0YWJsZS4KK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNTI0MzkzZGQxNmFhNjM3ZmYxNjFkNjc1YjgwZmZkOTRl
N2FhMTUwMC4uNmY3M2UwYTk4ZjYxZmJhMjc3NDRhYWNhNmViNGExYTkxN2M0MjA2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTQw
Myw2ICs0MDMsMjUgQEAgU3RyaW5nIFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVBc1RleHQo
KQogICAgIHJldHVybiB0cy5yZWxlYXNlKCk7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVO
VFMpCitPcHRpb25hbDxUb3VjaEFjdGlvbkRhdGE+IFNjcm9sbGluZ1RyZWU6OnRvdWNoQWN0aW9u
RGF0YUF0UG9pbnQoY29uc3QgSW50UG9pbnQgcCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogVGhp
cyBkb2VzIG5vdCBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIHJlZ2lv
bnMgbWF0Y2hpbmcgdGhpcyBwb2ludC4KKyAgICBmb3IgKGF1dG8mIHRvdWNoQWN0aW9uRGF0YSA6
IG1fZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhKSB7CisgICAgICAgIGlmICh0
b3VjaEFjdGlvbkRhdGEucmVnaW9uLmNvbnRhaW5zKHApKQorICAgICAgICAgICAgcmV0dXJuIHRv
dWNoQWN0aW9uRGF0YTsKKyAgICB9CisKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCit2
b2lkIFNjcm9sbGluZ1RyZWU6OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRp
b25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGlu
Z05vZGVJRCkKK3sKKyAgICBpZiAoYXV0byogc2Nyb2xsaW5nVHJlZU5vZGUgPSBub2RlRm9ySUQo
c2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAgc2Nyb2xsaW5nVHJlZU5vZGUtPnNldFRvdWNoQWN0
aW9ucyh0b3VjaEFjdGlvbnMpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggZWZjNjg0MTVjMzk0MzBkZjdmMjcw
NDNmZTk4MjMzMjc3NTU2NzYzMi4uOGU3ODZiNjI1OWE4YmI4M2FjMDY1MzIzMWY3MjdmYmRlMzM0
YTNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
aApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2lu
Y2x1ZGUgIlJlZ2lvbi5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisjaW5j
bHVkZSAiVG91Y2hBY3Rpb24uaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CkBAIC0xMDQs
NyArMTA1LDEwIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgVHJhY2tp
bmdUeXBlIGV2ZW50VHJhY2tpbmdUeXBlRm9yUG9pbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dE5hbWUsIEludFBvaW50KTsKLSAgICAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAg
V0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VG91Y2hBY3Rpb25EYXRhPiB0b3VjaEFjdGlvbkRhdGFB
dFBvaW50KGNvbnN0IEludFBvaW50KSBjb25zdDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2UpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlU2Nyb2xsU25hcEluZGlj
ZXMoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCAvKmhvcml6b250YWxJbmRleCovLCB1bnNpZ25l
ZCAvKnZlcnRpY2FsSW5kZXgqLykgeyB9CkBAIC0xNTEsNiArMTU1LDkgQEAgcHVibGljOgogICAg
IH0KICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc2Nyb2xsaW5nVHJlZUFzVGV4dCgp
OworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+LCBT
Y3JvbGxpbmdOb2RlSUQpOworI2VuZGlmCiAgICAgCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRN
YWluRnJhbWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmluZGV4IDJmNDQxNWFjODg1MjY2
OWM3MzBkMjhhNjU3NTExMzFlNWJhMmM5OTMuLmFmNjMwYjEyOTczZGZmYmFhZjZmYWUzZjBhMzgz
OWI5ZmY1M2M0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZU5vZGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlNjcm9sbFR5cGVz
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxp
bmdTdGF0ZU5vZGUuaCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCkBAIC03MSw2ICs3Miwx
MSBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1bXAoV1RGOjpUZXh0U3Ry
ZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0OwogCisjaWYgRU5B
QkxFKFBPSU5URVJfRVZFTlRTKQorICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gdG91Y2hBY3Rp
b25zKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbnM7IH0KKyAgICB2b2lkIHNldFRvdWNo
QWN0aW9ucyhPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucykgeyBtX3RvdWNoQWN0
aW9ucyA9IHRvdWNoQWN0aW9uczsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBTY3JvbGxp
bmdUcmVlTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCk7CiAgICAgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2Nyb2xsaW5nVHJlZTsgfQpAQCAtODYsNiArOTIsOSBAQCBwcml2YXRlOgogICAgIGNvbnN0
IFNjcm9sbGluZ05vZGVJRCBtX25vZGVJRDsKIAogICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBtX3Bh
cmVudDsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgT3B0aW9uU2V0PFRvdWNoQWN0
aW9uPiBtX3RvdWNoQWN0aW9uczsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lv
bnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuY3Bw
CmluZGV4IDdlNzYzYzg5NTNkY2E4ZTZkZDdjYWNhZDYyNTI0MDdjNzBjNWY4NjMuLjQzNzc4MDA5
ODUyOGJlZDEwOTYyZjQ4NjIwNzFiMjg2NzEwMTA5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHAKQEAgLTczLDcgKzczLDE5IEBAIHZv
aWQgRXZlbnRUcmFja2luZ1JlZ2lvbnM6OnVuaXRlKGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25z
JiBldmVudFRyYWNraW5nUmVnaW9uCiBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRUcmFja2lu
Z1JlZ2lvbnMmIGEsIGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBiKQogewogICAgIHJldHVy
biBhLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uID09IGIuYXN5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24KKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgICAgICYmIGEudG91Y2hBY3Rp
b25EYXRhID09IGIudG91Y2hBY3Rpb25EYXRhCisjZW5kaWYKICAgICAgICAgJiYgYS5ldmVudFNw
ZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPT0gYi5ldmVudFNwZWNpZmljU3luY2hy
b25vdXNEaXNwYXRjaFJlZ2lvbnM7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCiti
b29sIG9wZXJhdG9yPT0oY29uc3QgVG91Y2hBY3Rpb25EYXRhJiBhLCBjb25zdCBUb3VjaEFjdGlv
bkRhdGEmIGIpCit7CisgICAgcmV0dXJuIGEudG91Y2hBY3Rpb25zID09IGIudG91Y2hBY3Rpb25z
CisgICAgICAgICYmIGEuc2Nyb2xsaW5nTm9kZUlEID09IGIuc2Nyb2xsaW5nTm9kZUlECisgICAg
ICAgICYmIGEucmVnaW9uID09IGIucmVnaW9uOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tp
bmdSZWdpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9u
cy5oCmluZGV4IDNkNThiYTU1ZWZkNjNlZDliYWU0MDUwMWUzMDliODYxZmM5ZTljMDUuLmMyYTIw
NjMwMWFmMTdkYzE2Y2U4ZmQ3OWVlNTNiY2JmMWNhMTI2ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaApAQCAtMzAsNiArMzAsMTIgQEAKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisjaW5jbHVkZSAiQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oIgorI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMu
aCIKKyNpbmNsdWRlICJUb3VjaEFjdGlvbi5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogZW51bSBjbGFzcyBUcmFja2luZ1R5cGUgOiB1aW50OF90IHsKQEAgLTM4LDYgKzQ0LDE4
IEBAIGVudW0gY2xhc3MgVHJhY2tpbmdUeXBlIDogdWludDhfdCB7CiAgICAgU3luY2hyb25vdXMg
PSAyCiB9OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQordHlwZWRlZiB1aW50NjRfdCBT
Y3JvbGxpbmdOb2RlSUQ7CitzdHJ1Y3QgVG91Y2hBY3Rpb25EYXRhIHsKKyAgICBPcHRpb25TZXQ8
VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucyB7IFRvdWNoQWN0aW9uOjpBdXRvIH07CisgICAgU2Ny
b2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRDsKKyAgICBSZWdpb24gcmVnaW9uOworfTsKKwor
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYsIGNvbnN0IFRvdWNoQWN0aW9u
RGF0YSYpOworaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBUb3VjaEFjdGlvbkRhdGEmIGEs
IGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYgYikgeyByZXR1cm4gIShhID09IGIpOyB9CisjZW5kaWYK
Kwogc3RydWN0IEV2ZW50VHJhY2tpbmdSZWdpb25zIHsKICAgICAvLyBSZWdpb24gZm9yIHdoaWNo
IGV2ZW50cyBjYW4gYmUgZGlzcGF0Y2hlZCB3aXRob3V0IGJsb2NraW5nIHNjcm9sbGluZy4KICAg
ICBSZWdpb24gYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CkBAIC00Niw2ICs2NCwxMCBAQCBz
dHJ1Y3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMgewogICAgIC8vIFRoZSBrZXkgaXMgdGhlIEV2ZW50
IE5hbWUgd2l0aCBhbiBhY3RpdmUgaGFuZGxlci4KICAgICBIYXNoTWFwPFN0cmluZywgUmVnaW9u
PiBldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CiAKKyNpZiBFTkFCTEUo
UE9JTlRFUl9FVkVOVFMpCisgICAgVmVjdG9yPFRvdWNoQWN0aW9uRGF0YT4gdG91Y2hBY3Rpb25E
YXRhOworI2VuZGlmCisKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAogICAgIHZvaWQgdHJh
bnNsYXRlKEludFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVG91
Y2hBY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNoQWN0aW9uLmgKaW5kZXgg
ODY4MmI3ZmM0Njc3NTg5ZDgxOWY5MmY5ZDU0OTZjM2NhNTNlM2YxZi4uYjBjYjQ3NmU4ODk3NDg5
OGRkY2M3YmVlMDVlMTQ1NGQ0YzMwMzFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVG91Y2hBY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEFj
dGlvbi5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKFBP
SU5URVJfRVZFTlRTKQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgVG91Y2hB
Y3Rpb24gOiB1aW50OF90IHsKQEAgLTM3LDMgKzM5LDUgQEAgZW51bSBjbGFzcyBUb3VjaEFjdGlv
biA6IHVpbnQ4X3QgewogfTsKIAogfQorCisjZW5kaWYgLy8gRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCAz
ZDg3ZmJkNDhkYzYyMzdmZmUyYzUxOWE4YjBjNDUyNGI3YTQxYzk1Li4zMjRlZmU1OGNkMDllOWU0
NGFjODYyMDljOGEzMjQ5ODE2ZDAyYzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtNzA0LDcgKzcwNCw3IEBAIHB1YmxpYzoKICAgICBpbnQg
aW5pdGlhbExldHRlckRyb3AoKSBjb25zdCB7IHJldHVybiBpbml0aWFsTGV0dGVyKCkud2lkdGgo
KTsgfQogICAgIGludCBpbml0aWFsTGV0dGVySGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gaW5pdGlh
bExldHRlcigpLmhlaWdodCgpOyB9CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorI2lmIEVO
QUJMRShQT0lOVEVSX0VWRU5UUykKICAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0
aW9ucygpIGNvbnN0IHsgcmV0dXJuIE9wdGlvblNldDxUb3VjaEFjdGlvbj46OmZyb21SYXcobV9y
YXJlTm9uSW5oZXJpdGVkRGF0YS0+dG91Y2hBY3Rpb25zKTsgfQogI2VuZGlmCiAKQEAgLTEyMjMs
NyArMTIyMyw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHNldEluaXRpYWxMZXR0ZXIoY29u
c3QgSW50U2l6ZSYgc2l6ZSkgeyBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIGluaXRp
YWxMZXR0ZXIsIHNpemUpOyB9CiAgICAgCi0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZiBF
TkFCTEUoUE9JTlRFUl9FVkVOVFMpCiAgICAgdm9pZCBzZXRUb3VjaEFjdGlvbnMoT3B0aW9uU2V0
PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLCB0b3VjaEFjdGlvbnMsIHRvdWNoQWN0aW9ucy50b1JhdygpKTsgfQogI2VuZGlmCiAKQEAg
LTE2MTksNyArMTYxOSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBXaWxsQ2hhbmdlRGF0YSog
aW5pdGlhbFdpbGxDaGFuZ2UoKSB7IHJldHVybiBudWxscHRyOyB9CiAKLSNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKICAgICBzdGF0aWMgVG91Y2hB
Y3Rpb24gaW5pdGlhbFRvdWNoQWN0aW9ucygpIHsgcmV0dXJuIFRvdWNoQWN0aW9uOjpBdXRvOyB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGI2NmMzMjhmY2I1OTRjYzNi
MmFhOTg1NmIxZmZjMTFlYjMxM2E1ZTAuLjE5ZTMzNzJlMTNjNDRiZjNjZDZhYmYyYjM5YTliNmU1
Yjg2YzZjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSgpCiAgICAg
LCBqdXN0aWZ5SXRlbXMoUmVuZGVyU3R5bGU6OmluaXRpYWxKdXN0aWZ5SXRlbXMoKSkKICAgICAs
IGp1c3RpZnlTZWxmKFJlbmRlclN0eWxlOjppbml0aWFsU2VsZkFsaWdubWVudCgpKQogICAgICwg
Y3VzdG9tUHJvcGVydGllcyhTdHlsZUN1c3RvbVByb3BlcnR5RGF0YTo6Y3JlYXRlKCkpCi0jaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCiAgICAgLCB0
b3VjaEFjdGlvbnMoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFJlbmRlclN0eWxlOjppbml0aWFsVG91
Y2hBY3Rpb25zKCkpKQogI2VuZGlmCiAgICAgLCBwYWdlU2l6ZVR5cGUoUEFHRV9TSVpFX0FVVE8p
CkBAIC0xNzAsNyArMTcwLDcgQEAgaW5saW5lIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW4KICAgICAsIGp1c3Rp
ZnlTZWxmKG8uanVzdGlmeVNlbGYpCiAgICAgLCBjdXN0b21Qcm9wZXJ0aWVzKG8uY3VzdG9tUHJv
cGVydGllcykKICAgICAsIGN1c3RvbVBhaW50V2F0Y2hlZFByb3BlcnRpZXMoby5jdXN0b21QYWlu
dFdhdGNoZWRQcm9wZXJ0aWVzID8gc3RkOjptYWtlX3VuaXF1ZTxIYXNoU2V0PFN0cmluZz4+KCpv
LmN1c3RvbVBhaW50V2F0Y2hlZFByb3BlcnRpZXMpIDogbnVsbHB0cikKLSNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKICAgICAsIHRvdWNoQWN0aW9u
cyhvLnRvdWNoQWN0aW9ucykKICNlbmRpZgogICAgICwgcGFnZVNpemVUeXBlKG8ucGFnZVNpemVU
eXBlKQpAQCAtMjg1LDcgKzI4NSw3IEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6
b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBvKSBjCiAgICAgICAg
ICYmIGJvcmRlckZpdCA9PSBvLmJvcmRlckZpdAogICAgICAgICAmJiB0ZXh0Q29tYmluZSA9PSBv
LnRleHRDb21iaW5lCiAgICAgICAgICYmIHRleHREZWNvcmF0aW9uU3R5bGUgPT0gby50ZXh0RGVj
b3JhdGlvblN0eWxlCi0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9FVkVOVFMpCiAgICAgICAgICYmIHRvdWNoQWN0aW9ucyA9PSBvLnRvdWNoQWN0aW9ucwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4
IDMxMTEyNDA0NmVlNWVhMzUzNDVjY2ExNjY4MWU4YzE0NmM3ZmI4YzguLjIxMzNiODg1YzMyOGYw
NTg1NjAwNmYxNWM4YzFlNGI5YjRjMWU5N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMTc0
LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICBEYXRhUmVmPFN0eWxlQ3VzdG9tUHJvcGVydHlEYXRh
PiBjdXN0b21Qcm9wZXJ0aWVzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PFN0cmluZz4+
IGN1c3RvbVBhaW50V2F0Y2hlZFByb3BlcnRpZXM7CiAKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKICAgICB1bnNpZ25lZCB0b3VjaEFjdGlvbnMg
OiA1OyAvLyBUb3VjaEFjdGlvbgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VHJlZVJlc29sdmVyLmNwcAppbmRleCAxYjEzNGRmZWEzYTI1MGU1MmNmZDg2NGM4YmIxNTczY2I4
NTRjMjFmLi5hNjE3N2Y5MmE3N2RmZjAyOTRlMWZmOTdmYTIxNTExNWFiZjM0YWNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC0yMzYsNiArMjM2LDEx
IEBAIEVsZW1lbnRVcGRhdGVzIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYg
ZWxlbWVudCkKICAgICBhdXRvIGJlZm9yZVVwZGF0ZSA9IHJlc29sdmVQc2V1ZG9TdHlsZShlbGVt
ZW50LCB1cGRhdGUsIFBzZXVkb0lkOjpCZWZvcmUpOwogICAgIGF1dG8gYWZ0ZXJVcGRhdGUgPSBy
ZXNvbHZlUHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBQc2V1ZG9JZDo6QWZ0ZXIpOwogCisj
aWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnBvaW50ZXJFdmVudHNFbmFibGVkKCkpCisgICAgICAgIG1fZG9j
dW1lbnQudXBkYXRlVG91Y2hBY3Rpb25FbGVtZW50cyhlbGVtZW50LCB1cGRhdGUuc3R5bGUuZ2V0
KCkpOworI2VuZGlmCisKICAgICByZXR1cm4geyBXVEZNb3ZlKHVwZGF0ZSksIGRlc2NlbmRhbnRz
VG9SZXNvbHZlLCBXVEZNb3ZlKGJlZm9yZVVwZGF0ZSksIFdURk1vdmUoYWZ0ZXJVcGRhdGUpIH07
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CmluZGV4IDNiMDUyOWE0YTk1OWEyM2JkNWQwNDBmNWZhMDA4YWQ3YjBmZWM3MWYuLjU0ZDE5OWUy
NWQ4NGIyNTE4M2ZkOWJmOWYwMmNiOTViNWFjOGNhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzI5LDEwICszMjksNDAgQEAgT3B0
aW9uYWw8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4gQXJndW1lbnRDb2RlcjxET01DYWNoZUVuZ2lu
ZTo6UmVjb3JkPjo6ZGVjb2RlKEQKICAgICByZXR1cm4ge3sgV1RGTW92ZShpZGVudGlmaWVyKSwg
V1RGTW92ZSh1cGRhdGVSZXNwb25zZUNvdW50ZXIpLCBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzR3Vh
cmQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMudmFsdWUoKSksIFdURk1vdmUo
cmVmZXJyZXIpLCBXVEZNb3ZlKHJlc3BvbnNlSGVhZGVyc0d1YXJkKSwgV1RGTW92ZShyZXNwb25z
ZSksIFdURk1vdmUocmVzcG9uc2VCb2R5KSwgcmVzcG9uc2VCb2R5U2l6ZSB9fTsKIH0KIAorI2lm
IEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK3ZvaWQgQXJndW1lbnRDb2RlcjxUb3VjaEFjdGlvbkRh
dGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVG91Y2hBY3Rpb25EYXRhJiB0b3Vj
aEFjdGlvbkRhdGEpCit7CisgICAgZW5jb2RlciA8PCB0b3VjaEFjdGlvbkRhdGEudG91Y2hBY3Rp
b25zIDw8IHRvdWNoQWN0aW9uRGF0YS5zY3JvbGxpbmdOb2RlSUQgPDwgdG91Y2hBY3Rpb25EYXRh
LnJlZ2lvbjsKK30KKworT3B0aW9uYWw8VG91Y2hBY3Rpb25EYXRhPiBBcmd1bWVudENvZGVyPFRv
dWNoQWN0aW9uRGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFs
PE9wdGlvblNldDxUb3VjaEFjdGlvbj4+IHRvdWNoQWN0aW9uczsKKyAgICBkZWNvZGVyID4+IHRv
dWNoQWN0aW9uczsKKyAgICBpZiAoIXRvdWNoQWN0aW9ucykKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFNjcm9sbGluZ05vZGVJRD4gc2Nyb2xsaW5nTm9kZUlE
OworICAgIGRlY29kZXIgPj4gc2Nyb2xsaW5nTm9kZUlEOworICAgIGlmICghc2Nyb2xsaW5nTm9k
ZUlEKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8UmVnaW9u
PiByZWdpb247CisgICAgZGVjb2RlciA+PiByZWdpb247CisgICAgaWYgKCFyZWdpb24pCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgV1RGTW92ZSgqdG91Y2hB
Y3Rpb25zKSwgV1RGTW92ZSgqc2Nyb2xsaW5nTm9kZUlEKSwgV1RGTW92ZSgqcmVnaW9uKSB9fTsK
K30KKyNlbmRpZgorCiB2b2lkIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGV2ZW50
VHJhY2tpbmdSZWdpb25zKQogewogICAgIGVuY29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMu
YXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CiAgICAgZW5jb2RlciA8PCBldmVudFRyYWNraW5n
UmVnaW9ucy5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnM7CisjaWYgRU5B
QkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGVuY29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMu
dG91Y2hBY3Rpb25EYXRhOworI2VuZGlmCiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxFdmVudFRy
YWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNraW5nUmVn
aW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCkBAIC0zNDMsOCArMzczLDE2IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBFdmVudFRyYWNraW5nCiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZp
Y1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZXZl
bnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBWZWN0b3I8VG91Y2hBY3Rpb25E
YXRhPiB0b3VjaEFjdGlvbkRhdGE7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0b3VjaEFjdGlv
bkRhdGEpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKICAgICBldmVudFRyYWNraW5n
UmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IFdURk1vdmUoYXN5bmNocm9ub3Vz
RGlzcGF0Y2hSZWdpb24pOwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2ZW50U3BlY2lmaWNT
eW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9IFdURk1vdmUoZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zKTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgZXZl
bnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhID0gV1RGTW92ZSh0b3VjaEFjdGlvbkRh
dGEpOworI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTkxNSw2ICs5NTMsMTUgQEAg
Ym9vbCBBcmd1bWVudENvZGVyPFJlZ2lvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWdp
b24mIHJlZ2lvbikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorT3B0aW9uYWw8UmVnaW9uPiBBcmd1
bWVudENvZGVyPFJlZ2lvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFJlZ2lv
biByZWdpb247CisgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVnaW9uKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZWdpb247Cit9CisKIHZvaWQgQXJndW1l
bnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgTGVuZ3RoJiBs
ZW5ndGgpCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoZW5jb2Rl
ciwgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKaW5kZXggM2FlN2U0NzVkODMzNmVmYzI3ZGNmMmM1MWY3MjJjYzJkYjk4NDVhNi4uMmVmNWU0
M2FkYjQ4OTUxODE5YzlhNzEzZDY5ZTAxM2QyMGRkNmU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTEyMSw2ICsxMjEsOSBAQCBzdHJ1Y3Qg
UmVzb3VyY2VMb2FkU3RhdGlzdGljczsKIHN0cnVjdCBTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM7
CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwor
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK3N0cnVjdCBUb3VjaEFjdGlvbkRhdGE7CisjZW5k
aWYKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAg
ICAgCkBAIC0xOTksNiArMjAyLDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4gewogICAgIHN0YXRpYyBPcHRpb25hbDxX
ZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAor
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6VG91Y2hBY3Rpb25EYXRhPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpUb3VjaEFjdGlvbkRhdGEmKTsKKyAgICBzdGF0aWMgT3B0
aW9uYWw8V2ViQ29yZTo6VG91Y2hBY3Rpb25EYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKyNl
bmRpZgorCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkV2ZW50VHJh
Y2tpbmdSZWdpb25zPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBX
ZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9ucyYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnMmKTsKQEAgLTMxNiw2ICszMjYs
NyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBhdGg+IHsKIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVnaW9uPiB7CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpSZWdpb24mKTsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJlZ2lvbiYpOworICAgIHN0YXRp
YyBPcHRpb25hbDxXZWJDb3JlOjpSZWdpb24+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCiB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNWY3NTRhYTU1
Zjg2ZDQwMWNkNzZiZWU2NWNkOTU0ZGRkNzYxZjg3Ni4uNDBhYjM2N2UxYjk2NGE5NDdkN2VhMDMz
ZTU3MmJjYmEzYjA4MmJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCkBAIC0yNTgxLDYgKzI1ODEsMTQgQEAgLSAodm9pZClzY3JvbGxWaWV3
V2lsbEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eToo
Q0dQb2kKICAgICAvLyB6b29taW5nLiBXZSdsbCBhbmltYXRlIHRvIHRoZSByaWdodCBwbGFjZSBv
bmNlIHRoZSB6b29tIGZpbmlzaGVzLgogICAgIGlmIChbc2Nyb2xsVmlldyBpc1pvb21pbmddKQog
ICAgICAgICAqdGFyZ2V0Q29udGVudE9mZnNldCA9IFtzY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRd
OworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKFtf
Y29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10pCisgICAgICAgICAgICB0YXJnZXRD
b250ZW50T2Zmc2V0LT54ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lng7CisgICAgICAgIGlm
IChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKQorICAgICAgICAgICAgdGFy
Z2V0Q29udGVudE9mZnNldC0+eSA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNldC55OworICAgIH0K
KyNlbmRpZgogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApICYmIEVOQUJMRShBU1lOQ19TQ1JP
TExJTkcpCiAgICAgaWYgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSog
Y29vcmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpKSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBIZXJlLCBJJ20gZmluZGluZyB0aGUgbWF4aW11bSBob3Jpem9udGFsL3Zl
cnRpY2FsIHNjcm9sbCBvZmZzZXRzLiBUaGVyZSdzIHByb2JhYmx5IGEgYmV0dGVyIHdheSB0byBk
byB0aGlzLgpAQCAtMjYxOCw2ICsyNjI2LDIwIEBAIC0gKHZvaWQpc2Nyb2xsVmlld0RpZFNjcm9s
bFRvVG9wOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiAgICAgW3NlbGYgX2RpZEZpbmlzaFNj
cm9sbGluZ107CiB9CiAKKy0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNj
cm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zmc2V0IHRyYW5zbGF0
aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQpc3RhcnQgbG9jYXRp
b25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZlbG9jaXR5Oihpbm91
dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUgKil2dgoreworICAg
IGlmICghW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzXSAmJiAhW19jb250ZW50
VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSkKKyAgICAgICAgcmV0dXJuIG9mZnNldDsKKwor
ICAgIENHUG9pbnQgYWRqdXN0ZWRDb250ZW50T2Zmc2V0ID0gQ0dQb2ludE1ha2Uob2Zmc2V0Lngs
IG9mZnNldC55KTsKKyAgICBpZiAoW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJblhBeGlz
XSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnggPSBzdGFydC54OworICAgIGlmIChb
X2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKQorICAgICAgICBhZGp1c3RlZENv
bnRlbnRPZmZzZXQueSA9IHN0YXJ0Lnk7CisKKyAgICByZXR1cm4gYWRqdXN0ZWRDb250ZW50T2Zm
c2V0OworfQorCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRTY3JvbGw6KFVJU2Nyb2xsVmlldyAqKXNj
cm9sbFZpZXcKIHsKICAgICBpZiAoIVtzZWxmIHVzZXNTdGFuZGFyZENvbnRlbnRWaWV3XSAmJiBb
X2N1c3RvbUNvbnRlbnRWaWV3IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViX3Njcm9s
bFZpZXdEaWRTY3JvbGw6KV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5jcHAKaW5kZXggYTk1OWM5M2JjNzU5ZDFjOTg2NjhjODFkYWRhMDFlMjY3ZjM1
YjliMS4uYThjNmY3YzM1YWVjY2I5MzgwZjkxNGMxOWE0ZTMzN2RhMTVhZjhmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApAQCAtMjA2LDYg
KzIwNiwxOCBAQCBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xs
aW5nVHJlZUFzVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitPcHRpb25hbDxUb3VjaEFjdGlvbkRhdGE+IFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnRvdWNoQWN0aW9uRGF0YUF0UG9pbnQoSW50UG9p
bnQgcCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxpbmdUcmVlLT50b3VjaEFjdGlvbkRh
dGFBdFBvaW50KHApOworfQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8VG91Y2hBY3Rpb24+
IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCkKK3sKKyAgICBt
X3Njcm9sbGluZ1RyZWUtPnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRCh0b3VjaEFj
dGlvbnMsIHNjcm9sbGluZ05vZGVJRCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggYjMyZDc5ZmU5Mjg5YjE0NTdj
OGVhZDJkOGQzNWMzYjc5ZGFlYzk2YS4uYzBiMDJjMTllMzAyZTk1MmFmMWE5OWYyMjZkZTVjYmZk
MjhiZGFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5oCkBAIC05OCw2ICs5OCwxMSBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgc2Nyb2xsaW5nVHJl
ZUFzVGV4dCgpIGNvbnN0OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIE9wdGlv
bmFsPFdlYkNvcmU6OlRvdWNoQWN0aW9uRGF0YT4gdG91Y2hBY3Rpb25EYXRhQXRQb2ludChXZWJD
b3JlOjpJbnRQb2ludCkgY29uc3Q7CisgICAgdm9pZCBzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxp
bmdOb2RlSUQoT3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2ViQ29yZTo6U2Nyb2xs
aW5nTm9kZUlEKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgY29ubmVjdFN0YXRlTm9k
ZUxheWVycyhXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWUmLCBjb25zdCBSZW1vdGVMYXllclRy
ZWVIb3N0Jik7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQppbmRl
eCA0Y2M3ZTFhODdiODVhYzcwNjM3ZTE1ZjQ0Y2MxZTRmOGY5MjE5YzRjLi5jOWU2ZDEyMjE0MjQ2
ODM0OWIyN2NhYjZhMzNmNjE1M2VhZjViNjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCkBAIC02Nyw5ICs2
NywyNyBAQCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsQmVnaW5EcmFnZ2luZzooVUlTY3JvbGxWaWV3
ICopc2Nyb2xsVmlldwogICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxXaWxs
U3RhcnQoKTsKIH0KIAotI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAtICh2b2lkKXNjcm9s
bFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9j
aXR5OihDR1BvaW50KXZlbG9jaXR5IHRhcmdldENvbnRlbnRPZmZzZXQ6KGlub3V0IENHUG9pbnQg
Kil0YXJnZXRDb250ZW50T2Zmc2V0CiB7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAg
IGlmICghW3Njcm9sbFZpZXcgaXNab29taW5nXSkgeworICAgICAgICBhdXRvIHRvdWNoQWN0aW9u
cyA9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkudG91Y2hBY3Rp
b25zKCk7CisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgIT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246
OkF1dG8gJiYgdG91Y2hBY3Rpb25zICE9IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpNYW5pcHVsYXRp
b24pIHsKKyAgICAgICAgICAgIGJvb2wgY2FuUGFuWCA9IHRydWU7CisgICAgICAgICAgICBib29s
IGNhblBhblkgPSB0cnVlOworICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlvbnMuY29udGFpbnMo
V2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblgpKSB7CisgICAgICAgICAgICAgICAgY2FuUGFuWCA9
IGZhbHNlOworICAgICAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQtPnggPSBzY3JvbGxW
aWV3LmNvbnRlbnRPZmZzZXQueDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghdG91
Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5ZKSkgeworICAgICAg
ICAgICAgICAgIGNhblBhblkgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0YXJnZXRDb250ZW50
T2Zmc2V0LT55ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lnk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAg
ICAgQ0dGbG9hdCBob3Jpem9udGFsVGFyZ2V0ID0gdGFyZ2V0Q29udGVudE9mZnNldC0+eDsKICAg
ICBDR0Zsb2F0IHZlcnRpY2FsVGFyZ2V0ID0gdGFyZ2V0Q29udGVudE9mZnNldC0+eTsKIApAQCAt
OTYsOCArMTE0LDggQEAgLSAodm9pZClzY3JvbGxWaWV3V2lsbEVuZERyYWdnaW5nOihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2kKICAgICAgICAgfHwgb3JpZ2lu
YWxWZXJ0aWNhbFNuYXBQb3NpdGlvbiAhPSBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Ny
b2xsaW5nTm9kZSgpLmN1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4KCkpIHsKICAgICAgICAg
X3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hh
bmdlKF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudEhv
cml6b250YWxTbmFwUG9pbnRJbmRleCgpLCBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Ny
b2xsaW5nTm9kZSgpLmN1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4KCkpOwogICAgIH0KLX0K
ICNlbmRpZgorfQogCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREcmFnZ2luZzooVUlTY3JvbGxW
aWV3ICopc2Nyb2xsVmlldyB3aWxsRGVjZWxlcmF0ZTooQk9PTCl3aWxsRGVjZWxlcmF0ZQogewpA
QCAtMTA1LDYgKzEyMyw5IEBAIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihVSVNj
cm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxEZWNlbGVyYXRlOihCT09MCiAgICAgICAgIF9pblVz
ZXJJbnRlcmFjdGlvbiA9IE5POwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+
c2Nyb2xsVmlld0RpZFNjcm9sbChzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQsIF9pblVzZXJJbnRl
cmFjdGlvbik7CiAgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxEaWRF
bmQoKTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgICAgIF9zY3JvbGxpbmdUcmVl
Tm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuc2V0VG91Y2hBY3Rpb25zKFdlYkNvcmU6OlRv
dWNoQWN0aW9uOjpBdXRvKTsKKyNlbmRpZgogICAgIH0KIH0KIApAQCAtMTE0LDkgKzEzNSwzMCBA
QCAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREZWNlbGVyYXRpbmc6KFVJU2Nyb2xsVmlldyAqKXNj
cm9sbFZpZXcKICAgICAgICAgX2luVXNlckludGVyYWN0aW9uID0gTk87CiAgICAgICAgIF9zY3Jv
bGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNjcm9sbFZpZXcuY29u
dGVudE9mZnNldCwgX2luVXNlckludGVyYWN0aW9uKTsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVO
b2RlRGVsZWdhdGUtPnNjcm9sbERpZEVuZCgpOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykK
KyAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGluZ05vZGUoKS5zZXRU
b3VjaEFjdGlvbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OkF1dG8pOworI2VuZGlmCiAgICAgfQog
fQogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorLSAoQ0dQb2ludClfc2Nyb2xsVmlldzoo
VUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9mZnNldDooQ0dQb2lu
dClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRpb24gc3RhcnRQb2ludDooQ0dQ
b2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbkluVmlldyBob3Jpem9u
dGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2NpdHk6KGlub3V0IGRv
dWJsZSAqKXZ2Cit7CisgICAgYXV0byB0b3VjaEFjdGlvbnMgPSBfc2Nyb2xsaW5nVHJlZU5vZGVE
ZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnRvdWNoQWN0aW9ucygpOworICAgIGlmICh0b3VjaEFj
dGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246OkF1dG8gfHwgdG91Y2hBY3Rpb25zID09IFdl
YkNvcmU6OlRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pCisgICAgICAgIHJldHVybiBvZmZzZXQ7
CisKKyAgICBDR1BvaW50IGFkanVzdGVkQ29udGVudE9mZnNldCA9IENHUG9pbnRNYWtlKG9mZnNl
dC54LCBvZmZzZXQueSk7CisKKyAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3Jl
OjpUb3VjaEFjdGlvbjo6UGFuWCkpCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC54ID0g
c3RhcnQueDsKKyAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpUb3VjaEFj
dGlvbjo6UGFuWSkpCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC55ID0gc3RhcnQueTsK
KworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisjZW5kaWYKKwogQGVuZAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggYWQ3ZDdkYzkyODJlMzU3ZjMwZWYyNGUyODlhMTEzZGE2MzIwMWQ5Mi4uNDBkYzMwOTQw
YTFkMWQ5M2FmNWQyYjMzMWQyY2JlMmFiZDRlNGMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTY4NCw2ICs2ODQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1
ZXN0U3RhcnREYXRhSW50ZXJhY3Rpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24pOwogICAgIHZv
aWQgcmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uKTsKICAgICB2b2lkIGRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFjdGlvbihPcHRpb25h
bDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5U
UykKKyAgICBib29sIGlzU2Nyb2xsaW5nT3Jab29taW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc1Nj
cm9sbGluZ09yWm9vbWluZzsgfQorI2VuZGlmCiAjZW5kaWYKICNlbmRpZgogI2lmIEVOQUJMRShE
QVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBkNTA4YTNlNGJhN2NkN2FjODIxODZlNjlh
NmMyNzVhNWEwYzg0MzdlLi41ZDllYjY5NmE2OTQwNjUwMjU4M2I0OWVlZTE0OTI0Y2VkYjBhYzQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCkBAIC0xOTYsNiArMTk2LDEwIEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0
aW9uRGF0YSB7CiAgICAgUmV0YWluUHRyPFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXpl
cj4gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplcjsKIAogICAgIEJPT0wgX2NhblNlbmRUb3Vj
aEV2ZW50c0FzeW5jaHJvbm91c2x5OworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBC
T09MIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzOworICAgIEJPT0wgX3ByZXZlbnRzUGFubmluZ0lu
WUF4aXM7CisjZW5kaWYKIAogICAgIFJldGFpblB0cjxXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVy
ZVJlY29nbml6ZXI+IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8
X1VJV2ViSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI+IF9oaWdobGlnaHRMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplcjsKQEAgLTM0OSw2ICszNTMsMTAgQEAgc3RydWN0IFdLQXV0
b0NvcnJlY3Rpb25EYXRhIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgY29uc3Qg
V2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiBmb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVdlYkZvcm1BY2Nlc3Nvcnkg
KmZvcm1BY2Nlc3NvcnlWaWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVRl
eHRJbnB1dEFzc2lzdGFudEl0ZW0gKmlucHV0QXNzaXN0YW50SXRlbUZvcldlYlZpZXc7CisjaWYg
RU5BQkxFKFBPSU5URVJfRVZFTlRTKQorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIHByZXZlbnRzUGFubmluZ0luWEF4aXM7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIEJPT0wgcHJldmVudHNQYW5uaW5nSW5ZQXhpczsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKERB
VEFMSVNUX0VMRU1FTlQpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBVSVZpZXcgPFdL
Rm9ybUNvbnRyb2w+ICpkYXRhTGlzdFRleHRTdWdnZXN0aW9uc0lucHV0VmlldzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCmluZGV4IGIyOGYxNzdjYTE0ODVmNzVlMTRjY2NmMTU4Mjg0YzI5NjJiNGI3OTEuLjU4Mzhk
MjA1MWU4N2UwMTViNGI0YWI0MzE5ZTExYzRkZTc2OGRmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAt
MTI5LDYgKzEyOSwxMSBAQAogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLUGxhdGZvcm1GaWxl
VXBsb2FkUGFuZWwubW0+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyNp
bXBvcnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKKyNpbXBvcnQgPFdlYkNv
cmUvVG91Y2hBY3Rpb24uaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKIAogQGlu
dGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXYXRjaFN1cHBvcnQpIDxXS0ZvY3VzZWRGb3JtQ29udHJv
bFZpZXdEZWxlZ2F0ZSwgV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyRGVsZWdhdGUsIFdL
VGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyRGVsZWdhdGU+CkBAIC02MDgsNiArNjEzLDE4IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNGb2N1c2VkRWxlbWVudChXZWJLaXQ6OkZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24gZm9jdXNlZEVsCiAgICAgcmV0dXJuIChmb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uLmVsZW1lbnRUeXBlICE9IFdlYktpdDo6SW5wdXRUeXBlOjpOb25lKTsKIH0KIAorI2lm
IEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKy0gKEJPT0wpcHJldmVudHNQYW5uaW5nSW5YQXhpcwor
eworICAgIHJldHVybiBfcHJldmVudHNQYW5uaW5nSW5YQXhpczsKK30KKworLSAoQk9PTClwcmV2
ZW50c1Bhbm5pbmdJbllBeGlzCit7CisgICAgcmV0dXJuIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlz
OworfQorI2VuZGlmCisKIC0gKFdLRm9ybUlucHV0U2Vzc2lvbiAqKV9mb3JtSW5wdXRTZXNzaW9u
CiB7CiAgICAgcmV0dXJuIF9mb3JtSW5wdXRTZXNzaW9uLmdldCgpOwpAQCAtODU0LDYgKzg3MSwx
MCBAQCAtICh2b2lkKWNsZWFudXBJbnRlcmFjdGlvbgogICAgIF9oYXNTZXRVcEludGVyYWN0aW9u
cyA9IE5POwogICAgIF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMgPSB7IH07CiAg
ICAgX2lzWm9vbWluZ1RvUmV2ZWFsRm9jdXNlZEVsZW1lbnQgPSBOTzsKKworI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKKyAgICBbc2VsZiBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXTsK
KyNlbmRpZgogfQogCiAtICh2b2lkKV9yZW1vdmVEZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCkBA
IC0xMTIxLDE2ICsxMTQyLDU0IEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDoo
VUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlCiAgICAgV2ViS2l0
OjpOYXRpdmVXZWJUb3VjaEV2ZW50IG5hdGl2ZVdlYlRvdWNoRXZlbnQobGFzdFRvdWNoRXZlbnQp
OwogICAgIG5hdGl2ZVdlYlRvdWNoRXZlbnQuc2V0Q2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKCFf
Y2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgfHwgW2dlc3R1cmVSZWNvZ25pemVyIGlz
RGVmYXVsdFByZXZlbnRlZF0pOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGlm
IChhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRv
clByb3h5KCkpIHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiB0b3VjaFBvaW50IDogbmF0aXZl
V2ViVG91Y2hFdmVudC50b3VjaFBvaW50cygpKSB7CisgICAgICAgICAgICBpZiAodG91Y2hQb2lu
dC5waGFzZSgpICE9IFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFByZXNzZWQp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmIChhdXRvIHRvdWNo
QWN0aW9uRGF0YSA9IHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT50b3VjaEFjdGlvbkRhdGFBdFBvaW50
KHRvdWNoUG9pbnQubG9jYXRpb24oKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAodG91Y2hBY3Rp
b25EYXRhLT50b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok5vbmUpCisgICAg
ICAgICAgICAgICAgICAgIFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVyIHNldERlZmF1bHRQ
cmV2ZW50ZWQ6WUVTXTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICghdG91Y2hBY3Rpb25EYXRh
LT50b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlv
bikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc2Nyb2xsaW5nTm9kZUlEID0gdG91
Y2hBY3Rpb25EYXRhLT5zY3JvbGxpbmdOb2RlSUQpCisgICAgICAgICAgICAgICAgICAgICAgICBz
Y3JvbGxpbmdDb29yZGluYXRvci0+c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlEKHRv
dWNoQWN0aW9uRGF0YS0+dG91Y2hBY3Rpb25zLCB0b3VjaEFjdGlvbkRhdGEtPnNjcm9sbGluZ05v
ZGVJRCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCF0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJDb3JlOjpU
b3VjaEFjdGlvbjo6UGluY2hab29tKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfd2Vi
Vmlldy5zY3JvbGxWaWV3LnBpbmNoR2VzdHVyZVJlY29nbml6ZXIuZW5hYmxlZCA9IE5POworICAg
ICAgICAgICAgICAgICAgICAgICAgX3ByZXZlbnRzUGFubmluZ0luWEF4aXMgPSAhdG91Y2hBY3Rp
b25EYXRhLT50b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblgp
OworICAgICAgICAgICAgICAgICAgICAgICAgX3ByZXZlbnRzUGFubmluZ0luWUF4aXMgPSAhdG91
Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246
OlBhblkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfQorI2VuZGlmCisKICAgICBpZiAoX2NhblNlbmRUb3Vj
aEV2ZW50c0FzeW5jaHJvbm91c2x5KQogICAgICAgICBfcGFnZS0+aGFuZGxlVG91Y2hFdmVudEFz
eW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNoRXZlbnQpOwogICAgIGVsc2UKICAgICAgICAgX3Bh
Z2UtPmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNoRXZlbnQpOwog
Ci0gICAgaWYgKG5hdGl2ZVdlYlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNBcmVSZWxlYXNlZCgp
KQorICAgIGlmIChuYXRpdmVXZWJUb3VjaEV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQo
KSkgewogICAgICAgICBfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgPSBOTzsKKwor
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICAgICAgaWYgKCFfcGFnZS0+aXNTY3JvbGxp
bmdPclpvb21pbmcoKSkKKyAgICAgICAgICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9u
RmxhZ3NdOworI2VuZGlmCisgICAgfQogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9F
VkVOVFMpCistICh2b2lkKV9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3MKK3sKKyAgICBfcHJl
dmVudHNQYW5uaW5nSW5YQXhpcyA9IE5POworICAgIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzID0g
Tk87Cit9CisjZW5kaWYKKwogLSAodm9pZClfaW5zcGVjdG9yTm9kZVNlYXJjaFJlY29nbml6ZWQ6
KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogewogICAgIEFTU0VSVChf
aW5zcGVjdG9yTm9kZVNlYXJjaEVuYWJsZWQpOwpAQCAtMjE5NSw2ICsyMjU0LDEwIEBAIC0gKHZv
aWQpX2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZwogICAgIH0KICAgICBfcGFnZS0+c2V0SXNTY3Jv
bGxpbmdPclpvb21pbmcoZmFsc2UpOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAg
IFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOworI2VuZGlmCisKICNpZiBQTEFU
Rk9STShXQVRDSE9TKQogICAgIFtfZm9jdXNlZEZvcm1Db250cm9sVmlldyBlbmdhZ2VGb2N1c2Vk
Rm9ybUNvbnRyb2xOYXZpZ2F0aW9uXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMyYWJkN2Q2Nzk3MzY2MmMx
NzQ2MmQ2MDUzZWE1Y2M4N2VjYTVkOWEuLmM0MDhlMDYwNDA4NDJkZWI4MmY1MmQwNWNjODQyYjQz
OTM5ZmE3NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOS0wMS0yNCAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIExpbWl0IHVzZXItYWdlbnQgaW50ZXJh
Y3Rpb25zIGJhc2VkIG9uIHRoZSB0b3VjaC1hY3Rpb24gcHJvcGVydHkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ0NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDcyODM4NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGEgbmV3IHNlcmllcyBvZiB0ZXN0cyB0aGF0IGNoZWNrIHRoYXQgdGhl
ICJub25lIiwgInBhbi14IiwgInBhbi15IiBhbmQgInBpbmNoLXpvb20iIHZhbHVlcyBoYXZlIHRo
ZSBleHBlY3RlZAorICAgICAgICBpbXBhY3Qgb24gcGFnZSBwYW5uaW5nIG9uIGlPUy4KKworICAg
ICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4t
b3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5n
LXRvdWNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tbm9uZS1vbi1wYXJlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBh
bi15Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1wYW4teC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmctZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGlu
Y2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
cGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbDogQWRkZWQuCisKIDIwMTktMDEtMjQg
IEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIEFkIENs
aWNrIEF0dHJpYnV0aW9uIGFzIGFuIGludGVybmFsL2V4cGVyaW1lbnRhbCBmZWF0dXJlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24t
bm9uZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzI3ZThhZjgxYmQ5ODRjOGMzNDA3MDU1MWFm
NWI2MWU5MjcwZmY4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5vbmUgb24gYW4gZWxlbWVu
dCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10
b3VjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJjMDA3MjkxMDI0NWVmNTc1ODdlYmU5YzUyYzlmYWJjMDUzMmQxYzIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBpbiBjb250
ZW50IGhvc3RlZCBpbiBhIHNjcm9sbGFibGUgY29udGFpbmVyIHVzaW5nICctd2Via2l0LW92ZXJm
bG93LXNjcm9sbGluZzogdG91Y2gnIHByZXZlbnRzIHNjcm9sbGluZyBvZiB0aGF0IGNvbnRhaW5l
ci4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sIGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5n
LXRvdWNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWU5NjE0ZmZlZmNlZmJlYWZlNjc0MTc0YjU4MTU0MWMw
ZjIzNTE0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sCkBAIC0w
LDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdp
ZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPHN0eWxlPgorCisjc2Nyb2xsaW5nLWNvbnRhaW5lciB7
CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDA7CisgICAgdG9wOiAwOworICAg
IHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIG92ZXJmbG93OiBzY3JvbGw7
CisgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOworfQorCisjc2Nyb2xsaW5n
LWNvbnRhaW5lciA+IGRpdiB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDA7
CisgICAgdG9wOiAwOworICAgIHdpZHRoOiAyMDAlOworICAgIGhlaWdodDogMjAwJTsKKyAgICB0
b3VjaC1hY3Rpb246IG5vbmU7Cit9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9InNjcm9sbGluZy1jb250YWluZXIiPjxkaXY+PC9kaXY+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwor
YXN5bmNfdGVzdCh0ZXN0ID0+IHsKKyAgICBjb25zdCBzY3JvbGxpbmdDb250YWluZXIgPSBkb2N1
bWVudC5ib2R5LmZpcnN0RWxlbWVudENoaWxkOworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAx
NTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoc2Nyb2xsaW5nQ29udGFpbmVyLnNjcm9sbExlZnQsIDAsICJUaGUgc2Nyb2xsaW5nIGNvbnRh
aW5lciB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9l
cXVhbHMoc2Nyb2xsaW5nQ29udGFpbmVyLnNjcm9sbFRvcCwgMCwgIlRoZSBzY3JvbGxpbmcgY29u
dGFpbmVyIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5k
b25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBu
b25lIGluIGNvbnRlbnQgaG9zdGVkIGluIGEgc2Nyb2xsYWJsZSBjb250YWluZXIgdXNpbmcgJy13
ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaCcgcHJldmVudHMgc2Nyb2xsaW5nIG9mIHRo
YXQgY29udGFpbmVyLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40Njc1MWJkZDdjMzQ2MmExZTA4NmZmYzczZjM1M2VkNDRkYWY3ZmJj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQ
QVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBpZnJhbWUg
YW5kIGludGVyYWN0aW5nIHdpdGggaXRzIGNvbnRlbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcu
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tbm9uZS1vbi1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MjdlYThkYjQ2MTc0
MzQxYzUxYTBjNGNjNTI1M2U1YjYyMDdhMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUuaHRtbApAQCAt
MCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxzdHlsZT4KKworaWZyYW1lIHsKKyAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgbGVmdDogMDsKKyAgICB0b3A6IDA7CisgICAgd2lkdGg6IDQwMHB4
OworICAgIGhlaWdodDogNDAwcHg7CisgICAgdG91Y2gtYWN0aW9uOiBub25lOworfQorCis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK2Fz
eW5jX3Rlc3QodGVzdCA9PiB7CisgICAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQuYm9keS5maXJz
dEVsZW1lbnRDaGlsZDsKKyAgICBjb25zdCB0YXJnZXQgPSBpZnJhbWUuY29udGVudERvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpOworICAgIHRh
cmdldC5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgYAorICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICAgIGxlZnQ6IDA7CisgICAgICAgIHRvcDogMDsKKyAgICAgICAgd2lkdGg6IDIwMCU7
CisgICAgICAgIGhlaWdodDogMjAwJTsKKyAgICBgKTsKKworICAgIHVpLnN3aXBlKHsgeDogMTUw
LCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxl
ZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9m
ZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAg
ICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91
Y2gtYWN0aW9uOiBub25lIG9uIGFuIGlmcmFtZSBhbmQgaW50ZXJhY3Rpbmcgd2l0aCBpdHMgY29u
dGVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9u
LXBhcmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAyYjEzMDQ5NjhhMjkxZWFkZDEzNzM5
NTI2ZmMwZDhjYmUyYTI5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25l
IG9uIGEgcGFyZW50IGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1w
YXJlbnQuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1u
b25lLW9uLXBhcmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhNDgwNzkzZjc5MGE1Yzg2MjQxNzY5Zjk5
MzFlOGY0ODBjZjNiNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbApAQCAtMCwwICsxLDI5IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04Pgor
PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlh
bC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsg
d2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7Cisg
ICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJv
ZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS50b3Vj
aEFjdGlvbiA9ICJub25lIjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4
OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93
LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlz
LiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBw
YWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25l
KCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBub25l
IG9uIGEgcGFyZW50IGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0
bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFkMDBiODNiYjk4ZTRhZTVkZGM5YTU5Yzk4NjcyYTZhMDMyOWNlOGIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rp
b24tbm9uZS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1
c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAw
cHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRo
ID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsK
KworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJub25lIjsKKworICAgIHVpLnN3aXBl
KHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwgeTogNTAgfSkudGhlbigoKSA9PiB7CisgICAg
ICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5v
dCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRv
dy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhp
cy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNl
dHRpbmcgdG91Y2gtYWN0aW9uOiBub25lIG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3Jv
bGxpbmcuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1wYW4teC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3ZTc4Mzc5
ZGY0NWE3MTc3NDc2YzhiZTdiNWQ2NDA0MGYwYWFjZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlv
bjogcGFuLXggb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeS1h
eGlzLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBhbi14LXBhbi15LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmU5N2JkZTMyN2ZjMjljM2FlNGI3ODBhMTExNjQ3Y2Q2OGZkNWY4MgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4t
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRp
bmcgJ3RvdWNoLWFjdGlvbjogcGFuLXggcGFuLXknIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ug
c2Nyb2xsaW5nIGluIGJvdGggYXhlcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1sIGIvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTIyOTFhNGQ4YzY3YzIyMTUxYzIyOWQ4MzdkNzFhOGYzZDAwYWIxNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1w
YW4teS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ug
c3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgi
IH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0g
IjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKwor
ICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teCBwYW4teSI7CisKKyAgICB1aS5z
d2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFn
ZSB3YXMgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVh
bHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVkIGluIHRoZSB5
LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhh
dCBzZXR0aW5nICd0b3VjaC1hY3Rpb246IHBhbi14IHBhbi15JyBvbiBhbiBlbGVtZW50IGFsbG93
cyBwYWdlIHNjcm9sbGluZyBpbiBib3RoIGF4ZXMuIik7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1sIGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2I5MjA1ZjdlZjVkYTJjYWI3MDAxOWNmYjhlYTcwZjk1ZDc3YzZmNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5odG1s
CkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2
aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsK
KwordGFyZ2V0X3Rlc3QoeyB3aWR0aDogIjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJn
ZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7
CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdl
dC5zdHlsZS50b3VjaEFjdGlvbiA9ICJwYW4teCI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwg
eTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
bm90X2VxdWFscyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgc2Nyb2xsZWQg
aW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZz
ZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAg
ICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNo
LWFjdGlvbjogcGFuLXggb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0
aGUgeS1heGlzLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmY2
NThjMzg2NDIyNjcxNWFlNjdlYTQyZmJiOTI4NjgwNjkyODQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1h
Y3Rpb246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhl
IHgtYXhpcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3Rv
dWNoLWFjdGlvbi1wYW4teS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLXBhbi15Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTA5MGQzOTYwMWZiZWUxN2JmZDFiOTVm
MjQzZTlmYWJjNTIyNzk1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxl
PTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDog
IjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1
bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHls
ZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJw
YW4teSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUw
IH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNl
dCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAg
ICAgYXNzZXJ0X25vdF9lcXVhbHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2Fz
IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0p
OworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogcGFuLXggb24gYW4gZWxl
bWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZyBpbiB0aGUgeC1heGlzLiIpOworCis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9v
bS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDk0ZTY3NjE1ZTJhNTk5OGYzMzMzZjkwZmRhMzBkZDFkY2E1YTQ2OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1waW5jaC16b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBpbmNoLXpvb20gb24g
YW4gZWxlbWVudCBhbGxvd3MgcGFnZSB6b29taW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21p
bmcuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5j
aC16b29tLWFsbG93cy16b29taW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRhNjNjOTQyOWUxYWExMzkw
MjZlZDQzMTNjZWE2ZDVkNDc4Nzk3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLWFsbG93cy16b29taW5nLmh0
bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRl
dmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7
CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICI0MDBweCIsIGhlaWdodDogIjQwMHB4IiB9LCAodGFy
Z2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgi
OworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJn
ZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGluY2gtem9vbSI7CisKKyAgICB1aS5waW5jaE91dCh7
IHg6IDUwLCB5OiA1MCwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDAsIHNjYWxlOiAwLjUgfSkudGhl
bigoKSA9PiB7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5pbnRlcm5hbHMucGFn
ZVNjYWxlRmFjdG9yKCksIDEsICJUaGUgcGFnZSB3YXMgc2NhbGVkLiIpOworICAgICAgICB0ZXN0
LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246
IHBpbmNoLXpvb20gb24gYW4gZWxlbWVudCBhbGxvd3MgcGFnZSB6b29taW5nLiIpOworCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gt
em9vbS1wcmV2ZW50cy1zY3JvbGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGM4NWI5YWE1NTJkZjliNzFkOWFlNDM5NzQwNTBlMGMy
ODk5ODAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246
IHBpbmNoLXpvb20gb24gYW4gZWxlbWVudCBwcmV2ZW50cyBwYWdlIHNjcm9sbGluZy4gCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5j
aC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDIzNDFjNjIxNTA3YTNlZTgzNzM0ZDI3NzEzZDg0YmZmNTU5ZDdkZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1w
aW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGluZy5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBu
YW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxl
PTEiPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3V0aWxzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKKyd1c2Ugc3RyaWN0JzsKKwordGFyZ2V0X3Rlc3QoeyB3aWR0aDog
IjIwMHB4IiwgaGVpZ2h0OiAiMjAwcHgiIH0sICh0YXJnZXQsIHRlc3QpID0+IHsKKyAgICBkb2N1
bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjIwMDBweCI7CisgICAgZG9jdW1lbnQuYm9keS5zdHls
ZS5oZWlnaHQgPSAiMjAwMHB4IjsKKworICAgIHRhcmdldC5zdHlsZS50b3VjaEFjdGlvbiA9ICJw
aW5jaC16b29tIjsKKworICAgIHVpLnN3aXBlKHsgeDogMTUwLCB5OiAxNTAgfSwgeyB4OiA1MCwg
eTogNTAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMod2luZG93LnBhZ2VY
T2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdh
cyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHktYXhpcy4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7Cisg
ICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29t
IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360100</attachid>
            <date>2019-01-25 03:39:25 -0800</date>
            <delta_ts>2019-01-28 06:38:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190125123923.patch</filename>
            <type>text/plain</type>
            <size>84022</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzkzMDI3MjU1NzZmZDA1
OTlkOGU5MzI0MjhlODA4MzRiNTYyYzVlMy4uNDNkMzU4NDVhN2E3NjEyNDczN2VlYzlhMGZjZmI0
NTNjYjc0N2VhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE5LTAxLTI0ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzNDQ3CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NzI4Mzg3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBub3cgY29tcGlsZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0
aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB0aGF0IGlzIHVwZGF0ZWQgd2hlbmV2
ZXIgYW4gZWxlbWVudCBoYXMgaXRzIHN0eWxlIGNoYW5nZWQKKyAgICAgICAgb3IgaXMgcmVtb3Zl
ZCBmcm9tIGl0cyBkb2N1bWVudC4gV2hlbiB0aGUgY29udGVudCBvZiB0aGF0IGxpc3QgY2hhbmdl
cywgd2UgaW5mb3JtIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Igc3VjaCB0aGF0IGl0IGNhbiBj
b21waWxlCisgICAgICAgIGEgbGlzdCBvZiBUb3VjaEFjdGlvbkRhdGEgc3RydWN0dXJlcyB3aGlj
aCBob2xkIHRoZSB0b3VjaC1hY3Rpb24gdmFsdWUsIHRoZSBJRCBvZiB0aGUgbmVhcmVzdCBzY3Jv
bGwgbm9kZSBhbmQgdGhlIFJlZ2lvbiBjb250YWluaW5nCisgICAgICAgIHRoZSBib3VuZHMgb2Yg
ZWFjaCBvZiB0aG9zZSBlbGVtZW50cyB0byBzZW5kIGl0IHVwIHRvIHRoZSBVSSBwcm9jZXNzIGFs
b25nIHdpdGggdG91Y2ggcmVnaW9ucy4gQ29tcHV0aW5nIHRoZSBsaXN0IG9mIGFsbG93ZWQgdG91
Y2gKKyAgICAgICAgYWN0aW9ucyBmb3IgYSBnaXZlbiBlbGVtZW50IGFjY291bnRzIGZvciBub3Qg
b25seSB0aGUgdmFsdWUgc3BlY2lmaWVkIGRpcmVjdGx5IG9uIHRoYXQgZWxlbWVudCdzIHN0eWxl
LCBidXQgYWxzbyBpbiBpdHMgaGllcmFyY2h5LAorICAgICAgICBjcm9zc2luZyBhbnkgZnJhbWUg
Ym91bmRhcnkgdG93YXJkcyB0aGUgdG9wLWxldmVsIGRvY3VtZW50J3Mgcm9vdCBub2RlLgorCisg
ICAgICAgIFRlc3RzOiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVy
Zmxvdy1zY3JvbGxpbmctdG91Y2guaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLXBhcmVudC5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS5odG1sCisgICAgICAgICAg
ICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbAorICAg
ICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14Lmh0bWwKKyAg
ICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCisg
ICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1h
bGxvd3Mtem9vbWluZy5odG1sCisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbAorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW52YWxpZGF0ZVJlbmRlcmluZ0Rl
cGVuZGVudFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVXaWxsQmVS
ZW1vdmVkKTogRW5zdXJlIGEgbm9kZSB0aGF0IGlzIGJlaW5nIHJlbW92ZWQgZnJvbSB0aGlzIGRv
Y3VtZW50IGlzIG5vIGxvbmdlciBsaXN0ZWQgaW4gaXRzCisgICAgICAgIGxpc3Qgb2YgZWxlbWVu
dHMgd2l0aCBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eS4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphYnNvbHV0ZVJlZ2lvbkZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKTogQ3JlYXRlIGEgbGlzdCBv
ZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5IGlmIG9uZSBk
b2Vzbid0CisgICAgICAgIGV4aXN0IHlldCBhbmQgdXBkYXRlIGl0IHRvIGFkZCB0aGUgZ2l2ZW4g
ZWxlbWVudCBpZiBpdCBjb250YWlucyBhIG5vbi1hdXRvIHRvdWNoLWFjdGlvbiwgb3IgcmVtb3Zl
IGl0IGlmIGl0IGRvZXNuJ3QuIElmIHRoZSBjb250ZW50cworICAgICAgICBvZiB0aGF0IGxpc3Qg
Y2hhbmdlZCBhcyBhIHJlc3VsdCwgdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBpcyBpbmZvcm1l
ZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjogY29uc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zIGNvbnN0KTogUHJvdmlkZSB0aGUgbGlzdCBvZiBhbGxv
d2VkIHRvdWNoIGFjdGlvbnMgYWNjb3VudGluZyBmb3IgdGhlICJ0b3VjaC1hY3Rpb24iIHByb3Bl
cnR5CisgICAgICAgIHNwZWNpZmllZCBvbiB0aGlzIGVsZW1lbnQgYW5kIGFsbCBvZiBpdHMgaGll
cmFyY2h5LCBjcm9zc2luZyBmcmFtZSBib3VuZGFyeS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6Om5lYXJlc3RTY3JvbGxpbmdOb2RlSURVc2luZ1RvdWNoT3ZlcmZsb3dTY3JvbGxpbmcgY29u
c3QpOiBQcm92aWRlIHRoZSBTY3JvbGxpbmdOb2RlSUQsIGlmIGFueSwgZm9yIHRoZSBuZWFyZXN0
IHNjcm9sbGluZyBub2RlCisgICAgICAgIGZvciB0aGF0IGVsZW1lbnQuIFRoaXMgd2lsbCBhbGxv
dyB0aGUgVUkgcHJvY2VzcyB0byBpZGVudGlmeSB3aGljaCBzY3JvbGwgdmlldydzIGJlaGF2aW9y
IHRvIGN1c3RvbWl6ZSB0byByZWZsZWN0IHRoZSBlbGVtZW50J3MgYWxsb3dlZAorICAgICAgICB0
b3VjaCBhY3Rpb25zLgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNGb3JGcmFtZSBj
b25zdCk6IENvbXB1dGUgdGhlIHJlZ2lvbiBmb3IgYWxsIGVsZW1lbnRzIHdpdGggYSBub24tYXV0
byB0b3VjaC1hY3Rpb24gcHJvcGVydHkKKyAgICAgICAgdGhyb3VnaG91dCB0aGUgcHJvdmlkZWQg
ZnJhbWUgYW5kIGFsbCBvZiBpdHMgc3ViZnJhbWVzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxhYmxlQXJlYVBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOgorICAg
ICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZTo6dG91Y2hBY3Rpb25EYXRhQXRQb2ludCBjb25zdCk6IFF1ZXJ5IHRo
ZSBsaXN0IG9mIFRvdWNoQWN0aW9uRGF0YSBvYmplY3RzIGZvciBhIG1hdGNoIGJhc2VkIG9uIHRo
ZSBwcm92aWRlZCBwb2ludC4gUmlnaHQKKyAgICAgICAgbm93IHRoZSBsb2dpYyBpcyBwcmV0dHkg
Y3J1ZGUsIHN0b3BwaW5nIGF0IHRoZSBmaXJzdCBUb3VjaEFjdGlvbkRhdGEgZm9yIHdoaWNoIHRo
ZSByZWdpb24gY29udGFpbnMgdGhlIHByb3ZpZGVkIHBvaW50LCBidXQgZnV0dXJlIHBhdGNoZXMg
d2lsbAorICAgICAgICBhY2NvdW50IGZvciBvdmVybGFwIGFuZCBuZXN0aW5nLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9kZUlE
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWVOb2RlOjp0b3VjaEFjdGlvbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZU5vZGU6OnNldFRvdWNoQWN0aW9ucyk6CisgICAgICAgICogcGxhdGZvcm0v
RXZlbnRUcmFja2luZ1JlZ2lvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6
CisgICAgICAgICogcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50
KTogVXBkYXRlIHRoZSBsaXN0IG9mIGVsZW1lbnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rp
b24gcHJvcGVydHkgd2hlbiBhbiBlbGVtZW50J3Mgc3R5bGUgY2hhbmdlcy4KKwogMjAxOS0wMS0y
NSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBFTkFC
TEVfUE9JTlRFUl9FVkVOVFMgZm9yIHRoZSB0b3VjaC1hY3Rpb24gcHJvcGVydHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggM2Y3MTFlYWEzZjgzN2JjNTRlNmFmZTRiNWJlZmI5Zjk2MTRiODZhZS4uZmQ3YWUyNmM2YzM4
MmYyOGQ0NzRjNmU1N2U5Zjg5NTI2ZjQ5MTNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAor
MjAxOS0wMS0yNCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAg
IExpbWl0IHVzZXItYWdlbnQgaW50ZXJhY3Rpb25zIGJhc2VkIG9uIHRoZSB0b3VjaC1hY3Rpb24g
cHJvcGVydHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5MzQ0NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDcyODM4NzQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSGFuZGxlIHRoZSAibm9uZSIsICJw
YW4teCIsICJwYW4teSIgYW5kICJwaW5jaC16b29tIiB2YWx1ZXMgZm9yIHRoZSB0b3VjaC1hY3Rp
b24gcHJvcGVydHkgYnkgcXVlcnlpbmcgdGhlIHNjcm9sbGluZyB0cmVlIHdoZW5ldmVyIGEgdG91
Y2ggYmVnaW5zCisgICAgICAgIHRvIGlkZW50aWZ5IHdoZXRoZXIgaXRzIHBvaW50IGlzIGNvbnRh
aW5lZCB3aXRoaW4gdGhlIHJlZ2lvbiBvZiBhbiBlbGVtZW50IHdpdGggYSBub24tYXV0byB0b3Vj
aC1hY3Rpb24gcHJvcGVydHkuIElmIGl0IGlzLCB3ZSB1c2UgdGhlIGxpc3Qgb2YKKyAgICAgICAg
cGVybWl0dGVkIHRvdWNoIGFjdGlvbnMgc3VjaCB0byB0aGVuIGN1c3RvbWl6ZSB0aGUgYmVoYXZp
b3Igb2YgdGhlIG5lYXJlc3Qgc2Nyb2xsIHZpZXcgdG8gcGFuIG9yIHpvb20gb25seSBhcyBpbnN0
cnVjdGVkLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VG91Y2hBY3Rpb25EYXRhPjo6ZW5jb2RlKToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxUb3VjaEFjdGlvbkRhdGE+OjpkZWNvZGUpOgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKToK
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29k
ZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UmVnaW9uPjo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3
V2lsbEVuZERyYWdnaW5nOndpdGhWZWxvY2l0eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0pOiBBY2Nv
dW50IGZvciBwYW5uaW5nIGNvbnN0cmFpbnRzIHNldCBvbiB0aGUgY29udGVudCB2aWV3IHRvIHBy
ZXZlbnQgZGVjZWxlcmF0aW9uCisgICAgICAgIHRvIHBhbiB0aGUgdmlldyBpZiBpdCBvdWdodCBu
b3QuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVmlldzphZGp1c3RlZE9mZnNldEZvck9m
ZnNldDp0cmFuc2xhdGlvbjpzdGFydFBvaW50OmxvY2F0aW9uSW5WaWV3Omhvcml6b250YWxWZWxv
Y2l0eTp2ZXJ0aWNhbFZlbG9jaXR5Ol0pOiBJbXBsZW1lbnQgYW4gYWRkaXRpb25hbAorICAgICAg
ICBVSVNjcm9sbFZpZXcgZGVsZWdhdGlvbiBtZXRob2QgdG8gYXBwbHkgdGhlIHBhbm5pbmcgY29u
c3RyYWludHMgc2V0IG9uIHRoZSBjb250ZW50IHZpZXcgd2hpbGUgcGFubmluZy4KKyAgICAgICAg
KiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
Ojp0b3VjaEFjdGlvbkRhdGFBdFBvaW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xsaW5nTm9k
ZUlEKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tOgorICAgICAgICAo
LVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld1dpbGxFbmREcmFn
Z2luZzp3aXRoVmVsb2NpdHk6dGFyZ2V0Q29udGVudE9mZnNldDpdKTogQXBwbHkgdGhlIHNhbWUg
bG9naWMgYXMgaW4gV0tXZWJWaWV3LgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxW
aWV3RGVsZWdhdGUgc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOndpbGxEZWNlbGVyYXRlOl0pOiBS
ZXNldCB0aGUgdG91Y2ggYWN0aW9ucyBmb3IgdGhlIGFzc29jaWF0ZWQgc2Nyb2xsIG5vZGUgdG8g
c3RhcnQgdGhlIG5leHQKKyAgICAgICAgaW50ZXJhY3Rpb24gaW4gdGhlIGRlZmF1bHQgc3RhdGUu
CisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9sbFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3
RGlkRW5kRGVjZWxlcmF0aW5nOl0pOiBSZXNldCB0aGUgdG91Y2ggYWN0aW9ucyBmb3IgdGhlIGFz
c29jaWF0ZWQgc2Nyb2xsIG5vZGUgdG8gc3RhcnQgdGhlIG5leHQgaW50ZXJhY3Rpb24KKyAgICAg
ICAgaW4gdGhlIGRlZmF1bHQgc3RhdGUuCisgICAgICAgICgtW1dLU2Nyb2xsaW5nTm9kZVNjcm9s
bFZpZXdEZWxlZ2F0ZSBfc2Nyb2xsVmlldzphZGp1c3RlZE9mZnNldEZvck9mZnNldDp0cmFuc2xh
dGlvbjpzdGFydFBvaW50OmxvY2F0aW9uSW5WaWV3Omhvcml6b250YWxWZWxvY2l0eTp2ZXJ0aWNh
bFZlbG9jaXR5Ol0pOiBBcHBseQorICAgICAgICB0aGUgc2FtZSBsb2dpYyBhcyBpbiBXS1dlYlZp
ZXcuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmlzU2Nyb2xsaW5nT3Jab29taW5nIGNvbnN0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IHByZXZlbnRzUGFubmluZ0luWEF4aXNdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xl
YW51cEludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3dlYlRvdWNoRXZl
bnRzUmVjb2duaXplZDpdKTogQXMgd2UgcHJvY2VzcyB0b3VjaGVzLCBjaGVjayB3aGV0aGVyIHRo
ZXJlIGFyZSB0b3VjaCBhY3Rpb25zIHNldCBmb3IgdGhpcyB0b3VjaCdzIHBvaW50cycgbG9jYXRp
b25zLiBCYXNlZAorICAgICAgICBvbiB0aG9zZSB0b3VjaCBhY3Rpb25zLCBlaXRoZXIgc2V0RGVm
YXVsdFByZXZlbnRlZCBvbiB0aGUgX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplciBpZiB0aGUg
dG91Y2ggYWN0aW9uIGlzICJub25lIiBvciBzZWxlY3RpdmVseSBkaXNhYmxlIHBhbm5pbmcgYW5k
IHpvb21pbmcuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3Jlc2V0UGFubmluZ1ByZXZlbnRp
b25GbGFnc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRFbmRTY3JvbGxpbmdPclpv
b21pbmddKToKKwogMjAxOS0wMS0yNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBpT1M6IFNwbGl0IGtleWJvYXJkIHNob3VsZCBub3Qgc2hyaW5rIHZpc3VhbFZp
ZXdwb3J0LmhlaWdodApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGRiM2ZmNWMwZTJkZjg0MDE3YzkyNTBlYWRjZjJkNWU1YzllMTIx
YWUuLjU1NjM3Nzg1ZmE5YzRmMWRiNjc3MjRhOWVjMTVkZDE5OWQ2YmZkNDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwODIs
NiArMjA4Miw3IEBACiAJCTcxMkJFNDgzMUZFODY1REQwMDIwMzFDQyAvKiBGaWxsTW9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyQkU0ODExRkU4
NjVENDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzEyQkU0ODgxRkU4Njg2QTAwMjAzMUNDIC8qIEpTRmlsbE1v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxMkJF
NDg1MUZFODY4MTgwMDIwMzFDQyAvKiBKU0ZpbGxNb2RlLmggKi87IH07CiAJCTcxMkJFNDg5MUZF
ODY4NzUwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTJCRTQ4NjFGRTg2ODU5MDAyMDMxQ0MgLyog
SlNQbGF5YmFja0RpcmVjdGlvbi5oICovOyB9OworCQk3MTJEQkE0OTIxRjhBRDgzMDA4RjM2QjIg
LyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyREJBNDcyMUY4QUQ3OTAwOEYzNkIyIC8qIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3MTMxNzEzNDFGQkU3OERCMDBGNzU4REUgLyogQ1NTUHJvcGVydHlCbGVu
ZGluZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzEzMTcxMzIxRkJFNzhDNTAwRjc1OERFIC8qIENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MTMy
NDQ1MTIwMTA5REE1MDBBRTdGQjIgLyogV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTMyNDQ0RjIwMTA5RDlCMDBB
RTdGQjIgLyogV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzEzNDQ5NkUxNDY5NDFCMzAwNzIwMzEyIC8qIFNW
R0xlbmd0aENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxMzQ0OTZDMTQ2OTQxQjMwMDcyMDMxMiAvKiBTVkdMZW5ndGhDb250ZXh0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI0MDQsNyAr
MjQwNSw3IEBACiAJCTgzNDQ3NkVGMURBNUJDNUUwMDJCNkVEMiAvKiBKU1Njcm9sbFRvT3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOUIz
MDExREE1QTUxRTAwRkZFOEY2IC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggKi87IH07CiAJCTgzNDhC
RkFDMUI4NTcyOTgwMDkxMkYzNiAvKiBDbGFzc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDhCRkFBMUI4NTcyOTUwMDkxMkYzNiAv
KiBDbGFzc0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJODM0REZBRDAxRjdEQUU1RDAwQzI3MjVCIC8q
IFNoYXJlZFN0cmluZ0hhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzNERGQUNDMUY3REFFNTYwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODM1MjBD
N0UxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNTIwQzdEMUE3MUJGQ0MwMDZCRDJBQSAvKiBD
U1NGb250RmFtaWx5LmggKi87IH07CisJCTgzNTIwQzdFMUE3MUJGQ0MwMDZCRDJBQSAvKiBDU1NG
b250RmFtaWx5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MzUyMEM3RDFBNzFCRkNDMDA2QkQyQUEgLyogQ1NTRm9udEZhbWlseS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzNThDQjcwMUM1MzI3NzUw
MEUwQzJEOCAvKiBKU1hNTERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0Y1NzBBRDFDNTMyNjhFMDA3RkQ2Q0IgLyogSlNYTUxEb2N1bWVu
dC5oICovOyB9OwogCQk4MzVEMkQ3ODFGNUYxRkJEMDAxNDFERUQgLyogSFRNTElucHV0RWxlbWVu
dEVudHJpZXNBUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNUQyRDc1MUY1RjFGQjgwMDE0MURFRCAvKiBIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQ
SS5oICovOyB9OwogCQk4MzVEMzYzNzE5RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3Vz
dG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVE
MzYzNjE5RkY2MTkzMDA0QzkzQUIgLyogU3R5bGVCdWlsZGVyQ3VzdG9tLmggKi87IH07CkBAIC0y
ODkwLDcgKzI4OTEsNyBAQAogCQk5OTIwMzk4MzE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0
QnJpZGdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTIwMzk4MTE4Qjk1QkM2MDBCMzlBRjkgLyogVXNlcklucHV0QnJpZGdlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTk2RTU5REYxREYwMTI4RDAw
NjYxMkI5IC8qIE5hdmlnYXRvcldlYkRyaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk2RTU5REMxREYwMEQ5MDAwNjYxMkI5IC8qIE5hdmlnYXRv
cldlYkRyaXZlci5oICovOyB9OwogCQk5QTUyOEU4NDE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRp
bmdPYmplY3RzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QTUyOEU4MjE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOUFCMUYzODAxOEUyNDg5
QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAv
KiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggKi87IH07CisJCTlBQjFGMzgwMThFMjQ4OUEw
MDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUIxRjM3RTE4RTI0ODlBMDA1MzQ3NDMgLyog
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTlCMjRERThFMTUxOTRCOTUwMEM1OUMyNyAvKiBIVE1MQkRJ
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUIyNERFOEMxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggKi87IH07CiAJCTlC
MkQ4QTc5MTQ5OTdDQ0YwMEVDRUYzRSAvKiBVbmRvU3RlcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIyRDhBNzgxNDk5N0NDRjAwRUNFRjNFIC8qIFVu
ZG9TdGVwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOUIzMkNEQTkxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9zaXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMzJDREE3MTNERjdGQTkw
MEYzNEQxMyAvKiBSZW5kZXJlZFBvc2l0aW9uLmggKi87IH07CkBAIC00NzY4LDcgKzQ3NjksNyBA
QAogCQlFMUUxQkYwMDExNUZGNkZCMDA2RjUyQ0EgLyogV2luZG93c0tleWJvYXJkQ29kZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTFCRUZGMTE1
RkY2RkIwMDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUxRTZFRUE4MEI2MjhEQjMwMDVGMkY3
MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUU2RUVBNzBCNjI4REIzMDA1RjJGNzAgLyogSlNIVE1MU2VsZWN0
RWxlbWVudC5oICovOyB9OwogCQlFMUVDMjlBMDBCQjA0QzZCMDBFQTE4N0IgLyogWFBhdGhOb2Rl
U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVD
Mjk5RTBCQjA0QzZCMDBFQTE4N0IgLyogWFBhdGhOb2RlU2V0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTFFRDhBQzMwQ0M0OUJFMDAwQkZDNTU3
IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmggKi87IH07CisJCUUxRUQ4QUMzMENDNDlCRTAwMEJGQzU1NyAv
KiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUxRjFFODMwMEMzQzJCQjkwMDZEQjM5MSAvKiBYU0xURXh0ZW5zaW9ucy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGMUU4MkUw
QzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggKi87IH07CiAJCUUxRjgwQjg4MTgz
MTcyNTIwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUY4MEI4NjE4MzE3MjUyMDA3ODg1QzMgLyogQ3J5cHRv
S2V5UGFpci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUxRjgwQjhFMTgzMTcyQjUwMDc4ODVDMyAvKiBKU0NyeXB0b0tleVBhaXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRjgwQjhDMTgzMTcyQjUw
MDc4ODVDMyAvKiBKU0NyeXB0b0tleVBhaXIuaCAqLzsgfTsKQEAgLTkyODcsNiArOTI4OCw3IEBA
CiAJCTcxMkJFNDg1MUZFODY4MTgwMDIwMzFDQyAvKiBKU0ZpbGxNb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRmlsbE1vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzEyQkU0ODYxRkU4Njg1OTAwMjAzMUNDIC8qIEpTUGxheWJhY2tEaXJlY3Rpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQbGF5YmFja0RpcmVjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTJCRTQ4NzFGRTg2ODVBMDAyMDMxQ0Mg
LyogSlNQbGF5YmFja0RpcmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1BsYXliYWNrRGlyZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNzEyREJBNDcyMUY4QUQ3OTAwOEYzNkIyIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsaW5nQ29vcmRpbmF0
b3JUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTMwMTQxRDFEQzlDMDg2
MDBDQTNBODggLyogcGlwLXN1cHBvcnQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IHBhdGggPSAicGlwLXN1cHBvcnQuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3MTMxNzEzMjFGQkU3OEM1MDBGNzU4REUgLyogQ1NTUHJvcGVydHlCbGVuZGluZ0NsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMzI0NDRGMjAxMDlEOUIwMEFF
N0ZCMiAvKiBXZWJBbmltYXRpb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNjg4Nyw2ICsxNjg4OSw3IEBACiAJCQkJMEY2MDVBRUIxNUY5NDg0ODAwNERGMEMw
IC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggKi8sCiAJCQkJMUFGNjJFRTQxNERBMjJBNzAwNDE1
NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCAqLywKIAkJCQkxQUY2MkVFNTE0REEyMkE3
MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCAqLywKKwkJCQk3MTJEQkE0NzIxRjhB
RDc5MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICovLAogCQkJCTUxQzYx
QjA4MURFNTM2RTcwMDhBMjEyRCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuY3BwICov
LAogCQkJCTUxQzYxQjA5MURFNTM2RTcwMDhBMjEyRCAvKiBTY3JvbGxpbmdNb21lbnR1bUNhbGN1
bGF0b3IuaCAqLywKIAkJCQk5M0MzOEJGQzE2NDQ3M0M3MDAwOTFFQjIgLyogU2Nyb2xsaW5nU3Rh
dGVGaXhlZE5vZGUuY3BwICovLApAQCAtMjk1NDEsNyArMjk1NDQsNiBAQAogCQkJCUY1NUIzREMy
MTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDg5NTgyNTYwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzdGNDRBODBCOUUzMjRFMDBBOUQwODEgLyogSW1hZ2VPYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQTU5QzIzMEEyMUYyOTIwNjAwNEVDOTM5IC8qIEluc3BlY3RvckNQVVByb2Zp
bGVyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENUE1OTMxMTUyNTI1RDAwMDM2RUU1MSAv
KiBJbWFnZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTFBMkYzRjE3RDdEM0FF
MDA3MjUxN0EgLyogSW1hZ2VRdWFsaXR5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDkyOTFFNEIxMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yOTYwNCw2ICsyOTYwNiw3IEBACiAJCQkJQTVCODFDQTgxRkFBNDQ2MjAwMzdE
MUU2IC8qIEluc3BlY3RvckNhbnZhc0FnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzgxQjk1
QzBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQzgxQjk1QTBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQTU5QzIzMEEyMUYyOTIwNjAwNEVDOTM5IC8qIEluc3BlY3RvckNQVVBy
b2ZpbGVyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0E5MUZBQTQ0NjIwMDM3RDFF
NiAvKiBJbnNwZWN0b3JDU1NBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEE5Q0M4MjExNkJG
OUJCNDAwRUM2NDVBIC8qIEluc3BlY3RvckNTU09NV3JhcHBlcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE1QjgxQ0FBMUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNwZWN0b3JEYXRhYmFzZUFnZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTMxMzc5LDYgKzMxMzgyLDcgQEAKIAkJCQkxQUY2MkVFODE0REEy
MkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzRFNDBEMTg3RjgyRTEwMDQ1ODgyQyAvKiBTY3JvbGxpbmdDb29yZGluYXRvcklPUy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM5MUE5OTExNjI3NDZDQjAwMjk3MzMwIC8qIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MTJEQkE0OTIxRjhBRDgzMDA4RjM2
QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFD
NjFCMEIxREU1MzZFNzAwOEEyMTJEIC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTE3REVFRTgxREU5NEIwODAwQjkxNjQ0IC8qIFNjcm9sbGluZ01v
bWVudHVtQ2FsY3VsYXRvck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDMzhCRkYxNjQ0NzND
NzAwMDkxRUIyIC8qIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDVkYjcxZjUxNmY2Zjg4ZDc0MjExNDliMTk1MjdmNGU3
YWQ4YzE3NTkuLmQyOTllZjIyYzNiNWJkYjhkOWNkYTIxNWZmMmY2NWZiNzFkOTVkZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjA4LDYgKzIwOCw3IEBACiAjaW5jbHVkZSAiVGV4dEF1
dG9TaXppbmcuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRy
YXZlcnNhbC5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3Jt
U291cmNlLmgiCiAjaW5jbHVkZSAiVHJlZVdhbGtlci5oIgogI2luY2x1ZGUgIlVuZG9NYW5hZ2Vy
LmgiCkBAIC00MTUxLDYgKzQxNTIsMTQgQEAgdm9pZCBEb2N1bWVudDo6aW52YWxpZGF0ZVJlbmRl
cmluZ0RlcGVuZGVudFJlZ2lvbnMoQW5ub3RhdGlvbnNBY3Rpb24gYW5ub3RhdGlvbnMKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHNldFRvdWNo
RXZlbnRSZWdpb25zTmVlZFVwZGF0ZSgpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQorICAgIGlmIChhdXRvKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgIGlmIChh
dXRvKiBmcmFtZVZpZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxp
bmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCisgICAgICAgICAg
ICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld0V2ZW50VHJhY2tpbmdSZWdpb25z
Q2hhbmdlZCgqZnJhbWVWaWV3KTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogfQogCiB2b2lk
IERvY3VtZW50OjppbnZhbGlkYXRlU2Nyb2xsYmFyRGVwZW5kZW50UmVnaW9ucygpCkBAIC00NTM0
LDYgKzQ1NDMsMTEgQEAgdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQoTm9kZSYgbm9k
ZSkKIAogICAgIGlmIChpczxUZXh0Pihub2RlKSkKICAgICAgICAgbV9tYXJrZXJzLT5yZW1vdmVN
YXJrZXJzKG5vZGUpOworCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGlmIChtX3Rv
dWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIG1fdG91Y2hBY3Rpb25FbGVtZW50cy0+cmVtb3Zl
KCZub2RlKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgTm9kZSogZmFsbGJhY2tGb2N1c05hdmlnYXRp
b25TdGFydGluZ05vZGVBZnRlclJlbW92YWwoTm9kZSYgbm9kZSkKQEAgLTcwOTYsNiArNzExMCwz
NCBAQCBMYXlvdXRSZWN0IERvY3VtZW50OjphYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhib29s
JiBpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVtZQogICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiB9
CiAKK0RvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6OmFic29sdXRlUmVnaW9uRm9y
Tm9kZShOb2RlKiBub2RlKQoreworICAgIFJlZ2lvbiByZWdpb247CisgICAgTGF5b3V0UmVjdCBy
b290UmVsYXRpdmVCb3VuZHM7CisgICAgYm9vbCBpbnNpZGVGaXhlZFBvc2l0aW9uID0gZmFsc2U7
CisKKyAgICBpZiAoaXM8RG9jdW1lbnQ+KG5vZGUpKSB7CisgICAgICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihub2RlKTsKKyAgICAgICAgaWYgKGRvY3VtZW50ID09
IHRoaXMpCisgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBhYnNvbHV0ZUV2ZW50SGFu
ZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKKyAgICAgICAgZWxzZSBpZiAoRWxlbWVu
dCogZWxlbWVudCA9IGRvY3VtZW50LT5vd25lckVsZW1lbnQoKSkKKyAgICAgICAgICAgIHJvb3RS
ZWxhdGl2ZUJvdW5kcyA9IGVsZW1lbnQtPmFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGluc2lk
ZUZpeGVkUG9zaXRpb24pOworICAgIH0gZWxzZSBpZiAoaXM8RWxlbWVudD4obm9kZSkpIHsKKyAg
ICAgICAgRWxlbWVudCogZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpOworICAgICAg
ICBpZiAoaXM8SFRNTEJvZHlFbGVtZW50PihlbGVtZW50KSkgeworICAgICAgICAgICAgLy8gRm9y
IHRoZSBib2R5LCBqdXN0IHVzZSB0aGUgZG9jdW1lbnQgYm91bmRzLgorICAgICAgICAgICAgLy8g
VGhlIGJvZHkgbWF5IG5vdCBjb3ZlciB0aGlzIHdob2xlIGFyZWEsIGJ1dCBpdCdzIE9LIGZvciB0
aGlzIHJlZ2lvbiB0byBiZSBhbiBvdmVyZXN0aW1hdGUuCisgICAgICAgICAgICByb290UmVsYXRp
dmVCb3VuZHMgPSBhYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9u
KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBlbGVt
ZW50LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKKyAg
ICB9CisKKyAgICBpZiAoIXJvb3RSZWxhdGl2ZUJvdW5kcy5pc0VtcHR5KCkpCisgICAgICAgIHJl
Z2lvbi51bml0ZShSZWdpb24oZW5jbG9zaW5nSW50UmVjdChyb290UmVsYXRpdmVCb3VuZHMpKSk7
CisKKyAgICByZXR1cm4gUmVnaW9uRml4ZWRQYWlyKHJlZ2lvbiwgaW5zaWRlRml4ZWRQb3NpdGlv
bik7Cit9CisKIERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6OmFic29sdXRlUmVn
aW9uRm9yRXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyZ2V0U2V0KiB0YXJnZXRzKQogewogICAg
IExheW91dERpc2FsbG93ZWRTY29wZSBsYXlvdXREaXNhbGxvd2VkU2NvcGUoTGF5b3V0RGlzYWxs
b3dlZFNjb3BlOjpSZWFzb246OlJlZW50cmFuY3lBdm9pZGFuY2UpOwpAQCAtNzEwNywyNiArNzE0
OSw5IEBAIERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIgRG9jdW1lbnQ6OmFic29sdXRlUmVnaW9u
Rm9yRXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyCiAgICAgYm9vbCBpbnNpZGVGaXhlZFBvc2l0
aW9uID0gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGtleVZhbHVlUGFpciA6ICp0YXJnZXRzKSB7
Ci0gICAgICAgIExheW91dFJlY3Qgcm9vdFJlbGF0aXZlQm91bmRzOwotCi0gICAgICAgIGlmIChp
czxEb2N1bWVudD4oa2V5VmFsdWVQYWlyLmtleSkpIHsKLSAgICAgICAgICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihrZXlWYWx1ZVBhaXIua2V5KTsKLSAgICAgICAg
ICAgIGlmIChkb2N1bWVudCA9PSB0aGlzKQotICAgICAgICAgICAgICAgIHJvb3RSZWxhdGl2ZUJv
dW5kcyA9IGFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGluc2lkZUZpeGVkUG9zaXRpb24pOwot
ICAgICAgICAgICAgZWxzZSBpZiAoRWxlbWVudCogZWxlbWVudCA9IGRvY3VtZW50LT5vd25lckVs
ZW1lbnQoKSkKLSAgICAgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBlbGVtZW50LT5h
YnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKLSAgICAgICAg
fSBlbHNlIGlmIChpczxFbGVtZW50PihrZXlWYWx1ZVBhaXIua2V5KSkgewotICAgICAgICAgICAg
RWxlbWVudCogZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KGtleVZhbHVlUGFpci5rZXkpOwot
ICAgICAgICAgICAgaWYgKGlzPEhUTUxCb2R5RWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAgICAg
ICAgICAgICAvLyBGb3IgdGhlIGJvZHksIGp1c3QgdXNlIHRoZSBkb2N1bWVudCBib3VuZHMuCi0g
ICAgICAgICAgICAgICAgLy8gVGhlIGJvZHkgbWF5IG5vdCBjb3ZlciB0aGlzIHdob2xlIGFyZWEs
IGJ1dCBpdCdzIE9LIGZvciB0aGlzIHJlZ2lvbiB0byBiZSBhbiBvdmVyZXN0aW1hdGUuCi0gICAg
ICAgICAgICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0gYWJzb2x1dGVFdmVudEhhbmRsZXJCb3Vu
ZHMoaW5zaWRlRml4ZWRQb3NpdGlvbik7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
ICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBlbGVtZW50LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJv
dW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAg
aWYgKCFyb290UmVsYXRpdmVCb3VuZHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgdGFyZ2V0UmVn
aW9uLnVuaXRlKFJlZ2lvbihlbmNsb3NpbmdJbnRSZWN0KHJvb3RSZWxhdGl2ZUJvdW5kcykpKTsK
KyAgICAgICAgYXV0byB0YXJnZXRSZWdpb25GaXhlZFBhaXIgPSBhYnNvbHV0ZVJlZ2lvbkZvck5v
ZGUoa2V5VmFsdWVQYWlyLmtleSk7CisgICAgICAgIHRhcmdldFJlZ2lvbi51bml0ZSh0YXJnZXRS
ZWdpb25GaXhlZFBhaXIuZmlyc3QpOworICAgICAgICBpbnNpZGVGaXhlZFBvc2l0aW9uIHw9IHRh
cmdldFJlZ2lvbkZpeGVkUGFpci5zZWNvbmQ7CiAgICAgfQogCiAgICAgcmV0dXJuIFJlZ2lvbkZp
eGVkUGFpcih0YXJnZXRSZWdpb24sIGluc2lkZUZpeGVkUG9zaXRpb24pOwpAQCAtODY1MSw0ICs4
Njc2LDMzIEBAIHZvaWQgRG9jdW1lbnQ6OnNldFBhaW50V29ya2xldEdsb2JhbFNjb3BlRm9yTmFt
ZShjb25zdCBTdHJpbmcmIG5hbWUsIFJlZjxQYWludFdvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShQT0lOVEVSX0VWRU5UUykKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRvdWNoQWN0aW9uRWxlbWVu
dHMoTm9kZSYgbm9kZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQoreworICAgIGlmICghbV90b3VjaEFj
dGlvbkVsZW1lbnRzKQorICAgICAgICBtX3RvdWNoQWN0aW9uRWxlbWVudHMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPEhhc2hTZXQ8Tm9kZSo+PigpOworCisgICAgYm9vbCBjaGFuZ2VkID0gZmFsc2U7CisK
KyAgICBpZiAoc3R5bGUgJiYgc3R5bGUtPnRvdWNoQWN0aW9ucygpICE9IFRvdWNoQWN0aW9uOjpB
dXRvKQorICAgICAgICBjaGFuZ2VkIHw9IG1fdG91Y2hBY3Rpb25FbGVtZW50cy0+YWRkKCZub2Rl
KS5pc05ld0VudHJ5OworICAgIGVsc2UKKyAgICAgICAgY2hhbmdlZCB8PSBtX3RvdWNoQWN0aW9u
RWxlbWVudHMtPnJlbW92ZSgmbm9kZSk7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IGlmICghY2hhbmdlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IHRoaXMt
PnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChGcmFt
ZVZpZXcqIGZyYW1lVmlldyA9IHZpZXcoKSkgeworICAgICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRp
bmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3Io
KSkKKyAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdFdmVudFRyYWNr
aW5nUmVnaW9uc0NoYW5nZWQoKmZyYW1lVmlldyk7CisgICAgfQorI2VuZGlmCit9CisjZW5kaWYK
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBiYjVjMWMw
NDY2NTRmMTlhMWE4Njk1NDRiNjMzM2U3MjZiMDcxNmQ0Li45ZTRmMGI0Zjg0MWFmYzZjOGJiOWU3
ZTJkZjUwNjhjN2FmZmRlNTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTI3NSw2ICsxMjc1
LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1RvdWNoRXZlbnRIYW5kbGVycygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCB0b3VjaEV2ZW50VGFyZ2V0c0NvbnRhaW4oTm9kZSYp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVO
VFMpCisgICAgdm9pZCB1cGRhdGVUb3VjaEFjdGlvbkVsZW1lbnRzKE5vZGUmLCBSZW5kZXJTdHls
ZSopOworICAgIGNvbnN0IEhhc2hTZXQ8Tm9kZSo+KiB0b3VjaEFjdGlvbkVsZW1lbnRzKCkgY29u
c3QgeyByZXR1cm4gbV90b3VjaEFjdGlvbkVsZW1lbnRzLmdldCgpOyB9CisjZW5kaWYKIAogICAg
IHZvaWQgZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIoTm9kZSYpOwogICAgIHZvaWQgZGlkUmVtb3Zl
VG91Y2hFdmVudEhhbmRsZXIoTm9kZSYsIEV2ZW50SGFuZGxlclJlbW92YWwgPSBFdmVudEhhbmRs
ZXJSZW1vdmFsOjpPbmUpOwpAQCAtMTI5Myw2ICsxMjk3LDcgQEAgcHVibGljOgogICAgIGNvbnN0
IEV2ZW50VGFyZ2V0U2V0KiB3aGVlbEV2ZW50VGFyZ2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fd2hl
ZWxFdmVudFRhcmdldHMuZ2V0KCk7IH0KIAogICAgIHR5cGVkZWYgc3RkOjpwYWlyPFJlZ2lvbiwg
Ym9vbD4gUmVnaW9uRml4ZWRQYWlyOworICAgIFJlZ2lvbkZpeGVkUGFpciBhYnNvbHV0ZVJlZ2lv
bkZvck5vZGUoTm9kZSopOwogICAgIFJlZ2lvbkZpeGVkUGFpciBhYnNvbHV0ZVJlZ2lvbkZvckV2
ZW50VGFyZ2V0cyhjb25zdCBFdmVudFRhcmdldFNldCopOwogCiAgICAgTGF5b3V0UmVjdCBhYnNv
bHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhib29sJikgZmluYWw7CkBAIC0xODczLDYgKzE4NzgsOSBA
QCBwcml2YXRlOgogICAgIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEV2ZW50VGFyZ2V0U2V0PiBtX3RvdWNoRXZlbnRUYXJnZXRzOworI2VuZGlmCisjaWYg
RU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PE5vZGUq
Pj4gbV90b3VjaEFjdGlvbkVsZW1lbnRzOwogI2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2
ZW50VGFyZ2V0U2V0PiBtX3doZWVsRXZlbnRUYXJnZXRzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggZWE1NDkzYTVhMmNkNWZlYWRkNjZjMGY2ZDdiMzQ1MGY3MGZjMTNhMi4uY2E0YmM5OWMz
M2M4YmM5OGYzMWFlOTRiN2MzYTdhMWQ2NDhjZGEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApA
QCAtODEsNiArODEsOCBAQAogI2luY2x1ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIlJlbmRlckZyYWdtZW50Q29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIu
aCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXll
ckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0Qm94LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlVXBkYXRlci5oIgpAQCAtMzQxOCw3ICsz
NDIwLDcgQEAgdm9pZCBFbGVtZW50OjpzZXRDb250YWluc0Z1bGxTY3JlZW5FbGVtZW50KGJvb2wg
ZmxhZykKICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CiB9CiAKLXN0
YXRpYyBFbGVtZW50KiBwYXJlbnRDcm9zc2luZ0ZyYW1lQm91bmRhcmllcyhFbGVtZW50KiBlbGVt
ZW50KQorc3RhdGljIEVsZW1lbnQqIHBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGNvbnN0
IEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIHJldHVybiBl
bGVtZW50LT5wYXJlbnRFbGVtZW50KCkgPyBlbGVtZW50LT5wYXJlbnRFbGVtZW50KCkgOiBlbGVt
ZW50LT5kb2N1bWVudCgpLm93bmVyRWxlbWVudCgpOwpAQCAtNDEyMiw0ICs0MTI0LDY2IEBAIHZv
aWQgRWxlbWVudDo6c2V0QXR0cmlidXRlU3R5bGVNYXAoUmVmPFN0eWxlUHJvcGVydHlNYXA+JiYg
bWFwKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitPcHRpb25TZXQ8
VG91Y2hBY3Rpb24+IEVsZW1lbnQ6OmNvbXB1dGVkVG91Y2hBY3Rpb25zKCkgY29uc3QKK3sKKyAg
ICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVkVG91Y2hBY3Rpb25zID0gVG91Y2hBY3Rp
b246OkF1dG87CisgICAgZm9yIChhdXRvKiBlbGVtZW50ID0gdGhpczsgZWxlbWVudDsgZWxlbWVu
dCA9IHBhcmVudENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGVsZW1lbnQpKSB7CisgICAgICAgIGF1
dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICAgICAgaWYgKCFyZW5kZXJl
cikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8gdG91Y2hBY3Rpb25zID0g
cmVuZGVyZXItPnN0eWxlKCkudG91Y2hBY3Rpb25zKCk7CisKKyAgICAgICAgLy8gT25jZSB3ZSd2
ZSBlbmNvdW50ZXJlZCB0b3VjaC1hY3Rpb246IG5vbmUsIHdlIGtub3cgdGhhdCB0aGlzIHdpbGwg
YmUgdGhlIGNvbXB1dGVkIHZhbHVlLgorICAgICAgICBpZiAodG91Y2hBY3Rpb25zID09IFRvdWNo
QWN0aW9uOjpOb25lKQorICAgICAgICAgICAgcmV0dXJuIHRvdWNoQWN0aW9uczsKKworICAgICAg
ICAvLyBJZiB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIHNvIGZhciB3YXMgImF1dG8iLCB3ZSBj
YW4ganVzdCB1c2UgdGhlIGN1cnJlbnQgZWxlbWVudCdzIHRvdWNoLWFjdGlvbi4KKyAgICAgICAg
aWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpBdXRvKSB7CisgICAgICAg
ICAgICBjb21wdXRlZFRvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uczsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCBo
YXMgdG91Y2gtYWN0aW9uOiBhdXRvIG9yIHRoZSBzYW1lIHRvdWNoLWFjdGlvbiBhcyB0aGUgY29t
cHV0ZWQgdG91Y2gtYWN0aW9uLAorICAgICAgICAvLyB3ZSBuZWVkIHRvIGtlZXAgZ29pbmcgdXAg
dGhlIGFuY2VzdHJ5IGNoYWluLgorICAgICAgICBpZiAodG91Y2hBY3Rpb25zID09IFRvdWNoQWN0
aW9uOjpBdXRvIHx8IHRvdWNoQWN0aW9ucyA9PSBjb21wdXRlZFRvdWNoQWN0aW9ucykKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIE5vdywgdGhlIGVsZW1lbnQncyB0b3VjaC1h
Y3Rpb24gYW5kIHRoZSBjb21wdXRlZCB0b3VjaC1hY3Rpb24gYXJlIGRpZmZlcmVudCBhbmQgYXJl
IG5laXRoZXIgImF1dG8iIG5vciAibm9uZSIuCisgICAgICAgIGlmIChjb21wdXRlZFRvdWNoQWN0
aW9ucyA9PSBUb3VjaEFjdGlvbjo6TWFuaXB1bGF0aW9uKSB7CisgICAgICAgICAgICAvLyBJZiB0
aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIGlzICJtYW5pcHVsYXRpb24iLCB3ZSBjYW4gdGFrZSB0
aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gtYWN0aW9uIGFzIHRoZSBuZXdseQorICAgICAgICAg
ICAgLy8gY29tcHV0ZWQgdG91Y2gtYWN0aW9uLgorICAgICAgICAgICAgY29tcHV0ZWRUb3VjaEFj
dGlvbnMgPSB0b3VjaEFjdGlvbnM7CisgICAgICAgIH0gZWxzZSBpZiAodG91Y2hBY3Rpb25zID09
IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pIHsKKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSwg
d2UgaGF2ZSBhIHJlc3RyaWN0ZWQgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIHNvIGZhci4gSWYgdGhl
IGN1cnJlbnQgZWxlbWVudCdzIHRvdWNoLWFjdGlvbiBpcyAibWFuaXB1bGF0aW9uIgorICAgICAg
ICAgICAgLy8gdGhlbiB3ZSBjYW4ganVzdCBrZWVwIGdvaW5nIGFuZCBsZWF2ZSB0aGUgY29tcHV0
ZWQgdG91Y2gtYWN0aW9uIHVudG91Y2hlZC4KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICB9CisKKyAgICAgICAgLy8gSW4gYW55IG90aGVyIGNhc2UsIHdlIGhhdmUgY29tcGV0aW5nIHJl
c3RyaWN0aXZlIHRvdWNoLWFjdGlvbiB2YWx1ZXMgdGhhdCBjYW4gb25seSB5aWVsZCAibm9uZSIu
CisgICAgICAgIHJldHVybiBUb3VjaEFjdGlvbjo6Tm9uZTsKKyAgICB9CisgICAgcmV0dXJuIGNv
bXB1dGVkVG91Y2hBY3Rpb25zOworfQorCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9X
X1NDUk9MTElORykKK1Njcm9sbGluZ05vZGVJRCBFbGVtZW50OjpuZWFyZXN0U2Nyb2xsaW5nTm9k
ZUlEVXNpbmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkgY29uc3QKK3sKKyAgICBpZiAoIXJlbmRl
cmVyKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gV2UgYXJlIG5vdCBpbnRlcmVzdGVk
IGluIHRoZSByb290LCBzbyBjaGVjayB0aGF0IHdlIGFsc28gaGF2ZSBhIHZhbGlkIHBhcmVudC4K
KyAgICBmb3IgKGF1dG8qIGxheWVyID0gcmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsgbGF5
ZXIgJiYgbGF5ZXItPnBhcmVudCgpOyBsYXllciA9IGxheWVyLT5wYXJlbnQoKSkgeworICAgICAg
ICBpZiAobGF5ZXItPmlzQ29tcG9zaXRlZCgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBzY3Jv
bGxpbmdOb2RlSUQgPSBsYXllci0+YmFja2luZygpLT5zY3JvbGxpbmdOb2RlSURGb3JSb2xlKFNj
cm9sbENvb3JkaW5hdGlvblJvbGU6OlNjcm9sbGluZykpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHNjcm9sbGluZ05vZGVJRDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQor
I2VuZGlmCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgK
aW5kZXggYzVlYjZjYjhjNDQ4YjA5OWM1ZTAxMjZhZDVhMWU3YzRlODg0MmI4Ni4uNmFlMTYxODVl
OWFjNDcxODU0YTkzNDlkNzQxZGQ0NjRhMTFmNGU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiS2V5ZnJhbWVBbmltYXRpb25PcHRpb25zLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsVG9PcHRpb25zLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNs
dWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3RNb2RlLmgi
CiAjaW5jbHVkZSAiU2ltdWxhdGVkQ2xpY2tPcHRpb25zLmgiCiAjaW5jbHVkZSAiU3R5bGVDaGFu
Z2UuaCIKQEAgLTc1LDYgKzc2LDEwIEBAIGVudW0gY2xhc3MgU2VsZWN0aW9uUmV2ZWFsTW9kZSB7
CiAgICAgRG9Ob3RSZXZlYWwKIH07CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitlbnVt
IGNsYXNzIFRvdWNoQWN0aW9uIDogdWludDhfdDsKKyNlbmRpZgorCiBjbGFzcyBFbGVtZW50IDog
cHVibGljIENvbnRhaW5lck5vZGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRWxlbWVu
dCk7CiBwdWJsaWM6CkBAIC01ODgsNiArNTkzLDEzIEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25P
cjxSZWY8V2ViQW5pbWF0aW9uPj4gYW5pbWF0ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6U3Ryb25n
PEpTQzo6SlNPYmplY3Q+JiYsIE9wdGlvbmFsPFZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUFuaW1h
dGlvbk9wdGlvbnM+PiYmKTsKICAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IGdldEFu
aW1hdGlvbnMoKTsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBPcHRpb25TZXQ8
VG91Y2hBY3Rpb24+IGNvbXB1dGVkVG91Y2hBY3Rpb25zKCkgY29uc3Q7CisjaWYgRU5BQkxFKEFD
Q0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKKyAgICBTY3JvbGxpbmdOb2RlSUQgbmVhcmVz
dFNjcm9sbGluZ05vZGVJRFVzaW5nVG91Y2hPdmVyZmxvd1Njcm9sbGluZygpIGNvbnN0OworI2Vu
ZGlmCisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBjNGZh
ZWRkM2U4ZjU0ODViMzAwYmY0M2QzYWE2ZjFlYWI5MzAxNTQ1Li4xMzBiMjYxMTJhOTIwYTdkYjYw
ZTFkZWQ0MzhlODliMjM0YTZhYTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAj
aW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTEwNyw3ICsxMDgsMjUgQEAgRXZlbnRUcmFj
a2luZ1JlZ2lvbnMgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1Jl
Z2lvbnNGb3JGcmFtZSgKICAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCk7CiAg
ICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEV2ZW50VHJhY2tpbmdSZWdpb25zKCk7
Ci0gICAgcmV0dXJuIGRvY3VtZW50LT5ldmVudFRyYWNraW5nUmVnaW9ucygpOworICAgIGF1dG8g
ZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBkb2N1bWVudC0+ZXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsK
KworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5wb2ludGVyRXZlbnRzRW5hYmxlZCgpKSB7CisgICAgICAg
IGF1dG8mIHRvdWNoQWN0aW9uRGF0YSA9IGV2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9u
RGF0YTsKKyAgICAgICAgZm9yIChhdXRvJiBub2RlIDogKmZyYW1lLmRvY3VtZW50KCktPnRvdWNo
QWN0aW9uRWxlbWVudHMoKSkgeworICAgICAgICAgICAgaWYgKCFpczxFbGVtZW50Pihub2RlKSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGF1dG8mIGVsZW1lbnQgPSBk
b3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CisgICAgICAgICAgICB0b3VjaEFjdGlvbkRhdGEuYXBw
ZW5kKHsKKyAgICAgICAgICAgICAgICBlbGVtZW50LmNvbXB1dGVkVG91Y2hBY3Rpb25zKCksCisg
ICAgICAgICAgICAgICAgZWxlbWVudC5uZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNpbmdUb3VjaE92
ZXJmbG93U2Nyb2xsaW5nKCksCisgICAgICAgICAgICAgICAgbm9kZS0+ZG9jdW1lbnQoKS5hYnNv
bHV0ZVJlZ2lvbkZvck5vZGUobm9kZSkuZmlyc3QKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gZXZlbnRUcmFja2luZ1JlZ2lvbnM7CiAjZWxz
ZQogICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKICAgICBpZiAoIWZyYW1lVmll
dykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvci5oCmluZGV4IGFjOTc2ZTNiY2EyMjZhYjViNzUwZWI2MDBiMDc3NThjNjA5NjFiMWUu
LmQ0YmI1ZjUyZDdjMTc2NzE2YTllMmRkOTA1Y2RhYzNkY2FmZTBmM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAt
MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUg
IlNjcm9sbFNuYXBPZmZzZXRzSW5mby5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCisjaW5j
bHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1R5cGVDYXN0cy5oPgpAQCAtNTEsMjcgKzUyLDYgQEAgY2xhc3MgVGV4dFN0cmVhbTsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi10eXBlZGVmIHVuc2lnbmVkIFN5bmNocm9ub3VzU2Nyb2xsaW5n
UmVhc29uczsKLXR5cGVkZWYgdWludDY0X3QgU2Nyb2xsaW5nTm9kZUlEOwotCi1lbnVtIGNsYXNz
IFNjcm9sbGluZ05vZGVUeXBlIDogdWludDhfdCB7Ci0gICAgTWFpbkZyYW1lLAotICAgIFN1YmZy
YW1lLAotICAgIEZyYW1lSG9zdGluZywKLSAgICBPdmVyZmxvdywKLSAgICBGaXhlZCwKLSAgICBT
dGlja3kKLX07Ci0KLWVudW0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JGbGFncyB7
Ci0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwgICAgICAgICAgICAg
ICAgICA9IDAsCi0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5
ZXJJRHMgICAgICAgICA9IDEgPDwgMCwKLSAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhh
dmlvckluY2x1ZGVOb2RlSURzICAgICAgICAgID0gMSA8PCAxLAotICAgIFNjcm9sbGluZ1N0YXRl
VHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVyUG9zaXRpb25zICAgPSAxIDw8IDIsCi0gICAg
U2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JEZWJ1ZyAgICAgICAgICAgICAgICAgICA9
IFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVySURzIHwgU2Nyb2xs
aW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTm9kZUlEcyB8IFNjcm9sbGluZ1N0YXRl
VHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVyUG9zaXRpb25zCi19OwotdHlwZWRlZiB1bnNp
Z25lZCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcjsKLQogY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lVmlldzsKQEAgLTg2LDQyICs2Niw2IEBAIGNsYXNz
IFZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBTY3JvbGxpbmdUcmVlOwogI2VuZGlmCiAKLWVu
dW0gY2xhc3MgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiB7Ci0gICAgU2V0LAotICAgIFNl
dEFwcHJveGltYXRlLAotICAgIFN5bmMKLX07Ci0KLXN0cnVjdCBTY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMgewotICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRhbFNjcm9sbEVsYXN0aWNpdHkg
eyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwotICAgIFNjcm9sbEVsYXN0aWNpdHkgdmVydGljYWxT
Y3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUgfTsKLQotICAgIFNjcm9sbGJh
ck1vZGUgaG9yaXpvbnRhbFNjcm9sbGJhck1vZGUgeyBTY3JvbGxiYXJBdXRvIH07Ci0gICAgU2Ny
b2xsYmFyTW9kZSB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgeyBTY3JvbGxiYXJBdXRvIH07Ci0KLSAg
ICBib29sIGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKLSAgICBib29s
IGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhciB7IGZhbHNlIH07Ci0KLSAgICBib29sIHVzZURh
cmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFycyB7IGZhbHNlIH07Ci0KLSAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJiBvdGhlcikgY29uc3QKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSA9PSBvdGhlci5ob3Jpem9u
dGFsU2Nyb2xsRWxhc3RpY2l0eQotICAgICAgICAgICAgJiYgdmVydGljYWxTY3JvbGxFbGFzdGlj
aXR5ID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eQotICAgICAgICAgICAgJiYgaG9y
aXpvbnRhbFNjcm9sbGJhck1vZGUgPT0gb3RoZXIuaG9yaXpvbnRhbFNjcm9sbGJhck1vZGUKLSAg
ICAgICAgICAgICYmIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9PSBvdGhlci52ZXJ0aWNhbFNjcm9s
bGJhck1vZGUKLSAgICAgICAgICAgICYmIGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyID09
IG90aGVyLmhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyCi0gICAgICAgICAgICAmJiBoYXNF
bmFibGVkVmVydGljYWxTY3JvbGxiYXIgPT0gb3RoZXIuaGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xs
YmFyCi0gICAgICAgICAgICAmJiB1c2VEYXJrQXBwZWFyYW5jZUZvclNjcm9sbGJhcnMgPT0gb3Ro
ZXIudXNlRGFya0FwcGVhcmFuY2VGb3JTY3JvbGxiYXJzOwotICAgIH0KLX07Ci0KLWVudW0gY2xh
c3MgVmlld3BvcnRSZWN0U3RhYmlsaXR5IHsKLSAgICBTdGFibGUsCi0gICAgVW5zdGFibGUsCi0g
ICAgQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkgLy8gVGhpcyBpbXBsaWVzIFVu
c3RhYmxlLgotfTsKLQogY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGUoUGFnZSopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBl
cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjEzN2ViZDJmZmNjOWM4ZmU0MDBjMGNlYzY3ZDYwMTY5Njc5MTRiMTUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit0eXBlZGVmIHVuc2lnbmVkIFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uczsKK3R5cGVk
ZWYgdWludDY0X3QgU2Nyb2xsaW5nTm9kZUlEOworCitlbnVtIGNsYXNzIFNjcm9sbGluZ05vZGVU
eXBlIDogdWludDhfdCB7CisgICAgTWFpbkZyYW1lLAorICAgIFN1YmZyYW1lLAorICAgIEZyYW1l
SG9zdGluZywKKyAgICBPdmVyZmxvdywKKyAgICBGaXhlZCwKKyAgICBTdGlja3kKK307CisKK2Vu
dW0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JGbGFncyB7CisgICAgU2Nyb2xsaW5n
U3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwgICAgICAgICAgICAgICAgICA9IDAsCisgICAg
U2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTGF5ZXJJRHMgICAgICAgICA9
IDEgPDwgMCwKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVOb2Rl
SURzICAgICAgICAgID0gMSA8PCAxLAorICAgIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2
aW9ySW5jbHVkZUxheWVyUG9zaXRpb25zICAgPSAxIDw8IDIsCisgICAgU2Nyb2xsaW5nU3RhdGVU
cmVlQXNUZXh0QmVoYXZpb3JEZWJ1ZyAgICAgICAgICAgICAgICAgICA9IFNjcm9sbGluZ1N0YXRl
VHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVySURzIHwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNU
ZXh0QmVoYXZpb3JJbmNsdWRlTm9kZUlEcyB8IFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2
aW9ySW5jbHVkZUxheWVyUG9zaXRpb25zCit9OwordHlwZWRlZiB1bnNpZ25lZCBTY3JvbGxpbmdT
dGF0ZVRyZWVBc1RleHRCZWhhdmlvcjsKKworZW51bSBjbGFzcyBTY3JvbGxpbmdMYXllclBvc2l0
aW9uQWN0aW9uIHsKKyAgICBTZXQsCisgICAgU2V0QXBwcm94aW1hdGUsCisgICAgU3luYworfTsK
Kworc3RydWN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyB7CisgICAgU2Nyb2xsRWxhc3RpY2l0
eSBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVsYXN0aWNpdHlOb25lIH07Cisg
ICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFz
dGljaXR5Tm9uZSB9OworCisgICAgU2Nyb2xsYmFyTW9kZSBob3Jpem9udGFsU2Nyb2xsYmFyTW9k
ZSB7IFNjcm9sbGJhckF1dG8gfTsKKyAgICBTY3JvbGxiYXJNb2RlIHZlcnRpY2FsU2Nyb2xsYmFy
TW9kZSB7IFNjcm9sbGJhckF1dG8gfTsKKworICAgIGJvb2wgaGFzRW5hYmxlZEhvcml6b250YWxT
Y3JvbGxiYXIgeyBmYWxzZSB9OworICAgIGJvb2wgaGFzRW5hYmxlZFZlcnRpY2FsU2Nyb2xsYmFy
IHsgZmFsc2UgfTsKKworICAgIGJvb2wgdXNlRGFya0FwcGVhcmFuY2VGb3JTY3JvbGxiYXJzIHsg
ZmFsc2UgfTsKKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTY3JvbGxhYmxlQXJlYVBhcmFt
ZXRlcnMmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGhvcml6b250YWxTY3Jv
bGxFbGFzdGljaXR5ID09IG90aGVyLmhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5CisgICAgICAg
ICAgICAmJiB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPT0gb3RoZXIudmVydGljYWxTY3JvbGxF
bGFzdGljaXR5CisgICAgICAgICAgICAmJiBob3Jpem9udGFsU2Nyb2xsYmFyTW9kZSA9PSBvdGhl
ci5ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZQorICAgICAgICAgICAgJiYgdmVydGljYWxTY3JvbGxi
YXJNb2RlID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsYmFyTW9kZQorICAgICAgICAgICAgJiYgaGFz
RW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgPT0gb3RoZXIuaGFzRW5hYmxlZEhvcml6b250YWxT
Y3JvbGxiYXIKKyAgICAgICAgICAgICYmIGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhciA9PSBv
dGhlci5oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIKKyAgICAgICAgICAgICYmIHVzZURhcmtB
cHBlYXJhbmNlRm9yU2Nyb2xsYmFycyA9PSBvdGhlci51c2VEYXJrQXBwZWFyYW5jZUZvclNjcm9s
bGJhcnM7CisgICAgfQorfTsKKworZW51bSBjbGFzcyBWaWV3cG9ydFJlY3RTdGFiaWxpdHkgewor
ICAgIFN0YWJsZSwKKyAgICBVbnN0YWJsZSwKKyAgICBDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50
ZXJhY3RpdmVseSAvLyBUaGlzIGltcGxpZXMgVW5zdGFibGUuCit9OworCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IDUyNDM5M2Rk
MTZhYTYzN2ZmMTYxZDY3NWI4MGZmZDk0ZTdhYTE1MDAuLjZmNzNlMGE5OGY2MWZiYTI3NzQ0YWFj
YTZlYjRhMWE5MTdjNDIwNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuY3BwCkBAIC00MDMsNiArNDAzLDI1IEBAIFN0cmluZyBTY3JvbGxpbmdU
cmVlOjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkKICAgICByZXR1cm4gdHMucmVsZWFzZSgpOwogfQog
CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorT3B0aW9uYWw8VG91Y2hBY3Rpb25EYXRhPiBT
Y3JvbGxpbmdUcmVlOjp0b3VjaEFjdGlvbkRhdGFBdFBvaW50KGNvbnN0IEludFBvaW50IHApIGNv
bnN0Cit7CisgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgaGFuZGxlIHRoZSBjYXNlIHdoZXJl
IHRoZXJlIGFyZSBtdWx0aXBsZSByZWdpb25zIG1hdGNoaW5nIHRoaXMgcG9pbnQuCisgICAgZm9y
IChhdXRvJiB0b3VjaEFjdGlvbkRhdGEgOiBtX2V2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0
aW9uRGF0YSkgeworICAgICAgICBpZiAodG91Y2hBY3Rpb25EYXRhLnJlZ2lvbi5jb250YWlucyhw
KSkKKyAgICAgICAgICAgIHJldHVybiB0b3VjaEFjdGlvbkRhdGE7CisgICAgfQorCisgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRUb3VjaEFjdGlv
bnNGb3JTY3JvbGxpbmdOb2RlSUQoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMs
IFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQpCit7CisgICAgaWYgKGF1dG8qIHNjcm9s
bGluZ1RyZWVOb2RlID0gbm9kZUZvcklEKHNjcm9sbGluZ05vZGVJRCkpCisgICAgICAgIHNjcm9s
bGluZ1RyZWVOb2RlLT5zZXRUb3VjaEFjdGlvbnModG91Y2hBY3Rpb25zKTsKK30KKyNlbmRpZgor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xM
SU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmlu
ZGV4IGVmYzY4NDE1YzM5NDMwZGY3ZjI3MDQzZmU5ODIzMzI3NzU1Njc2MzIuLjhlNzg2YjYyNTlh
OGJiODNhYzA2NTMyMzFmNzI3ZmJkZTMzNGEzZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJQ
bGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3Jv
bGxpbmdDb29yZGluYXRvci5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAi
V2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvTG9jay5oPgpAQCAtMTA0LDcgKzEwNSwxMCBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIFRyYWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCk7Ci0gICAgCisjaWYgRU5B
QkxFKFBPSU5URVJfRVZFTlRTKQorICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFRvdWNoQWN0
aW9uRGF0YT4gdG91Y2hBY3Rpb25EYXRhQXRQb2ludChjb25zdCBJbnRQb2ludCkgY29uc3Q7Cisj
ZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxF
dmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldEFjdGl2ZVNjcm9sbFNuYXBJbmRpY2VzKFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgLypo
b3Jpem9udGFsSW5kZXgqLywgdW5zaWduZWQgLyp2ZXJ0aWNhbEluZGV4Ki8pIHsgfQpAQCAtMTUx
LDYgKzE1NSw5IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIHNjcm9sbGluZ1RyZWVBc1RleHQoKTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUb3VjaEFjdGlvbnNGb3JTY3JvbGxpbmdOb2RlSUQo
T3B0aW9uU2V0PFRvdWNoQWN0aW9uPiwgU2Nyb2xsaW5nTm9kZUlEKTsKKyNlbmRpZgogICAgIAog
cHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oRmxvYXRQb2lu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5v
ZGUuaAppbmRleCAyZjQ0MTVhYzg4NTI2NjljNzMwZDI4YTY1NzUxMTMxZTViYTJjOTkzLi5hZjYz
MGIxMjk3M2RmZmJhYWY2ZmFlM2YwYTM4MzliOWZmNTNjNDAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5h
dG9yLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVOb2RlLmgiCisjaW5jbHVkZSAiVG91Y2hB
Y3Rpb24uaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UeXBl
Q2FzdHMuaD4KIApAQCAtNzEsNiArNzIsMTEgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkdW1wKFdURjo6VGV4dFN0cmVhbSYsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJl
aGF2aW9yKSBjb25zdDsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBPcHRpb25T
ZXQ8VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hBY3Rp
b25zOyB9CisgICAgdm9pZCBzZXRUb3VjaEFjdGlvbnMoT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0
b3VjaEFjdGlvbnMpIHsgbV90b3VjaEFjdGlvbnMgPSB0b3VjaEFjdGlvbnM7IH0KKyNlbmRpZgor
CiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9s
bGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIFNjcm9sbGluZ1RyZWUmIHNjcm9s
bGluZ1RyZWUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ1RyZWU7IH0KQEAgLTg2LDYgKzky
LDkgQEAgcHJpdmF0ZToKICAgICBjb25zdCBTY3JvbGxpbmdOb2RlSUQgbV9ub2RlSUQ7CiAKICAg
ICBTY3JvbGxpbmdUcmVlTm9kZSogbV9wYXJlbnQ7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQorICAgIE9wdGlvblNldDxUb3VjaEFjdGlvbj4gbV90b3VjaEFjdGlvbnM7CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcAppbmRleCA3ZTc2M2M4OTUzZGNhOGU2ZGQ3Y2FjYWQ2
MjUyNDA3YzcwYzVmODYzLi40Mzc3ODAwOTg1MjhiZWQxMDk2MmY0ODYyMDcxYjI4NjcxMDEwOTQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9u
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMu
Y3BwCkBAIC03Myw3ICs3MywxOSBAQCB2b2lkIEV2ZW50VHJhY2tpbmdSZWdpb25zOjp1bml0ZShj
b25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbgogYm9vbCBvcGVy
YXRvcj09KGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBhLCBjb25zdCBFdmVudFRyYWNraW5n
UmVnaW9ucyYgYikKIHsKICAgICByZXR1cm4gYS5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9
PSBiLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQorICAgICAgICAmJiBhLnRvdWNoQWN0aW9uRGF0YSA9PSBiLnRvdWNoQWN0aW9uRGF0YQorI2Vu
ZGlmCiAgICAgICAgICYmIGEuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25z
ID09IGIuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwogfQogCisjaWYg
RU5BQkxFKFBPSU5URVJfRVZFTlRTKQorYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRvdWNoQWN0aW9u
RGF0YSYgYSwgY29uc3QgVG91Y2hBY3Rpb25EYXRhJiBiKQoreworICAgIHJldHVybiBhLnRvdWNo
QWN0aW9ucyA9PSBiLnRvdWNoQWN0aW9ucworICAgICAgICAmJiBhLnNjcm9sbGluZ05vZGVJRCA9
PSBiLnNjcm9sbGluZ05vZGVJRAorICAgICAgICAmJiBhLnJlZ2lvbiA9PSBiLnJlZ2lvbjsKK30K
KyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaAppbmRleCAzZDU4YmE1NWVmZDYzZWQ5YmFlNDA1
MDFlMzA5Yjg2MWZjOWU5YzA1Li5jMmEyMDYzMDFhZjE3ZGMxNmNlOGZkNzllZTUzYmNiZjFjYTEy
NmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVn
aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25z
LmgKQEAgLTMwLDYgKzMwLDEyIEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQorI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKKyNpbmNsdWRlICJT
Y3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgiCisjaW5jbHVkZSAiVG91Y2hBY3Rpb24uaCIKKyNl
bmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgVHJhY2tpbmdUeXBlIDog
dWludDhfdCB7CkBAIC0zOCw2ICs0NCwxOCBAQCBlbnVtIGNsYXNzIFRyYWNraW5nVHlwZSA6IHVp
bnQ4X3QgewogICAgIFN5bmNocm9ub3VzID0gMgogfTsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0VW
RU5UUykKK3R5cGVkZWYgdWludDY0X3QgU2Nyb2xsaW5nTm9kZUlEOworc3RydWN0IFRvdWNoQWN0
aW9uRGF0YSB7CisgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlvbnMgeyBUb3Vj
aEFjdGlvbjo6QXV0byB9OworICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQ7Cisg
ICAgUmVnaW9uIHJlZ2lvbjsKK307CisKK2Jvb2wgb3BlcmF0b3I9PShjb25zdCBUb3VjaEFjdGlv
bkRhdGEmLCBjb25zdCBUb3VjaEFjdGlvbkRhdGEmKTsKK2lubGluZSBib29sIG9wZXJhdG9yIT0o
Y29uc3QgVG91Y2hBY3Rpb25EYXRhJiBhLCBjb25zdCBUb3VjaEFjdGlvbkRhdGEmIGIpIHsgcmV0
dXJuICEoYSA9PSBiKTsgfQorI2VuZGlmCisKIHN0cnVjdCBFdmVudFRyYWNraW5nUmVnaW9ucyB7
CiAgICAgLy8gUmVnaW9uIGZvciB3aGljaCBldmVudHMgY2FuIGJlIGRpc3BhdGNoZWQgd2l0aG91
dCBibG9ja2luZyBzY3JvbGxpbmcuCiAgICAgUmVnaW9uIGFzeW5jaHJvbm91c0Rpc3BhdGNoUmVn
aW9uOwpAQCAtNDYsNiArNjQsMTAgQEAgc3RydWN0IEV2ZW50VHJhY2tpbmdSZWdpb25zIHsKICAg
ICAvLyBUaGUga2V5IGlzIHRoZSBFdmVudCBOYW1lIHdpdGggYW4gYWN0aXZlIGhhbmRsZXIuCiAg
ICAgSGFzaE1hcDxTdHJpbmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0
Y2hSZWdpb25zOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIFZlY3RvcjxUb3Vj
aEFjdGlvbkRhdGE+IHRvdWNoQWN0aW9uRGF0YTsKKyNlbmRpZgorCiAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3Q7CiAKICAgICB2b2lkIHRyYW5zbGF0ZShJbnRTaXplKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAppbmRleCAxYjEzNGRmZWEzYTI1MGU1MmNmZDg2
NGM4YmIxNTczY2I4NTRjMjFmLi5hNjE3N2Y5MmE3N2RmZjAyOTRlMWZmOTdmYTIxNTExNWFiZjM0
YWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC0y
MzYsNiArMjM2LDExIEBAIEVsZW1lbnRVcGRhdGVzIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1l
bnQoRWxlbWVudCYgZWxlbWVudCkKICAgICBhdXRvIGJlZm9yZVVwZGF0ZSA9IHJlc29sdmVQc2V1
ZG9TdHlsZShlbGVtZW50LCB1cGRhdGUsIFBzZXVkb0lkOjpCZWZvcmUpOwogICAgIGF1dG8gYWZ0
ZXJVcGRhdGUgPSByZXNvbHZlUHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBQc2V1ZG9JZDo6
QWZ0ZXIpOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGlmIChSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnBvaW50ZXJFdmVudHNFbmFibGVkKCkpCisg
ICAgICAgIG1fZG9jdW1lbnQudXBkYXRlVG91Y2hBY3Rpb25FbGVtZW50cyhlbGVtZW50LCB1cGRh
dGUuc3R5bGUuZ2V0KCkpOworI2VuZGlmCisKICAgICByZXR1cm4geyBXVEZNb3ZlKHVwZGF0ZSks
IGRlc2NlbmRhbnRzVG9SZXNvbHZlLCBXVEZNb3ZlKGJlZm9yZVVwZGF0ZSksIFdURk1vdmUoYWZ0
ZXJVcGRhdGUpIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCmluZGV4IDNiMDUyOWE0YTk1OWEyM2JkNWQwNDBmNWZhMDA4YWQ3YjBmZWM3
MWYuLjU0ZDE5OWUyNWQ4NGIyNTE4M2ZkOWJmOWYwMmNiOTViNWFjOGNhNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzI5LDEwICsz
MjksNDAgQEAgT3B0aW9uYWw8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4gQXJndW1lbnRDb2RlcjxE
T01DYWNoZUVuZ2luZTo6UmVjb3JkPjo6ZGVjb2RlKEQKICAgICByZXR1cm4ge3sgV1RGTW92ZShp
ZGVudGlmaWVyKSwgV1RGTW92ZSh1cGRhdGVSZXNwb25zZUNvdW50ZXIpLCBXVEZNb3ZlKHJlcXVl
c3RIZWFkZXJzR3VhcmQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMudmFsdWUo
KSksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKHJlc3BvbnNlSGVhZGVyc0d1YXJkKSwgV1RG
TW92ZShyZXNwb25zZSksIFdURk1vdmUocmVzcG9uc2VCb2R5KSwgcmVzcG9uc2VCb2R5U2l6ZSB9
fTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK3ZvaWQgQXJndW1lbnRDb2RlcjxU
b3VjaEFjdGlvbkRhdGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVG91Y2hBY3Rp
b25EYXRhJiB0b3VjaEFjdGlvbkRhdGEpCit7CisgICAgZW5jb2RlciA8PCB0b3VjaEFjdGlvbkRh
dGEudG91Y2hBY3Rpb25zIDw8IHRvdWNoQWN0aW9uRGF0YS5zY3JvbGxpbmdOb2RlSUQgPDwgdG91
Y2hBY3Rpb25EYXRhLnJlZ2lvbjsKK30KKworT3B0aW9uYWw8VG91Y2hBY3Rpb25EYXRhPiBBcmd1
bWVudENvZGVyPFRvdWNoQWN0aW9uRGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIE9wdGlvbmFsPE9wdGlvblNldDxUb3VjaEFjdGlvbj4+IHRvdWNoQWN0aW9uczsKKyAgICBk
ZWNvZGVyID4+IHRvdWNoQWN0aW9uczsKKyAgICBpZiAoIXRvdWNoQWN0aW9ucykKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFNjcm9sbGluZ05vZGVJRD4gc2Ny
b2xsaW5nTm9kZUlEOworICAgIGRlY29kZXIgPj4gc2Nyb2xsaW5nTm9kZUlEOworICAgIGlmICgh
c2Nyb2xsaW5nTm9kZUlEKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0
aW9uYWw8UmVnaW9uPiByZWdpb247CisgICAgZGVjb2RlciA+PiByZWdpb247CisgICAgaWYgKCFy
ZWdpb24pCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgV1RG
TW92ZSgqdG91Y2hBY3Rpb25zKSwgV1RGTW92ZSgqc2Nyb2xsaW5nTm9kZUlEKSwgV1RGTW92ZSgq
cmVnaW9uKSB9fTsKK30KKyNlbmRpZgorCiB2b2lkIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2lu
Z1JlZ2lvbnM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRXZlbnRUcmFja2luZ1Jl
Z2lvbnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQogewogICAgIGVuY29kZXIgPDwgZXZlbnRUcmFj
a2luZ1JlZ2lvbnMuYXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb247CiAgICAgZW5jb2RlciA8PCBl
dmVudFRyYWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lv
bnM7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGVuY29kZXIgPDwgZXZlbnRUcmFj
a2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhOworI2VuZGlmCiB9CiAKIGJvb2wgQXJndW1lbnRD
b2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBFdmVu
dFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbnMpCkBAIC0zNDMsOCArMzczLDE2
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBFdmVudFRyYWNraW5nCiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZ2lvbj4g
ZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBWZWN0b3I8
VG91Y2hBY3Rpb25EYXRhPiB0b3VjaEFjdGlvbkRhdGE7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZSh0b3VjaEFjdGlvbkRhdGEpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKICAgICBl
dmVudFRyYWNraW5nUmVnaW9ucy5hc3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbiA9IFdURk1vdmUo
YXN5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb24pOwogICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLmV2
ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyA9IFdURk1vdmUoZXZlbnRTcGVj
aWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zKTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVO
VFMpCisgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMudG91Y2hBY3Rpb25EYXRhID0gV1RGTW92ZSh0
b3VjaEFjdGlvbkRhdGEpOworI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTkxNSw2
ICs5NTMsMTUgQEAgYm9vbCBBcmd1bWVudENvZGVyPFJlZ2lvbj46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBSZWdpb24mIHJlZ2lvbikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorT3B0aW9uYWw8
UmVnaW9uPiBBcmd1bWVudENvZGVyPFJlZ2lvbj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIFJlZ2lvbiByZWdpb247CisgICAgaWYgKCFkZWNvZGUoZGVjb2RlciwgcmVnaW9uKSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZWdpb247Cit9CisK
IHZvaWQgQXJndW1lbnRDb2RlcjxMZW5ndGg+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgTGVuZ3RoJiBsZW5ndGgpCiB7CiAgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxMZW5ndGg+Ojpl
bmNvZGUoZW5jb2RlciwgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKaW5kZXggM2FlN2U0NzVkODMzNmVmYzI3ZGNmMmM1MWY3MjJjYzJkYjk4
NDVhNi4uMmVmNWU0M2FkYjQ4OTUxODE5YzlhNzEzZDY5ZTAxM2QyMGRkNmU5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTEyMSw2ICsxMjEs
OSBAQCBzdHJ1Y3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKIHN0cnVjdCBTY3JvbGxhYmxlQXJl
YVBhcmFtZXRlcnM7CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFRleHRJbmRp
Y2F0b3JEYXRhOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK3N0cnVjdCBUb3VjaEFjdGlv
bkRhdGE7CisjZW5kaWYKIHN0cnVjdCBWaWV3cG9ydEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93
RmVhdHVyZXM7CiAgICAgCkBAIC0xOTksNiArMjAyLDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4gewogICAgIHN0YXRp
YyBPcHRpb25hbDxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiBkZWNvZGUoRGVjb2Rl
ciYpOwogfTsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK3RlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6VG91Y2hBY3Rpb25EYXRhPiB7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUb3VjaEFjdGlvbkRhdGEmKTsKKyAg
ICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6VG91Y2hBY3Rpb25EYXRhPiBkZWNvZGUoRGVjb2Rl
ciYpOworfTsKKyNlbmRpZgorCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkV2ZW50VHJhY2tpbmdSZWdpb25zPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9ucyYpOwogICAgIHN0YXRpYyBi
b29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnMmKTsKQEAg
LTMxNiw2ICszMjYsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlBhdGg+IHsKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVnaW9u
PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpSZWdp
b24mKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJlZ2lvbiYp
OworICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpSZWdpb24+IGRlY29kZShEZWNvZGVyJik7
CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6Okxlbmd0aD4g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5k
ZXggMmExYmI1MzczYTkwYmUzMThhMzhjYjVhM2UyOGIxMGFkNTkxNWFhMS4uNTQwY2Q4ZGJhZWM0
ZDFkMTdmZWNjZDU5OTdkNDE4MjE2YjBiZjIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yNTgxLDYgKzI1ODEsMTQgQEAgLSAodm9p
ZClzY3JvbGxWaWV3V2lsbEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdp
dGhWZWxvY2l0eTooQ0dQb2kKICAgICAvLyB6b29taW5nLiBXZSdsbCBhbmltYXRlIHRvIHRoZSBy
aWdodCBwbGFjZSBvbmNlIHRoZSB6b29tIGZpbmlzaGVzLgogICAgIGlmIChbc2Nyb2xsVmlldyBp
c1pvb21pbmddKQogICAgICAgICAqdGFyZ2V0Q29udGVudE9mZnNldCA9IFtzY3JvbGxWaWV3IGNv
bnRlbnRPZmZzZXRdOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBlbHNlIHsKKyAg
ICAgICAgaWYgKFtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10pCisgICAgICAg
ICAgICB0YXJnZXRDb250ZW50T2Zmc2V0LT54ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lng7
CisgICAgICAgIGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKQorICAg
ICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eSA9IHNjcm9sbFZpZXcuY29udGVudE9mZnNl
dC55OworICAgIH0KKyNlbmRpZgogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApICYmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCiAgICAgaWYgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eSogY29vcmRpbmF0b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eSgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBIZXJlLCBJJ20gZmluZGluZyB0aGUgbWF4aW11bSBo
b3Jpem9udGFsL3ZlcnRpY2FsIHNjcm9sbCBvZmZzZXRzLiBUaGVyZSdzIHByb2JhYmx5IGEgYmV0
dGVyIHdheSB0byBkbyB0aGlzLgpAQCAtMjYxOCw2ICsyNjI2LDIwIEBAIC0gKHZvaWQpc2Nyb2xs
Vmlld0RpZFNjcm9sbFRvVG9wOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiAgICAgW3NlbGYg
X2RpZEZpbmlzaFNjcm9sbGluZ107CiB9CiAKKy0gKENHUG9pbnQpX3Njcm9sbFZpZXc6KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcgYWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6KENHUG9pbnQpb2Zm
c2V0IHRyYW5zbGF0aW9uOihDR1BvaW50KXRyYW5zbGF0aW9uIHN0YXJ0UG9pbnQ6KENHUG9pbnQp
c3RhcnQgbG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9jYXRpb25JblZpZXcgaG9yaXpvbnRhbFZl
bG9jaXR5Oihpbm91dCBkb3VibGUgKilodiB2ZXJ0aWNhbFZlbG9jaXR5Oihpbm91dCBkb3VibGUg
Kil2dgoreworICAgIGlmICghW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzXSAm
JiAhW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJbllBeGlzXSkKKyAgICAgICAgcmV0dXJu
IG9mZnNldDsKKworICAgIENHUG9pbnQgYWRqdXN0ZWRDb250ZW50T2Zmc2V0ID0gQ0dQb2ludE1h
a2Uob2Zmc2V0LngsIG9mZnNldC55KTsKKyAgICBpZiAoW19jb250ZW50VmlldyBwcmV2ZW50c1Bh
bm5pbmdJblhBeGlzXSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnggPSBzdGFydC54
OworICAgIGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0luWUF4aXNdKQorICAgICAg
ICBhZGp1c3RlZENvbnRlbnRPZmZzZXQueSA9IHN0YXJ0Lnk7CisKKyAgICByZXR1cm4gYWRqdXN0
ZWRDb250ZW50T2Zmc2V0OworfQorCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRTY3JvbGw6KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcKIHsKICAgICBpZiAoIVtzZWxmIHVzZXNTdGFuZGFyZENvbnRl
bnRWaWV3XSAmJiBbX2N1c3RvbUNvbnRlbnRWaWV3IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Iod2ViX3Njcm9sbFZpZXdEaWRTY3JvbGw6KV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggYTk1OWM5M2JjNzU5ZDFjOTg2NjhjODFk
YWRhMDFlMjY3ZjM1YjliMS4uYThjNmY3YzM1YWVjY2I5MzgwZjkxNGMxOWE0ZTMzN2RhMTVhZjhm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNw
cApAQCAtMjA2LDYgKzIwNiwxOCBAQCBTdHJpbmcgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eTo6c2Nyb2xsaW5nVHJlZUFzVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitPcHRpb25hbDxUb3VjaEFjdGlv
bkRhdGE+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnRvdWNoQWN0aW9uRGF0YUF0
UG9pbnQoSW50UG9pbnQgcCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zY3JvbGxpbmdUcmVlLT50
b3VjaEFjdGlvbkRhdGFBdFBvaW50KHApOworfQorCit2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05vZGVJRChPcHRpb25TZXQ8
VG91Y2hBY3Rpb24+IHRvdWNoQWN0aW9ucywgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJ
RCkKK3sKKyAgICBtX3Njcm9sbGluZ1RyZWUtPnNldFRvdWNoQWN0aW9uc0ZvclNjcm9sbGluZ05v
ZGVJRCh0b3VjaEFjdGlvbnMsIHNjcm9sbGluZ05vZGVJRCk7Cit9CisjZW5kaWYKKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggYjMyZDc5
ZmU5Mjg5YjE0NTdjOGVhZDJkOGQzNWMzYjc5ZGFlYzk2YS4uYzBiMDJjMTllMzAyZTk1MmFmMWE5
OWYyMjZkZTVjYmZkMjhiZGFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5oCkBAIC05OCw2ICs5OCwxMSBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcg
c2Nyb2xsaW5nVHJlZUFzVGV4dCgpIGNvbnN0OwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OlRvdWNoQWN0aW9uRGF0YT4gdG91Y2hBY3Rpb25EYXRh
QXRQb2ludChXZWJDb3JlOjpJbnRQb2ludCkgY29uc3Q7CisgICAgdm9pZCBzZXRUb3VjaEFjdGlv
bnNGb3JTY3JvbGxpbmdOb2RlSUQoT3B0aW9uU2V0PFdlYkNvcmU6OlRvdWNoQWN0aW9uPiwgV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlEKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHZvaWQgY29u
bmVjdFN0YXRlTm9kZUxheWVycyhXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWUmLCBjb25zdCBS
ZW1vdGVMYXllclRyZWVIb3N0Jik7CiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0
ZUlPUy5tbQppbmRleCA0Y2M3ZTFhODdiODVhYzcwNjM3ZTE1ZjQ0Y2MxZTRmOGY5MjE5YzRjLi5j
OWU2ZDEyMjE0MjQ2ODM0OWIyN2NhYjZhMzNmNjE1M2VhZjViNjAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1t
CkBAIC02Nyw5ICs2NywyNyBAQCAtICh2b2lkKXNjcm9sbFZpZXdXaWxsQmVnaW5EcmFnZ2luZzoo
VUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRl
LT5zY3JvbGxXaWxsU3RhcnQoKTsKIH0KIAotI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAt
ICh2b2lkKXNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZp
ZXcgd2l0aFZlbG9jaXR5OihDR1BvaW50KXZlbG9jaXR5IHRhcmdldENvbnRlbnRPZmZzZXQ6KGlu
b3V0IENHUG9pbnQgKil0YXJnZXRDb250ZW50T2Zmc2V0CiB7CisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQorICAgIGlmICghW3Njcm9sbFZpZXcgaXNab29taW5nXSkgeworICAgICAgICBhdXRv
IHRvdWNoQWN0aW9ucyA9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2Rl
KCkudG91Y2hBY3Rpb25zKCk7CisgICAgICAgIGlmICh0b3VjaEFjdGlvbnMgIT0gV2ViQ29yZTo6
VG91Y2hBY3Rpb246OkF1dG8gJiYgdG91Y2hBY3Rpb25zICE9IFdlYkNvcmU6OlRvdWNoQWN0aW9u
OjpNYW5pcHVsYXRpb24pIHsKKyAgICAgICAgICAgIGJvb2wgY2FuUGFuWCA9IHRydWU7CisgICAg
ICAgICAgICBib29sIGNhblBhblkgPSB0cnVlOworICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlv
bnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OlBhblgpKSB7CisgICAgICAgICAgICAg
ICAgY2FuUGFuWCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQt
PnggPSBzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQueDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5Z
KSkgeworICAgICAgICAgICAgICAgIGNhblBhblkgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0
YXJnZXRDb250ZW50T2Zmc2V0LT55ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lnk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShDU1NfU0NS
T0xMX1NOQVApCiAgICAgQ0dGbG9hdCBob3Jpem9udGFsVGFyZ2V0ID0gdGFyZ2V0Q29udGVudE9m
ZnNldC0+eDsKICAgICBDR0Zsb2F0IHZlcnRpY2FsVGFyZ2V0ID0gdGFyZ2V0Q29udGVudE9mZnNl
dC0+eTsKIApAQCAtOTYsOCArMTE0LDggQEAgLSAodm9pZClzY3JvbGxWaWV3V2lsbEVuZERyYWdn
aW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2kKICAgICAg
ICAgfHwgb3JpZ2luYWxWZXJ0aWNhbFNuYXBQb3NpdGlvbiAhPSBfc2Nyb2xsaW5nVHJlZU5vZGVE
ZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4KCkp
IHsKICAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPmN1cnJlbnRTbmFwUG9pbnRJ
bmRpY2VzRGlkQ2hhbmdlKF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2Rl
KCkuY3VycmVudEhvcml6b250YWxTbmFwUG9pbnRJbmRleCgpLCBfc2Nyb2xsaW5nVHJlZU5vZGVE
ZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLmN1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4KCkp
OwogICAgIH0KLX0KICNlbmRpZgorfQogCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREcmFnZ2lu
ZzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aWxsRGVjZWxlcmF0ZTooQk9PTCl3aWxsRGVj
ZWxlcmF0ZQogewpAQCAtMTA1LDYgKzEyMyw5IEBAIC0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERy
YWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxEZWNlbGVyYXRlOihCT09MCiAg
ICAgICAgIF9pblVzZXJJbnRlcmFjdGlvbiA9IE5POwogICAgICAgICBfc2Nyb2xsaW5nVHJlZU5v
ZGVEZWxlZ2F0ZS0+c2Nyb2xsVmlld0RpZFNjcm9sbChzY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQs
IF9pblVzZXJJbnRlcmFjdGlvbik7CiAgICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRl
LT5zY3JvbGxEaWRFbmQoKTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCisgICAgICAgIF9z
Y3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuc2V0VG91Y2hBY3Rpb25z
KFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpBdXRvKTsKKyNlbmRpZgogICAgIH0KIH0KIApAQCAtMTE0
LDkgKzEzNSwzMCBAQCAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREZWNlbGVyYXRpbmc6KFVJU2Ny
b2xsVmlldyAqKXNjcm9sbFZpZXcKICAgICAgICAgX2luVXNlckludGVyYWN0aW9uID0gTk87CiAg
ICAgICAgIF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNj
cm9sbFZpZXcuY29udGVudE9mZnNldCwgX2luVXNlckludGVyYWN0aW9uKTsKICAgICAgICAgX3Nj
cm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbERpZEVuZCgpOworI2lmIEVOQUJMRShQT0lO
VEVSX0VWRU5UUykKKyAgICAgICAgX3Njcm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnNjcm9sbGlu
Z05vZGUoKS5zZXRUb3VjaEFjdGlvbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246OkF1dG8pOworI2Vu
ZGlmCiAgICAgfQogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorLSAoQ0dQb2ludClf
c2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyBhZGp1c3RlZE9mZnNldEZvck9m
ZnNldDooQ0dQb2ludClvZmZzZXQgdHJhbnNsYXRpb246KENHUG9pbnQpdHJhbnNsYXRpb24gc3Rh
cnRQb2ludDooQ0dQb2ludClzdGFydCBsb2NhdGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbklu
VmlldyBob3Jpem9udGFsVmVsb2NpdHk6KGlub3V0IGRvdWJsZSAqKWh2IHZlcnRpY2FsVmVsb2Np
dHk6KGlub3V0IGRvdWJsZSAqKXZ2Cit7CisgICAgYXV0byB0b3VjaEFjdGlvbnMgPSBfc2Nyb2xs
aW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9kZSgpLnRvdWNoQWN0aW9ucygpOworICAg
IGlmICh0b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246OkF1dG8gfHwgdG91Y2hB
Y3Rpb25zID09IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pCisgICAgICAgIHJl
dHVybiBvZmZzZXQ7CisKKyAgICBDR1BvaW50IGFkanVzdGVkQ29udGVudE9mZnNldCA9IENHUG9p
bnRNYWtlKG9mZnNldC54LCBvZmZzZXQueSk7CisKKyAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250
YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWCkpCisgICAgICAgIGFkanVzdGVkQ29udGVu
dE9mZnNldC54ID0gc3RhcnQueDsKKyAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250YWlucyhXZWJD
b3JlOjpUb3VjaEFjdGlvbjo6UGFuWSkpCisgICAgICAgIGFkanVzdGVkQ29udGVudE9mZnNldC55
ID0gc3RhcnQueTsKKworICAgIHJldHVybiBhZGp1c3RlZENvbnRlbnRPZmZzZXQ7Cit9CisjZW5k
aWYKKwogQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggYWQ3ZDdkYzkyODJlMzU3ZjMwZWYyNGUyODlhMTEzZGE2MzIwMWQ5
Mi4uNDBkYzMwOTQwYTFkMWQ5M2FmNWQyYjMzMWQyY2JlMmFiZDRlNGMzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTY4NCw2ICs2ODQsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rpb24oY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRp
b24pOwogICAgIHZvaWQgcmVxdWVzdEFkZGl0aW9uYWxJdGVtc0ZvckRyYWdTZXNzaW9uKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGdsb2JhbFBvc2l0aW9uKTsKICAgICB2b2lkIGRpZENvbmNsdWRlRWRpdERhdGFJbnRlcmFj
dGlvbihPcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4pOworI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKKyAgICBib29sIGlzU2Nyb2xsaW5nT3Jab29taW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc1Njcm9sbGluZ09yWm9vbWluZzsgfQorI2VuZGlmCiAjZW5kaWYKICNlbmRpZgog
I2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBkNTA4YTNlNGJhN2Nk
N2FjODIxODZlNjlhNmMyNzVhNWEwYzg0MzdlLi41ZDllYjY5NmE2OTQwNjUwMjU4M2I0OWVlZTE0
OTI0Y2VkYjBhYzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0xOTYsNiArMTk2LDEwIEBAIHN0cnVjdCBX
S0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgUmV0YWluUHRyPFVJV2ViVG91Y2hFdmVudHNHZXN0
dXJlUmVjb2duaXplcj4gX3RvdWNoRXZlbnRHZXN0dXJlUmVjb2duaXplcjsKIAogICAgIEJPT0wg
X2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5OworI2lmIEVOQUJMRShQT0lOVEVSX0VW
RU5UUykKKyAgICBCT09MIF9wcmV2ZW50c1Bhbm5pbmdJblhBeGlzOworICAgIEJPT0wgX3ByZXZl
bnRzUGFubmluZ0luWUF4aXM7CisjZW5kaWYKIAogICAgIFJldGFpblB0cjxXS1N5bnRoZXRpY0Ns
aWNrVGFwR2VzdHVyZVJlY29nbml6ZXI+IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcjsKICAg
ICBSZXRhaW5QdHI8X1VJV2ViSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI+IF9o
aWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcjsKQEAgLTM0OSw2ICszNTMsMTAgQEAg
c3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiBmb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVdlYkZv
cm1BY2Nlc3NvcnkgKmZvcm1BY2Nlc3NvcnlWaWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBVSVRleHRJbnB1dEFzc2lzdGFudEl0ZW0gKmlucHV0QXNzaXN0YW50SXRlbUZvcldl
YlZpZXc7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBCT09MIHByZXZlbnRzUGFubmluZ0luWEF4aXM7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgcHJldmVudHNQYW5uaW5nSW5ZQXhpczsKKyNlbmRpZgogCiAj
aWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25n
KSBVSVZpZXcgPFdLRm9ybUNvbnRyb2w+ICpkYXRhTGlzdFRleHRTdWdnZXN0aW9uc0lucHV0Vmll
dzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCmluZGV4IGIyOGYxNzdjYTE0ODVmNzVlMTRjY2NmMTU4Mjg0YzI5NjJi
NGI3OTEuLjU4MzhkMjA1MWU4N2UwMTViNGI0YWI0MzE5ZTExYzRkZTc2OGRmYzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQpAQCAtMTI5LDYgKzEyOSwxMSBAQAogI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dL
UGxhdGZvcm1GaWxlVXBsb2FkUGFuZWwubW0+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lOVEVS
X0VWRU5UUykKKyNpbXBvcnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV0FU
Q0hPUykKIAogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXYXRjaFN1cHBvcnQpIDxXS0ZvY3Vz
ZWRGb3JtQ29udHJvbFZpZXdEZWxlZ2F0ZSwgV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVy
RGVsZWdhdGUsIFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVyRGVsZWdhdGU+CkBAIC02MDgs
NiArNjEzLDE4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNGb2N1c2VkRWxlbWVudChXZWJLaXQ6
OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24gZm9jdXNlZEVsCiAgICAgcmV0dXJuIChmb2N1c2Vk
RWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlICE9IFdlYktpdDo6SW5wdXRUeXBlOjpOb25l
KTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKy0gKEJPT0wpcHJldmVudHNQYW5u
aW5nSW5YQXhpcworeworICAgIHJldHVybiBfcHJldmVudHNQYW5uaW5nSW5YQXhpczsKK30KKwor
LSAoQk9PTClwcmV2ZW50c1Bhbm5pbmdJbllBeGlzCit7CisgICAgcmV0dXJuIF9wcmV2ZW50c1Bh
bm5pbmdJbllBeGlzOworfQorI2VuZGlmCisKIC0gKFdLRm9ybUlucHV0U2Vzc2lvbiAqKV9mb3Jt
SW5wdXRTZXNzaW9uCiB7CiAgICAgcmV0dXJuIF9mb3JtSW5wdXRTZXNzaW9uLmdldCgpOwpAQCAt
ODU0LDYgKzg3MSwxMCBAQCAtICh2b2lkKWNsZWFudXBJbnRlcmFjdGlvbgogICAgIF9oYXNTZXRV
cEludGVyYWN0aW9ucyA9IE5POwogICAgIF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNv
bnMgPSB7IH07CiAgICAgX2lzWm9vbWluZ1RvUmV2ZWFsRm9jdXNlZEVsZW1lbnQgPSBOTzsKKwor
I2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBbc2VsZiBfcmVzZXRQYW5uaW5nUHJldmVu
dGlvbkZsYWdzXTsKKyNlbmRpZgogfQogCiAtICh2b2lkKV9yZW1vdmVEZWZhdWx0R2VzdHVyZVJl
Y29nbml6ZXJzCkBAIC0xMTIxLDE2ICsxMTQyLDU0IEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRz
UmVjb2duaXplZDooVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJl
CiAgICAgV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50IG5hdGl2ZVdlYlRvdWNoRXZlbnQobGFz
dFRvdWNoRXZlbnQpOwogICAgIG5hdGl2ZVdlYlRvdWNoRXZlbnQuc2V0Q2FuUHJldmVudE5hdGl2
ZUdlc3R1cmVzKCFfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3VzbHkgfHwgW2dlc3R1cmVS
ZWNvZ25pemVyIGlzRGVmYXVsdFByZXZlbnRlZF0pOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQorICAgIGlmIChhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5KCkpIHsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiB0b3VjaFBv
aW50IDogbmF0aXZlV2ViVG91Y2hFdmVudC50b3VjaFBvaW50cygpKSB7CisgICAgICAgICAgICBp
ZiAodG91Y2hQb2ludC5waGFzZSgpICE9IFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFByZXNzZWQpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlm
IChhdXRvIHRvdWNoQWN0aW9uRGF0YSA9IHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT50b3VjaEFjdGlv
bkRhdGFBdFBvaW50KHRvdWNoUG9pbnQubG9jYXRpb24oKSkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAodG91Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246
Ok5vbmUpCisgICAgICAgICAgICAgICAgICAgIFtfdG91Y2hFdmVudEdlc3R1cmVSZWNvZ25pemVy
IHNldERlZmF1bHRQcmV2ZW50ZWQ6WUVTXTsKKyAgICAgICAgICAgICAgICBlbHNlIGlmICghdG91
Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rpb246
Ok1hbmlwdWxhdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8gc2Nyb2xsaW5n
Tm9kZUlEID0gdG91Y2hBY3Rpb25EYXRhLT5zY3JvbGxpbmdOb2RlSUQpCisgICAgICAgICAgICAg
ICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2V0VG91Y2hBY3Rpb25zRm9yU2Nyb2xs
aW5nTm9kZUlEKHRvdWNoQWN0aW9uRGF0YS0+dG91Y2hBY3Rpb25zLCB0b3VjaEFjdGlvbkRhdGEt
PnNjcm9sbGluZ05vZGVJRCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucy5jb250YWlu
cyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGluY2hab29tKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfd2ViVmlldy5zY3JvbGxWaWV3LnBpbmNoR2VzdHVyZVJlY29nbml6ZXIuZW5hYmxl
ZCA9IE5POworICAgICAgICAgICAgICAgICAgICAgICAgX3ByZXZlbnRzUGFubmluZ0luWEF4aXMg
PSAhdG91Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hB
Y3Rpb246OlBhblgpOworICAgICAgICAgICAgICAgICAgICAgICAgX3ByZXZlbnRzUGFubmluZ0lu
WUF4aXMgPSAhdG91Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6
VG91Y2hBY3Rpb246OlBhblkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorI2VuZGlmCisKICAgICBpZiAo
X2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5KQogICAgICAgICBfcGFnZS0+aGFuZGxl
VG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNoRXZlbnQpOwogICAgIGVsc2UK
ICAgICAgICAgX3BhZ2UtPmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRv
dWNoRXZlbnQpOwogCi0gICAgaWYgKG5hdGl2ZVdlYlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNB
cmVSZWxlYXNlZCgpKQorICAgIGlmIChuYXRpdmVXZWJUb3VjaEV2ZW50LmFsbFRvdWNoUG9pbnRz
QXJlUmVsZWFzZWQoKSkgewogICAgICAgICBfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3Vz
bHkgPSBOTzsKKworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICAgICAgaWYgKCFfcGFn
ZS0+aXNTY3JvbGxpbmdPclpvb21pbmcoKSkKKyAgICAgICAgICAgIFtzZWxmIF9yZXNldFBhbm5p
bmdQcmV2ZW50aW9uRmxhZ3NdOworI2VuZGlmCisgICAgfQogI2VuZGlmCiB9CiAKKyNpZiBFTkFC
TEUoUE9JTlRFUl9FVkVOVFMpCistICh2b2lkKV9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3MK
K3sKKyAgICBfcHJldmVudHNQYW5uaW5nSW5YQXhpcyA9IE5POworICAgIF9wcmV2ZW50c1Bhbm5p
bmdJbllBeGlzID0gTk87Cit9CisjZW5kaWYKKwogLSAodm9pZClfaW5zcGVjdG9yTm9kZVNlYXJj
aFJlY29nbml6ZWQ6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogewog
ICAgIEFTU0VSVChfaW5zcGVjdG9yTm9kZVNlYXJjaEVuYWJsZWQpOwpAQCAtMjE5NSw2ICsyMjU0
LDEwIEBAIC0gKHZvaWQpX2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZwogICAgIH0KICAgICBfcGFn
ZS0+c2V0SXNTY3JvbGxpbmdPclpvb21pbmcoZmFsc2UpOwogCisjaWYgRU5BQkxFKFBPSU5URVJf
RVZFTlRTKQorICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOworI2VuZGlm
CisKICNpZiBQTEFURk9STShXQVRDSE9TKQogICAgIFtfZm9jdXNlZEZvcm1Db250cm9sVmlldyBl
bmdhZ2VGb2N1c2VkRm9ybUNvbnRyb2xOYXZpZ2F0aW9uXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE2MzM3
ZjM5MGNjZjg3NDYyNmE4YjVkYWFkMWQ2NzEyZjhmNjA4MTUuLmI5NDY5OTEyOWY2NzE5NWI4M2Ni
MWNlZDI3ZDk3YTU2ZTk2MmQ1MmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOS0wMS0yNCAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIExpbWl0IHVzZXIt
YWdlbnQgaW50ZXJhY3Rpb25zIGJhc2VkIG9uIHRoZSB0b3VjaC1hY3Rpb24gcHJvcGVydHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ0NworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNDcyODM4NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHNlcmllcyBvZiB0ZXN0cyB0aGF0IGNo
ZWNrIHRoYXQgdGhlICJub25lIiwgInBhbi14IiwgInBhbi15IiBhbmQgInBpbmNoLXpvb20iIHZh
bHVlcyBoYXZlIHRoZSBleHBlY3RlZAorICAgICAgICBpbXBhY3Qgb24gcGFnZSBwYW5uaW5nIG9u
IGlPUy4KKworICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZs
b3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMv
aW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1v
bi1wYXJlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbDogQWRkZWQuCisgICAgICAgICog
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXBhbi14LXBhbi15Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9z
L3RvdWNoLWFjdGlvbi1wYW4teC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGFuLXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21p
bmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3Jv
bGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbDogQWRkZWQuCisK
IDIwMTktMDEtMjUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGltcHJvdmUgaW52YWxpZCBBdWRpdC9SZWNvcmRpbmcgSlNPTiBlcnJv
ciBtZXNzYWdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyN2U4YWY4MWJk
OTg0YzhjMzQwNzA1NTFhZjViNjFlOTI3MGZmODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBu
b25lIG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVy
Zmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzAwNzI5MTAyNDVlZjU3NTg3ZWJlOWM1MmM5ZmFiYzA1
MzJkMWMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rp
b246IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4gYSBzY3JvbGxhYmxlIGNvbnRhaW5lciB1c2lu
ZyAnLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoJyBwcmV2ZW50cyBzY3JvbGxpbmcg
b2YgdGhhdCBjb250YWluZXIuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2guaHRt
bCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92
ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllOTYxNGZmZWZjZWZiZWFm
ZTY3NDE3NGI1ODE1NDFjMGYyMzUxNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmct
dG91Y2guaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxzdHlsZT4KKworI3Njcm9s
bGluZy1jb250YWluZXIgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAwOwor
ICAgIHRvcDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAgICBv
dmVyZmxvdzogc2Nyb2xsOworICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsK
K30KKworI3Njcm9sbGluZy1jb250YWluZXIgPiBkaXYgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICBsZWZ0OiAwOworICAgIHRvcDogMDsKKyAgICB3aWR0aDogMjAwJTsKKyAgICBoZWln
aHQ6IDIwMCU7CisgICAgdG91Y2gtYWN0aW9uOiBub25lOworfQorCis8L3N0eWxlPgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGlkPSJzY3JvbGxpbmctY29udGFpbmVyIj48ZGl2PjwvZGl2PjwvZGl2
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisn
dXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3QodGVzdCA9PiB7CisgICAgY29uc3Qgc2Nyb2xsaW5n
Q29udGFpbmVyID0gZG9jdW1lbnQuYm9keS5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICB1aS5zd2lw
ZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0NvbnRhaW5lci5zY3JvbGxMZWZ0LCAwLCAiVGhl
IHNjcm9sbGluZyBjb250YWluZXIgd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIpOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0NvbnRhaW5lci5zY3JvbGxUb3AsIDAsICJU
aGUgc2Nyb2xsaW5nIGNvbnRhaW5lciB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7
CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5n
IHRvdWNoLWFjdGlvbjogbm9uZSBpbiBjb250ZW50IGhvc3RlZCBpbiBhIHNjcm9sbGFibGUgY29u
dGFpbmVyIHVzaW5nICctd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2gnIHByZXZlbnRz
IHNjcm9sbGluZyBvZiB0aGF0IGNvbnRhaW5lci4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9u
LWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY3NTFiZGQ3YzM0NjJhMWUwODZmZmM3
M2YzNTNlZDQ0ZGFmN2ZiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACisKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IG5v
bmUgb24gYW4gaWZyYW1lIGFuZCBpbnRlcmFjdGluZyB3aXRoIGl0cyBjb250ZW50IHByZXZlbnRz
IHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kOTI3ZWE4ZGI0NjE3NDM0MWM1MWEwYzRjYzUyNTNlNWI2MjA3YTJkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24t
aWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CisKK2lmcmFt
ZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDA7CisgICAgdG9wOiAwOwor
ICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIHRvdWNoLWFjdGlvbjog
bm9uZTsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZT48L2lmcmFtZT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3Vz
ZSBzdHJpY3QnOworCithc3luY190ZXN0KHRlc3QgPT4geworICAgIGNvbnN0IGlmcmFtZSA9IGRv
Y3VtZW50LmJvZHkuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgY29uc3QgdGFyZ2V0ID0gaWZyYW1l
LmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpKTsKKyAgICB0YXJnZXQuc2V0QXR0cmlidXRlKCJzdHlsZSIsIGAKKyAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwOworICAgICAgICB0b3A6IDA7CisgICAg
ICAgIHdpZHRoOiAyMDAlOworICAgICAgICBoZWlnaHQ6IDIwMCU7CisgICAgYCk7CisKKyAgICB1
aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4g
eworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdl
IHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRo
ZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3Rpbmcg
dGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBpZnJhbWUgYW5kIGludGVyYWN0
aW5nIHdpdGggaXRzIGNvbnRlbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9u
LXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMmIxMzA0
OTY4YTI5MWVhZGQxMzczOTUyNmZjMGQ4Y2JlMmEyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5nIHRv
dWNoLWFjdGlvbjogbm9uZSBvbiBhIHBhcmVudCBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xs
aW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTQ4MDc5M2Y3
OTBhNWM4NjI0MTc2OWY5OTMxZThmNDgwY2YzYjc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwK
QEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3QnOwor
Cit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRhcmdl
dCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4IjsK
KyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50
LmJvZHkuc3R5bGUudG91Y2hBY3Rpb24gPSAibm9uZSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1
MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xs
ZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlP
ZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7Cisg
ICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRv
dWNoLWFjdGlvbjogbm9uZSBvbiBhIHBhcmVudCBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xs
aW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tbm9uZS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLW5vbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDAwYjgzYmI5OGU0YWU1ZGRjOWE1OWM5ODY3
MmE2YTAzMjljZThiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBw
eCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQu
Ym9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVp
Z2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAibm9uZSI7
CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRo
ZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwg
IlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9s
bGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwg
IlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBlbGVtZW50IHBy
ZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44N2U3ODM3OWRmNDVhNzE3NzQ3NmM4YmU3YjVkNjQwNDBmMGFhY2RlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBh
bi14LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0
dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3Jv
bGxpbmcgaW4gdGhlIHktYXhpcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJlOTdiZGUzMjdmYzI5YzNhZTRiNzgwYTExMTY0N2NkNjhmZDVmODIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRl
c3RpbmcgdGhhdCBzZXR0aW5nICd0b3VjaC1hY3Rpb246IHBhbi14IHBhbi15JyBvbiBhbiBlbGVt
ZW50IGFsbG93cyBwYWdlIHNjcm9sbGluZyBpbiBib3RoIGF4ZXMuIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRt
bCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4t
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUyMjkxYTRkOGM2N2MyMjE1MWMyMjlkODM3ZDcxYThmM2QwMGFi
MTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIs
IGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9k
eS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0
ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXggcGFu
LXkiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9
KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMod2luZG93LnBhZ2VYT2Zm
c2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAg
IGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBz
Y3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsK
K30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyAndG91Y2gtYWN0aW9uOiBwYW4teCBwYW4teScgb24g
YW4gZWxlbWVudCBhbGxvd3MgcGFnZSBzY3JvbGxpbmcgaW4gYm90aCBheGVzLiIpOworCis8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgu
aHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNiOTIwNWY3ZWY1ZGEyY2FiNzAwMTljZmI4ZWE3MGY5NWQ3N2M2ZjcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcGFuLXguaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
CisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDog
IjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53
aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBw
eCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXgiOworCisgICAgdWku
c3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsK
KyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhlIHBh
Z2Ugd2FzIHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
d2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUg
eS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRo
YXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFn
ZSBzY3JvbGxpbmcgaW4gdGhlIHktYXhpcy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2ZmNjU4YzM4NjQyMjY3MTVhZTY3ZWE0MmZiYjkyODY4MDY5Mjg0OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1wYW4teS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0
IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ug
c2Nyb2xsaW5nIGluIHRoZSB4LWF4aXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbCBiL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOTBkMzk2
MDFmYmVlMTdiZmQxYjk1ZjI0M2U5ZmFiYzUyMjc5NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbApAQCAtMCww
ICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3Rhcmdl
dF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0
KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRv
Y3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUu
dG91Y2hBY3Rpb24gPSAicGFuLXkiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9
LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3
aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB4
LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwg
MCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0
LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246
IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHgtYXhp
cy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gt
YWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21p
bmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5NGU2NzYxNWUyYTU5OThmMzMzM2Y5MGZkYTMw
ZGQxZGNhNWE0NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9u
OiBwaW5jaC16b29tIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugem9vbWluZy4gCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16
b29tLWFsbG93cy16b29taW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJk
YTYzYzk0MjllMWFhMTM5MDI2ZWQ0MzEzY2VhNmQ1ZDQ3ODc5NzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1h
bGxvd3Mtem9vbWluZy5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBj
b250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
KworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiNDAwcHgiLCBoZWlnaHQ6
ICI0MDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUu
d2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAw
cHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBpbmNoLXpvb20iOworCisg
ICAgdWkucGluY2hPdXQoeyB4OiA1MCwgeTogNTAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAwLCBz
Y2FsZTogMC41IH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3aW5k
b3cuaW50ZXJuYWxzLnBhZ2VTY2FsZUZhY3RvcigpLCAxLCAiVGhlIHBhZ2Ugd2FzIHNjYWxlZC4i
KTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNldHRp
bmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugem9v
bWluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZl
bnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBjODViOWFhNTUyZGY5Yjcx
ZDlhZTQzOTc0MDUwZTBjMjg5OTgwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9sbGlu
Zy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRp
bmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBz
Y3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbCBiL0xheW91dFRl
c3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNj
cm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyMzQxYzYyMTUwN2EzZWU4MzczNGQyNzcxM2Q4NGJm
ZjU1OWQ3ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbApAQCAtMCww
ICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3Rhcmdl
dF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0
KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRv
Y3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUu
dG91Y2hBY3Rpb24gPSAicGluY2gtem9vbSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTog
MTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1
YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4g
dGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQs
IDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAg
IHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFj
dGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIp
OworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360338</attachid>
            <date>2019-01-28 06:38:15 -0800</date>
            <delta_ts>2019-01-28 06:56:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193447-20190128153813.patch</filename>
            <type>text/plain</type>
            <size>88585</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdjOTBhYzAwNDFjMTUz
MjZhMzQ0MGEyMGU2NDg2Y2FjMDQ5NmE4NS4uZDEzZTI3MTEyMmJhOGYwZTE2MWMxZjE1MTVkZDg0
MTA3MzJmZGVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE5LTAxLTI4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2Vu
dCBpbnRlcmFjdGlvbnMgYmFzZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSBvbiBpT1MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ0Nwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDcyODM4NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugbm93IGNvbXBpbGUgYSBsaXN0IG9mIGVsZW1l
bnRzIHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJvcGVydHkgdGhhdCBpcyB1cGRhdGVk
IHdoZW5ldmVyIGFuIGVsZW1lbnQgaGFzIGl0cyBzdHlsZSBjaGFuZ2VkCisgICAgICAgIG9yIGlz
IHJlbW92ZWQgZnJvbSBpdHMgZG9jdW1lbnQuIFdoZW4gdGhlIGNvbnRlbnQgb2YgdGhhdCBsaXN0
IGNoYW5nZXMsIHdlIGluZm9ybSB0aGUgc2Nyb2xsaW5nIGNvb3JkaW5hdG9yIHN1Y2ggdGhhdCBp
dCBjYW4gY29tcGlsZQorICAgICAgICBhIGxpc3Qgb2YgVG91Y2hBY3Rpb25EYXRhIHN0cnVjdHVy
ZXMgd2hpY2ggaG9sZCB0aGUgdG91Y2gtYWN0aW9uIHZhbHVlLCB0aGUgSUQgb2YgdGhlIG5lYXJl
c3Qgc2Nyb2xsIG5vZGUgYW5kIHRoZSBSZWdpb24gY29udGFpbmluZworICAgICAgICB0aGUgYm91
bmRzIG9mIGVhY2ggb2YgdGhvc2UgZWxlbWVudHMgdG8gc2VuZCBpdCB1cCB0byB0aGUgVUkgcHJv
Y2VzcyBhbG9uZyB3aXRoIHRvdWNoIHJlZ2lvbnMuIENvbXB1dGluZyB0aGUgbGlzdCBvZiBhbGxv
d2VkIHRvdWNoCisgICAgICAgIGFjdGlvbnMgZm9yIGEgZ2l2ZW4gZWxlbWVudCBhY2NvdW50cyBm
b3Igbm90IG9ubHkgdGhlIHZhbHVlIHNwZWNpZmllZCBkaXJlY3RseSBvbiB0aGF0IGVsZW1lbnQn
cyBzdHlsZSwgYnV0IGFsc28gaW4gaXRzIGhpZXJhcmNoeSwKKyAgICAgICAgY3Jvc3NpbmcgYW55
IGZyYW1lIGJvdW5kYXJ5IHRvd2FyZHMgdGhlIHRvcC1sZXZlbCBkb2N1bWVudCdzIHJvb3Qgbm9k
ZS4KKworICAgICAgICBUZXN0czogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
aW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLmh0bWwKKyAgICAgICAgICAgICAgIHBvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS5odG1sCisgICAgICAgICAgICAg
ICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbAorICAg
ICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbAorICAg
ICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LXBhbi15Lmh0
bWwKKyAgICAgICAgICAgICAgIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC5o
dG1sCisgICAgICAgICAgICAgICBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXku
aHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNo
LXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbAorICAgICAgICAgICAgICAgcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLmh0bWwKKworICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogVXBkYXRlIGhvdyBjZXJ0
YWluIGhlYWRlcnMgYXJlIGV4cG9zZWQgc3VjaCB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgZnJvbSBX
ZWJLaXQuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjppbnZhbGlkYXRlUmVuZGVyaW5nRGVwZW5kZW50UmVnaW9ucyk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQpOiBFbnN1cmUgYSBub2RlIHRoYXQg
aXMgYmVpbmcgcmVtb3ZlZCBmcm9tIHRoaXMgZG9jdW1lbnQgaXMgbm8gbG9uZ2VyIGxpc3RlZCBp
biBpdHMKKyAgICAgICAgbGlzdCBvZiBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0
aW9uIHByb3BlcnR5LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFic29sdXRlRXZlbnRS
ZWdpb25Gb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphYnNvbHV0ZVJlZ2lv
bkZvckV2ZW50VGFyZ2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlVG91
Y2hBY3Rpb25FbGVtZW50cyk6IENyZWF0ZSBhIGxpc3Qgb2YgZWxlbWVudHMgd2l0aCBhIG5vbi1h
dXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSBpZiBvbmUgZG9lc24ndAorICAgICAgICBleGlzdCB5
ZXQgYW5kIHVwZGF0ZSBpdCB0byBhZGQgdGhlIGdpdmVuIGVsZW1lbnQgaWYgaXQgY29udGFpbnMg
YSBub24tYXV0byB0b3VjaC1hY3Rpb24sIG9yIHJlbW92ZSBpdCBpZiBpdCBkb2Vzbid0LiBJZiB0
aGUgY29udGVudHMKKyAgICAgICAgb2YgdGhhdCBsaXN0IGNoYW5nZWQgYXMgYSByZXN1bHQsIHRo
ZSBzY3JvbGxpbmcgY29vcmRpbmF0b3IgaXMgaW5mb3JtZWQuCisgICAgICAgICogZG9tL0RvY3Vt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6IGNvbnN0KToKKyAgICAgICAgKiBk
b20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJlbnRDcm9zc2luZ0ZyYW1lQm91
bmRhcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpjb21wdXRlZFRvdWNoQWN0aW9u
cyBjb25zdCk6IFByb3ZpZGUgdGhlIGxpc3Qgb2YgYWxsb3dlZCB0b3VjaCBhY3Rpb25zIGFjY291
bnRpbmcgZm9yIHRoZSAidG91Y2gtYWN0aW9uIiBwcm9wZXJ0eQorICAgICAgICBzcGVjaWZpZWQg
b24gdGhpcyBlbGVtZW50IGFuZCBhbGwgb2YgaXRzIGhpZXJhcmNoeSwgY3Jvc3NpbmcgZnJhbWUg
Ym91bmRhcnkuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpuZWFyZXN0U2Nyb2xsaW5nTm9k
ZUlEVXNpbmdUb3VjaE92ZXJmbG93U2Nyb2xsaW5nIGNvbnN0KTogUHJvdmlkZSB0aGUgU2Nyb2xs
aW5nTm9kZUlELCBpZiBhbnksIGZvciB0aGUgbmVhcmVzdCBzY3JvbGxpbmcgbm9kZQorICAgICAg
ICBmb3IgdGhhdCBlbGVtZW50LiBUaGlzIHdpbGwgYWxsb3cgdGhlIFVJIHByb2Nlc3MgdG8gaWRl
bnRpZnkgd2hpY2ggc2Nyb2xsIHZpZXcncyBiZWhhdmlvciB0byBjdXN0b21pemUgdG8gcmVmbGVj
dCB0aGUgZWxlbWVudCdzIGFsbG93ZWQKKyAgICAgICAgdG91Y2ggYWN0aW9ucy4KKyAgICAgICAg
KiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjphYnNv
bHV0ZUV2ZW50VHJhY2tpbmdSZWdpb25zRm9yRnJhbWUgY29uc3QpOiBDb21wdXRlIHRoZSByZWdp
b24gZm9yIGFsbCBlbGVtZW50cyB3aXRoIGEgbm9uLWF1dG8gdG91Y2gtYWN0aW9uIHByb3BlcnR5
CisgICAgICAgIHRocm91Z2hvdXQgdGhlIHByb3ZpZGVkIGZyYW1lIGFuZCBhbGwgb2YgaXRzIHN1
YmZyYW1lcy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5o
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOjpvcGVyYXRvcj09
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29y
ZGluYXRvclR5cGVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWFQ
YXJhbWV0ZXJzOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnRvdWNo
QWN0aW9uRGF0YUF0UG9pbnQgY29uc3QpOiBRdWVyeSB0aGUgbGlzdCBvZiBUb3VjaEFjdGlvbkRh
dGEgb2JqZWN0cyBmb3IgYSBtYXRjaCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcG9pbnQuIFJpZ2h0
CisgICAgICAgIG5vdyB0aGUgbG9naWMgaXMgcHJldHR5IGNydWRlLCBzdG9wcGluZyBhdCB0aGUg
Zmlyc3QgVG91Y2hBY3Rpb25EYXRhIGZvciB3aGljaCB0aGUgcmVnaW9uIGNvbnRhaW5zIHRoZSBw
cm92aWRlZCBwb2ludCwgYnV0IGZ1dHVyZSBwYXRjaGVzIHdpbGwKKyAgICAgICAgYWNjb3VudCBm
b3Igb3ZlcmxhcCBhbmQgbmVzdGluZy4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiBwbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVn
aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6CisgICAgICAgICogc3R5bGUv
U3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNv
bHZlcjo6cmVzb2x2ZUVsZW1lbnQpOiBVcGRhdGUgdGhlIGxpc3Qgb2YgZWxlbWVudHMgd2l0aCBh
IG5vbi1hdXRvIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSB3aGVuIGFuIGVsZW1lbnQncyBzdHlsZSBj
aGFuZ2VzLgorCiAyMDE5LTAxLTI3ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdh
bGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggV1BFL0dUSyBkZWJ1ZyBidWlsZHMg
YWZ0ZXIgcjI0MDU1NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkOTNmOTIyMjg5MmMzYjVmYTdhMTE5NTYxMWE1NTJk
N2U0MzBiYmE3Li45NDJlMjgyZmMzMzNhYTk4MjVhOWQ3MDI1NTg0ZjIyNDY2OGVmMzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE5LTAxLTI4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0
c0BhcHBsZS5jb20+CisKKyAgICAgICAgTGltaXQgdXNlci1hZ2VudCBpbnRlcmFjdGlvbnMgYmFz
ZWQgb24gdGhlIHRvdWNoLWFjdGlvbiBwcm9wZXJ0eSBvbiBpT1MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MzQ0NworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNDcyODM4NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSGFuZGxlIHRoZSAibm9uZSIsICJwYW4teCIsICJwYW4teSIgYW5kICJwaW5jaC16
b29tIiB2YWx1ZXMgZm9yIHRoZSB0b3VjaC1hY3Rpb24gcHJvcGVydHkgYnkgcXVlcnlpbmcgdGhl
IHNjcm9sbGluZyB0cmVlIHdoZW5ldmVyIGEgdG91Y2ggYmVnaW5zCisgICAgICAgIHRvIGlkZW50
aWZ5IHdoZXRoZXIgaXRzIHBvaW50IGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHJlZ2lvbiBvZiBh
biBlbGVtZW50IHdpdGggYSBub24tYXV0byB0b3VjaC1hY3Rpb24gcHJvcGVydHkuIElmIGl0IGlz
LCB3ZSB1c2UgdGhlIGxpc3Qgb2YKKyAgICAgICAgcGVybWl0dGVkIHRvdWNoIGFjdGlvbnMgc3Vj
aCB0byB0aGVuIGN1c3RvbWl6ZSB0aGUgYmVoYXZpb3Igb2YgdGhlIG5lYXJlc3Qgc2Nyb2xsIHZp
ZXcgdG8gcGFuIG9yIHpvb20gb25seSBhcyBpbnN0cnVjdGVkLgorCisgICAgICAgICogU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
VG91Y2hBY3Rpb25EYXRhPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxU
b3VjaEFjdGlvbkRhdGE+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEV2
ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxFdmVudFRyYWNraW5nUmVnaW9ucz46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8UmVnaW9uPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBzY3JvbGxWaWV3V2lsbEVuZERyYWdnaW5nOndpdGhWZWxvY2l0
eTp0YXJnZXRDb250ZW50T2Zmc2V0Ol0pOiBBY2NvdW50IGZvciBwYW5uaW5nIGNvbnN0cmFpbnRz
IHNldCBvbiB0aGUgY29udGVudCB2aWV3IHRvIHByZXZlbnQgZGVjZWxlcmF0aW9uCisgICAgICAg
IHRvIHBhbiB0aGUgdmlldyBpZiBpdCBvdWdodCBub3QuCisgICAgICAgICgtW1dLV2ViVmlldyBf
c2Nyb2xsVmlldzphZGp1c3RlZE9mZnNldEZvck9mZnNldDp0cmFuc2xhdGlvbjpzdGFydFBvaW50
OmxvY2F0aW9uSW5WaWV3Omhvcml6b250YWxWZWxvY2l0eTp2ZXJ0aWNhbFZlbG9jaXR5Ol0pOiBJ
bXBsZW1lbnQgYW4gYWRkaXRpb25hbAorICAgICAgICBVSVNjcm9sbFZpZXcgZGVsZWdhdGlvbiBt
ZXRob2QgdG8gYXBwbHkgdGhlIHBhbm5pbmcgY29uc3RyYWludHMgc2V0IG9uIHRoZSBjb250ZW50
IHZpZXcgd2hpbGUgcGFubmluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojp0b3VjaEFjdGlvbkRhdGFBdFBvaW50IGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
dG91Y2hBY3Rpb25EYXRhRm9yU2Nyb2xsTm9kZUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2V0VG91Y2hEYXRhRm9yVG91Y2hJZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6Y2xlYXJUb3VjaERhdGFGb3JUb3VjaElkZW50aWZpZXIpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlRGVsZWdhdGVJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tOgorICAgICAgICAo
LVtXS1Njcm9sbGluZ05vZGVTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld1dpbGxFbmREcmFn
Z2luZzp3aXRoVmVsb2NpdHk6dGFyZ2V0Q29udGVudE9mZnNldDpdKTogQXBwbHkgdGhlIHNhbWUg
bG9naWMgYXMgaW4gV0tXZWJWaWV3LgorICAgICAgICAoLVtXS1Njcm9sbGluZ05vZGVTY3JvbGxW
aWV3RGVsZWdhdGUgX3Njcm9sbFZpZXc6YWRqdXN0ZWRPZmZzZXRGb3JPZmZzZXQ6dHJhbnNsYXRp
b246c3RhcnRQb2ludDpsb2NhdGlvbkluVmlldzpob3Jpem9udGFsVmVsb2NpdHk6dmVydGljYWxW
ZWxvY2l0eTpdKTogQXBwbHkKKyAgICAgICAgdGhlIHNhbWUgbG9naWMgYXMgaW4gV0tXZWJWaWV3
LgorICAgICAgICAoV2ViS2l0OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9T
Ojp0b3VjaEFjdGlvbkRhdGEgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc1Njcm9sbGluZ09yWm9vbWlu
ZyBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJblhBeGlzXSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5ZQXhpc10pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFudXBJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF93ZWJUb3VjaEV2ZW50c1JlY29nbml6ZWQ6XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgX2hhbmRsZVRvdWNoQWN0aW9uc0ZvclRvdWNoRXZlbnQ6XSk6IEFzIHdlIHByb2Nl
c3MgdG91Y2hlcywgY2hlY2sgd2hldGhlciB0aGVyZSBhcmUgdG91Y2ggYWN0aW9ucyBzZXQgZm9y
IHRoaXMgdG91Y2gncyBwb2ludHMnIGxvY2F0aW9ucy4gQmFzZWQKKyAgICAgICAgb24gdGhvc2Ug
dG91Y2ggYWN0aW9ucywgZWl0aGVyIHNldERlZmF1bHRQcmV2ZW50ZWQgb24gdGhlIF90b3VjaEV2
ZW50R2VzdHVyZVJlY29nbml6ZXIgaWYgdGhlIHRvdWNoIGFjdGlvbiBpcyAibm9uZSIgb3Igc2Vs
ZWN0aXZlbHkgZGlzYWJsZSBwYW5uaW5nIGFuZCB6b29taW5nLgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBfZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nXSk6CisKIDIwMTgtMTItMTUgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgbWFueSB1c2VzIG9m
IFN0cmluZzo6Zm9ybWF0IHdpdGggbW9yZSB0eXBlLXNhZmUgYWx0ZXJuYXRpdmVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2Vk
MTI1ZGJkNTE0NWFkZDkyMzViZTNlNjE4ZWFlNTRkYmUwYWFkNy4uNjA1MTRlY2M5ZTE3Mjg2ZWQz
OTdjNWJkZjQ3YzU0NjFhYjllOWFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA5Niw2ICsyMDk2LDcgQEAKIAkJNzEyQkU0
ODMxRkU4NjVERDAwMjAzMUNDIC8qIEZpbGxNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTJCRTQ4MTFGRTg2NUQ0MDAyMDMxQ0MgLyogRmlsbE1v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3
MTJCRTQ4ODFGRTg2ODZBMDAyMDMxQ0MgLyogSlNGaWxsTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEyQkU0ODUxRkU4NjgxODAwMjAzMUNDIC8q
IEpTRmlsbE1vZGUuaCAqLzsgfTsKIAkJNzEyQkU0ODkxRkU4Njg3NTAwMjAzMUNDIC8qIEpTUGxh
eWJhY2tEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxMkJFNDg2MUZFODY4NTkwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9uLmgg
Ki87IH07CisJCTcxMkRCQTQ5MjFGOEFEODMwMDhGMzZCMiAvKiBTY3JvbGxpbmdDb29yZGluYXRv
clR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MTJEQkE0NzIxRjhBRDc5MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzE3MTM0
MUZCRTc4REIwMEY3NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTMxNzEzMjFGQkU3OEM1MDBG
NzU4REUgLyogQ1NTUHJvcGVydHlCbGVuZGluZ0NsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMzI0NDUxMjAxMDlEQTUwMEFFN0ZCMiAv
KiBXZWJBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcxMzI0NDRGMjAxMDlEOUIwMEFFN0ZCMiAvKiBXZWJBbmltYXRpb25V
dGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3MTM0NDk2RTE0Njk0MUIzMDA3MjAzMTIgLyogU1ZHTGVuZ3RoQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzEzNDQ5NkMxNDY5NDFC
MzAwNzIwMzEyIC8qIFNWR0xlbmd0aENvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQxOCw3ICsyNDE5LDcgQEAKIAkJODM0NDc2RUYx
REE1QkM1RTAwMkI2RUQyIC8qIEpTU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5QjMwMTFEQTVBNTFFMDBGRkU4RjYgLyog
SlNTY3JvbGxUb09wdGlvbnMuaCAqLzsgfTsKIAkJODM0OEJGQUMxQjg1NzI5ODAwOTEyRjM2IC8q
IENsYXNzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODM0OEJGQUExQjg1NzI5NTAwOTEyRjM2IC8qIENsYXNzQ29sbGVjdGlvbi5oICov
OyB9OwogCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0REZBQ0MxRjdE
QUU1NjAwQzI3MjVCIC8qIFNoYXJlZFN0cmluZ0hhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4MzUyMEM3RTFBNzFCRkNDMDA2QkQyQUEgLyog
Q1NTRm9udEZhbWlseS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODM1MjBDN0QxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCAqLzsgfTsK
KwkJODM1MjBDN0UxQTcxQkZDQzAwNkJEMkFBIC8qIENTU0ZvbnRGYW1pbHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNTIwQzdEMUE3MUJGQ0MwMDZC
RDJBQSAvKiBDU1NGb250RmFtaWx5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODM1OENCNzAxQzUzMjc3NTAwRTBDMkQ4IC8qIEpTWE1MRG9jdW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjU3
MEFEMUM1MzI2OEUwMDdGRDZDQiAvKiBKU1hNTERvY3VtZW50LmggKi87IH07CiAJCTgzNUQyRDc4
MUY1RjFGQkQwMDE0MURFRCAvKiBIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1RDJENzUxRjVGMUZCODAw
MTQxREVEIC8qIEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggKi87IH07CiAJCTgzNUQzNjM3
MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0b20uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAv
KiBTdHlsZUJ1aWxkZXJDdXN0b20uaCAqLzsgfTsKQEAgLTI5MDQsNyArMjkwNSw3IEBACiAJCTk5
MjAzOTgzMThCOTVCQzYwMEIzOUFGOSAvKiBVc2VySW5wdXRCcmlkZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MjAzOTgxMThCOTVCQzYwMEIzOUFG
OSAvKiBVc2VySW5wdXRCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5OTZFNTlERjFERjAxMjhEMDA2NjEyQjkgLyogTmF2aWdhdG9yV2Vi
RHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTZFNTlEQzFERjAwRDkwMDA2NjEyQjkgLyogTmF2aWdhdG9yV2ViRHJpdmVyLmggKi87IH07CiAJ
CTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBNTI4RTgyMTdEN0Y1MkYwMEFB
OTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk5QUIxRjM4MDE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUFCMUYzN0UxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEuaCAqLzsgfTsKKwkJOUFCMUYzODAxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OUIyNERFOEUxNTE5NEI5NTAwQzU5QzI3IC8qIEhUTUxCRElFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjI0REU4QzE1MTk0Qjk1MDBDNTlD
MjcgLyogSFRNTEJESUVsZW1lbnQuaCAqLzsgfTsKIAkJOUIyRDhBNzkxNDk5N0NDRjAwRUNFRjNF
IC8qIFVuZG9TdGVwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QjJEOEE3ODE0OTk3Q0NGMDBFQ0VGM0UgLyogVW5kb1N0ZXAuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjMyQ0RBOTEzREY3RkE5MDBG
MzREMTMgLyogUmVuZGVyZWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUIzMkNEQTcxM0RGN0ZBOTAwRjM0RDEzIC8qIFJlbmRlcmVkUG9z
aXRpb24uaCAqLzsgfTsKQEAgLTQ3ODIsNyArNDc4Myw3IEBACiAJCUUxRTFCRjAwMTE1RkY2RkIw
MDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFMUJFRkYxMTVGRjZGQjAwNkY1MkNBIC8qIFdpbmRv
d3NLZXlib2FyZENvZGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTFFNkVFQTgwQjYyOERCMzAwNUYyRjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTZF
RUE3MEI2MjhEQjMwMDVGMkY3MCAvKiBKU0hUTUxTZWxlY3RFbGVtZW50LmggKi87IH07CiAJCUUx
RUMyOUEwMEJCMDRDNkIwMEVBMTg3QiAvKiBYUGF0aE5vZGVTZXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUMyOTlFMEJCMDRDNkIwMEVBMTg3QiAv
KiBYUGF0aE5vZGVTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQlFMUVEOEFDMzBDQzQ5QkUwMDBCRkM1NTcgLyogQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAq
LzsgfTsKKwkJRTFFRDhBQzMwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFw
cGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGMUU4MzAw
QzNDMkJCOTAwNkRCMzkxIC8qIFhTTFRFeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUYxRTgyRTBDM0MyQkI5MDA2REIzOTEgLyogWFNM
VEV4dGVuc2lvbnMuaCAqLzsgfTsKIAkJRTFGODBCODgxODMxNzI1MjAwNzg4NUMzIC8qIENyeXB0
b0tleVBhaXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRjgwQjg2MTgzMTcyNTIwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTFGODBCOEUxODMxNzJCNTAw
Nzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFGODBCOEMxODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5
UGFpci5oICovOyB9OwpAQCAtOTMwNiw2ICs5MzA3LDcgQEAKIAkJNzEyQkU0ODUxRkU4NjgxODAw
MjAzMUNDIC8qIEpTRmlsbE1vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNGaWxsTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MTJCRTQ4NjFGRTg2
ODU5MDAyMDMxQ0MgLyogSlNQbGF5YmFja0RpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1BsYXliYWNrRGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcxMkJFNDg3MUZFODY4NUEwMDIwMzFDQyAvKiBKU1BsYXliYWNrRGlyZWN0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGxheWJhY2tEaXJl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MTJEQkE0NzIxRjhBRDc5
MDA4RjM2QjIgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcxMzAxNDFEMURDOUMwODYwMENBM0E4OCAvKiBwaXAtc3VwcG9y
dC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJwaXAtc3VwcG9y
dC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxMzE3MTMyMUZCRTc4QzUwMEY3
NThERSAvKiBDU1NQcm9wZXJ0eUJsZW5kaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENTU1Byb3BlcnR5QmxlbmRpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzEzMjQ0NEYyMDEwOUQ5QjAwQUU3RkIyIC8qIFdlYkFuaW1hdGlvblV0
aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBbmltYXRpb25V
dGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2OTA2LDYgKzE2OTA4
LDcgQEAKIAkJCQkwRjYwNUFFQjE1Rjk0ODQ4MDA0REYwQzAgLyogU2Nyb2xsaW5nQ29uc3RyYWlu
dHMuaCAqLywKIAkJCQkxQUY2MkVFNDE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwICovLAogCQkJCTFBRjYyRUU1MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdD
b29yZGluYXRvci5oICovLAorCQkJCTcxMkRCQTQ3MjFGOEFENzkwMDhGMzZCMiAvKiBTY3JvbGxp
bmdDb29yZGluYXRvclR5cGVzLmggKi8sCiAJCQkJNTFDNjFCMDgxREU1MzZFNzAwOEEyMTJEIC8q
IFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5jcHAgKi8sCiAJCQkJNTFDNjFCMDkxREU1MzZF
NzAwOEEyMTJEIC8qIFNjcm9sbGluZ01vbWVudHVtQ2FsY3VsYXRvci5oICovLAogCQkJCTkzQzM4
QkZDMTY0NDczQzcwMDA5MUVCMiAvKiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHAgKi8sCkBA
IC0xNzI3Myw4ICsxNzI3Niw4IEBACiAJCTI5QTgxMjA0MEZCQjlCNDEwMDUxMDI5MyAvKiBhY2Nl
c3NpYmlsaXR5ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQkyOUFFMjEyOTIxQUI5RUNCMDA4NjkyODMgLyogaXNvbGF0ZWR0cmVlICovLAogCQkJCUFBQTcy
OEVGMTZEMUQ4QkMwMEQzQkJDNiAvKiBpb3MgKi8sCisJCQkJMjlBRTIxMjkyMUFCOUVDQjAwODY5
MjgzIC8qIGlzb2xhdGVkdHJlZSAqLywKIAkJCQkyOUE4MTIwNTBGQkI5QjUyMDA1MTAyOTMgLyog
bWFjICovLAogCQkJCTI5ODFDQTlEMTMxODIyRUMwMEQxMkYyQSAvKiBBY2Nlc3NpYmlsaXR5QVJJ
QUdyaWQuY3BwICovLAogCQkJCTI5QTgxMjE2MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmls
aXR5QVJJQUdyaWQuaCAqLywKQEAgLTE3MzcxLDEwICsxNzM3NCwxMCBAQAogCQkyOUFFMjEyOTIx
QUI5RUNCMDA4NjkyODMgLyogaXNvbGF0ZWR0cmVlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKLQkJCQkyOUFFMjEyQjIxQUI5RUVCMDA4NjkyODMgLyogQVhJc29s
YXRlZFRyZWUuaCAqLywKIAkJCQkyOUFFMjEyQzIxQUI5RUVCMDA4NjkyODMgLyogQVhJc29sYXRl
ZFRyZWUuY3BwICovLAotCQkJCTI5QUUyMTMzMjFBQkE0OEEwMDg2OTI4MyAvKiBBWElzb2xhdGVk
VHJlZU5vZGUuaCAqLywKKwkJCQkyOUFFMjEyQjIxQUI5RUVCMDA4NjkyODMgLyogQVhJc29sYXRl
ZFRyZWUuaCAqLywKIAkJCQkyOUFFMjEzNDIxQUJBNDhBMDA4NjkyODMgLyogQVhJc29sYXRlZFRy
ZWVOb2RlLmNwcCAqLywKKwkJCQkyOUFFMjEzMzIxQUJBNDhBMDA4NjkyODMgLyogQVhJc29sYXRl
ZFRyZWVOb2RlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlzb2xhdGVkdHJlZTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yODI2Miw2ICsyODI2NSw3IEBACiAJCQkJNzZDREQyRjUx
MTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyOUFDQjIxMjE0M0U3MTI4MDA2QkNBNUYgLyogQWNjZXNzaWJpbGl0eU1vY2tP
YmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5QTgxMjM2MEZCQjlDMUQwMDUxMDI5MyAvKiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkyOTM2QkY1QzIxRDY5RTRC
MDA0QThGQzkgLyogQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTQwOUM5ODUxMTZEMERERDAwNzE5N0JEIC8qIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0lu
ZGljYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjlBODEyMzkwRkJCOUMxRDAwNTEwMjkzIC8q
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQzRGNkVC
MTEwOEY5QTUwMDk5RDBEQiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmggaW4gSGVhZGVycyAq
LywKQEAgLTI4NDMxLDYgKzI4NDM1LDggQEAKIAkJCQkwN0Y0RTkzMzIwQjM1ODdGMDAyRTM4MDMg
LyogQVZGb3VuZGF0aW9uTUlNRVR5cGVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QzMzZG
NjIxN0Y5RjY0NzAwREREQ0QwIC8qIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3MDM2M0U2MTgxQTFDREMwMEMwNzRBNSAvKiBBVlZpZGVvQ2FwdHVyZVNv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjlBRTIxMkQyMUFCOUVFQjAwODY5MjgzIC8qIEFY
SXNvbGF0ZWRUcmVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyOUFFMjEzNTIxQUJBNDhBMDA4Njky
ODMgLyogQVhJc29sYXRlZFRyZWVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDVDMjMxRTE5
OTVCNzNCMDBBNkUyRTMgLyogQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkyOUE4MTIzODBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdl
SW50ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI5NTczLDcgKzI5NTc5LDYgQEAKIAkJCQlGNTVC
M0RDMjEyNTFGMTJEMDAzRUYyNjkgLyogSW1hZ2VJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA4OTU4MjU2MEU4NTdBN0UwMEY4MkM4MyAvKiBJbWFnZUxvYWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM3RjQ0QTgwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE1OUMyMzBBMjFGMjkyMDYwMDRFQzkzOSAvKiBJbnNwZWN0b3JDUFVQ
cm9maWxlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDVBNTkzMTE1MjUyNUQwMDAzNkVF
NTEgLyogSW1hZ2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUxQTJGM0YxN0Q3
RDNBRTAwNzI1MTdBIC8qIEltYWdlUXVhbGl0eUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQ5MjkxRTRCMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01vZGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjk2MzYsNiArMjk2NDEsNyBAQAogCQkJCUE1QjgxQ0E4MUZBQTQ0NjIw
MDM3RDFFNiAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM4
MUI5NUMwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUM4MUI5NUEwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCUE1OUMyMzBBMjFGMjkyMDYwMDRFQzkzOSAvKiBJbnNwZWN0b3JD
UFVQcm9maWxlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNBOTFGQUE0NDYyMDAz
N0QxRTYgLyogSW5zcGVjdG9yQ1NTQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTRBOUNDODIx
MTZCRjlCQjQwMEVDNjQ1QSAvKiBJbnNwZWN0b3JDU1NPTVdyYXBwZXJzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNUI4MUNBQTFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9yRGF0YWJhc2VBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDAwNCw3ICszMDAxMCw2IEBACiAJCQkJMUFFMkFBOTgw
QTFDREQyRDAwQjQyQjI1IC8qIEpTSFRNTEltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgwRTdFOTcwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODM2QjA5NTYxRjVGMzREOTAwM0MzNzAyIC8qIEpTSFRNTElucHV0RWxl
bWVudEVudHJpZXNBUEkuaCBpbiBIZWFkZXJzICovLAotCQkJCTI5MzZCRjVDMjFENjlFNEIwMDRB
OEZDOSAvKiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNjE0OEE3OTEyRTQxRTNCMDA0NEE3ODQgLyogSlNIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFFMkFCMjIwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTExhYmVsRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFMkFCMjQwQTFDRTYzQjAwQjQyQjI1IC8qIEpT
SFRNTExlZ2VuZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE0MTIsNiArMzE0MTcsNyBA
QAogCQkJCTFBRjYyRUU4MTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGluYXRvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNEU0MEQxODdGODJFMTAwNDU4ODJDIC8qIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9ySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzkxQTk5MTE2Mjc0NkNCMDAy
OTczMzAgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCTcx
MkRCQTQ5MjFGOEFEODMwMDhGMzZCMiAvKiBTY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUM2MUIwQjFERTUzNkU3MDA4QTIxMkQgLyogU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdERUVFODFERTk0QjA4MDBC
OTE2NDQgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5M0MzOEJGRjE2NDQ3M0M3MDAwOTFFQjIgLyogU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGUu
aCBpbiBIZWFkZXJzICovLApAQCAtMzE0NjAsNyArMzE0NjYsNiBAQAogCQkJCTUxNDA1Qzg5MTkw
QjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0NEI0QkI0MTQxNjUwRDcwMDJCMUQ4QiAvKiBTZWxlY3RvckNoZWNrZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQzMkQzRkU4MThBODY1ODQwMEQ3REMwMyAvKiBTZWxlY3RvckNoZWNrZXJU
ZXN0RnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLywKLQkJCQkyOUFFMjEzNTIxQUJBNDhBMDA4Njky
ODMgLyogQVhJc29sYXRlZFRyZWVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNkI5OTk5NzE4
MDRENTQyMDBEMDExMjEgLyogU2VsZWN0b3JDb21waWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE1MDcxNTgxNjg1MDY3MzAwQzNDN0IzIC8qIFNlbGVjdG9yRmlsdGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MzEwN0JFMjE4Q0MxOURFMDBDQzE4RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFw
LmggaW4gSGVhZGVycyAqLywKQEAgLTMyMzk2LDcgKzMyNDAxLDYgQEAKIAkJCQk5NzdFMkUwRjEy
RjBGQzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNTQxNkZFNjE4ODEwRUY4MDAwOUZDNUYgLyogWW91VHViZUVtYmVkU2hhZG93RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0E1NTE1RjUxOTE4MzBBMzAwOTY4N0QyIC8qIFlvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMjlBRTIxMkQyMUFCOUVFQjAw
ODY5MjgzIC8qIEFYSXNvbGF0ZWRUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEz
N0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggNmQ0NDNlNzg2NmY0OGEzMTE1N2FkYWIxYjk0NmY0ZGYyMTE5ODBlOS4uNjEyYzM1
ZmQ0NTRiOGUxNzMwODkzOGY0NTAzNzEyNWRiYjU1MDY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC0yMDgsNiArMjA4LDcgQEAKICNpbmNsdWRlICJUZXh0QXV0b1NpemluZy5oIgogI2lu
Y2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHROb2RlVHJhdmVyc2FsLmgiCisjaW5j
bHVkZSAiVG91Y2hBY3Rpb24uaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKICNpbmNs
dWRlICJUcmVlV2Fsa2VyLmgiCiAjaW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKQEAgLTQxNTEsNiAr
NDE1MiwxNSBAQCB2b2lkIERvY3VtZW50OjppbnZhbGlkYXRlUmVuZGVyaW5nRGVwZW5kZW50UmVn
aW9ucyhBbm5vdGF0aW9uc0FjdGlvbiBhbm5vdGF0aW9ucwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpICYmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgc2V0VG91Y2hFdmVudFJlZ2lvbnNOZWVk
VXBkYXRlKCk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBpZiAo
YXV0byogcGFnZSA9IHRoaXMtPnBhZ2UoKSkgeworICAgICAgICBpZiAoYXV0byogZnJhbWVWaWV3
ID0gdmlldygpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
PSBwYWdlLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICAgICAgICAgIHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdFdmVudFRyYWNraW5nUmVnaW9uc0NoYW5nZWQoKmZyYW1l
Vmlldyk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBEb2N1bWVudDo6aW52
YWxpZGF0ZVNjcm9sbGJhckRlcGVuZGVudFJlZ2lvbnMoKQpAQCAtNDUzNCw2ICs0NTQ0LDExIEBA
IHZvaWQgRG9jdW1lbnQ6Om5vZGVXaWxsQmVSZW1vdmVkKE5vZGUmIG5vZGUpCiAKICAgICBpZiAo
aXM8VGV4dD4obm9kZSkpCiAgICAgICAgIG1fbWFya2Vycy0+cmVtb3ZlTWFya2Vycyhub2RlKTsK
KworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBpZiAobV90b3VjaEFjdGlvbkVsZW1l
bnRzICYmIGlzPEVsZW1lbnQ+KG5vZGUpKQorICAgICAgICBtX3RvdWNoQWN0aW9uRWxlbWVudHMt
PnJlbW92ZSgmZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpOworI2VuZGlmCiB9CiAKIHN0YXRpYyBO
b2RlKiBmYWxsYmFja0ZvY3VzTmF2aWdhdGlvblN0YXJ0aW5nTm9kZUFmdGVyUmVtb3ZhbChOb2Rl
JiBub2RlKQpAQCAtNzA5Niw2ICs3MTExLDM0IEBAIExheW91dFJlY3QgRG9jdW1lbnQ6OmFic29s
dXRlRXZlbnRIYW5kbGVyQm91bmRzKGJvb2wmIGluY2x1ZGVzRml4ZWRQb3NpdGlvbkVsZW1lCiAg
ICAgcmV0dXJuIExheW91dFJlY3QoKTsKIH0KIAorRG9jdW1lbnQ6OlJlZ2lvbkZpeGVkUGFpciBE
b2N1bWVudDo6YWJzb2x1dGVFdmVudFJlZ2lvbkZvck5vZGUoTm9kZSYgbm9kZSkKK3sKKyAgICBS
ZWdpb24gcmVnaW9uOworICAgIExheW91dFJlY3Qgcm9vdFJlbGF0aXZlQm91bmRzOworICAgIGJv
b2wgaW5zaWRlRml4ZWRQb3NpdGlvbiA9IGZhbHNlOworCisgICAgaWYgKGlzPERvY3VtZW50Pihu
b2RlKSkgeworICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihub2Rl
KTsKKyAgICAgICAgaWYgKCZkb2N1bWVudCA9PSB0aGlzKQorICAgICAgICAgICAgcm9vdFJlbGF0
aXZlQm91bmRzID0gYWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoaW5zaWRlRml4ZWRQb3NpdGlv
bik7CisgICAgICAgIGVsc2UgaWYgKEVsZW1lbnQqIGVsZW1lbnQgPSBkb2N1bWVudC5vd25lckVs
ZW1lbnQoKSkKKyAgICAgICAgICAgIHJvb3RSZWxhdGl2ZUJvdW5kcyA9IGVsZW1lbnQtPmFic29s
dXRlRXZlbnRIYW5kbGVyQm91bmRzKGluc2lkZUZpeGVkUG9zaXRpb24pOworICAgIH0gZWxzZSBp
ZiAoaXM8RWxlbWVudD4obm9kZSkpIHsKKyAgICAgICAgYXV0byYgZWxlbWVudCA9IGRvd25jYXN0
PEVsZW1lbnQ+KG5vZGUpOworICAgICAgICBpZiAoaXM8SFRNTEJvZHlFbGVtZW50PihlbGVtZW50
KSkgeworICAgICAgICAgICAgLy8gRm9yIHRoZSBib2R5LCBqdXN0IHVzZSB0aGUgZG9jdW1lbnQg
Ym91bmRzLgorICAgICAgICAgICAgLy8gVGhlIGJvZHkgbWF5IG5vdCBjb3ZlciB0aGlzIHdob2xl
IGFyZWEsIGJ1dCBpdCdzIE9LIGZvciB0aGlzIHJlZ2lvbiB0byBiZSBhbiBvdmVyZXN0aW1hdGUu
CisgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBhYnNvbHV0ZUV2ZW50SGFuZGxlckJv
dW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBy
b290UmVsYXRpdmVCb3VuZHMgPSBlbGVtZW50LmFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGlu
c2lkZUZpeGVkUG9zaXRpb24pOworICAgIH0KKworICAgIGlmICghcm9vdFJlbGF0aXZlQm91bmRz
LmlzRW1wdHkoKSkKKyAgICAgICAgcmVnaW9uLnVuaXRlKFJlZ2lvbihlbmNsb3NpbmdJbnRSZWN0
KHJvb3RSZWxhdGl2ZUJvdW5kcykpKTsKKworICAgIHJldHVybiBSZWdpb25GaXhlZFBhaXIocmVn
aW9uLCBpbnNpZGVGaXhlZFBvc2l0aW9uKTsKK30KKwogRG9jdW1lbnQ6OlJlZ2lvbkZpeGVkUGFp
ciBEb2N1bWVudDo6YWJzb2x1dGVSZWdpb25Gb3JFdmVudFRhcmdldHMoY29uc3QgRXZlbnRUYXJn
ZXRTZXQqIHRhcmdldHMpCiB7CiAgICAgTGF5b3V0RGlzYWxsb3dlZFNjb3BlIGxheW91dERpc2Fs
bG93ZWRTY29wZShMYXlvdXREaXNhbGxvd2VkU2NvcGU6OlJlYXNvbjo6UmVlbnRyYW5jeUF2b2lk
YW5jZSk7CkBAIC03MTA3LDI2ICs3MTUwLDExIEBAIERvY3VtZW50OjpSZWdpb25GaXhlZFBhaXIg
RG9jdW1lbnQ6OmFic29sdXRlUmVnaW9uRm9yRXZlbnRUYXJnZXRzKGNvbnN0IEV2ZW50VGFyCiAg
ICAgYm9vbCBpbnNpZGVGaXhlZFBvc2l0aW9uID0gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIGtl
eVZhbHVlUGFpciA6ICp0YXJnZXRzKSB7Ci0gICAgICAgIExheW91dFJlY3Qgcm9vdFJlbGF0aXZl
Qm91bmRzOwotCi0gICAgICAgIGlmIChpczxEb2N1bWVudD4oa2V5VmFsdWVQYWlyLmtleSkpIHsK
LSAgICAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PihrZXlW
YWx1ZVBhaXIua2V5KTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudCA9PSB0aGlzKQotICAgICAg
ICAgICAgICAgIHJvb3RSZWxhdGl2ZUJvdW5kcyA9IGFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRz
KGluc2lkZUZpeGVkUG9zaXRpb24pOwotICAgICAgICAgICAgZWxzZSBpZiAoRWxlbWVudCogZWxl
bWVudCA9IGRvY3VtZW50LT5vd25lckVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICByb290UmVs
YXRpdmVCb3VuZHMgPSBlbGVtZW50LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVG
aXhlZFBvc2l0aW9uKTsKLSAgICAgICAgfSBlbHNlIGlmIChpczxFbGVtZW50PihrZXlWYWx1ZVBh
aXIua2V5KSkgewotICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGRvd25jYXN0PEVsZW1l
bnQ+KGtleVZhbHVlUGFpci5rZXkpOwotICAgICAgICAgICAgaWYgKGlzPEhUTUxCb2R5RWxlbWVu
dD4oZWxlbWVudCkpIHsKLSAgICAgICAgICAgICAgICAvLyBGb3IgdGhlIGJvZHksIGp1c3QgdXNl
IHRoZSBkb2N1bWVudCBib3VuZHMuCi0gICAgICAgICAgICAgICAgLy8gVGhlIGJvZHkgbWF5IG5v
dCBjb3ZlciB0aGlzIHdob2xlIGFyZWEsIGJ1dCBpdCdzIE9LIGZvciB0aGlzIHJlZ2lvbiB0byBi
ZSBhbiBvdmVyZXN0aW1hdGUuCi0gICAgICAgICAgICAgICAgcm9vdFJlbGF0aXZlQm91bmRzID0g
YWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoaW5zaWRlRml4ZWRQb3NpdGlvbik7Ci0gICAgICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICByb290UmVsYXRpdmVCb3VuZHMgPSBlbGVtZW50
LT5hYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhpbnNpZGVGaXhlZFBvc2l0aW9uKTsKKyAgICAg
ICAgaWYgKGF1dG8qIG5vZGUgPSBrZXlWYWx1ZVBhaXIua2V5KSB7CisgICAgICAgICAgICBhdXRv
IHRhcmdldFJlZ2lvbkZpeGVkUGFpciA9IGFic29sdXRlRXZlbnRSZWdpb25Gb3JOb2RlKCpub2Rl
KTsKKyAgICAgICAgICAgIHRhcmdldFJlZ2lvbi51bml0ZSh0YXJnZXRSZWdpb25GaXhlZFBhaXIu
Zmlyc3QpOworICAgICAgICAgICAgaW5zaWRlRml4ZWRQb3NpdGlvbiB8PSB0YXJnZXRSZWdpb25G
aXhlZFBhaXIuc2Vjb25kOwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoIXJvb3RS
ZWxhdGl2ZUJvdW5kcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICB0YXJnZXRSZWdpb24udW5pdGUo
UmVnaW9uKGVuY2xvc2luZ0ludFJlY3Qocm9vdFJlbGF0aXZlQm91bmRzKSkpOwogICAgIH0KIAog
ICAgIHJldHVybiBSZWdpb25GaXhlZFBhaXIodGFyZ2V0UmVnaW9uLCBpbnNpZGVGaXhlZFBvc2l0
aW9uKTsKQEAgLTg2NTgsNCArODY4NiwzMiBAQCB2b2lkIERvY3VtZW50OjpzZXRQYWludFdvcmts
ZXRHbG9iYWxTY29wZUZvck5hbWUoY29uc3QgU3RyaW5nJiBuYW1lLCBSZWY8UGFpbnRXbwogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCit2b2lkIERvY3VtZW50Ojp1cGRh
dGVUb3VjaEFjdGlvbkVsZW1lbnRzKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsZSkKK3sKKyAgICBib29sIGNoYW5nZWQgPSBmYWxzZTsKKworICAgIGlmIChzdHlsZS50
b3VjaEFjdGlvbnMoKSAhPSBUb3VjaEFjdGlvbjo6QXV0bykgeworICAgICAgICBpZiAoIW1fdG91
Y2hBY3Rpb25FbGVtZW50cykKKyAgICAgICAgICAgIG1fdG91Y2hBY3Rpb25FbGVtZW50cyA9IHN0
ZDo6bWFrZV91bmlxdWU8SGFzaFNldDxFbGVtZW50Kj4+KCk7CisgICAgICAgIGNoYW5nZWQgfD0g
bV90b3VjaEFjdGlvbkVsZW1lbnRzLT5hZGQoJmVsZW1lbnQpLmlzTmV3RW50cnk7CisgICAgfSBl
bHNlIGlmIChtX3RvdWNoQWN0aW9uRWxlbWVudHMpCisgICAgICAgIGNoYW5nZWQgfD0gbV90b3Vj
aEFjdGlvbkVsZW1lbnRzLT5yZW1vdmUoJmVsZW1lbnQpOworCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBpZiAoIWNoYW5nZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBh
Z2UgPSB0aGlzLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCkpIHsKKyAgICAgICAgaWYgKFNjcm9s
bGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHBhZ2UtPnNjcm9sbGluZ0Nv
b3JkaW5hdG9yKCkpCisgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3
RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFuZ2VkKCpmcmFtZVZpZXcpOworICAgIH0KKyNlbmRpZgor
fQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggMzBmMGVlNjdjOTkxYTNiMzY2MGQ3NmE3ZjA0N2NkOGFiZWRmYjIwMy4uOGUyODc4ZjRkMTVh
Yjg1MTUwNjdhM2FhNWRhM2YyNTczMTEwMmQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEy
NzYsNiArMTI3NiwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNUb3VjaEV2ZW50SGFuZGxlcnMo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgdG91Y2hFdmVudFRhcmdldHNDb250
YWluKE5vZGUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCisjaWYgRU5BQkxFKFBP
SU5URVJfRVZFTlRTKQorICAgIHZvaWQgdXBkYXRlVG91Y2hBY3Rpb25FbGVtZW50cyhFbGVtZW50
JiwgY29uc3QgUmVuZGVyU3R5bGUmKTsKKyAgICBjb25zdCBIYXNoU2V0PEVsZW1lbnQqPiogdG91
Y2hBY3Rpb25FbGVtZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hBY3Rpb25FbGVtZW50cy5n
ZXQoKTsgfQorI2VuZGlmCiAKICAgICB2b2lkIGRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKE5vZGUm
KTsKICAgICB2b2lkIGRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKE5vZGUmLCBFdmVudEhhbmRs
ZXJSZW1vdmFsID0gRXZlbnRIYW5kbGVyUmVtb3ZhbDo6T25lKTsKQEAgLTEyOTQsNiArMTI5OCw3
IEBAIHB1YmxpYzoKICAgICBjb25zdCBFdmVudFRhcmdldFNldCogd2hlZWxFdmVudFRhcmdldHMo
KSBjb25zdCB7IHJldHVybiBtX3doZWVsRXZlbnRUYXJnZXRzLmdldCgpOyB9CiAKICAgICB0eXBl
ZGVmIHN0ZDo6cGFpcjxSZWdpb24sIGJvb2w+IFJlZ2lvbkZpeGVkUGFpcjsKKyAgICBSZWdpb25G
aXhlZFBhaXIgYWJzb2x1dGVFdmVudFJlZ2lvbkZvck5vZGUoTm9kZSYpOwogICAgIFJlZ2lvbkZp
eGVkUGFpciBhYnNvbHV0ZVJlZ2lvbkZvckV2ZW50VGFyZ2V0cyhjb25zdCBFdmVudFRhcmdldFNl
dCopOwogCiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUV2ZW50SGFuZGxlckJvdW5kcyhib29sJikg
ZmluYWw7CkBAIC0xODc0LDYgKzE4NzksOSBAQCBwcml2YXRlOgogICAgIAogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50VGFyZ2V0U2V0PiBtX3RvdWNo
RXZlbnRUYXJnZXRzOworI2VuZGlmCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIHN0
ZDo6dW5pcXVlX3B0cjxIYXNoU2V0PEVsZW1lbnQqPj4gbV90b3VjaEFjdGlvbkVsZW1lbnRzOwog
I2VuZGlmCiAgICAgc3RkOjp1bmlxdWVfcHRyPEV2ZW50VGFyZ2V0U2V0PiBtX3doZWVsRXZlbnRU
YXJnZXRzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZWE1NDkzYTVhMmNkNWZlYWRkNjZj
MGY2ZDdiMzQ1MGY3MGZjMTNhMi4uY2E0YmM5OWMzM2M4YmM5OGYzMWFlOTRiN2MzYTdhMWQ2NDhj
ZGEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtODEsNiArODEsOCBAQAogI2luY2x1ZGUg
IlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlJlbmRlckZyYWdtZW50Q29udGFp
bmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckJh
Y2tpbmcuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJS
ZW5kZXJMaXN0Qm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5k
ZXJUcmVlVXBkYXRlci5oIgpAQCAtMzQxOCw3ICszNDIwLDcgQEAgdm9pZCBFbGVtZW50OjpzZXRD
b250YWluc0Z1bGxTY3JlZW5FbGVtZW50KGJvb2wgZmxhZykKICAgICBpbnZhbGlkYXRlU3R5bGVB
bmRMYXllckNvbXBvc2l0aW9uKCk7CiB9CiAKLXN0YXRpYyBFbGVtZW50KiBwYXJlbnRDcm9zc2lu
Z0ZyYW1lQm91bmRhcmllcyhFbGVtZW50KiBlbGVtZW50KQorc3RhdGljIEVsZW1lbnQqIHBhcmVu
dENyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAg
QVNTRVJUKGVsZW1lbnQpOwogICAgIHJldHVybiBlbGVtZW50LT5wYXJlbnRFbGVtZW50KCkgPyBl
bGVtZW50LT5wYXJlbnRFbGVtZW50KCkgOiBlbGVtZW50LT5kb2N1bWVudCgpLm93bmVyRWxlbWVu
dCgpOwpAQCAtNDEyMiw0ICs0MTI0LDY2IEBAIHZvaWQgRWxlbWVudDo6c2V0QXR0cmlidXRlU3R5
bGVNYXAoUmVmPFN0eWxlUHJvcGVydHlNYXA+JiYgbWFwKQogfQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoUE9JTlRFUl9FVkVOVFMpCitPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IEVsZW1lbnQ6OmNvbXB1
dGVkVG91Y2hBY3Rpb25zKCkgY29uc3QKK3sKKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNv
bXB1dGVkVG91Y2hBY3Rpb25zID0gVG91Y2hBY3Rpb246OkF1dG87CisgICAgZm9yIChhdXRvKiBl
bGVtZW50ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9IHBhcmVudENyb3NzaW5nRnJhbWVCb3Vu
ZGFyaWVzKGVsZW1lbnQpKSB7CisgICAgICAgIGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVu
ZGVyZXIoKTsKKyAgICAgICAgaWYgKCFyZW5kZXJlcikKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgIGF1dG8gdG91Y2hBY3Rpb25zID0gcmVuZGVyZXItPnN0eWxlKCkudG91Y2hBY3Rp
b25zKCk7CisKKyAgICAgICAgLy8gT25jZSB3ZSd2ZSBlbmNvdW50ZXJlZCB0b3VjaC1hY3Rpb246
IG5vbmUsIHdlIGtub3cgdGhhdCB0aGlzIHdpbGwgYmUgdGhlIGNvbXB1dGVkIHZhbHVlLgorICAg
ICAgICBpZiAodG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpOb25lKQorICAgICAgICAgICAg
cmV0dXJuIHRvdWNoQWN0aW9uczsKKworICAgICAgICAvLyBJZiB0aGUgY29tcHV0ZWQgdG91Y2gt
YWN0aW9uIHNvIGZhciB3YXMgImF1dG8iLCB3ZSBjYW4ganVzdCB1c2UgdGhlIGN1cnJlbnQgZWxl
bWVudCdzIHRvdWNoLWFjdGlvbi4KKyAgICAgICAgaWYgKGNvbXB1dGVkVG91Y2hBY3Rpb25zID09
IFRvdWNoQWN0aW9uOjpBdXRvKSB7CisgICAgICAgICAgICBjb21wdXRlZFRvdWNoQWN0aW9ucyA9
IHRvdWNoQWN0aW9uczsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAg
ICAgLy8gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCBoYXMgdG91Y2gtYWN0aW9uOiBhdXRvIG9yIHRo
ZSBzYW1lIHRvdWNoLWFjdGlvbiBhcyB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uLAorICAgICAg
ICAvLyB3ZSBuZWVkIHRvIGtlZXAgZ29pbmcgdXAgdGhlIGFuY2VzdHJ5IGNoYWluLgorICAgICAg
ICBpZiAodG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpBdXRvIHx8IHRvdWNoQWN0aW9ucyA9
PSBjb21wdXRlZFRvdWNoQWN0aW9ucykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IC8vIE5vdywgdGhlIGVsZW1lbnQncyB0b3VjaC1hY3Rpb24gYW5kIHRoZSBjb21wdXRlZCB0b3Vj
aC1hY3Rpb24gYXJlIGRpZmZlcmVudCBhbmQgYXJlIG5laXRoZXIgImF1dG8iIG5vciAibm9uZSIu
CisgICAgICAgIGlmIChjb21wdXRlZFRvdWNoQWN0aW9ucyA9PSBUb3VjaEFjdGlvbjo6TWFuaXB1
bGF0aW9uKSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIGlz
ICJtYW5pcHVsYXRpb24iLCB3ZSBjYW4gdGFrZSB0aGUgY3VycmVudCBlbGVtZW50J3MgdG91Y2gt
YWN0aW9uIGFzIHRoZSBuZXdseQorICAgICAgICAgICAgLy8gY29tcHV0ZWQgdG91Y2gtYWN0aW9u
LgorICAgICAgICAgICAgY29tcHV0ZWRUb3VjaEFjdGlvbnMgPSB0b3VjaEFjdGlvbnM7CisgICAg
ICAgIH0gZWxzZSBpZiAodG91Y2hBY3Rpb25zID09IFRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24p
IHsKKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgd2UgaGF2ZSBhIHJlc3RyaWN0ZWQgY29tcHV0
ZWQgdG91Y2gtYWN0aW9uIHNvIGZhci4gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCdzIHRvdWNoLWFj
dGlvbiBpcyAibWFuaXB1bGF0aW9uIgorICAgICAgICAgICAgLy8gdGhlbiB3ZSBjYW4ganVzdCBr
ZWVwIGdvaW5nIGFuZCBsZWF2ZSB0aGUgY29tcHV0ZWQgdG91Y2gtYWN0aW9uIHVudG91Y2hlZC4K
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLy8gSW4gYW55IG90
aGVyIGNhc2UsIHdlIGhhdmUgY29tcGV0aW5nIHJlc3RyaWN0aXZlIHRvdWNoLWFjdGlvbiB2YWx1
ZXMgdGhhdCBjYW4gb25seSB5aWVsZCAibm9uZSIuCisgICAgICAgIHJldHVybiBUb3VjaEFjdGlv
bjo6Tm9uZTsKKyAgICB9CisgICAgcmV0dXJuIGNvbXB1dGVkVG91Y2hBY3Rpb25zOworfQorCisj
aWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKK1Njcm9sbGluZ05vZGVJ
RCBFbGVtZW50OjpuZWFyZXN0U2Nyb2xsaW5nTm9kZUlEVXNpbmdUb3VjaE92ZXJmbG93U2Nyb2xs
aW5nKCkgY29uc3QKK3sKKyAgICBpZiAoIXJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgLy8gV2UgYXJlIG5vdCBpbnRlcmVzdGVkIGluIHRoZSByb290LCBzbyBjaGVjayB0aGF0
IHdlIGFsc28gaGF2ZSBhIHZhbGlkIHBhcmVudC4KKyAgICBmb3IgKGF1dG8qIGxheWVyID0gcmVu
ZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsgbGF5ZXIgJiYgbGF5ZXItPnBhcmVudCgpOyBsYXll
ciA9IGxheWVyLT5wYXJlbnQoKSkgeworICAgICAgICBpZiAobGF5ZXItPmlzQ29tcG9zaXRlZCgp
KSB7CisgICAgICAgICAgICBpZiAoYXV0byBzY3JvbGxpbmdOb2RlSUQgPSBsYXllci0+YmFja2lu
ZygpLT5zY3JvbGxpbmdOb2RlSURGb3JSb2xlKFNjcm9sbENvb3JkaW5hdGlvblJvbGU6OlNjcm9s
bGluZykpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGluZ05vZGVJRDsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHJldHVybiAwOworfQorI2VuZGlmCisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggYzVlYjZjYjhjNDQ4YjA5OWM1ZTAx
MjZhZDVhMWU3YzRlODg0MmI4Ni4uNmFlMTYxODVlOWFjNDcxODU0YTkzNDlkNzQxZGQ0NjRhMTFm
NGU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiS2V5
ZnJhbWVBbmltYXRpb25PcHRpb25zLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVG9PcHRpb25zLmgiCiAj
aW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5o
IgogI2luY2x1ZGUgIlNoYWRvd1Jvb3RNb2RlLmgiCiAjaW5jbHVkZSAiU2ltdWxhdGVkQ2xpY2tP
cHRpb25zLmgiCiAjaW5jbHVkZSAiU3R5bGVDaGFuZ2UuaCIKQEAgLTc1LDYgKzc2LDEwIEBAIGVu
dW0gY2xhc3MgU2VsZWN0aW9uUmV2ZWFsTW9kZSB7CiAgICAgRG9Ob3RSZXZlYWwKIH07CiAKKyNp
ZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitlbnVtIGNsYXNzIFRvdWNoQWN0aW9uIDogdWludDhf
dDsKKyNlbmRpZgorCiBjbGFzcyBFbGVtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUgewogICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoRWxlbWVudCk7CiBwdWJsaWM6CkBAIC01ODgsNiArNTkz
LDEzIEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxSZWY8V2ViQW5pbWF0aW9uPj4gYW5pbWF0
ZShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+JiYsIE9wdGlvbmFs
PFZhcmlhbnQ8ZG91YmxlLCBLZXlmcmFtZUFuaW1hdGlvbk9wdGlvbnM+PiYmKTsKICAgICBWZWN0
b3I8UmVmUHRyPFdlYkFuaW1hdGlvbj4+IGdldEFuaW1hdGlvbnMoKTsKIAorI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKKyAgICBPcHRpb25TZXQ8VG91Y2hBY3Rpb24+IGNvbXB1dGVkVG91Y2hB
Y3Rpb25zKCkgY29uc3Q7CisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElO
RykKKyAgICBTY3JvbGxpbmdOb2RlSUQgbmVhcmVzdFNjcm9sbGluZ05vZGVJRFVzaW5nVG91Y2hP
dmVyZmxvd1Njcm9sbGluZygpIGNvbnN0OworI2VuZGlmCisjZW5kaWYKKwogcHJvdGVjdGVkOgog
ICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgQ29uc3RydWN0aW9u
VHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBjNGZhZWRkM2U4ZjU0ODViMzAwYmY0M2QzYWE2ZjFl
YWI5MzAxNTQ1Li5kMDU2YThiNzdjODk0YjA1MTdlMWYxYTNlNTFlOWRkZDZiZWI1NWE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiUmVnaW9uLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2lu
Y2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRv
ci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
QEAgLTEwNyw3ICsxMDgsMjUgQEAgRXZlbnRUcmFja2luZ1JlZ2lvbnMgU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OmFic29sdXRlRXZlbnRUcmFja2luZ1JlZ2lvbnNGb3JGcmFtZSgKICAgICBhdXRvKiBk
b2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAg
cmV0dXJuIEV2ZW50VHJhY2tpbmdSZWdpb25zKCk7Ci0gICAgcmV0dXJuIGRvY3VtZW50LT5ldmVu
dFRyYWNraW5nUmVnaW9ucygpOworICAgIGF1dG8gZXZlbnRUcmFja2luZ1JlZ2lvbnMgPSBkb2N1
bWVudC0+ZXZlbnRUcmFja2luZ1JlZ2lvbnMoKTsKKworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5U
UykKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5wb2lu
dGVyRXZlbnRzRW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChhdXRvKiB0b3VjaEFjdGlvbkVsZW1l
bnRzID0gZnJhbWUuZG9jdW1lbnQoKS0+dG91Y2hBY3Rpb25FbGVtZW50cygpKSB7CisgICAgICAg
ICAgICBhdXRvJiB0b3VjaEFjdGlvbkRhdGEgPSBldmVudFRyYWNraW5nUmVnaW9ucy50b3VjaEFj
dGlvbkRhdGE7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGVsZW1lbnQgOiAqdG91Y2hB
Y3Rpb25FbGVtZW50cykgeworICAgICAgICAgICAgICAgIEFTU0VSVChlbGVtZW50KTsKKyAgICAg
ICAgICAgICAgICB0b3VjaEFjdGlvbkRhdGEuYXBwZW5kKHsKKyAgICAgICAgICAgICAgICAgICAg
ZWxlbWVudC0+Y29tcHV0ZWRUb3VjaEFjdGlvbnMoKSwKKyAgICAgICAgICAgICAgICAgICAgZWxl
bWVudC0+bmVhcmVzdFNjcm9sbGluZ05vZGVJRFVzaW5nVG91Y2hPdmVyZmxvd1Njcm9sbGluZygp
LAorICAgICAgICAgICAgICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLmFic29sdXRlRXZlbnRS
ZWdpb25Gb3JOb2RlKCplbGVtZW50KS5maXJzdAorICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gZXZlbnRUcmFj
a2luZ1JlZ2lvbnM7CiAjZWxzZQogICAgIGF1dG8qIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsK
ICAgICBpZiAoIWZyYW1lVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDY1NDdkYWFiOWE5MDNkMGI0ZWU4OWEy
OGUzMDY2NDY5NGIyNmZhMzUuLjUzMzIyZjY2NjE2MGMxMmY0NWFjYWFkYzkwNDA4ZmUwM2M1ZmU4
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxF
dmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbFNuYXBPZmZzZXRzSW5mby5oIgogI2luY2x1ZGUgIlNj
cm9sbFR5cGVzLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3JUeXBlcy5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgpAQCAtNTEsMjcgKzUyLDYgQEAgY2xhc3Mg
VGV4dFN0cmVhbTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10eXBlZGVmIHVuc2lnbmVkIFN5
bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uczsKLXR5cGVkZWYgdWludDY0X3QgU2Nyb2xsaW5nTm9k
ZUlEOwotCi1lbnVtIGNsYXNzIFNjcm9sbGluZ05vZGVUeXBlIDogdWludDhfdCB7Ci0gICAgTWFp
bkZyYW1lLAotICAgIFN1YmZyYW1lLAotICAgIEZyYW1lSG9zdGluZywKLSAgICBPdmVyZmxvdywK
LSAgICBGaXhlZCwKLSAgICBTdGlja3kKLX07Ci0KLWVudW0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNU
ZXh0QmVoYXZpb3JGbGFncyB7Ci0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JO
b3JtYWwgICAgICAgICAgICAgICAgICA9IDAsCi0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0
QmVoYXZpb3JJbmNsdWRlTGF5ZXJJRHMgICAgICAgICA9IDEgPDwgMCwKLSAgICBTY3JvbGxpbmdT
dGF0ZVRyZWVBc1RleHRCZWhhdmlvckluY2x1ZGVOb2RlSURzICAgICAgICAgID0gMSA8PCAxLAot
ICAgIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVyUG9zaXRpb25z
ICAgPSAxIDw8IDIsCi0gICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JEZWJ1ZyAg
ICAgICAgICAgICAgICAgICA9IFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVk
ZUxheWVySURzIHwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTm9kZUlE
cyB8IFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVyUG9zaXRpb25z
Ci19OwotdHlwZWRlZiB1bnNpZ25lZCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcjsK
LQogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lVmlldzsKQEAgLTg2
LDQyICs2Niw2IEBAIGNsYXNzIFZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFzcyBTY3JvbGxpbmdU
cmVlOwogI2VuZGlmCiAKLWVudW0gY2xhc3MgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiB7
Ci0gICAgU2V0LAotICAgIFNldEFwcHJveGltYXRlLAotICAgIFN5bmMKLX07Ci0KLXN0cnVjdCBT
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMgewotICAgIFNjcm9sbEVsYXN0aWNpdHkgaG9yaXpvbnRh
bFNjcm9sbEVsYXN0aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OwotICAgIFNjcm9sbEVs
YXN0aWNpdHkgdmVydGljYWxTY3JvbGxFbGFzdGljaXR5IHsgU2Nyb2xsRWxhc3RpY2l0eU5vbmUg
fTsKLQotICAgIFNjcm9sbGJhck1vZGUgaG9yaXpvbnRhbFNjcm9sbGJhck1vZGUgeyBTY3JvbGxi
YXJBdXRvIH07Ci0gICAgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgeyBTY3Jv
bGxiYXJBdXRvIH07Ci0KLSAgICBib29sIGhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyIHsg
ZmFsc2UgfTsKLSAgICBib29sIGhhc0VuYWJsZWRWZXJ0aWNhbFNjcm9sbGJhciB7IGZhbHNlIH07
Ci0KLSAgICBib29sIHVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFycyB7IGZhbHNlIH07Ci0K
LSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzJiBvdGhl
cikgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0
eSA9PSBvdGhlci5ob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eQotICAgICAgICAgICAgJiYgdmVy
dGljYWxTY3JvbGxFbGFzdGljaXR5ID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsRWxhc3RpY2l0eQot
ICAgICAgICAgICAgJiYgaG9yaXpvbnRhbFNjcm9sbGJhck1vZGUgPT0gb3RoZXIuaG9yaXpvbnRh
bFNjcm9sbGJhck1vZGUKLSAgICAgICAgICAgICYmIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9PSBv
dGhlci52ZXJ0aWNhbFNjcm9sbGJhck1vZGUKLSAgICAgICAgICAgICYmIGhhc0VuYWJsZWRIb3Jp
em9udGFsU2Nyb2xsYmFyID09IG90aGVyLmhhc0VuYWJsZWRIb3Jpem9udGFsU2Nyb2xsYmFyCi0g
ICAgICAgICAgICAmJiBoYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIgPT0gb3RoZXIuaGFzRW5h
YmxlZFZlcnRpY2FsU2Nyb2xsYmFyCi0gICAgICAgICAgICAmJiB1c2VEYXJrQXBwZWFyYW5jZUZv
clNjcm9sbGJhcnMgPT0gb3RoZXIudXNlRGFya0FwcGVhcmFuY2VGb3JTY3JvbGxiYXJzOwotICAg
IH0KLX07Ci0KLWVudW0gY2xhc3MgVmlld3BvcnRSZWN0U3RhYmlsaXR5IHsKLSAgICBTdGFibGUs
Ci0gICAgVW5zdGFibGUsCi0gICAgQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHkg
Ly8gVGhpcyBpbXBsaWVzIFVuc3RhYmxlLgotfTsKLQogY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0
b3IgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGUoUGFn
ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3JUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUeXBlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzN2ViZDJmZmNjOWM4ZmU0MDBjMGNl
YzY3ZDYwMTY5Njc5MTRiMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgKQEAgLTAsMCArMSw4OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIHVuc2lnbmVkIFN5bmNocm9ub3VzU2Nyb2xs
aW5nUmVhc29uczsKK3R5cGVkZWYgdWludDY0X3QgU2Nyb2xsaW5nTm9kZUlEOworCitlbnVtIGNs
YXNzIFNjcm9sbGluZ05vZGVUeXBlIDogdWludDhfdCB7CisgICAgTWFpbkZyYW1lLAorICAgIFN1
YmZyYW1lLAorICAgIEZyYW1lSG9zdGluZywKKyAgICBPdmVyZmxvdywKKyAgICBGaXhlZCwKKyAg
ICBTdGlja3kKK307CisKK2VudW0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JGbGFn
cyB7CisgICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JOb3JtYWwgICAgICAgICAg
ICAgICAgICA9IDAsCisgICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRl
TGF5ZXJJRHMgICAgICAgICA9IDEgPDwgMCwKKyAgICBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRC
ZWhhdmlvckluY2x1ZGVOb2RlSURzICAgICAgICAgID0gMSA8PCAxLAorICAgIFNjcm9sbGluZ1N0
YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVyUG9zaXRpb25zICAgPSAxIDw8IDIsCisg
ICAgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JEZWJ1ZyAgICAgICAgICAgICAgICAg
ICA9IFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVySURzIHwgU2Ny
b2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JJbmNsdWRlTm9kZUlEcyB8IFNjcm9sbGluZ1N0
YXRlVHJlZUFzVGV4dEJlaGF2aW9ySW5jbHVkZUxheWVyUG9zaXRpb25zCit9OwordHlwZWRlZiB1
bnNpZ25lZCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcjsKKworZW51bSBjbGFzcyBT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uIHsKKyAgICBTZXQsCisgICAgU2V0QXBwcm94aW1h
dGUsCisgICAgU3luYworfTsKKworc3RydWN0IFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyB7Cisg
ICAgU2Nyb2xsRWxhc3RpY2l0eSBob3Jpem9udGFsU2Nyb2xsRWxhc3RpY2l0eSB7IFNjcm9sbEVs
YXN0aWNpdHlOb25lIH07CisgICAgU2Nyb2xsRWxhc3RpY2l0eSB2ZXJ0aWNhbFNjcm9sbEVsYXN0
aWNpdHkgeyBTY3JvbGxFbGFzdGljaXR5Tm9uZSB9OworCisgICAgU2Nyb2xsYmFyTW9kZSBob3Jp
em9udGFsU2Nyb2xsYmFyTW9kZSB7IFNjcm9sbGJhckF1dG8gfTsKKyAgICBTY3JvbGxiYXJNb2Rl
IHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSB7IFNjcm9sbGJhckF1dG8gfTsKKworICAgIGJvb2wgaGFz
RW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9OworICAgIGJvb2wgaGFzRW5hYmxl
ZFZlcnRpY2FsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKKworICAgIGJvb2wgdXNlRGFya0FwcGVhcmFu
Y2VGb3JTY3JvbGxiYXJzIHsgZmFsc2UgfTsKKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBT
Y3JvbGxhYmxlQXJlYVBhcmFtZXRlcnMmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIGhvcml6b250YWxTY3JvbGxFbGFzdGljaXR5ID09IG90aGVyLmhvcml6b250YWxTY3JvbGxF
bGFzdGljaXR5CisgICAgICAgICAgICAmJiB2ZXJ0aWNhbFNjcm9sbEVsYXN0aWNpdHkgPT0gb3Ro
ZXIudmVydGljYWxTY3JvbGxFbGFzdGljaXR5CisgICAgICAgICAgICAmJiBob3Jpem9udGFsU2Ny
b2xsYmFyTW9kZSA9PSBvdGhlci5ob3Jpem9udGFsU2Nyb2xsYmFyTW9kZQorICAgICAgICAgICAg
JiYgdmVydGljYWxTY3JvbGxiYXJNb2RlID09IG90aGVyLnZlcnRpY2FsU2Nyb2xsYmFyTW9kZQor
ICAgICAgICAgICAgJiYgaGFzRW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIgPT0gb3RoZXIuaGFz
RW5hYmxlZEhvcml6b250YWxTY3JvbGxiYXIKKyAgICAgICAgICAgICYmIGhhc0VuYWJsZWRWZXJ0
aWNhbFNjcm9sbGJhciA9PSBvdGhlci5oYXNFbmFibGVkVmVydGljYWxTY3JvbGxiYXIKKyAgICAg
ICAgICAgICYmIHVzZURhcmtBcHBlYXJhbmNlRm9yU2Nyb2xsYmFycyA9PSBvdGhlci51c2VEYXJr
QXBwZWFyYW5jZUZvclNjcm9sbGJhcnM7CisgICAgfQorfTsKKworZW51bSBjbGFzcyBWaWV3cG9y
dFJlY3RTdGFiaWxpdHkgeworICAgIFN0YWJsZSwKKyAgICBVbnN0YWJsZSwKKyAgICBDaGFuZ2lu
Z09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSAvLyBUaGlzIGltcGxpZXMgVW5zdGFibGUuCit9
OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
Y3BwCmluZGV4IDUyNDM5M2RkMTZhYTYzN2ZmMTYxZDY3NWI4MGZmZDk0ZTdhYTE1MDAuLjQzNGY1
ODQwNzliNDQ1NDkxMWNiYjI4YTMxZTU3N2U1MTZjNzNhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC00MDMsNiArNDAzLDE5IEBA
IFN0cmluZyBTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlQXNUZXh0KCkKICAgICByZXR1cm4g
dHMucmVsZWFzZSgpOwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorT3B0aW9uYWw8
VG91Y2hBY3Rpb25EYXRhPiBTY3JvbGxpbmdUcmVlOjp0b3VjaEFjdGlvbkRhdGFBdFBvaW50KElu
dFBvaW50IHApIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgaGFuZGxlIHRo
ZSBjYXNlIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSByZWdpb25zIG1hdGNoaW5nIHRoaXMgcG9p
bnQuCisgICAgZm9yIChhdXRvJiB0b3VjaEFjdGlvbkRhdGEgOiBtX2V2ZW50VHJhY2tpbmdSZWdp
b25zLnRvdWNoQWN0aW9uRGF0YSkgeworICAgICAgICBpZiAodG91Y2hBY3Rpb25EYXRhLnJlZ2lv
bi5jb250YWlucyhwKSkKKyAgICAgICAgICAgIHJldHVybiB0b3VjaEFjdGlvbkRhdGE7CisgICAg
fQorCisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGVmYzY4NDE1YzM5
NDMwZGY3ZjI3MDQzZmU5ODIzMzI3NzU1Njc2MzIuLjZkMjQ2ODMwN2E4ZWQwMjQzYzAyODM3NGQ2
NGY5NzhjOThhMDNlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZl
bnQuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRv
ci5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RU
cmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5o
PgpAQCAtMTA0LDcgKzEwNSwxMCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIFRyYWNraW5nVHlwZSBldmVudFRyYWNraW5nVHlwZUZvclBvaW50KGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnROYW1lLCBJbnRQb2ludCk7Ci0gICAgCisjaWYgRU5BQkxFKFBPSU5URVJfRVZF
TlRTKQorICAgIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPFRvdWNoQWN0aW9uRGF0YT4gdG91Y2hB
Y3Rpb25EYXRhQXRQb2ludChJbnRQb2ludCkgY29uc3Q7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KE1BQykKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hl
ZWxFdmVudFBoYXNlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZVNjcm9sbFNuYXBJ
bmRpY2VzKFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgLypob3Jpem9udGFsSW5kZXgqLywgdW5z
aWduZWQgLyp2ZXJ0aWNhbEluZGV4Ki8pIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5kZXggMmY0NDE1YWM4ODUyNjY5YzczMGQy
OGE2NTc1MTEzMWU1YmEyYzk5My4uMmFlMWEzNjFmODE5N2FkNzhjY2YyNmQxNWE5Yzk0NGIzZDYy
NDA2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlTm9kZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNp
bmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRl
Tm9kZS5oIgorI2luY2x1ZGUgIlRvdWNoQWN0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0V2ZW50VHJhY2tpbmdSZWdpb25zLmNwcAppbmRleCA3ZTc2M2M4OTUzZGNhOGU2
ZGQ3Y2FjYWQ2MjUyNDA3YzcwYzVmODYzLi40Mzc3ODAwOTg1MjhiZWQxMDk2MmY0ODYyMDcxYjI4
NjcxMDEwOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNr
aW5nUmVnaW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2lu
Z1JlZ2lvbnMuY3BwCkBAIC03Myw3ICs3MywxOSBAQCB2b2lkIEV2ZW50VHJhY2tpbmdSZWdpb25z
Ojp1bml0ZShjb25zdCBFdmVudFRyYWNraW5nUmVnaW9ucyYgZXZlbnRUcmFja2luZ1JlZ2lvbgog
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBhLCBjb25zdCBFdmVu
dFRyYWNraW5nUmVnaW9ucyYgYikKIHsKICAgICByZXR1cm4gYS5hc3luY2hyb25vdXNEaXNwYXRj
aFJlZ2lvbiA9PSBiLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uCisjaWYgRU5BQkxFKFBPSU5U
RVJfRVZFTlRTKQorICAgICAgICAmJiBhLnRvdWNoQWN0aW9uRGF0YSA9PSBiLnRvdWNoQWN0aW9u
RGF0YQorI2VuZGlmCiAgICAgICAgICYmIGEuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0
Y2hSZWdpb25zID09IGIuZXZlbnRTcGVjaWZpY1N5bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwog
fQogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRv
dWNoQWN0aW9uRGF0YSYgYSwgY29uc3QgVG91Y2hBY3Rpb25EYXRhJiBiKQoreworICAgIHJldHVy
biBhLnRvdWNoQWN0aW9ucyA9PSBiLnRvdWNoQWN0aW9ucworICAgICAgICAmJiBhLnNjcm9sbGlu
Z05vZGVJRCA9PSBiLnNjcm9sbGluZ05vZGVJRAorICAgICAgICAmJiBhLnJlZ2lvbiA9PSBiLnJl
Z2lvbjsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRyYWNraW5nUmVnaW9ucy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRXZlbnRUcmFja2luZ1JlZ2lvbnMuaAppbmRleCAzZDU4YmE1NWVmZDYz
ZWQ5YmFlNDA1MDFlMzA5Yjg2MWZjOWU5YzA1Li5lNzFmNTFhZGFkZDVjN2UxYzBlM2JjZmVmNGE3
NWY0MmE4NWQ2YmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9FdmVudFRy
YWNraW5nUmVnaW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0V2ZW50VHJhY2tp
bmdSZWdpb25zLmgKQEAgLTMwLDYgKzMwLDEyIEBACiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgRU5BQkxFKFBP
SU5URVJfRVZFTlRTKQorI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKKyNp
bmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvclR5cGVzLmgiCisjaW5jbHVkZSAiVG91Y2hBY3Rp
b24uaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgVHJhY2tp
bmdUeXBlIDogdWludDhfdCB7CkBAIC0zOCw2ICs0NCwxOCBAQCBlbnVtIGNsYXNzIFRyYWNraW5n
VHlwZSA6IHVpbnQ4X3QgewogICAgIFN5bmNocm9ub3VzID0gMgogfTsKIAorI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKK3R5cGVkZWYgdWludDY0X3QgU2Nyb2xsaW5nTm9kZUlEOworc3RydWN0
IFRvdWNoQWN0aW9uRGF0YSB7CisgICAgT3B0aW9uU2V0PFRvdWNoQWN0aW9uPiB0b3VjaEFjdGlv
bnMgeyBUb3VjaEFjdGlvbjo6QXV0byB9OworICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdO
b2RlSUQgeyAwIH07CisgICAgUmVnaW9uIHJlZ2lvbjsKK307CisKK2Jvb2wgb3BlcmF0b3I9PShj
b25zdCBUb3VjaEFjdGlvbkRhdGEmLCBjb25zdCBUb3VjaEFjdGlvbkRhdGEmKTsKK2lubGluZSBi
b29sIG9wZXJhdG9yIT0oY29uc3QgVG91Y2hBY3Rpb25EYXRhJiBhLCBjb25zdCBUb3VjaEFjdGlv
bkRhdGEmIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQorI2VuZGlmCisKIHN0cnVjdCBFdmVudFRy
YWNraW5nUmVnaW9ucyB7CiAgICAgLy8gUmVnaW9uIGZvciB3aGljaCBldmVudHMgY2FuIGJlIGRp
c3BhdGNoZWQgd2l0aG91dCBibG9ja2luZyBzY3JvbGxpbmcuCiAgICAgUmVnaW9uIGFzeW5jaHJv
bm91c0Rpc3BhdGNoUmVnaW9uOwpAQCAtNDYsNiArNjQsMTAgQEAgc3RydWN0IEV2ZW50VHJhY2tp
bmdSZWdpb25zIHsKICAgICAvLyBUaGUga2V5IGlzIHRoZSBFdmVudCBOYW1lIHdpdGggYW4gYWN0
aXZlIGhhbmRsZXIuCiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZ2lvbj4gZXZlbnRTcGVjaWZpY1N5
bmNocm9ub3VzRGlzcGF0Y2hSZWdpb25zOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQor
ICAgIFZlY3RvcjxUb3VjaEFjdGlvbkRhdGE+IHRvdWNoQWN0aW9uRGF0YTsKKyNlbmRpZgorCiAg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKICAgICB2b2lkIHRyYW5zbGF0ZShJbnRTaXplKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAppbmRleCAxYjEzNGRm
ZWEzYTI1MGU1MmNmZDg2NGM4YmIxNTczY2I4NTRjMjFmLi4zZDU3YjI2N2FmNzZlODE2OTdhYzE2
YmM0MmJiYWE2N2E5N2M4YTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVRyZWVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuY3BwCkBAIC0yMzYsNiArMjM2LDExIEBAIEVsZW1lbnRVcGRhdGVzIFRyZWVSZXNvbHZl
cjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICBhdXRvIGJlZm9yZVVwZGF0
ZSA9IHJlc29sdmVQc2V1ZG9TdHlsZShlbGVtZW50LCB1cGRhdGUsIFBzZXVkb0lkOjpCZWZvcmUp
OwogICAgIGF1dG8gYWZ0ZXJVcGRhdGUgPSByZXNvbHZlUHNldWRvU3R5bGUoZWxlbWVudCwgdXBk
YXRlLCBQc2V1ZG9JZDo6QWZ0ZXIpOwogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAg
IGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnBvaW50ZXJFdmVu
dHNFbmFibGVkKCkpCisgICAgICAgIG1fZG9jdW1lbnQudXBkYXRlVG91Y2hBY3Rpb25FbGVtZW50
cyhlbGVtZW50LCAqdXBkYXRlLnN0eWxlLmdldCgpKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIHsg
V1RGTW92ZSh1cGRhdGUpLCBkZXNjZW5kYW50c1RvUmVzb2x2ZSwgV1RGTW92ZShiZWZvcmVVcGRh
dGUpLCBXVEZNb3ZlKGFmdGVyVXBkYXRlKSB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAzYjA1MjlhNGE5NTlhMjNiZDVkMDQw
ZjVmYTAwOGFkN2IwZmVjNzFmLi41NGQxOTllMjVkODRiMjUxODNmZDliZjlmMDJjYjk1YjVhYzhj
YTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKQEAgLTMyOSwxMCArMzI5LDQwIEBAIE9wdGlvbmFsPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+
IEFyZ3VtZW50Q29kZXI8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD46OmRlY29kZShECiAgICAgcmV0
dXJuIHt7IFdURk1vdmUoaWRlbnRpZmllciksIFdURk1vdmUodXBkYXRlUmVzcG9uc2VDb3VudGVy
KSwgV1RGTW92ZShyZXF1ZXN0SGVhZGVyc0d1YXJkKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShvcHRpb25zLnZhbHVlKCkpLCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShyZXNwb25zZUhl
YWRlcnNHdWFyZCksIFdURk1vdmUocmVzcG9uc2UpLCBXVEZNb3ZlKHJlc3BvbnNlQm9keSksIHJl
c3BvbnNlQm9keVNpemUgfX07CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCit2b2lk
IEFyZ3VtZW50Q29kZXI8VG91Y2hBY3Rpb25EYXRhPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFRvdWNoQWN0aW9uRGF0YSYgdG91Y2hBY3Rpb25EYXRhKQoreworICAgIGVuY29kZXIg
PDwgdG91Y2hBY3Rpb25EYXRhLnRvdWNoQWN0aW9ucyA8PCB0b3VjaEFjdGlvbkRhdGEuc2Nyb2xs
aW5nTm9kZUlEIDw8IHRvdWNoQWN0aW9uRGF0YS5yZWdpb247Cit9CisKK09wdGlvbmFsPFRvdWNo
QWN0aW9uRGF0YT4gQXJndW1lbnRDb2RlcjxUb3VjaEFjdGlvbkRhdGE+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxPcHRpb25TZXQ8VG91Y2hBY3Rpb24+PiB0b3Vj
aEFjdGlvbnM7CisgICAgZGVjb2RlciA+PiB0b3VjaEFjdGlvbnM7CisgICAgaWYgKCF0b3VjaEFj
dGlvbnMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxTY3Jv
bGxpbmdOb2RlSUQ+IHNjcm9sbGluZ05vZGVJRDsKKyAgICBkZWNvZGVyID4+IHNjcm9sbGluZ05v
ZGVJRDsKKyAgICBpZiAoIXNjcm9sbGluZ05vZGVJRCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworICAgIE9wdGlvbmFsPFJlZ2lvbj4gcmVnaW9uOworICAgIGRlY29kZXIgPj4gcmVn
aW9uOworICAgIGlmICghcmVnaW9uKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisg
ICAgcmV0dXJuIHt7IFdURk1vdmUoKnRvdWNoQWN0aW9ucyksIFdURk1vdmUoKnNjcm9sbGluZ05v
ZGVJRCksIFdURk1vdmUoKnJlZ2lvbikgfX07Cit9CisjZW5kaWYKKwogdm9pZCBBcmd1bWVudENv
ZGVyPEV2ZW50VHJhY2tpbmdSZWdpb25zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IEV2ZW50VHJhY2tpbmdSZWdpb25zJiBldmVudFRyYWNraW5nUmVnaW9ucykKIHsKICAgICBlbmNv
ZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLmFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uOwog
ICAgIGVuY29kZXIgPDwgZXZlbnRUcmFja2luZ1JlZ2lvbnMuZXZlbnRTcGVjaWZpY1N5bmNocm9u
b3VzRGlzcGF0Y2hSZWdpb25zOworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBlbmNv
ZGVyIDw8IGV2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9uRGF0YTsKKyNlbmRpZgogfQog
CiBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lvbnM+OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgRXZlbnRUcmFja2luZ1JlZ2lvbnMmIGV2ZW50VHJhY2tpbmdSZWdpb25zKQpA
QCAtMzQzLDggKzM3MywxNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8RXZlbnRUcmFja2luZ1JlZ2lv
bnM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRXZlbnRUcmFja2luZwogICAgIEhhc2hNYXA8
U3RyaW5nLCBSZWdpb24+IGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uczsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNo
UmVnaW9ucykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVO
VFMpCisgICAgVmVjdG9yPFRvdWNoQWN0aW9uRGF0YT4gdG91Y2hBY3Rpb25EYXRhOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodG91Y2hBY3Rpb25EYXRhKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworI2VuZGlmCiAgICAgZXZlbnRUcmFja2luZ1JlZ2lvbnMuYXN5bmNocm9ub3VzRGlzcGF0Y2hS
ZWdpb24gPSBXVEZNb3ZlKGFzeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9uKTsKICAgICBldmVudFRy
YWNraW5nUmVnaW9ucy5ldmVudFNwZWNpZmljU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbnMgPSBX
VEZNb3ZlKGV2ZW50U3BlY2lmaWNTeW5jaHJvbm91c0Rpc3BhdGNoUmVnaW9ucyk7CisjaWYgRU5B
QkxFKFBPSU5URVJfRVZFTlRTKQorICAgIGV2ZW50VHJhY2tpbmdSZWdpb25zLnRvdWNoQWN0aW9u
RGF0YSA9IFdURk1vdmUodG91Y2hBY3Rpb25EYXRhKTsKKyNlbmRpZgogICAgIHJldHVybiB0cnVl
OwogfQogCkBAIC05MTUsNiArOTUzLDE1IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZWdpb24+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVnaW9uJiByZWdpb24pCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKK09wdGlvbmFsPFJlZ2lvbj4gQXJndW1lbnRDb2RlcjxSZWdpb24+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBSZWdpb24gcmVnaW9uOworICAgIGlmICghZGVjb2RlKGRl
Y29kZXIsIHJlZ2lvbikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1
cm4gcmVnaW9uOworfQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IExlbmd0aCYgbGVuZ3RoKQogewogICAgIFNpbXBsZUFyZ3VtZW50
Q29kZXI8TGVuZ3RoPjo6ZW5jb2RlKGVuY29kZXIsIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDNhZTdlNDc1ZDgzMzZlZmMyN2Rj
ZjJjNTFmNzIyY2MyZGI5ODQ1YTYuLjJlZjVlNDNhZGI0ODk1MTgxOWM5YTcxM2Q2OWUwMTNkMjBk
ZDZlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CkBAIC0xMjEsNiArMTIxLDkgQEAgc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3M7CiBzdHJ1
Y3QgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsK
IHN0cnVjdCBUZXh0SW5kaWNhdG9yRGF0YTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCitz
dHJ1Y3QgVG91Y2hBY3Rpb25EYXRhOworI2VuZGlmCiBzdHJ1Y3QgVmlld3BvcnRBdHRyaWJ1dGVz
Owogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogICAgIApAQCAtMTk5LDYgKzIwMiwxMyBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNv
cmQ+IHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMpCit0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRvdWNoQWN0aW9uRGF0YT4g
eworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VG91Y2hB
Y3Rpb25EYXRhJik7CisgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlRvdWNoQWN0aW9uRGF0
YT4gZGVjb2RlKERlY29kZXImKTsKK307CisjZW5kaWYKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpFdmVudFRyYWNraW5nUmVnaW9ucz4gewogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RXZlbnRUcmFja2luZ1JlZ2lvbnMm
KTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkV2ZW50VHJhY2tp
bmdSZWdpb25zJik7CkBAIC0zMTYsNiArMzI2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpQYXRoPiB7CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlJlZ2lvbj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6UmVnaW9uJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpSZWdpb24mKTsKKyAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6UmVnaW9uPiBk
ZWNvZGUoRGVjb2RlciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpMZW5ndGg+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCmluZGV4IDBhMzA0ODA1NTUyODU1MWNlNGQ5ZDY5ODI0OTE5OGJkYzllNmFm
NjIuLmI5ODdjOTkyNGI5ODZmNjQwMmFiYzg4NTFlM2M4YWRhOTJkYTQ2ZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjU4Myw2ICsy
NTgzLDE0IEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzooVUlTY3JvbGxWaWV3
ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pCiAgICAgLy8gem9vbWluZy4gV2UnbGwg
YW5pbWF0ZSB0byB0aGUgcmlnaHQgcGxhY2Ugb25jZSB0aGUgem9vbSBmaW5pc2hlcy4KICAgICBp
ZiAoW3Njcm9sbFZpZXcgaXNab29taW5nXSkKICAgICAgICAgKnRhcmdldENvbnRlbnRPZmZzZXQg
PSBbc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMp
CisgICAgZWxzZSB7CisgICAgICAgIGlmIChbX2NvbnRlbnRWaWV3IHByZXZlbnRzUGFubmluZ0lu
WEF4aXNdKQorICAgICAgICAgICAgdGFyZ2V0Q29udGVudE9mZnNldC0+eCA9IHNjcm9sbFZpZXcu
Y29udGVudE9mZnNldC54OworICAgICAgICBpZiAoW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5p
bmdJbllBeGlzXSkKKyAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQtPnkgPSBzY3JvbGxW
aWV3LmNvbnRlbnRPZmZzZXQueTsKKyAgICB9CisjZW5kaWYKICNpZiBFTkFCTEUoQ1NTX1NDUk9M
TF9TTkFQKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogICAgIGlmIChXZWJLaXQ6OlJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkoKSkgewogICAgICAgICAvLyBGSVhNRTogSGVyZSwgSSdtIGZpbmRp
bmcgdGhlIG1heGltdW0gaG9yaXpvbnRhbC92ZXJ0aWNhbCBzY3JvbGwgb2Zmc2V0cy4gVGhlcmUn
cyBwcm9iYWJseSBhIGJldHRlciB3YXkgdG8gZG8gdGhpcy4KQEAgLTI2MjAsNiArMjYyOCwyMCBA
QCAtICh2b2lkKXNjcm9sbFZpZXdEaWRTY3JvbGxUb1RvcDooVUlTY3JvbGxWaWV3ICopc2Nyb2xs
VmlldwogICAgIFtzZWxmIF9kaWRGaW5pc2hTY3JvbGxpbmddOwogfQogCistIChDR1BvaW50KV9z
Y3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IGFkanVzdGVkT2Zmc2V0Rm9yT2Zm
c2V0OihDR1BvaW50KW9mZnNldCB0cmFuc2xhdGlvbjooQ0dQb2ludCl0cmFuc2xhdGlvbiBzdGFy
dFBvaW50OihDR1BvaW50KXN0YXJ0IGxvY2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5W
aWV3IGhvcml6b250YWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopaHYgdmVydGljYWxWZWxvY2l0
eTooaW5vdXQgZG91YmxlICopdnYKK3sKKyAgICBpZiAoIVtfY29udGVudFZpZXcgcHJldmVudHNQ
YW5uaW5nSW5YQXhpc10gJiYgIVtfY29udGVudFZpZXcgcHJldmVudHNQYW5uaW5nSW5ZQXhpc10p
CisgICAgICAgIHJldHVybiBvZmZzZXQ7CisKKyAgICBDR1BvaW50IGFkanVzdGVkQ29udGVudE9m
ZnNldCA9IENHUG9pbnRNYWtlKG9mZnNldC54LCBvZmZzZXQueSk7CisgICAgaWYgKFtfY29udGVu
dFZpZXcgcHJldmVudHNQYW5uaW5nSW5YQXhpc10pCisgICAgICAgIGFkanVzdGVkQ29udGVudE9m
ZnNldC54ID0gc3RhcnQueDsKKyAgICBpZiAoW19jb250ZW50VmlldyBwcmV2ZW50c1Bhbm5pbmdJ
bllBeGlzXSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0LnkgPSBzdGFydC55OworCisg
ICAgcmV0dXJuIGFkanVzdGVkQ29udGVudE9mZnNldDsKK30KKwogLSAodm9pZClzY3JvbGxWaWV3
RGlkU2Nyb2xsOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3CiB7CiAgICAgaWYgKCFbc2VsZiB1
c2VzU3RhbmRhcmRDb250ZW50Vmlld10gJiYgW19jdXN0b21Db250ZW50VmlldyByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKHdlYl9zY3JvbGxWaWV3RGlkU2Nyb2xsOildKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGE5NTljOTNi
Yzc1OWQxYzk4NjY4YzgxZGFkYTAxZTI2N2YzNWI5YjEuLmY5NjRmYzk4MWVkMzE0Y2FiN2ViNDRl
ZjgzY2QzNjkyODdmYWUzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5jcHAKQEAgLTIwNiw2ICsyMDYsMzMgQEAgU3RyaW5nIFJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHk6OnNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdAogICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorT3B0
aW9uYWw8VG91Y2hBY3Rpb25EYXRhPiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojp0
b3VjaEFjdGlvbkRhdGFBdFBvaW50KGNvbnN0IEludFBvaW50IHApIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fc2Nyb2xsaW5nVHJlZS0+dG91Y2hBY3Rpb25EYXRhQXRQb2ludChwKTsKK30KKworT3B0
aW9uYWw8VG91Y2hBY3Rpb25EYXRhPiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojp0
b3VjaEFjdGlvbkRhdGFGb3JTY3JvbGxOb2RlSUQoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05v
ZGVJRCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIHRvdWNoQWN0aW9uRGF0YSA6IG1fdG91Y2hB
Y3Rpb25EYXRhQnlUb3VjaElkZW50aWZpZXIudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHRvdWNo
QWN0aW9uRGF0YS5zY3JvbGxpbmdOb2RlSUQgPT0gc2Nyb2xsaW5nTm9kZUlEKQorICAgICAgICAg
ICAgcmV0dXJuIHRvdWNoQWN0aW9uRGF0YTsKKyAgICB9CisgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKK30KKwordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzZXRUb3VjaERh
dGFGb3JUb3VjaElkZW50aWZpZXIoVG91Y2hBY3Rpb25EYXRhIHRvdWNoQWN0aW9uRGF0YSwgdW5z
aWduZWQgdG91Y2hJZGVudGlmaWVyKQoreworICAgIG1fdG91Y2hBY3Rpb25EYXRhQnlUb3VjaElk
ZW50aWZpZXIuc2V0KHRvdWNoSWRlbnRpZmllciwgdG91Y2hBY3Rpb25EYXRhKTsKK30KKwordm9p
ZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpjbGVhclRvdWNoRGF0YUZvclRvdWNo
SWRlbnRpZmllcih1bnNpZ25lZCB0b3VjaElkZW50aWZpZXIpCit7CisgICAgbV90b3VjaEFjdGlv
bkRhdGFCeVRvdWNoSWRlbnRpZmllci5yZW1vdmUodG91Y2hJZGVudGlmaWVyKTsKK30KKworI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5o
CmluZGV4IGIzMmQ3OWZlOTI4OWIxNDU3YzhlYWQyZDhkMzVjM2I3OWRhZWM5NmEuLmRmMDcxNTY2
MmY0ZGM5OTVjYmQ1MzVjYTM3ZTgxYzI2YTI5ZDNlMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaApAQCAtOTgsNiArOTgsMTMgQEAgcHVibGljOgog
CiAgICAgU3RyaW5nIHNjcm9sbGluZ1RyZWVBc1RleHQoKSBjb25zdDsKIAorI2lmIEVOQUJMRShQ
T0lOVEVSX0VWRU5UUykKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpUb3VjaEFjdGlvbkRhdGE+IHRv
dWNoQWN0aW9uRGF0YUF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQpIGNvbnN0OworICAg
IE9wdGlvbmFsPFdlYkNvcmU6OlRvdWNoQWN0aW9uRGF0YT4gdG91Y2hBY3Rpb25EYXRhRm9yU2Ny
b2xsTm9kZUlEKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCkgY29uc3Q7CisgICAgdm9pZCBzZXRU
b3VjaERhdGFGb3JUb3VjaElkZW50aWZpZXIoV2ViQ29yZTo6VG91Y2hBY3Rpb25EYXRhLCB1bnNp
Z25lZCk7CisgICAgdm9pZCBjbGVhclRvdWNoRGF0YUZvclRvdWNoSWRlbnRpZmllcih1bnNpZ25l
ZCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB2b2lkIGNvbm5lY3RTdGF0ZU5vZGVMYXllcnMo
V2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlJiwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlSG9zdCYp
OwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCkBAIC0xMDcsNiArMTE0LDkgQEAgcHJpdmF0
ZToKIAogICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJveHk7CiAgICAgUmVmUHRyPFJlbW90
ZVNjcm9sbGluZ1RyZWU+IG1fc2Nyb2xsaW5nVHJlZTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVO
VFMpCisgICAgSGFzaE1hcDx1bnNpZ25lZCwgV2ViQ29yZTo6VG91Y2hBY3Rpb25EYXRhPiBtX3Rv
dWNoQWN0aW9uRGF0YUJ5VG91Y2hJZGVudGlmaWVyOworI2VuZGlmCiAgICAgUmVxdWVzdGVkU2Ny
b2xsSW5mbyogbV9yZXF1ZXN0ZWRTY3JvbGxJbmZvOwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NO
QVApCiAgICAgdW5zaWduZWQgbV9jdXJyZW50SG9yaXpvbnRhbFNuYXBQb2ludEluZGV4IHsgMCB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
RGVsZWdhdGVJT1MuaAppbmRleCAzOTdlZmVkNjM2ZjhmNWNmODNmNDYxYTI0YzdhODRhM2VhYjVm
ODdkLi5hMzRjODBjNzA1N2RmZDBjMGMzYTkwNDQyNjU3MjUzMjFhN2EyY2I5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJ
T1MuaApAQCAtNjUsNiArNjUsOSBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCBz
Y3JvbGxQb3NpdGlvbigpIGNvbnN0OwogICAgIHZvaWQgc2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jik7CiAgICAgdm9pZCB1cGRhdGVDaGlsZE5vZGVzQWZ0
ZXJTY3JvbGwoY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pOworI2lm
IEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBPcHRpb25hbDxUb3VjaEFjdGlvbkRhdGE+IHRv
dWNoQWN0aW9uRGF0YSgpIGNvbnN0OworI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PENBTGF5ZXI+IG1fc2Nyb2xsTGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1MubW0KaW5kZXggNGNjN2UxYTg3Yjg1
YWM3MDYzN2UxNWY0NGNjMWU0ZjhmOTIxOWM0Yy4uZGM1NWRhOTQxYzAzN2ZhYjYzNGI4ZTA4YTEx
ZGVjYWIzMjUxNWE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbQpAQCAtNjcsOSArNjcsMjkgQEAgLSAodm9p
ZClzY3JvbGxWaWV3V2lsbEJlZ2luRHJhZ2dpbmc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcK
ICAgICBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsV2lsbFN0YXJ0KCk7CiB9CiAK
LSNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogLSAodm9pZClzY3JvbGxWaWV3V2lsbEVuZERy
YWdnaW5nOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2
ZWxvY2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFyZ2V0Q29udGVu
dE9mZnNldAogeworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBpZiAoIVtzY3JvbGxW
aWV3IGlzWm9vbWluZ10pIHsKKyAgICAgICAgaWYgKGF1dG8gdG91Y2hBY3Rpb25EYXRhID0gX3Nj
cm9sbGluZ1RyZWVOb2RlRGVsZWdhdGUtPnRvdWNoQWN0aW9uRGF0YSgpKSB7CisgICAgICAgICAg
ICBhdXRvIHRvdWNoQWN0aW9ucyA9IHRvdWNoQWN0aW9uRGF0YS0+dG91Y2hBY3Rpb25zOworICAg
ICAgICAgICAgaWYgKHRvdWNoQWN0aW9ucyAhPSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6QXV0byAm
JiB0b3VjaEFjdGlvbnMgIT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikgewor
ICAgICAgICAgICAgICAgIGJvb2wgY2FuUGFuWCA9IHRydWU7CisgICAgICAgICAgICAgICAgYm9v
bCBjYW5QYW5ZID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAoIXRvdWNoQWN0aW9ucy5jb250
YWlucyhXZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGFuWCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FuUGFuWCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICB0YXJnZXRDb250ZW50T2Zmc2V0
LT54ID0gc2Nyb2xsVmlldy5jb250ZW50T2Zmc2V0Lng7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNvcmU6OlRvdWNoQWN0
aW9uOjpQYW5ZKSkgeworICAgICAgICAgICAgICAgICAgICBjYW5QYW5ZID0gZmFsc2U7CisgICAg
ICAgICAgICAgICAgICAgIHRhcmdldENvbnRlbnRPZmZzZXQtPnkgPSBzY3JvbGxWaWV3LmNvbnRl
bnRPZmZzZXQueTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgQ0dGbG9h
dCBob3Jpem9udGFsVGFyZ2V0ID0gdGFyZ2V0Q29udGVudE9mZnNldC0+eDsKICAgICBDR0Zsb2F0
IHZlcnRpY2FsVGFyZ2V0ID0gdGFyZ2V0Q29udGVudE9mZnNldC0+eTsKIApAQCAtOTYsOCArMTE2
LDggQEAgLSAodm9pZClzY3JvbGxWaWV3V2lsbEVuZERyYWdnaW5nOihVSVNjcm9sbFZpZXcgKilz
Y3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2kKICAgICAgICAgfHwgb3JpZ2luYWxWZXJ0aWNh
bFNuYXBQb3NpdGlvbiAhPSBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9k
ZSgpLmN1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4KCkpIHsKICAgICAgICAgX3Njcm9sbGlu
Z1RyZWVOb2RlRGVsZWdhdGUtPmN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKF9zY3Jv
bGxpbmdUcmVlTm9kZURlbGVnYXRlLT5zY3JvbGxpbmdOb2RlKCkuY3VycmVudEhvcml6b250YWxT
bmFwUG9pbnRJbmRleCgpLCBfc2Nyb2xsaW5nVHJlZU5vZGVEZWxlZ2F0ZS0+c2Nyb2xsaW5nTm9k
ZSgpLmN1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4KCkpOwogICAgIH0KLX0KICNlbmRpZgor
fQogCiAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREcmFnZ2luZzooVUlTY3JvbGxWaWV3ICopc2Ny
b2xsVmlldyB3aWxsRGVjZWxlcmF0ZTooQk9PTCl3aWxsRGVjZWxlcmF0ZQogewpAQCAtMTE3LDYg
KzEzNywyOCBAQCAtICh2b2lkKXNjcm9sbFZpZXdEaWRFbmREZWNlbGVyYXRpbmc6KFVJU2Nyb2xs
VmlldyAqKXNjcm9sbFZpZXcKICAgICB9CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9FVkVOVFMp
CistIChDR1BvaW50KV9zY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IGFkanVz
dGVkT2Zmc2V0Rm9yT2Zmc2V0OihDR1BvaW50KW9mZnNldCB0cmFuc2xhdGlvbjooQ0dQb2ludCl0
cmFuc2xhdGlvbiBzdGFydFBvaW50OihDR1BvaW50KXN0YXJ0IGxvY2F0aW9uSW5WaWV3OihDR1Bv
aW50KWxvY2F0aW9uSW5WaWV3IGhvcml6b250YWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopaHYg
dmVydGljYWxWZWxvY2l0eTooaW5vdXQgZG91YmxlICopdnYKK3sKKyAgICBhdXRvIHRvdWNoQWN0
aW9uRGF0YSA9IF9zY3JvbGxpbmdUcmVlTm9kZURlbGVnYXRlLT50b3VjaEFjdGlvbkRhdGEoKTsK
KyAgICBpZiAoIXRvdWNoQWN0aW9uRGF0YSkKKyAgICAgICAgcmV0dXJuIG9mZnNldDsKKworICAg
IGF1dG8gdG91Y2hBY3Rpb25zID0gdG91Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnM7CisgICAg
aWYgKHRvdWNoQWN0aW9ucyA9PSBXZWJDb3JlOjpUb3VjaEFjdGlvbjo6QXV0byB8fCB0b3VjaEFj
dGlvbnMgPT0gV2ViQ29yZTo6VG91Y2hBY3Rpb246Ok1hbmlwdWxhdGlvbikKKyAgICAgICAgcmV0
dXJuIG9mZnNldDsKKworICAgIENHUG9pbnQgYWRqdXN0ZWRDb250ZW50T2Zmc2V0ID0gQ0dQb2lu
dE1ha2Uob2Zmc2V0LngsIG9mZnNldC55KTsKKworICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRh
aW5zKFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpQYW5YKSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50
T2Zmc2V0LnggPSBzdGFydC54OworICAgIGlmICghdG91Y2hBY3Rpb25zLmNvbnRhaW5zKFdlYkNv
cmU6OlRvdWNoQWN0aW9uOjpQYW5ZKSkKKyAgICAgICAgYWRqdXN0ZWRDb250ZW50T2Zmc2V0Lnkg
PSBzdGFydC55OworCisgICAgcmV0dXJuIGFkanVzdGVkQ29udGVudE9mZnNldDsKK30KKyNlbmRp
ZgorCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjg3LDYgKzMyOSwxMyBAQCB2b2lk
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVJT1M6OmN1cnJlbnRTbmFwUG9pbnRJ
bmRpY2VzRGlkQ2hhbmdlKHVucwogICAgIHNjcm9sbGluZ1RyZWUoKS5jdXJyZW50U25hcFBvaW50
SW5kaWNlc0RpZENoYW5nZShzY3JvbGxpbmdOb2RlKCkuc2Nyb2xsaW5nTm9kZUlEKCksIGhvcml6
b250YWwsIHZlcnRpY2FsKTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKK09wdGlv
bmFsPFRvdWNoQWN0aW9uRGF0YT4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlP
Uzo6dG91Y2hBY3Rpb25EYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG93bmNhc3Q8UmVtb3Rl
U2Nyb2xsaW5nVHJlZT4oc2Nyb2xsaW5nVHJlZSgpKS5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5
KCkudG91Y2hBY3Rpb25EYXRhRm9yU2Nyb2xsTm9kZUlEKHNjcm9sbGluZ05vZGUoKS5zY3JvbGxp
bmdOb2RlSUQoKSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2YzhmODVjYTcyYzk1ZmEzZmI3
M2U1NWYwZjMzMjI3YWQ0YTNkZjZiLi4xOWIxMmY0MmQzOWM1NTZkNmRkYzY0N2I2OWQ0MjU3YThl
NzVkMzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjc4LDYg
KzY3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9sbEF0UG9zaXRpb24oY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb25JbldpbmRvdyk7CiAgICAgdm9pZCBjYW5j
ZWxBdXRvc2Nyb2xsKCk7CiAgICAgdm9pZCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hh
bmdlZCgpOworICAgIGJvb2wgaXNTY3JvbGxpbmdPclpvb21pbmcoKSBjb25zdCB7IHJldHVybiBt
X2lzU2Nyb2xsaW5nT3Jab29taW5nOyB9CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAg
ICAgdm9pZCBkaWRIYW5kbGVEcmFnU3RhcnRSZXF1ZXN0KGJvb2wgc3RhcnRlZCk7CiAgICAgdm9p
ZCBkaWRIYW5kbGVBZGRpdGlvbmFsRHJhZ0l0ZW1zUmVxdWVzdChib29sIGFkZGVkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAppbmRleCA1ZWE3Nzc2ZTVhZTgwN2RkZTA4NWYyOGEyZjI5NzEzNzBiMDA3ZWRkLi5iYWNh
M2ZhYTNjY2Y2N2UzNWQ1Y2ZjYTQ4NDA3NDJjY2NjMjYxNGIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0x
OTYsNiArMTk2LDEwIEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgUmV0YWlu
UHRyPFVJV2ViVG91Y2hFdmVudHNHZXN0dXJlUmVjb2duaXplcj4gX3RvdWNoRXZlbnRHZXN0dXJl
UmVjb2duaXplcjsKIAogICAgIEJPT0wgX2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5
OworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBCT09MIF9wcmV2ZW50c1Bhbm5pbmdJ
blhBeGlzOworICAgIEJPT0wgX3ByZXZlbnRzUGFubmluZ0luWUF4aXM7CisjZW5kaWYKIAogICAg
IFJldGFpblB0cjxXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXI+IF9zaW5nbGVU
YXBHZXN0dXJlUmVjb2duaXplcjsKICAgICBSZXRhaW5QdHI8X1VJV2ViSGlnaGxpZ2h0TG9uZ1By
ZXNzR2VzdHVyZVJlY29nbml6ZXI+IF9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXpl
cjsKQEAgLTM0OSw2ICszNTMsMTAgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVu
dEluZm9ybWF0aW9uJiBmb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOwogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBVSVdlYkZvcm1BY2Nlc3NvcnkgKmZvcm1BY2Nlc3NvcnlWaWV3Owog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVRleHRJbnB1dEFzc2lzdGFudEl0ZW0g
KmlucHV0QXNzaXN0YW50SXRlbUZvcldlYlZpZXc7CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRT
KQorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHByZXZlbnRzUGFubmluZ0lu
WEF4aXM7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgcHJldmVudHNQYW5u
aW5nSW5ZQXhpczsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBVSVZpZXcgPFdLRm9ybUNvbnRyb2w+ICpkYXRhTGlz
dFRleHRTdWdnZXN0aW9uc0lucHV0VmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDhjYTlmYzJkZDIw
MTdlM2Q4MmVlMzM0NGZlN2VjNWFhMTdlNmFlOTYuLjFhMTJhNmNjNzdjN2VmMWM1OWNiNzNmZWIy
Yzc4NzNhZjU4ZDQ0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTI5LDYgKzEyOSwxMSBAQAogI2lt
cG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLUGxhdGZvcm1GaWxlVXBsb2FkUGFuZWwubW0+CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyNpbXBvcnQgIlJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUvVG91Y2hBY3Rpb24uaD4KKyNl
bmRpZgorCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKIAogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3
IChXYXRjaFN1cHBvcnQpIDxXS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXdEZWxlZ2F0ZSwgV0tTZWxl
Y3RNZW51TGlzdFZpZXdDb250cm9sbGVyRGVsZWdhdGUsIFdLVGV4dElucHV0TGlzdFZpZXdDb250
cm9sbGVyRGVsZWdhdGU+CkBAIC02MDgsNiArNjEzLDE4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBo
YXNGb2N1c2VkRWxlbWVudChXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24gZm9jdXNl
ZEVsCiAgICAgcmV0dXJuIChmb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlICE9
IFdlYktpdDo6SW5wdXRUeXBlOjpOb25lKTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5U
UykKKy0gKEJPT0wpcHJldmVudHNQYW5uaW5nSW5YQXhpcworeworICAgIHJldHVybiBfcHJldmVu
dHNQYW5uaW5nSW5YQXhpczsKK30KKworLSAoQk9PTClwcmV2ZW50c1Bhbm5pbmdJbllBeGlzCit7
CisgICAgcmV0dXJuIF9wcmV2ZW50c1Bhbm5pbmdJbllBeGlzOworfQorI2VuZGlmCisKIC0gKFdL
Rm9ybUlucHV0U2Vzc2lvbiAqKV9mb3JtSW5wdXRTZXNzaW9uCiB7CiAgICAgcmV0dXJuIF9mb3Jt
SW5wdXRTZXNzaW9uLmdldCgpOwpAQCAtODU0LDYgKzg3MSwxMCBAQCAtICh2b2lkKWNsZWFudXBJ
bnRlcmFjdGlvbgogICAgIF9oYXNTZXRVcEludGVyYWN0aW9ucyA9IE5POwogICAgIF9zdXBwcmVz
c1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMgPSB7IH07CiAgICAgX2lzWm9vbWluZ1RvUmV2ZWFs
Rm9jdXNlZEVsZW1lbnQgPSBOTzsKKworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICBb
c2VsZiBfcmVzZXRQYW5uaW5nUHJldmVudGlvbkZsYWdzXTsKKyNlbmRpZgogfQogCiAtICh2b2lk
KV9yZW1vdmVEZWZhdWx0R2VzdHVyZVJlY29nbml6ZXJzCkBAIC0xMTIxLDE2ICsxMTQyLDYyIEBA
IC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDooVUlXZWJUb3VjaEV2ZW50c0dlc3R1
cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlCiAgICAgV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50
IG5hdGl2ZVdlYlRvdWNoRXZlbnQobGFzdFRvdWNoRXZlbnQpOwogICAgIG5hdGl2ZVdlYlRvdWNo
RXZlbnQuc2V0Q2FuUHJldmVudE5hdGl2ZUdlc3R1cmVzKCFfY2FuU2VuZFRvdWNoRXZlbnRzQXN5
bmNocm9ub3VzbHkgfHwgW2dlc3R1cmVSZWNvZ25pemVyIGlzRGVmYXVsdFByZXZlbnRlZF0pOwog
CisjaWYgRU5BQkxFKFBPSU5URVJfRVZFTlRTKQorICAgIFtzZWxmIF9oYW5kbGVUb3VjaEFjdGlv
bnNGb3JUb3VjaEV2ZW50Om5hdGl2ZVdlYlRvdWNoRXZlbnRdOworI2VuZGlmCisKICAgICBpZiAo
X2NhblNlbmRUb3VjaEV2ZW50c0FzeW5jaHJvbm91c2x5KQogICAgICAgICBfcGFnZS0+aGFuZGxl
VG91Y2hFdmVudEFzeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRvdWNoRXZlbnQpOwogICAgIGVsc2UK
ICAgICAgICAgX3BhZ2UtPmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5KG5hdGl2ZVdlYlRv
dWNoRXZlbnQpOwogCi0gICAgaWYgKG5hdGl2ZVdlYlRvdWNoRXZlbnQuYWxsVG91Y2hQb2ludHNB
cmVSZWxlYXNlZCgpKQorICAgIGlmIChuYXRpdmVXZWJUb3VjaEV2ZW50LmFsbFRvdWNoUG9pbnRz
QXJlUmVsZWFzZWQoKSkgewogICAgICAgICBfY2FuU2VuZFRvdWNoRXZlbnRzQXN5bmNocm9ub3Vz
bHkgPSBOTzsKKworI2lmIEVOQUJMRShQT0lOVEVSX0VWRU5UUykKKyAgICAgICAgaWYgKCFfcGFn
ZS0+aXNTY3JvbGxpbmdPclpvb21pbmcoKSkKKyAgICAgICAgICAgIFtzZWxmIF9yZXNldFBhbm5p
bmdQcmV2ZW50aW9uRmxhZ3NdOwogI2VuZGlmCisgICAgfQorI2VuZGlmCit9CisKKyNpZiBFTkFC
TEUoUE9JTlRFUl9FVkVOVFMpCistICh2b2lkKV9oYW5kbGVUb3VjaEFjdGlvbnNGb3JUb3VjaEV2
ZW50Oihjb25zdCBXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQmKXRvdWNoRXZlbnQKK3sKKyAg
ICBhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IF9wYWdlLT5zY3JvbGxpbmdDb29yZGluYXRv
clByb3h5KCk7CisgICAgaWYgKCFzY3JvbGxpbmdDb29yZGluYXRvcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgZm9yIChjb25zdCBhdXRvJiB0b3VjaFBvaW50IDogdG91Y2hFdmVudC50b3VjaFBv
aW50cygpKSB7CisgICAgICAgIGF1dG8gcGhhc2UgPSB0b3VjaFBvaW50LnBoYXNlKCk7CisgICAg
ICAgIGlmIChwaGFzZSAhPSBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVz
c2VkKSB7CisgICAgICAgICAgICBpZiAoYXV0byB0b3VjaEFjdGlvbkRhdGEgPSBzY3JvbGxpbmdD
b29yZGluYXRvci0+dG91Y2hBY3Rpb25EYXRhQXRQb2ludCh0b3VjaFBvaW50LmxvY2F0aW9uKCkp
KSB7CisgICAgICAgICAgICAgICAgaWYgKHRvdWNoQWN0aW9uRGF0YS0+dG91Y2hBY3Rpb25zID09
IFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpOb25lKQorICAgICAgICAgICAgICAgICAgICBbX3RvdWNo
RXZlbnRHZXN0dXJlUmVjb2duaXplciBzZXREZWZhdWx0UHJldmVudGVkOllFU107CisgICAgICAg
ICAgICAgICAgZWxzZSBpZiAoIXRvdWNoQWN0aW9uRGF0YS0+dG91Y2hBY3Rpb25zLmNvbnRhaW5z
KFdlYkNvcmU6OlRvdWNoQWN0aW9uOjpNYW5pcHVsYXRpb24pKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChhdXRvIHNjcm9sbGluZ05vZGVJRCA9IHRvdWNoQWN0aW9uRGF0YS0+c2Nyb2xsaW5n
Tm9kZUlEKQorICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnNl
dFRvdWNoRGF0YUZvclRvdWNoSWRlbnRpZmllcigqdG91Y2hBY3Rpb25EYXRhLCB0b3VjaFBvaW50
LmlkZW50aWZpZXIoKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCF0b3VjaEFjdGlvbkRhdGEtPnRvdWNoQWN0aW9ucy5jb250YWlucyhX
ZWJDb3JlOjpUb3VjaEFjdGlvbjo6UGluY2hab29tKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfd2ViVmlldy5zY3JvbGxWaWV3LnBpbmNoR2VzdHVyZVJlY29nbml6ZXIuZW5hYmxlZCA9
IE5POworICAgICAgICAgICAgICAgICAgICAgICAgX3ByZXZlbnRzUGFubmluZ0luWEF4aXMgPSAh
dG91Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91Y2hBY3Rp
b246OlBhblgpOworICAgICAgICAgICAgICAgICAgICAgICAgX3ByZXZlbnRzUGFubmluZ0luWUF4
aXMgPSAhdG91Y2hBY3Rpb25EYXRhLT50b3VjaEFjdGlvbnMuY29udGFpbnMoV2ViQ29yZTo6VG91
Y2hBY3Rpb246OlBhblkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHBoYXNlID09IFdlYktpdDo6V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkIHx8IHBoYXNlID09IFdlYktpdDo6V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaENhbmNlbGxlZCkKKyAgICAgICAgICAgIHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLT5jbGVhclRvdWNoRGF0YUZvclRvdWNoSWRlbnRpZmllcih0b3VjaFBvaW50
LmlkZW50aWZpZXIoKSk7CisgICAgfQogfQogCistICh2b2lkKV9yZXNldFBhbm5pbmdQcmV2ZW50
aW9uRmxhZ3MKK3sKKyAgICBfcHJldmVudHNQYW5uaW5nSW5YQXhpcyA9IE5POworICAgIF9wcmV2
ZW50c1Bhbm5pbmdJbllBeGlzID0gTk87Cit9CisjZW5kaWYKKwogLSAodm9pZClfaW5zcGVjdG9y
Tm9kZVNlYXJjaFJlY29nbml6ZWQ6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2du
aXplcgogewogICAgIEFTU0VSVChfaW5zcGVjdG9yTm9kZVNlYXJjaEVuYWJsZWQpOwpAQCAtMjE5
Miw2ICsyMjU5LDEwIEBAIC0gKHZvaWQpX2RpZEVuZFNjcm9sbGluZ09yWm9vbWluZwogICAgIH0K
ICAgICBfcGFnZS0+c2V0SXNTY3JvbGxpbmdPclpvb21pbmcoZmFsc2UpOwogCisjaWYgRU5BQkxF
KFBPSU5URVJfRVZFTlRTKQorICAgIFtzZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3Nd
OworI2VuZGlmCisKICNpZiBQTEFURk9STShXQVRDSE9TKQogICAgIFtfZm9jdXNlZEZvcm1Db250
cm9sVmlldyBlbmdhZ2VGb2N1c2VkRm9ybUNvbnRyb2xOYXZpZ2F0aW9uXTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGY0OTkyODIxZjgwMTllZjJhNGI0YWU2NGE1NzQxYTYyNTQyZGZkMWUuLjg0NTJkZGE3OGRm
MzcxOGUxYTVmOTZjZjVhMzFhNjZlZTM0ODJlY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAx
OS0wMS0yOCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIExp
bWl0IHVzZXItYWdlbnQgaW50ZXJhY3Rpb25zIGJhc2VkIG9uIHRoZSB0b3VjaC1hY3Rpb24gcHJv
cGVydHkgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTM0NDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3MjgzODc0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBzZXJpZXMg
b2YgdGVzdHMgdGhhdCBjaGVjayB0aGF0IHRoZSAibm9uZSIsICJwYW4teCIsICJwYW4teSIgYW5k
ICJwaW5jaC16b29tIiB2YWx1ZXMgaGF2ZSB0aGUgZXhwZWN0ZWQKKyAgICAgICAgaW1wYWN0IG9u
IHBhZ2UgcGFubmluZyBvbiBpT1MuCisKKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tbm9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1ub25lLWluLW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9u
ZS1vbi1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1wYW4teC1wYW4teS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXguaHRtbDogQWRkZWQuCisgICAgICAg
ICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15Lmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16
b29tLWFsbG93cy16b29taW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmcuaHRtbDog
QWRkZWQuCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpv
b20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5n
Lmh0bWw6IEFkZGVkLgorCiAyMDE5LTAxLTI4ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZA
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBDaGFuZ2VzIHBhbmVsIHRv
IEVsZW1lbnRzIHRhYgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50
cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyN2U4YWY4
MWJkOTg0YzhjMzQwNzA1NTFhZjViNjFlOTI3MGZmODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9u
OiBub25lIG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1v
dmVyZmxvdy1zY3JvbGxpbmctdG91Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNo
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzAwNzI5MTAyNDVlZjU3NTg3ZWJlOWM1MmM5ZmFi
YzA1MzJkMWMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9p
b3MvdG91Y2gtYWN0aW9uLW5vbmUtaW4tb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1h
Y3Rpb246IG5vbmUgaW4gY29udGVudCBob3N0ZWQgaW4gYSBzY3JvbGxhYmxlIGNvbnRhaW5lciB1
c2luZyAnLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoJyBwcmV2ZW50cyBzY3JvbGxp
bmcgb2YgdGhhdCBjb250YWluZXIuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVy
ZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxpbmctdG91Y2gu
aHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLWlu
LW92ZXJmbG93LXNjcm9sbGluZy10b3VjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllOTYxNGZmZWZjZWZi
ZWFmZTY3NDE3NGI1ODE1NDFjMGYyMzUxNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1pbi1vdmVyZmxvdy1zY3JvbGxp
bmctdG91Y2guaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRl
bnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzxzdHlsZT4KKworI3Nj
cm9sbGluZy1jb250YWluZXIgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBsZWZ0OiAw
OworICAgIHRvcDogMDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKKyAg
ICBvdmVyZmxvdzogc2Nyb2xsOworICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3Vj
aDsKK30KKworI3Njcm9sbGluZy1jb250YWluZXIgPiBkaXYgeworICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICBsZWZ0OiAwOworICAgIHRvcDogMDsKKyAgICB3aWR0aDogMjAwJTsKKyAgICBo
ZWlnaHQ6IDIwMCU7CisgICAgdG91Y2gtYWN0aW9uOiBub25lOworfQorCis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJzY3JvbGxpbmctY29udGFpbmVyIj48ZGl2PjwvZGl2Pjwv
ZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
CisndXNlIHN0cmljdCc7CisKK2FzeW5jX3Rlc3QodGVzdCA9PiB7CisgICAgY29uc3Qgc2Nyb2xs
aW5nQ29udGFpbmVyID0gZG9jdW1lbnQuYm9keS5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICB1aS5z
d2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4gewor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0NvbnRhaW5lci5zY3JvbGxMZWZ0LCAwLCAi
VGhlIHNjcm9sbGluZyBjb250YWluZXIgd2FzIG5vdCBzY3JvbGxlZCBpbiB0aGUgeC1heGlzLiIp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHNjcm9sbGluZ0NvbnRhaW5lci5zY3JvbGxUb3AsIDAs
ICJUaGUgc2Nyb2xsaW5nIGNvbnRhaW5lciB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMu
Iik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0
aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBpbiBjb250ZW50IGhvc3RlZCBpbiBhIHNjcm9sbGFibGUg
Y29udGFpbmVyIHVzaW5nICctd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2gnIHByZXZl
bnRzIHNjcm9sbGluZyBvZiB0aGF0IGNvbnRhaW5lci4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LW9uLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY3NTFiZGQ3YzM0NjJhMWUwODZm
ZmM3M2YzNTNlZDQ0ZGFmN2ZiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25lLW9uLWlmcmFtZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACisKKworUEFTUyBUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246
IG5vbmUgb24gYW4gaWZyYW1lIGFuZCBpbnRlcmFjdGluZyB3aXRoIGl0cyBjb250ZW50IHByZXZl
bnRzIHBhZ2Ugc2Nyb2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1pZnJhbWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kOTI3ZWE4ZGI0NjE3NDM0MWM1MWEwYzRjYzUyNTNlNWI2MjA3YTJkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUt
b24taWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CisKK2lm
cmFtZSB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxlZnQ6IDA7CisgICAgdG9wOiAw
OworICAgIHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworICAgIHRvdWNoLWFjdGlv
bjogbm9uZTsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZT48L2lmcmFt
ZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwor
J3VzZSBzdHJpY3QnOworCithc3luY190ZXN0KHRlc3QgPT4geworICAgIGNvbnN0IGlmcmFtZSA9
IGRvY3VtZW50LmJvZHkuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgY29uc3QgdGFyZ2V0ID0gaWZy
YW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpKTsKKyAgICB0YXJnZXQuc2V0QXR0cmlidXRlKCJzdHlsZSIsIGAKKyAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwOworICAgICAgICB0b3A6IDA7Cisg
ICAgICAgIHdpZHRoOiAyMDAlOworICAgICAgICBoZWlnaHQ6IDIwMCU7CisgICAgYCk7CisKKyAg
ICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkg
PT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBw
YWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGlu
IHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3Rp
bmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBpZnJhbWUgYW5kIGludGVy
YWN0aW5nIHdpdGggaXRzIGNvbnRlbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcuIik7CisKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1ub25l
LW9uLXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMmIx
MzA0OTY4YTI5MWVhZGQxMzczOTUyNmZjMGQ4Y2JlMmEyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3RpbmcgdGhhdCBzZXR0aW5n
IHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhIHBhcmVudCBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Ny
b2xsaW5nLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tbm9uZS1vbi1wYXJlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTQ4MDc5
M2Y3OTBhNWM4NjI0MTc2OWY5OTMxZThmNDgwY2YzYjc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUtb24tcGFyZW50Lmh0
bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1k
ZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworJ3VzZSBzdHJpY3Qn
OworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiMjAwcHgiLCBoZWlnaHQ6ICIyMDBweCIgfSwgKHRh
cmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMjAwMHB4
IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIyMDAwcHgiOworICAgIGRvY3Vt
ZW50LmJvZHkuc3R5bGUudG91Y2hBY3Rpb24gPSAibm9uZSI7CisKKyAgICB1aS5zd2lwZSh7IHg6
IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBh
c3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Ny
b2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFn
ZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7
CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5n
IHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhIHBhcmVudCBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Ny
b2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tbm9uZS5odG1sIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLW5vbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDAwYjgzYmI5OGU0YWU1ZGRjOWE1OWM5
ODY3MmE2YTAzMjljZThiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2
ZW50cy9pb3MvdG91Y2gtYWN0aW9uLW5vbmUuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x
Ij4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIy
MDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1l
bnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUu
aGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAibm9u
ZSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwgeTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0p
LnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwg
MCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQgaW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNj
cm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAgICAgIHRlc3QuZG9uZSgpOworICAgIH0pOwor
fSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNoLWFjdGlvbjogbm9uZSBvbiBhbiBlbGVtZW50
IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5nLiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi14LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44N2U3ODM3OWRmNDVhNzE3NzQ3NmM4YmU3YjVkNjQwNDBmMGFhY2RlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9u
LXBhbi14LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHRoYXQg
c2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBz
Y3JvbGxpbmcgaW4gdGhlIHktYXhpcy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1wYW4teS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJlOTdiZGUzMjdmYzI5YzNhZTRiNzgwYTExMTY0N2NkNjhmZDVm
ODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXgtcGFuLXktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IFRlc3RpbmcgdGhhdCBzZXR0aW5nICd0b3VjaC1hY3Rpb246IHBhbi14IHBhbi15JyBvbiBhbiBl
bGVtZW50IGFsbG93cyBwYWdlIHNjcm9sbGluZyBpbiBib3RoIGF4ZXMuIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXku
aHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teC1w
YW4teS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUyMjkxYTRkOGM2N2MyMjE1MWMyMjlkODM3ZDcxYThmM2Qw
MGFiMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90
b3VjaC1hY3Rpb24tcGFuLXgtcGFuLXkuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBw
eCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQu
Ym9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVp
Z2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXgg
cGFuLXkiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1
MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMod2luZG93LnBhZ2VY
T2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAg
ICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNldCwgMCwgIlRoZSBwYWdlIHdh
cyBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9
KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyAndG91Y2gtYWN0aW9uOiBwYW4teCBwYW4teScg
b24gYW4gZWxlbWVudCBhbGxvd3MgcGFnZSBzY3JvbGxpbmcgaW4gYm90aCBheGVzLiIpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFu
LXguaHRtbCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4t
eC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNiOTIwNWY3ZWY1ZGEyY2FiNzAwMTljZmI4ZWE3MGY5NWQ3N2M2
ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3Vj
aC1hY3Rpb24tcGFuLXguaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCisndXNlIHN0cmljdCc7CisKK3RhcmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdo
dDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHls
ZS53aWR0aCA9ICIyMDAwcHgiOworICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIw
MDBweCI7CisKKyAgICB0YXJnZXQuc3R5bGUudG91Y2hBY3Rpb24gPSAicGFuLXgiOworCisgICAg
dWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+
IHsKKyAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMod2luZG93LnBhZ2VYT2Zmc2V0LCAwLCAiVGhl
IHBhZ2Ugd2FzIHNjcm9sbGVkIGluIHRoZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9lcXVh
bHMod2luZG93LnBhZ2VZT2Zmc2V0LCAwLCAiVGhlIHBhZ2Ugd2FzIG5vdCBzY3JvbGxlZCBpbiB0
aGUgeS1heGlzLiIpOworICAgICAgICB0ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5n
IHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rpb246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMg
cGFnZSBzY3JvbGxpbmcgaW4gdGhlIHktYXhpcy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBhbi15LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uM2ZmNjU4YzM4NjQyMjY3MTVhZTY3ZWE0MmZiYjkyODY4MDY5Mjg0OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFj
dGlvbi1wYW4teS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0
aGF0IHNldHRpbmcgdG91Y2gtYWN0aW9uOiBwYW4teCBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBh
Z2Ugc2Nyb2xsaW5nIGluIHRoZSB4LWF4aXMuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbCBiL0xheW91dFRlc3RzL3Bv
aW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1wYW4teS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkwOTBk
Mzk2MDFmYmVlMTdiZmQxYjk1ZjI0M2U5ZmFiYzUyMjc5NWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGFuLXkuaHRtbApAQCAt
MCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3Rh
cmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0
ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5
bGUudG91Y2hBY3Rpb24gPSAicGFuLXkiOworCisgICAgdWkuc3dpcGUoeyB4OiAxNTAsIHk6IDE1
MCB9LCB7IHg6IDUwLCB5OiA1MCB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyh3aW5kb3cucGFnZVhPZmZzZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRo
ZSB4LWF4aXMuIik7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHdpbmRvdy5wYWdlWU9mZnNl
dCwgMCwgIlRoZSBwYWdlIHdhcyBzY3JvbGxlZCBpbiB0aGUgeS1heGlzLiIpOworICAgICAgICB0
ZXN0LmRvbmUoKTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHRoYXQgc2V0dGluZyB0b3VjaC1hY3Rp
b246IHBhbi14IG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFnZSBzY3JvbGxpbmcgaW4gdGhlIHgt
YXhpcy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91
Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpvb21pbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tYWxsb3dzLXpv
b21pbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5NGU2NzYxNWUyYTU5OThmMzMzM2Y5MGZk
YTMwZGQxZGNhNWE0NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZl
bnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNldHRpbmcgdG91Y2gtYWN0
aW9uOiBwaW5jaC16b29tIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ugem9vbWluZy4gCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5j
aC16b29tLWFsbG93cy16b29taW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1hbGxvd3Mtem9vbWluZy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJkYTYzYzk0MjllMWFhMTM5MDI2ZWQ0MzEzY2VhNmQ1ZDQ3ODc5NzYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9v
bS1hbGxvd3Mtem9vbWluZy5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKworJ3VzZSBzdHJpY3QnOworCit0YXJnZXRfdGVzdCh7IHdpZHRoOiAiNDAwcHgiLCBoZWln
aHQ6ICI0MDBweCIgfSwgKHRhcmdldCwgdGVzdCkgPT4geworICAgIGRvY3VtZW50LmJvZHkuc3R5
bGUud2lkdGggPSAiMjAwMHB4IjsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIy
MDAwcHgiOworCisgICAgdGFyZ2V0LnN0eWxlLnRvdWNoQWN0aW9uID0gInBpbmNoLXpvb20iOwor
CisgICAgdWkucGluY2hPdXQoeyB4OiA1MCwgeTogNTAsIHdpZHRoOiAxMDAsIGhlaWdodDogMTAw
LCBzY2FsZTogMC41IH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyh3
aW5kb3cuaW50ZXJuYWxzLnBhZ2VTY2FsZUZhY3RvcigpLCAxLCAiVGhlIHBhZ2Ugd2FzIHNjYWxl
ZC4iKTsKKyAgICAgICAgdGVzdC5kb25lKCk7CisgICAgfSk7Cit9LCAiVGVzdGluZyB0aGF0IHNl
dHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFuIGVsZW1lbnQgYWxsb3dzIHBhZ2Ug
em9vbWluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3Mv
dG91Y2gtYWN0aW9uLXBpbmNoLXpvb20tcHJldmVudHMtc2Nyb2xsaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXBy
ZXZlbnRzLXNjcm9sbGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBjODViOWFhNTUyZGY5
YjcxZDlhZTQzOTc0MDUwZTBjMjg5OTgwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRzLXNjcm9s
bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyB0aGF0IHNl
dHRpbmcgdG91Y2gtYWN0aW9uOiBwaW5jaC16b29tIG9uIGFuIGVsZW1lbnQgcHJldmVudHMgcGFn
ZSBzY3JvbGxpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lv
cy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbCBiL0xheW91
dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1waW5jaC16b29tLXByZXZlbnRz
LXNjcm9sbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyMzQxYzYyMTUwN2EzZWU4MzczNGQyNzcxM2Q4
NGJmZjU1OWQ3ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcGluY2gtem9vbS1wcmV2ZW50cy1zY3JvbGxpbmcuaHRtbApAQCAt
MCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi91dGlscy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCisndXNlIHN0cmljdCc7CisKK3Rh
cmdldF90ZXN0KHsgd2lkdGg6ICIyMDBweCIsIGhlaWdodDogIjIwMHB4IiB9LCAodGFyZ2V0LCB0
ZXN0KSA9PiB7CisgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIyMDAwcHgiOworICAg
IGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjIwMDBweCI7CisKKyAgICB0YXJnZXQuc3R5
bGUudG91Y2hBY3Rpb24gPSAicGluY2gtem9vbSI7CisKKyAgICB1aS5zd2lwZSh7IHg6IDE1MCwg
eTogMTUwIH0sIHsgeDogNTAsIHk6IDUwIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHdpbmRvdy5wYWdlWE9mZnNldCwgMCwgIlRoZSBwYWdlIHdhcyBub3Qgc2Nyb2xsZWQg
aW4gdGhlIHgtYXhpcy4iKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5kb3cucGFnZVlPZmZz
ZXQsIDAsICJUaGUgcGFnZSB3YXMgbm90IHNjcm9sbGVkIGluIHRoZSB5LWF4aXMuIik7CisgICAg
ICAgIHRlc3QuZG9uZSgpOworICAgIH0pOworfSwgIlRlc3RpbmcgdGhhdCBzZXR0aW5nIHRvdWNo
LWFjdGlvbjogcGluY2gtem9vbSBvbiBhbiBlbGVtZW50IHByZXZlbnRzIHBhZ2Ugc2Nyb2xsaW5n
LiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCg==
</data>
<flag name="review"
          id="377042"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>