<?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>60779</bug_id>
          
          <creation_ts>2011-05-13 09:56:17 -0700</creation_ts>
          <short_desc>Bug in rubber banding logic for scroll animators</short_desc>
          <delta_ts>2011-08-11 16:39:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>atwilson</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>rakuco</cc>
    
    <cc>rob</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>403617</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-13 09:56:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/9002109&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403625</commentid>
    <comment_count>1</comment_count>
      <attachid>93473</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-13 10:06:17 -0700</bug_when>
    <thetext>Created attachment 93473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403635</commentid>
    <comment_count>2</comment_count>
      <attachid>93473</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-13 10:22:05 -0700</bug_when>
    <thetext>Comment on attachment 93473
Patch

Not a WebKit patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403649</commentid>
    <comment_count>3</comment_count>
      <attachid>93478</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-13 10:31:40 -0700</bug_when>
    <thetext>Created attachment 93478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403653</commentid>
    <comment_count>4</comment_count>
    <who name="William Siegrist">wsiegrist</who>
    <bug_when>2011-05-13 10:39:29 -0700</bug_when>
    <thetext>The content of attachment 93473 has been deleted by
    William Siegrist &lt;wsiegrist@apple.com&gt;
who provided the following reason:

deleted by request of jonlee

The token used to delete this attachment was generated at 2011-05-13 10:39:09 PST.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403680</commentid>
    <comment_count>5</comment_count>
      <attachid>93478</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-13 11:13:15 -0700</bug_when>
    <thetext>Comment on attachment 93478
Patch

Attachment 93478 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8693246</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403695</commentid>
    <comment_count>6</comment_count>
      <attachid>93478</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-05-13 11:30:45 -0700</bug_when>
    <thetext>Comment on attachment 93478
Patch

Attachment 93478 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8695180</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403705</commentid>
    <comment_count>7</comment_count>
      <attachid>93478</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-13 11:38:15 -0700</bug_when>
    <thetext>Comment on attachment 93478
Patch

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

r- because this needs some renaming work

&gt; Source/WebCore/dom/Document.cpp:425
&gt; +    , m_countWheelEventHandlers(0)

&apos;count&apos; reads like a verb. I&apos;d call it &apos;m_numWheelEventHandlers&apos; or &apos;m_wheelEventHandlersCount&apos;

&gt; Source/WebCore/dom/Document.h:1101
&gt; +    unsigned countWheelEventHandlers() const { return m_countWheelEventHandlers; }

This needs a new name too.

&gt; Source/WebCore/page/ChromeClient.h:324
&gt; +        virtual void updateCountWheelEventHandlers(unsigned) = 0;

This sounds like you want the callee to update their count. I think it&apos;s really &apos;numWheelEventHandlersChanged()&apos;, no?

&gt; Source/WebCore/page/EventHandler.cpp:-2144
&gt; -    view = m_frame-&gt;view();
&gt; -    if (!view)
&gt; -        return false;
&gt; -

Why this change?

&gt; Source/WebCore/page/Frame.cpp:1122
&gt; +static unsigned sumTotalWheelEventHandlers(const Frame* frame)

Awkwardly named.

&gt; Source/WebCore/page/Frame.cpp:1132
&gt; +    for (Frame* child = frame-&gt;tree()-&gt;firstChild(); child; child = child-&gt;tree()-&gt;nextSibling())
&gt; +        count += sumTotalWheelEventHandlers(child);

You could walk the entire tree via the FrameTree rather than recursing.

&gt; Source/WebCore/page/Frame.cpp:1137
&gt; +void Frame::recalculateTotalWheelEventHandlers() const

Odd that a &apos;recalculate&apos; method is const. This should be more like notifyChomeClientOfNewWheelEventHandlerCount() or something.

&gt; Source/WebCore/page/Frame.h:211
&gt; +        // Should only be called on the main frame of a page.
&gt; +        void recalculateTotalWheelEventHandlers() const;

I don&apos;t see an ASSERT that matches the comment.

&gt; Source/WebCore/platform/mac/ScrollAnimatorMac.mm:791
&gt; +        // after a gesture begins, we go through

Sentence case please.

&gt; Source/WebCore/platform/mac/ScrollAnimatorMac.mm:805
&gt; +            if ((wheelEvent.deltaX() &gt; 0 &amp;&amp;
&gt; +                !m_scrollableArea-&gt;shouldRubberBandInDirection(ScrollLeft) &amp;&amp;
&gt; +                (!m_scrollableArea-&gt;horizontalScrollbar() ||
&gt; +                m_scrollableArea-&gt;scrollPosition(m_scrollableArea-&gt;horizontalScrollbar()) &lt;= m_scrollableArea-&gt;minimumScrollPosition().x()))
&gt; +                ||
&gt; +                (wheelEvent.deltaX() &lt; 0 &amp;&amp;
&gt; +                !m_scrollableArea-&gt;shouldRubberBandInDirection(ScrollRight) &amp;&amp;
&gt; +                (!m_scrollableArea-&gt;horizontalScrollbar() ||
&gt; +                m_scrollableArea-&gt;scrollPosition(m_scrollableArea-&gt;horizontalScrollbar()) &gt;= m_scrollableArea-&gt;maximumScrollPosition().x()))) {
&gt; +                ScrollAnimator::handleWheelEvent(wheelEvent);

Ouch. Some inline helper functions would make this hugely more readable.

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:229
&gt; +    bool shouldWaitForWheelEvents();

Should be const.

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:616
&gt; +    void updateCountWheelEventHandlers(unsigned count) { m_wheelEventHandlerCount = count; }

updateWheelEventHandlersCount()

&gt; Source/WebKit2/UIProcess/WebPageProxy.messages.in:65
&gt; +    UpdateCountWheelEventHandlers(unsigned count)

Rename

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:770
&gt; +    default:
&gt; +        return true;

The default clause is defeating the compiler&apos;s ability to warn if not all values are handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403723</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-13 11:58:37 -0700</bug_when>
    <thetext>(In reply to comment #7)

&gt; &gt; Source/WebCore/page/EventHandler.cpp:-2144
&gt; &gt; -    view = m_frame-&gt;view();
&gt; &gt; -    if (!view)
&gt; &gt; -        return false;
&gt; &gt; -
&gt; 
&gt; Why this change?

Earlier in the method this check is already performed. Unless there&apos;s a possibility that the frame will lose the view by the time we hit this line, I don&apos;t think we have to check twice.

--

I am noting all of your renaming suggestions, and will upload a new patch shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403725</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-13 12:01:30 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; 
&gt; &gt; &gt; Source/WebCore/page/EventHandler.cpp:-2144
&gt; &gt; &gt; -    view = m_frame-&gt;view();
&gt; &gt; &gt; -    if (!view)
&gt; &gt; &gt; -        return false;
&gt; &gt; &gt; -
&gt; &gt; 
&gt; &gt; Why this change?
&gt; 
&gt; Earlier in the method this check is already performed. Unless there&apos;s a possibility that the frame will lose the view by the time we hit this line, I don&apos;t think we have to check twice.

You have to be really careful in code that allows arbitrary JS to be executed. This code is probably here because the event handler can run JS which results in the frame getting destroyed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403735</commentid>
    <comment_count>10</comment_count>
      <attachid>93478</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-13 12:15:56 -0700</bug_when>
    <thetext>Comment on attachment 93478
Patch

Attachment 93478 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/8699104</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403737</commentid>
    <comment_count>11</comment_count>
      <attachid>93478</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-13 12:22:34 -0700</bug_when>
    <thetext>Comment on attachment 93478
Patch

Attachment 93478 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8694234</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403780</commentid>
    <comment_count>12</comment_count>
      <attachid>93478</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-05-13 13:10:35 -0700</bug_when>
    <thetext>Comment on attachment 93478
Patch

Attachment 93478 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/8695211</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403836</commentid>
    <comment_count>13</comment_count>
      <attachid>93478</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-13 13:59:45 -0700</bug_when>
    <thetext>Comment on attachment 93478
Patch

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

Noticed the word coalesced spelled with two l&apos;s as &quot;coalesced&quot; in a few places.

&gt; Source/WebCore/page/ChromeClient.h:173
&gt; +        virtual bool shouldRubberBandInDirection(ScrollDirection) = 0;

These will need to be reimplemented for many platforms. That’s why the build of every platform except for Mac is failing.

&gt;&gt; Source/WebCore/page/ChromeClient.h:324
&gt;&gt; +        virtual void updateCountWheelEventHandlers(unsigned) = 0;
&gt; 
&gt; This sounds like you want the callee to update their count. I think it&apos;s really &apos;numWheelEventHandlersChanged()&apos;, no?

These will need to be reimplemented for many platforms. That’s why the build of every platform except for Mac is failing.

This name should probably be setWheelEventHandlerCount.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403881</commentid>
    <comment_count>14</comment_count>
      <attachid>93516</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-13 14:45:14 -0700</bug_when>
    <thetext>Created attachment 93516
Patch

Including Simon&apos;s and Darin&apos;s suggestions, as well as making additional spelling corrections to variable names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403886</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-13 14:48:42 -0700</bug_when>
    <thetext>Attachment 93516 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:766:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 47 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403889</commentid>
    <comment_count>16</comment_count>
      <attachid>93517</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-13 14:50:59 -0700</bug_when>
    <thetext>Created attachment 93517
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403905</commentid>
    <comment_count>17</comment_count>
      <attachid>93517</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-13 15:09:52 -0700</bug_when>
    <thetext>Comment on attachment 93517
Patch

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

&gt; Source/WebCore/platform/mac/ScrollAnimatorMac.mm:775
&gt; +static inline bool horizontalScrollPositionIsPastMinimum(ScrollableArea* scrollableArea)
&gt; +{
&gt; +    return scrollableArea-&gt;scrollPosition(scrollableArea-&gt;horizontalScrollbar()) &lt;= scrollableArea-&gt;minimumScrollPosition().x();
&gt; +}
&gt; +
&gt; +static inline bool horizontalScrollPositionIsPastMaximum(ScrollableArea* scrollableArea)
&gt; +{
&gt; +    return scrollableArea-&gt;scrollPosition(scrollableArea-&gt;horizontalScrollbar()) &gt;= scrollableArea-&gt;maximumScrollPosition().x();
&gt; +}

It seems reasonable to add these to ScrollableArea</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404075</commentid>
    <comment_count>18</comment_count>
      <attachid>93558</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-14 11:07:13 -0700</bug_when>
    <thetext>Created attachment 93558
Patch

Moved method to ScrollableArea, and added some additional logic to fix some regressions found in the rubber banding behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404086</commentid>
    <comment_count>19</comment_count>
      <attachid>93558</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-05-14 11:59:18 -0700</bug_when>
    <thetext>Comment on attachment 93558
Patch

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

Looking really good, but lets go another around.

&gt; Source/WebCore/page/Frame.cpp:1130
&gt; +    for (const Frame* frame = this; frame; frame = frame-&gt;tree()-&gt;traverseNext())
&gt; +        if (frame-&gt;document())
&gt; +            count += frame-&gt;document()-&gt;wheelEventHandlerCount();

This should have braces around for-loop.

&gt; Source/WebCore/page/FrameView.cpp:314
&gt; +    scrollAnimator()-&gt;didAddHorizontalScrollbar(scrollbar);

This should call ScrollView::didAddHorizontalScrollbar(scrollbar) instead of calling the animator directly.

&gt; Source/WebCore/page/FrameView.cpp:319
&gt; +    scrollAnimator()-&gt;willRemoveHorizontalScrollbar(scrollbar);

Same here.

&gt; Source/WebKit2/UIProcess/API/C/WKPage.h:291
&gt; +WK_EXPORT bool WKPageShouldWaitForWheelEvents(WKPageRef page);

I would rather this have a name and functionality that would work for all builds, including those without gesture events.  Perhaps, something along the lines of horizontal scrolls being noops...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404117</commentid>
    <comment_count>20</comment_count>
      <attachid>93569</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-14 14:04:55 -0700</bug_when>
    <thetext>Created attachment 93569
Patch

Incorporated Sam&apos;s suggestions. Opted for &quot;WebPageProxy::willHandleHorizontalScrollEvents&quot; to relate it to the &quot;didNotHandleWheelEvent&quot; callback. Also, removed preprocessor so that it works for all builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404255</commentid>
    <comment_count>21</comment_count>
      <attachid>93599</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-15 19:50:55 -0700</bug_when>
    <thetext>Created attachment 93599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404283</commentid>
    <comment_count>22</comment_count>
      <attachid>93599</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-15 22:16:01 -0700</bug_when>
    <thetext>Comment on attachment 93599
Patch

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

&gt; Source/WebCore/platform/ScrollableArea.h:137
&gt; +    bool isHorizontalScrollerPinnedToLeft() const { return !horizontalScrollbar() || scrollPosition(horizontalScrollbar()) &lt;= minimumScrollPosition().x(); }
&gt; +    bool isHorizontalScrollerPinnedToRight() const { return !horizontalScrollbar() || scrollPosition(horizontalScrollbar()) &gt;= maximumScrollPosition().x(); }
&gt; +    

&apos;left&apos; and &apos;right&apos; are loaded terms in a mixed writing-direction world. I&apos;d rename these to isHorizontalScrollerAtMinimum() and isHorizontalScrollerAtMaximum or something.

&gt; Source/WebCore/platform/mac/ScrollAnimatorMac.h:149
&gt; +    int m_aggregateScroll;

Not sure what &apos;aggregate&apos; means here. Would &apos;cumulative&apos; be a better term to use?

Also, if this is only ever in X, the name should reflect that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404303</commentid>
    <comment_count>23</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-15 23:15:29 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 93599 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93599&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ScrollableArea.h:137
&gt; &gt; +    bool isHorizontalScrollerPinnedToLeft() const { return !horizontalScrollbar() || scrollPosition(horizontalScrollbar()) &lt;= minimumScrollPosition().x(); }
&gt; &gt; +    bool isHorizontalScrollerPinnedToRight() const { return !horizontalScrollbar() || scrollPosition(horizontalScrollbar()) &gt;= maximumScrollPosition().x(); }
&gt; &gt; +    
&gt; 
&gt; &apos;left&apos; and &apos;right&apos; are loaded terms in a mixed writing-direction world. I&apos;d rename these to isHorizontalScrollerAtMinimum() and isHorizontalScrollerAtMaximum or something.

Done.

&gt; 
&gt; &gt; Source/WebCore/platform/mac/ScrollAnimatorMac.h:149
&gt; &gt; +    int m_aggregateScroll;
&gt; 
&gt; Not sure what &apos;aggregate&apos; means here. Would &apos;cumulative&apos; be a better term to use?
&gt; 
&gt; Also, if this is only ever in X, the name should reflect that.

Renamed to m_cumulativeHorizontalScroll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404308</commentid>
    <comment_count>24</comment_count>
      <attachid>93611</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-15 23:22:13 -0700</bug_when>
    <thetext>Created attachment 93611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404469</commentid>
    <comment_count>25</comment_count>
      <attachid>93611</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-16 07:57:16 -0700</bug_when>
    <thetext>Comment on attachment 93611
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404581</commentid>
    <comment_count>26</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-16 10:29:55 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/86584</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404673</commentid>
    <comment_count>27</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2011-05-16 13:20:00 -0700</bug_when>
    <thetext>This looks like it&apos;s causing crashes downstream in Chromium:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=http%2Ftests%2Fsecurity%2FaboutBlank%2Fwindow-open-self-about-blank.html&amp;showExpectations=true&amp;group=%40ToT%20-%20chromium.org

Are you sure that willRemoveHorizontalScrollbar() is always guaranteed to be called exactly once for each call to didAddHorizontalScrollbar()? Not sure whether this is a bug in the Chromium platform layer calling this routine too often, or an invalid assumption in the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404819</commentid>
    <comment_count>28</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-05-16 16:42:57 -0700</bug_when>
    <thetext>Fix to regression failures: http://trac.webkit.org/changeset/86597</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>410563</commentid>
    <comment_count>29</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-05-26 10:14:13 -0700</bug_when>
    <thetext>I&apos;m on r87310, but still experience the same crash described in comment #27 while running some DRT tests on the EFL port, such as tables/mozilla/core/one_row.html, fast/dom/createElementNS.html or fast/dom/clone-node-form-elements-with-attr.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423139</commentid>
    <comment_count>30</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-18 11:40:08 -0700</bug_when>
    <thetext>If a bug fix is causing problems or crashes, reopening the bug is not the way to report it. That will just confuse people about the state of the patch or bug. It makes sense to reopen the bug if we rolled out the patch, but otherwise, please file a new bug about the new problem and add comments to the old bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440441</commentid>
    <comment_count>31</comment_count>
    <who name="Rob Bradford">rob</who>
    <bug_when>2011-07-21 09:01:09 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; If a bug fix is causing problems or crashes, reopening the bug is not the way to report it. That will just confuse people about the state of the patch or bug. It makes sense to reopen the bug if we rolled out the patch, but otherwise, please file a new bug about the new problem and add comments to the old bug.

Opened that corresponding bug report: https://bugs.webkit.org/show_bug.cgi?id=64954</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450152</commentid>
    <comment_count>32</comment_count>
      <attachid>93611</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-08-11 16:39:40 -0700</bug_when>
    <thetext>Comment on attachment 93611
Patch

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

&gt; Source/WebCore/dom/Document.h:1103
&gt; +    // Used to keep track of horizontal scrollbars and onmousewheel event handlers only.

The &quot;horizontal scrollbars&quot; part sounds wrong to me. The code looks like this is just the number of onmousewheel events, and nothing else?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>93473</attachid>
            <date>2011-05-13 10:06:17 -0700</date>
            <delta_ts>2011-05-13 10:31:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>OpenSource.patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93478</attachid>
            <date>2011-05-13 10:31:40 -0700</date>
            <delta_ts>2011-05-13 14:45:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>OpenSource.patch</filename>
            <type>text/plain</type>
            <size>42671</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSAwMjljZTU1MjQ2OTg1ODUzMTQ1YzMzOTQyNjFkOTJlYTliZDk5ZjhiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDEyIE1heSAyMDExIDEyOjQ3OjE4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQ2FuJ3QgaG9yaXpv
bnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsCiBldmVudHMg
YXJlIGFsd2F5cyBhY2NlcHRlZAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNzc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoK
KiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogSW5pdGlh
bGl6ZSB3aGVlbCBldmVudCBoYW5kbGVyIGNvdW50CihXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQWRk
V2hlZWxFdmVudEhhbmRsZXIpOiBJbmNyZW1lbnQgY291bnQsIGFuZCB0ZWxsIHRoZSBtYWluIGZy
YW1lCnRvIHJlY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2Ygd2hlZWwgZXZlbnQgaGFuZGxl
cnMgaW4gYWxsIG9mIGl0cyBmcmFtZXMnIGRvY3VtZW50cwooV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
ZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKKiBk
b20vRG9jdW1lbnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50Ojpjb3VudFdoZWVsRXZlbnRIYW5kbGVy
cyk6IEFjY2VzcyB0aGUgY291bnQKKiBkb20vTm9kZS5jcHA6CihXZWJDb3JlOjp0cnlBZGRFdmVu
dExpc3RlbmVyKTogSWYgdGhlIGV2ZW50IGxpc3RlbmVyIGlzIGEgbW91c2Ugd2hlZWwgZXZlbnQs
IHRoZW4KdGVsbCB0aGUgZG9jdW1lbnQgdG8gaW5jcmVtZW50IGl0cyBjb3VudAooV2ViQ29yZTo6
dHJ5UmVtb3ZlRXZlbnRMaXN0ZW5lcik6IFJldmVyc2Ugb2YgcHJldmlvdXMgbWV0aG9kCgoqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6IFR3byBuZXcgbWV0aG9kczoKICB1cGRhdGVDb3VudFdoZWVsRXZl
bnRIYW5kbGVyczogV2ViUHJvY2VzcyB0ZWxscyBVSVByb2Nlc3MgdG8gdXBkYXRlIGl0cyBjYWNo
ZWQKICAgIGNvdW50IG9mIHRvdGFsIHdoZWVsIGV2ZW50IGhhbmRsZXJzLCB3aGljaCBpbiB0aGlz
IGNhc2Ugb25seSBpbmNsdWRlIGhvcml6b250YWwKICAgIHNjcm9sbGJhcnMgYW5kIG1vdXNlIHdo
ZWVsIEpTIGhhbmRsZXJzCiAgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uOiBhbGxvdyB0aGUg
VUlQcm9jZXNzIHRvIHByb3ZpZGUgc29tZSBjb250cm9sIG92ZXIKICAgIHdoZXRoZXIgcnViYmVy
IGJhbmRpbmcgaXMgYWxsb3dlZCB3aGVuIHNjcm9sbGluZyBpbiBhIHBhcnRpY3VsYXIgZGlyZWN0
aW9uCiogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgooV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6
OnVwZGF0ZUNvdW50V2hlZWxFdmVudEhhbmRsZXJzKTogRGVmYXVsdCBlbXB0eSBpbXBsCihXZWJD
b3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVm
YXVsdCBlbXB0eSBpbXBsCiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgooV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogUmVtb3ZlIGEgcmVkdW5kYW50IHBvaW50ZXIgY2hl
Y2sKKiBwYWdlL0ZyYW1lLmNwcDoKKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1bWVudCk6IFdoZW4g
dGhlIGZyYW1lJ3MgZG9jdW1lbnQgY2hhbmdlcywgY2FsY3VsYXRlIHRoYXQKZG9jdW1lbnQncyB0
b3RhbCB3aGVlbCBldmVudCBoYW5kbGVycywgYW5kIG5vdGlmeSB0aGUgVUlQcm9jZXNzCihXZWJD
b3JlOjpGcmFtZTo6cmVjYWxjdWxhdGVUb3RhbFdoZWVsRXZlbnRIYW5kbGVycyk6IFBlcmZvcm1z
IGEgY3Jhd2wgb2YgdGhlIGZyYW1lCnRyZWUgdG8gYWdncmVnYXRlIHRoZSBjb3VudAooV2ViQ29y
ZTo6c3VtVG90YWxXaGVlbEV2ZW50SGFuZGxlcnMpOiBIZWxwZXIgZnVuY3Rpb24KKiBwYWdlL0Zy
YW1lLmg6CgoqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6IFZpcnR1YWxpemUgZGlkQWRkSG9y
aXpvbnRhbFNjcm9sbGJhciBhbmQKd2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIgZm9yIG92
ZXJyaWRpbmcgaW4gUmVuZGVyTGF5ZXIgYW5kIEZyYW1lVmlldwooV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbAoqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9s
bGJhcik6IFVwZGF0ZXMgdGhlIGZyYW1lJ3MgZG9jdW1lbnQncyBjb3VudAooV2ViQ29yZTo6RnJh
bWVWaWV3Ojp3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcik6IFVwZGF0ZXMgdGhlIGZyYW1l
J3MgZG9jdW1lbnQncwpjb3VudAooV2ViQ29yZTo6RnJhbWVWaWV3OjpzaG91bGRSdWJiZXJCYW5k
SW5EaXJlY3Rpb24pOiBDb25uZWN0aXZlIGdsdWUKKiBwYWdlL0ZyYW1lVmlldy5oOiBBZGRpbmcg
b3ZlcnJpZGluZyBtZXRob2RzIGZyb20gU2Nyb2xsYWJsZUFyZWEKKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwOiBTaW1pbGFyIGZ1bmN0aW9uYWxpdHkgdG8gRnJhbWVWaWV3CihXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6CihXZWJDb3JlOjpSZW5kZXJM
YXllcjo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIpOgoqIHJlbmRlcmluZy9SZW5kZXJM
YXllci5oOgoKKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06IFVwZGF0ZSBsb2dp
YyB0byBkZXRlcm1pbmUgd2hldGhlciB0byBhY2NlcHQKdGhlIHdoZWVsIGV2ZW50LiBBbHNvLCBm
aXggYSBmZXcgc3BlbGxpbmcgZXJyb3JzIG9mIHRoZSB3b3JkICJtb21lbnR1bSIuCihXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudCk6IE5ldyBsb2dpYyBmb3IgZGV0
ZXJtaW5pbmcgd2hldGhlcgp0byBhbGxvdyBydWJiZXItYmFuZGluZyBiYXNlZCBvbiB0aGUgYXJl
YSdzIHNjcm9sbCBwb3NpdGlvbiBhbmQgdGhlIHdoZWVsIGV2ZW50LgpDb3VsZCBwcmV2ZW50IGFj
Y2VwdGluZyB0aGUgd2hlZWwgZXZlbnQuCgpTb3VyY2UvV2ViS2l0L21hYzoKCiogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IEVtcHR5IGRlZmF1bHQgaW1wbCBvZiBDaHJvbWVDbGll
bnQKKFdlYkNocm9tZUNsaWVudDo6dXBkYXRlQ291bnRXaGVlbEV2ZW50SGFuZGxlcnMpOgooV2Vi
Q2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOgoKU291cmNlL1dlYktp
dDI6CgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgooV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNob3VsZFdhaXRGb3JXaGVlbEV2ZW50cyk6IFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGF0IGxl
YXN0Cm9uZSB3aGVlbCBldmVudCBoYW5kbGVyCiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBB
ZGQgbmV3IHZhcmlhYmxlIHRvIGNhY2hlIHRoZSBjb3VudAooV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnVwZGF0ZUNvdW50V2hlZWxFdmVudEhhbmRsZXJzKTogU2V0cyB0aGUgY291bnQKClRoZSByZXN0
IGp1c3QgcHJvdmlkZXMgYWxsIHRoZSBjb25uZWN0aW9ucy4KKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDoKKFdLUGFnZVNob3VsZFdhaXRGb3JXaGVlbEV2ZW50cyk6CiogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5oOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CiogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcDoKKFdlYktpdDo6
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6
CiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5o
OgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOgooV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OnVwZGF0ZUNvdW50V2hlZWxFdmVudEhhbmRsZXJzKToKKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgoKVG9vbHM6CgoqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKFdUUjo6
SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOiBTZXQgbmV3IGRlZmF1bHQg
bWV0aG9kIHRvIG5pbC4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgNTggKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrKysKIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArKysK
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NSArKysrLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oICAgICAgICAgICAg
ICAgfCAgICA0ICsrCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oICAgICAgICAg
ICAgICAgICB8ICAgIDMgKwogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAg
ICAgICAgICAgICAgfCAgICA0IC0tCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMjggKysrKysrKysrLQogU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAgIHwgICAyNCArKysrKysrKwogU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggICAgICAgICAgIHwgICAgNiAr
Ky0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oICAgIHwg
ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
ICAgfCAgIDUwICsrKysrKysrKysrKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwICAgICAgICAgICB8ICAgMTMgKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oICAgICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrKwogU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggfCAgICA0ICsrCiBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjcgKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCAgICAgICAg
ICB8ICAgIDUgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCAgICAg
ICAgICAgIHwgICAgMyArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgICAgICAgICAgfCAgICA5ICsrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oICAgICAgICAgICAgfCAgICA2ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluICB8ICAgIDEgKwogLi4uL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmggfCAgIDEwICsrKy0KIC4uLi9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAgIHwgICAgNSArKwogLi4uL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggICAgfCAgICAyICsKIC4uLi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgIHwgICAxNyArKysrKysK
IC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAgIHwgICAg
MyArCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTAgKysrKwogLi4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgICAg
ICAgICAgfCAgICAxICsKIDMxIGZpbGVzIGNoYW5nZWQsIDMyNiBpbnNlcnRpb25zKCspLCAyOCBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNkMjhiMy4uNjhkY2M0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDYxIEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBo
b3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZl
bnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogSW5pdGlhbGl6ZSB3aGVlbCBldmVu
dCBoYW5kbGVyIGNvdW50CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQWRkV2hlZWxF
dmVudEhhbmRsZXIpOiBJbmNyZW1lbnQgY291bnQsIGFuZCB0ZWxsIHRoZSBtYWluIGZyYW1lCisg
ICAgICAgIHRvIHJlY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2Ygd2hlZWwgZXZlbnQgaGFu
ZGxlcnMgaW4gYWxsIG9mIGl0cyBmcmFtZXMnIGRvY3VtZW50cworICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmRpZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKTogUmV2ZXJzZSBvZiBwcmV2aW91
cyBtZXRob2QKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojpjb3VudFdoZWVsRXZlbnRIYW5kbGVycyk6IEFjY2VzcyB0aGUgY291bnQKKyAgICAg
ICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0cnlBZGRFdmVudExpc3RlbmVy
KTogSWYgdGhlIGV2ZW50IGxpc3RlbmVyIGlzIGEgbW91c2Ugd2hlZWwgZXZlbnQsIHRoZW4KKyAg
ICAgICAgdGVsbCB0aGUgZG9jdW1lbnQgdG8gaW5jcmVtZW50IGl0cyBjb3VudAorICAgICAgICAo
V2ViQ29yZTo6dHJ5UmVtb3ZlRXZlbnRMaXN0ZW5lcik6IFJldmVyc2Ugb2YgcHJldmlvdXMgbWV0
aG9kCisgICAgICAgIAorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6IFR3byBuZXcgbWV0
aG9kczoKKyAgICAgICAgICB1cGRhdGVDb3VudFdoZWVsRXZlbnRIYW5kbGVyczogV2ViUHJvY2Vz
cyB0ZWxscyBVSVByb2Nlc3MgdG8gdXBkYXRlIGl0cyBjYWNoZWQKKyAgICAgICAgICAgIGNvdW50
IG9mIHRvdGFsIHdoZWVsIGV2ZW50IGhhbmRsZXJzLCB3aGljaCBpbiB0aGlzIGNhc2Ugb25seSBp
bmNsdWRlIGhvcml6b250YWwKKyAgICAgICAgICAgIHNjcm9sbGJhcnMgYW5kIG1vdXNlIHdoZWVs
IEpTIGhhbmRsZXJzCisgICAgICAgICAgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uOiBhbGxv
dyB0aGUgVUlQcm9jZXNzIHRvIHByb3ZpZGUgc29tZSBjb250cm9sIG92ZXIKKyAgICAgICAgICAg
IHdoZXRoZXIgcnViYmVyIGJhbmRpbmcgaXMgYWxsb3dlZCB3aGVuIHNjcm9sbGluZyBpbiBhIHBh
cnRpY3VsYXIgZGlyZWN0aW9uCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAg
ICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnVwZGF0ZUNvdW50V2hlZWxFdmVudEhh
bmRsZXJzKTogRGVmYXVsdCBlbXB0eSBpbXBsCisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9t
ZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBlbXB0eSBpbXBs
CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogUmVtb3ZlIGEgcmVkdW5kYW50IHBvaW50ZXIg
Y2hlY2sKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
OjpzZXREb2N1bWVudCk6IFdoZW4gdGhlIGZyYW1lJ3MgZG9jdW1lbnQgY2hhbmdlcywgY2FsY3Vs
YXRlIHRoYXQKKyAgICAgICAgZG9jdW1lbnQncyB0b3RhbCB3aGVlbCBldmVudCBoYW5kbGVycywg
YW5kIG5vdGlmeSB0aGUgVUlQcm9jZXNzCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6cmVjYWxj
dWxhdGVUb3RhbFdoZWVsRXZlbnRIYW5kbGVycyk6IFBlcmZvcm1zIGEgY3Jhd2wgb2YgdGhlIGZy
YW1lCisgICAgICAgIHRyZWUgdG8gYWdncmVnYXRlIHRoZSBjb3VudAorICAgICAgICAoV2ViQ29y
ZTo6c3VtVG90YWxXaGVlbEV2ZW50SGFuZGxlcnMpOiBIZWxwZXIgZnVuY3Rpb24KKyAgICAgICAg
KiBwYWdlL0ZyYW1lLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOiBW
aXJ0dWFsaXplIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIgYW5kCisgICAgICAgIHdpbGxSZW1v
dmVIb3Jpem9udGFsU2Nyb2xsYmFyIGZvciBvdmVycmlkaW5nIGluIFJlbmRlckxheWVyIGFuZCBG
cmFtZVZpZXcKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzaG91bGRSdWJiZXJC
YW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZEFkZEhvcml6b250YWxTY3JvbGxi
YXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MgY291bnQKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIpOiBVcGRhdGVzIHRo
ZSBmcmFtZSdzIGRvY3VtZW50J3MKKyAgICAgICAgY291bnQKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogQ29ubmVjdGl2ZSBnbHVlCisg
ICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDogQWRkaW5nIG92ZXJyaWRpbmcgbWV0aG9kcyBmcm9t
IFNjcm9sbGFibGVBcmVhCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDogU2lt
aWxhciBmdW5jdGlvbmFsaXR5IHRvIEZyYW1lVmlldworICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tOiBVcGRhdGUgbG9naWMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8g
YWNjZXB0CisgICAgICAgIHRoZSB3aGVlbCBldmVudC4gQWxzbywgZml4IGEgZmV3IHNwZWxsaW5n
IGVycm9ycyBvZiB0aGUgd29yZCAibW9tZW50dW0iLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOiBOZXcgbG9naWMgZm9yIGRldGVybWluaW5n
IHdoZXRoZXIKKyAgICAgICAgdG8gYWxsb3cgcnViYmVyLWJhbmRpbmcgYmFzZWQgb24gdGhlIGFy
ZWEncyBzY3JvbGwgcG9zaXRpb24gYW5kIHRoZSB3aGVlbCBldmVudC4KKyAgICAgICAgQ291bGQg
cHJldmVudCBhY2NlcHRpbmcgdGhlIHdoZWVsIGV2ZW50LgorCiAyMDExLTA1LTEzICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBF
cmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDhjZTQzZDEuLjhjN2I5ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDIyLDYgKzQyMiw3IEBAIERvY3VtZW50OjpE
b2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29s
IGlzSFRNTCkKICAgICAsIG1fd3JpdGluZ01vZGVTZXRPbkRvY3VtZW50RWxlbWVudChmYWxzZSkK
ICAgICAsIG1fd3JpdGVSZWN1cnNpb25Jc1Rvb0RlZXAoZmFsc2UpCiAgICAgLCBtX3dyaXRlUmVj
dXJzaW9uRGVwdGgoMCkKKyAgICAsIG1fY291bnRXaGVlbEV2ZW50SGFuZGxlcnMoMCkKIHsKICAg
ICBtX2RvY3VtZW50ID0gdGhpczsKIApAQCAtNTA2OSw0ICs1MDcwLDIxIEBAIFBhc3NSZWZQdHI8
VG91Y2hMaXN0PiBEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4Y2VwdGlvbkNvZGUmKSBjb25z
dAogfQogI2VuZGlmCiAKK3ZvaWQgRG9jdW1lbnQ6OmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKCkK
K3sKKyAgICArK21fY291bnRXaGVlbEV2ZW50SGFuZGxlcnM7CisgICAgRnJhbWUqIG1haW5GcmFt
ZSA9IHBhZ2UoKSA/IHBhZ2UoKS0+bWFpbkZyYW1lKCkgOiAwOworICAgIGlmIChtYWluRnJhbWUp
CisgICAgICAgIG1haW5GcmFtZS0+cmVjYWxjdWxhdGVUb3RhbFdoZWVsRXZlbnRIYW5kbGVycygp
OworfQorCit2b2lkIERvY3VtZW50OjpkaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigpCit7Cisg
ICAgQVNTRVJUKG1fY291bnRXaGVlbEV2ZW50SGFuZGxlcnMgPiAwKTsKKyAgICAtLW1fY291bnRX
aGVlbEV2ZW50SGFuZGxlcnM7CisgICAgRnJhbWUqIG1haW5GcmFtZSA9IHBhZ2UoKSA/IHBhZ2Uo
KS0+bWFpbkZyYW1lKCkgOiAwOworICAgIGlmIChtYWluRnJhbWUpCisgICAgICAgIG1haW5GcmFt
ZS0+cmVjYWxjdWxhdGVUb3RhbFdoZWVsRXZlbnRIYW5kbGVycygpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDk1MDUxYmYuLmM4OWQwOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDk3LDYgKzEwOTcsMTEgQEAgcHVibGljOgogCiAgICAg
Q29udGVudFNlY3VyaXR5UG9saWN5KiBjb250ZW50U2VjdXJpdHlQb2xpY3koKSB7IHJldHVybiBt
X2NvbnRlbnRTZWN1cml0eVBvbGljeS5nZXQoKTsgfQogCisgICAgLy8gVXNlZCB0byBrZWVwIHRy
YWNrIG9mIGhvcml6b250YWwgc2Nyb2xsYmFycyBhbmQgb25tb3VzZXdoZWVsIGV2ZW50IGhhbmRs
ZXJzIG9ubHkuCisgICAgdW5zaWduZWQgY291bnRXaGVlbEV2ZW50SGFuZGxlcnMoKSBjb25zdCB7
IHJldHVybiBtX2NvdW50V2hlZWxFdmVudEhhbmRsZXJzOyB9CisgICAgdm9pZCBkaWRBZGRXaGVl
bEV2ZW50SGFuZGxlcigpOworICAgIHZvaWQgZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIoKTsK
KyAgICAKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29s
IGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTM5Myw2ICsxMzk4LDggQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+IG1fbWVkaWFRdWVyeU1hdGNoZXI7CiAgICAg
Ym9vbCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwOwogICAgIHVuc2lnbmVkIG1fd3JpdGVSZWN1
cnNpb25EZXB0aDsKKyAgICAKKyAgICB1bnNpZ25lZCBtX2NvdW50V2hlZWxFdmVudEhhbmRsZXJz
OwogCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIE93blB0cjxTY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI+IG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCmluZGV4IGM5NTk3ZmIuLjFhNTYwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAg
LTI4LDYgKzI4LDggQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQXR0
ci5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNT
U1J1bGUuaCIKICNpbmNsdWRlICJDU1NSdWxlTGlzdC5oIgpAQCAtMjY0MSw5ICsyNjQzLDEyIEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlBZGRFdmVudExpc3RlbmVyKE5vZGUqIHRhcmdldE5vZGUs
IGNvbnN0IEF0b21pY1N0cmluZyYgZXZlCiAgICAgaWYgKCF0YXJnZXROb2RlLT5FdmVudFRhcmdl
dDo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRhcmdl
dE5vZGUtPmRvY3VtZW50KCkpCisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRhcmdldE5v
ZGUtPmRvY3VtZW50KCkpIHsKICAgICAgICAgZG9jdW1lbnQtPmFkZExpc3RlbmVyVHlwZUlmTmVl
ZGVkKGV2ZW50VHlwZSk7Ci0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
bW91c2V3aGVlbEV2ZW50KQorICAgICAgICAgICAgZG9jdW1lbnQtPmRpZEFkZFdoZWVsRXZlbnRI
YW5kbGVyKCk7CisgICAgfQorICAgICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjY4
OCw3ICsyNjkzLDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlSZW1vdmVFdmVudExpc3RlbmVy
KE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYKIAogICAgIC8vIEZJWE1FOiBO
b3RpZnkgRG9jdW1lbnQgdGhhdCB0aGUgbGlzdGVuZXIgaGFzIHZhbmlzaGVkLiBXZSBuZWVkIHRv
IGtlZXAgdHJhY2sgb2YgYSBudW1iZXIgb2YKICAgICAvLyBsaXN0ZW5lcnMgZm9yIGVhY2ggdHlw
ZSwgbm90IGp1c3QgYSBib29sIC0gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMzg2MQotCisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRhcmdldE5vZGUt
PmRvY3VtZW50KCkpIHsKKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91
c2V3aGVlbEV2ZW50KQorICAgICAgICAgICAgZG9jdW1lbnQtPmRpZFJlbW92ZVdoZWVsRXZlbnRI
YW5kbGVyKCk7CisgICAgfQorICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYWEyZmM5Yy4uMWNiMTQyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMjIzLDYgKzIyMywxMCBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJv
b2wpIHsgfQogI2VuZGlmCisgICAgCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvdW50V2hlZWxF
dmVudEhhbmRsZXJzKHVuc2lnbmVkKSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgeyByZXR1cm4g
ZmFsc2U7IH0KIH07CiAKIGNsYXNzIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJh
bWVMb2FkZXJDbGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggODk0MTg0
NS4uMTdkNmMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xNzAsNiArMTcw
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRp
cChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2
b2lkIHByaW50KEZyYW1lKikgPSAwOworICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgPSAwOwogCiAjaWYgRU5BQkxFKERBVEFC
QVNFKQogICAgICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUpID0gMDsKQEAgLTMyMCw2ICszMjEsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH07CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsUnVu
TW9kYWxEaWFsb2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5cGUmKSBjb25zdCB7
IH0KIAorICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ291bnRXaGVlbEV2ZW50SGFuZGxlcnMo
dW5zaWduZWQpID0gMDsKKyAgICAgICAgCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFs
IH5DaHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCmluZGV4IDEzM2VjN2IuLjcxMzg3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKQEAgLTIxMzgsMTAgKzIxMzgsNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hl
ZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAgICAgaWYgKGUuaXNBY2NlcHRlZCgpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCk7Ci0gICAg
aWYgKCF2aWV3KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICB2aWV3LT53aGVlbEV2ZW50
KGUpOwogICAgIHJldHVybiBlLmlzQWNjZXB0ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5k
ZXggM2E4ZDNiNS4uNDMxNWQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTMwOSw4ICszMDks
MTEgQEAgdm9pZCBGcmFtZTo6c2V0RG9jdW1lbnQoUGFzc1JlZlB0cjxEb2N1bWVudD4gbmV3RG9j
KQogICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGVkICdkb2N1bWVudCcgcHJvcGVydHksIHdoaWNoIGlz
IG5vdyBzdGFsZS4KICAgICBtX3NjcmlwdC51cGRhdGVEb2N1bWVudCgpOwogCi0gICAgaWYgKG1f
cGFnZSkKKyAgICBpZiAobV9wYWdlKSB7CiAgICAgICAgIG1fcGFnZS0+dXBkYXRlVmlld3BvcnRB
cmd1bWVudHMoKTsKKyAgICAgICAgaWYgKG1fcGFnZS0+bWFpbkZyYW1lKCkgPT0gdGhpcykKKyAg
ICAgICAgICAgIHJlY2FsY3VsYXRlVG90YWxXaGVlbEV2ZW50SGFuZGxlcnMoKTsKKyAgICB9CiB9
CiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQpAQCAtMTExNiw0ICsxMTE5LDI3IEBA
IHZvaWQgRnJhbWU6OnNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdp
bikKICAgICB9CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBzdW1Ub3RhbFdoZWVsRXZlbnRIYW5kbGVy
cyhjb25zdCBGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICB1bnNpZ25lZCBjb3VudCA9IDA7CisgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgp
KQorICAgICAgICBjb3VudCA9IGZyYW1lLT5kb2N1bWVudCgpLT5jb3VudFdoZWVsRXZlbnRIYW5k
bGVycygpOworICAgIAorICAgIGZvciAoRnJhbWUqIGNoaWxkID0gZnJhbWUtPnRyZWUoKS0+Zmly
c3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLT5uZXh0U2libGluZygpKQor
ICAgICAgICBjb3VudCArPSBzdW1Ub3RhbFdoZWVsRXZlbnRIYW5kbGVycyhjaGlsZCk7CisKKyAg
ICByZXR1cm4gY291bnQ7Cit9CisKK3ZvaWQgRnJhbWU6OnJlY2FsY3VsYXRlVG90YWxXaGVlbEV2
ZW50SGFuZGxlcnMoKSBjb25zdAoreworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm47
CisgICAgCisgICAgbV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnVwZGF0ZUNvdW50V2hlZWxF
dmVudEhhbmRsZXJzKHN1bVRvdGFsV2hlZWxFdmVudEhhbmRsZXJzKHRoaXMpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDdkYTljNDkuLjEwMjRhZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmgKQEAgLTIwNiw2ICsyMDYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAgICAgTWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXIqIG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9tZWRp
YVN0cmVhbUZyYW1lQ29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCisgICAgICAgIAorICAgICAg
ICAvLyBTaG91bGQgb25seSBiZSBjYWxsZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgYSBwYWdlLgor
ICAgICAgICB2b2lkIHJlY2FsY3VsYXRlVG90YWxXaGVlbEV2ZW50SGFuZGxlcnMoKSBjb25zdDsK
IAogICAgIC8vID09PT09PT09CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBhNjli
YmMxLi41N2I1ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgi
CisjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVT
ZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAi
Q2hyb21lLmgiCkBAIC0zMDYsNiArMzA3LDIxIEBAIHZvaWQgRnJhbWVWaWV3OjpkZXRhY2hDdXN0
b21TY3JvbGxiYXJzKCkKICAgICB9CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpkaWRBZGRIb3Jpem9u
dGFsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAgIGlmIChtX2ZyYW1lLT5k
b2N1bWVudCgpKQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kaWRBZGRXaGVlbEV2ZW50
SGFuZGxlcigpOworICAgIHNjcm9sbEFuaW1hdG9yKCktPmRpZEFkZEhvcml6b250YWxTY3JvbGxi
YXIoc2Nyb2xsYmFyKTsKK30KKwordm9pZCBGcmFtZVZpZXc6OndpbGxSZW1vdmVIb3Jpem9udGFs
U2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAgIHNjcm9sbEFuaW1hdG9yKCkt
PndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKHNjcm9sbGJhcik7CisgICAgLy8gRklYTUU6
IG1heWJlIG5lZWQgYSBzZXBhcmF0ZSBTY3JvbGxhYmxlQXJlYTo6ZGlkUmVtb3ZlSG9yaXpvbnRh
bFNjcm9sbGJhciBjYWxsYmFjaz8KKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIoKTsKK30K
KwogU2Nyb2xsYmFyT3ZlcmxheVN0eWxlIEZyYW1lVmlldzo6cmVjb21tZW5kZWRTY3JvbGxiYXJP
dmVybGF5U3R5bGUoKSBjb25zdAogewogICAgIENvbG9yIGJnQ29sb3IgPSBtX2ZyYW1lLT5nZXRE
b2N1bWVudEJhY2tncm91bmRDb2xvcigpOwpAQCAtMTQ5MCw2ICsxNTA2LDE0IEBAIHZvaWQgRnJh
bWVWaWV3OjpyZXBhaW50Rml4ZWRFbGVtZW50c0FmdGVyU2Nyb2xsaW5nKCkKICAgICB9CiB9CiAK
K2Jvb2wgRnJhbWVWaWV3OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0
aW9uIGRpcmVjdGlvbikgY29uc3QKK3sKKyAgICBQYWdlKiBwYWdlID0gZnJhbWUoKSA/IGZyYW1l
KCktPnBhZ2UoKSA6IDA7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gU2Nyb2xsVmll
dzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKGRpcmVjdGlvbik7CisgICAgcmV0dXJuIHBh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKGRpcmVj
dGlvbik7Cit9CisKIEhvc3RXaW5kb3cqIEZyYW1lVmlldzo6aG9zdFdpbmRvdygpIGNvbnN0CiB7
CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkgOiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKaW5kZXggNTY5NzYwNC4uMTY4NTcyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCkBAIC03NSw2ICs3NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
U2Nyb2xsYmFyPiBjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24pOwogCiAgICAg
dmlydHVhbCBib29sIGF2b2lkU2Nyb2xsYmFyQ3JlYXRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgd2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNTaXplKGNvbnN0IEludFNpemUmKTsKIApAQCAtMTUzLDYg
KzE1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBv
aW50Jik7CiAgICAgdm9pZCBzY3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFQbGF0Zm9ybVdpZGdldCgp
OwogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Rml4ZWRFbGVtZW50c0FmdGVyU2Nyb2xsaW5nKCk7
CisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJl
Y3Rpb24pIGNvbnN0OwogCiAgICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OwogICAgIHZvaWQg
c2V0TWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmgKaW5kZXggNGJiZWQzZS4uZWFmZjhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC03Myw4ICs3Myw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCB3aWxsUmVt
b3ZlVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7Ci0gICAgdm9pZCBkaWRBZGRIb3Jpem9u
dGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwotICAgIHZvaWQgd2lsbFJlbW92ZUhvcml6b250YWxT
Y3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxT
Y3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9u
dGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogCiAgICAgYm9vbCBoYXNPdmVybGF5U2Nyb2xsYmFy
cygpIGNvbnN0OwogICAgIHZpcnR1YWwgU2Nyb2xsYmFyT3ZlcmxheVN0eWxlIHJlY29tbWVuZGVk
U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCkgY29uc3QgeyByZXR1cm4gU2Nyb2xsYmFyT3ZlcmxheVN0
eWxlRGVmYXVsdDsgfQpAQCAtMTMxLDYgKzEzMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkU3VzcGVuZFNjcm9sbEFuaW1hdGlvbnMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhclN0eWxlQ2hhbmdlZCgpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpIHsgfQor
ICAgIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xs
RGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlz
Y29ubmVjdEZyb21QYWdlKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggYmZlZjk1Yi4uMjhhNWUzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE0NSw3ICsx
NDUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3M7CiAg
ICAgYm9vbCBtX2lnbm9yZU1vbWVudHVtU2Nyb2xsczsKICAgICAKLSAgICBDRlRpbWVJbnRlcnZh
bCBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcDsKKyAgICBDRlRpbWVJbnRlcnZhbCBtX2xh
c3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKICAgICBGbG9hdFNpemUgbV9vdmVyZmxvd1Njcm9s
bERlbHRhOwogICAgIEZsb2F0U2l6ZSBtX3N0cmV0Y2hTY3JvbGxGb3JjZTsKICAgICBGbG9hdFNp
emUgbV9tb21lbnR1bVZlbG9jaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IDk5MzgzZGEuLjA4ODY0NTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAgLTQ1OSw3
ICs0NTksNyBAQCBTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMoU2Nyb2xsYWJs
ZUFyZWEqIHNjcm9sbGFibGVBcmVhKQogICAgICwgbV9pblNjcm9sbEdlc3R1cmUoZmFsc2UpCiAg
ICAgLCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyhmYWxzZSkKICAgICAsIG1faWdub3JlTW9t
ZW50dW1TY3JvbGxzKGZhbHNlKQotICAgICwgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAo
MCkKKyAgICAsIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wKDApCiAgICAgLCBtX3N0YXJ0
VGltZSgwKQogICAgICwgbV9zbmFwUnViYmVyQmFuZFRpbWVyKHRoaXMsICZTY3JvbGxBbmltYXRv
ck1hYzo6c25hcFJ1YmJlckJhbmRUaW1lckZpcmVkKQogI2VuZGlmCkBAIC03ODcsMTcgKzc4Nywz
NyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgICAgIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVX
aGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0g
ICAgfQogCi0gICAgd2hlZWxFdmVudC5hY2NlcHQoKTsKKyAgICAgICAgLy8gYWZ0ZXIgYSBnZXN0
dXJlIGJlZ2lucywgd2UgZ28gdGhyb3VnaAorICAgICAgICAvLyAxKyBQbGF0Zm9ybVdoZWVsRXZl
bnRQaGFzZU5vbmUKKyAgICAgICAgLy8gMCsgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VDaGFuZ2Vk
CisgICAgICAgIC8vIDEgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCBpZiB0aGVyZSB3YXMg
YXQgbGVhc3Qgb25lIGNoYW5nZWQgZXZlbnQKKyAgICAgICAgaWYgKHdoZWVsRXZlbnQubW9tZW50
dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkgeworICAgICAgICAgICAg
aWYgKCh3aGVlbEV2ZW50LmRlbHRhWCgpID4gMCAmJgorICAgICAgICAgICAgICAgICFtX3Njcm9s
bGFibGVBcmVhLT5zaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsTGVmdCkgJiYKKyAg
ICAgICAgICAgICAgICAoIW1fc2Nyb2xsYWJsZUFyZWEtPmhvcml6b250YWxTY3JvbGxiYXIoKSB8
fAorICAgICAgICAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFBvc2l0aW9uKG1fc2Ny
b2xsYWJsZUFyZWEtPmhvcml6b250YWxTY3JvbGxiYXIoKSkgPD0gbV9zY3JvbGxhYmxlQXJlYS0+
bWluaW11bVNjcm9sbFBvc2l0aW9uKCkueCgpKSkKKyAgICAgICAgICAgICAgICB8fAorICAgICAg
ICAgICAgICAgICh3aGVlbEV2ZW50LmRlbHRhWCgpIDwgMCAmJgorICAgICAgICAgICAgICAgICFt
X3Njcm9sbGFibGVBcmVhLT5zaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsUmlnaHQp
ICYmCisgICAgICAgICAgICAgICAgKCFtX3Njcm9sbGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xs
YmFyKCkgfHwKKyAgICAgICAgICAgICAgICBtX3Njcm9sbGFibGVBcmVhLT5zY3JvbGxQb3NpdGlv
bihtX3Njcm9sbGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xsYmFyKCkpID49IG1fc2Nyb2xsYWJs
ZUFyZWEtPm1heGltdW1TY3JvbGxQb3NpdGlvbigpLngoKSkpKSB7CisgICAgICAgICAgICAgICAg
U2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogCi0gICAgYm9v
bCBpc01vbWV0dW1TY3JvbGxFdmVudCA9ICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSAhPSBQ
bGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpOwotICAgIGlmIChtX2lnbm9yZU1vbWVudHVtU2Ny
b2xscyAmJiAoaXNNb21ldHVtU2Nyb2xsRXZlbnQgfHwgbV9zbmFwUnViYmVyQmFuZFRpbWVyLmlz
QWN0aXZlKCkpKSB7Ci0gICAgICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQ
bGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUVuZGVkKQorICAgIGJvb2wgaXNNb21lbnR1bVNjcm9sbEV2
ZW50ID0gKHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpICE9IFBsYXRmb3JtV2hlZWxFdmVudFBo
YXNlTm9uZSk7CisgICAgaWYgKG1faWdub3JlTW9tZW50dW1TY3JvbGxzICYmIChpc01vbWVudHVt
U2Nyb2xsRXZlbnQgfHwgbV9zbmFwUnViYmVyQmFuZFRpbWVyLmlzQWN0aXZlKCkpKSB7CisgICAg
ICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZUVuZGVkKSB7CiAgICAgICAgICAgICBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyA9IGZhbHNl
OworICAgICAgICAgICAgd2hlZWxFdmVudC5hY2NlcHQoKTsKKyAgICAgICAgfQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCisgICAgd2hlZWxFdmVudC5hY2NlcHQoKTsKICAgICBzbW9vdGhTY3Jv
bGxXaXRoRXZlbnQod2hlZWxFdmVudCk7CiB9CiAKQEAgLTkwOCwxNCArOTI4LDE0IEBAIHZvaWQg
U2Nyb2xsQW5pbWF0b3JNYWM6OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQpCiAgICAgaWYgKCFtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAmJiAo
cGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBwaGFzZSA9PSBQbGF0Zm9y
bVdoZWVsRXZlbnRQaGFzZUNoYW5nZWQpKQogICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9n
cmVzcyA9IHRydWU7CiAKLSAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50
LnRpbWVzdGFtcCgpIC0gbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXA7CisgICAgQ0ZUaW1l
SW50ZXJ2YWwgdGltZURlbHRhID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKSAtIG1fbGFzdE1vbWVu
dHVtU2Nyb2xsVGltZXN0YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVu
dHVtU2Nyb2xsSW5Qcm9ncmVzcykgewotICAgICAgICBpZiAobV9sYXN0TW9tZW10dW1TY3JvbGxU
aW1lc3RhbXAgJiYgdGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxWZWxvY2l0eVpl
cm9pbmdUaW1lb3V0KSB7CisgICAgICAgIGlmIChtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFt
cCAmJiB0aW1lRGVsdGEgPiAwICYmIHRpbWVEZWx0YSA8IHNjcm9sbFZlbG9jaXR5WmVyb2luZ1Rp
bWVvdXQpIHsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5zZXRXaWR0aChldmVudENv
YWxsZXNjZWREZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKICAgICAgICAgICAgIG1fbW9tZW50
dW1WZWxvY2l0eS5zZXRIZWlnaHQoZXZlbnRDb2FsbGVzY2VkRGVsdGFZIC8gKGZsb2F0KXRpbWVE
ZWx0YSk7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVs
RXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVz
dGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1w
KCk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZl
bnQudGltZXN0YW1wKCk7CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkgPSBGbG9hdFNp
emUoKTsKICAgICAgICAgfQogCkBAIC05OTYsNyArMTAxNiw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNYWM6OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQpCiAgICAgICAgICAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQgPSBtX3Njcm9sbGFibGVBcmVh
LT5vdmVyaGFuZ0Ftb3VudCgpOwogICAgICAgICAKICAgICAgICAgICAgIGlmIChtX21vbWVudHVt
U2Nyb2xsSW5Qcm9ncmVzcykgewotICAgICAgICAgICAgICAgIGlmICgocGlubmVkSW5EaXJlY3Rp
b24oZXZlbnRDb2FsbGVzY2VkRGVsdGFYLCBldmVudENvYWxsZXNjZWREZWx0YVkpIHx8IChmYWJz
ZihldmVudENvYWxsZXNjZWREZWx0YVgpICsgZmFic2YoZXZlbnRDb2FsbGVzY2VkRGVsdGFZKSA8
PSAwKSkgJiYgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXApIHsKKyAgICAgICAgICAgICAg
ICBpZiAoKHBpbm5lZEluRGlyZWN0aW9uKGV2ZW50Q29hbGxlc2NlZERlbHRhWCwgZXZlbnRDb2Fs
bGVzY2VkRGVsdGFZKSB8fCAoZmFic2YoZXZlbnRDb2FsbGVzY2VkRGVsdGFYKSArIGZhYnNmKGV2
ZW50Q29hbGxlc2NlZERlbHRhWSkgPD0gMCkpICYmIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0
YW1wKSB7CiAgICAgICAgICAgICAgICAgICAgIG1faWdub3JlTW9tZW50dW1TY3JvbGxzID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICAgICAgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgPSBmYWxz
ZTsKICAgICAgICAgICAgICAgICAgICAgc25hcFJ1YmJlckJhbmQoKTsKQEAgLTEwMjEsNyArMTA0
MSw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgaWYgKG1fbW9tZW50dW1TY3JvbGxJblBy
b2dyZXNzICYmIHBoYXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQpIHsKICAgICAg
ICAgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgPSBmYWxzZTsKICAgICAgICAgbV9pZ25vcmVN
b21lbnR1bVNjcm9sbHMgPSBmYWxzZTsKLSAgICAgICAgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1l
c3RhbXAgPSAwOworICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IDA7CiAg
ICAgfQogfQogCkBAIC0xMDMzLDcgKzEwNTMsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpi
ZWdpblNjcm9sbEdlc3R1cmUoKQogICAgIG1faW5TY3JvbGxHZXN0dXJlID0gdHJ1ZTsKICAgICBt
X21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgIG1faWdub3JlTW9tZW50dW1T
Y3JvbGxzID0gZmFsc2U7Ci0gICAgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAgPSAwOwor
ICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gMDsKICAgICBtX21vbWVudHVtVmVs
b2NpdHkgPSBGbG9hdFNpemUoKTsKIAogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCA9IG1fc2Ny
b2xsYWJsZUFyZWEtPm92ZXJoYW5nQW1vdW50KCk7CkBAIC0xMDU1LDggKzEwNzUsOCBAQCB2b2lk
IFNjcm9sbEFuaW1hdG9yTWFjOjplbmRTY3JvbGxHZXN0dXJlKCkKIAogdm9pZCBTY3JvbGxBbmlt
YXRvck1hYzo6c25hcFJ1YmJlckJhbmQoKQogewotICAgIENGVGltZUludGVydmFsIHRpbWVEZWx0
YSA9IFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gc3lzdGVtVXB0aW1lXSAtIG1fbGFzdE1v
bWVtdHVtU2Nyb2xsVGltZXN0YW1wOwotICAgIGlmIChtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVz
dGFtcCAmJiB0aW1lRGVsdGEgPj0gc2Nyb2xsVmVsb2NpdHlaZXJvaW5nVGltZW91dCkKKyAgICBD
RlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5
c3RlbVVwdGltZV0gLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcDsKKyAgICBpZiAobV9s
YXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID49IHNjcm9sbFZlbG9jaXR5
WmVyb2luZ1RpbWVvdXQpCiAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eSA9IEZsb2F0U2l6ZSgp
OwogCiAgICAgbV9pblNjcm9sbEdlc3R1cmUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDQ1MTVmNzcuLmM5Mzc2MDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTkzMCw2ICsxOTMwLDE5IEBAIGJvb2wg
UmVuZGVyTGF5ZXI6OnNjcm9sbHNPdmVyZmxvdygpIGNvbnN0CiAgICAgcmV0dXJuIHRvUmVuZGVy
Qm94KHJlbmRlcmVyKCkpLT5zY3JvbGxzT3ZlcmZsb3coKTsKIH0KIAordm9pZCBSZW5kZXJMYXll
cjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAg
ICBtX3JlbmRlcmVyLT5kb2N1bWVudCgpLT5kaWRBZGRXaGVlbEV2ZW50SGFuZGxlcigpOworICAg
IFNjcm9sbGFibGVBcmVhOjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKHNjcm9sbGJhcik7Cit9
CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9s
bGJhciogc2Nyb2xsYmFyKQoreworICAgIFNjcm9sbGFibGVBcmVhOjp3aWxsUmVtb3ZlSG9yaXpv
bnRhbFNjcm9sbGJhcihzY3JvbGxiYXIpOworICAgIC8vIEZJWE1FOiBtYXliZSBuZWVkIGEgc2Vw
YXJhdGUgU2Nyb2xsYWJsZUFyZWE6OmRpZFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIgY2FsbGJh
Y2s/CisgICAgbV9yZW5kZXJlci0+ZG9jdW1lbnQoKS0+ZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRs
ZXIoKTsKK30KKwogdm9pZCBSZW5kZXJMYXllcjo6c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcihi
b29sIGhhc1Njcm9sbGJhcikKIHsKICAgICBpZiAoaGFzU2Nyb2xsYmFyID09IChtX2hCYXIgIT0g
MCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDMyNmExNGQuLjc4
Y2RjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC0yNDcsNiAr
MjQ3LDggQEAgcHVibGljOgogICAgIEludFJlY3QgZ2V0UmVjdFRvRXhwb3NlKGNvbnN0IEludFJl
Y3QmIHZpc2libGVSZWN0LCBjb25zdCBJbnRSZWN0JiBleHBvc2VSZWN0LCBjb25zdCBTY3JvbGxB
bGlnbm1lbnQmIGFsaWduWCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblkpOwogCiAgICAg
Ym9vbCBzY3JvbGxzT3ZlcmZsb3coKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSG9y
aXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92
ZUhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCBzZXRIYXNIb3Jpem9u
dGFsU2Nyb2xsYmFyKGJvb2wpOwogICAgIHZvaWQgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIoYm9v
bCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA2NTQ4ZGI4Li4zMjEzNjA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENh
bid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVl
bCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOiBFbXB0eSBkZWZhdWx0IGltcGwgb2YgQ2hyb21lQ2xpZW50CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OnVwZGF0ZUNvdW50V2hlZWxFdmVudEhhbmRsZXJzKToKKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKToKKwog
MjAxMS0wNS0xMiAgUHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDBlY2I5ZjIuLjFmYjgyNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC0xODIsNiArMTgyLDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KCk7CiAjZW5kaWYKKyAgICAK
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ291bnRXaGVlbEV2ZW50SGFuZGxlcnModW5zaWduZWQp
IHsgfQorICAgIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24o
V2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSB7IHJldHVybiBmYWxzZTsgfQogcHJpdmF0ZToKICAg
ICBXZWJWaWV3ICptX3dlYlZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGNlZTI0NWMuLmNjZjdmNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNh
dXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvdWxk
V2FpdEZvcldoZWVsRXZlbnRzKTogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYXQgbGVhc3QKKyAg
ICAgICAgb25lIHdoZWVsIGV2ZW50IGhhbmRsZXIKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6IEFkZCBuZXcgdmFyaWFibGUgdG8gY2FjaGUgdGhlIGNvdW50CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlQ291bnRXaGVlbEV2ZW50SGFuZGxlcnMpOiBTZXRz
IHRoZSBjb3VudAorCisgICAgICAgIFRoZSByZXN0IGp1c3QgcHJvdmlkZXMgYWxsIHRoZSBjb25u
ZWN0aW9ucy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAg
KFdLUGFnZVNob3VsZFdhaXRGb3JXaGVlbEV2ZW50cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnVwZGF0ZUNvdW50V2hlZWxFdmVudEhh
bmRsZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oOgorCiAyMDExLTA1LTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggOTQxZDJjNy4uY2RlZjAxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE0Niw2ICsxNDYsMTEg
QEAgV0tCYWNrRm9yd2FyZExpc3RSZWYgV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KFdLUGFnZVJl
ZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0FQSSh0b0ltcGwocGFnZVJlZiktPmJhY2tGb3J3YXJk
TGlzdCgpKTsKIH0KIAorYm9vbCBXS1BhZ2VTaG91bGRXYWl0Rm9yV2hlZWxFdmVudHMoV0tQYWdl
UmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+c2hvdWxkV2FpdEZv
cldoZWVsRXZlbnRzKCk7Cit9CisKIFdLU3RyaW5nUmVmIFdLUGFnZUNvcHlUaXRsZShXS1BhZ2VS
ZWYgcGFnZVJlZikKIHsKICAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHBhZ2VSZWYpLT5w
YWdlVGl0bGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKaW5kZXgg
ZDAxYzgzOC4uNTBmM2Y4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
aApAQCAtMjg4LDcgKzI4OCw4IEBAIFdLX0VYUE9SVCBib29sIFdLUGFnZUNhbkdvQmFjayhXS1Bh
Z2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bShXS1BhZ2VSZWYgcGFnZSwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW0pOwogV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKFdLUGFnZVJlZiBwYWdlKTsK
IFdLX0VYUE9SVCBXS0JhY2tGb3J3YXJkTGlzdFJlZiBXS1BhZ2VHZXRCYWNrRm9yd2FyZExpc3Qo
V0tQYWdlUmVmIHBhZ2UpOwotCitXS19FWFBPUlQgYm9vbCBXS1BhZ2VTaG91bGRXYWl0Rm9yV2hl
ZWxFdmVudHMoV0tQYWdlUmVmIHBhZ2UpOworICAgIAogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdL
UGFnZUNvcHlUaXRsZShXS1BhZ2VSZWYgcGFnZSk7CiAKIFdLX0VYUE9SVCBXS1VSTFJlZiBXS1Bh
Z2VDb3B5UGVuZGluZ0FQSVJlcXVlc3RVUkwoV0tQYWdlUmVmIHBhZ2UpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA2MjNhYjE2Li5hYzZkNzdhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzA1NCw2ICszMDU0
LDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkRmFpbFRvSW5pdGlhbGl6
ZVBsdWdpbih0aGlzLCBtaW1lVHlwZSk7CiB9CiAKK2Jvb2wgV2ViUGFnZVByb3h5OjpzaG91bGRX
YWl0Rm9yV2hlZWxFdmVudHMoKQoreworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICBy
ZXR1cm4gbV93aGVlbEV2ZW50SGFuZGxlckNvdW50ID4gMDsKKyNlbHNlCisgICAgcmV0dXJuIGZh
bHNlOworI2VuZGlmCit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkaW5nRGF0
YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUs
IGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCiB7CiAgICAgbV9w
YWdlQ2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uKHN1
Z2dlc3RlZEZpbGVuYW1lLCBkYXRhUmVmZXJlbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCAyMDFjYjJlLi5iNjc3NTc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yMjYsNiArMjI2LDggQEAgcHVibGljOgogICAgIHZv
aWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVk
SXRlbSwgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+ID4qIHJlbW92ZWRJdGVtcyk7CiAgICAgdm9p
ZCBzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIGJvb2wmIHNo
b3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKTsKIAorICAgIGJvb2wgc2hvdWxkV2FpdEZvcldo
ZWVsRXZlbnRzKCk7CisKICAgICBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKSBjb25zdDsKIAogICAgIGJvb2wgZHJhd3NCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1
cm4gbV9kcmF3c0JhY2tncm91bmQ7IH0KQEAgLTYxMSw2ICs2MTMsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhhc0hvcml6b250YWxT
Y3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIpOwogICAgIHZvaWQgZGlkQ2hhbmdl
U2Nyb2xsT2Zmc2V0UGlubmluZ0Zvck1haW5GcmFtZShib29sIHBpbm5lZFRvTGVmdFNpZGUsIGJv
b2wgcGlubmVkVG9SaWdodFNpZGUpOwogICAgIHZvaWQgZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdp
bihjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyAgICB2b2lkIHVwZGF0ZUNvdW50V2hlZWxFdmVu
dEhhbmRsZXJzKHVuc2lnbmVkIGNvdW50KSB7IG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCA9IGNv
dW50OyB9CiAKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCByZWF0
dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKQEAgLTg2
Niw2ICs4NjksOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX21haW5GcmFtZUhhc0hvcml6b250
YWxTY3JvbGxiYXI7CiAgICAgYm9vbCBtX21haW5GcmFtZUhhc1ZlcnRpY2FsU2Nyb2xsYmFyOwor
ICAgIC8vIFRoaXMgYWdncmVnYXRlZCBjb3VudCBvZiB3aGVlbCBoYW5kbGVycyBvbmx5IGluY2x1
ZGVzIGhvcml6b250YWwgc2Nyb2xsYmFycworICAgIC8vIGFuZCBKUyB3aGVlbCBldmVudCBoYW5k
bGVycy4KKyAgICBpbnQgbV93aGVlbEV2ZW50SGFuZGxlckNvdW50OwogCiAgICAgYm9vbCBtX21h
aW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lkZTsKICAgICBib29sIG1fbWFpbkZyYW1lSXNQaW5uZWRU
b1JpZ2h0U2lkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IDljZTY3NjQuLjdkZGRiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjIsNiArNjIsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZENoYW5nZVNjcm9sbGJhcnNGb3JN
YWluRnJhbWUoYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyLCBib29sIGhhc1ZlcnRpY2FsU2Ny
b2xsYmFyKQogICAgIERpZENoYW5nZVNjcm9sbE9mZnNldFBpbm5pbmdGb3JNYWluRnJhbWUoYm9v
bCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyLCBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKQogICAg
IERpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oV1RGOjpTdHJpbmcgbWltZVR5cGUpCisgICAgVXBk
YXRlQ291bnRXaGVlbEV2ZW50SGFuZGxlcnModW5zaWduZWQgY291bnQpCiAKICNpZiBFTkFCTEUo
VElMRURfQkFDS0lOR19TVE9SRSkKICAgICBQYWdlRGlkUmVxdWVzdFNjcm9sbChXZWJDb3JlOjpJ
bnRQb2ludCBwb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCmluZGV4IDZlMTI5NTQuLjA5
N2YyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaApAQCAtNzIsNiArNzIsMTIgQEAgZW51
bSB7CiB9OwogdHlwZWRlZiB1aW50MzJfdCBXS0Z1bGxTY3JlZW5LZXlib2FyZFJlcXVlc3RUeXBl
OwogCitlbnVtIHsKKyAgICBXS1Njcm9sbERpcmVjdGlvbkxlZnQsCisgICAgV0tTY3JvbGxEaXJl
Y3Rpb25SaWdodAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tTY3JvbGxEaXJlY3Rpb247CisKIC8v
IExvYWRlciBDbGllbnQKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOwpAQCAtMTc1LDcgKzE4MSw4IEBAIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdl
CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRTY3JvbGxDYWxsYmFjaykoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlUGFpbnRDdXN0b21PdmVyaGFuZ0FyZWFDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLR3JhcGhpY3NDb250ZXh0UmVmIGdyYXBoaWNzQ29udGV4dCwgV0tSZWN0IGhvcml6
b250YWxPdmVyaGFuZywgV0tSZWN0IHZlcnRpY2FsT3ZlcmhhbmcsIFdLUmVjdCBkaXJ0eVJlY3Qs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiBXS1N0cmluZ1JlZiAoKldLQnVuZGxl
UGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tTdHJpbmdSZWYgb3JpZ2luYWxGaWxlUGF0aCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci0K
K3R5cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFnZVNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbkNh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTY3JvbGxEaXJlY3Rpb24gc2Nyb2xsRGly
ZWN0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKKyAgICAKIHN0cnVjdCBXS0J1bmRsZVBh
Z2VVSUNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwogICAgIGNvbnN0IHZvaWQgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xp
ZW50SW5mbzsKQEAgLTE4OSw2ICsxOTYsNyBAQCBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnQg
ewogICAgIFdLQnVuZGxlUGFnZVBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWE7CiAgICAgV0tCdW5kbGVQ
YWdlR2VuZXJhdGVGaWxlRm9yVXBsb2FkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaG91bGRHZW5lcmF0ZUZpbGVGb3JVcGxvYWQ7CiAgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVG
aWxlRm9yVXBsb2FkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUZp
bGVGb3JVcGxvYWQ7CisgICAgV0tCdW5kbGVQYWdlU2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9u
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb247
CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnQgV0tCdW5kbGVQYWdlVUlD
bGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKaW5k
ZXggNTMyZDA1OC4uMGI3NWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VV
SUNsaWVudC5jcHAKQEAgLTExNSw0ICsxMTUsOSBAQCBTdHJpbmcgSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQ6OmdlbmVyYXRlRmlsZUZvclVwbG9hZChXZWJQYWdlKiBwYWdlLCBjb25zdCBTdAog
ICAgIHJldHVybiBnZW5lcmF0ZWRGaWxlUGF0aCA/IGdlbmVyYXRlZEZpbGVQYXRoLT5zdHJpbmco
KSA6IFN0cmluZygpOwogfQogCitib29sIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpzaG91
bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViUGFnZSogcGFnZSwgV0tTY3JvbGxEaXJlY3Rpb24g
ZGlyZWN0aW9uKQoreworICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24odG9BUEkocGFnZSksIGRpcmVjdGlvbiwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNs
aWVudC5oCmluZGV4IDQ3YTVjYTguLmI1MmQ4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZVVJQ2xpZW50LmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogCiAgICAgU3RyaW5n
IHNob3VsZEdlbmVyYXRlRmlsZUZvclVwbG9hZChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBvcmln
aW5hbEZpbGVQYXRoKTsKICAgICBTdHJpbmcgZ2VuZXJhdGVGaWxlRm9yVXBsb2FkKFdlYlBhZ2Uq
LCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsRmlsZVBhdGgpOworICAgIAorICAgIGJvb2wgc2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYlBhZ2UqLCBXS1Njcm9sbERpcmVjdGlvbik7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmZDVl
ZTU1Li4yYzE5YmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03NTksNCArNzU5LDIx
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5S
ZWN0KGNvbnN0IEludFJlY3QmIHNjcm9sbGVyCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6Ok5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3Qoc2Nyb2xsZXJU
aHVtYikpOwogfQogCitib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgc3dpdGNo
IChkaXJlY3Rpb24pIHsKKyAgICBjYXNlIFdlYkNvcmU6OlNjcm9sbExlZnQ6CisgICAgICAgIHJl
dHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS5zaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb24obV9wYWdlLCBXS1Njcm9sbERpcmVjdGlvbkxlZnQpOworICAgIGNhc2UgV2ViQ29y
ZTo6U2Nyb2xsUmlnaHQ6CisgICAgICAgIHJldHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlD
bGllbnQoKS5zaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24obV9wYWdlLCBXS1Njcm9sbERpcmVj
dGlvblJpZ2h0KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9
CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1cGRhdGVDb3VudFdoZWVsRXZlbnRIYW5kbGVycyh1
bnNpZ25lZCBjb3VudCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6VXBkYXRlQ291bnRXaGVlbEV2ZW50SGFuZGxlcnMoY291bnQpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5MDM4ZWFmLi4xYjBiZDIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIxOCw2ICsyMTgsOSBAQCBwcml2YXRlOgogCiAgICAg
dmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1
bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9u
KTsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ291bnRXaGVlbEV2ZW50SGFuZGxlcnMo
dW5zaWduZWQpOwogCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJl
ZlB0cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MjUyODgzLi40MTA3YzNk
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6
b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMg
YXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOiBTZXQgbmV3IGRlZmF1bHQgbWV0aG9kIHRvIG5p
bC4KKwogMjAxMS0wNS0xMyAgWm9sdGFuIEhlcmN6ZWcgIDx6aGVyY3plZ0B3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcAppbmRleCAyYTFmODVkLi5iNzliZTRkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3Bw
CkBAIC0yMjUsNiArMjI1LDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBh
Z2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIDAsIC8qcGFpbnRDdXN0b21PdmVyaGFu
Z0FyZWEqLwogICAgICAgICAwLCAvKnNob3VsZEdlbmVyYXRlRmlsZUZvclVwbG9hZCovCiAgICAg
ICAgIDAsIC8qZ2VuZXJhdGVGaWxlRm9yVXBsb2FkKi8KKyAgICAgICAgMCwgLypzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3Rpb24qLwogICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0VUlDbGllbnQo
bV9wYWdlLCAmdWlDbGllbnQpOwogCi0tIAoxLjcuNC40Cgo=
</data>
<flag name="review"
          id="86634"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="86646"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93516</attachid>
            <date>2011-05-13 14:45:14 -0700</date>
            <delta_ts>2011-05-13 14:50:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Can-t-horizontally-scroll-iframes-and-overflow-becau.patch</filename>
            <type>text/plain</type>
            <size>62042</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSAwMmNjZGVjMmQzM2ExMmYzMTNhMTExMjA1YmM2MGJjMjAwZmY1YmUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBGcmks
IDEzIE1heSAyMDExIDExOjE1OjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQ2FuJ3QgaG9yaXpv
bnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsCiBldmVudHMg
YXJlIGFsd2F5cyBhY2NlcHRlZAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNzc5CgpTb3VyY2UvV2ViQ29yZToKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoK
KiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogSW5pdGlh
bGl6ZSB3aGVlbCBldmVudCBoYW5kbGVyIGNvdW50CihXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQWRk
V2hlZWxFdmVudEhhbmRsZXIpOiBJbmNyZW1lbnQgY291bnQsIGFuZCB0ZWxsIHRoZSBtYWluIGZy
YW1lCnRvIHJlY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2Ygd2hlZWwgZXZlbnQgaGFuZGxl
cnMgaW4gYWxsIG9mIGl0cyBmcmFtZXMnIGRvY3VtZW50cwooV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
ZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKKiBk
b20vRG9jdW1lbnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlckNvdW50
KTogQWNjZXNzIHRoZSBjb3VudAoqIGRvbS9Ob2RlLmNwcDoKKFdlYkNvcmU6OnRyeUFkZEV2ZW50
TGlzdGVuZXIpOiBJZiB0aGUgZXZlbnQgbGlzdGVuZXIgaXMgYSBtb3VzZSB3aGVlbCBldmVudCwg
dGhlbgp0ZWxsIHRoZSBkb2N1bWVudCB0byBpbmNyZW1lbnQgaXRzIGNvdW50CihXZWJDb3JlOjp0
cnlSZW1vdmVFdmVudExpc3RlbmVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKCiogcGFn
ZS9DaHJvbWVDbGllbnQuaDogVHdvIG5ldyBtZXRob2RzOgogIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQ6IFdlYlByb2Nlc3MgdGVsbHMgVUlQcm9jZXNzIHRvIHVwZGF0ZSBpdHMgY2FjaGVk
CiAgICBjb3VudCBvZiB0b3RhbCB3aGVlbCBldmVudCBoYW5kbGVycywgd2hpY2ggaW4gdGhpcyBj
YXNlIG9ubHkgaW5jbHVkZSBob3Jpem9udGFsCiAgICBzY3JvbGxiYXJzIGFuZCBtb3VzZSB3aGVl
bCBKUyBoYW5kbGVycwogIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbjogYWxsb3cgdGhlIFVJ
UHJvY2VzcyB0byBwcm92aWRlIHNvbWUgY29udHJvbCBvdmVyCiAgICB3aGV0aGVyIHJ1YmJlciBi
YW5kaW5nIGlzIGFsbG93ZWQgd2hlbiBzY3JvbGxpbmcgaW4gYSBwYXJ0aWN1bGFyIGRpcmVjdGlv
bgoqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpu
dW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBlbXB0eSBpbXBsCihXZWJDb3Jl
OjpFbXB0eUNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVs
dCBlbXB0eSBpbXBsCiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgooV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogUmVtb3ZlIGEgcmVkdW5kYW50IHBvaW50ZXIgY2hlY2sK
KiBwYWdlL0ZyYW1lLmNwcDoKKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1bWVudCk6IFdoZW4gdGhl
IGZyYW1lJ3MgZG9jdW1lbnQgY2hhbmdlcywgY2FsY3VsYXRlIHRoYXQKZG9jdW1lbnQncyB0b3Rh
bCB3aGVlbCBldmVudCBoYW5kbGVycywgYW5kIG5vdGlmeSB0aGUgVUlQcm9jZXNzCihXZWJDb3Jl
OjpGcmFtZTo6bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQp
OiBQZXJmb3JtcyBhIGNyYXdsCm9mIHRoZSBmcmFtZSB0cmVlIHRvIGFnZ3JlZ2F0ZSB0aGUgY291
bnQKKFdlYkNvcmU6OnN1bVRvdGFsV2hlZWxFdmVudEhhbmRsZXJzKTogSGVscGVyIGZ1bmN0aW9u
CiogcGFnZS9GcmFtZS5oOgoKKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOiBWaXJ0dWFsaXpl
IGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIgYW5kCndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xs
YmFyIGZvciBvdmVycmlkaW5nIGluIFJlbmRlckxheWVyIGFuZCBGcmFtZVZpZXcKKFdlYkNvcmU6
OlNjcm9sbGFibGVBcmVhOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGlt
cGwKKiBwYWdlL0ZyYW1lVmlldy5jcHA6CihXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZEFkZEhvcml6
b250YWxTY3JvbGxiYXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MgY291bnQKKFdl
YkNvcmU6OkZyYW1lVmlldzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIpOiBVcGRhdGVz
IHRoZSBmcmFtZSdzIGRvY3VtZW50J3MKY291bnQKKFdlYkNvcmU6OkZyYW1lVmlldzo6c2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKTogQ29ubmVjdGl2ZSBnbHVlCiogcGFnZS9GcmFtZVZpZXcu
aDogQWRkaW5nIG92ZXJyaWRpbmcgbWV0aG9kcyBmcm9tIFNjcm9sbGFibGVBcmVhCiogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDogU2ltaWxhciBmdW5jdGlvbmFsaXR5IHRvIEZyYW1lVmlldwoo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOgooV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKToKKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDoKCiogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tOiBV
cGRhdGUgbG9naWMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gYWNjZXB0CnRoZSB3aGVlbCBldmVu
dC4gQWxzbywgZml4IGEgZmV3IHNwZWxsaW5nIGVycm9ycyBvZiB0aGUgd29yZCAibW9tZW50dW0i
LgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgoKKiBwbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogRml4IHR5cG8gb2YgIm1vbWVudHVtIgoqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
TWFjOjpTY3JvbGxBbmltYXRvck1hYyk6IEZpeCB0eXBvIG9mICJtb21lbnR1bSIKKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQpOiBGaXggdHlwbyBvZiAi
Y29hbGVzY2VkIgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmJlZ2luU2Nyb2xsR2VzdHVy
ZSk6IEZpeCB0eXBvIG9mICJjb2FsZXNjZWQiCihXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6
c25hcFJ1YmJlckJhbmQpOiBGaXggdHlwbyBvZiAibW9tZW50dW0iCgooV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOiBOZXcgbG9naWMgZm9yIGRldGVybWluaW5n
IHdoZXRoZXIKdG8gYWxsb3cgcnViYmVyLWJhbmRpbmcgYmFzZWQgb24gdGhlIGFyZWEncyBzY3Jv
bGwgcG9zaXRpb24gYW5kIHRoZSB3aGVlbCBldmVudC4KQ291bGQgcHJldmVudCBhY2NlcHRpbmcg
dGhlIHdoZWVsIGV2ZW50LiBBbHNvLCBmaXggdHlwbyBvZiAibW9tZW50dW0iCihXZWJDb3JlOjpo
b3Jpem9udGFsU2Nyb2xsUG9zaXRpb25Jc1Bhc3RNaW5pbXVtKTogSW5saW5lIGhlbHBlciBmdW5j
dGlvbiBmb3IgbG9naWMKKFdlYkNvcmU6Omhvcml6b250YWxTY3JvbGxQb3NpdGlvbklzUGFzdE1h
eGltdW0pOiBJbmxpbmUgaGVscGVyIGZ1bmN0aW9uIGZvciBsb2dpYwooV2ViQ29yZTo6aXNTY3Jv
bGxpbmdMZWZ0QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24g
Zm9yIGxvZ2ljCihXZWJDb3JlOjppc1Njcm9sbGluZ1JpZ2h0QW5kU2hvdWxkTm90UnViYmVyQmFu
ZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCgpTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtOgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIHNyYy9DaHJvbWVDbGllbnRJbXBs
Lmg6CihXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAooV2ViS2l0OjpDaHJv
bWVDbGllbnRJbXBsOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBs
IG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L2VmbDoKClJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoK
KFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTog
RGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJDb3JlOjpDaHJvbWVD
bGllbnRFZmw6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2Yg
bmV3IENocm9tZUNsaWVudCBtZXRob2QKClNvdXJjZS9XZWJLaXQvZ3RrOgoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgooV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQg
aW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAooV2ViS2l0OjpDaHJvbWVDbGllbnQ6Om51
bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNs
aWVudCBtZXRob2QKClNvdXJjZS9XZWJLaXQvaGFpa3U6CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaDoKKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEhhaWt1OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGlt
cGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1
OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJv
bWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L21hYzoKClJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKFdlYkNocm9tZUNs
aWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcg
Q2hyb21lQ2xpZW50IG1ldGhvZAooV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKClNvdXJj
ZS9XZWJLaXQvcXQ6CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRo
b2QKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0
L3dpbjoKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBXZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaDoKKFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJDaHJvbWVD
bGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3
IENocm9tZUNsaWVudCBtZXRob2QKClNvdXJjZS9XZWJLaXQvd2luY2U6CgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKFdl
YktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERl
ZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAooV2ViS2l0OjpDaHJvbWVDbGll
bnRXaW5DRTo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBu
ZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC93eDoKClJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6CihXZWJDb3Jl
OjpDaHJvbWVDbGllbnRXeDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdDI6CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KCiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
c2hvdWxkV2FpdEZvcldoZWVsRXZlbnRzKTogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYXQgbGVh
c3QKb25lIHdoZWVsIGV2ZW50IGhhbmRsZXIKKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IEFk
ZCBuZXcgdmFyaWFibGUgdG8gY2FjaGUgdGhlIGNvdW50CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IFNldHMgdGhlIGNvdW50CgpUaGUgcmVzdCBq
dXN0IHByb3ZpZGVzIGFsbCB0aGUgY29ubmVjdGlvbnMuCiogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHA6CihXS1BhZ2VTaG91bGRXYWl0Rm9yV2hlZWxFdmVudHMpOgoqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaDoKKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgoqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CiogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6CihXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOgoq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoK
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CihXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKToKKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50Ojp1cGRhdGVDb3VudFdoZWVsRXZlbnRIYW5kbGVycyk6CiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKClRvb2xzOgoKUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCgoqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1
bmRsZVBhZ2UpOiBTZXQgbmV3IGRlZmF1bHQgbWV0aG9kIHRvIG5pbC4KLS0tCiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzEgKysrKysrKysr
KysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICAg
ICAgIHwgICAxOCArKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAg
ICAgICAgICAgICB8ICAgIDcgKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxNSArKystCiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmggICAgICAgICAgICAgICB8ICAgIDQgKwogU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaCAgICAgICAgICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCAgICAgICAgICAgICAgIHwgICAgMyArLQogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKystCiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmggICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAgIDI0ICsr
KysrKwogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCAgICAgICAgICAgICAgICAgICAg
fCAgICAzICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggICAgICAg
ICAgIHwgICAgNiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLmggICAgfCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW0gICB8ICAgODMgKysrKysrKysrKysrKystLS0tLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgICAgICAgICAgIHwgICAxMyArKysKIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oICAgICAgICAgICAgIHwgICAgMiArCiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysr
CiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggICAgICB8ICAg
IDMgKwogU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDExICsrKwogU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmggfCAgICAzICsKIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oIHwgICAgMyArCiBTb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrCiAuLi4vaGFpa3UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50SGFpa3UuaCAgICAgICB8ICAgIDMgKwogU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKwogU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggfCAgICA0ICsKIFNvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgIHwgICAgMyArCiBT
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEg
KysrCiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCB8
ICAgIDMgKwogU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDExICsrKwogLi4uL3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNF
LmggICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oICAgIHwgICAgMyArCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjggKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAgICAgfCAgICA1ICsKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCAgICAgICAgICAgIHwgICAgMyArLQogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgfCAgICA5ICsrCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggICAgICAgICAgICB8ICAgIDYgKysK
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gIHwgICAg
MSArCiAuLi4vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaCB8
ICAgMTAgKystCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQu
Y3BwICB8ICAgIDUgKwogLi4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xp
ZW50LmggICAgfCAgICAyICsKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAgIHwgICAxOCArKysrCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCAgICB8ICAgIDMgKwogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICsrKwogLi4uL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5jcHAgICAgICAgICAgfCAgICAxICsKIDQ3IGZpbGVzIGNoYW5nZWQs
IDQ3MCBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNkMjhi
My4uMDY2ZmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDExLTA1LTEzICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92
ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50
KTogSW5pdGlhbGl6ZSB3aGVlbCBldmVudCBoYW5kbGVyIGNvdW50CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6ZGlkQWRkV2hlZWxFdmVudEhhbmRsZXIpOiBJbmNyZW1lbnQgY291bnQsIGFu
ZCB0ZWxsIHRoZSBtYWluIGZyYW1lCisgICAgICAgIHRvIHJlY2FsY3VsYXRlIHRoZSB0b3RhbCBu
dW1iZXIgb2Ygd2hlZWwgZXZlbnQgaGFuZGxlcnMgaW4gYWxsIG9mIGl0cyBmcmFtZXMnIGRvY3Vt
ZW50cworICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpZFJlbW92ZVdoZWVsRXZlbnRIYW5k
bGVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlckNvdW50KTog
QWNjZXNzIHRoZSBjb3VudAorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnRyeUFkZEV2ZW50TGlzdGVuZXIpOiBJZiB0aGUgZXZlbnQgbGlzdGVuZXIgaXMgYSBtb3Vz
ZSB3aGVlbCBldmVudCwgdGhlbgorICAgICAgICB0ZWxsIHRoZSBkb2N1bWVudCB0byBpbmNyZW1l
bnQgaXRzIGNvdW50CisgICAgICAgIChXZWJDb3JlOjp0cnlSZW1vdmVFdmVudExpc3RlbmVyKTog
UmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6IFR3byBuZXcgbWV0aG9kczoKKyAgICAgICAgICBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFu
Z2VkOiBXZWJQcm9jZXNzIHRlbGxzIFVJUHJvY2VzcyB0byB1cGRhdGUgaXRzIGNhY2hlZAorICAg
ICAgICAgICAgY291bnQgb2YgdG90YWwgd2hlZWwgZXZlbnQgaGFuZGxlcnMsIHdoaWNoIGluIHRo
aXMgY2FzZSBvbmx5IGluY2x1ZGUgaG9yaXpvbnRhbAorICAgICAgICAgICAgc2Nyb2xsYmFycyBh
bmQgbW91c2Ugd2hlZWwgSlMgaGFuZGxlcnMKKyAgICAgICAgICBzaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb246IGFsbG93IHRoZSBVSVByb2Nlc3MgdG8gcHJvdmlkZSBzb21lIGNvbnRyb2wgb3Zl
cgorICAgICAgICAgICAgd2hldGhlciBydWJiZXIgYmFuZGluZyBpcyBhbGxvd2VkIHdoZW4gc2Ny
b2xsaW5nIGluIGEgcGFydGljdWxhciBkaXJlY3Rpb24KKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6bnVtV2hlZWxF
dmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgZW1wdHkgaW1wbAorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1
bHQgZW1wdHkgaW1wbAorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudCk6IFJlbW92ZSBhIHJlZHVu
ZGFudCBwb2ludGVyIGNoZWNrCisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZTo6c2V0RG9jdW1lbnQpOiBXaGVuIHRoZSBmcmFtZSdzIGRvY3VtZW50IGNo
YW5nZXMsIGNhbGN1bGF0ZSB0aGF0CisgICAgICAgIGRvY3VtZW50J3MgdG90YWwgd2hlZWwgZXZl
bnQgaGFuZGxlcnMsIGFuZCBub3RpZnkgdGhlIFVJUHJvY2VzcworICAgICAgICAoV2ViQ29yZTo6
RnJhbWU6Om5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKTog
UGVyZm9ybXMgYSBjcmF3bAorICAgICAgICBvZiB0aGUgZnJhbWUgdHJlZSB0byBhZ2dyZWdhdGUg
dGhlIGNvdW50CisgICAgICAgIChXZWJDb3JlOjpzdW1Ub3RhbFdoZWVsRXZlbnRIYW5kbGVycyk6
IEhlbHBlciBmdW5jdGlvbgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKworICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6IFZpcnR1YWxpemUgZGlkQWRkSG9yaXpvbnRhbFNjcm9s
bGJhciBhbmQKKyAgICAgICAgd2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIgZm9yIG92ZXJy
aWRpbmcgaW4gUmVuZGVyTGF5ZXIgYW5kIEZyYW1lVmlldworICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbAor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6IFVwZGF0ZXMgdGhlIGZyYW1lJ3MgZG9jdW1l
bnQncyBjb3VudAorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp3aWxsUmVtb3ZlSG9yaXpv
bnRhbFNjcm9sbGJhcik6IFVwZGF0ZXMgdGhlIGZyYW1lJ3MgZG9jdW1lbnQncworICAgICAgICBj
b3VudAorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24pOiBDb25uZWN0aXZlIGdsdWUKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOiBBZGRp
bmcgb3ZlcnJpZGluZyBtZXRob2RzIGZyb20gU2Nyb2xsYWJsZUFyZWEKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOiBTaW1pbGFyIGZ1bmN0aW9uYWxpdHkgdG8gRnJhbWVWaWV3
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJh
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6d2lsbFJlbW92ZUhvcml6b250YWxT
Y3JvbGxiYXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tOiBVcGRhdGUgbG9naWMgdG8gZGV0
ZXJtaW5lIHdoZXRoZXIgdG8gYWNjZXB0CisgICAgICAgIHRoZSB3aGVlbCBldmVudC4gQWxzbywg
Zml4IGEgZmV3IHNwZWxsaW5nIGVycm9ycyBvZiB0aGUgd29yZCAibW9tZW50dW0iLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOiAKKyAgICAg
ICAgCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmg6IEZpeCB0eXBv
IG9mICJtb21lbnR1bSIKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JN
YWMpOiBGaXggdHlwbyBvZiAibW9tZW50dW0iCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KTogRml4IHR5cG8gb2YgImNvYWxlc2NlZCIK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpiZWdpblNjcm9sbEdlc3R1cmUp
OiBGaXggdHlwbyBvZiAiY29hbGVzY2VkIgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JNYWM6OnNuYXBSdWJiZXJCYW5kKTogRml4IHR5cG8gb2YgIm1vbWVudHVtIgorICAgICAgICAK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTog
TmV3IGxvZ2ljIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyCisgICAgICAgIHRvIGFsbG93IHJ1YmJl
ci1iYW5kaW5nIGJhc2VkIG9uIHRoZSBhcmVhJ3Mgc2Nyb2xsIHBvc2l0aW9uIGFuZCB0aGUgd2hl
ZWwgZXZlbnQuCisgICAgICAgIENvdWxkIHByZXZlbnQgYWNjZXB0aW5nIHRoZSB3aGVlbCBldmVu
dC4gQWxzbywgZml4IHR5cG8gb2YgIm1vbWVudHVtIgorICAgICAgICAoV2ViQ29yZTo6aG9yaXpv
bnRhbFNjcm9sbFBvc2l0aW9uSXNQYXN0TWluaW11bSk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24g
Zm9yIGxvZ2ljCisgICAgICAgIChXZWJDb3JlOjpob3Jpem9udGFsU2Nyb2xsUG9zaXRpb25Jc1Bh
c3RNYXhpbXVtKTogSW5saW5lIGhlbHBlciBmdW5jdGlvbiBmb3IgbG9naWMKKyAgICAgICAgKFdl
YkNvcmU6OmlzU2Nyb2xsaW5nTGVmdEFuZFNob3VsZE5vdFJ1YmJlckJhbmQpOiBJbmxpbmUgaGVs
cGVyIGZ1bmN0aW9uIGZvciBsb2dpYworICAgICAgICAoV2ViQ29yZTo6aXNTY3JvbGxpbmdSaWdo
dEFuZFNob3VsZE5vdFJ1YmJlckJhbmQpOiBJbmxpbmUgaGVscGVyIGZ1bmN0aW9uIGZvciBsb2dp
YworCiAyMDExLTA1LTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IDhjZTQzZDEuLjkzZGYyMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDIy
LDYgKzQyMiw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwm
IHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAsIG1fd3JpdGluZ01vZGVTZXRP
bkRvY3VtZW50RWxlbWVudChmYWxzZSkKICAgICAsIG1fd3JpdGVSZWN1cnNpb25Jc1Rvb0RlZXAo
ZmFsc2UpCiAgICAgLCBtX3dyaXRlUmVjdXJzaW9uRGVwdGgoMCkKKyAgICAsIG1fd2hlZWxFdmVu
dEhhbmRsZXJDb3VudCgwKQogewogICAgIG1fZG9jdW1lbnQgPSB0aGlzOwogCkBAIC01MDY5LDQg
KzUwNzAsMjEgQEAgUGFzc1JlZlB0cjxUb3VjaExpc3Q+IERvY3VtZW50OjpjcmVhdGVUb3VjaExp
c3QoRXhjZXB0aW9uQ29kZSYpIGNvbnN0CiB9CiAjZW5kaWYKIAordm9pZCBEb2N1bWVudDo6ZGlk
QWRkV2hlZWxFdmVudEhhbmRsZXIoKQoreworICAgICsrbV93aGVlbEV2ZW50SGFuZGxlckNvdW50
OworICAgIEZyYW1lKiBtYWluRnJhbWUgPSBwYWdlKCkgPyBwYWdlKCktPm1haW5GcmFtZSgpIDog
MDsKKyAgICBpZiAobWFpbkZyYW1lKQorICAgICAgICBtYWluRnJhbWUtPm5vdGlmeUNocm9tZUNs
aWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6
OmRpZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKCkKK3sKKyAgICBBU1NFUlQobV93aGVlbEV2ZW50
SGFuZGxlckNvdW50ID4gMCk7CisgICAgLS1tX3doZWVsRXZlbnRIYW5kbGVyQ291bnQ7CisgICAg
RnJhbWUqIG1haW5GcmFtZSA9IHBhZ2UoKSA/IHBhZ2UoKS0+bWFpbkZyYW1lKCkgOiAwOworICAg
IGlmIChtYWluRnJhbWUpCisgICAgICAgIG1haW5GcmFtZS0+bm90aWZ5Q2hyb21lQ2xpZW50V2hl
ZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5NTA1MWJmLi5mNWE5N2JhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtMTA5Nyw2ICsxMDk3LDExIEBAIHB1YmxpYzoKIAogICAgIENvbnRlbnRTZWN1
cml0eVBvbGljeSogY29udGVudFNlY3VyaXR5UG9saWN5KCkgeyByZXR1cm4gbV9jb250ZW50U2Vj
dXJpdHlQb2xpY3kuZ2V0KCk7IH0KIAorICAgIC8vIFVzZWQgdG8ga2VlcCB0cmFjayBvZiBob3Jp
em9udGFsIHNjcm9sbGJhcnMgYW5kIG9ubW91c2V3aGVlbCBldmVudCBoYW5kbGVycyBvbmx5Lgor
ICAgIHVuc2lnbmVkIHdoZWVsRXZlbnRIYW5kbGVyQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3do
ZWVsRXZlbnRIYW5kbGVyQ291bnQ7IH0KKyAgICB2b2lkIGRpZEFkZFdoZWVsRXZlbnRIYW5kbGVy
KCk7CisgICAgdm9pZCBkaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigpOworICAgIAogcHJvdGVj
dGVkOgogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9v
bCBpc0hUTUwpOwogCkBAIC0xMzkzLDYgKzEzOTgsOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxN
ZWRpYVF1ZXJ5TWF0Y2hlcj4gbV9tZWRpYVF1ZXJ5TWF0Y2hlcjsKICAgICBib29sIG1fd3JpdGVS
ZWN1cnNpb25Jc1Rvb0RlZXA7CiAgICAgdW5zaWduZWQgbV93cml0ZVJlY3Vyc2lvbkRlcHRoOwor
ICAgIAorICAgIHVuc2lnbmVkIG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudDsKIAogI2lmIEVOQUJM
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICBPd25QdHI8U2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyPiBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApp
bmRleCBjOTU5N2ZiLi4xYTU2MGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yOCw2ICsyOCw4IEBA
CiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRl
ICJBdHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGll
bnQuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5j
bHVkZSAiQ1NTUnVsZUxpc3QuaCIKQEAgLTI2NDEsOSArMjY0MywxMiBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgdHJ5QWRkRXZlbnRMaXN0ZW5lcihOb2RlKiB0YXJnZXROb2RlLCBjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZQogICAgIGlmICghdGFyZ2V0Tm9kZS0+RXZlbnRUYXJnZXQ6OmFkZEV2ZW50TGlz
dGVuZXIoZXZlbnRUeXBlLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0YXJnZXROb2RlLT5kb2N1bWVu
dCgpKQorICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0YXJnZXROb2RlLT5kb2N1bWVudCgp
KSB7CiAgICAgICAgIGRvY3VtZW50LT5hZGRMaXN0ZW5lclR5cGVJZk5lZWRlZChldmVudFR5cGUp
OwotCisgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVu
dCkKKyAgICAgICAgICAgIGRvY3VtZW50LT5kaWRBZGRXaGVlbEV2ZW50SGFuZGxlcigpOworICAg
IH0KKyAgICAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI2ODgsNyArMjY5MywxMSBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgdHJ5UmVtb3ZlRXZlbnRMaXN0ZW5lcihOb2RlKiB0YXJnZXRO
b2RlLCBjb25zdCBBdG9taWNTdHJpbmcmCiAKICAgICAvLyBGSVhNRTogTm90aWZ5IERvY3VtZW50
IHRoYXQgdGhlIGxpc3RlbmVyIGhhcyB2YW5pc2hlZC4gV2UgbmVlZCB0byBrZWVwIHRyYWNrIG9m
IGEgbnVtYmVyIG9mCiAgICAgLy8gbGlzdGVuZXJzIGZvciBlYWNoIHR5cGUsIG5vdCBqdXN0IGEg
Ym9vbCAtIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM4NjEK
LQorICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSB0YXJnZXROb2RlLT5kb2N1bWVudCgpKSB7
CisgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVudCkK
KyAgICAgICAgICAgIGRvY3VtZW50LT5kaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigpOworICAg
IH0KKyAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCmluZGV4IGFhMmZjOWMuLmYzMjA0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKQEAgLTIyMyw2ICsyMjMsMTAgQEAgcHVibGljOgogI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCiAgICAgdmlydHVhbCB2b2lkIG5lZWRUb3VjaEV2ZW50cyhib29sKSB7IH0KICNlbmRp
ZgorICAgIAorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVu
c2lnbmVkKSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
IH07CiAKIGNsYXNzIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJD
bGllbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggODk0MTg0NS4uOWEwZmRl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xNzAsNiArMTcwLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBT
dHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHByaW50
KEZyYW1lKikgPSAwOworICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3QgPSAwOwogCiAjaWYgRU5BQkxFKERBVEFCQVNF
KQogICAgICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUpID0gMDsKQEAgLTMyMCw2ICszMjEsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIH07CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsUnVuTW9k
YWxEaWFsb2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5cGUmKSBjb25zdCB7IH0K
IAorICAgICAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNp
Z25lZCkgPSAwOworICAgICAgICAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgfkNo
cm9tZUNsaWVudCgpIHsgfQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAK
aW5kZXggMTMzZWM3Yi4uM2E0YmJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cApAQCAtMjEzOCwxMCArMjEzOCwxMSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxF
dmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAgICAgaWYgKGUuaXNBY2NlcHRlZCgpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIC8vIFdlIGRvIGFub3RoZXIgY2hlY2sgb24gdGhlIGZy
YW1lIHZpZXcgYmVjYXVzZSB0aGUgZXZlbnQgaGFuZGxlciBjYW4gcnVuIEpTIHdoaWNoIHJlc3Vs
dHMgaW4gdGhlIGZyYW1lIGdldHRpbmcgZGVzdHJveWVkLgogICAgIHZpZXcgPSBtX2ZyYW1lLT52
aWV3KCk7CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KKyAgICAKICAg
ICB2aWV3LT53aGVlbEV2ZW50KGUpOwogICAgIHJldHVybiBlLmlzQWNjZXB0ZWQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKaW5kZXggM2E4ZDNiNS4uYTNmYzFjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKQEAgLTMwOSw4ICszMDksMTEgQEAgdm9pZCBGcmFtZTo6c2V0RG9jdW1lbnQoUGFzc1JlZlB0
cjxEb2N1bWVudD4gbmV3RG9jKQogICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGVkICdkb2N1bWVudCcg
cHJvcGVydHksIHdoaWNoIGlzIG5vdyBzdGFsZS4KICAgICBtX3NjcmlwdC51cGRhdGVEb2N1bWVu
dCgpOwogCi0gICAgaWYgKG1fcGFnZSkKKyAgICBpZiAobV9wYWdlKSB7CiAgICAgICAgIG1fcGFn
ZS0+dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKTsKKyAgICAgICAgaWYgKG1fcGFnZS0+bWFpbkZy
YW1lKCkgPT0gdGhpcykKKyAgICAgICAgICAgIG5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRI
YW5kbGVyQ291bnRDaGFuZ2VkKCk7CisgICAgfQogfQogCiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9O
X0VWRU5UUykKQEAgLTExMTYsNCArMTExOSwxNyBAQCB2b2lkIEZyYW1lOjpzY2FsZVBhZ2UoZmxv
YXQgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4pCiAgICAgfQogfQogCit2b2lkIEZyYW1l
Ojpub3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpIGNvbnN0
Cit7CisgICAgLy8gRW5zdXJlIHRoYXQgdGhpcyBtZXRob2QgaXMgYmVpbmcgY2FsbGVkIG9uIHRo
ZSBtYWluIGZyYW1lIG9mIHRoZSBwYWdlLgorICAgIEFTU0VSVChtX3BhZ2UgJiYgbV9wYWdlLT5t
YWluRnJhbWUoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBjb3VudCA9IDA7CisgICAg
Zm9yIChjb25zdCBGcmFtZSogZnJhbWUgPSB0aGlzOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLT50cmF2ZXJzZU5leHQoKSkKKyAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpKQorICAg
ICAgICAgICAgY291bnQgKz0gZnJhbWUtPmRvY3VtZW50KCktPndoZWVsRXZlbnRIYW5kbGVyQ291
bnQoKTsKKyAgICAKKyAgICBtX3BhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+bnVtV2hlZWxFdmVu
dEhhbmRsZXJzQ2hhbmdlZChjb3VudCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaAppbmRleCA3ZGE5YzQ5Li45NGEwZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCkBAIC0y
MDYsNiArMjA2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAgICAgICAgIE1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKiBtZWRpYVN0cmVhbUZyYW1l
Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIu
Z2V0KCk7IH0KICNlbmRpZgorICAgICAgICAKKyAgICAgICAgLy8gU2hvdWxkIG9ubHkgYmUgY2Fs
bGVkIG9uIHRoZSBtYWluIGZyYW1lIG9mIGEgcGFnZS4KKyAgICAgICAgdm9pZCBub3RpZnlDaHJv
bWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpIGNvbnN0OwogCiAgICAgLy8g
PT09PT09PT0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGE2OWJiYzEuLjU3YjVm
ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRl
ICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIK
QEAgLTMwNiw2ICszMDcsMjEgQEAgdm9pZCBGcmFtZVZpZXc6OmRldGFjaEN1c3RvbVNjcm9sbGJh
cnMoKQogICAgIH0KIH0KIAordm9pZCBGcmFtZVZpZXc6OmRpZEFkZEhvcml6b250YWxTY3JvbGxi
YXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCit7CisgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkp
CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKCk7
CisgICAgc2Nyb2xsQW5pbWF0b3IoKS0+ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihzY3JvbGxi
YXIpOworfQorCit2b2lkIEZyYW1lVmlldzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIo
U2Nyb2xsYmFyKiBzY3JvbGxiYXIpCit7CisgICAgc2Nyb2xsQW5pbWF0b3IoKS0+d2lsbFJlbW92
ZUhvcml6b250YWxTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKKyAgICAvLyBGSVhNRTogbWF5YmUgbmVl
ZCBhIHNlcGFyYXRlIFNjcm9sbGFibGVBcmVhOjpkaWRSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFy
IGNhbGxiYWNrPworICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5kaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigpOworfQorCiBTY3JvbGxi
YXJPdmVybGF5U3R5bGUgRnJhbWVWaWV3OjpyZWNvbW1lbmRlZFNjcm9sbGJhck92ZXJsYXlTdHls
ZSgpIGNvbnN0CiB7CiAgICAgQ29sb3IgYmdDb2xvciA9IG1fZnJhbWUtPmdldERvY3VtZW50QmFj
a2dyb3VuZENvbG9yKCk7CkBAIC0xNDkwLDYgKzE1MDYsMTQgQEAgdm9pZCBGcmFtZVZpZXc6OnJl
cGFpbnRGaXhlZEVsZW1lbnRzQWZ0ZXJTY3JvbGxpbmcoKQogICAgIH0KIH0KIAorYm9vbCBGcmFt
ZVZpZXc6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24gZGlyZWN0
aW9uKSBjb25zdAoreworICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpID8gZnJhbWUoKS0+cGFnZSgp
IDogMDsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBTY3JvbGxWaWV3OjpzaG91bGRS
dWJiZXJCYW5kSW5EaXJlY3Rpb24oZGlyZWN0aW9uKTsKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21l
KCktPmNsaWVudCgpLT5zaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oZGlyZWN0aW9uKTsKK30K
KwogSG9zdFdpbmRvdyogRnJhbWVWaWV3Ojpob3N0V2luZG93KCkgY29uc3QKIHsKICAgICBQYWdl
KiBwYWdlID0gZnJhbWUoKSA/IGZyYW1lKCktPnBhZ2UoKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaAppbmRleCA1Njk3NjA0Li4xNjg1NzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAg
LTc1LDYgKzc1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTY3JvbGxiYXI+
IGNyZWF0ZVNjcm9sbGJhcihTY3JvbGxiYXJPcmllbnRhdGlvbik7CiAKICAgICB2aXJ0dWFsIGJv
b2wgYXZvaWRTY3JvbGxiYXJDcmVhdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkaWRB
ZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOworICAgIHZpcnR1YWwgdm9pZCB3aWxs
UmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYpOwogCkBAIC0xNTMsNiArMTU1LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmKTsKICAg
ICB2b2lkIHNjcm9sbFBvc2l0aW9uQ2hhbmdlZFZpYVBsYXRmb3JtV2lkZ2V0KCk7CiAgICAgdmly
dHVhbCB2b2lkIHJlcGFpbnRGaXhlZEVsZW1lbnRzQWZ0ZXJTY3JvbGxpbmcoKTsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29u
c3Q7CiAKICAgICBTdHJpbmcgbWVkaWFUeXBlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNZWRpYVR5
cGUoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aAppbmRleCA0YmJlZDNlLi5lYWZmOGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmgKQEAgLTczLDggKzczLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRBZGRW
ZXJ0aWNhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2b2lkIHdpbGxSZW1vdmVWZXJ0aWNh
bFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKLSAgICB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxi
YXIoU2Nyb2xsYmFyKik7Ci0gICAgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihT
Y3JvbGxiYXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihT
Y3JvbGxiYXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxi
YXIoU2Nyb2xsYmFyKik7CiAKICAgICBib29sIGhhc092ZXJsYXlTY3JvbGxiYXJzKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBTY3JvbGxiYXJPdmVybGF5U3R5bGUgcmVjb21tZW5kZWRTY3JvbGxiYXJP
dmVybGF5U3R5bGUoKSBjb25zdCB7IHJldHVybiBTY3JvbGxiYXJPdmVybGF5U3R5bGVEZWZhdWx0
OyB9CkBAIC0xMzEsNiArMTMxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRT
dXNwZW5kU2Nyb2xsQW5pbWF0aW9ucygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNl
dFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0JikgeyB9CisgICAgCisgICAg
dmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24p
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJv
bVBhZ2UoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMuaAppbmRleCBiZmVmOTViLi4yOGE1ZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtMTQ1LDcgKzE0NSw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzczsKICAgICBib29sIG1f
aWdub3JlTW9tZW50dW1TY3JvbGxzOwogICAgIAotICAgIENGVGltZUludGVydmFsIG1fbGFzdE1v
bWVtdHVtU2Nyb2xsVGltZXN0YW1wOworICAgIENGVGltZUludGVydmFsIG1fbGFzdE1vbWVudHVt
U2Nyb2xsVGltZXN0YW1wOwogICAgIEZsb2F0U2l6ZSBtX292ZXJmbG93U2Nyb2xsRGVsdGE7CiAg
ICAgRmxvYXRTaXplIG1fc3RyZXRjaFNjcm9sbEZvcmNlOwogICAgIEZsb2F0U2l6ZSBtX21vbWVu
dHVtVmVsb2NpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW0KaW5kZXggOTkzODNkYS4uMmM2ZTlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNDU5LDcgKzQ1OSw3IEBA
IFNjcm9sbEFuaW1hdG9yTWFjOjpTY3JvbGxBbmltYXRvck1hYyhTY3JvbGxhYmxlQXJlYSogc2Ny
b2xsYWJsZUFyZWEpCiAgICAgLCBtX2luU2Nyb2xsR2VzdHVyZShmYWxzZSkKICAgICAsIG1fbW9t
ZW50dW1TY3JvbGxJblByb2dyZXNzKGZhbHNlKQogICAgICwgbV9pZ25vcmVNb21lbnR1bVNjcm9s
bHMoZmFsc2UpCi0gICAgLCBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcCgwKQorICAgICwg
bV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAoMCkKICAgICAsIG1fc3RhcnRUaW1lKDApCiAg
ICAgLCBtX3NuYXBSdWJiZXJCYW5kVGltZXIodGhpcywgJlNjcm9sbEFuaW1hdG9yTWFjOjpzbmFw
UnViYmVyQmFuZFRpbWVyRmlyZWQpCiAjZW5kaWYKQEAgLTc2NCw2ICs3NjQsMjYgQEAgc3RhdGlj
IGZsb2F0IHNjcm9sbFdoZWVsTXVsdGlwbGllcigpCiAgICAgcmV0dXJuIG11bHRpcGxpZXI7CiB9
CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBob3Jpem9udGFsU2Nyb2xsUG9zaXRpb25Jc1Bhc3RNaW5p
bXVtKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKK3sKKyAgICByZXR1cm4gc2Nyb2xs
YWJsZUFyZWEtPnNjcm9sbFBvc2l0aW9uKHNjcm9sbGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xs
YmFyKCkpIDw9IHNjcm9sbGFibGVBcmVhLT5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7Cit9
CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBob3Jpem9udGFsU2Nyb2xsUG9zaXRpb25Jc1Bhc3RNYXhp
bXVtKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKK3sKKyAgICByZXR1cm4gc2Nyb2xs
YWJsZUFyZWEtPnNjcm9sbFBvc2l0aW9uKHNjcm9sbGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xs
YmFyKCkpID49IHNjcm9sbGFibGVBcmVhLT5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7Cit9
CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1Njcm9sbGluZ0xlZnRBbmRTaG91bGROb3RSdWJiZXJC
YW5kKFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhKQoreworICAgIHJldHVybiB3aGVlbEV2ZW50LmRlbHRhWCgpID4gMCAmJiAhc2Ny
b2xsYWJsZUFyZWEtPnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxMZWZ0KTsKK30K
Kworc3RhdGljIGlubGluZSBib29sIGlzU2Nyb2xsaW5nUmlnaHRBbmRTaG91bGROb3RSdWJiZXJC
YW5kKFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgU2Nyb2xsYWJsZUFyZWEqIHNjcm9s
bGFibGVBcmVhKQoreworICAgIHJldHVybiB3aGVlbEV2ZW50LmRlbHRhWCgpIDwgMCAmJiAhc2Ny
b2xsYWJsZUFyZWEtPnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxSaWdodCk7Cit9
CisKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAgIG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9
IHRydWU7CkBAIC03ODcsMTcgKzgwNywzNCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpoYW5k
bGVXaGVlbEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgICAg
IFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfQogCi0gICAgd2hlZWxFdmVudC5hY2NlcHQoKTsK
KyAgICAgICAgLy8gQWZ0ZXIgYSBnZXN0dXJlIGJlZ2lucywgd2UgZ28gdGhyb3VnaDoKKyAgICAg
ICAgLy8gMSsgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lCisgICAgICAgIC8vIDArIFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZAorICAgICAgICAvLyAxIFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlRW5kZWQgaWYgdGhlcmUgd2FzIGF0IGxlYXN0IG9uZSBjaGFuZ2VkIGV2ZW50CisgICAg
ICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZU5vbmUpIHsKKyAgICAgICAgICAgIGlmICgoaXNTY3JvbGxpbmdMZWZ0QW5kU2hvdWxkTm90
UnViYmVyQmFuZCh3aGVlbEV2ZW50LCBtX3Njcm9sbGFibGVBcmVhKSAmJgorICAgICAgICAgICAg
ICAgICghbV9zY3JvbGxhYmxlQXJlYS0+aG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8CisgICAgICAg
ICAgICAgICAgaG9yaXpvbnRhbFNjcm9sbFBvc2l0aW9uSXNQYXN0TWluaW11bShtX3Njcm9sbGFi
bGVBcmVhKSkpIHx8CisgICAgICAgICAgICAgICAgKGlzU2Nyb2xsaW5nUmlnaHRBbmRTaG91bGRO
b3RSdWJiZXJCYW5kKHdoZWVsRXZlbnQsIG1fc2Nyb2xsYWJsZUFyZWEpICYmCisgICAgICAgICAg
ICAgICAgKCFtX3Njcm9sbGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xsYmFyKCkgfHwKKyAgICAg
ICAgICAgICAgICBob3Jpem9udGFsU2Nyb2xsUG9zaXRpb25Jc1Bhc3RNYXhpbXVtKG1fc2Nyb2xs
YWJsZUFyZWEpKSkpIHsKKyAgICAgICAgICAgICAgICBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hl
ZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CiAKLSAgICBib29sIGlzTW9tZXR1bVNjcm9sbEV2ZW50ID0g
KHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpICE9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9u
ZSk7Ci0gICAgaWYgKG1faWdub3JlTW9tZW50dW1TY3JvbGxzICYmIChpc01vbWV0dW1TY3JvbGxF
dmVudCB8fCBtX3NuYXBSdWJiZXJCYW5kVGltZXIuaXNBY3RpdmUoKSkpIHsKLSAgICAgICAgaWYg
KHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5k
ZWQpCisgICAgYm9vbCBpc01vbWVudHVtU2Nyb2xsRXZlbnQgPSAod2hlZWxFdmVudC5tb21lbnR1
bVBoYXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKTsKKyAgICBpZiAobV9pZ25v
cmVNb21lbnR1bVNjcm9sbHMgJiYgKGlzTW9tZW50dW1TY3JvbGxFdmVudCB8fCBtX3NuYXBSdWJi
ZXJCYW5kVGltZXIuaXNBY3RpdmUoKSkpIHsKKyAgICAgICAgaWYgKHdoZWVsRXZlbnQubW9tZW50
dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQpIHsKICAgICAgICAgICAg
IG1faWdub3JlTW9tZW50dW1TY3JvbGxzID0gZmFsc2U7CisgICAgICAgICAgICB3aGVlbEV2ZW50
LmFjY2VwdCgpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICB3aGVl
bEV2ZW50LmFjY2VwdCgpOwogICAgIHNtb290aFNjcm9sbFdpdGhFdmVudCh3aGVlbEV2ZW50KTsK
IH0KIApAQCAtODgxLDExICs5MTgsMTEgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c21vb3Ro
U2Nyb2xsV2l0aEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAvLyBS
ZXNldCBvdmVyZmxvdyB2YWx1ZXMgYmVjYXVzZSB3ZSBtYXkgZGVjaWRlIHRvIHJlbW92ZSBkZWx0
YSBhdCB2YXJpb3VzIHBvaW50cyBhbmQgcHV0IGl0IGludG8gb3ZlcmZsb3cuCiAgICAgbV9vdmVy
Zmxvd1Njcm9sbERlbHRhID0gRmxvYXRTaXplKCk7CiAKLSAgICBmbG9hdCBldmVudENvYWxsZXNj
ZWREZWx0YVggPSAtd2hlZWxFdmVudC5kZWx0YVgoKTsKLSAgICBmbG9hdCBldmVudENvYWxsZXNj
ZWREZWx0YVkgPSAtd2hlZWxFdmVudC5kZWx0YVkoKTsKKyAgICBmbG9hdCBldmVudENvYWxlc2Nl
ZERlbHRhWCA9IC13aGVlbEV2ZW50LmRlbHRhWCgpOworICAgIGZsb2F0IGV2ZW50Q29hbGVzY2Vk
RGVsdGFZID0gLXdoZWVsRXZlbnQuZGVsdGFZKCk7CiAKLSAgICBkZWx0YVggKz0gZXZlbnRDb2Fs
bGVzY2VkRGVsdGFYOwotICAgIGRlbHRhWSArPSBldmVudENvYWxsZXNjZWREZWx0YVk7CisgICAg
ZGVsdGFYICs9IGV2ZW50Q29hbGVzY2VkRGVsdGFYOworICAgIGRlbHRhWSArPSBldmVudENvYWxl
c2NlZERlbHRhWTsKIAogICAgIC8vIFNsaWdodGx5IHByZWZlciBzY3JvbGxpbmcgdmVydGljYWxs
eSBieSBhcHBseWluZyB0aGUgPSBjYXNlIHRvIGRlbHRhWQogICAgIGlmIChmYWJzZihkZWx0YVkp
ID49IGZhYnNmKGRlbHRhWCkpCkBAIC05MDgsMTQgKzk0NSwxNCBAQCB2b2lkIFNjcm9sbEFuaW1h
dG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2
ZW50KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKHBoYXNlID09IFBs
YXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gfHwgcGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50
UGhhc2VDaGFuZ2VkKSkKICAgICAgICAgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgPSB0cnVl
OwogCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gd2hlZWxFdmVudC50aW1lc3RhbXAo
KSAtIG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wOworICAgIENGVGltZUludGVydmFsIHRp
bWVEZWx0YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRp
bWVzdGFtcDsKICAgICBpZiAobV9pblNjcm9sbEdlc3R1cmUgfHwgbV9tb21lbnR1bVNjcm9sbElu
UHJvZ3Jlc3MpIHsKLSAgICAgICAgaWYgKG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wICYm
IHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2NpdHlaZXJvaW5nVGltZW91
dCkgewotICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdpZHRoKGV2ZW50Q29hbGxl
c2NlZERlbHRhWCAvIChmbG9hdCl0aW1lRGVsdGEpOwotICAgICAgICAgICAgbV9tb21lbnR1bVZl
bG9jaXR5LnNldEhlaWdodChldmVudENvYWxsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRh
KTsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVu
dC50aW1lc3RhbXAoKTsKKyAgICAgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1w
ICYmIHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2NpdHlaZXJvaW5nVGlt
ZW91dCkgeworICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdpZHRoKGV2ZW50Q29h
bGVzY2VkRGVsdGFYIC8gKGZsb2F0KXRpbWVEZWx0YSk7CisgICAgICAgICAgICBtX21vbWVudHVt
VmVsb2NpdHkuc2V0SGVpZ2h0KGV2ZW50Q29hbGVzY2VkRGVsdGFZIC8gKGZsb2F0KXRpbWVEZWx0
YSk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZl
bnQudGltZXN0YW1wKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RNb21l
bXR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAg
ICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7
CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkgPSBGbG9hdFNpemUoKTsKICAgICAgICAg
fQogCkBAIC05NjksNyArMTAwNiw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNtb290aFNj
cm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBpZiAoIWFsbG93c0hvcml6b250YWxTdHJldGNoaW5nKCkpIHsK
ICAgICAgICAgICAgICAgICBkZWx0YVggPSAwOwotICAgICAgICAgICAgICAgIGV2ZW50Q29hbGxl
c2NlZERlbHRhWCA9IDA7CisgICAgICAgICAgICAgICAgZXZlbnRDb2FsZXNjZWREZWx0YVggPSAw
OwogICAgICAgICAgICAgfSBlbHNlIGlmICgoZGVsdGFYICE9IDApICYmICFpc0hvcml6b250YWxs
eVN0cmV0Y2hlZCAmJiAhcGlubmVkSW5EaXJlY3Rpb24oZGVsdGFYLCAwKSkgewogICAgICAgICAg
ICAgICAgIGRlbHRhWCAqPSBzY3JvbGxXaGVlbE11bHRpcGxpZXIoKTsKIApAQCAtOTgyLDcgKzEw
MTksNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQoUGxh
dGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgICAgICAgICAgCiAgICAgICAgICAgICBp
ZiAoIWFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZygpKSB7CiAgICAgICAgICAgICAgICAgZGVsdGFZ
ID0gMDsKLSAgICAgICAgICAgICAgICBldmVudENvYWxsZXNjZWREZWx0YVkgPSAwOworICAgICAg
ICAgICAgICAgIGV2ZW50Q29hbGVzY2VkRGVsdGFZID0gMDsKICAgICAgICAgICAgIH0gZWxzZSBp
ZiAoKGRlbHRhWSAhPSAwKSAmJiAhaXNWZXJ0aWNhbGx5U3RyZXRjaGVkICYmICFwaW5uZWRJbkRp
cmVjdGlvbigwLCBkZWx0YVkpKSB7CiAgICAgICAgICAgICAgICAgZGVsdGFZICo9IHNjcm9sbFdo
ZWVsTXVsdGlwbGllcigpOwogCkBAIC05OTYsNyArMTAzMyw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNYWM6OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQpCiAgICAgICAgICAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQgPSBtX3Njcm9sbGFibGVBcmVh
LT5vdmVyaGFuZ0Ftb3VudCgpOwogICAgICAgICAKICAgICAgICAgICAgIGlmIChtX21vbWVudHVt
U2Nyb2xsSW5Qcm9ncmVzcykgewotICAgICAgICAgICAgICAgIGlmICgocGlubmVkSW5EaXJlY3Rp
b24oZXZlbnRDb2FsbGVzY2VkRGVsdGFYLCBldmVudENvYWxsZXNjZWREZWx0YVkpIHx8IChmYWJz
ZihldmVudENvYWxsZXNjZWREZWx0YVgpICsgZmFic2YoZXZlbnRDb2FsbGVzY2VkRGVsdGFZKSA8
PSAwKSkgJiYgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXApIHsKKyAgICAgICAgICAgICAg
ICBpZiAoKHBpbm5lZEluRGlyZWN0aW9uKGV2ZW50Q29hbGVzY2VkRGVsdGFYLCBldmVudENvYWxl
c2NlZERlbHRhWSkgfHwgKGZhYnNmKGV2ZW50Q29hbGVzY2VkRGVsdGFYKSArIGZhYnNmKGV2ZW50
Q29hbGVzY2VkRGVsdGFZKSA8PSAwKSkgJiYgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAp
IHsKICAgICAgICAgICAgICAgICAgICAgbV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgPSB0cnVlOwog
ICAgICAgICAgICAgICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwog
ICAgICAgICAgICAgICAgICAgICBzbmFwUnViYmVyQmFuZCgpOwpAQCAtMTAyMSw3ICsxMDU4LDcg
QEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICBpZiAobV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jl
c3MgJiYgcGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCkgewogICAgICAgICBt
X21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgICAgICBtX2lnbm9yZU1vbWVu
dHVtU2Nyb2xscyA9IGZhbHNlOwotICAgICAgICBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFt
cCA9IDA7CisgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gMDsKICAgICB9
CiB9CiAKQEAgLTEwMzMsNyArMTA3MCw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmJlZ2lu
U2Nyb2xsR2VzdHVyZSgpCiAgICAgbV9pblNjcm9sbEdlc3R1cmUgPSB0cnVlOwogICAgIG1fbW9t
ZW50dW1TY3JvbGxJblByb2dyZXNzID0gZmFsc2U7CiAgICAgbV9pZ25vcmVNb21lbnR1bVNjcm9s
bHMgPSBmYWxzZTsKLSAgICBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcCA9IDA7CisgICAg
bV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgPSAwOwogICAgIG1fbW9tZW50dW1WZWxvY2l0
eSA9IEZsb2F0U2l6ZSgpOwogCiAgICAgSW50U2l6ZSBzdHJldGNoQW1vdW50ID0gbV9zY3JvbGxh
YmxlQXJlYS0+b3ZlcmhhbmdBbW91bnQoKTsKQEAgLTEwNTUsOCArMTA5Miw4IEBAIHZvaWQgU2Ny
b2xsQW5pbWF0b3JNYWM6OmVuZFNjcm9sbEdlc3R1cmUoKQogCiB2b2lkIFNjcm9sbEFuaW1hdG9y
TWFjOjpzbmFwUnViYmVyQmFuZCgpCiB7Ci0gICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0g
W1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBzeXN0ZW1VcHRpbWVdIC0gbV9sYXN0TW9tZW10
dW1TY3JvbGxUaW1lc3RhbXA7Ci0gICAgaWYgKG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1w
ICYmIHRpbWVEZWx0YSA+PSBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KQorICAgIENGVGlt
ZUludGVydmFsIHRpbWVEZWx0YSA9IFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gc3lzdGVt
VXB0aW1lXSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wOworICAgIGlmIChtX2xhc3RN
b21lbnR1bVNjcm9sbFRpbWVzdGFtcCAmJiB0aW1lRGVsdGEgPj0gc2Nyb2xsVmVsb2NpdHlaZXJv
aW5nVGltZW91dCkKICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5ID0gRmxvYXRTaXplKCk7CiAK
ICAgICBtX2luU2Nyb2xsR2VzdHVyZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggNDUxNWY3Ny4uYzkzNzYwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xOTMwLDYgKzE5MzAsMTkgQEAgYm9vbCBSZW5k
ZXJMYXllcjo6c2Nyb2xsc092ZXJmbG93KCkgY29uc3QKICAgICByZXR1cm4gdG9SZW5kZXJCb3go
cmVuZGVyZXIoKSktPnNjcm9sbHNPdmVyZmxvdygpOwogfQogCit2b2lkIFJlbmRlckxheWVyOjpk
aWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAgIG1f
cmVuZGVyZXItPmRvY3VtZW50KCktPmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKCk7CisgICAgU2Ny
b2xsYWJsZUFyZWE6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKK30KKwor
dm9pZCBSZW5kZXJMYXllcjo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFy
KiBzY3JvbGxiYXIpCit7CisgICAgU2Nyb2xsYWJsZUFyZWE6OndpbGxSZW1vdmVIb3Jpem9udGFs
U2Nyb2xsYmFyKHNjcm9sbGJhcik7CisgICAgLy8gRklYTUU6IG1heWJlIG5lZWQgYSBzZXBhcmF0
ZSBTY3JvbGxhYmxlQXJlYTo6ZGlkUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhciBjYWxsYmFjaz8K
KyAgICBtX3JlbmRlcmVyLT5kb2N1bWVudCgpLT5kaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigp
OworfQorCiB2b2lkIFJlbmRlckxheWVyOjpzZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKGJvb2wg
aGFzU2Nyb2xsYmFyKQogewogICAgIGlmIChoYXNTY3JvbGxiYXIgPT0gKG1faEJhciAhPSAwKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggMzI2YTE0ZC4uNzhjZGMy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTI0Nyw2ICsyNDcs
OCBAQCBwdWJsaWM6CiAgICAgSW50UmVjdCBnZXRSZWN0VG9FeHBvc2UoY29uc3QgSW50UmVjdCYg
dmlzaWJsZVJlY3QsIGNvbnN0IEludFJlY3QmIGV4cG9zZVJlY3QsIGNvbnN0IFNjcm9sbEFsaWdu
bWVudCYgYWxpZ25YLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWSk7CiAKICAgICBib29s
IHNjcm9sbHNPdmVyZmxvdygpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9u
dGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9y
aXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2b2lkIHNldEhhc0hvcml6b250YWxT
Y3JvbGxiYXIoYm9vbCk7CiAgICAgdm9pZCBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihib29sKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyYjU2OTcwLi5lMjAyYzFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEzICBKb24gTGVl
ICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJm
bG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBz
cmMvQ2hyb21lQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBs
OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9t
ZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6bnVtV2hl
ZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50
IG1ldGhvZAorCiAyMDExLTA1LTEzICBCcmV0dCBXaWxzb24gIDxicmV0dHdAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggMWZkNTQ1Yi4uYzIwNjkxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMTk2
LDYgKzE5Niw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsUnVuTW9kYWxEaWFs
b2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5cGUmKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGly
ZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorCiBwcml2YXRlOgogICAgIHZvaWQg
Z2V0UG9wdXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1cENvbnRhaW5lciosIFdlYlBvcHVwTWVudUlu
Zm8qKTsKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDdXJzb3JJbmZvJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKaW5kZXggOWYzYTU2Ny4uOGY0ZTQ1ZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFs
bHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBh
bHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6c2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5n
ZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0x
MyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAppbmRleCBhYTE3OTc0Li5l
MGEyMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaApAQCAtMTUyLDYgKzE1Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29u
c3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNo
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIHNo
b3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJz
Q2hhbmdlZCh1bnNpZ25lZCkgeyB9CisKICAgICBFdmFzX09iamVjdCogbV92aWV3OwogICAgIEtV
UkwgbV9ob3ZlcmVkTGlua1VSTDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYTFhYjljMS4uYmU4
ZmJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEzICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92
ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2Yg
bmV3IENocm9tZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpu
dW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVD
bGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBk
NDIwYTJlLi41ZDViMTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtMTUyLDYgKzE1Miw5IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNv
cmU6OkVsZW1lbnQqKTsKICNlbmRpZgogCisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFu
Z2VkKHVuc2lnbmVkKSB7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYktpdFdlYlZpZXcq
IG1fd2ViVmlldzsKICAgICAgICAgR3RrQWRqdXN0bWVudFdhdGNoZXIgbV9hZGp1c3RtZW50V2F0
Y2hlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggYWU4OTBiZS4uNWU2OWVhNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9oYWlr
dS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNh
dXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dEhhaWt1OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3
IENocm9tZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1
OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJv
bWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmggYi9T
b3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKaW5k
ZXggOGEwOTdhMC4uMzIyZDBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvaGFpa3Uv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaApAQCAtMTU5LDYgKzE1OSw5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhlIGdpdmVu
IGZvcm0gZWxlbWVudCBoYXMgY2hhbmdlZC4gVGhpcyBmdW5jdGlvbgogICAgICAgICAvLyB3aWxs
IGJlIGNhbGxlZCBmcmVxdWVudGx5LCBzbyBoYW5kbGluZyBzaG91bGQgYmUgdmVyeSBmYXN0Lgog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKTsKKwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6
OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFs
IHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAgICAgfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDY1NDhkYjguLjY2
ZDQwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBv
dmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3
IENocm9tZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUnVi
YmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0
aG9kCisKIDIwMTEtMDUtMTIgIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAwZWNiOWYyLi4z
ZDFiMzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMTgyLDYgKzE4MiwxMCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudSgpOwogI2VuZGlm
CisgICAgCisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5z
aWduZWQpIHsgfQorICAgIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
cHJpdmF0ZToKICAgICBXZWJWaWV3ICptX3dlYlZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBi
NjJkM2QxLi4xZWY2N2RjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1
LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFt
ZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50UXQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1
bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50UXQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwg
b2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0xMSAgSm9jZWx5biBUdXJjb3R0
ZSAgPGpvY2VseW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IG5v
Ym9keSwgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5oCmluZGV4IDgxNGExOTIuLmQ1MmVhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTE5Miw2ICsxOTIs
OSBAQCBwdWJsaWM6CiAgICAgUVdlYlNlbGVjdE1ldGhvZCogY3JlYXRlU2VsZWN0UG9wdXAoKSBj
b25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZShj
b25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0OworICAgIAorICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQodW5zaWduZWQpIHsgfQogCiAgICAgUVdlYlBhZ2UqIG1fd2ViUGFnZTsKICAgICBL
VVJMIGxhc3RIb3ZlclVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCAxNjJhNTllLi5iMWRiYjBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENhbid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cg
YmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpz
aG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNs
aWVudCBtZXRob2QKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bnVtV2hlZWxFdmVudEhhbmRs
ZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorCiAy
MDExLTA1LTEyICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDRhM2NmM2IuLjE1MjllMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0xODIsNiArMTgyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBleGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOwogI2VuZGlmCiAKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVj
dGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2
ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KKwogcHJpdmF0ZToKICAgICBDT01QdHI8
SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCAz
ODMzODlhLi5mZDExZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xs
IGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNj
ZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYw
Nzc5CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorICAg
ICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTog
RGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMDUgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXggOTU3MDlhZS4uMTNjOWVjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0Uu
aApAQCAtMTc3LDYgKzE3Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0
OwogCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3Jl
OjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisKIHByaXZhdGU6
CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggZWVhNmY2ZC4u
MjEzMDMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBv
dmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAg
ICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50V3g6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBv
ZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
V3g6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENo
cm9tZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0wOSAgUm9iaW4gRHVubiAgPHJvYmluQGFsbGR1
bm4uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIE9sbGl2aWVyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggYi9Tb3Vy
Y2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAppbmRleCAwZDgxNDlj
Li44MjBjOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hy
b21lQ2xpZW50V3guaAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21l
Q2xpZW50V3guaApAQCAtMTUyLDYgKzE1Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZCh1bnNpZ25lZCkgeyB9CisKIHByaXZhdGU6CiAgICAgd3hXZWJWaWV3KiBtX3dlYlZpZXc7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGNlZTI0NWMuLjIyMmJkZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMSBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRh
bGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUg
YWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MDc3OQorCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG91bGRXYWl0Rm9yV2hlZWxFdmVudHMp
OiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhdCBsZWFzdAorICAgICAgICBvbmUgd2hlZWwgZXZl
bnQgaGFuZGxlcgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDogQWRkIG5ldyB2
YXJpYWJsZSB0byBjYWNoZSB0aGUgY291bnQKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogU2V0cyB0aGUgY291bnQKKworICAgICAg
ICBUaGUgcmVzdCBqdXN0IHByb3ZpZGVzIGFsbCB0aGUgY29ubmVjdGlvbnMuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTaG91bGRXYWl0Rm9y
V2hlZWxFdmVudHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpzaG91bGRSdWJiZXJC
YW5kSW5EaXJlY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50Ojp1cGRhdGVDb3VudFdoZWVsRXZlbnRIYW5kbGVycyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxMS0wNS0x
MyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCmluZGV4IDk0MWQyYzcuLmNkZWYwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xNDYsNiArMTQ2LDExIEBAIFdLQmFja0ZvcndhcmRMaXN0
UmVmIFdLUGFnZUdldEJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYgcGFnZVJlZikKICAgICByZXR1
cm4gdG9BUEkodG9JbXBsKHBhZ2VSZWYpLT5iYWNrRm9yd2FyZExpc3QoKSk7CiB9CiAKK2Jvb2wg
V0tQYWdlU2hvdWxkV2FpdEZvcldoZWVsRXZlbnRzKFdLUGFnZVJlZiBwYWdlUmVmKQoreworICAg
IHJldHVybiB0b0ltcGwocGFnZVJlZiktPnNob3VsZFdhaXRGb3JXaGVlbEV2ZW50cygpOworfQor
CiBXS1N0cmluZ1JlZiBXS1BhZ2VDb3B5VGl0bGUoV0tQYWdlUmVmIHBhZ2VSZWYpCiB7CiAgICAg
cmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChwYWdlUmVmKS0+cGFnZVRpdGxlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4IGQwMWM4MzguLjUwZjNmODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTI4OCw3ICsyODgsOCBA
QCBXS19FWFBPUlQgYm9vbCBXS1BhZ2VDYW5Hb0JhY2soV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQ
T1JUIHZvaWQgV0tQYWdlR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oV0tQYWdlUmVmIHBhZ2UsIFdL
QmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKTsKIFdLX0VYUE9SVCB2b2lkIFdLUGFnZVRyeVJl
c3RvcmVTY3JvbGxQb3NpdGlvbihXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgV0tCYWNrRm9y
d2FyZExpc3RSZWYgV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlKTsKLQor
V0tfRVhQT1JUIGJvb2wgV0tQYWdlU2hvdWxkV2FpdEZvcldoZWVsRXZlbnRzKFdLUGFnZVJlZiBw
YWdlKTsKKyAgICAKIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1BhZ2VDb3B5VGl0bGUoV0tQYWdl
UmVmIHBhZ2UpOwogCiBXS19FWFBPUlQgV0tVUkxSZWYgV0tQYWdlQ29weVBlbmRpbmdBUElSZXF1
ZXN0VVJMKFdLUGFnZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggNjIzYWIxNi4uZDQ0ZWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMwNTQsNiArMzA1NCwxNSBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQog
ICAgIG1fbG9hZGVyQ2xpZW50LmRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4odGhpcywgbWltZVR5
cGUpOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6c2hvdWxkV2FpdEZvcldoZWVsRXZlbnRzKCkg
Y29uc3QKK3sKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCisgICAgcmV0dXJuIG1fd2hlZWxF
dmVudEhhbmRsZXJDb3VudCA+IDA7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgor
fQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXBy
ZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBDb3JlSVBD
OjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQogewogICAgIG1fcGFnZUNsaWVudC0+ZGlk
RmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXByZXNlbnRhdGlvbihzdWdnZXN0ZWRGaWxlbmFt
ZSwgZGF0YVJlZmVyZW5jZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggMjAxY2IyZS4uMDc1ZjFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMjI2LDYgKzIyNiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENoYW5nZUJh
Y2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0ZW0sIFZlY3RvcjxS
ZWZQdHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpOwogICAgIHZvaWQgc2hvdWxkR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91bGRHb1RvQmFja0Zv
cndhcmRMaXN0SXRlbSk7CiAKKyAgICBib29sIHNob3VsZFdhaXRGb3JXaGVlbEV2ZW50cygpIGNv
bnN0OworCiAgICAgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkg
Y29uc3Q7CiAKICAgICBib29sIGRyYXdzQmFja2dyb3VuZCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJh
d3NCYWNrZ3JvdW5kOyB9CkBAIC02MTEsNiArNjEzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFy
LCBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKTsKICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbE9m
ZnNldFBpbm5pbmdGb3JNYWluRnJhbWUoYm9vbCBwaW5uZWRUb0xlZnRTaWRlLCBib29sIHBpbm5l
ZFRvUmlnaHRTaWRlKTsKICAgICB2b2lkIGRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSk7CisgICAgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KHVuc2lnbmVkIGNvdW50KSB7IG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCA9IGNvdW50OyB9CiAK
ICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCByZWF0dGFjaFRvV2Vi
UHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKQEAgLTg2Niw2ICs4Njks
OSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX21haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxi
YXI7CiAgICAgYm9vbCBtX21haW5GcmFtZUhhc1ZlcnRpY2FsU2Nyb2xsYmFyOworICAgIC8vIFRo
aXMgYWdncmVnYXRlZCBjb3VudCBvZiB3aGVlbCBoYW5kbGVycyBvbmx5IGluY2x1ZGVzIGhvcml6
b250YWwgc2Nyb2xsYmFycworICAgIC8vIGFuZCBKUyB3aGVlbCBldmVudCBoYW5kbGVycy4KKyAg
ICBpbnQgbV93aGVlbEV2ZW50SGFuZGxlckNvdW50OwogCiAgICAgYm9vbCBtX21haW5GcmFtZUlz
UGlubmVkVG9MZWZ0U2lkZTsKICAgICBib29sIG1fbWFpbkZyYW1lSXNQaW5uZWRUb1JpZ2h0U2lk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDljZTY3NjQuLjZmMDJkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjIsNiArNjIsNyBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUo
Ym9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyLCBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKQog
ICAgIERpZENoYW5nZVNjcm9sbE9mZnNldFBpbm5pbmdGb3JNYWluRnJhbWUoYm9vbCBoYXNIb3Jp
em9udGFsU2Nyb2xsYmFyLCBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKQogICAgIERpZEZhaWxU
b0luaXRpYWxpemVQbHVnaW4oV1RGOjpTdHJpbmcgbWltZVR5cGUpCisgICAgTnVtV2hlZWxFdmVu
dEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBjb3VudCkKIAogI2lmIEVOQUJMRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKFdlYkNvcmU6OkludFBvaW50IHBv
aW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKaW5kZXggNmUxMjk1NC4uMDk3ZjIzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCkBAIC03Miw2ICs3MiwxMiBAQCBlbnVtIHsKIH07CiB0
eXBlZGVmIHVpbnQzMl90IFdLRnVsbFNjcmVlbktleWJvYXJkUmVxdWVzdFR5cGU7CiAKK2VudW0g
eworICAgIFdLU2Nyb2xsRGlyZWN0aW9uTGVmdCwKKyAgICBXS1Njcm9sbERpcmVjdGlvblJpZ2h0
Cit9OwordHlwZWRlZiB1aW50MzJfdCBXS1Njcm9sbERpcmVjdGlvbjsKKwogLy8gTG9hZGVyIENs
aWVudAogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBm
cmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBl
ZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7CkBAIC0xNzUsNyArMTgxLDggQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlTW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UKIHR5cGVkZWYg
dm9pZCAoKldLQnVuZGxlUGFnZURpZFNjcm9sbENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VQ
YWludEN1c3RvbU92ZXJoYW5nQXJlYUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tH
cmFwaGljc0NvbnRleHRSZWYgZ3JhcGhpY3NDb250ZXh0LCBXS1JlY3QgaG9yaXpvbnRhbE92ZXJo
YW5nLCBXS1JlY3QgdmVydGljYWxPdmVyaGFuZywgV0tSZWN0IGRpcnR5UmVjdCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIFdLU3RyaW5nUmVmICgqV0tCdW5kbGVQYWdlR2VuZXJh
dGVGaWxlRm9yVXBsb2FkQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiBvcmlnaW5hbEZpbGVQYXRoLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKLQordHlwZWRlZiBi
b29sICgqV0tCdW5kbGVQYWdlU2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uQ2FsbGJhY2spKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS1Njcm9sbERpcmVjdGlvbiBzY3JvbGxEaXJlY3Rpb24sIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIAogc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50
IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb247CiAgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOwpA
QCAtMTg5LDYgKzE5Niw3IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudCB7CiAgICAgV0tC
dW5kbGVQYWdlUGFpbnRDdXN0b21PdmVyaGFuZ0FyZWFDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICBwYWludEN1c3RvbU92ZXJoYW5nQXJlYTsKICAgICBXS0J1bmRsZVBhZ2VHZW5lcmF0
ZUZpbGVGb3JVcGxvYWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEdl
bmVyYXRlRmlsZUZvclVwbG9hZDsKICAgICBXS0J1bmRsZVBhZ2VHZW5lcmF0ZUZpbGVGb3JVcGxv
YWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRmlsZUZvclVwbG9h
ZDsKKyAgICBXS0J1bmRsZVBhZ2VTaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb25DYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbjsKIH07CiB0eXBl
ZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudCBXS0J1bmRsZVBhZ2VVSUNsaWVudDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcAppbmRleCA1MzJkMDU4
Li40ODgwMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNw
cApAQCAtMTE1LDQgKzExNSw5IEBAIFN0cmluZyBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6
Z2VuZXJhdGVGaWxlRm9yVXBsb2FkKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0CiAgICAgcmV0dXJu
IGdlbmVyYXRlZEZpbGVQYXRoID8gZ2VuZXJhdGVkRmlsZVBhdGgtPnN0cmluZygpIDogU3RyaW5n
KCk7CiB9CiAKK2Jvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OnNob3VsZFJ1YmJlckJh
bmRJbkRpcmVjdGlvbihXZWJQYWdlKiBwYWdlLCBXS1Njcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24p
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50LnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bih0b0FQSShwYWdlKSwgZGlyZWN0aW9uLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50
LmgKaW5kZXggNDdhNWNhOC4uZmJiYjkwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlVUlDbGllbnQuaApAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgc2hv
dWxkR2VuZXJhdGVGaWxlRm9yVXBsb2FkKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFs
RmlsZVBhdGgpOwogICAgIFN0cmluZyBnZW5lcmF0ZUZpbGVGb3JVcGxvYWQoV2ViUGFnZSosIGNv
bnN0IFN0cmluZyYgb3JpZ2luYWxGaWxlUGF0aCk7CisgICAgCisgICAgYm9vbCBzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3Rpb24oV2ViUGFnZSosIFdLU2Nyb2xsRGlyZWN0aW9uKSBjb25zdDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGZk
NWVlNTUuLjQ5MTBhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTc1OSw0ICs3NTks
MjIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJ
blJlY3QoY29uc3QgSW50UmVjdCYgc2Nyb2xsZXIKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6Tm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChzY3JvbGxl
clRodW1iKSk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKK3sKKyAg
ICBBU1NFUlQoZGlyZWN0aW9uICE9IFdlYkNvcmU6OlNjcm9sbFVwICYmIGRpcmVjdGlvbiAhPSBX
ZWJDb3JlOjpTY3JvbGxEb3duKTsKKyAgICAKKyAgICBpZiAoZGlyZWN0aW9uID09IFdlYkNvcmU6
OlNjcm9sbExlZnQpCisgICAgICAgIHJldHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGll
bnQoKS5zaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24obV9wYWdlLCBXS1Njcm9sbERpcmVjdGlv
bkxlZnQpOworICAgIGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBXZWJDb3JlOjpTY3JvbGxSaWdodCkK
KyAgICAgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLnNob3VsZFJ1
YmJlckJhbmRJbkRpcmVjdGlvbihtX3BhZ2UsIFdLU2Nyb2xsRGlyZWN0aW9uUmlnaHQpOworCisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIGNvdW50
KQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpOdW1XaGVlbEV2
ZW50SGFuZGxlcnNDaGFuZ2VkKGNvdW50KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOTAzOGVhZi4uZDAwMTdiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC0yMTgsNiArMjE4LDkgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
IGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5S
ZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnVi
YmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3Q7CisgICAg
CisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQp
OwogCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJG
cmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MjUyODgzLi40MTA3YzNkIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6b250YWxseSBz
Y3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5
cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjA3NzkKKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJ
bmplY3RlZEJ1bmRsZVBhZ2UpOiBTZXQgbmV3IGRlZmF1bHQgbWV0aG9kIHRvIG5pbC4KKwogMjAx
MS0wNS0xMyAgWm9sdGFuIEhlcmN6ZWcgIDx6aGVyY3plZ0B3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApp
bmRleCAyYTFmODVkLi5iNzliZTRkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0yMjUs
NiArMjI1LDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIDAsIC8qcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEqLwog
ICAgICAgICAwLCAvKnNob3VsZEdlbmVyYXRlRmlsZUZvclVwbG9hZCovCiAgICAgICAgIDAsIC8q
Z2VuZXJhdGVGaWxlRm9yVXBsb2FkKi8KKyAgICAgICAgMCwgLypzaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb24qLwogICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0VUlDbGllbnQobV9wYWdlLCAm
dWlDbGllbnQpOwogCi0tIAoxLjcuNC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93517</attachid>
            <date>2011-05-13 14:50:59 -0700</date>
            <delta_ts>2011-05-14 11:07:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Can-t-horizontally-scroll-iframes-and-overflow-becau.patch</filename>
            <type>text/plain</type>
            <size>61716</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA5YTFhMDhjODkwNGI0YjUzNTA0OGEwZTNiYTIzZjEzZmM0M2I4NjliIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBGcmks
IDEzIE1heSAyMDExIDExOjE1OjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQ2FuJ3QgaG9yaXpv
bnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsCiBldmVudHMg
YXJlIGFsd2F5cyBhY2NlcHRlZAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNzc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoK
KiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogSW5pdGlh
bGl6ZSB3aGVlbCBldmVudCBoYW5kbGVyIGNvdW50CihXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQWRk
V2hlZWxFdmVudEhhbmRsZXIpOiBJbmNyZW1lbnQgY291bnQsIGFuZCB0ZWxsIHRoZSBtYWluIGZy
YW1lCnRvIHJlY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2Ygd2hlZWwgZXZlbnQgaGFuZGxl
cnMgaW4gYWxsIG9mIGl0cyBmcmFtZXMnIGRvY3VtZW50cwooV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
ZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKKiBk
b20vRG9jdW1lbnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlckNvdW50
KTogQWNjZXNzIHRoZSBjb3VudAoqIGRvbS9Ob2RlLmNwcDoKKFdlYkNvcmU6OnRyeUFkZEV2ZW50
TGlzdGVuZXIpOiBJZiB0aGUgZXZlbnQgbGlzdGVuZXIgaXMgYSBtb3VzZSB3aGVlbCBldmVudCwg
dGhlbgp0ZWxsIHRoZSBkb2N1bWVudCB0byBpbmNyZW1lbnQgaXRzIGNvdW50CihXZWJDb3JlOjp0
cnlSZW1vdmVFdmVudExpc3RlbmVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKCiogcGFn
ZS9DaHJvbWVDbGllbnQuaDogVHdvIG5ldyBtZXRob2RzOgogIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQ6IFdlYlByb2Nlc3MgdGVsbHMgVUlQcm9jZXNzIHRvIHVwZGF0ZSBpdHMgY2FjaGVk
CiAgICBjb3VudCBvZiB0b3RhbCB3aGVlbCBldmVudCBoYW5kbGVycywgd2hpY2ggaW4gdGhpcyBj
YXNlIG9ubHkgaW5jbHVkZSBob3Jpem9udGFsCiAgICBzY3JvbGxiYXJzIGFuZCBtb3VzZSB3aGVl
bCBKUyBoYW5kbGVycwogIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbjogYWxsb3cgdGhlIFVJ
UHJvY2VzcyB0byBwcm92aWRlIHNvbWUgY29udHJvbCBvdmVyCiAgICB3aGV0aGVyIHJ1YmJlciBi
YW5kaW5nIGlzIGFsbG93ZWQgd2hlbiBzY3JvbGxpbmcgaW4gYSBwYXJ0aWN1bGFyIGRpcmVjdGlv
bgoqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpu
dW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBlbXB0eSBpbXBsCihXZWJDb3Jl
OjpFbXB0eUNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVs
dCBlbXB0eSBpbXBsCiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgooV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogUmVtb3ZlIGEgcmVkdW5kYW50IHBvaW50ZXIgY2hlY2sK
KiBwYWdlL0ZyYW1lLmNwcDoKKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1bWVudCk6IFdoZW4gdGhl
IGZyYW1lJ3MgZG9jdW1lbnQgY2hhbmdlcywgY2FsY3VsYXRlIHRoYXQKZG9jdW1lbnQncyB0b3Rh
bCB3aGVlbCBldmVudCBoYW5kbGVycywgYW5kIG5vdGlmeSB0aGUgVUlQcm9jZXNzCihXZWJDb3Jl
OjpGcmFtZTo6bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQp
OiBQZXJmb3JtcyBhIGNyYXdsCm9mIHRoZSBmcmFtZSB0cmVlIHRvIGFnZ3JlZ2F0ZSB0aGUgY291
bnQKKFdlYkNvcmU6OnN1bVRvdGFsV2hlZWxFdmVudEhhbmRsZXJzKTogSGVscGVyIGZ1bmN0aW9u
CiogcGFnZS9GcmFtZS5oOgoKKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOiBWaXJ0dWFsaXpl
IGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIgYW5kCndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xs
YmFyIGZvciBvdmVycmlkaW5nIGluIFJlbmRlckxheWVyIGFuZCBGcmFtZVZpZXcKKFdlYkNvcmU6
OlNjcm9sbGFibGVBcmVhOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGlt
cGwKKiBwYWdlL0ZyYW1lVmlldy5jcHA6CihXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZEFkZEhvcml6
b250YWxTY3JvbGxiYXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MgY291bnQKKFdl
YkNvcmU6OkZyYW1lVmlldzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIpOiBVcGRhdGVz
IHRoZSBmcmFtZSdzIGRvY3VtZW50J3MKY291bnQKKFdlYkNvcmU6OkZyYW1lVmlldzo6c2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKTogQ29ubmVjdGl2ZSBnbHVlCiogcGFnZS9GcmFtZVZpZXcu
aDogQWRkaW5nIG92ZXJyaWRpbmcgbWV0aG9kcyBmcm9tIFNjcm9sbGFibGVBcmVhCiogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDogU2ltaWxhciBmdW5jdGlvbmFsaXR5IHRvIEZyYW1lVmlldwoo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOgooV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKToKKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDoKCiogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tOiBV
cGRhdGUgbG9naWMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gYWNjZXB0CnRoZSB3aGVlbCBldmVu
dC4gQWxzbywgZml4IGEgZmV3IHNwZWxsaW5nIGVycm9ycyBvZiB0aGUgd29yZCAibW9tZW50dW0i
LgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOgoKKiBwbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogRml4IHR5cG8gb2YgIm1vbWVudHVtIgoqIHBs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
TWFjOjpTY3JvbGxBbmltYXRvck1hYyk6IEZpeCB0eXBvIG9mICJtb21lbnR1bSIKKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQpOiBGaXggdHlwbyBvZiAi
Y29hbGVzY2VkIgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmJlZ2luU2Nyb2xsR2VzdHVy
ZSk6IEZpeCB0eXBvIG9mICJjb2FsZXNjZWQiCihXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6
c25hcFJ1YmJlckJhbmQpOiBGaXggdHlwbyBvZiAibW9tZW50dW0iCgooV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQpOiBOZXcgbG9naWMgZm9yIGRldGVybWluaW5n
IHdoZXRoZXIKdG8gYWxsb3cgcnViYmVyLWJhbmRpbmcgYmFzZWQgb24gdGhlIGFyZWEncyBzY3Jv
bGwgcG9zaXRpb24gYW5kIHRoZSB3aGVlbCBldmVudC4KQ291bGQgcHJldmVudCBhY2NlcHRpbmcg
dGhlIHdoZWVsIGV2ZW50LiBBbHNvLCBmaXggdHlwbyBvZiAibW9tZW50dW0iCihXZWJDb3JlOjpo
b3Jpem9udGFsU2Nyb2xsUG9zaXRpb25Jc1Bhc3RNaW5pbXVtKTogSW5saW5lIGhlbHBlciBmdW5j
dGlvbiBmb3IgbG9naWMKKFdlYkNvcmU6Omhvcml6b250YWxTY3JvbGxQb3NpdGlvbklzUGFzdE1h
eGltdW0pOiBJbmxpbmUgaGVscGVyIGZ1bmN0aW9uIGZvciBsb2dpYwooV2ViQ29yZTo6aXNTY3Jv
bGxpbmdMZWZ0QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24g
Zm9yIGxvZ2ljCihXZWJDb3JlOjppc1Njcm9sbGluZ1JpZ2h0QW5kU2hvdWxkTm90UnViYmVyQmFu
ZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCgpTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtOgoKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgooV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBs
OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9t
ZUNsaWVudCBtZXRob2QKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6bnVtV2hlZWxFdmVudEhh
bmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoK
U291cmNlL1dlYktpdC9lZmw6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgoo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBE
ZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKFdlYkNvcmU6OkNocm9tZUNs
aWVudEVmbDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBu
ZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9ndGs6CgoqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5oOgooV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJl
ckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhv
ZAooV2ViS2l0OjpDaHJvbWVDbGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBE
ZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKClNvdXJjZS9XZWJLaXQvaGFp
a3U6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1Lmg6CihXZWJDb3JlOjpDaHJv
bWVDbGllbnRIYWlrdTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBs
IG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9tYWM6CgoqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgooV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFu
Z2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJDaHJvbWVD
bGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcg
Q2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9xdDoKCiogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzaG91bGRSdWJiZXJC
YW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QK
KFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTog
RGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L3dp
bjoKCiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CihXZWJDaHJvbWVDbGllbnQ6
OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAooV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFu
Z2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2Vi
S2l0L3dpbmNlOgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgooV2ViS2l0
OjpDaHJvbWVDbGllbnRXaW5DRTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVs
dCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJLaXQ6OkNocm9tZUNsaWVudFdp
bkNFOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBD
aHJvbWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L3d4OgoKKiBXZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4Lmg6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6c2hvdWxkUnViYmVyQmFu
ZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihX
ZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERl
ZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdDI6Cgoq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgooV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3Vs
ZFdhaXRGb3JXaGVlbEV2ZW50cyk6IFJldHVybiB0cnVlIGlmIHRoZXJlIGlzIGF0IGxlYXN0Cm9u
ZSB3aGVlbCBldmVudCBoYW5kbGVyCiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBBZGQgbmV3
IHZhcmlhYmxlIHRvIGNhY2hlIHRoZSBjb3VudAooV2ViS2l0OjpXZWJQYWdlUHJveHk6Om51bVdo
ZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBTZXRzIHRoZSBjb3VudAoKVGhlIHJlc3QganVzdCBw
cm92aWRlcyBhbGwgdGhlIGNvbm5lY3Rpb25zLgoqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
OgooV0tQYWdlU2hvdWxkV2FpdEZvcldoZWVsRXZlbnRzKToKKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmg6CiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgoqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwOgooV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVBhZ2VVSUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKToKKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Lmg6CiogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgooV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6CihXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6dXBkYXRlQ291bnRXaGVlbEV2ZW50SGFuZGxlcnMpOgoqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CgpUb29sczoKCiogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgooV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZSk6IFNldCBuZXcgZGVmYXVsdCBtZXRob2Qg
dG8gbmlsLgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICA3MSArKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysKIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArKwogU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKy0KIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAgIHwgICAgNCArCiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oICAgICAgICAgICAgICAgICB8ICAgIDMg
KwogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAgfCAg
ICAzICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTggKysrKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgMyArCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgICAg
ICAgICAgICAgICAgICB8ICAgMjQgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuaCAgICAgICAgICAgfCAgICA2ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaCAgICB8ICAgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSAgIHwgICA4MyArKysrKysrKysrKysr
Ky0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCAgICAgICAg
ICAgfCAgIDEzICsrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggICAg
ICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuaCAgICAgIHwgICAgMyArCiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrCiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCB8ICAgIDMgKwogU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKwogU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggfCAgICAzICsKIFNvdXJjZS9X
ZWJLaXQvaGFpa3UvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysKIC4u
Li9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oICAgICAgIHwgICAgMyAr
CiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTEgKysrCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCB8ICAgIDQgKwogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDExICsrKwogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIHwgICAgMyArCiBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrCiAuLi4vd2luY2UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaCAgICAgICB8ICAgIDMgKwogU291cmNlL1dlYktpdC93
eC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKwogU291cmNlL1dl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggICAgfCAgICAzICsKIFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNyArKysr
KysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCAgICAgICAgICB8
ICAgIDUgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oICAgICAgICAg
ICAgfCAgICAzICstCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAg
ICAgICAgICB8ICAgIDkgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCAgICAgICAgICAgIHwgICAgNiArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbiAgfCAgICAxICsKIC4uLi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZS5oIHwgICAxMCArKy0KIC4uLi9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAgIHwgICAgNSArCiAuLi4vSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCAgICB8ICAgIDIgKwogLi4uL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgfCAgIDE4ICsrKysKIC4uLi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAgIHwgICAgMyArCiBUb29s
cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysr
CiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCAgICAgICAgICB8ICAg
IDEgKwogNDcgZmlsZXMgY2hhbmdlZCwgNDY5IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAyY2QyOGIzLi4wNjZmYWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NzQgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6b250YWxs
eSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFs
d2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjA3NzkKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOiBJbml0aWFsaXplIHdoZWVsIGV2ZW50IGhhbmRsZXIg
Y291bnQKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRBZGRXaGVlbEV2ZW50SGFuZGxl
cik6IEluY3JlbWVudCBjb3VudCwgYW5kIHRlbGwgdGhlIG1haW4gZnJhbWUKKyAgICAgICAgdG8g
cmVjYWxjdWxhdGUgdGhlIHRvdGFsIG51bWJlciBvZiB3aGVlbCBldmVudCBoYW5kbGVycyBpbiBh
bGwgb2YgaXRzIGZyYW1lcycgZG9jdW1lbnRzCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
ZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIpOiBSZXZlcnNlIG9mIHByZXZpb3VzIG1ldGhvZAor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Ondo
ZWVsRXZlbnRIYW5kbGVyQ291bnQpOiBBY2Nlc3MgdGhlIGNvdW50CisgICAgICAgICogZG9tL05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJ5QWRkRXZlbnRMaXN0ZW5lcik6IElmIHRoZSBl
dmVudCBsaXN0ZW5lciBpcyBhIG1vdXNlIHdoZWVsIGV2ZW50LCB0aGVuCisgICAgICAgIHRlbGwg
dGhlIGRvY3VtZW50IHRvIGluY3JlbWVudCBpdHMgY291bnQKKyAgICAgICAgKFdlYkNvcmU6OnRy
eVJlbW92ZUV2ZW50TGlzdGVuZXIpOiBSZXZlcnNlIG9mIHByZXZpb3VzIG1ldGhvZAorCisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogVHdvIG5ldyBtZXRob2RzOgorICAgICAgICAgIG51
bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQ6IFdlYlByb2Nlc3MgdGVsbHMgVUlQcm9jZXNzIHRv
IHVwZGF0ZSBpdHMgY2FjaGVkCisgICAgICAgICAgICBjb3VudCBvZiB0b3RhbCB3aGVlbCBldmVu
dCBoYW5kbGVycywgd2hpY2ggaW4gdGhpcyBjYXNlIG9ubHkgaW5jbHVkZSBob3Jpem9udGFsCisg
ICAgICAgICAgICBzY3JvbGxiYXJzIGFuZCBtb3VzZSB3aGVlbCBKUyBoYW5kbGVycworICAgICAg
ICAgIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbjogYWxsb3cgdGhlIFVJUHJvY2VzcyB0byBw
cm92aWRlIHNvbWUgY29udHJvbCBvdmVyCisgICAgICAgICAgICB3aGV0aGVyIHJ1YmJlciBiYW5k
aW5nIGlzIGFsbG93ZWQgd2hlbiBzY3JvbGxpbmcgaW4gYSBwYXJ0aWN1bGFyIGRpcmVjdGlvbgor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
Q2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBlbXB0
eSBpbXBsCisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBlbXB0eSBpbXBsCisgICAgICAgICogcGFnZS9FdmVu
dEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVl
bEV2ZW50KTogUmVtb3ZlIGEgcmVkdW5kYW50IHBvaW50ZXIgY2hlY2sKKyAgICAgICAgKiBwYWdl
L0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1bWVudCk6IFdoZW4g
dGhlIGZyYW1lJ3MgZG9jdW1lbnQgY2hhbmdlcywgY2FsY3VsYXRlIHRoYXQKKyAgICAgICAgZG9j
dW1lbnQncyB0b3RhbCB3aGVlbCBldmVudCBoYW5kbGVycywgYW5kIG5vdGlmeSB0aGUgVUlQcm9j
ZXNzCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVu
dEhhbmRsZXJDb3VudENoYW5nZWQpOiBQZXJmb3JtcyBhIGNyYXdsCisgICAgICAgIG9mIHRoZSBm
cmFtZSB0cmVlIHRvIGFnZ3JlZ2F0ZSB0aGUgY291bnQKKyAgICAgICAgKFdlYkNvcmU6OnN1bVRv
dGFsV2hlZWxFdmVudEhhbmRsZXJzKTogSGVscGVyIGZ1bmN0aW9uCisgICAgICAgICogcGFnZS9G
cmFtZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDogVmlydHVhbGl6
ZSBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyIGFuZAorICAgICAgICB3aWxsUmVtb3ZlSG9yaXpv
bnRhbFNjcm9sbGJhciBmb3Igb3ZlcnJpZGluZyBpbiBSZW5kZXJMYXllciBhbmQgRnJhbWVWaWV3
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKTogRGVmYXVsdCBpbXBsCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKTogVXBk
YXRlcyB0aGUgZnJhbWUncyBkb2N1bWVudCdzIGNvdW50CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKTogVXBkYXRlcyB0aGUgZnJhbWUn
cyBkb2N1bWVudCdzCisgICAgICAgIGNvdW50CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IENvbm5lY3RpdmUgZ2x1ZQorICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3Lmg6IEFkZGluZyBvdmVycmlkaW5nIG1ldGhvZHMgZnJvbSBTY3JvbGxh
YmxlQXJlYQorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6IFNpbWlsYXIgZnVu
Y3Rpb25hbGl0eSB0byBGcmFtZVZpZXcKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpk
aWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
Ojp3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW06IFVwZGF0ZSBsb2dpYyB0byBkZXRlcm1pbmUgd2hldGhlciB0byBhY2NlcHQKKyAgICAgICAg
dGhlIHdoZWVsIGV2ZW50LiBBbHNvLCBmaXggYSBmZXcgc3BlbGxpbmcgZXJyb3JzIG9mIHRoZSB3
b3JkICJtb21lbnR1bSIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6aGFu
ZGxlV2hlZWxFdmVudCk6IAorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMuaDogRml4IHR5cG8gb2YgIm1vbWVudHVtIgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yTWFjOjpTY3JvbGxBbmltYXRvck1hYyk6IEZpeCB0eXBvIG9mICJtb21lbnR1bSIKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQpOiBG
aXggdHlwbyBvZiAiY29hbGVzY2VkIgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JN
YWM6OmJlZ2luU2Nyb2xsR2VzdHVyZSk6IEZpeCB0eXBvIG9mICJjb2FsZXNjZWQiCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c25hcFJ1YmJlckJhbmQpOiBGaXggdHlwbyBv
ZiAibW9tZW50dW0iCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JN
YWM6OmhhbmRsZVdoZWVsRXZlbnQpOiBOZXcgbG9naWMgZm9yIGRldGVybWluaW5nIHdoZXRoZXIK
KyAgICAgICAgdG8gYWxsb3cgcnViYmVyLWJhbmRpbmcgYmFzZWQgb24gdGhlIGFyZWEncyBzY3Jv
bGwgcG9zaXRpb24gYW5kIHRoZSB3aGVlbCBldmVudC4KKyAgICAgICAgQ291bGQgcHJldmVudCBh
Y2NlcHRpbmcgdGhlIHdoZWVsIGV2ZW50LiBBbHNvLCBmaXggdHlwbyBvZiAibW9tZW50dW0iCisg
ICAgICAgIChXZWJDb3JlOjpob3Jpem9udGFsU2Nyb2xsUG9zaXRpb25Jc1Bhc3RNaW5pbXVtKTog
SW5saW5lIGhlbHBlciBmdW5jdGlvbiBmb3IgbG9naWMKKyAgICAgICAgKFdlYkNvcmU6Omhvcml6
b250YWxTY3JvbGxQb3NpdGlvbklzUGFzdE1heGltdW0pOiBJbmxpbmUgaGVscGVyIGZ1bmN0aW9u
IGZvciBsb2dpYworICAgICAgICAoV2ViQ29yZTo6aXNTY3JvbGxpbmdMZWZ0QW5kU2hvdWxkTm90
UnViYmVyQmFuZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCisgICAgICAgIChX
ZWJDb3JlOjppc1Njcm9sbGluZ1JpZ2h0QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGluZSBo
ZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCisKIDIwMTEtMDUtMTMgIE1hcnRpbiBSb2JpbnNvbiAg
PG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggOGNlNDNkMS4uOTNkZjIwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC00MjIsNiArNDIyLDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZy
YW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQog
ICAgICwgbV93cml0aW5nTW9kZVNldE9uRG9jdW1lbnRFbGVtZW50KGZhbHNlKQogICAgICwgbV93
cml0ZVJlY3Vyc2lvbklzVG9vRGVlcChmYWxzZSkKICAgICAsIG1fd3JpdGVSZWN1cnNpb25EZXB0
aCgwKQorICAgICwgbV93aGVlbEV2ZW50SGFuZGxlckNvdW50KDApCiB7CiAgICAgbV9kb2N1bWVu
dCA9IHRoaXM7CiAKQEAgLTUwNjksNCArNTA3MCwyMSBAQCBQYXNzUmVmUHRyPFRvdWNoTGlzdD4g
RG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlzdChFeGNlcHRpb25Db2RlJikgY29uc3QKIH0KICNlbmRp
ZgogCit2b2lkIERvY3VtZW50OjpkaWRBZGRXaGVlbEV2ZW50SGFuZGxlcigpCit7CisgICAgKytt
X3doZWVsRXZlbnRIYW5kbGVyQ291bnQ7CisgICAgRnJhbWUqIG1haW5GcmFtZSA9IHBhZ2UoKSA/
IHBhZ2UoKS0+bWFpbkZyYW1lKCkgOiAwOworICAgIGlmIChtYWluRnJhbWUpCisgICAgICAgIG1h
aW5GcmFtZS0+bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQo
KTsKK30KKwordm9pZCBEb2N1bWVudDo6ZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIoKQorewor
ICAgIEFTU0VSVChtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQgPiAwKTsKKyAgICAtLW1fd2hlZWxF
dmVudEhhbmRsZXJDb3VudDsKKyAgICBGcmFtZSogbWFpbkZyYW1lID0gcGFnZSgpID8gcGFnZSgp
LT5tYWluRnJhbWUoKSA6IDA7CisgICAgaWYgKG1haW5GcmFtZSkKKyAgICAgICAgbWFpbkZyYW1l
LT5ub3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDk1MDUxYmYu
LmY1YTk3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDk3LDYgKzEwOTcsMTEgQEAgcHVi
bGljOgogCiAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5KiBjb250ZW50U2VjdXJpdHlQb2xpY3ko
KSB7IHJldHVybiBtX2NvbnRlbnRTZWN1cml0eVBvbGljeS5nZXQoKTsgfQogCisgICAgLy8gVXNl
ZCB0byBrZWVwIHRyYWNrIG9mIGhvcml6b250YWwgc2Nyb2xsYmFycyBhbmQgb25tb3VzZXdoZWVs
IGV2ZW50IGhhbmRsZXJzIG9ubHkuCisgICAgdW5zaWduZWQgd2hlZWxFdmVudEhhbmRsZXJDb3Vu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudDsgfQorICAgIHZvaWQg
ZGlkQWRkV2hlZWxFdmVudEhhbmRsZXIoKTsKKyAgICB2b2lkIGRpZFJlbW92ZVdoZWVsRXZlbnRI
YW5kbGVyKCk7CisgICAgCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBL
VVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTEzOTMsNiArMTM5OCw4IEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPE1lZGlhUXVlcnlNYXRjaGVyPiBtX21lZGlhUXVlcnlNYXRj
aGVyOwogICAgIGJvb2wgbV93cml0ZVJlY3Vyc2lvbklzVG9vRGVlcDsKICAgICB1bnNpZ25lZCBt
X3dyaXRlUmVjdXJzaW9uRGVwdGg7CisgICAgCisgICAgdW5zaWduZWQgbV93aGVlbEV2ZW50SGFu
ZGxlckNvdW50OwogCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIE93
blB0cjxTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI+IG1fc2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGM5NTk3ZmIuLjFhNTYwZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5jcHAKQEAgLTI4LDYgKzI4LDggQEAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5j
bHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkNocm9tZS5o
IgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2lu
Y2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NSdWxlTGlzdC5oIgpAQCAtMjY0MSw5ICsy
NjQzLDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlBZGRFdmVudExpc3RlbmVyKE5vZGUqIHRh
cmdldE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlCiAgICAgaWYgKCF0YXJnZXROb2RlLT5F
dmVudFRhcmdldDo6YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCB1c2VDYXB0
dXJlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVu
dCA9IHRhcmdldE5vZGUtPmRvY3VtZW50KCkpCisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9
IHRhcmdldE5vZGUtPmRvY3VtZW50KCkpIHsKICAgICAgICAgZG9jdW1lbnQtPmFkZExpc3RlbmVy
VHlwZUlmTmVlZGVkKGV2ZW50VHlwZSk7Ci0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkubW91c2V3aGVlbEV2ZW50KQorICAgICAgICAgICAgZG9jdW1lbnQtPmRpZEFkZFdo
ZWVsRXZlbnRIYW5kbGVyKCk7CisgICAgfQorICAgICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApAQCAtMjY4OCw3ICsyNjkzLDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlSZW1vdmVFdmVu
dExpc3RlbmVyKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYKIAogICAgIC8v
IEZJWE1FOiBOb3RpZnkgRG9jdW1lbnQgdGhhdCB0aGUgbGlzdGVuZXIgaGFzIHZhbmlzaGVkLiBX
ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgYSBudW1iZXIgb2YKICAgICAvLyBsaXN0ZW5lcnMgZm9y
IGVhY2ggdHlwZSwgbm90IGp1c3QgYSBib29sIC0gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMzg2MQotCisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRh
cmdldE5vZGUtPmRvY3VtZW50KCkpIHsKKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkubW91c2V3aGVlbEV2ZW50KQorICAgICAgICAgICAgZG9jdW1lbnQtPmRpZFJlbW92ZVdo
ZWVsRXZlbnRIYW5kbGVyKCk7CisgICAgfQorICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYWEyZmM5Yy4uZjMyMDRkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMjIzLDYgKzIyMywxMCBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNo
RXZlbnRzKGJvb2wpIHsgfQogI2VuZGlmCisgICAgCisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorICAgIAorICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogY2xhc3MgRW1wdHlGcmFtZUxvYWRlckNsaWVu
dCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAppbmRleCA4OTQxODQ1Li45YTBmZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
QEAgLTE3MCw2ICsxNzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pID0gMDsKIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKSA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdCA9IDA7
CiAKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERh
dGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkgPSAwOwpAQCAt
MzIwLDYgKzMyMSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfTsKICAgICAgICAg
dmlydHVhbCB2b2lkIHdpbGxSdW5Nb2RhbERpYWxvZ0R1cmluZ1BhZ2VEaXNtaXNzYWwoY29uc3Qg
RGlhbG9nVHlwZSYpIGNvbnN0IHsgfQogCisgICAgICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2
ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSA9IDA7CisgICAgICAgIAogICAgIHByb3RlY3Rl
ZDoKICAgICAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiAgICAgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAxMzNlYzdiLi4zYTRiYmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0yMTM4LDEwICsyMTM4LDExIEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICBp
ZiAoZS5pc0FjY2VwdGVkKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gV2UgZG8g
YW5vdGhlciBjaGVjayBvbiB0aGUgZnJhbWUgdmlldyBiZWNhdXNlIHRoZSBldmVudCBoYW5kbGVy
IGNhbiBydW4gSlMgd2hpY2ggcmVzdWx0cyBpbiB0aGUgZnJhbWUgZ2V0dGluZyBkZXN0cm95ZWQu
CiAgICAgdmlldyA9IG1fZnJhbWUtPnZpZXcoKTsKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLQorICAgIAogICAgIHZpZXctPndoZWVsRXZlbnQoZSk7CiAgICAgcmV0dXJu
IGUuaXNBY2NlcHRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCAzYThkM2I1Li5hM2Zj
MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzA5LDggKzMwOSwxMSBAQCB2b2lkIEZyYW1l
OjpzZXREb2N1bWVudChQYXNzUmVmUHRyPERvY3VtZW50PiBuZXdEb2MpCiAgICAgLy8gVXBkYXRl
IHRoZSBjYWNoZWQgJ2RvY3VtZW50JyBwcm9wZXJ0eSwgd2hpY2ggaXMgbm93IHN0YWxlLgogICAg
IG1fc2NyaXB0LnVwZGF0ZURvY3VtZW50KCk7CiAKLSAgICBpZiAobV9wYWdlKQorICAgIGlmICht
X3BhZ2UpIHsKICAgICAgICAgbV9wYWdlLT51cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpOworICAg
ICAgICBpZiAobV9wYWdlLT5tYWluRnJhbWUoKSA9PSB0aGlzKQorICAgICAgICAgICAgbm90aWZ5
Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQoKTsKKyAgICB9CiB9CiAK
ICNpZiBFTkFCTEUoT1JJRU5UQVRJT05fRVZFTlRTKQpAQCAtMTExNiw0ICsxMTE5LDE3IEBAIHZv
aWQgRnJhbWU6OnNjYWxlUGFnZShmbG9hdCBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikK
ICAgICB9CiB9CiAKK3ZvaWQgRnJhbWU6Om5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5k
bGVyQ291bnRDaGFuZ2VkKCkgY29uc3QKK3sKKyAgICAvLyBFbnN1cmUgdGhhdCB0aGlzIG1ldGhv
ZCBpcyBiZWluZyBjYWxsZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgdGhlIHBhZ2UuCisgICAgQVNT
RVJUKG1fcGFnZSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpID09IHRoaXMpOworICAgIAorICAgIHVu
c2lnbmVkIGNvdW50ID0gMDsKKyAgICBmb3IgKGNvbnN0IEZyYW1lKiBmcmFtZSA9IHRoaXM7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKQorICAgICAgICBpZiAo
ZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBjb3VudCArPSBmcmFtZS0+ZG9jdW1lbnQo
KS0+d2hlZWxFdmVudEhhbmRsZXJDb3VudCgpOworICAgIAorICAgIG1fcGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpLT5udW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGNvdW50KTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDdkYTljNDkuLjk0YTBkNTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmgKQEAgLTIwNiw2ICsyMDYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAgICAgTWVkaWFTdHJlYW1GcmFtZUNvbnRy
b2xsZXIqIG1lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9tZWRp
YVN0cmVhbUZyYW1lQ29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCisgICAgICAgIAorICAgICAg
ICAvLyBTaG91bGQgb25seSBiZSBjYWxsZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgYSBwYWdlLgor
ICAgICAgICB2b2lkIG5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFu
Z2VkKCkgY29uc3Q7CiAKICAgICAvLyA9PT09PT09PQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKaW5kZXggYTY5YmJjMS4uNTdiNWZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogCiAjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5o
IgogI2luY2x1ZGUgIkNocm9tZS5oIgpAQCAtMzA2LDYgKzMwNywyMSBAQCB2b2lkIEZyYW1lVmll
dzo6ZGV0YWNoQ3VzdG9tU2Nyb2xsYmFycygpCiAgICAgfQogfQogCit2b2lkIEZyYW1lVmlldzo6
ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICBp
ZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGlk
QWRkV2hlZWxFdmVudEhhbmRsZXIoKTsKKyAgICBzY3JvbGxBbmltYXRvcigpLT5kaWRBZGRIb3Jp
em9udGFsU2Nyb2xsYmFyKHNjcm9sbGJhcik7Cit9CisKK3ZvaWQgRnJhbWVWaWV3Ojp3aWxsUmVt
b3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICBzY3Jv
bGxBbmltYXRvcigpLT53aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihzY3JvbGxiYXIpOwor
ICAgIC8vIEZJWE1FOiBtYXliZSBuZWVkIGEgc2VwYXJhdGUgU2Nyb2xsYWJsZUFyZWE6OmRpZFJl
bW92ZUhvcml6b250YWxTY3JvbGxiYXIgY2FsbGJhY2s/CisgICAgaWYgKG1fZnJhbWUtPmRvY3Vt
ZW50KCkpCisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPmRpZFJlbW92ZVdoZWVsRXZlbnRI
YW5kbGVyKCk7Cit9CisKIFNjcm9sbGJhck92ZXJsYXlTdHlsZSBGcmFtZVZpZXc6OnJlY29tbWVu
ZGVkU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCkgY29uc3QKIHsKICAgICBDb2xvciBiZ0NvbG9yID0g
bV9mcmFtZS0+Z2V0RG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3IoKTsKQEAgLTE0OTAsNiArMTUwNiwx
NCBAQCB2b2lkIEZyYW1lVmlldzo6cmVwYWludEZpeGVkRWxlbWVudHNBZnRlclNjcm9sbGluZygp
CiAgICAgfQogfQogCitib29sIEZyYW1lVmlldzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9u
KFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Cit7CisgICAgUGFnZSogcGFnZSA9IGZy
YW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkgOiAwOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0
dXJuIFNjcm9sbFZpZXc6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihkaXJlY3Rpb24pOwor
ICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnNob3VsZFJ1YmJlckJhbmRJbkRp
cmVjdGlvbihkaXJlY3Rpb24pOworfQorCiBIb3N0V2luZG93KiBGcmFtZVZpZXc6Omhvc3RXaW5k
b3coKSBjb25zdAogewogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpID8gZnJhbWUoKS0+cGFnZSgp
IDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDU2OTc2MDQuLjE2ODU3MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNzUsNiArNzUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gY3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0
aW9uKTsKIAogICAgIHZpcnR1YWwgYm9vbCBhdm9pZFNjcm9sbGJhckNyZWF0aW9uKCkgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7
CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJh
ciopOwogCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJik7
CiAKQEAgLTE1Myw2ICsxNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlv
bihjb25zdCBJbnRQb2ludCYpOwogICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkVmlhUGxh
dGZvcm1XaWRnZXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludEZpeGVkRWxlbWVudHNBZnRl
clNjcm9sbGluZygpOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rp
b24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdDsKIAogICAgIFN0cmluZyBtZWRpYVR5cGUoKSBjb25z
dDsKICAgICB2b2lkIHNldE1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4IDRiYmVkM2UuLmVhZmY4YjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtNzMsOCArNzMsOCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAg
IHZvaWQgd2lsbFJlbW92ZVZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwotICAgIHZvaWQg
ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKLSAgICB2b2lkIHdpbGxSZW1v
dmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRB
ZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOworICAgIHZpcnR1YWwgdm9pZCB3aWxs
UmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKIAogICAgIGJvb2wgaGFzT3Zl
cmxheVNjcm9sbGJhcnMoKSBjb25zdDsKICAgICB2aXJ0dWFsIFNjcm9sbGJhck92ZXJsYXlTdHls
ZSByZWNvbW1lbmRlZFNjcm9sbGJhck92ZXJsYXlTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIFNjcm9s
bGJhck92ZXJsYXlTdHlsZURlZmF1bHQ7IH0KQEAgLTEzMSw2ICsxMzEsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJTdHlsZUNoYW5nZWQoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IElu
dFJlY3QmKSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9tUGFnZSgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCmluZGV4IGJmZWY5NWIuLjI4YTVlM2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5o
CkBAIC0xNDUsNyArMTQ1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbW9tZW50dW1TY3JvbGxJ
blByb2dyZXNzOwogICAgIGJvb2wgbV9pZ25vcmVNb21lbnR1bVNjcm9sbHM7CiAgICAgCi0gICAg
Q0ZUaW1lSW50ZXJ2YWwgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXA7CisgICAgQ0ZUaW1l
SW50ZXJ2YWwgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXA7CiAgICAgRmxvYXRTaXplIG1f
b3ZlcmZsb3dTY3JvbGxEZWx0YTsKICAgICBGbG9hdFNpemUgbV9zdHJldGNoU2Nyb2xsRm9yY2U7
CiAgICAgRmxvYXRTaXplIG1fbW9tZW50dW1WZWxvY2l0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCA5OTM4M2RhLi4yYzZlOWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tCkBAIC00NTksNyArNDU5LDcgQEAgU2Nyb2xsQW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1hdG9y
TWFjKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKICAgICAsIG1faW5TY3JvbGxHZXN0
dXJlKGZhbHNlKQogICAgICwgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MoZmFsc2UpCiAgICAg
LCBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyhmYWxzZSkKLSAgICAsIG1fbGFzdE1vbWVtdHVtU2Ny
b2xsVGltZXN0YW1wKDApCisgICAgLCBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCgwKQog
ICAgICwgbV9zdGFydFRpbWUoMCkKICAgICAsIG1fc25hcFJ1YmJlckJhbmRUaW1lcih0aGlzLCAm
U2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kVGltZXJGaXJlZCkKICNlbmRpZgpAQCAt
NzY0LDYgKzc2NCwyNiBAQCBzdGF0aWMgZmxvYXQgc2Nyb2xsV2hlZWxNdWx0aXBsaWVyKCkKICAg
ICByZXR1cm4gbXVsdGlwbGllcjsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGhvcml6b250YWxT
Y3JvbGxQb3NpdGlvbklzUGFzdE1pbmltdW0oU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVh
KQoreworICAgIHJldHVybiBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsUG9zaXRpb24oc2Nyb2xsYWJs
ZUFyZWEtPmhvcml6b250YWxTY3JvbGxiYXIoKSkgPD0gc2Nyb2xsYWJsZUFyZWEtPm1pbmltdW1T
Y3JvbGxQb3NpdGlvbigpLngoKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGhvcml6b250YWxT
Y3JvbGxQb3NpdGlvbklzUGFzdE1heGltdW0oU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVh
KQoreworICAgIHJldHVybiBzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsUG9zaXRpb24oc2Nyb2xsYWJs
ZUFyZWEtPmhvcml6b250YWxTY3JvbGxiYXIoKSkgPj0gc2Nyb2xsYWJsZUFyZWEtPm1heGltdW1T
Y3JvbGxQb3NpdGlvbigpLngoKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzU2Nyb2xsaW5n
TGVmdEFuZFNob3VsZE5vdFJ1YmJlckJhbmQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
LCBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCit7CisgICAgcmV0dXJuIHdoZWVsRXZl
bnQuZGVsdGFYKCkgPiAwICYmICFzY3JvbGxhYmxlQXJlYS0+c2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKFNjcm9sbExlZnQpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXNTY3JvbGxpbmdS
aWdodEFuZFNob3VsZE5vdFJ1YmJlckJhbmQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
LCBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCit7CisgICAgcmV0dXJuIHdoZWVsRXZl
bnQuZGVsdGFYKCkgPCAwICYmICFzY3JvbGxhYmxlQXJlYS0+c2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKFNjcm9sbFJpZ2h0KTsKK30KKwogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6aGFuZGxl
V2hlZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAgICAgbV9oYXZl
U2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKQEAgLTc4NywxNyArODA3LDM0IEBAIHZvaWQg
U2Nyb2xsQW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW50KQogICAgICAgICAgICAgU2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdoZWVsRXZlbnQo
d2hlZWxFdmVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9CiAKLSAg
ICB3aGVlbEV2ZW50LmFjY2VwdCgpOworICAgICAgICAvLyBBZnRlciBhIGdlc3R1cmUgYmVnaW5z
LCB3ZSBnbyB0aHJvdWdoOgorICAgICAgICAvLyAxKyBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5v
bmUKKyAgICAgICAgLy8gMCsgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VDaGFuZ2VkCisgICAgICAg
IC8vIDEgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCBpZiB0aGVyZSB3YXMgYXQgbGVhc3Qg
b25lIGNoYW5nZWQgZXZlbnQKKyAgICAgICAgaWYgKHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgp
ID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSkgeworICAgICAgICAgICAgaWYgKChpc1Nj
cm9sbGluZ0xlZnRBbmRTaG91bGROb3RSdWJiZXJCYW5kKHdoZWVsRXZlbnQsIG1fc2Nyb2xsYWJs
ZUFyZWEpICYmCisgICAgICAgICAgICAgICAgKCFtX3Njcm9sbGFibGVBcmVhLT5ob3Jpem9udGFs
U2Nyb2xsYmFyKCkgfHwKKyAgICAgICAgICAgICAgICBob3Jpem9udGFsU2Nyb2xsUG9zaXRpb25J
c1Bhc3RNaW5pbXVtKG1fc2Nyb2xsYWJsZUFyZWEpKSkgfHwKKyAgICAgICAgICAgICAgICAoaXNT
Y3JvbGxpbmdSaWdodEFuZFNob3VsZE5vdFJ1YmJlckJhbmQod2hlZWxFdmVudCwgbV9zY3JvbGxh
YmxlQXJlYSkgJiYKKyAgICAgICAgICAgICAgICAoIW1fc2Nyb2xsYWJsZUFyZWEtPmhvcml6b250
YWxTY3JvbGxiYXIoKSB8fAorICAgICAgICAgICAgICAgIGhvcml6b250YWxTY3JvbGxQb3NpdGlv
bklzUGFzdE1heGltdW0obV9zY3JvbGxhYmxlQXJlYSkpKSkgeworICAgICAgICAgICAgICAgIFNj
cm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIAotICAgIGJvb2wg
aXNNb21ldHVtU2Nyb2xsRXZlbnQgPSAod2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgIT0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKTsKLSAgICBpZiAobV9pZ25vcmVNb21lbnR1bVNjcm9s
bHMgJiYgKGlzTW9tZXR1bVNjcm9sbEV2ZW50IHx8IG1fc25hcFJ1YmJlckJhbmRUaW1lci5pc0Fj
dGl2ZSgpKSkgewotICAgICAgICBpZiAod2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgPT0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCkKKyAgICBib29sIGlzTW9tZW50dW1TY3JvbGxFdmVu
dCA9ICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFz
ZU5vbmUpOworICAgIGlmIChtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyAmJiAoaXNNb21lbnR1bVNj
cm9sbEV2ZW50IHx8IG1fc25hcFJ1YmJlckJhbmRUaW1lci5pc0FjdGl2ZSgpKSkgeworICAgICAg
ICBpZiAod2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2VFbmRlZCkgewogICAgICAgICAgICAgbV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgPSBmYWxzZTsK
KyAgICAgICAgICAgIHdoZWVsRXZlbnQuYWNjZXB0KCk7CisgICAgICAgIH0KICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIHdoZWVsRXZlbnQuYWNjZXB0KCk7CiAgICAgc21vb3RoU2Nyb2xs
V2l0aEV2ZW50KHdoZWVsRXZlbnQpOwogfQogCkBAIC04ODEsMTEgKzkxOCwxMSBAQCB2b2lkIFNj
cm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KQogICAgIC8vIFJlc2V0IG92ZXJmbG93IHZhbHVlcyBiZWNhdXNlIHdlIG1h
eSBkZWNpZGUgdG8gcmVtb3ZlIGRlbHRhIGF0IHZhcmlvdXMgcG9pbnRzIGFuZCBwdXQgaXQgaW50
byBvdmVyZmxvdy4KICAgICBtX292ZXJmbG93U2Nyb2xsRGVsdGEgPSBGbG9hdFNpemUoKTsKIAot
ICAgIGZsb2F0IGV2ZW50Q29hbGxlc2NlZERlbHRhWCA9IC13aGVlbEV2ZW50LmRlbHRhWCgpOwot
ICAgIGZsb2F0IGV2ZW50Q29hbGxlc2NlZERlbHRhWSA9IC13aGVlbEV2ZW50LmRlbHRhWSgpOwor
ICAgIGZsb2F0IGV2ZW50Q29hbGVzY2VkRGVsdGFYID0gLXdoZWVsRXZlbnQuZGVsdGFYKCk7Cisg
ICAgZmxvYXQgZXZlbnRDb2FsZXNjZWREZWx0YVkgPSAtd2hlZWxFdmVudC5kZWx0YVkoKTsKIAot
ICAgIGRlbHRhWCArPSBldmVudENvYWxsZXNjZWREZWx0YVg7Ci0gICAgZGVsdGFZICs9IGV2ZW50
Q29hbGxlc2NlZERlbHRhWTsKKyAgICBkZWx0YVggKz0gZXZlbnRDb2FsZXNjZWREZWx0YVg7Cisg
ICAgZGVsdGFZICs9IGV2ZW50Q29hbGVzY2VkRGVsdGFZOwogCiAgICAgLy8gU2xpZ2h0bHkgcHJl
ZmVyIHNjcm9sbGluZyB2ZXJ0aWNhbGx5IGJ5IGFwcGx5aW5nIHRoZSA9IGNhc2UgdG8gZGVsdGFZ
CiAgICAgaWYgKGZhYnNmKGRlbHRhWSkgPj0gZmFic2YoZGVsdGFYKSkKQEAgLTkwOCwxNCArOTQ1
LDE0IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgaWYgKCFtX21vbWVudHVtU2Nyb2xsSW5Q
cm9ncmVzcyAmJiAocGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBwaGFz
ZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUNoYW5nZWQpKQogICAgICAgICBtX21vbWVudHVt
U2Nyb2xsSW5Qcm9ncmVzcyA9IHRydWU7CiAKLSAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEg
PSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpIC0gbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXA7
CisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKSAt
IG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVy
ZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcykgewotICAgICAgICBpZiAobV9sYXN0TW9t
ZW10dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3Jv
bGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7Ci0gICAgICAgICAgICBtX21vbWVudHVtVmVsb2Np
dHkuc2V0V2lkdGgoZXZlbnRDb2FsbGVzY2VkRGVsdGFYIC8gKGZsb2F0KXRpbWVEZWx0YSk7Ci0g
ICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkuc2V0SGVpZ2h0KGV2ZW50Q29hbGxlc2NlZERl
bHRhWSAvIChmbG9hdCl0aW1lRGVsdGEpOwotICAgICAgICAgICAgbV9sYXN0TW9tZW10dW1TY3Jv
bGxUaW1lc3RhbXAgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgpOworICAgICAgICBpZiAobV9sYXN0
TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBz
Y3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KSB7CisgICAgICAgICAgICBtX21vbWVudHVtVmVs
b2NpdHkuc2V0V2lkdGgoZXZlbnRDb2FsZXNjZWREZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsK
KyAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWRE
ZWx0YVkgLyAoZmxvYXQpdGltZURlbHRhKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Ny
b2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsKICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50
aW1lc3RhbXAoKTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0g
d2hlZWxFdmVudC50aW1lc3RhbXAoKTsKICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eSA9
IEZsb2F0U2l6ZSgpOwogICAgICAgICB9CiAKQEAgLTk2OSw3ICsxMDA2LDcgQEAgdm9pZCBTY3Jv
bGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICghYWxsb3dzSG9y
aXpvbnRhbFN0cmV0Y2hpbmcoKSkgewogICAgICAgICAgICAgICAgIGRlbHRhWCA9IDA7Ci0gICAg
ICAgICAgICAgICAgZXZlbnRDb2FsbGVzY2VkRGVsdGFYID0gMDsKKyAgICAgICAgICAgICAgICBl
dmVudENvYWxlc2NlZERlbHRhWCA9IDA7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKChkZWx0YVgg
IT0gMCkgJiYgIWlzSG9yaXpvbnRhbGx5U3RyZXRjaGVkICYmICFwaW5uZWRJbkRpcmVjdGlvbihk
ZWx0YVgsIDApKSB7CiAgICAgICAgICAgICAgICAgZGVsdGFYICo9IHNjcm9sbFdoZWVsTXVsdGlw
bGllcigpOwogCkBAIC05ODIsNyArMTAxOSw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNt
b290aFNjcm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIGlmICghYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKCkpIHsK
ICAgICAgICAgICAgICAgICBkZWx0YVkgPSAwOwotICAgICAgICAgICAgICAgIGV2ZW50Q29hbGxl
c2NlZERlbHRhWSA9IDA7CisgICAgICAgICAgICAgICAgZXZlbnRDb2FsZXNjZWREZWx0YVkgPSAw
OwogICAgICAgICAgICAgfSBlbHNlIGlmICgoZGVsdGFZICE9IDApICYmICFpc1ZlcnRpY2FsbHlT
dHJldGNoZWQgJiYgIXBpbm5lZEluRGlyZWN0aW9uKDAsIGRlbHRhWSkpIHsKICAgICAgICAgICAg
ICAgICBkZWx0YVkgKj0gc2Nyb2xsV2hlZWxNdWx0aXBsaWVyKCk7CiAKQEAgLTk5Niw3ICsxMDMz
LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KFBsYXRm
b3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgICAgIEludFNpemUgc3RyZXRjaEFt
b3VudCA9IG1fc2Nyb2xsYWJsZUFyZWEtPm92ZXJoYW5nQW1vdW50KCk7CiAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKChwaW5uZWRJbkRpcmVjdGlvbihldmVudENvYWxsZXNjZWREZWx0YVgsIGV2ZW50Q29h
bGxlc2NlZERlbHRhWSkgfHwgKGZhYnNmKGV2ZW50Q29hbGxlc2NlZERlbHRhWCkgKyBmYWJzZihl
dmVudENvYWxsZXNjZWREZWx0YVkpIDw9IDApKSAmJiBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVz
dGFtcCkgeworICAgICAgICAgICAgICAgIGlmICgocGlubmVkSW5EaXJlY3Rpb24oZXZlbnRDb2Fs
ZXNjZWREZWx0YVgsIGV2ZW50Q29hbGVzY2VkRGVsdGFZKSB8fCAoZmFic2YoZXZlbnRDb2FsZXNj
ZWREZWx0YVgpICsgZmFic2YoZXZlbnRDb2FsZXNjZWREZWx0YVkpIDw9IDApKSAmJiBtX2xhc3RN
b21lbnR1bVNjcm9sbFRpbWVzdGFtcCkgewogICAgICAgICAgICAgICAgICAgICBtX2lnbm9yZU1v
bWVudHVtU2Nyb2xscyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIG1fbW9tZW50dW1TY3Jv
bGxJblByb2dyZXNzID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIHNuYXBSdWJiZXJCYW5k
KCk7CkBAIC0xMDIxLDcgKzEwNTgsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhT
Y3JvbGxXaXRoRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIGlmICht
X21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAmJiBwaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZUVuZGVkKSB7CiAgICAgICAgIG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzID0gZmFsc2U7
CiAgICAgICAgIG1faWdub3JlTW9tZW50dW1TY3JvbGxzID0gZmFsc2U7Ci0gICAgICAgIG1fbGFz
dE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wID0gMDsKKyAgICAgICAgbV9sYXN0TW9tZW50dW1TY3Jv
bGxUaW1lc3RhbXAgPSAwOwogICAgIH0KIH0KIApAQCAtMTAzMyw3ICsxMDcwLDcgQEAgdm9pZCBT
Y3JvbGxBbmltYXRvck1hYzo6YmVnaW5TY3JvbGxHZXN0dXJlKCkKICAgICBtX2luU2Nyb2xsR2Vz
dHVyZSA9IHRydWU7CiAgICAgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgPSBmYWxzZTsKICAg
ICBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyA9IGZhbHNlOwotICAgIG1fbGFzdE1vbWVtdHVtU2Ny
b2xsVGltZXN0YW1wID0gMDsKKyAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IDA7
CiAgICAgbV9tb21lbnR1bVZlbG9jaXR5ID0gRmxvYXRTaXplKCk7CiAKICAgICBJbnRTaXplIHN0
cmV0Y2hBbW91bnQgPSBtX3Njcm9sbGFibGVBcmVhLT5vdmVyaGFuZ0Ftb3VudCgpOwpAQCAtMTA1
NSw4ICsxMDkyLDggQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6ZW5kU2Nyb2xsR2VzdHVyZSgp
CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kKCkKIHsKLSAgICBDRlRp
bWVJbnRlcnZhbCB0aW1lRGVsdGEgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5c3Rl
bVVwdGltZV0gLSBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcDsKLSAgICBpZiAobV9sYXN0
TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID49IHNjcm9sbFZlbG9jaXR5WmVy
b2luZ1RpbWVvdXQpCisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gW1tOU1Byb2Nlc3NJ
bmZvIHByb2Nlc3NJbmZvXSBzeXN0ZW1VcHRpbWVdIC0gbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1l
c3RhbXA7CisgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wICYmIHRpbWVEZWx0
YSA+PSBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KQogICAgICAgICBtX21vbWVudHVtVmVs
b2NpdHkgPSBGbG9hdFNpemUoKTsKIAogICAgIG1faW5TY3JvbGxHZXN0dXJlID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA0NTE1Zjc3Li5jOTM3
NjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE5MzAs
NiArMTkzMCwxOSBAQCBib29sIFJlbmRlckxheWVyOjpzY3JvbGxzT3ZlcmZsb3coKSBjb25zdAog
ICAgIHJldHVybiB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+c2Nyb2xsc092ZXJmbG93KCk7CiB9
CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFy
KiBzY3JvbGxiYXIpCit7CisgICAgbV9yZW5kZXJlci0+ZG9jdW1lbnQoKS0+ZGlkQWRkV2hlZWxF
dmVudEhhbmRsZXIoKTsKKyAgICBTY3JvbGxhYmxlQXJlYTo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9s
bGJhcihzY3JvbGxiYXIpOworfQorCit2b2lkIFJlbmRlckxheWVyOjp3aWxsUmVtb3ZlSG9yaXpv
bnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICBTY3JvbGxhYmxlQXJl
YTo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKKyAgICAvLyBGSVhN
RTogbWF5YmUgbmVlZCBhIHNlcGFyYXRlIFNjcm9sbGFibGVBcmVhOjpkaWRSZW1vdmVIb3Jpem9u
dGFsU2Nyb2xsYmFyIGNhbGxiYWNrPworICAgIG1fcmVuZGVyZXItPmRvY3VtZW50KCktPmRpZFJl
bW92ZVdoZWVsRXZlbnRIYW5kbGVyKCk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc0hv
cml6b250YWxTY3JvbGxiYXIoYm9vbCBoYXNTY3JvbGxiYXIpCiB7CiAgICAgaWYgKGhhc1Njcm9s
bGJhciA9PSAobV9oQmFyICE9IDApKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aAppbmRleCAzMjZhMTRkLi43OGNkYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaApAQCAtMjQ3LDYgKzI0Nyw4IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IGdldFJlY3RU
b0V4cG9zZShjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCwgY29uc3QgSW50UmVjdCYgZXhwb3Nl
UmVjdCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVu
dCYgYWxpZ25ZKTsKIAogICAgIGJvb2wgc2Nyb2xsc092ZXJmbG93KCkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmly
dHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAg
IHZvaWQgc2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcihib29sKTsKICAgICB2b2lkIHNldEhhc1Zl
cnRpY2FsU2Nyb2xsYmFyKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDJi
NTY5NzAuLmUyMDJjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6b250YWxseSBz
Y3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5
cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjA3NzkKKworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERl
ZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnRJbXBsOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTMgIEJyZXR0IFdpbHNv
biAgPGJyZXR0d0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRl
eCAxZmQ1NDViLi5jMjA2OTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oCkBAIC0xOTYsNiArMTk2LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIHdpbGxSdW5Nb2RhbERpYWxvZ0R1cmluZ1BhZ2VEaXNtaXNzYWwoY29uc3QgRGlhbG9n
VHlwZSYpIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVj
dGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9
CisKIHByaXZhdGU6CiAgICAgdm9pZCBnZXRQb3B1cE1lbnVJbmZvKFdlYkNvcmU6OlBvcHVwQ29u
dGFpbmVyKiwgV2ViUG9wdXBNZW51SW5mbyopOwogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdl
YkN1cnNvckluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA5ZjNhNTY3Li44ZjRlNDVkIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25s
ZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENhbid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVj
YXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
RWZsOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENo
cm9tZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6bnVt
V2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xp
ZW50IG1ldGhvZAorCiAyMDExLTA1LTEzICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ft
c3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEVmbC5oCmluZGV4IGFhMTc5NzQuLmUwYTIwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0xNTIsNiArMTUyLDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNo
UG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6
OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KKwogICAgIEV2YXNf
T2JqZWN0KiBtX3ZpZXc7CiAgICAgS1VSTCBtX2hvdmVyZWRMaW5rVVJMOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwppbmRleCBhMWFiOWMxLi5iZThmYmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6b250YWxs
eSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFs
d2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVj
dGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZh
dWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0xMyAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oCmluZGV4IGQ0MjBhMmUuLjVkNWIxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBAIC0xNTIsNiAr
MTUyLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBleGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOwogI2VuZGlmCiAKKyAgICAgICAg
dmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxE
aXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIG51
bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBHdGtBZGp1c3RtZW50
V2F0Y2hlciBtX2FkanVzdG1lbnRXYXRjaGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9o
YWlrdS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCBhZTg5
MGJlLi41ZTY5ZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEx
LTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlm
cmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBE
ZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0wNSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50SGFpa3UuaCBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50SGFpa3UuaAppbmRleCA4YTA5N2EwLi4zMjJkMGIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKKysr
IGIvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5o
CkBAIC0xNTksNiArMTU5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBOb3Rp
ZmljYXRpb24gdGhhdCB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IGhhcyBjaGFuZ2VkLiBUaGlzIGZ1
bmN0aW9uCiAgICAgICAgIC8vIHdpbGwgYmUgY2FsbGVkIGZyZXF1ZW50bHksIHNvIGhhbmRsaW5n
IHNob3VsZCBiZSB2ZXJ5IGZhc3QuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRD
aGFuZ2UoY29uc3QgTm9kZSopOworCisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJC
YW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KHVuc2lnbmVkKSB7IH0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggNjU0OGRiOC4uNjZkNDBkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFs
bHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBh
bHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdl
ZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2Vi
Q2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwg
b2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0xMiAgUHJhdGlrIFNvbGFua2kg
IDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlz
dG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCmluZGV4IDBlY2I5ZjIuLjNkMWIzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODIsNiArMTgyLDEwIEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2aXJ0dWFsIHZvaWQgc2hv
d0NvbnRleHRNZW51KCk7CiAjZW5kaWYKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxF
dmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisgICAgCisgICAgdmlydHVhbCBib29s
IHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiBwcml2YXRlOgogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IGI2MmQzZDEuLjFlZjY3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhv
cml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVu
dHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6c2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9k
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6bnVtV2hlZWxFdmVudEhhbmRsZXJz
Q2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorCiAyMDEx
LTA1LTExICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgbm9ib2R5LCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggODE0YTE5Mi4uZDUy
ZWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaApAQCAtMTkyLDYgKzE5Miw5IEBAIHB1YmxpYzoKICAgICBRV2ViU2VsZWN0TWV0aG9k
KiBjcmVhdGVTZWxlY3RQb3B1cCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
Vmlld3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7Cisg
ICAgCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3Jl
OjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAKICAgICBRV2Vi
UGFnZSogbV93ZWJQYWdlOwogICAgIEtVUkwgbGFzdEhvdmVyVVJMOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmlu
ZGV4IDE2MmE1OWUuLmIxZGJiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9s
bCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFj
Y2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MDc3OQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1
bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBD
aHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTIgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFy
b2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggNGEzY2YzYi4uMTUyOWUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE4Miw2ICsxODIsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50
Kik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rp
b24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAg
dmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQor
CiBwcml2YXRlOgogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCmluZGV4IDM4MzM4OWEuLmZkMTFkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENh
bid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVl
bCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFdpbkNFLmg6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpz
aG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNs
aWVudCBtZXRob2QKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6Om51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBt
ZXRob2QKKwogMjAxMS0wNS0wNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaCBiL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAppbmRleCA5NTcwOWFl
Li4xM2M5ZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCkBAIC0xNzcsNiArMTc3LDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShX
ZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVu
c2lnbmVkKSB7IH0KKwogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0No
YW5nZUxvZwppbmRleCBlZWE2ZjZkLi4yMTMwMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFs
bHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBh
bHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6c2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6
IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorCiAyMDExLTA1LTA5ICBS
b2JpbiBEdW5uICA8cm9iaW5AYWxsZHVubi5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2V2
aW4gT2xsaXZpZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guaCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5oCmluZGV4IDBkODE0OWMuLjgyMGM4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCkBAIC0xNTIsNiArMTUyLDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9w
dXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNj
cm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBu
dW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KKwogcHJpdmF0ZToKICAg
ICB3eFdlYlZpZXcqIG1fd2ViVmlldzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2VlMjQ1Yy4uYTNlOWYy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9u
bGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJl
Y2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG91
bGRXYWl0Rm9yV2hlZWxFdmVudHMpOiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhdCBsZWFzdAor
ICAgICAgICBvbmUgd2hlZWwgZXZlbnQgaGFuZGxlcgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDogQWRkIG5ldyB2YXJpYWJsZSB0byBjYWNoZSB0aGUgY291bnQKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogU2V0
cyB0aGUgY291bnQKKworICAgICAgICBUaGUgcmVzdCBqdXN0IHByb3ZpZGVzIGFsbCB0aGUgY29u
bmVjdGlvbnMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAg
IChXS1BhZ2VTaG91bGRXYWl0Rm9yV2hlZWxFdmVudHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VVSUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVVJ
Q2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp1cGRhdGVDb3VudFdoZWVsRXZlbnRI
YW5kbGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKwogMjAxMS0wNS0xMyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDk0MWQyYzcuLmNkZWYwMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xNDYsNiArMTQ2LDEx
IEBAIFdLQmFja0ZvcndhcmRMaXN0UmVmIFdLUGFnZUdldEJhY2tGb3J3YXJkTGlzdChXS1BhZ2VS
ZWYgcGFnZVJlZikKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKHBhZ2VSZWYpLT5iYWNrRm9yd2Fy
ZExpc3QoKSk7CiB9CiAKK2Jvb2wgV0tQYWdlU2hvdWxkV2FpdEZvcldoZWVsRXZlbnRzKFdLUGFn
ZVJlZiBwYWdlUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocGFnZVJlZiktPnNob3VsZFdhaXRG
b3JXaGVlbEV2ZW50cygpOworfQorCiBXS1N0cmluZ1JlZiBXS1BhZ2VDb3B5VGl0bGUoV0tQYWdl
UmVmIHBhZ2VSZWYpCiB7CiAgICAgcmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChwYWdlUmVmKS0+
cGFnZVRpdGxlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4
IGQwMWM4MzguLjUwZjNmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmgKQEAgLTI4OCw3ICsyODgsOCBAQCBXS19FWFBPUlQgYm9vbCBXS1BhZ2VDYW5Hb0JhY2soV0tQ
YWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0oV0tQYWdlUmVmIHBhZ2UsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKTsKIFdLX0VY
UE9SVCB2b2lkIFdLUGFnZVRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbihXS1BhZ2VSZWYgcGFnZSk7
CiBXS19FWFBPUlQgV0tCYWNrRm9yd2FyZExpc3RSZWYgV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0
KFdLUGFnZVJlZiBwYWdlKTsKLQorV0tfRVhQT1JUIGJvb2wgV0tQYWdlU2hvdWxkV2FpdEZvcldo
ZWVsRXZlbnRzKFdLUGFnZVJlZiBwYWdlKTsKKyAgICAKIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBX
S1BhZ2VDb3B5VGl0bGUoV0tQYWdlUmVmIHBhZ2UpOwogCiBXS19FWFBPUlQgV0tVUkxSZWYgV0tQ
YWdlQ29weVBlbmRpbmdBUElSZXF1ZXN0VVJMKFdLUGFnZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjIzYWIxNi4uZDQ0ZWI4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMwNTQsNiArMzA1
NCwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKQogICAgIG1fbG9hZGVyQ2xpZW50LmRpZEZhaWxUb0luaXRpYWxp
emVQbHVnaW4odGhpcywgbWltZVR5cGUpOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6c2hvdWxk
V2FpdEZvcldoZWVsRXZlbnRzKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMp
CisgICAgcmV0dXJuIG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCA+IDA7CisjZWxzZQorICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9h
ZGluZ0RhdGFGb3JDdXN0b21SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZp
bGVuYW1lLCBjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQogewog
ICAgIG1fcGFnZUNsaWVudC0+ZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXByZXNlbnRh
dGlvbihzdWdnZXN0ZWRGaWxlbmFtZSwgZGF0YVJlZmVyZW5jZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjAxY2IyZS4uMDc1ZjFiMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjI2LDYgKzIyNiw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVt
KiBhZGRlZEl0ZW0sIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpOwog
ICAgIHZvaWQgc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBi
b29sJiBzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSk7CiAKKyAgICBib29sIHNob3VsZFdh
aXRGb3JXaGVlbEV2ZW50cygpIGNvbnN0OworCiAgICAgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAKICAgICBib29sIGRyYXdzQmFja2dyb3VuZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZHJhd3NCYWNrZ3JvdW5kOyB9CkBAIC02MTEsNiArNjEzLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoYm9vbCBo
YXNIb3Jpem9udGFsU2Nyb2xsYmFyLCBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKTsKICAgICB2
b2lkIGRpZENoYW5nZVNjcm9sbE9mZnNldFBpbm5pbmdGb3JNYWluRnJhbWUoYm9vbCBwaW5uZWRU
b0xlZnRTaWRlLCBib29sIHBpbm5lZFRvUmlnaHRTaWRlKTsKICAgICB2b2lkIGRpZEZhaWxUb0lu
aXRpYWxpemVQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CisgICAgdm9pZCBudW1XaGVl
bEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIGNvdW50KSB7IG1fd2hlZWxFdmVudEhhbmRs
ZXJDb3VudCA9IGNvdW50OyB9CiAKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CiAg
ICAgdm9pZCByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0qKTsKQEAgLTg2Niw2ICs4NjksOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX21haW5GcmFt
ZUhhc0hvcml6b250YWxTY3JvbGxiYXI7CiAgICAgYm9vbCBtX21haW5GcmFtZUhhc1ZlcnRpY2Fs
U2Nyb2xsYmFyOworICAgIC8vIFRoaXMgYWdncmVnYXRlZCBjb3VudCBvZiB3aGVlbCBoYW5kbGVy
cyBvbmx5IGluY2x1ZGVzIGhvcml6b250YWwgc2Nyb2xsYmFycworICAgIC8vIGFuZCBKUyB3aGVl
bCBldmVudCBoYW5kbGVycy4KKyAgICBpbnQgbV93aGVlbEV2ZW50SGFuZGxlckNvdW50OwogCiAg
ICAgYm9vbCBtX21haW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lkZTsKICAgICBib29sIG1fbWFpbkZy
YW1lSXNQaW5uZWRUb1JpZ2h0U2lkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDljZTY3NjQuLjZmMDJkMDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
NjIsNiArNjIsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZENoYW5nZVNj
cm9sbGJhcnNGb3JNYWluRnJhbWUoYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyLCBib29sIGhh
c1ZlcnRpY2FsU2Nyb2xsYmFyKQogICAgIERpZENoYW5nZVNjcm9sbE9mZnNldFBpbm5pbmdGb3JN
YWluRnJhbWUoYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyLCBib29sIGhhc1ZlcnRpY2FsU2Ny
b2xsYmFyKQogICAgIERpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oV1RGOjpTdHJpbmcgbWltZVR5
cGUpCisgICAgTnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBjb3VudCkKIAog
I2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xs
KFdlYkNvcmU6OkludFBvaW50IHBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKaW5kZXgg
NmUxMjk1NC4uMDk3ZjIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCkBAIC03Miw2ICs3
MiwxMiBAQCBlbnVtIHsKIH07CiB0eXBlZGVmIHVpbnQzMl90IFdLRnVsbFNjcmVlbktleWJvYXJk
UmVxdWVzdFR5cGU7CiAKK2VudW0geworICAgIFdLU2Nyb2xsRGlyZWN0aW9uTGVmdCwKKyAgICBX
S1Njcm9sbERpcmVjdGlvblJpZ2h0Cit9OwordHlwZWRlZiB1aW50MzJfdCBXS1Njcm9sbERpcmVj
dGlvbjsKKwogLy8gTG9hZGVyIENsaWVudAogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwg
Y29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0xNzUsNyArMTgxLDggQEAgdHlwZWRlZiB2b2lk
ICgqV0tCdW5kbGVQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjaykoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFNjcm9sbENhbGxiYWNr
KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVm
IHZvaWQgKCpXS0J1bmRsZVBhZ2VQYWludEN1c3RvbU92ZXJoYW5nQXJlYUNhbGxiYWNrKShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tHcmFwaGljc0NvbnRleHRSZWYgZ3JhcGhpY3NDb250ZXh0LCBX
S1JlY3QgaG9yaXpvbnRhbE92ZXJoYW5nLCBXS1JlY3QgdmVydGljYWxPdmVyaGFuZywgV0tSZWN0
IGRpcnR5UmVjdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIFdLU3RyaW5nUmVm
ICgqV0tCdW5kbGVQYWdlR2VuZXJhdGVGaWxlRm9yVXBsb2FkQ2FsbGJhY2spKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBvcmlnaW5hbEZpbGVQYXRoLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKLQordHlwZWRlZiBib29sICgqV0tCdW5kbGVQYWdlU2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS1Njcm9sbERpcmVjdGlv
biBzY3JvbGxEaXJlY3Rpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworICAgIAogc3RydWN0
IFdLQnVuZGxlUGFnZVVJQ2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CiAgICAgY29u
c3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjbGllbnRJbmZvOwpAQCAtMTg5LDYgKzE5Niw3IEBAIHN0cnVjdCBXS0J1bmRsZVBh
Z2VVSUNsaWVudCB7CiAgICAgV0tCdW5kbGVQYWdlUGFpbnRDdXN0b21PdmVyaGFuZ0FyZWFDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICBwYWludEN1c3RvbU92ZXJoYW5nQXJlYTsKICAg
ICBXS0J1bmRsZVBhZ2VHZW5lcmF0ZUZpbGVGb3JVcGxvYWRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEdlbmVyYXRlRmlsZUZvclVwbG9hZDsKICAgICBXS0J1bmRsZVBh
Z2VHZW5lcmF0ZUZpbGVGb3JVcGxvYWRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdlbmVyYXRlRmlsZUZvclVwbG9hZDsKKyAgICBXS0J1bmRsZVBhZ2VTaG91bGRSdWJiZXJCYW5k
SW5EaXJlY3Rpb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIHNob3VsZFJ1YmJlckJhbmRJ
bkRpcmVjdGlvbjsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudCBXS0J1
bmRsZVBhZ2VVSUNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xp
ZW50LmNwcAppbmRleCA1MzJkMDU4Li40ODgwMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZVVJQ2xpZW50LmNwcApAQCAtMTE1LDQgKzExNSw5IEBAIFN0cmluZyBJbmplY3Rl
ZEJ1bmRsZVBhZ2VVSUNsaWVudDo6Z2VuZXJhdGVGaWxlRm9yVXBsb2FkKFdlYlBhZ2UqIHBhZ2Us
IGNvbnN0IFN0CiAgICAgcmV0dXJuIGdlbmVyYXRlZEZpbGVQYXRoID8gZ2VuZXJhdGVkRmlsZVBh
dGgtPnN0cmluZygpIDogU3RyaW5nKCk7CiB9CiAKK2Jvb2wgSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJQYWdlKiBwYWdlLCBXS1Njcm9s
bERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50LnNob3Vs
ZFJ1YmJlckJhbmRJbkRpcmVjdGlvbih0b0FQSShwYWdlKSwgZGlyZWN0aW9uLCBtX2NsaWVudC5j
bGllbnRJbmZvKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJ
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKaW5kZXggNDdhNWNhOC4uZmJiYjkwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaApAQCAtNTgsNiArNTgsOCBAQCBwdWJs
aWM6CiAKICAgICBTdHJpbmcgc2hvdWxkR2VuZXJhdGVGaWxlRm9yVXBsb2FkKFdlYlBhZ2UqLCBj
b25zdCBTdHJpbmcmIG9yaWdpbmFsRmlsZVBhdGgpOwogICAgIFN0cmluZyBnZW5lcmF0ZUZpbGVG
b3JVcGxvYWQoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxGaWxlUGF0aCk7CisgICAg
CisgICAgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViUGFnZSosIFdLU2Nyb2xs
RGlyZWN0aW9uKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCmluZGV4IGZkNWVlNTUuLjRiNGViNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTc1OSw0ICs3NTksMjIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om5vdGlmeVNj
cm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgSW50UmVjdCYgc2Nyb2xsZXIKICAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Tm90aWZ5U2Nyb2xsZXJUaHVtYklz
VmlzaWJsZUluUmVjdChzY3JvbGxlclRodW1iKSk7CiB9CiAKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uIGRp
cmVjdGlvbikgY29uc3QKK3sKKyAgICBBU1NFUlQoZGlyZWN0aW9uICE9IFdlYkNvcmU6OlNjcm9s
bFVwICYmIGRpcmVjdGlvbiAhPSBXZWJDb3JlOjpTY3JvbGxEb3duKTsKKyAgICAKKyAgICBpZiAo
ZGlyZWN0aW9uID09IFdlYkNvcmU6OlNjcm9sbExlZnQpCisgICAgICAgIHJldHVybiBtX3BhZ2Ut
PmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS5zaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24obV9w
YWdlLCBXS1Njcm9sbERpcmVjdGlvbkxlZnQpOworICAgIGlmIChkaXJlY3Rpb24gPT0gV2ViQ29y
ZTo6U2Nyb2xsUmlnaHQpCisgICAgICAgIHJldHVybiBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlD
bGllbnQoKS5zaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24obV9wYWdlLCBXS1Njcm9sbERpcmVj
dGlvblJpZ2h0KTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB0cnVl
OworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdl
ZCh1bnNpZ25lZCBjb3VudCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6TnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChjb3VudCkpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDkwMzhlYWYuLmQwMDE3YmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjE4LDYgKzIxOCw5IEBAIHByaXZhdGU6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsZXJU
aHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdmlydHVh
bCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rp
b24pIGNvbnN0OworICAgIAorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKHVuc2lnbmVkKTsKIAogICAgIFN0cmluZyBtX2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0
YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWU7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTI1Mjg4My4u
NDEwN2MzZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4n
dCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwg
ZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKTogU2V0IG5ldyBkZWZhdWx0IG1ldGhv
ZCB0byBuaWwuCisKIDIwMTEtMDUtMTMgIFpvbHRhbiBIZXJjemVnICA8emhlcmN6ZWdAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBDc2FiYSBPc3p0cm9nb27DoWMuCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZS5jcHAKaW5kZXggMmExZjg1ZC4uYjc5YmU0ZCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcApAQCAtMjI1LDYgKzIyNSw3IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRC
dW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogICAgICAgICAwLCAvKnBhaW50Q3VzdG9t
T3ZlcmhhbmdBcmVhKi8KICAgICAgICAgMCwgLypzaG91bGRHZW5lcmF0ZUZpbGVGb3JVcGxvYWQq
LwogICAgICAgICAwLCAvKmdlbmVyYXRlRmlsZUZvclVwbG9hZCovCisgICAgICAgIDAsIC8qc2hv
dWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKi8KICAgICB9OwogICAgIFdLQnVuZGxlUGFnZVNldFVJ
Q2xpZW50KG1fcGFnZSwgJnVpQ2xpZW50KTsKIAotLSAKMS43LjQuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93558</attachid>
            <date>2011-05-14 11:07:13 -0700</date>
            <delta_ts>2011-05-14 14:04:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>OpenSource.patch</filename>
            <type>text/plain</type>
            <size>63605</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBlOGQ4OWRmZTE3ZmQ5YmUzM2E1Y2NjNzliZDQzOTE0YmQ4MDdhNzZkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTYXQs
IDE0IE1heSAyMDExIDAxOjQwOjEzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQ2FuJ3QgaG9yaXpv
bnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsCiBldmVudHMg
YXJlIGFsd2F5cyBhY2NlcHRlZAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNzc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoK
KiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogSW5pdGlh
bGl6ZSB3aGVlbCBldmVudCBoYW5kbGVyIGNvdW50CihXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQWRk
V2hlZWxFdmVudEhhbmRsZXIpOiBJbmNyZW1lbnQgY291bnQsIGFuZCB0ZWxsIHRoZSBtYWluIGZy
YW1lCnRvIHJlY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2Ygd2hlZWwgZXZlbnQgaGFuZGxl
cnMgaW4gYWxsIG9mIGl0cyBmcmFtZXMnIGRvY3VtZW50cwooV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
ZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKKiBk
b20vRG9jdW1lbnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlckNvdW50
KTogQWNjZXNzIHRoZSBjb3VudAoqIGRvbS9Ob2RlLmNwcDoKKFdlYkNvcmU6OnRyeUFkZEV2ZW50
TGlzdGVuZXIpOiBJZiB0aGUgZXZlbnQgbGlzdGVuZXIgaXMgYSBtb3VzZSB3aGVlbCBldmVudCwg
dGhlbgp0ZWxsIHRoZSBkb2N1bWVudCB0byBpbmNyZW1lbnQgaXRzIGNvdW50CihXZWJDb3JlOjp0
cnlSZW1vdmVFdmVudExpc3RlbmVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKCiogcGFn
ZS9DaHJvbWVDbGllbnQuaDogVHdvIG5ldyBtZXRob2RzOgogIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQ6IFdlYlByb2Nlc3MgdGVsbHMgVUlQcm9jZXNzIHRvIHVwZGF0ZSBpdHMgY2FjaGVk
CiAgICBjb3VudCBvZiB0b3RhbCB3aGVlbCBldmVudCBoYW5kbGVycywgd2hpY2ggaW4gdGhpcyBj
YXNlIG9ubHkgaW5jbHVkZSBob3Jpem9udGFsCiAgICBzY3JvbGxiYXJzIGFuZCBtb3VzZSB3aGVl
bCBKUyBoYW5kbGVycwogIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbjogYWxsb3cgdGhlIFVJ
UHJvY2VzcyB0byBwcm92aWRlIHNvbWUgY29udHJvbCBvdmVyCiAgICB3aGV0aGVyIHJ1YmJlciBi
YW5kaW5nIGlzIGFsbG93ZWQgd2hlbiBzY3JvbGxpbmcgaW4gYSBwYXJ0aWN1bGFyIGRpcmVjdGlv
bgoqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpu
dW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBlbXB0eSBpbXBsCihXZWJDb3Jl
OjpFbXB0eUNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVs
dCBlbXB0eSBpbXBsCiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgooV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogUmVtb3ZlIGEgcmVkdW5kYW50IHBvaW50ZXIgY2hlY2sK
KiBwYWdlL0ZyYW1lLmNwcDoKKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1bWVudCk6IFdoZW4gdGhl
IGZyYW1lJ3MgZG9jdW1lbnQgY2hhbmdlcywgY2FsY3VsYXRlIHRoYXQKZG9jdW1lbnQncyB0b3Rh
bCB3aGVlbCBldmVudCBoYW5kbGVycywgYW5kIG5vdGlmeSB0aGUgVUlQcm9jZXNzCihXZWJDb3Jl
OjpGcmFtZTo6bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQp
OiBQZXJmb3JtcyBhIGNyYXdsCm9mIHRoZSBmcmFtZSB0cmVlIHRvIGFnZ3JlZ2F0ZSB0aGUgY291
bnQKKFdlYkNvcmU6OnN1bVRvdGFsV2hlZWxFdmVudEhhbmRsZXJzKTogSGVscGVyIGZ1bmN0aW9u
CiogcGFnZS9GcmFtZS5oOgoKKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOiBWaXJ0dWFsaXpl
IGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIgYW5kCndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xs
YmFyIGZvciBvdmVycmlkaW5nIGluIFJlbmRlckxheWVyIGFuZCBGcmFtZVZpZXcKKFdlYkNvcmU6
OlNjcm9sbGFibGVBcmVhOjppc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTGVmdCk6IFJldHVy
bnMgdHJ1ZSBpZiB0aGVyZSBpcwpubyBzY3JvbGxiYXIgb3IgdGhlIHNjcm9sbGVyIHBvc2l0aW9u
IGlzIGluIHRoZSBtaW5pbXVtIHNjcm9sbCBwb3NpdGlvbi4KKFdlYkNvcmU6OlNjcm9sbGFibGVB
cmVhOjppc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvUmlnaHQpOiBDb252ZXJzZSBvZiB0aGUg
YWJvdmUuCihXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKTogRGVmYXVsdCBpbXBsCiogcGFnZS9GcmFtZVZpZXcuY3BwOgooV2ViQ29yZTo6RnJhbWVW
aWV3OjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKTogVXBkYXRlcyB0aGUgZnJhbWUncyBkb2N1
bWVudCdzIGNvdW50CihXZWJDb3JlOjpGcmFtZVZpZXc6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Ny
b2xsYmFyKTogVXBkYXRlcyB0aGUgZnJhbWUncyBkb2N1bWVudCdzCmNvdW50CihXZWJDb3JlOjpG
cmFtZVZpZXc6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IENvbm5lY3RpdmUgZ2x1ZQoq
IHBhZ2UvRnJhbWVWaWV3Lmg6IEFkZGluZyBvdmVycmlkaW5nIG1ldGhvZHMgZnJvbSBTY3JvbGxh
YmxlQXJlYQoqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6IFNpbWlsYXIgZnVuY3Rpb25hbGl0
eSB0byBGcmFtZVZpZXcKKFdlYkNvcmU6OlJlbmRlckxheWVyOjpkaWRBZGRIb3Jpem9udGFsU2Ny
b2xsYmFyKToKKFdlYkNvcmU6OlJlbmRlckxheWVyOjp3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9s
bGJhcik6CiogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CgoqIHBsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5tbTogVXBkYXRlIGxvZ2ljIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIGFjY2Vw
dAp0aGUgd2hlZWwgZXZlbnQuIEFsc28sIGZpeCBhIGZldyBzcGVsbGluZyBlcnJvcnMgb2YgdGhl
IHdvcmQgIm1vbWVudHVtIi4KKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpoYW5kbGVXaGVl
bEV2ZW50KToKCiogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmg6IEZpeCB0eXBvIG9m
ICJtb21lbnR1bSIKKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CihXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBGaXggdHlwbyBvZiAibW9t
ZW50dW0iCihXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50
KTogRml4IHR5cG8gb2YgImNvYWxlc2NlZCIKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpi
ZWdpblNjcm9sbEdlc3R1cmUpOiBGaXggdHlwbyBvZiAiY29hbGVzY2VkIgooV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kKTogRml4IHR5cG8gb2YgIm1vbWVudHVtIgoK
KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogTmV3IGxvZ2lj
IGZvciBkZXRlcm1pbmluZyB3aGV0aGVyCnRvIGFsbG93IHJ1YmJlci1iYW5kaW5nIGJhc2VkIG9u
IHRoZSBhcmVhJ3Mgc2Nyb2xsIHBvc2l0aW9uIGFuZCB0aGUgd2hlZWwgZXZlbnQuCkNvdWxkIHBy
ZXZlbnQgYWNjZXB0aW5nIHRoZSB3aGVlbCBldmVudC4gQWxzbywgZml4IHR5cG8gb2YgIm1vbWVu
dHVtIgooV2ViQ29yZTo6aG9yaXpvbnRhbFNjcm9sbFBvc2l0aW9uSXNQYXN0TWluaW11bSk6IElu
bGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCihXZWJDb3JlOjpob3Jpem9udGFsU2Nyb2xs
UG9zaXRpb25Jc1Bhc3RNYXhpbXVtKTogSW5saW5lIGhlbHBlciBmdW5jdGlvbiBmb3IgbG9naWMK
KFdlYkNvcmU6OmlzU2Nyb2xsaW5nTGVmdEFuZFNob3VsZE5vdFJ1YmJlckJhbmQpOiBJbmxpbmUg
aGVscGVyIGZ1bmN0aW9uIGZvciBsb2dpYwooV2ViQ29yZTo6aXNTY3JvbGxpbmdSaWdodEFuZFNo
b3VsZE5vdFJ1YmJlckJhbmQpOiBJbmxpbmUgaGVscGVyIGZ1bmN0aW9uIGZvciBsb2dpYwoKU291
cmNlL1dlYktpdC9jaHJvbWl1bToKCiogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKFdlYktpdDo6
Q2hyb21lQ2xpZW50SW1wbDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9t
ZUNsaWVudCBtZXRob2QKClNvdXJjZS9XZWJLaXQvZWZsOgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6c2hvdWxkUnViYmVyQmFu
ZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihX
ZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBE
ZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKClNvdXJjZS9XZWJLaXQvZ3Rr
OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENo
cm9tZUNsaWVudCBtZXRob2QKKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFu
ZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpT
b3VyY2UvV2ViS2l0L2hhaWt1OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5o
OgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAooV2ViQ29yZTo6Q2hy
b21lQ2xpZW50SGFpa3U6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGlt
cGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKClNvdXJjZS9XZWJLaXQvbWFjOgoKKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKFdlYkNocm9tZUNsaWVudDo6bnVtV2hlZWxF
dmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1l
dGhvZAooV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZh
dWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKClNvdXJjZS9XZWJLaXQvcXQ6Cgoq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJv
bWVDbGllbnQgbWV0aG9kCihXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6bnVtV2hlZWxFdmVudEhh
bmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoK
U291cmNlL1dlYktpdC93aW46CgoqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgoo
V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGlt
cGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKFdlYkNocm9tZUNsaWVudDo6bnVtV2hlZWxF
dmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1l
dGhvZAoKU291cmNlL1dlYktpdC93aW5jZToKCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuaDoKKFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6OnNob3VsZFJ1YmJlckJhbmRJbkRp
cmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAooV2ViS2l0
OjpDaHJvbWVDbGllbnRXaW5DRTo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1
bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC93eDoKCiog
V2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6
OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAooV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6Om51bVdoZWVsRXZlbnRIYW5k
bGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKClNv
dXJjZS9XZWJLaXQyOgoKKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzaG91bGRXYWl0Rm9yV2hlZWxFdmVudHMpOiBSZXR1cm4gdHJ1ZSBpZiB0aGVy
ZSBpcyBhdCBsZWFzdApvbmUgd2hlZWwgZXZlbnQgaGFuZGxlcgoqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDogQWRkIG5ldyB2YXJpYWJsZSB0byBjYWNoZSB0aGUgY291bnQKKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogU2V0cyB0aGUgY291bnQK
ClRoZSByZXN0IGp1c3QgcHJvdmlkZXMgYWxsIHRoZSBjb25uZWN0aW9ucy4KKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcDoKKFdLUGFnZVNob3VsZFdhaXRGb3JXaGVlbEV2ZW50cyk6CiogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5oOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcDoK
KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRp
cmVjdGlvbik6CiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VV
SUNsaWVudC5oOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cDoKKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24p
OgooV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnVwZGF0ZUNvdW50V2hlZWxFdmVudEhhbmRsZXJz
KToKKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgoKVG9vbHM6
CgoqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cDoKKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOiBTZXQgbmV3
IGRlZmF1bHQgbWV0aG9kIHRvIG5pbC4KLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNzQgKysrKysrKysrKysrKysrKwogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysKIFNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyAr
KwogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDE1ICsrKy0KIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAg
ICAgIHwgICAgNCArCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oICAgICAgICAg
ICAgICAgICB8ICAgIDMgKwogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwICAg
ICAgICAgICAgICAgfCAgICAzICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTggKysrKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
aCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgICAgICAgICAgICAgICAgICB8ICAgMjQgKysrKysKIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmggICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oICAgICAgICAgICB8ICAgIDkgKystCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaCAgICB8ICAgIDYgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSAgIHwgICA5
MiArKysrKysrKysrKysrKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwICAgICAgICAgICB8ICAgMTMgKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaCAgICAgICAgICAgICB8ICAgIDIgKwogU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKwogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIHwgICAgMyArCiBTb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysr
CiBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCB8ICAg
IDMgKwogU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
fCAgIDExICsrKwogLi4uL2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1Lmgg
ICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIHwgICAgNCArCiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrCiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmggICB8ICAgIDMgKwogU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKwogU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggfCAgICAzICsKIFNvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysKIC4uLi93
aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oICAgICAgIHwgICAgMyArCiBT
b3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEg
KysrCiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCAgICB8
ICAgIDMgKwogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDI3ICsrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5j
cHAgICAgICAgICAgfCAgICA1ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuaCAgICAgICAgICAgIHwgICAgMyArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgICAgICAgICAgfCAgICA5ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggICAgICAgICAgICB8ICAgIDYgKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gIHwgICAgMSArCiAuLi4vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaCB8ICAgMTAgKystCiAuLi4vSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwICB8ICAgIDUgKwogLi4uL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggICAgfCAgICAyICsKIC4u
Li9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgIHwgICAxOCAr
KysrCiAuLi4vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCAgICB8
ICAgIDMgKwogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDEwICsrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCAg
ICAgICAgICB8ICAgIDEgKwogNDcgZmlsZXMgY2hhbmdlZCwgNDg3IGluc2VydGlvbnMoKyksIDM0
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYjA0YWE4Li42NzFmZTljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNzcgQEAKKzIwMTEtMDUtMTQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0
IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBl
dmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOiBJbml0aWFsaXplIHdoZWVsIGV2
ZW50IGhhbmRsZXIgY291bnQKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRBZGRXaGVl
bEV2ZW50SGFuZGxlcik6IEluY3JlbWVudCBjb3VudCwgYW5kIHRlbGwgdGhlIG1haW4gZnJhbWUK
KyAgICAgICAgdG8gcmVjYWxjdWxhdGUgdGhlIHRvdGFsIG51bWJlciBvZiB3aGVlbCBldmVudCBo
YW5kbGVycyBpbiBhbGwgb2YgaXRzIGZyYW1lcycgZG9jdW1lbnRzCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6ZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIpOiBSZXZlcnNlIG9mIHByZXZp
b3VzIG1ldGhvZAorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OndoZWVsRXZlbnRIYW5kbGVyQ291bnQpOiBBY2Nlc3MgdGhlIGNvdW50CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJ5QWRkRXZlbnRMaXN0ZW5l
cik6IElmIHRoZSBldmVudCBsaXN0ZW5lciBpcyBhIG1vdXNlIHdoZWVsIGV2ZW50LCB0aGVuCisg
ICAgICAgIHRlbGwgdGhlIGRvY3VtZW50IHRvIGluY3JlbWVudCBpdHMgY291bnQKKyAgICAgICAg
KFdlYkNvcmU6OnRyeVJlbW92ZUV2ZW50TGlzdGVuZXIpOiBSZXZlcnNlIG9mIHByZXZpb3VzIG1l
dGhvZAorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogVHdvIG5ldyBtZXRob2RzOgor
ICAgICAgICAgIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQ6IFdlYlByb2Nlc3MgdGVsbHMg
VUlQcm9jZXNzIHRvIHVwZGF0ZSBpdHMgY2FjaGVkCisgICAgICAgICAgICBjb3VudCBvZiB0b3Rh
bCB3aGVlbCBldmVudCBoYW5kbGVycywgd2hpY2ggaW4gdGhpcyBjYXNlIG9ubHkgaW5jbHVkZSBo
b3Jpem9udGFsCisgICAgICAgICAgICBzY3JvbGxiYXJzIGFuZCBtb3VzZSB3aGVlbCBKUyBoYW5k
bGVycworICAgICAgICAgIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbjogYWxsb3cgdGhlIFVJ
UHJvY2VzcyB0byBwcm92aWRlIHNvbWUgY29udHJvbCBvdmVyCisgICAgICAgICAgICB3aGV0aGVy
IHJ1YmJlciBiYW5kaW5nIGlzIGFsbG93ZWQgd2hlbiBzY3JvbGxpbmcgaW4gYSBwYXJ0aWN1bGFy
IGRpcmVjdGlvbgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTog
RGVmYXVsdCBlbXB0eSBpbXBsCisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBlbXB0eSBpbXBsCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
OjpoYW5kbGVXaGVlbEV2ZW50KTogUmVtb3ZlIGEgcmVkdW5kYW50IHBvaW50ZXIgY2hlY2sKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1
bWVudCk6IFdoZW4gdGhlIGZyYW1lJ3MgZG9jdW1lbnQgY2hhbmdlcywgY2FsY3VsYXRlIHRoYXQK
KyAgICAgICAgZG9jdW1lbnQncyB0b3RhbCB3aGVlbCBldmVudCBoYW5kbGVycywgYW5kIG5vdGlm
eSB0aGUgVUlQcm9jZXNzCisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6bm90aWZ5Q2hyb21lQ2xp
ZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQpOiBQZXJmb3JtcyBhIGNyYXdsCisgICAg
ICAgIG9mIHRoZSBmcmFtZSB0cmVlIHRvIGFnZ3JlZ2F0ZSB0aGUgY291bnQKKyAgICAgICAgKFdl
YkNvcmU6OnN1bVRvdGFsV2hlZWxFdmVudEhhbmRsZXJzKTogSGVscGVyIGZ1bmN0aW9uCisgICAg
ICAgICogcGFnZS9GcmFtZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aDogVmlydHVhbGl6ZSBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyIGFuZAorICAgICAgICB3aWxs
UmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhciBmb3Igb3ZlcnJpZGluZyBpbiBSZW5kZXJMYXllciBh
bmQgRnJhbWVWaWV3CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNIb3Jpem9u
dGFsU2Nyb2xsZXJQaW5uZWRUb0xlZnQpOiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMKKyAgICAg
ICAgbm8gc2Nyb2xsYmFyIG9yIHRoZSBzY3JvbGxlciBwb3NpdGlvbiBpcyBpbiB0aGUgbWluaW11
bSBzY3JvbGwgcG9zaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNI
b3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb1JpZ2h0KTogQ29udmVyc2Ugb2YgdGhlIGFib3ZlLgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVj
dGlvbik6IERlZmF1bHQgaW1wbAorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6IFVwZGF0
ZXMgdGhlIGZyYW1lJ3MgZG9jdW1lbnQncyBjb3VudAorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3Ojp3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcik6IFVwZGF0ZXMgdGhlIGZyYW1lJ3Mg
ZG9jdW1lbnQncworICAgICAgICBjb3VudAorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpz
aG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBDb25uZWN0aXZlIGdsdWUKKyAgICAgICAgKiBw
YWdlL0ZyYW1lVmlldy5oOiBBZGRpbmcgb3ZlcnJpZGluZyBtZXRob2RzIGZyb20gU2Nyb2xsYWJs
ZUFyZWEKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOiBTaW1pbGFyIGZ1bmN0
aW9uYWxpdHkgdG8gRnJhbWVWaWV3CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZGlk
QWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1t
OiBVcGRhdGUgbG9naWMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gYWNjZXB0CisgICAgICAgIHRo
ZSB3aGVlbCBldmVudC4gQWxzbywgZml4IGEgZmV3IHNwZWxsaW5nIGVycm9ycyBvZiB0aGUgd29y
ZCAibW9tZW50dW0iLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmhhbmRs
ZVdoZWVsRXZlbnQpOiAKKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLmg6IEZpeCB0eXBvIG9mICJtb21lbnR1bSIKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBGaXggdHlwbyBvZiAibW9tZW50dW0iCisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KTogRml4
IHR5cG8gb2YgImNvYWxlc2NlZCIKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFj
OjpiZWdpblNjcm9sbEdlc3R1cmUpOiBGaXggdHlwbyBvZiAiY29hbGVzY2VkIgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kKTogRml4IHR5cG8gb2Yg
Im1vbWVudHVtIgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFj
OjpoYW5kbGVXaGVlbEV2ZW50KTogTmV3IGxvZ2ljIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyCisg
ICAgICAgIHRvIGFsbG93IHJ1YmJlci1iYW5kaW5nIGJhc2VkIG9uIHRoZSBhcmVhJ3Mgc2Nyb2xs
IHBvc2l0aW9uIGFuZCB0aGUgd2hlZWwgZXZlbnQuCisgICAgICAgIENvdWxkIHByZXZlbnQgYWNj
ZXB0aW5nIHRoZSB3aGVlbCBldmVudC4gQWxzbywgZml4IHR5cG8gb2YgIm1vbWVudHVtIgorICAg
ICAgICAoV2ViQ29yZTo6aG9yaXpvbnRhbFNjcm9sbFBvc2l0aW9uSXNQYXN0TWluaW11bSk6IElu
bGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCisgICAgICAgIChXZWJDb3JlOjpob3Jpem9u
dGFsU2Nyb2xsUG9zaXRpb25Jc1Bhc3RNYXhpbXVtKTogSW5saW5lIGhlbHBlciBmdW5jdGlvbiBm
b3IgbG9naWMKKyAgICAgICAgKFdlYkNvcmU6OmlzU2Nyb2xsaW5nTGVmdEFuZFNob3VsZE5vdFJ1
YmJlckJhbmQpOiBJbmxpbmUgaGVscGVyIGZ1bmN0aW9uIGZvciBsb2dpYworICAgICAgICAoV2Vi
Q29yZTo6aXNTY3JvbGxpbmdSaWdodEFuZFNob3VsZE5vdFJ1YmJlckJhbmQpOiBJbmxpbmUgaGVs
cGVyIGZ1bmN0aW9uIGZvciBsb2dpYworCiAyMDExLTA1LTEzICBEYW5pZWwgQ2hlbmcgIDxkY2hl
bmdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAppbmRleCBkNTZiMjJhLi4xNDZjYmY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTQyMiw2ICs0MjIsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZy
YW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgLCBt
X3dyaXRpbmdNb2RlU2V0T25Eb2N1bWVudEVsZW1lbnQoZmFsc2UpCiAgICAgLCBtX3dyaXRlUmVj
dXJzaW9uSXNUb29EZWVwKGZhbHNlKQogICAgICwgbV93cml0ZVJlY3Vyc2lvbkRlcHRoKDApCisg
ICAgLCBtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQoMCkKIHsKICAgICBtX2RvY3VtZW50ID0gdGhp
czsKIApAQCAtNTA3MSw0ICs1MDcyLDIxIEBAIFBhc3NSZWZQdHI8VG91Y2hMaXN0PiBEb2N1bWVu
dDo6Y3JlYXRlVG91Y2hMaXN0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdAogfQogI2VuZGlmCiAKK3Zv
aWQgRG9jdW1lbnQ6OmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKCkKK3sKKyAgICArK21fd2hlZWxF
dmVudEhhbmRsZXJDb3VudDsKKyAgICBGcmFtZSogbWFpbkZyYW1lID0gcGFnZSgpID8gcGFnZSgp
LT5tYWluRnJhbWUoKSA6IDA7CisgICAgaWYgKG1haW5GcmFtZSkKKyAgICAgICAgbWFpbkZyYW1l
LT5ub3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpOworfQor
Cit2b2lkIERvY3VtZW50OjpkaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigpCit7CisgICAgQVNT
RVJUKG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCA+IDApOworICAgIC0tbV93aGVlbEV2ZW50SGFu
ZGxlckNvdW50OworICAgIEZyYW1lKiBtYWluRnJhbWUgPSBwYWdlKCkgPyBwYWdlKCktPm1haW5G
cmFtZSgpIDogMDsKKyAgICBpZiAobWFpbkZyYW1lKQorICAgICAgICBtYWluRnJhbWUtPm5vdGlm
eUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggOTUwNTFiZi4uZjVhOTdi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEwOTcsNiArMTA5NywxMSBAQCBwdWJsaWM6CiAK
ICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3kqIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpIHsgcmV0
dXJuIG1fY29udGVudFNlY3VyaXR5UG9saWN5LmdldCgpOyB9CiAKKyAgICAvLyBVc2VkIHRvIGtl
ZXAgdHJhY2sgb2YgaG9yaXpvbnRhbCBzY3JvbGxiYXJzIGFuZCBvbm1vdXNld2hlZWwgZXZlbnQg
aGFuZGxlcnMgb25seS4KKyAgICB1bnNpZ25lZCB3aGVlbEV2ZW50SGFuZGxlckNvdW50KCkgY29u
c3QgeyByZXR1cm4gbV93aGVlbEV2ZW50SGFuZGxlckNvdW50OyB9CisgICAgdm9pZCBkaWRBZGRX
aGVlbEV2ZW50SGFuZGxlcigpOworICAgIHZvaWQgZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIo
KTsKKyAgICAKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBi
b29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTM5Myw2ICsxMzk4LDggQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+IG1fbWVkaWFRdWVyeU1hdGNoZXI7CiAg
ICAgYm9vbCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwOwogICAgIHVuc2lnbmVkIG1fd3JpdGVS
ZWN1cnNpb25EZXB0aDsKKyAgICAKKyAgICB1bnNpZ25lZCBtX3doZWVsRXZlbnRIYW5kbGVyQ291
bnQ7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgT3duUHRyPFNj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcj4gbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKaW5kZXggYzk1OTdmYi4uMWE1NjBmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApA
QCAtMjgsNiArMjgsOCBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJB
dHRyLmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5j
bHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAi
Q1NTUnVsZS5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCkBAIC0yNjQxLDkgKzI2NDMsMTIg
QEAgc3RhdGljIGlubGluZSBib29sIHRyeUFkZEV2ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9k
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBldmUKICAgICBpZiAoIXRhcmdldE5vZGUtPkV2ZW50VGFy
Z2V0OjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGFy
Z2V0Tm9kZS0+ZG9jdW1lbnQoKSkKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGFyZ2V0
Tm9kZS0+ZG9jdW1lbnQoKSkgewogICAgICAgICBkb2N1bWVudC0+YWRkTGlzdGVuZXJUeXBlSWZO
ZWVkZWQoZXZlbnRUeXBlKTsKLQorICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS5tb3VzZXdoZWVsRXZlbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+ZGlkQWRkV2hlZWxFdmVu
dEhhbmRsZXIoKTsKKyAgICB9CisgICAgICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0y
Njg4LDcgKzI2OTMsMTEgQEAgc3RhdGljIGlubGluZSBib29sIHRyeVJlbW92ZUV2ZW50TGlzdGVu
ZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJgogCiAgICAgLy8gRklYTUU6
IE5vdGlmeSBEb2N1bWVudCB0aGF0IHRoZSBsaXN0ZW5lciBoYXMgdmFuaXNoZWQuIFdlIG5lZWQg
dG8ga2VlcCB0cmFjayBvZiBhIG51bWJlciBvZgogICAgIC8vIGxpc3RlbmVycyBmb3IgZWFjaCB0
eXBlLCBub3QganVzdCBhIGJvb2wgLSBzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMzODYxCi0KKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGFyZ2V0Tm9k
ZS0+ZG9jdW1lbnQoKSkgeworICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5t
b3VzZXdoZWVsRXZlbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+ZGlkUmVtb3ZlV2hlZWxFdmVu
dEhhbmRsZXIoKTsKKyAgICB9CisgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBhYTJmYzljLi5mMzIwNGRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0yMjMsNiArMjIzLDEwIEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZpcnR1YWwgdm9pZCBuZWVkVG91Y2hFdmVudHMo
Ym9vbCkgeyB9CiAjZW5kaWYKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhh
bmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisgICAgCisgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiB9OwogCiBjbGFzcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVi
bGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4
IDg5NDE4NDUuLjlhMGZkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTcw
LDYgKzE3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHNl
dFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVjdGlvbikgPSAwOwogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0ID0gMDsKIAogI2lm
IEVOQUJMRShEQVRBQkFTRSkKICAgICAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VR
dW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKSA9IDA7CkBAIC0zMjAsNiAr
MzIxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9OwogICAgICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFJ1bk1vZGFsRGlhbG9nRHVyaW5nUGFnZURpc21pc3NhbChjb25zdCBEaWFsb2dU
eXBlJikgY29uc3QgeyB9CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5k
bGVyc0NoYW5nZWQodW5zaWduZWQpID0gMDsKKyAgICAgICAgCiAgICAgcHJvdGVjdGVkOgogICAg
ICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCmluZGV4IGQ0MTVlZTAuLjE0NjIyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTIxMzYsMTAgKzIxMzYsMTEgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogICAgIGlmIChlLmlz
QWNjZXB0ZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAvLyBXZSBkbyBhbm90aGVy
IGNoZWNrIG9uIHRoZSBmcmFtZSB2aWV3IGJlY2F1c2UgdGhlIGV2ZW50IGhhbmRsZXIgY2FuIHJ1
biBKUyB3aGljaCByZXN1bHRzIGluIHRoZSBmcmFtZSBnZXR0aW5nIGRlc3Ryb3llZC4KICAgICB2
aWV3ID0gbV9mcmFtZS0+dmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotCisgICAgCiAgICAgdmlldy0+d2hlZWxFdmVudChlKTsKICAgICByZXR1cm4gZS5pc0Fj
Y2VwdGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDNhOGQzYjUuLmEzZmMxY2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0zMDksOCArMzA5LDExIEBAIHZvaWQgRnJhbWU6OnNldERv
Y3VtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnQ+IG5ld0RvYykKICAgICAvLyBVcGRhdGUgdGhlIGNh
Y2hlZCAnZG9jdW1lbnQnIHByb3BlcnR5LCB3aGljaCBpcyBub3cgc3RhbGUuCiAgICAgbV9zY3Jp
cHQudXBkYXRlRG9jdW1lbnQoKTsKIAotICAgIGlmIChtX3BhZ2UpCisgICAgaWYgKG1fcGFnZSkg
ewogICAgICAgICBtX3BhZ2UtPnVwZGF0ZVZpZXdwb3J0QXJndW1lbnRzKCk7CisgICAgICAgIGlm
IChtX3BhZ2UtPm1haW5GcmFtZSgpID09IHRoaXMpCisgICAgICAgICAgICBub3RpZnlDaHJvbWVD
bGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpOworICAgIH0KIH0KIAogI2lmIEVO
QUJMRShPUklFTlRBVElPTl9FVkVOVFMpCkBAIC0xMTE2LDQgKzExMTksMTcgQEAgdm9pZCBGcmFt
ZTo6c2NhbGVQYWdlKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luKQogICAgIH0K
IH0KIAordm9pZCBGcmFtZTo6bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3Vu
dENoYW5nZWQoKSBjb25zdAoreworICAgIC8vIEVuc3VyZSB0aGF0IHRoaXMgbWV0aG9kIGlzIGJl
aW5nIGNhbGxlZCBvbiB0aGUgbWFpbiBmcmFtZSBvZiB0aGUgcGFnZS4KKyAgICBBU1NFUlQobV9w
YWdlICYmIG1fcGFnZS0+bWFpbkZyYW1lKCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5zaWduZWQg
Y291bnQgPSAwOworICAgIGZvciAoY29uc3QgRnJhbWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZy
YW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpCisgICAgICAgIGlmIChmcmFtZS0+
ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGNvdW50ICs9IGZyYW1lLT5kb2N1bWVudCgpLT53aGVl
bEV2ZW50SGFuZGxlckNvdW50KCk7CisgICAgCisgICAgbV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50
KCktPm51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoY291bnQpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggZGVjMjJkNy4uNDRmZTQ2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaApAQCAtMjA2LDYgKzIwNiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogICAgICAgICBNZWRpYVN0cmVhbUZyYW1lQ29udHJvbGxlciog
bWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFt
RnJhbWVDb250cm9sbGVyLmdldCgpOyB9CiAjZW5kaWYKKyAgICAgICAgCisgICAgICAgIC8vIFNo
b3VsZCBvbmx5IGJlIGNhbGxlZCBvbiB0aGUgbWFpbiBmcmFtZSBvZiBhIHBhZ2UuCisgICAgICAg
IHZvaWQgbm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQoKSBj
b25zdDsKIAogICAgIC8vID09PT09PT09CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRl
eCBjNGNiYWViLi4xZWRlZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENh
Y2hlLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ1NT
U3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCkBAIC0zMDYsNiArMzA3LDIxIEBAIHZvaWQgRnJhbWVWaWV3OjpkZXRh
Y2hDdXN0b21TY3JvbGxiYXJzKCkKICAgICB9CiB9CiAKK3ZvaWQgRnJhbWVWaWV3OjpkaWRBZGRI
b3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAgIGlmIChtX2Zy
YW1lLT5kb2N1bWVudCgpKQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kaWRBZGRXaGVl
bEV2ZW50SGFuZGxlcigpOworICAgIHNjcm9sbEFuaW1hdG9yKCktPmRpZEFkZEhvcml6b250YWxT
Y3JvbGxiYXIoc2Nyb2xsYmFyKTsKK30KKwordm9pZCBGcmFtZVZpZXc6OndpbGxSZW1vdmVIb3Jp
em9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAgIHNjcm9sbEFuaW1h
dG9yKCktPndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKHNjcm9sbGJhcik7CisgICAgLy8g
RklYTUU6IG1heWJlIG5lZWQgYSBzZXBhcmF0ZSBTY3JvbGxhYmxlQXJlYTo6ZGlkUmVtb3ZlSG9y
aXpvbnRhbFNjcm9sbGJhciBjYWxsYmFjaz8KKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSkK
KyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIo
KTsKK30KKwogU2Nyb2xsYmFyT3ZlcmxheVN0eWxlIEZyYW1lVmlldzo6cmVjb21tZW5kZWRTY3Jv
bGxiYXJPdmVybGF5U3R5bGUoKSBjb25zdAogewogICAgIENvbG9yIGJnQ29sb3IgPSBtX2ZyYW1l
LT5nZXREb2N1bWVudEJhY2tncm91bmRDb2xvcigpOwpAQCAtMTQ5MCw2ICsxNTA2LDE0IEBAIHZv
aWQgRnJhbWVWaWV3OjpyZXBhaW50Rml4ZWRFbGVtZW50c0FmdGVyU2Nyb2xsaW5nKCkKICAgICB9
CiB9CiAKK2Jvb2wgRnJhbWVWaWV3OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xs
RGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKK3sKKyAgICBQYWdlKiBwYWdlID0gZnJhbWUoKSA/
IGZyYW1lKCktPnBhZ2UoKSA6IDA7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gU2Ny
b2xsVmlldzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKGRpcmVjdGlvbik7CisgICAgcmV0
dXJuIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9u
KGRpcmVjdGlvbik7Cit9CisKIEhvc3RXaW5kb3cqIEZyYW1lVmlldzo6aG9zdFdpbmRvdygpIGNv
bnN0CiB7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkgOiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggNDlhNmQ5YS4uNWI3Mzk1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCkBAIC04Miw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8U2Nyb2xsYmFyPiBjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24pOwog
CiAgICAgdmlydHVhbCBib29sIGF2b2lkU2Nyb2xsYmFyQ3JlYXRpb24oKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNTaXplKGNvbnN0IEludFNpemUmKTsKIApAQCAt
MTYwLDYgKzE2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0
IEludFBvaW50Jik7CiAgICAgdm9pZCBzY3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFQbGF0Zm9ybVdp
ZGdldCgpOwogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Rml4ZWRFbGVtZW50c0FmdGVyU2Nyb2xs
aW5nKCk7CisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3Jv
bGxEaXJlY3Rpb24pIGNvbnN0OwogCiAgICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OwogICAg
IHZvaWQgc2V0TWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNGJiZWQzZS4uOWVkMjYwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC03Myw4ICs3Myw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCB3
aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7Ci0gICAgdm9pZCBkaWRBZGRI
b3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwotICAgIHZvaWQgd2lsbFJlbW92ZUhvcml6
b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6
b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVI
b3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogCiAgICAgYm9vbCBoYXNPdmVybGF5U2Ny
b2xsYmFycygpIGNvbnN0OwogICAgIHZpcnR1YWwgU2Nyb2xsYmFyT3ZlcmxheVN0eWxlIHJlY29t
bWVuZGVkU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCkgY29uc3QgeyByZXR1cm4gU2Nyb2xsYmFyT3Zl
cmxheVN0eWxlRGVmYXVsdDsgfQpAQCAtMTMxLDYgKzEzMSwxMSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJTdHlsZUNoYW5nZWQoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3Qm
KSB7IH0KKyAgICAKKyAgICBib29sIGlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9MZWZ0KCkg
Y29uc3QgeyByZXR1cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3NpdGlvbiho
b3Jpem9udGFsU2Nyb2xsYmFyKCkpIDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLngoKTsgfQor
ICAgIGJvb2wgaXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb1JpZ2h0KCkgY29uc3QgeyByZXR1
cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3NpdGlvbihob3Jpem9udGFsU2Ny
b2xsYmFyKCkpID49IG1heGltdW1TY3JvbGxQb3NpdGlvbigpLngoKTsgfQorICAgIAorICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyb21Q
YWdlKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLmgKaW5kZXggYmZlZjk1Yi4uNmFjZjJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE0NCw4ICsxNDQsMTIgQEAgcHJp
dmF0ZToKICAgICBib29sIG1faW5TY3JvbGxHZXN0dXJlOwogICAgIGJvb2wgbV9tb21lbnR1bVNj
cm9sbEluUHJvZ3Jlc3M7CiAgICAgYm9vbCBtX2lnbm9yZU1vbWVudHVtU2Nyb2xsczsKKyAgICBi
b29sIG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPbkxlZnQ7CisgICAgYm9vbCBtX3Njcm9sbGVy
SW5pdGlhbGx5UGlubmVkT25SaWdodDsKKyAgICBpbnQgbV9hZ2dyZWdhdGVTY3JvbGw7CisgICAg
Ym9vbCBtX2RpZEFnZ3JlZ2F0ZVNjcm9sbEV2ZXJTd2l0Y2hUb09wcG9zaXRlRGlyZWN0aW9uT2ZQ
aW47CiAgICAgCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3Rh
bXA7CisgICAgQ0ZUaW1lSW50ZXJ2YWwgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXA7CiAg
ICAgRmxvYXRTaXplIG1fb3ZlcmZsb3dTY3JvbGxEZWx0YTsKICAgICBGbG9hdFNpemUgbV9zdHJl
dGNoU2Nyb2xsRm9yY2U7CiAgICAgRmxvYXRTaXplIG1fbW9tZW50dW1WZWxvY2l0eTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCA5
OTM4M2RhLi45MjBkM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCkBAIC00NTksNyArNDU5LDcgQEAgU2Nyb2xsQW5pbWF0b3JNYWM6
OlNjcm9sbEFuaW1hdG9yTWFjKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKICAgICAs
IG1faW5TY3JvbGxHZXN0dXJlKGZhbHNlKQogICAgICwgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jl
c3MoZmFsc2UpCiAgICAgLCBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyhmYWxzZSkKLSAgICAsIG1f
bGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wKDApCisgICAgLCBtX2xhc3RNb21lbnR1bVNjcm9s
bFRpbWVzdGFtcCgwKQogICAgICwgbV9zdGFydFRpbWUoMCkKICAgICAsIG1fc25hcFJ1YmJlckJh
bmRUaW1lcih0aGlzLCAmU2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kVGltZXJGaXJl
ZCkKICNlbmRpZgpAQCAtNzY0LDYgKzc2NCwxNiBAQCBzdGF0aWMgZmxvYXQgc2Nyb2xsV2hlZWxN
dWx0aXBsaWVyKCkKICAgICByZXR1cm4gbXVsdGlwbGllcjsKIH0KIAorc3RhdGljIGlubGluZSBi
b29sIGlzU2Nyb2xsaW5nTGVmdEFuZFNob3VsZE5vdFJ1YmJlckJhbmQoUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCit7CisgICAg
cmV0dXJuIHdoZWVsRXZlbnQuZGVsdGFYKCkgPiAwICYmICFzY3JvbGxhYmxlQXJlYS0+c2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbExlZnQpOworfQorCitzdGF0aWMgaW5saW5lIGJv
b2wgaXNTY3JvbGxpbmdSaWdodEFuZFNob3VsZE5vdFJ1YmJlckJhbmQoUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCit7CisgICAg
cmV0dXJuIHdoZWVsRXZlbnQuZGVsdGFYKCkgPCAwICYmICFzY3JvbGxhYmxlQXJlYS0+c2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbFJpZ2h0KTsKK30KKwogdm9pZCBTY3JvbGxBbmlt
YXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQp
CiB7CiAgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKQEAgLTc4NywxNyAr
Nzk3LDQ3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQoUGxhdGZv
cm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgICAgICAgICAgU2Nyb2xsQW5pbWF0b3I6Omhh
bmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KLSAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobV9zY3JvbGxhYmxlQXJlYS0+aG9yaXpv
bnRhbFNjcm9sbGJhcigpKSB7CisgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHNjcm9sbGJh
ciwgd2UgYWdncmVnYXRlIHRoZSB3aGVlbCBldmVudHMgdG8gZ2V0IGFuCisgICAgICAgICAgICAv
LyBvdmVyYWxsIHRyZW5kIG9mIHRoZSBzY3JvbGwuIElmIHRoZSBkaXJlY3Rpb24gb2YgdGhlIHNj
cm9sbCBpcyBldmVyCisgICAgICAgICAgICAvLyBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9m
IHRoZSBwaW4gbG9jYXRpb24sIHRoZW4gd2Ugc3dpdGNoIHRoZQorICAgICAgICAgICAgLy8gYm9v
bGVhbiwgYW5kIHJ1YmJlciBiYW5kLiBUaGF0IGlzLCBpZiB3ZSB3ZXJlIHBpbm5lZCB0byB0aGUg
bGVmdCwKKyAgICAgICAgICAgIC8vIGFuZCB3ZSBlbmRlZCB1cCBzY3JvbGxpbmcgdG8gdGhlIHJp
Z2h0LCB3ZSBydWJiZXIgYmFuZC4KKyAgICAgICAgICAgIG1fYWdncmVnYXRlU2Nyb2xsICs9IHdo
ZWVsRXZlbnQuZGVsdGFYKCk7CisgICAgICAgICAgICBpZiAobV9zY3JvbGxlckluaXRpYWxseVBp
bm5lZE9uTGVmdCAmJiBtX2FnZ3JlZ2F0ZVNjcm9sbCA8IDApCisgICAgICAgICAgICAgICAgbV9k
aWRBZ2dyZWdhdGVTY3JvbGxFdmVyU3dpdGNoVG9PcHBvc2l0ZURpcmVjdGlvbk9mUGluID0gdHJ1
ZTsKKyAgICAgICAgICAgIGlmIChtX3Njcm9sbGVySW5pdGlhbGx5UGlubmVkT25SaWdodCAmJiBt
X2FnZ3JlZ2F0ZVNjcm9sbCA+IDApCisgICAgICAgICAgICAgICAgbV9kaWRBZ2dyZWdhdGVTY3Jv
bGxFdmVyU3dpdGNoVG9PcHBvc2l0ZURpcmVjdGlvbk9mUGluID0gdHJ1ZTsKKyAgICAgICAgfQog
Ci0gICAgd2hlZWxFdmVudC5hY2NlcHQoKTsKKyAgICAgICAgLy8gQWZ0ZXIgYSBnZXN0dXJlIGJl
Z2lucywgd2UgZ28gdGhyb3VnaDoKKyAgICAgICAgLy8gMSsgUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2VOb25lCisgICAgICAgIC8vIDArIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZAorICAg
ICAgICAvLyAxIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQgaWYgdGhlcmUgd2FzIGF0IGxl
YXN0IG9uZSBjaGFuZ2VkIGV2ZW50CisgICAgICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhh
c2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUgJiYgIW1fZGlkQWdncmVnYXRlU2Ny
b2xsRXZlclN3aXRjaFRvT3Bwb3NpdGVEaXJlY3Rpb25PZlBpbikgeworICAgICAgICAgICAgaWYg
KChpc1Njcm9sbGluZ0xlZnRBbmRTaG91bGROb3RSdWJiZXJCYW5kKHdoZWVsRXZlbnQsIG1fc2Ny
b2xsYWJsZUFyZWEpICYmCisgICAgICAgICAgICAgICAgbV9zY3JvbGxlckluaXRpYWxseVBpbm5l
ZE9uTGVmdCAmJgorICAgICAgICAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPmlzSG9yaXpvbnRh
bFNjcm9sbGVyUGlubmVkVG9MZWZ0KCkpIHx8CisgICAgICAgICAgICAgICAgKGlzU2Nyb2xsaW5n
UmlnaHRBbmRTaG91bGROb3RSdWJiZXJCYW5kKHdoZWVsRXZlbnQsIG1fc2Nyb2xsYWJsZUFyZWEp
ICYmCisgICAgICAgICAgICAgICAgbV9zY3JvbGxlckluaXRpYWxseVBpbm5lZE9uUmlnaHQgJiYK
KyAgICAgICAgICAgICAgICBtX3Njcm9sbGFibGVBcmVhLT5pc0hvcml6b250YWxTY3JvbGxlclBp
bm5lZFRvUmlnaHQoKSkpIHsKKyAgICAgICAgICAgICAgICBTY3JvbGxBbmltYXRvcjo6aGFuZGxl
V2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9CiAKLSAgICBib29sIGlzTW9tZXR1bVNjcm9sbEV2ZW50
ID0gKHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpICE9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
Tm9uZSk7Ci0gICAgaWYgKG1faWdub3JlTW9tZW50dW1TY3JvbGxzICYmIChpc01vbWV0dW1TY3Jv
bGxFdmVudCB8fCBtX3NuYXBSdWJiZXJCYW5kVGltZXIuaXNBY3RpdmUoKSkpIHsKLSAgICAgICAg
aWYgKHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
RW5kZWQpCisgICAgYm9vbCBpc01vbWVudHVtU2Nyb2xsRXZlbnQgPSAod2hlZWxFdmVudC5tb21l
bnR1bVBoYXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKTsKKyAgICBpZiAobV9p
Z25vcmVNb21lbnR1bVNjcm9sbHMgJiYgKGlzTW9tZW50dW1TY3JvbGxFdmVudCB8fCBtX3NuYXBS
dWJiZXJCYW5kVGltZXIuaXNBY3RpdmUoKSkpIHsKKyAgICAgICAgaWYgKHdoZWVsRXZlbnQubW9t
ZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQpIHsKICAgICAgICAg
ICAgIG1faWdub3JlTW9tZW50dW1TY3JvbGxzID0gZmFsc2U7CisgICAgICAgICAgICB3aGVlbEV2
ZW50LmFjY2VwdCgpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICB3
aGVlbEV2ZW50LmFjY2VwdCgpOwogICAgIHNtb290aFNjcm9sbFdpdGhFdmVudCh3aGVlbEV2ZW50
KTsKIH0KIApAQCAtODgxLDExICs5MjEsMTEgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c21v
b3RoU2Nyb2xsV2l0aEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAv
LyBSZXNldCBvdmVyZmxvdyB2YWx1ZXMgYmVjYXVzZSB3ZSBtYXkgZGVjaWRlIHRvIHJlbW92ZSBk
ZWx0YSBhdCB2YXJpb3VzIHBvaW50cyBhbmQgcHV0IGl0IGludG8gb3ZlcmZsb3cuCiAgICAgbV9v
dmVyZmxvd1Njcm9sbERlbHRhID0gRmxvYXRTaXplKCk7CiAKLSAgICBmbG9hdCBldmVudENvYWxs
ZXNjZWREZWx0YVggPSAtd2hlZWxFdmVudC5kZWx0YVgoKTsKLSAgICBmbG9hdCBldmVudENvYWxs
ZXNjZWREZWx0YVkgPSAtd2hlZWxFdmVudC5kZWx0YVkoKTsKKyAgICBmbG9hdCBldmVudENvYWxl
c2NlZERlbHRhWCA9IC13aGVlbEV2ZW50LmRlbHRhWCgpOworICAgIGZsb2F0IGV2ZW50Q29hbGVz
Y2VkRGVsdGFZID0gLXdoZWVsRXZlbnQuZGVsdGFZKCk7CiAKLSAgICBkZWx0YVggKz0gZXZlbnRD
b2FsbGVzY2VkRGVsdGFYOwotICAgIGRlbHRhWSArPSBldmVudENvYWxsZXNjZWREZWx0YVk7Cisg
ICAgZGVsdGFYICs9IGV2ZW50Q29hbGVzY2VkRGVsdGFYOworICAgIGRlbHRhWSArPSBldmVudENv
YWxlc2NlZERlbHRhWTsKIAogICAgIC8vIFNsaWdodGx5IHByZWZlciBzY3JvbGxpbmcgdmVydGlj
YWxseSBieSBhcHBseWluZyB0aGUgPSBjYXNlIHRvIGRlbHRhWQogICAgIGlmIChmYWJzZihkZWx0
YVkpID49IGZhYnNmKGRlbHRhWCkpCkBAIC05MDgsMTQgKzk0OCwxNCBAQCB2b2lkIFNjcm9sbEFu
aW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVl
bEV2ZW50KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKHBoYXNlID09
IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gfHwgcGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2VDaGFuZ2VkKSkKICAgICAgICAgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgPSB0
cnVlOwogCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gd2hlZWxFdmVudC50aW1lc3Rh
bXAoKSAtIG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wOworICAgIENGVGltZUludGVydmFs
IHRpbWVEZWx0YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9s
bFRpbWVzdGFtcDsKICAgICBpZiAobV9pblNjcm9sbEdlc3R1cmUgfHwgbV9tb21lbnR1bVNjcm9s
bEluUHJvZ3Jlc3MpIHsKLSAgICAgICAgaWYgKG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1w
ICYmIHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2NpdHlaZXJvaW5nVGlt
ZW91dCkgewotICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdpZHRoKGV2ZW50Q29h
bGxlc2NlZERlbHRhWCAvIChmbG9hdCl0aW1lRGVsdGEpOwotICAgICAgICAgICAgbV9tb21lbnR1
bVZlbG9jaXR5LnNldEhlaWdodChldmVudENvYWxsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURl
bHRhKTsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxF
dmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0
YW1wICYmIHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2NpdHlaZXJvaW5n
VGltZW91dCkgeworICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdpZHRoKGV2ZW50
Q29hbGVzY2VkRGVsdGFYIC8gKGZsb2F0KXRpbWVEZWx0YSk7CisgICAgICAgICAgICBtX21vbWVu
dHVtVmVsb2NpdHkuc2V0SGVpZ2h0KGV2ZW50Q29hbGVzY2VkRGVsdGFZIC8gKGZsb2F0KXRpbWVE
ZWx0YSk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVs
RXZlbnQudGltZXN0YW1wKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RN
b21lbXR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAg
ICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1w
KCk7CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkgPSBGbG9hdFNpemUoKTsKICAgICAg
ICAgfQogCkBAIC05NjksNyArMTAwOSw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNtb290
aFNjcm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoIWFsbG93c0hvcml6b250YWxTdHJldGNoaW5nKCkp
IHsKICAgICAgICAgICAgICAgICBkZWx0YVggPSAwOwotICAgICAgICAgICAgICAgIGV2ZW50Q29h
bGxlc2NlZERlbHRhWCA9IDA7CisgICAgICAgICAgICAgICAgZXZlbnRDb2FsZXNjZWREZWx0YVgg
PSAwOwogICAgICAgICAgICAgfSBlbHNlIGlmICgoZGVsdGFYICE9IDApICYmICFpc0hvcml6b250
YWxseVN0cmV0Y2hlZCAmJiAhcGlubmVkSW5EaXJlY3Rpb24oZGVsdGFYLCAwKSkgewogICAgICAg
ICAgICAgICAgIGRlbHRhWCAqPSBzY3JvbGxXaGVlbE11bHRpcGxpZXIoKTsKIApAQCAtOTgyLDcg
KzEwMjIsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQo
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpZiAoIWFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZygpKSB7CiAgICAgICAgICAgICAgICAgZGVs
dGFZID0gMDsKLSAgICAgICAgICAgICAgICBldmVudENvYWxsZXNjZWREZWx0YVkgPSAwOworICAg
ICAgICAgICAgICAgIGV2ZW50Q29hbGVzY2VkRGVsdGFZID0gMDsKICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoKGRlbHRhWSAhPSAwKSAmJiAhaXNWZXJ0aWNhbGx5U3RyZXRjaGVkICYmICFwaW5uZWRJ
bkRpcmVjdGlvbigwLCBkZWx0YVkpKSB7CiAgICAgICAgICAgICAgICAgZGVsdGFZICo9IHNjcm9s
bFdoZWVsTXVsdGlwbGllcigpOwogCkBAIC05OTYsNyArMTAzNiw3IEBAIHZvaWQgU2Nyb2xsQW5p
bWF0b3JNYWM6OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQpCiAgICAgICAgICAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQgPSBtX3Njcm9sbGFibGVB
cmVhLT5vdmVyaGFuZ0Ftb3VudCgpOwogICAgICAgICAKICAgICAgICAgICAgIGlmIChtX21vbWVu
dHVtU2Nyb2xsSW5Qcm9ncmVzcykgewotICAgICAgICAgICAgICAgIGlmICgocGlubmVkSW5EaXJl
Y3Rpb24oZXZlbnRDb2FsbGVzY2VkRGVsdGFYLCBldmVudENvYWxsZXNjZWREZWx0YVkpIHx8IChm
YWJzZihldmVudENvYWxsZXNjZWREZWx0YVgpICsgZmFic2YoZXZlbnRDb2FsbGVzY2VkRGVsdGFZ
KSA8PSAwKSkgJiYgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXApIHsKKyAgICAgICAgICAg
ICAgICBpZiAoKHBpbm5lZEluRGlyZWN0aW9uKGV2ZW50Q29hbGVzY2VkRGVsdGFYLCBldmVudENv
YWxlc2NlZERlbHRhWSkgfHwgKGZhYnNmKGV2ZW50Q29hbGVzY2VkRGVsdGFYKSArIGZhYnNmKGV2
ZW50Q29hbGVzY2VkRGVsdGFZKSA8PSAwKSkgJiYgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3Rh
bXApIHsKICAgICAgICAgICAgICAgICAgICAgbV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgPSB0cnVl
OwogICAgICAgICAgICAgICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNl
OwogICAgICAgICAgICAgICAgICAgICBzbmFwUnViYmVyQmFuZCgpOwpAQCAtMTAyMSw3ICsxMDYx
LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KFBsYXRm
b3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICBpZiAobV9tb21lbnR1bVNjcm9sbEluUHJv
Z3Jlc3MgJiYgcGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCkgewogICAgICAg
ICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgICAgICBtX2lnbm9yZU1v
bWVudHVtU2Nyb2xscyA9IGZhbHNlOwotICAgICAgICBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVz
dGFtcCA9IDA7CisgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gMDsKICAg
ICB9CiB9CiAKQEAgLTEwMzMsOSArMTA3MywxMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpi
ZWdpblNjcm9sbEdlc3R1cmUoKQogICAgIG1faW5TY3JvbGxHZXN0dXJlID0gdHJ1ZTsKICAgICBt
X21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgIG1faWdub3JlTW9tZW50dW1T
Y3JvbGxzID0gZmFsc2U7Ci0gICAgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAgPSAwOwor
ICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gMDsKICAgICBtX21vbWVudHVtVmVs
b2NpdHkgPSBGbG9hdFNpemUoKTsKLQorICAgIG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPbkxl
ZnQgPSBtX3Njcm9sbGFibGVBcmVhLT5pc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTGVmdCgp
OworICAgIG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPblJpZ2h0ID0gbV9zY3JvbGxhYmxlQXJl
YS0+aXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb1JpZ2h0KCk7CisgICAgbV9hZ2dyZWdhdGVT
Y3JvbGwgPSAwOworICAgIG1fZGlkQWdncmVnYXRlU2Nyb2xsRXZlclN3aXRjaFRvT3Bwb3NpdGVE
aXJlY3Rpb25PZlBpbiA9IGZhbHNlOworICAgIAogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCA9
IG1fc2Nyb2xsYWJsZUFyZWEtPm92ZXJoYW5nQW1vdW50KCk7CiAgICAgbV9zdHJldGNoU2Nyb2xs
Rm9yY2Uuc2V0V2lkdGgocmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKHN0cmV0Y2hBbW91bnQu
d2lkdGgoKSkpOwogICAgIG1fc3RyZXRjaFNjcm9sbEZvcmNlLnNldEhlaWdodChyZWJvdW5kRGVs
dGFGb3JFbGFzdGljRGVsdGEoc3RyZXRjaEFtb3VudC5oZWlnaHQoKSkpOwpAQCAtMTA1NSw4ICsx
MDk5LDggQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6ZW5kU2Nyb2xsR2VzdHVyZSgpCiAKIHZv
aWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kKCkKIHsKLSAgICBDRlRpbWVJbnRl
cnZhbCB0aW1lRGVsdGEgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5c3RlbVVwdGlt
ZV0gLSBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcDsKLSAgICBpZiAobV9sYXN0TW9tZW10
dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID49IHNjcm9sbFZlbG9jaXR5WmVyb2luZ1Rp
bWVvdXQpCisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gW1tOU1Byb2Nlc3NJbmZvIHBy
b2Nlc3NJbmZvXSBzeXN0ZW1VcHRpbWVdIC0gbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXA7
CisgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wICYmIHRpbWVEZWx0YSA+PSBz
Y3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KQogICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkg
PSBGbG9hdFNpemUoKTsKIAogICAgIG1faW5TY3JvbGxHZXN0dXJlID0gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA0NTE1Zjc3Li5jOTM3NjA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE5MzAsNiArMTkz
MCwxOSBAQCBib29sIFJlbmRlckxheWVyOjpzY3JvbGxzT3ZlcmZsb3coKSBjb25zdAogICAgIHJl
dHVybiB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+c2Nyb2xsc092ZXJmbG93KCk7CiB9CiAKK3Zv
aWQgUmVuZGVyTGF5ZXI6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3Jv
bGxiYXIpCit7CisgICAgbV9yZW5kZXJlci0+ZG9jdW1lbnQoKS0+ZGlkQWRkV2hlZWxFdmVudEhh
bmRsZXIoKTsKKyAgICBTY3JvbGxhYmxlQXJlYTo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihz
Y3JvbGxiYXIpOworfQorCit2b2lkIFJlbmRlckxheWVyOjp3aWxsUmVtb3ZlSG9yaXpvbnRhbFNj
cm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICBTY3JvbGxhYmxlQXJlYTo6d2ls
bFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKKyAgICAvLyBGSVhNRTogbWF5
YmUgbmVlZCBhIHNlcGFyYXRlIFNjcm9sbGFibGVBcmVhOjpkaWRSZW1vdmVIb3Jpem9udGFsU2Ny
b2xsYmFyIGNhbGxiYWNrPworICAgIG1fcmVuZGVyZXItPmRvY3VtZW50KCktPmRpZFJlbW92ZVdo
ZWVsRXZlbnRIYW5kbGVyKCk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc0hvcml6b250
YWxTY3JvbGxiYXIoYm9vbCBoYXNTY3JvbGxiYXIpCiB7CiAgICAgaWYgKGhhc1Njcm9sbGJhciA9
PSAobV9oQmFyICE9IDApKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRl
eCAzMjZhMTRkLi43OGNkYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aApAQCAtMjQ3LDYgKzI0Nyw4IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IGdldFJlY3RUb0V4cG9z
ZShjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCwgY29uc3QgSW50UmVjdCYgZXhwb3NlUmVjdCwg
Y29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxp
Z25ZKTsKIAogICAgIGJvb2wgc2Nyb2xsc092ZXJmbG93KCkgY29uc3Q7CisgICAgdmlydHVhbCB2
b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2
b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZvaWQg
c2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcihib29sKTsKICAgICB2b2lkIHNldEhhc1ZlcnRpY2Fs
U2Nyb2xsYmFyKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDRlMDhjMTku
LjhhZGRkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6b250YWxseSBzY3JvbGwg
aWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5cyBhY2Nl
cHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3
NzkKKworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudEltcGw6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQg
aW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnRJbXBsOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9m
IG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTMgIFRhbyBCYWkgIDxtaWNoYWVs
YmFpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggMWZk
NTQ1Yi4uYzIwNjkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaApAQCAtMTk2LDYgKzE5Niw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsUnVuTW9kYWxEaWFsb2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5cGUm
KSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24o
V2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmly
dHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorCiBw
cml2YXRlOgogICAgIHZvaWQgZ2V0UG9wdXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1cENvbnRhaW5l
ciosIFdlYlBvcHVwTWVudUluZm8qKTsKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDdXJz
b3JJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggOWYzYTU2Ny4uOGY0ZTQ1ZCAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ug
d2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVD
bGllbnQgbWV0aG9kCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6Om51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBt
ZXRob2QKKwogMjAxMS0wNS0xMyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
aAppbmRleCBhYTE3OTc0Li5lMGEyMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaApAQCAtMTUyLDYgKzE1Miw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVw
TWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCisg
ICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3Jv
bGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVt
V2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisKICAgICBFdmFzX09iamVj
dCogbV92aWV3OwogICAgIEtVUkwgbV9ob3ZlcmVkTGlua1VSTDsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggNWE4YTczNC4uMTFmMjMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Ny
b2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMg
YWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYwNzc5CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24p
OiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTMgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5oCmluZGV4IGQ0MjBhMmUuLjVkNWIxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBAIC0xNTIsNiArMTUyLDkgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOwogI2VuZGlmCiAKKyAgICAgICAgdmlydHVhbCBib29s
IHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRI
YW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAgV2Vi
S2l0V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBHdGtBZGp1c3RtZW50V2F0Y2hlciBtX2Fk
anVzdG1lbnRXYXRjaGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCBhZTg5MGJlLi41ZTY5ZWE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEzICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92
ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50SGFpa3U6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQg
aW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViQ29yZTo6Q2hyb21l
Q2xpZW50SGFpa3U6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwg
b2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0wNSAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
SGFpa3UuaCBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
SGFpa3UuaAppbmRleCA4YTA5N2EwLi4zMjJkMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKKysrIGIvU291cmNlL1dl
YktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCkBAIC0xNTksNiAr
MTU5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBOb3RpZmljYXRpb24gdGhh
dCB0aGUgZ2l2ZW4gZm9ybSBlbGVtZW50IGhhcyBjaGFuZ2VkLiBUaGlzIGZ1bmN0aW9uCiAgICAg
ICAgIC8vIHdpbGwgYmUgY2FsbGVkIGZyZXF1ZW50bHksIHNvIGhhbmRsaW5nIHNob3VsZCBiZSB2
ZXJ5IGZhc3QuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBmb3JtU3RhdGVEaWRDaGFuZ2UoY29uc3Qg
Tm9kZSopOworCisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rp
b24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7
IH0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
MWIxM2U3Ny4uZjRiYWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEx
LTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlm
cmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQg
aW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9t
ZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0xMyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMGVjYjlm
Mi4uM2QxYjMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE4Miw2ICsxODIsMTAgQEAgcHVibGljOgogI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoKTsKICNl
bmRpZgorICAgIAorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KHVuc2lnbmVkKSB7IH0KKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KIHByaXZhdGU6CiAgICAgV2ViVmlldyAqbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5k
ZXggNWRkYTA4MS4uNzM0NWY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
MS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBp
ZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2Vw
dGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3
OQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBE
ZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudFF0OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTMgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI4NjQ0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaAppbmRleCA4MTRhMTkyLi5kNTJlYTdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xOTIsNiArMTky
LDkgQEAgcHVibGljOgogICAgIFFXZWJTZWxlY3RNZXRob2QqIGNyZWF0ZVNlbGVjdFBvcHVwKCkg
Y29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2Uo
Y29uc3QgVmlld3BvcnRBcmd1bWVudHMmKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KIAogICAgIFFXZWJQYWdlKiBtX3dlYlBhZ2U7CiAgICAg
S1VSTCBsYXN0SG92ZXJVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMDBlZmU4Zi4uM2Q4NzVhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8
am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93
IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVD
bGllbnQgbWV0aG9kCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6Om51bVdoZWVsRXZlbnRIYW5k
bGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwog
MjAxMS0wNS0xMyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNGEzY2YzYi4uMTUyOWUxYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTE4Miw2ICsxODIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9u
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRI
YW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorCiBwcml2YXRlOgogICAgIENPTVB0cjxJV2Vi
VUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDM4MzM4
OWEuLmZkMTFkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEt
MDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6b250YWxseSBzY3JvbGwgaWZy
YW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkK
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmg6CisgICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24p
OiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50V2luQ0U6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZh
dWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0wNSAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50V2luQ0UuaAppbmRleCA5NTcwOWFlLi4xM2M5ZWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKKysrIGIv
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCkBA
IC0xNzcsNiArMTc3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNj
cm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBu
dW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KKwogcHJpdmF0ZToKICAg
ICBXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCBlZWE2ZjZkLi4yMTMw
MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEzICBKb24gTGVl
ICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJm
bG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBX
ZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRXeDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5l
dyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAorCiAyMDExLTA1LTA5ICBSb2JpbiBEdW5uICA8cm9iaW5AYWxsZHVubi5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2V2aW4gT2xsaXZpZXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCBiL1NvdXJjZS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IDBkODE0OWMuLjgy
MGM4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGll
bnRXeC5oCkBAIC0xNTIsNiArMTUyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnVi
YmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KHVuc2lnbmVkKSB7IH0KKwogcHJpdmF0ZToKICAgICB3eFdlYlZpZXcqIG1fd2ViVmlldzsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMDZhYWI3OC4uYWY5Yzk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkg
c2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdh
eXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNzc5CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG91bGRXYWl0Rm9yV2hlZWxFdmVudHMpOiBSZXR1
cm4gdHJ1ZSBpZiB0aGVyZSBpcyBhdCBsZWFzdAorICAgICAgICBvbmUgd2hlZWwgZXZlbnQgaGFu
ZGxlcgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDogQWRkIG5ldyB2YXJpYWJs
ZSB0byBjYWNoZSB0aGUgY291bnQKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpudW1X
aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogU2V0cyB0aGUgY291bnQKKworICAgICAgICBUaGUg
cmVzdCBqdXN0IHByb3ZpZGVzIGFsbCB0aGUgY29ubmVjdGlvbnMuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTaG91bGRXYWl0Rm9yV2hlZWxF
dmVudHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50Ojp1cGRhdGVDb3VudFdoZWVsRXZlbnRIYW5kbGVycyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxMS0wNS0xMyAgTWlj
aGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBH
ZW9mZnJleSBHYXJlbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAK
aW5kZXggOTQxZDJjNy4uY2RlZjAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKQEAgLTE0Niw2ICsxNDYsMTEgQEAgV0tCYWNrRm9yd2FyZExpc3RSZWYgV0tQ
YWdlR2V0QmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiB0b0FQ
SSh0b0ltcGwocGFnZVJlZiktPmJhY2tGb3J3YXJkTGlzdCgpKTsKIH0KIAorYm9vbCBXS1BhZ2VT
aG91bGRXYWl0Rm9yV2hlZWxFdmVudHMoV0tQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJu
IHRvSW1wbChwYWdlUmVmKS0+c2hvdWxkV2FpdEZvcldoZWVsRXZlbnRzKCk7Cit9CisKIFdLU3Ry
aW5nUmVmIFdLUGFnZUNvcHlUaXRsZShXS1BhZ2VSZWYgcGFnZVJlZikKIHsKICAgICByZXR1cm4g
dG9Db3BpZWRBUEkodG9JbXBsKHBhZ2VSZWYpLT5wYWdlVGl0bGUoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKaW5kZXggZDAxYzgzOC4uNTBmM2Y4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaApAQCAtMjg4LDcgKzI4OCw4IEBAIFdLX0VY
UE9SVCBib29sIFdLUGFnZUNhbkdvQmFjayhXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgdm9p
ZCBXS1BhZ2VHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShXS1BhZ2VSZWYgcGFnZSwgV0tCYWNrRm9y
d2FyZExpc3RJdGVtUmVmIGl0ZW0pOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlVHJ5UmVzdG9yZVNj
cm9sbFBvc2l0aW9uKFdLUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBXS0JhY2tGb3J3YXJkTGlz
dFJlZiBXS1BhZ2VHZXRCYWNrRm9yd2FyZExpc3QoV0tQYWdlUmVmIHBhZ2UpOwotCitXS19FWFBP
UlQgYm9vbCBXS1BhZ2VTaG91bGRXYWl0Rm9yV2hlZWxFdmVudHMoV0tQYWdlUmVmIHBhZ2UpOwor
ICAgIAogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLUGFnZUNvcHlUaXRsZShXS1BhZ2VSZWYgcGFn
ZSk7CiAKIFdLX0VYUE9SVCBXS1VSTFJlZiBXS1BhZ2VDb3B5UGVuZGluZ0FQSVJlcXVlc3RVUkwo
V0tQYWdlUmVmIHBhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCA2MDIyNzk0Li5jZTQyMWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtMzA1Myw2ICszMDUzLDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAgICAgbV9s
b2FkZXJDbGllbnQuZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbih0aGlzLCBtaW1lVHlwZSk7CiB9
CiAKK2Jvb2wgV2ViUGFnZVByb3h5OjpzaG91bGRXYWl0Rm9yV2hlZWxFdmVudHMoKSBjb25zdAor
eworI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKKyAgICByZXR1cm4gbV93aGVlbEV2ZW50SGFu
ZGxlckNvdW50ID4gMDsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0
aW9uKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IENvcmVJUEM6OkRhdGFS
ZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCiB7CiAgICAgbV9wYWdlQ2xpZW50LT5kaWRGaW5pc2hM
b2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uKHN1Z2dlc3RlZEZpbGVuYW1lLCBkYXRh
UmVmZXJlbmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAy
MDFjYjJlLi4wNzVmMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC0yMjYsNiArMjI2LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2hhbmdlQmFja0Zvcndh
cmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkSXRlbSwgVmVjdG9yPFJlZlB0cjxB
UElPYmplY3Q+ID4qIHJlbW92ZWRJdGVtcyk7CiAgICAgdm9pZCBzaG91bGRHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbSh1aW50NjRfdCBpdGVtSUQsIGJvb2wmIHNob3VsZEdvVG9CYWNrRm9yd2FyZExp
c3RJdGVtKTsKIAorICAgIGJvb2wgc2hvdWxkV2FpdEZvcldoZWVsRXZlbnRzKCkgY29uc3Q7CisK
ICAgICBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdDsK
IAogICAgIGJvb2wgZHJhd3NCYWNrZ3JvdW5kKCkgY29uc3QgeyByZXR1cm4gbV9kcmF3c0JhY2tn
cm91bmQ7IH0KQEAgLTYxMSw2ICs2MTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2hhbmdl
U2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIsIGJvb2wg
aGFzVmVydGljYWxTY3JvbGxiYXIpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlu
bmluZ0Zvck1haW5GcmFtZShib29sIHBpbm5lZFRvTGVmdFNpZGUsIGJvb2wgcGlubmVkVG9SaWdo
dFNpZGUpOwogICAgIHZvaWQgZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKTsKKyAgICB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWdu
ZWQgY291bnQpIHsgbV93aGVlbEV2ZW50SGFuZGxlckNvdW50ID0gY291bnQ7IH0KIAogICAgIHZv
aWQgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNz
V2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwpAQCAtODY2LDYgKzg2OSw5IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIG1fbWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhcjsKICAg
ICBib29sIG1fbWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXI7CisgICAgLy8gVGhpcyBhZ2dy
ZWdhdGVkIGNvdW50IG9mIHdoZWVsIGhhbmRsZXJzIG9ubHkgaW5jbHVkZXMgaG9yaXpvbnRhbCBz
Y3JvbGxiYXJzCisgICAgLy8gYW5kIEpTIHdoZWVsIGV2ZW50IGhhbmRsZXJzLgorICAgIGludCBt
X3doZWVsRXZlbnRIYW5kbGVyQ291bnQ7CiAKICAgICBib29sIG1fbWFpbkZyYW1lSXNQaW5uZWRU
b0xlZnRTaWRlOwogICAgIGJvb2wgbV9tYWluRnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggOWNlNjc2NC4uNmYwMmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC02Miw2ICs2Miw3IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAgICAgRGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhh
c0hvcml6b250YWxTY3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIpCiAgICAgRGlk
Q2hhbmdlU2Nyb2xsT2Zmc2V0UGlubmluZ0Zvck1haW5GcmFtZShib29sIGhhc0hvcml6b250YWxT
Y3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIpCiAgICAgRGlkRmFpbFRvSW5pdGlh
bGl6ZVBsdWdpbihXVEY6OlN0cmluZyBtaW1lVHlwZSkKKyAgICBOdW1XaGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKHVuc2lnbmVkIGNvdW50KQogCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCiAgICAgUGFnZURpZFJlcXVlc3RTY3JvbGwoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCA2ZTEyOTU0Li4wOTdmMjM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmgKQEAgLTcyLDYgKzcyLDEyIEBAIGVudW0gewogfTsKIHR5cGVkZWYg
dWludDMyX3QgV0tGdWxsU2NyZWVuS2V5Ym9hcmRSZXF1ZXN0VHlwZTsKIAorZW51bSB7CisgICAg
V0tTY3JvbGxEaXJlY3Rpb25MZWZ0LAorICAgIFdLU2Nyb2xsRGlyZWN0aW9uUmlnaHQKK307Cit0
eXBlZGVmIHVpbnQzMl90IFdLU2Nyb2xsRGlyZWN0aW9uOworCiAvLyBMb2FkZXIgQ2xpZW50CiB0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBX
S1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9p
ZCAoKldLQnVuZGxlUGFnZURpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVm
IGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAg
LTE3NSw3ICsxODEsOCBAQCB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VNb3VzZURpZE1vdmVP
dmVyRWxlbWVudENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZQogdHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlRGlkU2Nyb2xsQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25z
dCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVBhaW50Q3Vz
dG9tT3ZlcmhhbmdBcmVhQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0dyYXBoaWNz
Q29udGV4dFJlZiBncmFwaGljc0NvbnRleHQsIFdLUmVjdCBob3Jpem9udGFsT3ZlcmhhbmcsIFdL
UmVjdCB2ZXJ0aWNhbE92ZXJoYW5nLCBXS1JlY3QgZGlydHlSZWN0LCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKIHR5cGVkZWYgV0tTdHJpbmdSZWYgKCpXS0J1bmRsZVBhZ2VHZW5lcmF0ZUZpbGVG
b3JVcGxvYWRDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG9yaWdp
bmFsRmlsZVBhdGgsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotCit0eXBlZGVmIGJvb2wgKCpX
S0J1bmRsZVBhZ2VTaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb25DYWxsYmFjaykoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLU2Nyb2xsRGlyZWN0aW9uIHNjcm9sbERpcmVjdGlvbiwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CisgICAgCiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnQgewogICAg
IGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdmVyc2lvbjsKICAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87CkBAIC0xODks
NiArMTk2LDcgQEAgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50IHsKICAgICBXS0J1bmRsZVBh
Z2VQYWludEN1c3RvbU92ZXJoYW5nQXJlYUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
IHBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhOwogICAgIFdLQnVuZGxlUGFnZUdlbmVyYXRlRmlsZUZv
clVwbG9hZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkR2VuZXJhdGVG
aWxlRm9yVXBsb2FkOwogICAgIFdLQnVuZGxlUGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVGaWxlRm9yVXBsb2FkOworICAg
IFdLQnVuZGxlUGFnZVNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbkNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uOwogfTsKIHR5cGVkZWYgc3Ry
dWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50IFdLQnVuZGxlUGFnZVVJQ2xpZW50OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZVVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCmluZGV4IDUzMmQwNTguLjQ4ODAw
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCkBAIC0x
MTUsNCArMTE1LDkgQEAgU3RyaW5nIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpnZW5lcmF0
ZUZpbGVGb3JVcGxvYWQoV2ViUGFnZSogcGFnZSwgY29uc3QgU3QKICAgICByZXR1cm4gZ2VuZXJh
dGVkRmlsZVBhdGggPyBnZW5lcmF0ZWRGaWxlUGF0aC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKIH0K
IAorYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKFdlYlBhZ2UqIHBhZ2UsIFdLU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9jbGllbnQuc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKHRvQVBJ
KHBhZ2UpLCBkaXJlY3Rpb24sIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAppbmRl
eCA0N2E1Y2E4Li5mYmJiOTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNs
aWVudC5oCkBAIC01OCw2ICs1OCw4IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZyBzaG91bGRHZW5l
cmF0ZUZpbGVGb3JVcGxvYWQoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxGaWxlUGF0
aCk7CiAgICAgU3RyaW5nIGdlbmVyYXRlRmlsZUZvclVwbG9hZChXZWJQYWdlKiwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5hbEZpbGVQYXRoKTsKKyAgICAKKyAgICBib29sIHNob3VsZFJ1YmJlckJhbmRJ
bkRpcmVjdGlvbihXZWJQYWdlKiwgV0tTY3JvbGxEaXJlY3Rpb24pIGNvbnN0OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZmQ1ZWU1NS4u
NGI0ZWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNzU5LDQgKzc1OSwyMiBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6bm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChj
b25zdCBJbnRSZWN0JiBzY3JvbGxlcgogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpOb3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KHNjcm9sbGVyVGh1bWIp
KTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAoreworICAgIEFTU0VS
VChkaXJlY3Rpb24gIT0gV2ViQ29yZTo6U2Nyb2xsVXAgJiYgZGlyZWN0aW9uICE9IFdlYkNvcmU6
OlNjcm9sbERvd24pOworICAgIAorICAgIGlmIChkaXJlY3Rpb24gPT0gV2ViQ29yZTo6U2Nyb2xs
TGVmdCkKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLnNo
b3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihtX3BhZ2UsIFdLU2Nyb2xsRGlyZWN0aW9uTGVmdCk7
CisgICAgaWYgKGRpcmVjdGlvbiA9PSBXZWJDb3JlOjpTY3JvbGxSaWdodCkKKyAgICAgICAgcmV0
dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLnNob3VsZFJ1YmJlckJhbmRJbkRp
cmVjdGlvbihtX3BhZ2UsIFdLU2Nyb2xsRGlyZWN0aW9uUmlnaHQpOworCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIGNvdW50KQoreworICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpOdW1XaGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKGNvdW50KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKaW5kZXggOTAzOGVhZi4uZDAwMTdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0y
MTgsNiArMjE4LDkgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJ1
YmJlckJhbmRGb3JNYWluRnJhbWUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3Q7CisgICAgCisgICAgdmlydHVh
bCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpOwogCiAgICAgU3Ry
aW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJGcmFtZT4gbV9jYWNo
ZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA1NGFjZjdiLi5hZjM2MzU5IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDUt
MTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1l
cyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRs
ZVBhZ2UpOiBTZXQgbmV3IGRlZmF1bHQgbWV0aG9kIHRvIG5pbC4KKwogMjAxMS0wNS0xMyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCAyYTFmODVkLi5iNzliZTRkIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2UuY3BwCkBAIC0yMjUsNiArMjI1LDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJ
bmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIDAsIC8qcGFp
bnRDdXN0b21PdmVyaGFuZ0FyZWEqLwogICAgICAgICAwLCAvKnNob3VsZEdlbmVyYXRlRmlsZUZv
clVwbG9hZCovCiAgICAgICAgIDAsIC8qZ2VuZXJhdGVGaWxlRm9yVXBsb2FkKi8KKyAgICAgICAg
MCwgLypzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24qLwogICAgIH07CiAgICAgV0tCdW5kbGVQ
YWdlU2V0VUlDbGllbnQobV9wYWdlLCAmdWlDbGllbnQpOwogCi0tIAoxLjcuNC40Cgo=
</data>
<flag name="review"
          id="86737"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93569</attachid>
            <date>2011-05-14 14:04:55 -0700</date>
            <delta_ts>2011-05-15 19:50:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>OpenSource.patch</filename>
            <type>text/plain</type>
            <size>63251</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBmNWU2NDRhYWE3ODIxMTkzOWI0MzM0MTU4NmIwMWNmNmRlZmYzODIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTYXQs
IDE0IE1heSAyMDExIDAxOjQwOjEzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQ2FuJ3QgaG9yaXpv
bnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsCiBldmVudHMg
YXJlIGFsd2F5cyBhY2NlcHRlZAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNzc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoK
KiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogSW5pdGlh
bGl6ZSB3aGVlbCBldmVudCBoYW5kbGVyIGNvdW50CihXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQWRk
V2hlZWxFdmVudEhhbmRsZXIpOiBJbmNyZW1lbnQgY291bnQsIGFuZCB0ZWxsIHRoZSBtYWluIGZy
YW1lCnRvIHJlY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2Ygd2hlZWwgZXZlbnQgaGFuZGxl
cnMgaW4gYWxsIG9mIGl0cyBmcmFtZXMnIGRvY3VtZW50cwooV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
ZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKKiBk
b20vRG9jdW1lbnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlckNvdW50
KTogQWNjZXNzIHRoZSBjb3VudAoqIGRvbS9Ob2RlLmNwcDoKKFdlYkNvcmU6OnRyeUFkZEV2ZW50
TGlzdGVuZXIpOiBJZiB0aGUgZXZlbnQgbGlzdGVuZXIgaXMgYSBtb3VzZSB3aGVlbCBldmVudCwg
dGhlbgp0ZWxsIHRoZSBkb2N1bWVudCB0byBpbmNyZW1lbnQgaXRzIGNvdW50CihXZWJDb3JlOjp0
cnlSZW1vdmVFdmVudExpc3RlbmVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKCiogcGFn
ZS9DaHJvbWVDbGllbnQuaDogVHdvIG5ldyBtZXRob2RzOgogIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQ6IFdlYlByb2Nlc3MgdGVsbHMgVUlQcm9jZXNzIHRvIHVwZGF0ZSBpdHMgY2FjaGVk
CiAgICBjb3VudCBvZiB0b3RhbCB3aGVlbCBldmVudCBoYW5kbGVycywgd2hpY2ggaW4gdGhpcyBj
YXNlIG9ubHkgaW5jbHVkZSBob3Jpem9udGFsCiAgICBzY3JvbGxiYXJzIGFuZCBtb3VzZSB3aGVl
bCBKUyBoYW5kbGVycwogIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbjogYWxsb3cgdGhlIFVJ
UHJvY2VzcyB0byBwcm92aWRlIHNvbWUgY29udHJvbCBvdmVyCiAgICB3aGV0aGVyIHJ1YmJlciBi
YW5kaW5nIGlzIGFsbG93ZWQgd2hlbiBzY3JvbGxpbmcgaW4gYSBwYXJ0aWN1bGFyIGRpcmVjdGlv
bgoqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpu
dW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBlbXB0eSBpbXBsCihXZWJDb3Jl
OjpFbXB0eUNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVs
dCBlbXB0eSBpbXBsCiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgooV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogUmVtb3ZlIGEgcmVkdW5kYW50IHBvaW50ZXIgY2hlY2sK
KiBwYWdlL0ZyYW1lLmNwcDoKKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1bWVudCk6IFdoZW4gdGhl
IGZyYW1lJ3MgZG9jdW1lbnQgY2hhbmdlcywgY2FsY3VsYXRlIHRoYXQKZG9jdW1lbnQncyB0b3Rh
bCB3aGVlbCBldmVudCBoYW5kbGVycywgYW5kIG5vdGlmeSB0aGUgVUlQcm9jZXNzCihXZWJDb3Jl
OjpGcmFtZTo6bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQp
OiBQZXJmb3JtcyBhIGNyYXdsCm9mIHRoZSBmcmFtZSB0cmVlIHRvIGFnZ3JlZ2F0ZSB0aGUgY291
bnQKKiBwYWdlL0ZyYW1lLmg6CgoqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6IFZpcnR1YWxp
emUgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhciBhbmQKd2lsbFJlbW92ZUhvcml6b250YWxTY3Jv
bGxiYXIgZm9yIG92ZXJyaWRpbmcgaW4gUmVuZGVyTGF5ZXIgYW5kIEZyYW1lVmlldwooV2ViQ29y
ZTo6U2Nyb2xsYWJsZUFyZWE6OmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9MZWZ0KTogUmV0
dXJucyB0cnVlIGlmIHRoZXJlIGlzCm5vIHNjcm9sbGJhciBvciB0aGUgc2Nyb2xsZXIgcG9zaXRp
b24gaXMgaW4gdGhlIG1pbmltdW0gc2Nyb2xsIHBvc2l0aW9uLgooV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9SaWdodCk6IENvbnZlcnNlIG9mIHRo
ZSBhYm92ZS4KKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24pOiBEZWZhdWx0IGltcGwKKiBwYWdlL0ZyYW1lVmlldy5jcHA6CihXZWJDb3JlOjpGcmFt
ZVZpZXc6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdzIGRv
Y3VtZW50J3MgY291bnQKKFdlYkNvcmU6OkZyYW1lVmlldzo6d2lsbFJlbW92ZUhvcml6b250YWxT
Y3JvbGxiYXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MKY291bnQKKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogQ29ubmVjdGl2ZSBnbHVl
CiogcGFnZS9GcmFtZVZpZXcuaDogQWRkaW5nIG92ZXJyaWRpbmcgbWV0aG9kcyBmcm9tIFNjcm9s
bGFibGVBcmVhCiogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDogU2ltaWxhciBmdW5jdGlvbmFs
aXR5IHRvIEZyYW1lVmlldwooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpZEFkZEhvcml6b250YWxT
Y3JvbGxiYXIpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Ny
b2xsYmFyKToKKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKCiogcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmg6IEZpeCB0eXBvIG9mICJtb21lbnR1bSIKKiBwbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMubW06CihXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5p
bWF0b3JNYWMpOiBGaXggdHlwbyBvZiAibW9tZW50dW0iCihXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KTogRml4IHR5cG8gb2YgImNvYWxlc2NlZCIKKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpiZWdpblNjcm9sbEdlc3R1cmUpOiBGaXggdHlwbyBv
ZiAiY29hbGVzY2VkIgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5k
KTogRml4IHR5cG8gb2YgIm1vbWVudHVtIgoKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpo
YW5kbGVXaGVlbEV2ZW50KTogTmV3IGxvZ2ljIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyCnRvIGFs
bG93IHJ1YmJlci1iYW5kaW5nIGJhc2VkIG9uIHRoZSBhcmVhJ3Mgc2Nyb2xsIHBvc2l0aW9uIGFu
ZCB0aGUgd2hlZWwgZXZlbnQuCkNvdWxkIHByZXZlbnQgYWNjZXB0aW5nIHRoZSB3aGVlbCBldmVu
dC4gQWxzbywgZml4IHR5cG8gb2YgIm1vbWVudHVtIgooV2ViQ29yZTo6aXNTY3JvbGxpbmdMZWZ0
QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2lj
CihXZWJDb3JlOjppc1Njcm9sbGluZ1JpZ2h0QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGlu
ZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCgpTb3VyY2UvV2ViS2l0L2Nocm9taXVtOgoKKiBz
cmMvQ2hyb21lQ2xpZW50SW1wbC5oOgooV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzaG91bGRS
dWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBt
ZXRob2QKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dl
YktpdC9lZmw6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgooV2ViQ29yZTo6
Q2hyb21lQ2xpZW50RWZsOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGlt
cGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9ndGs6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5oOgooV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRp
cmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAooV2ViS2l0
OjpDaHJvbWVDbGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGlt
cGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKClNvdXJjZS9XZWJLaXQvaGFpa3U6CgoqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1Lmg6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRI
YWlrdTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBD
aHJvbWVDbGllbnQgbWV0aG9kCihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6bnVtV2hlZWxF
dmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1l
dGhvZAoKU291cmNlL1dlYktpdC9tYWM6CgoqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgooV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVm
YXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJDaHJvbWVDbGllbnQ6OnNo
b3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xp
ZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9xdDoKCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKFdlYkNvcmU6
OkNocm9tZUNsaWVudFF0OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L3dpbjoKCiogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CihXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFJ1
YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1l
dGhvZAooV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVm
YXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L3dpbmNl
OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgooV2ViS2l0OjpDaHJvbWVD
bGllbnRXaW5DRTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9m
IG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpudW1X
aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGll
bnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L3d4OgoKKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVu
dFd4Lmg6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJDb3JlOjpD
aHJvbWVDbGllbnRXeDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1w
bCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdDI6CgpXZSBrZWVwIHRy
YWNrIG9mIHRoZSBudW1iZXIgb2YgaG9yaXpvbnRhbCBzY3JvbGxiYXJzIGFuZCBtb3VzZSB3aGVl
bCBldmVudCBoYW5kbGVycyBpbiB0aGUKVUkgcHJvY2VzcyBhcyBhIG1lYW5zIG9mIGRldGVybWlu
aW5nIHdoZXRoZXIgaG9yaXpvbnRhbCBzY3JvbGwgZXZlbnRzIHdpbGwgYmUgaGFuZGxlZApieSB0
aGUgd2ViIHByb2Nlc3MuCgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgooV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OndpbGxIYW5kbGVIb3Jpem9udGFsU2Nyb2xsRXZlbnRzKTogUmV0dXJuIHRy
dWUgaWYgdGhlcmUgaXMgYXQgbGVhc3QKb25lIHdoZWVsIGV2ZW50IGhhbmRsZXIKKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6IEFkZCBuZXcgdmFyaWFibGUgdG8gY2FjaGUgdGhlIGNvdW50CihX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IFNldHMg
dGhlIGNvdW50CgpUaGUgcmVzdCBqdXN0IHByb3ZpZGVzIGFsbCB0aGUgY29ubmVjdGlvbnMuCiog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CihXS1BhZ2VXaWxsSGFuZGxlSG9yaXpvbnRhbFNj
cm9sbEV2ZW50cyk6CiogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgoqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW46CiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuaDoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVVJQ2xpZW50LmNwcDoKKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OnNo
b3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6CiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3Rpb24pOiBGb3J3YXJkIHRvIGluamVjdGVkIGJ1bmRsZSBVSSBjbGllbnQK
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp1cGRhdGVDb3VudFdoZWVsRXZlbnRIYW5kbGVycyk6
IFVwZGF0ZXMgdGhlIHdlYiBwYWdlIHByb3h5CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKClRvb2xzOgoKKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CihXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5q
ZWN0ZWRCdW5kbGVQYWdlKTogU2V0IG5ldyBkZWZhdWx0IG1ldGhvZCB0byBuaWwuCi0tLQogU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDY3ICsr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAg
ICAgICAgICB8ICAgMTggKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAg
ICAgICAgICAgICAgICAgfCAgICA3ICsrCiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oICAgICAgICAgICAgICAgfCAgICA0ICsKIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmggICAgICAgICAgICAgICAgIHwgICAgMyArCiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysrLQogU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsK
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAgIHwgICAy
NCArKysrKwogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCAgICAgICAgICAgICAgICAg
ICAgfCAgICAzICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggICAg
ICAgICAgIHwgICAgOSArKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5oICAgIHwgICAgNiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tICAgfCAgIDkyICsrKysrKysrKysrKysrLS0tLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgICAgICAgICAgIHwgICAxMyArKysKIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oICAgICAgICAgICAgIHwgICAgMiArCiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTEg
KysrCiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggICAgICB8
ICAgIDMgKwogU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDExICsrKwogU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50RWZsLmggfCAgICAzICsKIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5oIHwgICAgMyArCiBTb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrCiAuLi4vaGFpa3UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50SGFpa3UuaCAgICAgICB8ICAgIDMgKwogU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKwogU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggfCAgICA0ICsKIFNvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysKIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgIHwgICAgMyAr
CiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTEgKysrCiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCB8ICAgIDMgKwogU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDExICsrKwogLi4uL3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdp
bkNFLmggICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oICAgIHwgICAgMyArCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKysrKysrKwogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAgICAgfCAgICA1ICsKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCAgICAgICAgICAgIHwgICAgMyArLQogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgfCAgICA1ICsKIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgICAgNiAr
KwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiAgfCAg
ICAxICsKIC4uLi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5o
IHwgICAxMCArKy0KIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dC5jcHAgIHwgICAgNSArCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaCAgICB8ICAgIDIgKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcCAgfCAgIDE4ICsrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oICAgIHwgICAgMyArCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuY3BwICAgICAgICAgIHwgICAgMSArCiA0NyBmaWxlcyBjaGFuZ2Vk
LCA0ODEgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZmMDll
ZmIuLmYzZTA5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMS0wNS0xNCAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBv
dmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVu
dCk6IEluaXRpYWxpemUgd2hlZWwgZXZlbnQgaGFuZGxlciBjb3VudAorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKTogSW5jcmVtZW50IGNvdW50LCBh
bmQgdGVsbCB0aGUgbWFpbiBmcmFtZQorICAgICAgICB0byByZWNhbGN1bGF0ZSB0aGUgdG90YWwg
bnVtYmVyIG9mIHdoZWVsIGV2ZW50IGhhbmRsZXJzIGluIGFsbCBvZiBpdHMgZnJhbWVzJyBkb2N1
bWVudHMKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRSZW1vdmVXaGVlbEV2ZW50SGFu
ZGxlcik6IFJldmVyc2Ugb2YgcHJldmlvdXMgbWV0aG9kCisgICAgICAgICogZG9tL0RvY3VtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2hlZWxFdmVudEhhbmRsZXJDb3VudCk6
IEFjY2VzcyB0aGUgY291bnQKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0cnlBZGRFdmVudExpc3RlbmVyKTogSWYgdGhlIGV2ZW50IGxpc3RlbmVyIGlzIGEgbW91
c2Ugd2hlZWwgZXZlbnQsIHRoZW4KKyAgICAgICAgdGVsbCB0aGUgZG9jdW1lbnQgdG8gaW5jcmVt
ZW50IGl0cyBjb3VudAorICAgICAgICAoV2ViQ29yZTo6dHJ5UmVtb3ZlRXZlbnRMaXN0ZW5lcik6
IFJldmVyc2Ugb2YgcHJldmlvdXMgbWV0aG9kCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVu
dC5oOiBUd28gbmV3IG1ldGhvZHM6CisgICAgICAgICAgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZDogV2ViUHJvY2VzcyB0ZWxscyBVSVByb2Nlc3MgdG8gdXBkYXRlIGl0cyBjYWNoZWQKKyAg
ICAgICAgICAgIGNvdW50IG9mIHRvdGFsIHdoZWVsIGV2ZW50IGhhbmRsZXJzLCB3aGljaCBpbiB0
aGlzIGNhc2Ugb25seSBpbmNsdWRlIGhvcml6b250YWwKKyAgICAgICAgICAgIHNjcm9sbGJhcnMg
YW5kIG1vdXNlIHdoZWVsIEpTIGhhbmRsZXJzCisgICAgICAgICAgc2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uOiBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHByb3ZpZGUgc29tZSBjb250cm9sIG92
ZXIKKyAgICAgICAgICAgIHdoZXRoZXIgcnViYmVyIGJhbmRpbmcgaXMgYWxsb3dlZCB3aGVuIHNj
cm9sbGluZyBpbiBhIHBhcnRpY3VsYXIgZGlyZWN0aW9uCisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Om51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGVtcHR5IGltcGwKKyAgICAgICAgKFdlYkNv
cmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZh
dWx0IGVtcHR5IGltcGwKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOiBSZW1vdmUgYSByZWR1
bmRhbnQgcG9pbnRlciBjaGVjaworICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWU6OnNldERvY3VtZW50KTogV2hlbiB0aGUgZnJhbWUncyBkb2N1bWVudCBj
aGFuZ2VzLCBjYWxjdWxhdGUgdGhhdAorICAgICAgICBkb2N1bWVudCdzIHRvdGFsIHdoZWVsIGV2
ZW50IGhhbmRsZXJzLCBhbmQgbm90aWZ5IHRoZSBVSVByb2Nlc3MKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lOjpub3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCk6
IFBlcmZvcm1zIGEgY3Jhd2wKKyAgICAgICAgb2YgdGhlIGZyYW1lIHRyZWUgdG8gYWdncmVnYXRl
IHRoZSBjb3VudAorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKworICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmg6IFZpcnR1YWxpemUgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhciBh
bmQKKyAgICAgICAgd2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIgZm9yIG92ZXJyaWRpbmcg
aW4gUmVuZGVyTGF5ZXIgYW5kIEZyYW1lVmlldworICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9MZWZ0KTogUmV0dXJucyB0cnVlIGlm
IHRoZXJlIGlzCisgICAgICAgIG5vIHNjcm9sbGJhciBvciB0aGUgc2Nyb2xsZXIgcG9zaXRpb24g
aXMgaW4gdGhlIG1pbmltdW0gc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9SaWdodCk6IENvbnZlcnNl
IG9mIHRoZSBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzaG91bGRS
dWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZEFkZEhvcml6b250YWxT
Y3JvbGxiYXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MgY291bnQKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIpOiBVcGRh
dGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MKKyAgICAgICAgY291bnQKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogQ29ubmVjdGl2ZSBn
bHVlCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDogQWRkaW5nIG92ZXJyaWRpbmcgbWV0aG9k
cyBmcm9tIFNjcm9sbGFibGVBcmVhCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDogU2ltaWxhciBmdW5jdGlvbmFsaXR5IHRvIEZyYW1lVmlldworICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLmg6IEZpeCB0eXBvIG9mICJtb21lbnR1bSIKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBGaXggdHlwbyBvZiAibW9tZW50
dW0iCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0
aEV2ZW50KTogRml4IHR5cG8gb2YgImNvYWxlc2NlZCIKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjpiZWdpblNjcm9sbEdlc3R1cmUpOiBGaXggdHlwbyBvZiAiY29hbGVzY2Vk
IgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kKTog
Rml4IHR5cG8gb2YgIm1vbWVudHVtIgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogTmV3IGxvZ2ljIGZvciBkZXRlcm1pbmlu
ZyB3aGV0aGVyCisgICAgICAgIHRvIGFsbG93IHJ1YmJlci1iYW5kaW5nIGJhc2VkIG9uIHRoZSBh
cmVhJ3Mgc2Nyb2xsIHBvc2l0aW9uIGFuZCB0aGUgd2hlZWwgZXZlbnQuCisgICAgICAgIENvdWxk
IHByZXZlbnQgYWNjZXB0aW5nIHRoZSB3aGVlbCBldmVudC4gQWxzbywgZml4IHR5cG8gb2YgIm1v
bWVudHVtIgorICAgICAgICAoV2ViQ29yZTo6aXNTY3JvbGxpbmdMZWZ0QW5kU2hvdWxkTm90UnVi
YmVyQmFuZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCisgICAgICAgIChXZWJD
b3JlOjppc1Njcm9sbGluZ1JpZ2h0QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGluZSBoZWxw
ZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCisKIDIwMTEtMDUtMTQgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCA3YTQxYzk5Li44NzhlZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTQyMiw2ICs0MjIsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1l
LCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX3dy
aXRpbmdNb2RlU2V0T25Eb2N1bWVudEVsZW1lbnQoZmFsc2UpCiAgICAgLCBtX3dyaXRlUmVjdXJz
aW9uSXNUb29EZWVwKGZhbHNlKQogICAgICwgbV93cml0ZVJlY3Vyc2lvbkRlcHRoKDApCisgICAg
LCBtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQoMCkKIHsKICAgICBtX2RvY3VtZW50ID0gdGhpczsK
IApAQCAtNTA3OSw0ICs1MDgwLDIxIEBAIFBhc3NSZWZQdHI8VG91Y2hMaXN0PiBEb2N1bWVudDo6
Y3JlYXRlVG91Y2hMaXN0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdAogfQogI2VuZGlmCiAKK3ZvaWQg
RG9jdW1lbnQ6OmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKCkKK3sKKyAgICArK21fd2hlZWxFdmVu
dEhhbmRsZXJDb3VudDsKKyAgICBGcmFtZSogbWFpbkZyYW1lID0gcGFnZSgpID8gcGFnZSgpLT5t
YWluRnJhbWUoKSA6IDA7CisgICAgaWYgKG1haW5GcmFtZSkKKyAgICAgICAgbWFpbkZyYW1lLT5u
b3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpOworfQorCit2
b2lkIERvY3VtZW50OjpkaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigpCit7CisgICAgQVNTRVJU
KG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCA+IDApOworICAgIC0tbV93aGVlbEV2ZW50SGFuZGxl
ckNvdW50OworICAgIEZyYW1lKiBtYWluRnJhbWUgPSBwYWdlKCkgPyBwYWdlKCktPm1haW5GcmFt
ZSgpIDogMDsKKyAgICBpZiAobWFpbkZyYW1lKQorICAgICAgICBtYWluRnJhbWUtPm5vdGlmeUNo
cm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzAyZTAyZi4uNGI4NjgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExMDAsNiArMTEwMCwxMSBAQCBwdWJsaWM6CiAKICAg
ICBDb250ZW50U2VjdXJpdHlQb2xpY3kqIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpIHsgcmV0dXJu
IG1fY29udGVudFNlY3VyaXR5UG9saWN5LmdldCgpOyB9CiAKKyAgICAvLyBVc2VkIHRvIGtlZXAg
dHJhY2sgb2YgaG9yaXpvbnRhbCBzY3JvbGxiYXJzIGFuZCBvbm1vdXNld2hlZWwgZXZlbnQgaGFu
ZGxlcnMgb25seS4KKyAgICB1bnNpZ25lZCB3aGVlbEV2ZW50SGFuZGxlckNvdW50KCkgY29uc3Qg
eyByZXR1cm4gbV93aGVlbEV2ZW50SGFuZGxlckNvdW50OyB9CisgICAgdm9pZCBkaWRBZGRXaGVl
bEV2ZW50SGFuZGxlcigpOworICAgIHZvaWQgZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIoKTsK
KyAgICAKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29s
IGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTM5Nyw2ICsxNDAyLDggQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+IG1fbWVkaWFRdWVyeU1hdGNoZXI7CiAgICAg
Ym9vbCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwOwogICAgIHVuc2lnbmVkIG1fd3JpdGVSZWN1
cnNpb25EZXB0aDsKKyAgICAKKyAgICB1bnNpZ25lZCBtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQ7
CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgT3duUHRyPFNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlcj4gbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKaW5kZXggYzk1OTdmYi4uMWE1NjBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAt
MjgsNiArMjgsOCBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBdHRy
LmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVk
ZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NT
UnVsZS5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCkBAIC0yNjQxLDkgKzI2NDMsMTIgQEAg
c3RhdGljIGlubGluZSBib29sIHRyeUFkZEV2ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiBldmUKICAgICBpZiAoIXRhcmdldE5vZGUtPkV2ZW50VGFyZ2V0
OjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGFyZ2V0
Tm9kZS0+ZG9jdW1lbnQoKSkKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGFyZ2V0Tm9k
ZS0+ZG9jdW1lbnQoKSkgewogICAgICAgICBkb2N1bWVudC0+YWRkTGlzdGVuZXJUeXBlSWZOZWVk
ZWQoZXZlbnRUeXBlKTsKLQorICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5t
b3VzZXdoZWVsRXZlbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+ZGlkQWRkV2hlZWxFdmVudEhh
bmRsZXIoKTsKKyAgICB9CisgICAgICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yNjg4
LDcgKzI2OTMsMTEgQEAgc3RhdGljIGlubGluZSBib29sIHRyeVJlbW92ZUV2ZW50TGlzdGVuZXIo
Tm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJgogCiAgICAgLy8gRklYTUU6IE5v
dGlmeSBEb2N1bWVudCB0aGF0IHRoZSBsaXN0ZW5lciBoYXMgdmFuaXNoZWQuIFdlIG5lZWQgdG8g
a2VlcCB0cmFjayBvZiBhIG51bWJlciBvZgogICAgIC8vIGxpc3RlbmVycyBmb3IgZWFjaCB0eXBl
LCBub3QganVzdCBhIGJvb2wgLSBzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMzODYxCi0KKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gdGFyZ2V0Tm9kZS0+
ZG9jdW1lbnQoKSkgeworICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZXdoZWVsRXZlbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+ZGlkUmVtb3ZlV2hlZWxFdmVudEhh
bmRsZXIoKTsKKyAgICB9CisgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBhYTJmYzljLi5mMzIwNGRkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0yMjMsNiArMjIzLDEwIEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZpcnR1YWwgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9v
bCkgeyB9CiAjZW5kaWYKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRs
ZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisgICAgCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1
YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiB9OwogCiBjbGFzcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGlj
IEZyYW1lTG9hZGVyQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDg5
NDE4NDUuLjlhMGZkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTcwLDYg
KzE3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRv
b2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVjdGlvbikgPSAwOwogCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1
YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0ID0gMDsKIAogI2lmIEVO
QUJMRShEQVRBQkFTRSkKICAgICAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKSA9IDA7CkBAIC0zMjAsNiArMzIx
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9OwogICAgICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFJ1bk1vZGFsRGlhbG9nRHVyaW5nUGFnZURpc21pc3NhbChjb25zdCBEaWFsb2dUeXBl
JikgY29uc3QgeyB9CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQodW5zaWduZWQpID0gMDsKKyAgICAgICAgCiAgICAgcHJvdGVjdGVkOgogICAgICAg
ICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCmluZGV4IGQ0MTVlZTAuLjE0NjIyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKQEAgLTIxMzYsMTAgKzIxMzYsMTEgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OmhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogICAgIGlmIChlLmlzQWNj
ZXB0ZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAvLyBXZSBkbyBhbm90aGVyIGNo
ZWNrIG9uIHRoZSBmcmFtZSB2aWV3IGJlY2F1c2UgdGhlIGV2ZW50IGhhbmRsZXIgY2FuIHJ1biBK
UyB3aGljaCByZXN1bHRzIGluIHRoZSBmcmFtZSBnZXR0aW5nIGRlc3Ryb3llZC4KICAgICB2aWV3
ID0gbV9mcmFtZS0+dmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotCisgICAgCiAgICAgdmlldy0+d2hlZWxFdmVudChlKTsKICAgICByZXR1cm4gZS5pc0FjY2Vw
dGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDNhOGQzYjUuLmI0NTIyMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCkBAIC0zMDksOCArMzA5LDExIEBAIHZvaWQgRnJhbWU6OnNldERvY3Vt
ZW50KFBhc3NSZWZQdHI8RG9jdW1lbnQ+IG5ld0RvYykKICAgICAvLyBVcGRhdGUgdGhlIGNhY2hl
ZCAnZG9jdW1lbnQnIHByb3BlcnR5LCB3aGljaCBpcyBub3cgc3RhbGUuCiAgICAgbV9zY3JpcHQu
dXBkYXRlRG9jdW1lbnQoKTsKIAotICAgIGlmIChtX3BhZ2UpCisgICAgaWYgKG1fcGFnZSkgewog
ICAgICAgICBtX3BhZ2UtPnVwZGF0ZVZpZXdwb3J0QXJndW1lbnRzKCk7CisgICAgICAgIGlmICht
X3BhZ2UtPm1haW5GcmFtZSgpID09IHRoaXMpCisgICAgICAgICAgICBub3RpZnlDaHJvbWVDbGll
bnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpOworICAgIH0KIH0KIAogI2lmIEVOQUJM
RShPUklFTlRBVElPTl9FVkVOVFMpCkBAIC0xMTE2LDQgKzExMTksMTggQEAgdm9pZCBGcmFtZTo6
c2NhbGVQYWdlKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luKQogICAgIH0KIH0K
IAordm9pZCBGcmFtZTo6bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENo
YW5nZWQoKSBjb25zdAoreworICAgIC8vIEVuc3VyZSB0aGF0IHRoaXMgbWV0aG9kIGlzIGJlaW5n
IGNhbGxlZCBvbiB0aGUgbWFpbiBmcmFtZSBvZiB0aGUgcGFnZS4KKyAgICBBU1NFUlQobV9wYWdl
ICYmIG1fcGFnZS0+bWFpbkZyYW1lKCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5zaWduZWQgY291
bnQgPSAwOworICAgIGZvciAoY29uc3QgRnJhbWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgaWYgKGZyYW1lLT5k
b2N1bWVudCgpKQorICAgICAgICAgICAgY291bnQgKz0gZnJhbWUtPmRvY3VtZW50KCktPndoZWVs
RXZlbnRIYW5kbGVyQ291bnQoKTsKKyAgICB9CisgICAgCisgICAgbV9wYWdlLT5jaHJvbWUoKS0+
Y2xpZW50KCktPm51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoY291bnQpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggZGVjMjJkNy4uNDRmZTQ2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuaApAQCAtMjA2LDYgKzIwNiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICAgICBNZWRpYVN0cmVhbUZyYW1lQ29udHJv
bGxlciogbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U3RyZWFtRnJhbWVDb250cm9sbGVyLmdldCgpOyB9CiAjZW5kaWYKKyAgICAgICAgCisgICAgICAg
IC8vIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiB0aGUgbWFpbiBmcmFtZSBvZiBhIHBhZ2UuCisg
ICAgICAgIHZvaWQgbm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5n
ZWQoKSBjb25zdDsKIAogICAgIC8vID09PT09PT09CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAppbmRleCBjNGNiYWViLi4zMDg4NWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKICNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgi
CiAjaW5jbHVkZSAiQ2hyb21lLmgiCkBAIC0zMDYsNiArMzA3LDIxIEBAIHZvaWQgRnJhbWVWaWV3
OjpkZXRhY2hDdXN0b21TY3JvbGxiYXJzKCkKICAgICB9CiB9CiAKK3ZvaWQgRnJhbWVWaWV3Ojpk
aWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAgIGlm
IChtX2ZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kaWRB
ZGRXaGVlbEV2ZW50SGFuZGxlcigpOworICAgIFNjcm9sbFZpZXc6OmRpZEFkZEhvcml6b250YWxT
Y3JvbGxiYXIoc2Nyb2xsYmFyKTsKK30KKwordm9pZCBGcmFtZVZpZXc6OndpbGxSZW1vdmVIb3Jp
em9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAgIFNjcm9sbFZpZXc6
OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKHNjcm9sbGJhcik7CisgICAgLy8gRklYTUU6
IG1heWJlIG5lZWQgYSBzZXBhcmF0ZSBTY3JvbGxhYmxlQXJlYTo6ZGlkUmVtb3ZlSG9yaXpvbnRh
bFNjcm9sbGJhciBjYWxsYmFjaz8KKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAg
ICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIoKTsKK30K
KwogU2Nyb2xsYmFyT3ZlcmxheVN0eWxlIEZyYW1lVmlldzo6cmVjb21tZW5kZWRTY3JvbGxiYXJP
dmVybGF5U3R5bGUoKSBjb25zdAogewogICAgIENvbG9yIGJnQ29sb3IgPSBtX2ZyYW1lLT5nZXRE
b2N1bWVudEJhY2tncm91bmRDb2xvcigpOwpAQCAtMTQ5MCw2ICsxNTA2LDE0IEBAIHZvaWQgRnJh
bWVWaWV3OjpyZXBhaW50Rml4ZWRFbGVtZW50c0FmdGVyU2Nyb2xsaW5nKCkKICAgICB9CiB9CiAK
K2Jvb2wgRnJhbWVWaWV3OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0
aW9uIGRpcmVjdGlvbikgY29uc3QKK3sKKyAgICBQYWdlKiBwYWdlID0gZnJhbWUoKSA/IGZyYW1l
KCktPnBhZ2UoKSA6IDA7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gU2Nyb2xsVmll
dzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKGRpcmVjdGlvbik7CisgICAgcmV0dXJuIHBh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKGRpcmVj
dGlvbik7Cit9CisKIEhvc3RXaW5kb3cqIEZyYW1lVmlldzo6aG9zdFdpbmRvdygpIGNvbnN0CiB7
CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkgOiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKaW5kZXggNDlhNmQ5YS4uNWI3Mzk1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCkBAIC04Miw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
U2Nyb2xsYmFyPiBjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRpb24pOwogCiAgICAg
dmlydHVhbCBib29sIGF2b2lkU2Nyb2xsYmFyQ3JlYXRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgd2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNTaXplKGNvbnN0IEludFNpemUmKTsKIApAQCAtMTYwLDYg
KzE2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBv
aW50Jik7CiAgICAgdm9pZCBzY3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFQbGF0Zm9ybVdpZGdldCgp
OwogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Rml4ZWRFbGVtZW50c0FmdGVyU2Nyb2xsaW5nKCk7
CisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJl
Y3Rpb24pIGNvbnN0OwogCiAgICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OwogICAgIHZvaWQg
c2V0TWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmgKaW5kZXggNGJiZWQzZS4uOWVkMjYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC03Myw4ICs3Myw4IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdm9pZCB3aWxsUmVt
b3ZlVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7Ci0gICAgdm9pZCBkaWRBZGRIb3Jpem9u
dGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwotICAgIHZvaWQgd2lsbFJlbW92ZUhvcml6b250YWxT
Y3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxT
Y3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9u
dGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogCiAgICAgYm9vbCBoYXNPdmVybGF5U2Nyb2xsYmFy
cygpIGNvbnN0OwogICAgIHZpcnR1YWwgU2Nyb2xsYmFyT3ZlcmxheVN0eWxlIHJlY29tbWVuZGVk
U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCkgY29uc3QgeyByZXR1cm4gU2Nyb2xsYmFyT3ZlcmxheVN0
eWxlRGVmYXVsdDsgfQpAQCAtMTMxLDYgKzEzMSwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJTdHlsZUNoYW5nZWQoKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmKSB7IH0K
KyAgICAKKyAgICBib29sIGlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9MZWZ0KCkgY29uc3Qg
eyByZXR1cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3NpdGlvbihob3Jpem9u
dGFsU2Nyb2xsYmFyKCkpIDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLngoKTsgfQorICAgIGJv
b2wgaXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb1JpZ2h0KCkgY29uc3QgeyByZXR1cm4gIWhv
cml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3NpdGlvbihob3Jpem9udGFsU2Nyb2xsYmFy
KCkpID49IG1heGltdW1TY3JvbGxQb3NpdGlvbigpLngoKTsgfQorICAgIAorICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyb21QYWdlKCkg
eyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
LmgKaW5kZXggYmZlZjk1Yi4uNmFjZjJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE0NCw4ICsxNDQsMTIgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faW5TY3JvbGxHZXN0dXJlOwogICAgIGJvb2wgbV9tb21lbnR1bVNjcm9sbElu
UHJvZ3Jlc3M7CiAgICAgYm9vbCBtX2lnbm9yZU1vbWVudHVtU2Nyb2xsczsKKyAgICBib29sIG1f
c2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPbkxlZnQ7CisgICAgYm9vbCBtX3Njcm9sbGVySW5pdGlh
bGx5UGlubmVkT25SaWdodDsKKyAgICBpbnQgbV9hZ2dyZWdhdGVTY3JvbGw7CisgICAgYm9vbCBt
X2RpZEFnZ3JlZ2F0ZVNjcm9sbEV2ZXJTd2l0Y2hUb09wcG9zaXRlRGlyZWN0aW9uT2ZQaW47CiAg
ICAgCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXA7Cisg
ICAgQ0ZUaW1lSW50ZXJ2YWwgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXA7CiAgICAgRmxv
YXRTaXplIG1fb3ZlcmZsb3dTY3JvbGxEZWx0YTsKICAgICBGbG9hdFNpemUgbV9zdHJldGNoU2Ny
b2xsRm9yY2U7CiAgICAgRmxvYXRTaXplIG1fbW9tZW50dW1WZWxvY2l0eTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCA5OTM4M2Rh
Li45MjBkM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLm1tCkBAIC00NTksNyArNDU5LDcgQEAgU2Nyb2xsQW5pbWF0b3JNYWM6OlNjcm9s
bEFuaW1hdG9yTWFjKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKICAgICAsIG1faW5T
Y3JvbGxHZXN0dXJlKGZhbHNlKQogICAgICwgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MoZmFs
c2UpCiAgICAgLCBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyhmYWxzZSkKLSAgICAsIG1fbGFzdE1v
bWVtdHVtU2Nyb2xsVGltZXN0YW1wKDApCisgICAgLCBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVz
dGFtcCgwKQogICAgICwgbV9zdGFydFRpbWUoMCkKICAgICAsIG1fc25hcFJ1YmJlckJhbmRUaW1l
cih0aGlzLCAmU2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kVGltZXJGaXJlZCkKICNl
bmRpZgpAQCAtNzY0LDYgKzc2NCwxNiBAQCBzdGF0aWMgZmxvYXQgc2Nyb2xsV2hlZWxNdWx0aXBs
aWVyKCkKICAgICByZXR1cm4gbXVsdGlwbGllcjsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGlz
U2Nyb2xsaW5nTGVmdEFuZFNob3VsZE5vdFJ1YmJlckJhbmQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW50LCBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCit7CisgICAgcmV0dXJu
IHdoZWVsRXZlbnQuZGVsdGFYKCkgPiAwICYmICFzY3JvbGxhYmxlQXJlYS0+c2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKFNjcm9sbExlZnQpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXNT
Y3JvbGxpbmdSaWdodEFuZFNob3VsZE5vdFJ1YmJlckJhbmQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW50LCBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCit7CisgICAgcmV0dXJu
IHdoZWVsRXZlbnQuZGVsdGFYKCkgPCAwICYmICFzY3JvbGxhYmxlQXJlYS0+c2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKFNjcm9sbFJpZ2h0KTsKK30KKwogdm9pZCBTY3JvbGxBbmltYXRvck1h
Yzo6aGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CiAg
ICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKQEAgLTc4NywxNyArNzk3LDQ3
IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbEV2ZW50KQogICAgICAgICAgICAgU2Nyb2xsQW5pbWF0b3I6OmhhbmRsZVdo
ZWVsRXZlbnQod2hlZWxFdmVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAg
ICB9CisgICAgICAgIAorICAgICAgICBpZiAobV9zY3JvbGxhYmxlQXJlYS0+aG9yaXpvbnRhbFNj
cm9sbGJhcigpKSB7CisgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHNjcm9sbGJhciwgd2Ug
YWdncmVnYXRlIHRoZSB3aGVlbCBldmVudHMgdG8gZ2V0IGFuCisgICAgICAgICAgICAvLyBvdmVy
YWxsIHRyZW5kIG9mIHRoZSBzY3JvbGwuIElmIHRoZSBkaXJlY3Rpb24gb2YgdGhlIHNjcm9sbCBp
cyBldmVyCisgICAgICAgICAgICAvLyBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uIG9mIHRoZSBw
aW4gbG9jYXRpb24sIHRoZW4gd2Ugc3dpdGNoIHRoZQorICAgICAgICAgICAgLy8gYm9vbGVhbiwg
YW5kIHJ1YmJlciBiYW5kLiBUaGF0IGlzLCBpZiB3ZSB3ZXJlIHBpbm5lZCB0byB0aGUgbGVmdCwK
KyAgICAgICAgICAgIC8vIGFuZCB3ZSBlbmRlZCB1cCBzY3JvbGxpbmcgdG8gdGhlIHJpZ2h0LCB3
ZSBydWJiZXIgYmFuZC4KKyAgICAgICAgICAgIG1fYWdncmVnYXRlU2Nyb2xsICs9IHdoZWVsRXZl
bnQuZGVsdGFYKCk7CisgICAgICAgICAgICBpZiAobV9zY3JvbGxlckluaXRpYWxseVBpbm5lZE9u
TGVmdCAmJiBtX2FnZ3JlZ2F0ZVNjcm9sbCA8IDApCisgICAgICAgICAgICAgICAgbV9kaWRBZ2dy
ZWdhdGVTY3JvbGxFdmVyU3dpdGNoVG9PcHBvc2l0ZURpcmVjdGlvbk9mUGluID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGlmIChtX3Njcm9sbGVySW5pdGlhbGx5UGlubmVkT25SaWdodCAmJiBtX2FnZ3Jl
Z2F0ZVNjcm9sbCA+IDApCisgICAgICAgICAgICAgICAgbV9kaWRBZ2dyZWdhdGVTY3JvbGxFdmVy
U3dpdGNoVG9PcHBvc2l0ZURpcmVjdGlvbk9mUGluID0gdHJ1ZTsKKyAgICAgICAgfQogCi0gICAg
d2hlZWxFdmVudC5hY2NlcHQoKTsKKyAgICAgICAgLy8gQWZ0ZXIgYSBnZXN0dXJlIGJlZ2lucywg
d2UgZ28gdGhyb3VnaDoKKyAgICAgICAgLy8gMSsgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25l
CisgICAgICAgIC8vIDArIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdlZAorICAgICAgICAv
LyAxIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQgaWYgdGhlcmUgd2FzIGF0IGxlYXN0IG9u
ZSBjaGFuZ2VkIGV2ZW50CisgICAgICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9
PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUgJiYgIW1fZGlkQWdncmVnYXRlU2Nyb2xsRXZl
clN3aXRjaFRvT3Bwb3NpdGVEaXJlY3Rpb25PZlBpbikgeworICAgICAgICAgICAgaWYgKChpc1Nj
cm9sbGluZ0xlZnRBbmRTaG91bGROb3RSdWJiZXJCYW5kKHdoZWVsRXZlbnQsIG1fc2Nyb2xsYWJs
ZUFyZWEpICYmCisgICAgICAgICAgICAgICAgbV9zY3JvbGxlckluaXRpYWxseVBpbm5lZE9uTGVm
dCAmJgorICAgICAgICAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPmlzSG9yaXpvbnRhbFNjcm9s
bGVyUGlubmVkVG9MZWZ0KCkpIHx8CisgICAgICAgICAgICAgICAgKGlzU2Nyb2xsaW5nUmlnaHRB
bmRTaG91bGROb3RSdWJiZXJCYW5kKHdoZWVsRXZlbnQsIG1fc2Nyb2xsYWJsZUFyZWEpICYmCisg
ICAgICAgICAgICAgICAgbV9zY3JvbGxlckluaXRpYWxseVBpbm5lZE9uUmlnaHQgJiYKKyAgICAg
ICAgICAgICAgICBtX3Njcm9sbGFibGVBcmVhLT5pc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRv
UmlnaHQoKSkpIHsKKyAgICAgICAgICAgICAgICBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxF
dmVudCh3aGVlbEV2ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CiAKLSAgICBib29sIGlzTW9tZXR1bVNjcm9sbEV2ZW50ID0gKHdo
ZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpICE9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlTm9uZSk7
Ci0gICAgaWYgKG1faWdub3JlTW9tZW50dW1TY3JvbGxzICYmIChpc01vbWV0dW1TY3JvbGxFdmVu
dCB8fCBtX3NuYXBSdWJiZXJCYW5kVGltZXIuaXNBY3RpdmUoKSkpIHsKLSAgICAgICAgaWYgKHdo
ZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQp
CisgICAgYm9vbCBpc01vbWVudHVtU2Nyb2xsRXZlbnQgPSAod2hlZWxFdmVudC5tb21lbnR1bVBo
YXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKTsKKyAgICBpZiAobV9pZ25vcmVN
b21lbnR1bVNjcm9sbHMgJiYgKGlzTW9tZW50dW1TY3JvbGxFdmVudCB8fCBtX3NuYXBSdWJiZXJC
YW5kVGltZXIuaXNBY3RpdmUoKSkpIHsKKyAgICAgICAgaWYgKHdoZWVsRXZlbnQubW9tZW50dW1Q
aGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQpIHsKICAgICAgICAgICAgIG1f
aWdub3JlTW9tZW50dW1TY3JvbGxzID0gZmFsc2U7CisgICAgICAgICAgICB3aGVlbEV2ZW50LmFj
Y2VwdCgpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICB3aGVlbEV2
ZW50LmFjY2VwdCgpOwogICAgIHNtb290aFNjcm9sbFdpdGhFdmVudCh3aGVlbEV2ZW50KTsKIH0K
IApAQCAtODgxLDExICs5MjEsMTEgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Ny
b2xsV2l0aEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAvLyBSZXNl
dCBvdmVyZmxvdyB2YWx1ZXMgYmVjYXVzZSB3ZSBtYXkgZGVjaWRlIHRvIHJlbW92ZSBkZWx0YSBh
dCB2YXJpb3VzIHBvaW50cyBhbmQgcHV0IGl0IGludG8gb3ZlcmZsb3cuCiAgICAgbV9vdmVyZmxv
d1Njcm9sbERlbHRhID0gRmxvYXRTaXplKCk7CiAKLSAgICBmbG9hdCBldmVudENvYWxsZXNjZWRE
ZWx0YVggPSAtd2hlZWxFdmVudC5kZWx0YVgoKTsKLSAgICBmbG9hdCBldmVudENvYWxsZXNjZWRE
ZWx0YVkgPSAtd2hlZWxFdmVudC5kZWx0YVkoKTsKKyAgICBmbG9hdCBldmVudENvYWxlc2NlZERl
bHRhWCA9IC13aGVlbEV2ZW50LmRlbHRhWCgpOworICAgIGZsb2F0IGV2ZW50Q29hbGVzY2VkRGVs
dGFZID0gLXdoZWVsRXZlbnQuZGVsdGFZKCk7CiAKLSAgICBkZWx0YVggKz0gZXZlbnRDb2FsbGVz
Y2VkRGVsdGFYOwotICAgIGRlbHRhWSArPSBldmVudENvYWxsZXNjZWREZWx0YVk7CisgICAgZGVs
dGFYICs9IGV2ZW50Q29hbGVzY2VkRGVsdGFYOworICAgIGRlbHRhWSArPSBldmVudENvYWxlc2Nl
ZERlbHRhWTsKIAogICAgIC8vIFNsaWdodGx5IHByZWZlciBzY3JvbGxpbmcgdmVydGljYWxseSBi
eSBhcHBseWluZyB0aGUgPSBjYXNlIHRvIGRlbHRhWQogICAgIGlmIChmYWJzZihkZWx0YVkpID49
IGZhYnNmKGRlbHRhWCkpCkBAIC05MDgsMTQgKzk0OCwxNCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9y
TWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKHBoYXNlID09IFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gfHwgcGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2VDaGFuZ2VkKSkKICAgICAgICAgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgPSB0cnVlOwog
Ci0gICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKSAt
IG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wOworICAgIENGVGltZUludGVydmFsIHRpbWVE
ZWx0YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVz
dGFtcDsKICAgICBpZiAobV9pblNjcm9sbEdlc3R1cmUgfHwgbV9tb21lbnR1bVNjcm9sbEluUHJv
Z3Jlc3MpIHsKLSAgICAgICAgaWYgKG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wICYmIHRp
bWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2NpdHlaZXJvaW5nVGltZW91dCkg
ewotICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdpZHRoKGV2ZW50Q29hbGxlc2Nl
ZERlbHRhWCAvIChmbG9hdCl0aW1lRGVsdGEpOwotICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9j
aXR5LnNldEhlaWdodChldmVudENvYWxsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRhKTsK
LSAgICAgICAgICAgIG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50
aW1lc3RhbXAoKTsKKyAgICAgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wICYm
IHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2NpdHlaZXJvaW5nVGltZW91
dCkgeworICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdpZHRoKGV2ZW50Q29hbGVz
Y2VkRGVsdGFYIC8gKGZsb2F0KXRpbWVEZWx0YSk7CisgICAgICAgICAgICBtX21vbWVudHVtVmVs
b2NpdHkuc2V0SGVpZ2h0KGV2ZW50Q29hbGVzY2VkRGVsdGFZIC8gKGZsb2F0KXRpbWVEZWx0YSk7
CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQu
dGltZXN0YW1wKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX2xhc3RNb21lbXR1
bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CisgICAgICAgICAgICBt
X2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CiAg
ICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkgPSBGbG9hdFNpemUoKTsKICAgICAgICAgfQog
CkBAIC05NjksNyArMTAwOSw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNtb290aFNjcm9s
bFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBpZiAoIWFsbG93c0hvcml6b250YWxTdHJldGNoaW5nKCkpIHsKICAg
ICAgICAgICAgICAgICBkZWx0YVggPSAwOwotICAgICAgICAgICAgICAgIGV2ZW50Q29hbGxlc2Nl
ZERlbHRhWCA9IDA7CisgICAgICAgICAgICAgICAgZXZlbnRDb2FsZXNjZWREZWx0YVggPSAwOwog
ICAgICAgICAgICAgfSBlbHNlIGlmICgoZGVsdGFYICE9IDApICYmICFpc0hvcml6b250YWxseVN0
cmV0Y2hlZCAmJiAhcGlubmVkSW5EaXJlY3Rpb24oZGVsdGFYLCAwKSkgewogICAgICAgICAgICAg
ICAgIGRlbHRhWCAqPSBzY3JvbGxXaGVlbE11bHRpcGxpZXIoKTsKIApAQCAtOTgyLDcgKzEwMjIs
NyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQoUGxhdGZv
cm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAo
IWFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZygpKSB7CiAgICAgICAgICAgICAgICAgZGVsdGFZID0g
MDsKLSAgICAgICAgICAgICAgICBldmVudENvYWxsZXNjZWREZWx0YVkgPSAwOworICAgICAgICAg
ICAgICAgIGV2ZW50Q29hbGVzY2VkRGVsdGFZID0gMDsKICAgICAgICAgICAgIH0gZWxzZSBpZiAo
KGRlbHRhWSAhPSAwKSAmJiAhaXNWZXJ0aWNhbGx5U3RyZXRjaGVkICYmICFwaW5uZWRJbkRpcmVj
dGlvbigwLCBkZWx0YVkpKSB7CiAgICAgICAgICAgICAgICAgZGVsdGFZICo9IHNjcm9sbFdoZWVs
TXVsdGlwbGllcigpOwogCkBAIC05OTYsNyArMTAzNiw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JN
YWM6OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQp
CiAgICAgICAgICAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQgPSBtX3Njcm9sbGFibGVBcmVhLT5v
dmVyaGFuZ0Ftb3VudCgpOwogICAgICAgICAKICAgICAgICAgICAgIGlmIChtX21vbWVudHVtU2Ny
b2xsSW5Qcm9ncmVzcykgewotICAgICAgICAgICAgICAgIGlmICgocGlubmVkSW5EaXJlY3Rpb24o
ZXZlbnRDb2FsbGVzY2VkRGVsdGFYLCBldmVudENvYWxsZXNjZWREZWx0YVkpIHx8IChmYWJzZihl
dmVudENvYWxsZXNjZWREZWx0YVgpICsgZmFic2YoZXZlbnRDb2FsbGVzY2VkRGVsdGFZKSA8PSAw
KSkgJiYgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXApIHsKKyAgICAgICAgICAgICAgICBp
ZiAoKHBpbm5lZEluRGlyZWN0aW9uKGV2ZW50Q29hbGVzY2VkRGVsdGFYLCBldmVudENvYWxlc2Nl
ZERlbHRhWSkgfHwgKGZhYnNmKGV2ZW50Q29hbGVzY2VkRGVsdGFYKSArIGZhYnNmKGV2ZW50Q29h
bGVzY2VkRGVsdGFZKSA8PSAwKSkgJiYgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXApIHsK
ICAgICAgICAgICAgICAgICAgICAgbV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgPSB0cnVlOwogICAg
ICAgICAgICAgICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAg
ICAgICAgICAgICAgICAgICBzbmFwUnViYmVyQmFuZCgpOwpAQCAtMTAyMSw3ICsxMDYxLDcgQEAg
dm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICBpZiAobV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3Mg
JiYgcGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCkgewogICAgICAgICBtX21v
bWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgICAgICBtX2lnbm9yZU1vbWVudHVt
U2Nyb2xscyA9IGZhbHNlOwotICAgICAgICBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcCA9
IDA7CisgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gMDsKICAgICB9CiB9
CiAKQEAgLTEwMzMsOSArMTA3MywxMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpiZWdpblNj
cm9sbEdlc3R1cmUoKQogICAgIG1faW5TY3JvbGxHZXN0dXJlID0gdHJ1ZTsKICAgICBtX21vbWVu
dHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgIG1faWdub3JlTW9tZW50dW1TY3JvbGxz
ID0gZmFsc2U7Ci0gICAgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAgPSAwOworICAgIG1f
bGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gMDsKICAgICBtX21vbWVudHVtVmVsb2NpdHkg
PSBGbG9hdFNpemUoKTsKLQorICAgIG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPbkxlZnQgPSBt
X3Njcm9sbGFibGVBcmVhLT5pc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTGVmdCgpOworICAg
IG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPblJpZ2h0ID0gbV9zY3JvbGxhYmxlQXJlYS0+aXNI
b3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb1JpZ2h0KCk7CisgICAgbV9hZ2dyZWdhdGVTY3JvbGwg
PSAwOworICAgIG1fZGlkQWdncmVnYXRlU2Nyb2xsRXZlclN3aXRjaFRvT3Bwb3NpdGVEaXJlY3Rp
b25PZlBpbiA9IGZhbHNlOworICAgIAogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCA9IG1fc2Ny
b2xsYWJsZUFyZWEtPm92ZXJoYW5nQW1vdW50KCk7CiAgICAgbV9zdHJldGNoU2Nyb2xsRm9yY2Uu
c2V0V2lkdGgocmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKHN0cmV0Y2hBbW91bnQud2lkdGgo
KSkpOwogICAgIG1fc3RyZXRjaFNjcm9sbEZvcmNlLnNldEhlaWdodChyZWJvdW5kRGVsdGFGb3JF
bGFzdGljRGVsdGEoc3RyZXRjaEFtb3VudC5oZWlnaHQoKSkpOwpAQCAtMTA1NSw4ICsxMDk5LDgg
QEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6ZW5kU2Nyb2xsR2VzdHVyZSgpCiAKIHZvaWQgU2Ny
b2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kKCkKIHsKLSAgICBDRlRpbWVJbnRlcnZhbCB0
aW1lRGVsdGEgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5c3RlbVVwdGltZV0gLSBt
X2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcDsKLSAgICBpZiAobV9sYXN0TW9tZW10dW1TY3Jv
bGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID49IHNjcm9sbFZlbG9jaXR5WmVyb2luZ1RpbWVvdXQp
CisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJ
bmZvXSBzeXN0ZW1VcHRpbWVdIC0gbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXA7CisgICAg
aWYgKG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wICYmIHRpbWVEZWx0YSA+PSBzY3JvbGxW
ZWxvY2l0eVplcm9pbmdUaW1lb3V0KQogICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkgPSBGbG9h
dFNpemUoKTsKIAogICAgIG1faW5TY3JvbGxHZXN0dXJlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA0NTE1Zjc3Li5jOTM3NjA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE5MzAsNiArMTkzMCwxOSBA
QCBib29sIFJlbmRlckxheWVyOjpzY3JvbGxzT3ZlcmZsb3coKSBjb25zdAogICAgIHJldHVybiB0
b1JlbmRlckJveChyZW5kZXJlcigpKS0+c2Nyb2xsc092ZXJmbG93KCk7CiB9CiAKK3ZvaWQgUmVu
ZGVyTGF5ZXI6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIp
Cit7CisgICAgbV9yZW5kZXJlci0+ZG9jdW1lbnQoKS0+ZGlkQWRkV2hlZWxFdmVudEhhbmRsZXIo
KTsKKyAgICBTY3JvbGxhYmxlQXJlYTo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihzY3JvbGxi
YXIpOworfQorCit2b2lkIFJlbmRlckxheWVyOjp3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJh
cihTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICBTY3JvbGxhYmxlQXJlYTo6d2lsbFJlbW92
ZUhvcml6b250YWxTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKKyAgICAvLyBGSVhNRTogbWF5YmUgbmVl
ZCBhIHNlcGFyYXRlIFNjcm9sbGFibGVBcmVhOjpkaWRSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFy
IGNhbGxiYWNrPworICAgIG1fcmVuZGVyZXItPmRvY3VtZW50KCktPmRpZFJlbW92ZVdoZWVsRXZl
bnRIYW5kbGVyKCk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc0hvcml6b250YWxTY3Jv
bGxiYXIoYm9vbCBoYXNTY3JvbGxiYXIpCiB7CiAgICAgaWYgKGhhc1Njcm9sbGJhciA9PSAobV9o
QmFyICE9IDApKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAzMjZh
MTRkLi43OGNkYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAt
MjQ3LDYgKzI0Nyw4IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IGdldFJlY3RUb0V4cG9zZShjb25z
dCBJbnRSZWN0JiB2aXNpYmxlUmVjdCwgY29uc3QgSW50UmVjdCYgZXhwb3NlUmVjdCwgY29uc3Qg
U2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKTsK
IAogICAgIGJvb2wgc2Nyb2xsc092ZXJmbG93KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGRp
ZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIHdp
bGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZvaWQgc2V0SGFz
SG9yaXpvbnRhbFNjcm9sbGJhcihib29sKTsKICAgICB2b2lkIHNldEhhc1ZlcnRpY2FsU2Nyb2xs
YmFyKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDRlMDhjMTkuLjhhZGRk
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUt
MTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1l
cyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKwor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudEltcGw6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBv
ZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJ
bXBsOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBD
aHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTMgIFRhbyBCYWkgIDxtaWNoYWVsYmFpQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggMWZkNTQ1Yi4u
YzIwNjkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuaApAQCAtMTk2LDYgKzE5Niw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxs
UnVuTW9kYWxEaWFsb2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5cGUmKSBjb25z
dDsKIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29y
ZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2
b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorCiBwcml2YXRl
OgogICAgIHZvaWQgZ2V0UG9wdXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1cENvbnRhaW5lciosIFdl
YlBvcHVwTWVudUluZm8qKTsKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDdXJzb3JJbmZv
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNWY3Yjk2NS4uMmVkZGEwNyAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4n
dCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwg
ZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6c2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQg
bWV0aG9kCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6Om51bVdoZWVsRXZlbnRI
YW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QK
KwogMjAxMS0wNS0xMyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBzdHlsZSBlcnJvci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXggYWExNzk3NC4u
ZTBhMjBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50RWZsLmgKQEAgLTE1Miw2ICsxNTIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNv
bnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQodW5zaWduZWQpIHsgfQorCiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsKICAgICBL
VVJMIG1faG92ZXJlZExpbmtVUkw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDVhOGE3MzQuLjEx
ZjIzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBv
dmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9m
IG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAorCiAyMDExLTA1LTEzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBkNDIwYTJl
Li41ZDViMTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuaApAQCAtMTUyLDYgKzE1Miw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVs
ZW1lbnQqKTsKICNlbmRpZgogCisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5k
SW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVu
c2lnbmVkKSB7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYktpdFdlYlZpZXcqIG1fd2Vi
VmlldzsKICAgICAgICAgR3RrQWRqdXN0bWVudFdhdGNoZXIgbV9hZGp1c3RtZW50V2F0Y2hlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggYWU4OTBiZS4uNWU2OWVhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9oYWlrdS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdo
ZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1
OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9t
ZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1OjpudW1X
aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGll
bnQgbWV0aG9kCisKIDIwMTEtMDUtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmggYi9Tb3VyY2Uv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKaW5kZXggOGEw
OTdhMC4uMzIyZDBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaApAQCAtMTU5LDYgKzE1OSw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhlIGdpdmVuIGZvcm0g
ZWxlbWVudCBoYXMgY2hhbmdlZC4gVGhpcyBmdW5jdGlvbgogICAgICAgICAvLyB3aWxsIGJlIGNh
bGxlZCBmcmVxdWVudGx5LCBzbyBoYW5kbGluZyBzaG91bGQgYmUgdmVyeSBmYXN0LgogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKTsKKworICAgICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9s
bERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQg
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAgICAgfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDFiMTNlNzcuLmY0YmFjZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAg
PGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxv
dyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9t
ZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFu
ZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisK
IDIwMTEtMDUtMTMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDBlY2I5ZjIuLjNkMWIzMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC0xODIsNiArMTgyLDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
ICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KCk7CiAjZW5kaWYKKyAgICAKKyAgICB2
aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9Cisg
ICAgCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3Jl
OjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiBwcml2YXRlOgogICAg
IFdlYlZpZXcgKm1fd2ViVmlldzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDVkZGEwODEuLjczNDVm
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUg
IDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENhbid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZs
b3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5l
dyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAorCiAyMDExLTA1LTEzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODY0NDcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgK
aW5kZXggODE0YTE5Mi4uZDUyZWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMTkyLDYgKzE5Miw5IEBAIHB1YmxpYzoKICAg
ICBRV2ViU2VsZWN0TWV0aG9kKiBjcmVhdGVTZWxlY3RQb3B1cCgpIGNvbnN0OwogCiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJn
dW1lbnRzJikgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJ
bkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25l
ZCkgeyB9CiAKICAgICBRV2ViUGFnZSogbV93ZWJQYWdlOwogICAgIEtVUkwgbGFzdEhvdmVyVVJM
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCmluZGV4IDAwZWZlOGYuLjNkODc1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3Qg
aG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2
ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJ
bkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVm
YXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTMgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2Fy
bHNzb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCmluZGV4IDRhM2NmM2IuLjE1MjllMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODIsNiArMTgyLDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2Vi
Q29yZTo6RWxlbWVudCopOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVu
c2lnbmVkKSB7IH0KKwogcHJpdmF0ZToKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVs
ZWdhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCAzODMzODlhLi5mZDExZGViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8
am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93
IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnRXaW5DRTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9m
IG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdp
bkNFOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBD
aHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgg
Yi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgK
aW5kZXggOTU3MDlhZS4uMTNjOWVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaApAQCAtMTc3LDYgKzE3Nyw5IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVh
dGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCisgICAgdmlydHVhbCBib29s
IHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRs
ZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJW
aWV3OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggZWVhNmY2ZC4uMjEzMDMzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2Fu
J3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVs
IGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJv
bWVDbGllbnRXeC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OnNob3VsZFJ1
YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1l
dGhvZAorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6Om51bVdoZWVsRXZlbnRIYW5k
bGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwog
MjAxMS0wNS0wOSAgUm9iaW4gRHVubiAgPHJvYmluQGFsbGR1bm4uY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEtldmluIE9sbGl2aWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1
cHBvcnQvQ2hyb21lQ2xpZW50V3guaAppbmRleCAwZDgxNDljLi44MjBjOGFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAorKysgYi9T
b3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApAQCAtMTUyLDYg
KzE1Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVh
dGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCopIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisK
IHByaXZhdGU6CiAgICAgd3hXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGVh
NmIyZmEuLjgwMjk2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMS0wNS0xNCAg
Sm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFu
ZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAg
ICAgIFdlIGtlZXAgdHJhY2sgb2YgdGhlIG51bWJlciBvZiBob3Jpem9udGFsIHNjcm9sbGJhcnMg
YW5kIG1vdXNlIHdoZWVsIGV2ZW50IGhhbmRsZXJzIGluIHRoZQorICAgICAgICBVSSBwcm9jZXNz
IGFzIGEgbWVhbnMgb2YgZGV0ZXJtaW5pbmcgd2hldGhlciBob3Jpem9udGFsIHNjcm9sbCBldmVu
dHMgd2lsbCBiZSBoYW5kbGVkCisgICAgICAgIGJ5IHRoZSB3ZWIgcHJvY2Vzcy4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OndpbGxIYW5kbGVIb3Jpem9udGFsU2Nyb2xsRXZlbnRzKTogUmV0dXJuIHRydWUgaWYg
dGhlcmUgaXMgYXQgbGVhc3QKKyAgICAgICAgb25lIHdoZWVsIGV2ZW50IGhhbmRsZXIKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IEFkZCBuZXcgdmFyaWFibGUgdG8gY2FjaGUg
dGhlIGNvdW50CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bnVtV2hlZWxFdmVudEhh
bmRsZXJzQ2hhbmdlZCk6IFNldHMgdGhlIGNvdW50CisKKyAgICAgICAgVGhlIHJlc3QganVzdCBw
cm92aWRlcyBhbGwgdGhlIGNvbm5lY3Rpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlV2lsbEhhbmRsZUhvcml6b250YWxTY3JvbGxFdmVu
dHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hv
dWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRm9yd2FyZCB0byBpbmplY3RlZCBidW5kbGUgVUkg
Y2xpZW50CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6dXBkYXRlQ291bnRXaGVl
bEV2ZW50SGFuZGxlcnMpOiBVcGRhdGVzIHRoZSB3ZWIgcGFnZSBwcm94eQorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTEtMDUtMTQg
IERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBB
bGljZSBMaXUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4
IDk0MWQyYzcuLjNjM2QyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCkBAIC0xNDYsNiArMTQ2LDExIEBAIFdLQmFja0ZvcndhcmRMaXN0UmVmIFdLUGFnZUdl
dEJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYgcGFnZVJlZikKICAgICByZXR1cm4gdG9BUEkodG9J
bXBsKHBhZ2VSZWYpLT5iYWNrRm9yd2FyZExpc3QoKSk7CiB9CiAKK2Jvb2wgV0tQYWdlV2lsbEhh
bmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoV0tQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0
dXJuIHRvSW1wbChwYWdlUmVmKS0+d2lsbEhhbmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoKTsK
K30KKwogV0tTdHJpbmdSZWYgV0tQYWdlQ29weVRpdGxlKFdLUGFnZVJlZiBwYWdlUmVmKQogewog
ICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwocGFnZVJlZiktPnBhZ2VUaXRsZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCBkMDFjODM4Li4xZDQzNGJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0yODgsNyArMjg4
LDggQEAgV0tfRVhQT1JUIGJvb2wgV0tQYWdlQ2FuR29CYWNrKFdLUGFnZVJlZiBwYWdlKTsKIFdL
X0VYUE9SVCB2b2lkIFdLUGFnZUdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdLUGFnZVJlZiBwYWdl
LCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VU
cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIFdLQmFj
a0ZvcndhcmRMaXN0UmVmIFdLUGFnZUdldEJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYgcGFnZSk7
Ci0KK1dLX0VYUE9SVCBib29sIFdLUGFnZVdpbGxIYW5kbGVIb3Jpem9udGFsU2Nyb2xsRXZlbnRz
KFdLUGFnZVJlZiBwYWdlKTsKKyAgICAKIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1BhZ2VDb3B5
VGl0bGUoV0tQYWdlUmVmIHBhZ2UpOwogCiBXS19FWFBPUlQgV0tVUkxSZWYgV0tQYWdlQ29weVBl
bmRpbmdBUElSZXF1ZXN0VVJMKFdLUGFnZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNGJhMDRhNy4uYzYxNTgyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMwNjAsNiArMzA2MCwxMSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQogICAgIG1fbG9hZGVyQ2xpZW50LmRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4o
dGhpcywgbWltZVR5cGUpOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6d2lsbEhhbmRsZUhvcml6
b250YWxTY3JvbGxFdmVudHMoKSBjb25zdAoreworICAgIHJldHVybiBtX3doZWVsRXZlbnRIYW5k
bGVyQ291bnQgPiAwOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZGluZ0Rh
dGFGb3JDdXN0b21SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1l
LCBjb25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQogewogICAgIG1f
cGFnZUNsaWVudC0+ZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXByZXNlbnRhdGlvbihz
dWdnZXN0ZWRGaWxlbmFtZSwgZGF0YVJlZmVyZW5jZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggMzE0OTcwYS4uNzMxNmJmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjI2LDYgKzIyNiw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRl
ZEl0ZW0sIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpOwogICAgIHZv
aWQgc2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBz
aG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSk7CiAKKyAgICBib29sIHdpbGxIYW5kbGVIb3Jp
em9udGFsU2Nyb2xsRXZlbnRzKCkgY29uc3Q7CisKICAgICBib29sIGNhblNob3dNSU1FVHlwZShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdDsKIAogICAgIGJvb2wgZHJhd3NCYWNrZ3JvdW5k
KCkgY29uc3QgeyByZXR1cm4gbV9kcmF3c0JhY2tncm91bmQ7IH0KQEAgLTYxMSw2ICs2MTMsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29s
IGhhc0hvcml6b250YWxTY3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIpOwogICAg
IHZvaWQgZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlubmluZ0Zvck1haW5GcmFtZShib29sIHBpbm5l
ZFRvTGVmdFNpZGUsIGJvb2wgcGlubmVkVG9SaWdodFNpZGUpOwogICAgIHZvaWQgZGlkRmFpbFRv
SW5pdGlhbGl6ZVBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyAgICB2b2lkIG51bVdo
ZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgY291bnQpIHsgbV93aGVlbEV2ZW50SGFu
ZGxlckNvdW50ID0gY291bnQ7IH0KIAogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsK
ICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0
SXRlbSopOwpAQCAtODY2LDYgKzg2OSw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fbWFpbkZy
YW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhcjsKICAgICBib29sIG1fbWFpbkZyYW1lSGFzVmVydGlj
YWxTY3JvbGxiYXI7CisgICAgLy8gVGhpcyBhZ2dyZWdhdGVkIGNvdW50IG9mIHdoZWVsIGhhbmRs
ZXJzIG9ubHkgaW5jbHVkZXMgaG9yaXpvbnRhbCBzY3JvbGxiYXJzCisgICAgLy8gYW5kIEpTIHdo
ZWVsIGV2ZW50IGhhbmRsZXJzLgorICAgIGludCBtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQ7CiAK
ICAgICBib29sIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0xlZnRTaWRlOwogICAgIGJvb2wgbV9tYWlu
RnJhbWVJc1Bpbm5lZFRvUmlnaHRTaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOWE5YzEzNS4uMWNlZGJlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBA
IC02Miw2ICs2Miw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkQ2hhbmdl
U2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIsIGJvb2wg
aGFzVmVydGljYWxTY3JvbGxiYXIpCiAgICAgRGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlubmluZ0Zv
ck1haW5GcmFtZShib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxT
Y3JvbGxiYXIpCiAgICAgRGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihXVEY6OlN0cmluZyBtaW1l
VHlwZSkKKyAgICBOdW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIGNvdW50KQog
CiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgUGFnZURpZFJlcXVlc3RTY3Jv
bGwoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRl
eCA2ZTEyOTU0Li4wOTdmMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTcyLDYg
KzcyLDEyIEBAIGVudW0gewogfTsKIHR5cGVkZWYgdWludDMyX3QgV0tGdWxsU2NyZWVuS2V5Ym9h
cmRSZXF1ZXN0VHlwZTsKIAorZW51bSB7CisgICAgV0tTY3JvbGxEaXJlY3Rpb25MZWZ0LAorICAg
IFdLU2Nyb2xsRGlyZWN0aW9uUmlnaHQKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLU2Nyb2xsRGly
ZWN0aW9uOworCiAvLyBMb2FkZXIgQ2xpZW50CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VE
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRh
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTE3NSw3ICsxODEsOCBAQCB0eXBlZGVmIHZv
aWQgKCpXS0J1bmRsZVBhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrKShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZQogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkU2Nyb2xsQ2FsbGJh
Y2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLQnVuZGxlUGFnZVBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhQ2FsbGJhY2spKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0dyYXBoaWNzQ29udGV4dFJlZiBncmFwaGljc0NvbnRleHQs
IFdLUmVjdCBob3Jpem9udGFsT3ZlcmhhbmcsIFdLUmVjdCB2ZXJ0aWNhbE92ZXJoYW5nLCBXS1Jl
Y3QgZGlydHlSZWN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgV0tTdHJpbmdS
ZWYgKCpXS0J1bmRsZVBhZ2VHZW5lcmF0ZUZpbGVGb3JVcGxvYWRDYWxsYmFjaykoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG9yaWdpbmFsRmlsZVBhdGgsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwotCit0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGRSdWJiZXJCYW5k
SW5EaXJlY3Rpb25DYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU2Nyb2xsRGlyZWN0
aW9uIHNjcm9sbERpcmVjdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgCiBzdHJ1
Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKICAgICBj
b25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsaWVudEluZm87CkBAIC0xODksNiArMTk2LDcgQEAgc3RydWN0IFdLQnVuZGxl
UGFnZVVJQ2xpZW50IHsKICAgICBXS0J1bmRsZVBhZ2VQYWludEN1c3RvbU92ZXJoYW5nQXJlYUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhOwog
ICAgIFdLQnVuZGxlUGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkR2VuZXJhdGVGaWxlRm9yVXBsb2FkOwogICAgIFdLQnVuZGxl
UGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2VuZXJhdGVGaWxlRm9yVXBsb2FkOworICAgIFdLQnVuZGxlUGFnZVNob3VsZFJ1YmJlckJh
bmRJbkRpcmVjdGlvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgc2hvdWxkUnViYmVyQmFu
ZEluRGlyZWN0aW9uOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50IFdL
QnVuZGxlUGFnZVVJQ2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuY3BwCmluZGV4IDUzMmQwNTguLjQ4ODAwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwCkBAIC0xMTUsNCArMTE1LDkgQEAgU3RyaW5nIEluamVj
dGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpnZW5lcmF0ZUZpbGVGb3JVcGxvYWQoV2ViUGFnZSogcGFn
ZSwgY29uc3QgU3QKICAgICByZXR1cm4gZ2VuZXJhdGVkRmlsZVBhdGggPyBnZW5lcmF0ZWRGaWxl
UGF0aC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKIH0KIAorYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VV
SUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYlBhZ2UqIHBhZ2UsIFdLU2Ny
b2xsRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQuc2hv
dWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKHRvQVBJKHBhZ2UpLCBkaXJlY3Rpb24sIG1fY2xpZW50
LmNsaWVudEluZm8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAppbmRleCA0N2E1Y2E4Li5mYmJiOTBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC01OCw2ICs1OCw4IEBAIHB1
YmxpYzoKIAogICAgIFN0cmluZyBzaG91bGRHZW5lcmF0ZUZpbGVGb3JVcGxvYWQoV2ViUGFnZSos
IGNvbnN0IFN0cmluZyYgb3JpZ2luYWxGaWxlUGF0aCk7CiAgICAgU3RyaW5nIGdlbmVyYXRlRmls
ZUZvclVwbG9hZChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbEZpbGVQYXRoKTsKKyAg
ICAKKyAgICBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJQYWdlKiwgV0tTY3Jv
bGxEaXJlY3Rpb24pIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKaW5kZXggZmQ1ZWU1NS4uNGI0ZWI2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtNzU5LDQgKzc1OSwyMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6bm90aWZ5
U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBJbnRSZWN0JiBzY3JvbGxlcgogICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpOb3RpZnlTY3JvbGxlclRodW1i
SXNWaXNpYmxlSW5SZWN0KHNjcm9sbGVyVGh1bWIpKTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24g
ZGlyZWN0aW9uKSBjb25zdAoreworICAgIEFTU0VSVChkaXJlY3Rpb24gIT0gV2ViQ29yZTo6U2Ny
b2xsVXAgJiYgZGlyZWN0aW9uICE9IFdlYkNvcmU6OlNjcm9sbERvd24pOworICAgIAorICAgIGlm
IChkaXJlY3Rpb24gPT0gV2ViQ29yZTo6U2Nyb2xsTGVmdCkKKyAgICAgICAgcmV0dXJuIG1fcGFn
ZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbiht
X3BhZ2UsIFdLU2Nyb2xsRGlyZWN0aW9uTGVmdCk7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBXZWJD
b3JlOjpTY3JvbGxSaWdodCkKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVV
SUNsaWVudCgpLnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihtX3BhZ2UsIFdLU2Nyb2xsRGly
ZWN0aW9uUmlnaHQpOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFu
Z2VkKHVuc2lnbmVkIGNvdW50KQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpOdW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGNvdW50KSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOTAzOGVhZi4uZDAwMTdi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMTgsNiArMjE4LDkgQEAgcHJpdmF0ZToKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxl
clRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVj
dGlvbikgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQodW5zaWduZWQpOwogCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBt
dXRhYmxlIFJlZlB0cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0ZDViOGIx
Li4xNTRmMmMxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENh
bid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVl
bCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5q
ZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOiBTZXQgbmV3IGRlZmF1bHQgbWV0
aG9kIHRvIG5pbC4KKwogMjAxMS0wNS0xNCAgQXJubyBSZW5ldmllciAgPGFybm9AcmVuZXZpZXIu
bmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmNwcAppbmRleCAyYTFmODVkLi5iNzliZTRkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwCkBAIC0yMjUsNiArMjI1LDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRs
ZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIDAsIC8qcGFpbnRDdXN0b21PdmVy
aGFuZ0FyZWEqLwogICAgICAgICAwLCAvKnNob3VsZEdlbmVyYXRlRmlsZUZvclVwbG9hZCovCiAg
ICAgICAgIDAsIC8qZ2VuZXJhdGVGaWxlRm9yVXBsb2FkKi8KKyAgICAgICAgMCwgLypzaG91bGRS
dWJiZXJCYW5kSW5EaXJlY3Rpb24qLwogICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0VUlDbGll
bnQobV9wYWdlLCAmdWlDbGllbnQpOwogCi0tIAoxLjcuNC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93599</attachid>
            <date>2011-05-15 19:50:55 -0700</date>
            <delta_ts>2011-05-15 23:22:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>OpenSource.patch</filename>
            <type>text/plain</type>
            <size>63279</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSA4Yzg5OGMxZWUyODllZTUxMmMwY2I0NjY2NGM5YzQ1MGM0OTk3MjYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTYXQs
IDE0IE1heSAyMDExIDAxOjQwOjEzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQ2FuJ3QgaG9yaXpv
bnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsCiBldmVudHMg
YXJlIGFsd2F5cyBhY2NlcHRlZAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNzc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoK
KiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogSW5pdGlh
bGl6ZSB3aGVlbCBldmVudCBoYW5kbGVyIGNvdW50CihXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQWRk
V2hlZWxFdmVudEhhbmRsZXIpOiBJbmNyZW1lbnQgY291bnQsIGFuZCB0ZWxsIHRoZSBtYWluIGZy
YW1lCnRvIHJlY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2Ygd2hlZWwgZXZlbnQgaGFuZGxl
cnMgaW4gYWxsIG9mIGl0cyBmcmFtZXMnIGRvY3VtZW50cwooV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
ZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKKiBk
b20vRG9jdW1lbnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlckNvdW50
KTogQWNjZXNzIHRoZSBjb3VudAoqIGRvbS9Ob2RlLmNwcDoKKFdlYkNvcmU6OnRyeUFkZEV2ZW50
TGlzdGVuZXIpOiBJZiB0aGUgZXZlbnQgbGlzdGVuZXIgaXMgYSBtb3VzZSB3aGVlbCBldmVudCwg
dGhlbgp0ZWxsIHRoZSBkb2N1bWVudCB0byBpbmNyZW1lbnQgaXRzIGNvdW50CihXZWJDb3JlOjp0
cnlSZW1vdmVFdmVudExpc3RlbmVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKCiogcGFn
ZS9DaHJvbWVDbGllbnQuaDogVHdvIG5ldyBtZXRob2RzOgogIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQ6IFdlYlByb2Nlc3MgdGVsbHMgVUlQcm9jZXNzIHRvIHVwZGF0ZSBpdHMgY2FjaGVk
CiAgICBjb3VudCBvZiB0b3RhbCB3aGVlbCBldmVudCBoYW5kbGVycywgd2hpY2ggaW4gdGhpcyBj
YXNlIG9ubHkgaW5jbHVkZSBob3Jpem9udGFsCiAgICBzY3JvbGxiYXJzIGFuZCBtb3VzZSB3aGVl
bCBKUyBoYW5kbGVycwogIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbjogYWxsb3cgdGhlIFVJ
UHJvY2VzcyB0byBwcm92aWRlIHNvbWUgY29udHJvbCBvdmVyCiAgICB3aGV0aGVyIHJ1YmJlciBi
YW5kaW5nIGlzIGFsbG93ZWQgd2hlbiBzY3JvbGxpbmcgaW4gYSBwYXJ0aWN1bGFyIGRpcmVjdGlv
bgoqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpu
dW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBlbXB0eSBpbXBsCihXZWJDb3Jl
OjpFbXB0eUNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVs
dCBlbXB0eSBpbXBsCiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgooV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogUmVtb3ZlIGEgcmVkdW5kYW50IHBvaW50ZXIgY2hlY2sK
KiBwYWdlL0ZyYW1lLmNwcDoKKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1bWVudCk6IFdoZW4gdGhl
IGZyYW1lJ3MgZG9jdW1lbnQgY2hhbmdlcywgY2FsY3VsYXRlIHRoYXQKZG9jdW1lbnQncyB0b3Rh
bCB3aGVlbCBldmVudCBoYW5kbGVycywgYW5kIG5vdGlmeSB0aGUgVUlQcm9jZXNzCihXZWJDb3Jl
OjpGcmFtZTo6bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQp
OiBQZXJmb3JtcyBhIGNyYXdsCm9mIHRoZSBmcmFtZSB0cmVlIHRvIGFnZ3JlZ2F0ZSB0aGUgY291
bnQKKiBwYWdlL0ZyYW1lLmg6CgoqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6IFZpcnR1YWxp
emUgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhciBhbmQKd2lsbFJlbW92ZUhvcml6b250YWxTY3Jv
bGxiYXIgZm9yIG92ZXJyaWRpbmcgaW4gUmVuZGVyTGF5ZXIgYW5kIEZyYW1lVmlldwooV2ViQ29y
ZTo6U2Nyb2xsYWJsZUFyZWE6OmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9MZWZ0KTogUmV0
dXJucyB0cnVlIGlmIHRoZXJlIGlzCm5vIHNjcm9sbGJhciBvciB0aGUgc2Nyb2xsZXIgcG9zaXRp
b24gaXMgaW4gdGhlIG1pbmltdW0gc2Nyb2xsIHBvc2l0aW9uLgooV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9SaWdodCk6IENvbnZlcnNlIG9mIHRo
ZSBhYm92ZS4KKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24pOiBEZWZhdWx0IGltcGwKKiBwYWdlL0ZyYW1lVmlldy5jcHA6CihXZWJDb3JlOjpGcmFt
ZVZpZXc6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdzIGRv
Y3VtZW50J3MgY291bnQKKFdlYkNvcmU6OkZyYW1lVmlldzo6d2lsbFJlbW92ZUhvcml6b250YWxT
Y3JvbGxiYXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MKY291bnQKKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogQ29ubmVjdGl2ZSBnbHVl
CiogcGFnZS9GcmFtZVZpZXcuaDogQWRkaW5nIG92ZXJyaWRpbmcgbWV0aG9kcyBmcm9tIFNjcm9s
bGFibGVBcmVhCiogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDogU2ltaWxhciBmdW5jdGlvbmFs
aXR5IHRvIEZyYW1lVmlldwooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRpZEFkZEhvcml6b250YWxT
Y3JvbGxiYXIpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Ny
b2xsYmFyKToKKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKCiogcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmg6IEZpeCB0eXBvIG9mICJtb21lbnR1bSIKKiBwbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMubW06CihXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5p
bWF0b3JNYWMpOiBGaXggdHlwbyBvZiAibW9tZW50dW0iCihXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KTogRml4IHR5cG8gb2YgImNvYWxlc2NlZCIKKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpiZWdpblNjcm9sbEdlc3R1cmUpOiBGaXggdHlwbyBv
ZiAiY29hbGVzY2VkIgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5k
KTogRml4IHR5cG8gb2YgIm1vbWVudHVtIgoKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpo
YW5kbGVXaGVlbEV2ZW50KTogTmV3IGxvZ2ljIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyCnRvIGFs
bG93IHJ1YmJlci1iYW5kaW5nIGJhc2VkIG9uIHRoZSBhcmVhJ3Mgc2Nyb2xsIHBvc2l0aW9uIGFu
ZCB0aGUgd2hlZWwgZXZlbnQuCkNvdWxkIHByZXZlbnQgYWNjZXB0aW5nIHRoZSB3aGVlbCBldmVu
dC4gQWxzbywgZml4IHR5cG8gb2YgIm1vbWVudHVtIgooV2ViQ29yZTo6aXNTY3JvbGxpbmdMZWZ0
QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2lj
CihXZWJDb3JlOjppc1Njcm9sbGluZ1JpZ2h0QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGlu
ZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCgpTb3VyY2UvV2ViS2l0L2Nocm9taXVtOgoKKiBz
cmMvQ2hyb21lQ2xpZW50SW1wbC5oOgooV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpzaG91bGRS
dWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBt
ZXRob2QKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dl
YktpdC9lZmw6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgooV2ViQ29yZTo6
Q2hyb21lQ2xpZW50RWZsOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGlt
cGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9ndGs6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5oOgooV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRp
cmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAooV2ViS2l0
OjpDaHJvbWVDbGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGlt
cGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKClNvdXJjZS9XZWJLaXQvaGFpa3U6CgoqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1Lmg6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRI
YWlrdTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBD
aHJvbWVDbGllbnQgbWV0aG9kCihXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6bnVtV2hlZWxF
dmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1l
dGhvZAoKU291cmNlL1dlYktpdC9tYWM6CgoqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgooV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVm
YXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJDaHJvbWVDbGllbnQ6OnNo
b3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xp
ZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9xdDoKCiogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuaDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKFdlYkNvcmU6
OkNocm9tZUNsaWVudFF0OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L3dpbjoKCiogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CihXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFJ1
YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1l
dGhvZAooV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVm
YXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L3dpbmNl
OgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgooV2ViS2l0OjpDaHJvbWVD
bGllbnRXaW5DRTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9m
IG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpudW1X
aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGll
bnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L3d4OgoKKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVu
dFd4Lmg6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJDb3JlOjpD
aHJvbWVDbGllbnRXeDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1w
bCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdDI6CgpXZSBrZWVwIHRy
YWNrIG9mIHRoZSBudW1iZXIgb2YgaG9yaXpvbnRhbCBzY3JvbGxiYXJzIGFuZCBtb3VzZSB3aGVl
bCBldmVudCBoYW5kbGVycyBpbiB0aGUKVUkgcHJvY2VzcyBhcyBhIG1lYW5zIG9mIGRldGVybWlu
aW5nIHdoZXRoZXIgaG9yaXpvbnRhbCBzY3JvbGwgZXZlbnRzIHdpbGwgYmUgaGFuZGxlZApieSB0
aGUgd2ViIHByb2Nlc3MuCgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgooV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OndpbGxIYW5kbGVIb3Jpem9udGFsU2Nyb2xsRXZlbnRzKTogUmV0dXJuIHRy
dWUgaWYgdGhlcmUgaXMgYXQgbGVhc3QKb25lIHdoZWVsIGV2ZW50IGhhbmRsZXIKKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6IEFkZCBuZXcgdmFyaWFibGUgdG8gY2FjaGUgdGhlIGNvdW50CihX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IFNldHMg
dGhlIGNvdW50CgpUaGUgcmVzdCBqdXN0IHByb3ZpZGVzIGFsbCB0aGUgY29ubmVjdGlvbnMuCiog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CihXS1BhZ2VXaWxsSGFuZGxlSG9yaXpvbnRhbFNj
cm9sbEV2ZW50cyk6CiogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oOgoqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW46CiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuaDoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVVJQ2xpZW50LmNwcDoKKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OnNo
b3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6CiogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oOgoqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3Rpb24pOiBGb3J3YXJkIHRvIGluamVjdGVkIGJ1bmRsZSBVSSBjbGllbnQK
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp1cGRhdGVDb3VudFdoZWVsRXZlbnRIYW5kbGVycyk6
IFVwZGF0ZXMgdGhlIHdlYiBwYWdlIHByb3h5CiogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKClRvb2xzOgoKKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CihXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5q
ZWN0ZWRCdW5kbGVQYWdlKTogU2V0IG5ldyBkZWZhdWx0IG1ldGhvZCB0byBuaWwuCi0tLQogU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDY3ICsr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAg
ICAgICAgICB8ICAgMTggKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAg
ICAgICAgICAgICAgICAgfCAgICA3ICsrCiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrLQogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oICAgICAgICAgICAgICAgfCAgICA0ICsKIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmggICAgICAgICAgICAgICAgIHwgICAgMyArCiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysrLQogU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsK
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAgIHwgICAy
NCArKysrKwogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCAgICAgICAgICAgICAgICAg
ICAgfCAgICAzICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggICAg
ICAgICAgIHwgICAgOSArKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5oICAgIHwgICAgNiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tICAgfCAgIDkyICsrKysrKysrKysrKysrLS0tLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgICAgICAgICAgIHwgICAxMyArKysKIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oICAgICAgICAgICAgIHwgICAgMiArCiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTEg
KysrCiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggICAgICB8
ICAgIDMgKwogU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDExICsrKwogU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50RWZsLmggfCAgICAzICsKIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5oIHwgICAgMyArCiBTb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrCiAuLi4vaGFpa3UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50SGFpa3UuaCAgICAgICB8ICAgIDMgKwogU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKwogU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggfCAgICA0ICsKIFNvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysKIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCAgIHwgICAgMyAr
CiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTEgKysrCiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCB8ICAgIDMgKwogU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDExICsrKwogLi4uL3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdp
bkNFLmggICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oICAgIHwgICAgMyArCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKysrKysrKwogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAgICAgfCAgICA1ICsKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCAgICAgICAgICAgIHwgICAgMyArLQogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgfCAgICA1ICsKIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCAgICAgICAgICAgIHwgICAgNiAr
KwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiAgfCAg
ICAxICsKIC4uLi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5o
IHwgICAxMCArKy0KIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVu
dC5jcHAgIHwgICAgNSArCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaCAgICB8ICAgIDIgKwogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcCAgfCAgIDE4ICsrKysKIC4uLi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oICAgIHwgICAgMyArCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuY3BwICAgICAgICAgIHwgICAgMSArCiA0NyBmaWxlcyBjaGFuZ2Vk
LCA0ODEgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJkYzgw
YWYuLmQyZDdiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMS0wNS0xNCAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBv
dmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVu
dCk6IEluaXRpYWxpemUgd2hlZWwgZXZlbnQgaGFuZGxlciBjb3VudAorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKTogSW5jcmVtZW50IGNvdW50LCBh
bmQgdGVsbCB0aGUgbWFpbiBmcmFtZQorICAgICAgICB0byByZWNhbGN1bGF0ZSB0aGUgdG90YWwg
bnVtYmVyIG9mIHdoZWVsIGV2ZW50IGhhbmRsZXJzIGluIGFsbCBvZiBpdHMgZnJhbWVzJyBkb2N1
bWVudHMKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpkaWRSZW1vdmVXaGVlbEV2ZW50SGFu
ZGxlcik6IFJldmVyc2Ugb2YgcHJldmlvdXMgbWV0aG9kCisgICAgICAgICogZG9tL0RvY3VtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2hlZWxFdmVudEhhbmRsZXJDb3VudCk6
IEFjY2VzcyB0aGUgY291bnQKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0cnlBZGRFdmVudExpc3RlbmVyKTogSWYgdGhlIGV2ZW50IGxpc3RlbmVyIGlzIGEgbW91
c2Ugd2hlZWwgZXZlbnQsIHRoZW4KKyAgICAgICAgdGVsbCB0aGUgZG9jdW1lbnQgdG8gaW5jcmVt
ZW50IGl0cyBjb3VudAorICAgICAgICAoV2ViQ29yZTo6dHJ5UmVtb3ZlRXZlbnRMaXN0ZW5lcik6
IFJldmVyc2Ugb2YgcHJldmlvdXMgbWV0aG9kCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVu
dC5oOiBUd28gbmV3IG1ldGhvZHM6CisgICAgICAgICAgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZDogV2ViUHJvY2VzcyB0ZWxscyBVSVByb2Nlc3MgdG8gdXBkYXRlIGl0cyBjYWNoZWQKKyAg
ICAgICAgICAgIGNvdW50IG9mIHRvdGFsIHdoZWVsIGV2ZW50IGhhbmRsZXJzLCB3aGljaCBpbiB0
aGlzIGNhc2Ugb25seSBpbmNsdWRlIGhvcml6b250YWwKKyAgICAgICAgICAgIHNjcm9sbGJhcnMg
YW5kIG1vdXNlIHdoZWVsIEpTIGhhbmRsZXJzCisgICAgICAgICAgc2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uOiBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHByb3ZpZGUgc29tZSBjb250cm9sIG92
ZXIKKyAgICAgICAgICAgIHdoZXRoZXIgcnViYmVyIGJhbmRpbmcgaXMgYWxsb3dlZCB3aGVuIHNj
cm9sbGluZyBpbiBhIHBhcnRpY3VsYXIgZGlyZWN0aW9uCisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Om51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGVtcHR5IGltcGwKKyAgICAgICAgKFdlYkNv
cmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZh
dWx0IGVtcHR5IGltcGwKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOiBSZW1vdmUgYSByZWR1
bmRhbnQgcG9pbnRlciBjaGVjaworICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWU6OnNldERvY3VtZW50KTogV2hlbiB0aGUgZnJhbWUncyBkb2N1bWVudCBj
aGFuZ2VzLCBjYWxjdWxhdGUgdGhhdAorICAgICAgICBkb2N1bWVudCdzIHRvdGFsIHdoZWVsIGV2
ZW50IGhhbmRsZXJzLCBhbmQgbm90aWZ5IHRoZSBVSVByb2Nlc3MKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lOjpub3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCk6
IFBlcmZvcm1zIGEgY3Jhd2wKKyAgICAgICAgb2YgdGhlIGZyYW1lIHRyZWUgdG8gYWdncmVnYXRl
IHRoZSBjb3VudAorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKworICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmg6IFZpcnR1YWxpemUgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhciBh
bmQKKyAgICAgICAgd2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIgZm9yIG92ZXJyaWRpbmcg
aW4gUmVuZGVyTGF5ZXIgYW5kIEZyYW1lVmlldworICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJs
ZUFyZWE6OmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9MZWZ0KTogUmV0dXJucyB0cnVlIGlm
IHRoZXJlIGlzCisgICAgICAgIG5vIHNjcm9sbGJhciBvciB0aGUgc2Nyb2xsZXIgcG9zaXRpb24g
aXMgaW4gdGhlIG1pbmltdW0gc2Nyb2xsIHBvc2l0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsYWJsZUFyZWE6OmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9SaWdodCk6IENvbnZlcnNl
IG9mIHRoZSBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzaG91bGRS
dWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZEFkZEhvcml6b250YWxT
Y3JvbGxiYXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MgY291bnQKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIpOiBVcGRh
dGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MKKyAgICAgICAgY291bnQKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogQ29ubmVjdGl2ZSBn
bHVlCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDogQWRkaW5nIG92ZXJyaWRpbmcgbWV0aG9k
cyBmcm9tIFNjcm9sbGFibGVBcmVhCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDogU2ltaWxhciBmdW5jdGlvbmFsaXR5IHRvIEZyYW1lVmlldworICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLmg6IEZpeCB0eXBvIG9mICJtb21lbnR1bSIKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBGaXggdHlwbyBvZiAibW9tZW50
dW0iCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0
aEV2ZW50KTogRml4IHR5cG8gb2YgImNvYWxlc2NlZCIKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjpiZWdpblNjcm9sbEdlc3R1cmUpOiBGaXggdHlwbyBvZiAiY29hbGVzY2Vk
IgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kKTog
Rml4IHR5cG8gb2YgIm1vbWVudHVtIgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogTmV3IGxvZ2ljIGZvciBkZXRlcm1pbmlu
ZyB3aGV0aGVyCisgICAgICAgIHRvIGFsbG93IHJ1YmJlci1iYW5kaW5nIGJhc2VkIG9uIHRoZSBh
cmVhJ3Mgc2Nyb2xsIHBvc2l0aW9uIGFuZCB0aGUgd2hlZWwgZXZlbnQuCisgICAgICAgIENvdWxk
IHByZXZlbnQgYWNjZXB0aW5nIHRoZSB3aGVlbCBldmVudC4gQWxzbywgZml4IHR5cG8gb2YgIm1v
bWVudHVtIgorICAgICAgICAoV2ViQ29yZTo6aXNTY3JvbGxpbmdMZWZ0QW5kU2hvdWxkTm90UnVi
YmVyQmFuZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCisgICAgICAgIChXZWJD
b3JlOjppc1Njcm9sbGluZ1JpZ2h0QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGluZSBoZWxw
ZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCisKIDIwMTEtMDUtMTUgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRz
a3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA3YTQxYzk5Li44NzhlZGEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQyMiw2ICs0MjIsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQo
RnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwp
CiAgICAgLCBtX3dyaXRpbmdNb2RlU2V0T25Eb2N1bWVudEVsZW1lbnQoZmFsc2UpCiAgICAgLCBt
X3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwKGZhbHNlKQogICAgICwgbV93cml0ZVJlY3Vyc2lvbkRl
cHRoKDApCisgICAgLCBtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQoMCkKIHsKICAgICBtX2RvY3Vt
ZW50ID0gdGhpczsKIApAQCAtNTA3OSw0ICs1MDgwLDIxIEBAIFBhc3NSZWZQdHI8VG91Y2hMaXN0
PiBEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdAogfQogI2Vu
ZGlmCiAKK3ZvaWQgRG9jdW1lbnQ6OmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKCkKK3sKKyAgICAr
K21fd2hlZWxFdmVudEhhbmRsZXJDb3VudDsKKyAgICBGcmFtZSogbWFpbkZyYW1lID0gcGFnZSgp
ID8gcGFnZSgpLT5tYWluRnJhbWUoKSA6IDA7CisgICAgaWYgKG1haW5GcmFtZSkKKyAgICAgICAg
bWFpbkZyYW1lLT5ub3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdl
ZCgpOworfQorCit2b2lkIERvY3VtZW50OjpkaWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcigpCit7
CisgICAgQVNTRVJUKG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCA+IDApOworICAgIC0tbV93aGVl
bEV2ZW50SGFuZGxlckNvdW50OworICAgIEZyYW1lKiBtYWluRnJhbWUgPSBwYWdlKCkgPyBwYWdl
KCktPm1haW5GcmFtZSgpIDogMDsKKyAgICBpZiAobWFpbkZyYW1lKQorICAgICAgICBtYWluRnJh
bWUtPm5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMzAyZTAy
Zi4uNGI4NjgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExMDAsNiArMTEwMCwxMSBAQCBw
dWJsaWM6CiAKICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3kqIGNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpIHsgcmV0dXJuIG1fY29udGVudFNlY3VyaXR5UG9saWN5LmdldCgpOyB9CiAKKyAgICAvLyBV
c2VkIHRvIGtlZXAgdHJhY2sgb2YgaG9yaXpvbnRhbCBzY3JvbGxiYXJzIGFuZCBvbm1vdXNld2hl
ZWwgZXZlbnQgaGFuZGxlcnMgb25seS4KKyAgICB1bnNpZ25lZCB3aGVlbEV2ZW50SGFuZGxlckNv
dW50KCkgY29uc3QgeyByZXR1cm4gbV93aGVlbEV2ZW50SGFuZGxlckNvdW50OyB9CisgICAgdm9p
ZCBkaWRBZGRXaGVlbEV2ZW50SGFuZGxlcigpOworICAgIHZvaWQgZGlkUmVtb3ZlV2hlZWxFdmVu
dEhhbmRsZXIoKTsKKyAgICAKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0
IEtVUkwmLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApAQCAtMTM5Nyw2ICsxNDAyLDgg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TWVkaWFRdWVyeU1hdGNoZXI+IG1fbWVkaWFRdWVyeU1h
dGNoZXI7CiAgICAgYm9vbCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwOwogICAgIHVuc2lnbmVk
IG1fd3JpdGVSZWN1cnNpb25EZXB0aDsKKyAgICAKKyAgICB1bnNpZ25lZCBtX3doZWVsRXZlbnRI
YW5kbGVyQ291bnQ7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAg
T3duUHRyPFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcj4gbV9zY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYzk1OTdmYi4uMWE1NjBmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcApAQCAtMjgsNiArMjgsOCBAQAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNp
bmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiQ2hyb21l
LmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAj
aW5jbHVkZSAiQ1NTUnVsZS5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCkBAIC0yNjQxLDkg
KzI2NDMsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHRyeUFkZEV2ZW50TGlzdGVuZXIoTm9kZSog
dGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBldmUKICAgICBpZiAoIXRhcmdldE5vZGUt
PkV2ZW50VGFyZ2V0OjphZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHVzZUNh
cHR1cmUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKSkKKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50
ID0gdGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKSkgewogICAgICAgICBkb2N1bWVudC0+YWRkTGlzdGVu
ZXJUeXBlSWZOZWVkZWQoZXZlbnRUeXBlKTsKLQorICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2
ZW50TmFtZXMoKS5tb3VzZXdoZWVsRXZlbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+ZGlkQWRk
V2hlZWxFdmVudEhhbmRsZXIoKTsKKyAgICB9CisgICAgICAgIAogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC0yNjg4LDcgKzI2OTMsMTEgQEAgc3RhdGljIGlubGluZSBib29sIHRyeVJlbW92ZUV2
ZW50TGlzdGVuZXIoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJgogCiAgICAg
Ly8gRklYTUU6IE5vdGlmeSBEb2N1bWVudCB0aGF0IHRoZSBsaXN0ZW5lciBoYXMgdmFuaXNoZWQu
IFdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiBhIG51bWJlciBvZgogICAgIC8vIGxpc3RlbmVycyBm
b3IgZWFjaCB0eXBlLCBub3QganVzdCBhIGJvb2wgLSBzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMzODYxCi0KKyAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0g
dGFyZ2V0Tm9kZS0+ZG9jdW1lbnQoKSkgeworICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS5tb3VzZXdoZWVsRXZlbnQpCisgICAgICAgICAgICBkb2N1bWVudC0+ZGlkUmVtb3Zl
V2hlZWxFdmVudEhhbmRsZXIoKTsKKyAgICB9CisgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBhYTJmYzljLi5mMzIwNGRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0yMjMsNiArMjIzLDEwIEBAIHB1
YmxpYzoKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIHZpcnR1YWwgdm9pZCBuZWVkVG91
Y2hFdmVudHMoYm9vbCkgeyB9CiAjZW5kaWYKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hl
ZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisgICAgCisgICAgdmlydHVhbCBi
b29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24p
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiBjbGFzcyBFbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCmluZGV4IDg5NDE4NDUuLjlhMGZkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aApAQCAtMTcwLDYgKzE3MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVjdGlvbikgPSAwOwogCiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKKyAgICAgICAgdmlydHVhbCBi
b29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0ID0g
MDsKIAogI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVk
RGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKSA9IDA7CkBA
IC0zMjAsNiArMzIxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB9OwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFJ1bk1vZGFsRGlhbG9nRHVyaW5nUGFnZURpc21pc3NhbChjb25z
dCBEaWFsb2dUeXBlJikgY29uc3QgeyB9CiAKKyAgICAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpID0gMDsKKyAgICAgICAgCiAgICAgcHJvdGVj
dGVkOgogICAgICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IGQ0MTVlZTAuLjE0NjIyMmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTIxMzYsMTAgKzIxMzYsMTEgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiBlKQogICAg
IGlmIChlLmlzQWNjZXB0ZWQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAvLyBXZSBk
byBhbm90aGVyIGNoZWNrIG9uIHRoZSBmcmFtZSB2aWV3IGJlY2F1c2UgdGhlIGV2ZW50IGhhbmRs
ZXIgY2FuIHJ1biBKUyB3aGljaCByZXN1bHRzIGluIHRoZSBmcmFtZSBnZXR0aW5nIGRlc3Ryb3ll
ZC4KICAgICB2aWV3ID0gbV9mcmFtZS0+dmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotCisgICAgCiAgICAgdmlldy0+d2hlZWxFdmVudChlKTsKICAgICByZXR1
cm4gZS5pc0FjY2VwdGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDNhOGQzYjUuLmI0
NTIyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0zMDksOCArMzA5LDExIEBAIHZvaWQgRnJh
bWU6OnNldERvY3VtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnQ+IG5ld0RvYykKICAgICAvLyBVcGRh
dGUgdGhlIGNhY2hlZCAnZG9jdW1lbnQnIHByb3BlcnR5LCB3aGljaCBpcyBub3cgc3RhbGUuCiAg
ICAgbV9zY3JpcHQudXBkYXRlRG9jdW1lbnQoKTsKIAotICAgIGlmIChtX3BhZ2UpCisgICAgaWYg
KG1fcGFnZSkgewogICAgICAgICBtX3BhZ2UtPnVwZGF0ZVZpZXdwb3J0QXJndW1lbnRzKCk7Cisg
ICAgICAgIGlmIChtX3BhZ2UtPm1haW5GcmFtZSgpID09IHRoaXMpCisgICAgICAgICAgICBub3Rp
ZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpOworICAgIH0KIH0K
IAogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCkBAIC0xMTE2LDQgKzExMTksMTggQEAg
dm9pZCBGcmFtZTo6c2NhbGVQYWdlKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2lu
KQogICAgIH0KIH0KIAordm9pZCBGcmFtZTo6bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhh
bmRsZXJDb3VudENoYW5nZWQoKSBjb25zdAoreworICAgIC8vIEVuc3VyZSB0aGF0IHRoaXMgbWV0
aG9kIGlzIGJlaW5nIGNhbGxlZCBvbiB0aGUgbWFpbiBmcmFtZSBvZiB0aGUgcGFnZS4KKyAgICBB
U1NFUlQobV9wYWdlICYmIG1fcGFnZS0+bWFpbkZyYW1lKCkgPT0gdGhpcyk7CisgICAgCisgICAg
dW5zaWduZWQgY291bnQgPSAwOworICAgIGZvciAoY29uc3QgRnJhbWUqIGZyYW1lID0gdGhpczsg
ZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAg
aWYgKGZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgY291bnQgKz0gZnJhbWUtPmRvY3Vt
ZW50KCktPndoZWVsRXZlbnRIYW5kbGVyQ291bnQoKTsKKyAgICB9CisgICAgCisgICAgbV9wYWdl
LT5jaHJvbWUoKS0+Y2xpZW50KCktPm51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoY291bnQp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggZGVjMjJk
Ny4uNDRmZTQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMjA2LDYgKzIwNiw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICAgICBNZWRpYVN0cmVh
bUZyYW1lQ29udHJvbGxlciogbWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhU3RyZWFtRnJhbWVDb250cm9sbGVyLmdldCgpOyB9CiAjZW5kaWYKKyAgICAg
ICAgCisgICAgICAgIC8vIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiB0aGUgbWFpbiBmcmFtZSBv
ZiBhIHBhZ2UuCisgICAgICAgIHZvaWQgbm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRs
ZXJDb3VudENoYW5nZWQoKSBjb25zdDsKIAogICAgIC8vID09PT09PT09CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCBjNGNiYWViLi4zMDg4NWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCkBAIC0zMDYsNiArMzA3LDIxIEBAIHZv
aWQgRnJhbWVWaWV3OjpkZXRhY2hDdXN0b21TY3JvbGxiYXJzKCkKICAgICB9CiB9CiAKK3ZvaWQg
RnJhbWVWaWV3OjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFy
KQoreworICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5kaWRBZGRXaGVlbEV2ZW50SGFuZGxlcigpOworICAgIFNjcm9sbFZpZXc6OmRpZEFk
ZEhvcml6b250YWxTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKK30KKwordm9pZCBGcmFtZVZpZXc6Ondp
bGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAg
IFNjcm9sbFZpZXc6OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKHNjcm9sbGJhcik7Cisg
ICAgLy8gRklYTUU6IG1heWJlIG5lZWQgYSBzZXBhcmF0ZSBTY3JvbGxhYmxlQXJlYTo6ZGlkUmVt
b3ZlSG9yaXpvbnRhbFNjcm9sbGJhciBjYWxsYmFjaz8KKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1l
bnQoKSkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGlkUmVtb3ZlV2hlZWxFdmVudEhh
bmRsZXIoKTsKK30KKwogU2Nyb2xsYmFyT3ZlcmxheVN0eWxlIEZyYW1lVmlldzo6cmVjb21tZW5k
ZWRTY3JvbGxiYXJPdmVybGF5U3R5bGUoKSBjb25zdAogewogICAgIENvbG9yIGJnQ29sb3IgPSBt
X2ZyYW1lLT5nZXREb2N1bWVudEJhY2tncm91bmRDb2xvcigpOwpAQCAtMTQ5MCw2ICsxNTA2LDE0
IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXBhaW50Rml4ZWRFbGVtZW50c0FmdGVyU2Nyb2xsaW5nKCkK
ICAgICB9CiB9CiAKK2Jvb2wgRnJhbWVWaWV3OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24o
U2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKK3sKKyAgICBQYWdlKiBwYWdlID0gZnJh
bWUoKSA/IGZyYW1lKCktPnBhZ2UoKSA6IDA7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gU2Nyb2xsVmlldzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKGRpcmVjdGlvbik7Cisg
ICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+c2hvdWxkUnViYmVyQmFuZEluRGly
ZWN0aW9uKGRpcmVjdGlvbik7Cit9CisKIEhvc3RXaW5kb3cqIEZyYW1lVmlldzo6aG9zdFdpbmRv
dygpIGNvbnN0CiB7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkg
OiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggNDlhNmQ5YS4uNWI3Mzk1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC04Miw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8U2Nyb2xsYmFyPiBjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyT3JpZW50YXRp
b24pOwogCiAgICAgdmlydHVhbCBib29sIGF2b2lkU2Nyb2xsYmFyQ3JlYXRpb24oKSBjb25zdDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFy
Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNTaXplKGNvbnN0IEludFNpemUmKTsK
IApAQCAtMTYwLDYgKzE2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9u
KGNvbnN0IEludFBvaW50Jik7CiAgICAgdm9pZCBzY3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFQbGF0
Zm9ybVdpZGdldCgpOwogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Rml4ZWRFbGVtZW50c0FmdGVy
U2Nyb2xsaW5nKCk7CisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlv
bihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0OwogCiAgICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0
OwogICAgIHZvaWQgc2V0TWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNGJiZWQzZS4uOWVkMjYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC03Myw4ICs3Myw4IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAg
dm9pZCB3aWxsUmVtb3ZlVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7Ci0gICAgdm9pZCBk
aWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwotICAgIHZvaWQgd2lsbFJlbW92
ZUhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEFk
ZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIHdpbGxS
ZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogCiAgICAgYm9vbCBoYXNPdmVy
bGF5U2Nyb2xsYmFycygpIGNvbnN0OwogICAgIHZpcnR1YWwgU2Nyb2xsYmFyT3ZlcmxheVN0eWxl
IHJlY29tbWVuZGVkU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCkgY29uc3QgeyByZXR1cm4gU2Nyb2xs
YmFyT3ZlcmxheVN0eWxlRGVmYXVsdDsgfQpAQCAtMTMxLDYgKzEzMSwxMSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJTdHlsZUNoYW5nZWQoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IElu
dFJlY3QmKSB7IH0KKyAgICAKKyAgICBib29sIGlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9M
ZWZ0KCkgY29uc3QgeyByZXR1cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3Np
dGlvbihob3Jpem9udGFsU2Nyb2xsYmFyKCkpIDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLngo
KTsgfQorICAgIGJvb2wgaXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb1JpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3NpdGlvbihob3Jpem9u
dGFsU2Nyb2xsYmFyKCkpID49IG1heGltdW1TY3JvbGxQb3NpdGlvbigpLngoKTsgfQorICAgIAor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0
aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVj
dEZyb21QYWdlKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmgKaW5kZXggYmZlZjk1Yi4uNmFjZjJhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTE0NCw4ICsxNDQsMTIg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faW5TY3JvbGxHZXN0dXJlOwogICAgIGJvb2wgbV9tb21l
bnR1bVNjcm9sbEluUHJvZ3Jlc3M7CiAgICAgYm9vbCBtX2lnbm9yZU1vbWVudHVtU2Nyb2xsczsK
KyAgICBib29sIG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPbkxlZnQ7CisgICAgYm9vbCBtX3Nj
cm9sbGVySW5pdGlhbGx5UGlubmVkT25SaWdodDsKKyAgICBpbnQgbV9hZ2dyZWdhdGVTY3JvbGw7
CisgICAgYm9vbCBtX2RpZEFnZ3JlZ2F0ZVNjcm9sbEV2ZXJTd2l0Y2hUb09wcG9zaXRlRGlyZWN0
aW9uT2ZQaW47CiAgICAgCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgbV9sYXN0TW9tZW10dW1TY3JvbGxU
aW1lc3RhbXA7CisgICAgQ0ZUaW1lSW50ZXJ2YWwgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3Rh
bXA7CiAgICAgRmxvYXRTaXplIG1fb3ZlcmZsb3dTY3JvbGxEZWx0YTsKICAgICBGbG9hdFNpemUg
bV9zdHJldGNoU2Nyb2xsRm9yY2U7CiAgICAgRmxvYXRTaXplIG1fbW9tZW50dW1WZWxvY2l0eTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpp
bmRleCA5OTM4M2RhLi45MjBkM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC00NTksNyArNDU5LDcgQEAgU2Nyb2xsQW5pbWF0
b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkK
ICAgICAsIG1faW5TY3JvbGxHZXN0dXJlKGZhbHNlKQogICAgICwgbV9tb21lbnR1bVNjcm9sbElu
UHJvZ3Jlc3MoZmFsc2UpCiAgICAgLCBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyhmYWxzZSkKLSAg
ICAsIG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wKDApCisgICAgLCBtX2xhc3RNb21lbnR1
bVNjcm9sbFRpbWVzdGFtcCgwKQogICAgICwgbV9zdGFydFRpbWUoMCkKICAgICAsIG1fc25hcFJ1
YmJlckJhbmRUaW1lcih0aGlzLCAmU2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kVGlt
ZXJGaXJlZCkKICNlbmRpZgpAQCAtNzY0LDYgKzc2NCwxNiBAQCBzdGF0aWMgZmxvYXQgc2Nyb2xs
V2hlZWxNdWx0aXBsaWVyKCkKICAgICByZXR1cm4gbXVsdGlwbGllcjsKIH0KIAorc3RhdGljIGlu
bGluZSBib29sIGlzU2Nyb2xsaW5nTGVmdEFuZFNob3VsZE5vdFJ1YmJlckJhbmQoUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCit7
CisgICAgcmV0dXJuIHdoZWVsRXZlbnQuZGVsdGFYKCkgPiAwICYmICFzY3JvbGxhYmxlQXJlYS0+
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbExlZnQpOworfQorCitzdGF0aWMgaW5s
aW5lIGJvb2wgaXNTY3JvbGxpbmdSaWdodEFuZFNob3VsZE5vdFJ1YmJlckJhbmQoUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCit7
CisgICAgcmV0dXJuIHdoZWVsRXZlbnQuZGVsdGFYKCkgPCAwICYmICFzY3JvbGxhYmxlQXJlYS0+
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbFJpZ2h0KTsKK30KKwogdm9pZCBTY3Jv
bGxBbmltYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVs
RXZlbnQpCiB7CiAgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gdHJ1ZTsKQEAgLTc4
NywxNyArNzk3LDQ3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnQo
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgICAgICAgICAgU2Nyb2xsQW5pbWF0
b3I6OmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KLSAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobV9zY3JvbGxhYmxlQXJlYS0+
aG9yaXpvbnRhbFNjcm9sbGJhcigpKSB7CisgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHNj
cm9sbGJhciwgd2UgYWdncmVnYXRlIHRoZSB3aGVlbCBldmVudHMgdG8gZ2V0IGFuCisgICAgICAg
ICAgICAvLyBvdmVyYWxsIHRyZW5kIG9mIHRoZSBzY3JvbGwuIElmIHRoZSBkaXJlY3Rpb24gb2Yg
dGhlIHNjcm9sbCBpcyBldmVyCisgICAgICAgICAgICAvLyBpbiB0aGUgb3Bwb3NpdGUgZGlyZWN0
aW9uIG9mIHRoZSBwaW4gbG9jYXRpb24sIHRoZW4gd2Ugc3dpdGNoIHRoZQorICAgICAgICAgICAg
Ly8gYm9vbGVhbiwgYW5kIHJ1YmJlciBiYW5kLiBUaGF0IGlzLCBpZiB3ZSB3ZXJlIHBpbm5lZCB0
byB0aGUgbGVmdCwKKyAgICAgICAgICAgIC8vIGFuZCB3ZSBlbmRlZCB1cCBzY3JvbGxpbmcgdG8g
dGhlIHJpZ2h0LCB3ZSBydWJiZXIgYmFuZC4KKyAgICAgICAgICAgIG1fYWdncmVnYXRlU2Nyb2xs
ICs9IHdoZWVsRXZlbnQuZGVsdGFYKCk7CisgICAgICAgICAgICBpZiAobV9zY3JvbGxlckluaXRp
YWxseVBpbm5lZE9uTGVmdCAmJiBtX2FnZ3JlZ2F0ZVNjcm9sbCA8IDApCisgICAgICAgICAgICAg
ICAgbV9kaWRBZ2dyZWdhdGVTY3JvbGxFdmVyU3dpdGNoVG9PcHBvc2l0ZURpcmVjdGlvbk9mUGlu
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChtX3Njcm9sbGVySW5pdGlhbGx5UGlubmVkT25SaWdo
dCAmJiBtX2FnZ3JlZ2F0ZVNjcm9sbCA+IDApCisgICAgICAgICAgICAgICAgbV9kaWRBZ2dyZWdh
dGVTY3JvbGxFdmVyU3dpdGNoVG9PcHBvc2l0ZURpcmVjdGlvbk9mUGluID0gdHJ1ZTsKKyAgICAg
ICAgfQogCi0gICAgd2hlZWxFdmVudC5hY2NlcHQoKTsKKyAgICAgICAgLy8gQWZ0ZXIgYSBnZXN0
dXJlIGJlZ2lucywgd2UgZ28gdGhyb3VnaDoKKyAgICAgICAgLy8gMSsgUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2VOb25lCisgICAgICAgIC8vIDArIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQ2hhbmdl
ZAorICAgICAgICAvLyAxIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQgaWYgdGhlcmUgd2Fz
IGF0IGxlYXN0IG9uZSBjaGFuZ2VkIGV2ZW50CisgICAgICAgIGlmICh3aGVlbEV2ZW50Lm1vbWVu
dHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUgJiYgIW1fZGlkQWdncmVn
YXRlU2Nyb2xsRXZlclN3aXRjaFRvT3Bwb3NpdGVEaXJlY3Rpb25PZlBpbikgeworICAgICAgICAg
ICAgaWYgKChpc1Njcm9sbGluZ0xlZnRBbmRTaG91bGROb3RSdWJiZXJCYW5kKHdoZWVsRXZlbnQs
IG1fc2Nyb2xsYWJsZUFyZWEpICYmCisgICAgICAgICAgICAgICAgbV9zY3JvbGxlckluaXRpYWxs
eVBpbm5lZE9uTGVmdCAmJgorICAgICAgICAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPmlzSG9y
aXpvbnRhbFNjcm9sbGVyUGlubmVkVG9MZWZ0KCkpIHx8CisgICAgICAgICAgICAgICAgKGlzU2Ny
b2xsaW5nUmlnaHRBbmRTaG91bGROb3RSdWJiZXJCYW5kKHdoZWVsRXZlbnQsIG1fc2Nyb2xsYWJs
ZUFyZWEpICYmCisgICAgICAgICAgICAgICAgbV9zY3JvbGxlckluaXRpYWxseVBpbm5lZE9uUmln
aHQgJiYKKyAgICAgICAgICAgICAgICBtX3Njcm9sbGFibGVBcmVhLT5pc0hvcml6b250YWxTY3Jv
bGxlclBpbm5lZFRvUmlnaHQoKSkpIHsKKyAgICAgICAgICAgICAgICBTY3JvbGxBbmltYXRvcjo6
aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CiAKLSAgICBib29sIGlzTW9tZXR1bVNjcm9s
bEV2ZW50ID0gKHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpICE9IFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlTm9uZSk7Ci0gICAgaWYgKG1faWdub3JlTW9tZW50dW1TY3JvbGxzICYmIChpc01vbWV0
dW1TY3JvbGxFdmVudCB8fCBtX3NuYXBSdWJiZXJCYW5kVGltZXIuaXNBY3RpdmUoKSkpIHsKLSAg
ICAgICAgaWYgKHdoZWVsRXZlbnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVu
dFBoYXNlRW5kZWQpCisgICAgYm9vbCBpc01vbWVudHVtU2Nyb2xsRXZlbnQgPSAod2hlZWxFdmVu
dC5tb21lbnR1bVBoYXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lKTsKKyAgICBp
ZiAobV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgJiYgKGlzTW9tZW50dW1TY3JvbGxFdmVudCB8fCBt
X3NuYXBSdWJiZXJCYW5kVGltZXIuaXNBY3RpdmUoKSkpIHsKKyAgICAgICAgaWYgKHdoZWVsRXZl
bnQubW9tZW50dW1QaGFzZSgpID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5kZWQpIHsKICAg
ICAgICAgICAgIG1faWdub3JlTW9tZW50dW1TY3JvbGxzID0gZmFsc2U7CisgICAgICAgICAgICB3
aGVlbEV2ZW50LmFjY2VwdCgpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyAgICB3aGVlbEV2ZW50LmFjY2VwdCgpOwogICAgIHNtb290aFNjcm9sbFdpdGhFdmVudCh3aGVl
bEV2ZW50KTsKIH0KIApAQCAtODgxLDExICs5MjEsMTEgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1h
Yzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkK
ICAgICAvLyBSZXNldCBvdmVyZmxvdyB2YWx1ZXMgYmVjYXVzZSB3ZSBtYXkgZGVjaWRlIHRvIHJl
bW92ZSBkZWx0YSBhdCB2YXJpb3VzIHBvaW50cyBhbmQgcHV0IGl0IGludG8gb3ZlcmZsb3cuCiAg
ICAgbV9vdmVyZmxvd1Njcm9sbERlbHRhID0gRmxvYXRTaXplKCk7CiAKLSAgICBmbG9hdCBldmVu
dENvYWxsZXNjZWREZWx0YVggPSAtd2hlZWxFdmVudC5kZWx0YVgoKTsKLSAgICBmbG9hdCBldmVu
dENvYWxsZXNjZWREZWx0YVkgPSAtd2hlZWxFdmVudC5kZWx0YVkoKTsKKyAgICBmbG9hdCBldmVu
dENvYWxlc2NlZERlbHRhWCA9IC13aGVlbEV2ZW50LmRlbHRhWCgpOworICAgIGZsb2F0IGV2ZW50
Q29hbGVzY2VkRGVsdGFZID0gLXdoZWVsRXZlbnQuZGVsdGFZKCk7CiAKLSAgICBkZWx0YVggKz0g
ZXZlbnRDb2FsbGVzY2VkRGVsdGFYOwotICAgIGRlbHRhWSArPSBldmVudENvYWxsZXNjZWREZWx0
YVk7CisgICAgZGVsdGFYICs9IGV2ZW50Q29hbGVzY2VkRGVsdGFYOworICAgIGRlbHRhWSArPSBl
dmVudENvYWxlc2NlZERlbHRhWTsKIAogICAgIC8vIFNsaWdodGx5IHByZWZlciBzY3JvbGxpbmcg
dmVydGljYWxseSBieSBhcHBseWluZyB0aGUgPSBjYXNlIHRvIGRlbHRhWQogICAgIGlmIChmYWJz
ZihkZWx0YVkpID49IGZhYnNmKGRlbHRhWCkpCkBAIC05MDgsMTQgKzk0OCwxNCBAQCB2b2lkIFNj
cm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50
JiB3aGVlbEV2ZW50KQogICAgIGlmICghbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jlc3MgJiYgKHBo
YXNlID09IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlQmVnYW4gfHwgcGhhc2UgPT0gUGxhdGZvcm1X
aGVlbEV2ZW50UGhhc2VDaGFuZ2VkKSkKICAgICAgICAgbV9tb21lbnR1bVNjcm9sbEluUHJvZ3Jl
c3MgPSB0cnVlOwogCi0gICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gd2hlZWxFdmVudC50
aW1lc3RhbXAoKSAtIG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wOworICAgIENGVGltZUlu
dGVydmFsIHRpbWVEZWx0YSA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCkgLSBtX2xhc3RNb21lbnR1
bVNjcm9sbFRpbWVzdGFtcDsKICAgICBpZiAobV9pblNjcm9sbEdlc3R1cmUgfHwgbV9tb21lbnR1
bVNjcm9sbEluUHJvZ3Jlc3MpIHsKLSAgICAgICAgaWYgKG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGlt
ZXN0YW1wICYmIHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2NpdHlaZXJv
aW5nVGltZW91dCkgewotICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdpZHRoKGV2
ZW50Q29hbGxlc2NlZERlbHRhWCAvIChmbG9hdCl0aW1lRGVsdGEpOwotICAgICAgICAgICAgbV9t
b21lbnR1bVZlbG9jaXR5LnNldEhlaWdodChldmVudENvYWxsZXNjZWREZWx0YVkgLyAoZmxvYXQp
dGltZURlbHRhKTsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1wID0g
d2hlZWxFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Nyb2xs
VGltZXN0YW1wICYmIHRpbWVEZWx0YSA+IDAgJiYgdGltZURlbHRhIDwgc2Nyb2xsVmVsb2NpdHla
ZXJvaW5nVGltZW91dCkgeworICAgICAgICAgICAgbV9tb21lbnR1bVZlbG9jaXR5LnNldFdpZHRo
KGV2ZW50Q29hbGVzY2VkRGVsdGFYIC8gKGZsb2F0KXRpbWVEZWx0YSk7CisgICAgICAgICAgICBt
X21vbWVudHVtVmVsb2NpdHkuc2V0SGVpZ2h0KGV2ZW50Q29hbGVzY2VkRGVsdGFZIC8gKGZsb2F0
KXRpbWVEZWx0YSk7CisgICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9
IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBt
X2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGltZXN0YW1wKCk7Cisg
ICAgICAgICAgICBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCA9IHdoZWVsRXZlbnQudGlt
ZXN0YW1wKCk7CiAgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkgPSBGbG9hdFNpemUoKTsK
ICAgICAgICAgfQogCkBAIC05NjksNyArMTAwOSw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6
OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoIWFsbG93c0hvcml6b250YWxTdHJldGNo
aW5nKCkpIHsKICAgICAgICAgICAgICAgICBkZWx0YVggPSAwOwotICAgICAgICAgICAgICAgIGV2
ZW50Q29hbGxlc2NlZERlbHRhWCA9IDA7CisgICAgICAgICAgICAgICAgZXZlbnRDb2FsZXNjZWRE
ZWx0YVggPSAwOwogICAgICAgICAgICAgfSBlbHNlIGlmICgoZGVsdGFYICE9IDApICYmICFpc0hv
cml6b250YWxseVN0cmV0Y2hlZCAmJiAhcGlubmVkSW5EaXJlY3Rpb24oZGVsdGFYLCAwKSkgewog
ICAgICAgICAgICAgICAgIGRlbHRhWCAqPSBzY3JvbGxXaGVlbE11bHRpcGxpZXIoKTsKIApAQCAt
OTgyLDcgKzEwMjIsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRo
RXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBpZiAoIWFsbG93c1ZlcnRpY2FsU3RyZXRjaGluZygpKSB7CiAgICAgICAgICAgICAg
ICAgZGVsdGFZID0gMDsKLSAgICAgICAgICAgICAgICBldmVudENvYWxsZXNjZWREZWx0YVkgPSAw
OworICAgICAgICAgICAgICAgIGV2ZW50Q29hbGVzY2VkRGVsdGFZID0gMDsKICAgICAgICAgICAg
IH0gZWxzZSBpZiAoKGRlbHRhWSAhPSAwKSAmJiAhaXNWZXJ0aWNhbGx5U3RyZXRjaGVkICYmICFw
aW5uZWRJbkRpcmVjdGlvbigwLCBkZWx0YVkpKSB7CiAgICAgICAgICAgICAgICAgZGVsdGFZICo9
IHNjcm9sbFdoZWVsTXVsdGlwbGllcigpOwogCkBAIC05OTYsNyArMTAzNiw3IEBAIHZvaWQgU2Ny
b2xsQW5pbWF0b3JNYWM6OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQm
IHdoZWVsRXZlbnQpCiAgICAgICAgICAgICBJbnRTaXplIHN0cmV0Y2hBbW91bnQgPSBtX3Njcm9s
bGFibGVBcmVhLT5vdmVyaGFuZ0Ftb3VudCgpOwogICAgICAgICAKICAgICAgICAgICAgIGlmICht
X21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcykgewotICAgICAgICAgICAgICAgIGlmICgocGlubmVk
SW5EaXJlY3Rpb24oZXZlbnRDb2FsbGVzY2VkRGVsdGFYLCBldmVudENvYWxsZXNjZWREZWx0YVkp
IHx8IChmYWJzZihldmVudENvYWxsZXNjZWREZWx0YVgpICsgZmFic2YoZXZlbnRDb2FsbGVzY2Vk
RGVsdGFZKSA8PSAwKSkgJiYgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXApIHsKKyAgICAg
ICAgICAgICAgICBpZiAoKHBpbm5lZEluRGlyZWN0aW9uKGV2ZW50Q29hbGVzY2VkRGVsdGFYLCBl
dmVudENvYWxlc2NlZERlbHRhWSkgfHwgKGZhYnNmKGV2ZW50Q29hbGVzY2VkRGVsdGFYKSArIGZh
YnNmKGV2ZW50Q29hbGVzY2VkRGVsdGFZKSA8PSAwKSkgJiYgbV9sYXN0TW9tZW50dW1TY3JvbGxU
aW1lc3RhbXApIHsKICAgICAgICAgICAgICAgICAgICAgbV9pZ25vcmVNb21lbnR1bVNjcm9sbHMg
PSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9
IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICBzbmFwUnViYmVyQmFuZCgpOwpAQCAtMTAyMSw3
ICsxMDYxLDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50
KFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICBpZiAobV9tb21lbnR1bVNjcm9s
bEluUHJvZ3Jlc3MgJiYgcGhhc2UgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCkgewog
ICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgICAgICBtX2ln
bm9yZU1vbWVudHVtU2Nyb2xscyA9IGZhbHNlOwotICAgICAgICBtX2xhc3RNb21lbXR1bVNjcm9s
bFRpbWVzdGFtcCA9IDA7CisgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0g
MDsKICAgICB9CiB9CiAKQEAgLTEwMzMsOSArMTA3MywxMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9y
TWFjOjpiZWdpblNjcm9sbEdlc3R1cmUoKQogICAgIG1faW5TY3JvbGxHZXN0dXJlID0gdHJ1ZTsK
ICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwogICAgIG1faWdub3JlTW9t
ZW50dW1TY3JvbGxzID0gZmFsc2U7Ci0gICAgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAg
PSAwOworICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gMDsKICAgICBtX21vbWVu
dHVtVmVsb2NpdHkgPSBGbG9hdFNpemUoKTsKLQorICAgIG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5u
ZWRPbkxlZnQgPSBtX3Njcm9sbGFibGVBcmVhLT5pc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRv
TGVmdCgpOworICAgIG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPblJpZ2h0ID0gbV9zY3JvbGxh
YmxlQXJlYS0+aXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb1JpZ2h0KCk7CisgICAgbV9hZ2dy
ZWdhdGVTY3JvbGwgPSAwOworICAgIG1fZGlkQWdncmVnYXRlU2Nyb2xsRXZlclN3aXRjaFRvT3Bw
b3NpdGVEaXJlY3Rpb25PZlBpbiA9IGZhbHNlOworICAgIAogICAgIEludFNpemUgc3RyZXRjaEFt
b3VudCA9IG1fc2Nyb2xsYWJsZUFyZWEtPm92ZXJoYW5nQW1vdW50KCk7CiAgICAgbV9zdHJldGNo
U2Nyb2xsRm9yY2Uuc2V0V2lkdGgocmVib3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKHN0cmV0Y2hB
bW91bnQud2lkdGgoKSkpOwogICAgIG1fc3RyZXRjaFNjcm9sbEZvcmNlLnNldEhlaWdodChyZWJv
dW5kRGVsdGFGb3JFbGFzdGljRGVsdGEoc3RyZXRjaEFtb3VudC5oZWlnaHQoKSkpOwpAQCAtMTA1
NSw4ICsxMDk5LDggQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6ZW5kU2Nyb2xsR2VzdHVyZSgp
CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kKCkKIHsKLSAgICBDRlRp
bWVJbnRlcnZhbCB0aW1lRGVsdGEgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5c3Rl
bVVwdGltZV0gLSBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcDsKLSAgICBpZiAobV9sYXN0
TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAgJiYgdGltZURlbHRhID49IHNjcm9sbFZlbG9jaXR5WmVy
b2luZ1RpbWVvdXQpCisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGltZURlbHRhID0gW1tOU1Byb2Nlc3NJ
bmZvIHByb2Nlc3NJbmZvXSBzeXN0ZW1VcHRpbWVdIC0gbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1l
c3RhbXA7CisgICAgaWYgKG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wICYmIHRpbWVEZWx0
YSA+PSBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0KQogICAgICAgICBtX21vbWVudHVtVmVs
b2NpdHkgPSBGbG9hdFNpemUoKTsKIAogICAgIG1faW5TY3JvbGxHZXN0dXJlID0gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA0NTE1Zjc3Li5jOTM3
NjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE5MzAs
NiArMTkzMCwxOSBAQCBib29sIFJlbmRlckxheWVyOjpzY3JvbGxzT3ZlcmZsb3coKSBjb25zdAog
ICAgIHJldHVybiB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+c2Nyb2xsc092ZXJmbG93KCk7CiB9
CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFy
KiBzY3JvbGxiYXIpCit7CisgICAgbV9yZW5kZXJlci0+ZG9jdW1lbnQoKS0+ZGlkQWRkV2hlZWxF
dmVudEhhbmRsZXIoKTsKKyAgICBTY3JvbGxhYmxlQXJlYTo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9s
bGJhcihzY3JvbGxiYXIpOworfQorCit2b2lkIFJlbmRlckxheWVyOjp3aWxsUmVtb3ZlSG9yaXpv
bnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICBTY3JvbGxhYmxlQXJl
YTo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKKyAgICAvLyBGSVhN
RTogbWF5YmUgbmVlZCBhIHNlcGFyYXRlIFNjcm9sbGFibGVBcmVhOjpkaWRSZW1vdmVIb3Jpem9u
dGFsU2Nyb2xsYmFyIGNhbGxiYWNrPworICAgIG1fcmVuZGVyZXItPmRvY3VtZW50KCktPmRpZFJl
bW92ZVdoZWVsRXZlbnRIYW5kbGVyKCk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc0hv
cml6b250YWxTY3JvbGxiYXIoYm9vbCBoYXNTY3JvbGxiYXIpCiB7CiAgICAgaWYgKGhhc1Njcm9s
bGJhciA9PSAobV9oQmFyICE9IDApKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aAppbmRleCAzMjZhMTRkLi43OGNkYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaApAQCAtMjQ3LDYgKzI0Nyw4IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IGdldFJlY3RU
b0V4cG9zZShjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCwgY29uc3QgSW50UmVjdCYgZXhwb3Nl
UmVjdCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVu
dCYgYWxpZ25ZKTsKIAogICAgIGJvb2wgc2Nyb2xsc092ZXJmbG93KCkgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmly
dHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAg
IHZvaWQgc2V0SGFzSG9yaXpvbnRhbFNjcm9sbGJhcihib29sKTsKICAgICB2b2lkIHNldEhhc1Zl
cnRpY2FsU2Nyb2xsYmFyKGJvb2wpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDRl
MDhjMTkuLjhhZGRkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6b250YWxseSBz
Y3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5
cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjA3NzkKKworICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERl
ZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnRJbXBsOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTMgIFRhbyBCYWkgIDxt
aWNoYWVsYmFpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNo
ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5k
ZXggMWZkNTQ1Yi4uYzIwNjkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuaApAQCAtMTk2LDYgKzE5Niw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCB3aWxsUnVuTW9kYWxEaWFsb2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxv
Z1R5cGUmKSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsg
fQorCiBwcml2YXRlOgogICAgIHZvaWQgZ2V0UG9wdXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1cENv
bnRhaW5lciosIFdlYlBvcHVwTWVudUluZm8qKTsKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBX
ZWJDdXJzb3JJbmZvJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNWY3Yjk2NS4uMmVkZGEwNyAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9u
bGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJl
Y2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dEVmbDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBD
aHJvbWVDbGllbnQgbWV0aG9kCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6Om51
bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNs
aWVudCBtZXRob2QKKwogMjAxMS0wNS0xMyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBzdHlsZSBlcnJvci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5o
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5k
ZXggYWExNzk3NC4uZTBhMjBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTE1Miw2ICsxNTIsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCopIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+
IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGly
ZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorCiAgICAgRXZhc19PYmplY3QqIG1f
dmlldzsKICAgICBLVVJMIG1faG92ZXJlZExpbmtVUkw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4
IDVhOGE3MzQuLjExZjIzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
MS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBp
ZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2Vw
dGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3
OQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVm
YXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBv
ZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorCiAyMDExLTA1LTEzICBTYW0gV2VpbmlnICA8c2Ft
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApp
bmRleCBkNDIwYTJlLi41ZDViMTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtMTUyLDYgKzE1Miw5IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KFdlYkNvcmU6OkVsZW1lbnQqKTsKICNlbmRpZgogCisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYktpdFdl
YlZpZXcqIG1fd2ViVmlldzsKICAgICAgICAgR3RrQWRqdXN0bWVudFdhdGNoZXIgbV9hZGp1c3Rt
ZW50V2F0Y2hlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggYWU4OTBiZS4uNWU2OWVhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAg
PGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxv
dyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEhhaWt1OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwg
b2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dEhhaWt1OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5l
dyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1
LmggYi9Tb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1
LmgKaW5kZXggOGEwOTdhMC4uMzIyZDBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9oYWlr
dS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaApAQCAtMTU5LDYgKzE1OSw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhl
IGdpdmVuIGZvcm0gZWxlbWVudCBoYXMgY2hhbmdlZC4gVGhpcyBmdW5jdGlvbgogICAgICAgICAv
LyB3aWxsIGJlIGNhbGxlZCBmcmVxdWVudGx5LCBzbyBoYW5kbGluZyBzaG91bGQgYmUgdmVyeSBm
YXN0LgogICAgICAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUq
KTsKKworICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdl
YkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2
aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDFiMTNl
NzcuLmY0YmFjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0x
MyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVz
IGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwg
b2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2hv
dWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGll
bnQgbWV0aG9kCisKIDIwMTEtMDUtMTMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDBlY2I5ZjIuLjNk
MWIzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC0xODIsNiArMTgyLDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KCk7CiAjZW5kaWYK
KyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNp
Z25lZCkgeyB9CisgICAgCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVj
dGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiBw
cml2YXRlOgogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDRl
YTdiOTUuLjZmODE3ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUt
MTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1l
cyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRRdDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVs
dCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRRdDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBv
ZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorCiAyMDExLTA1LTE1ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByODY1MDQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmgKaW5kZXggODE0YTE5Mi4uZDUyZWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMTkyLDYgKzE5Miw5IEBA
IHB1YmxpYzoKICAgICBRV2ViU2VsZWN0TWV0aG9kKiBjcmVhdGVTZWxlY3RQb3B1cCgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0
IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCBib29sIHNob3Vs
ZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZCh1bnNpZ25lZCkgeyB9CiAKICAgICBRV2ViUGFnZSogbV93ZWJQYWdlOwogICAgIEtVUkwg
bGFzdEhvdmVyVVJMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDAwZWZlOGYuLjNkODc1YTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNh
dXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNob3Vs
ZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50
IG1ldGhvZAorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEt
MDUtMTMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDRhM2NmM2IuLjE1MjllMWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0x
ODIsNiArMTgyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZv
ckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KKwogcHJpdmF0ZToKICAgICBDT01QdHI8SVdlYlVJRGVs
ZWdhdGU+IHVpRGVsZWdhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCAzODMzODlhLi5m
ZDExZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEz
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMg
YW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVm
YXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudFdpbkNFOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMDUgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFdpbkNFLmgKaW5kZXggOTU3MDlhZS4uMTNjOWVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaApAQCAtMTc3
LDYgKzE3Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9w
dXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCisgICAg
dmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxE
aXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hl
ZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisKIHByaXZhdGU6CiAgICAgV2Vi
VmlldyogbV93ZWJWaWV3OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggZWVhNmY2ZC4uMjEzMDMzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpv
bmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBi
ZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2ViS2l0
U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
V3g6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hy
b21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6Om51bVdo
ZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVu
dCBtZXRob2QKKwogMjAxMS0wNS0wOSAgUm9iaW4gRHVubiAgPHJvYmluQGFsbGR1bm4uY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtldmluIE9sbGl2aWVyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggYi9Tb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAppbmRleCAwZDgxNDljLi44MjBjOGFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50
V3guaAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3gu
aApAQCAtMTUyLDYgKzE1Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9w
dXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCopIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJh
bmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNp
Z25lZCkgeyB9CisKIHByaXZhdGU6CiAgICAgd3hXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDUwMzM5NDEuLjZiZTAyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAor
MjAxMS0wNS0xNCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9s
bCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFj
Y2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MDc3OQorCisgICAgICAgIFdlIGtlZXAgdHJhY2sgb2YgdGhlIG51bWJlciBvZiBob3Jpem9udGFs
IHNjcm9sbGJhcnMgYW5kIG1vdXNlIHdoZWVsIGV2ZW50IGhhbmRsZXJzIGluIHRoZQorICAgICAg
ICBVSSBwcm9jZXNzIGFzIGEgbWVhbnMgb2YgZGV0ZXJtaW5pbmcgd2hldGhlciBob3Jpem9udGFs
IHNjcm9sbCBldmVudHMgd2lsbCBiZSBoYW5kbGVkCisgICAgICAgIGJ5IHRoZSB3ZWIgcHJvY2Vz
cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OndpbGxIYW5kbGVIb3Jpem9udGFsU2Nyb2xsRXZlbnRzKTogUmV0
dXJuIHRydWUgaWYgdGhlcmUgaXMgYXQgbGVhc3QKKyAgICAgICAgb25lIHdoZWVsIGV2ZW50IGhh
bmRsZXIKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IEFkZCBuZXcgdmFyaWFi
bGUgdG8gY2FjaGUgdGhlIGNvdW50CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bnVt
V2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IFNldHMgdGhlIGNvdW50CisKKyAgICAgICAgVGhl
IHJlc3QganVzdCBwcm92aWRlcyBhbGwgdGhlIGNvbm5lY3Rpb25zLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlV2lsbEhhbmRsZUhvcml6b250
YWxTY3JvbGxFdmVudHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRm9yd2FyZCB0byBpbmplY3Rl
ZCBidW5kbGUgVUkgY2xpZW50CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6dXBk
YXRlQ291bnRXaGVlbEV2ZW50SGFuZGxlcnMpOiBVcGRhdGVzIHRoZSB3ZWIgcGFnZSBwcm94eQor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisK
IDIwMTEtMDUtMTMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5jcHAKaW5kZXggOTQxZDJjNy4uM2MzZDIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE0Niw2ICsxNDYsMTEgQEAgV0tCYWNrRm9yd2Fy
ZExpc3RSZWYgV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0KFdLUGFnZVJlZiBwYWdlUmVmKQogICAg
IHJldHVybiB0b0FQSSh0b0ltcGwocGFnZVJlZiktPmJhY2tGb3J3YXJkTGlzdCgpKTsKIH0KIAor
Ym9vbCBXS1BhZ2VXaWxsSGFuZGxlSG9yaXpvbnRhbFNjcm9sbEV2ZW50cyhXS1BhZ2VSZWYgcGFn
ZVJlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT53aWxsSGFuZGxlSG9yaXpvbnRh
bFNjcm9sbEV2ZW50cygpOworfQorCiBXS1N0cmluZ1JlZiBXS1BhZ2VDb3B5VGl0bGUoV0tQYWdl
UmVmIHBhZ2VSZWYpCiB7CiAgICAgcmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChwYWdlUmVmKS0+
cGFnZVRpdGxlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCmluZGV4
IGQwMWM4MzguLjFkNDM0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmgKQEAgLTI4OCw3ICsyODgsOCBAQCBXS19FWFBPUlQgYm9vbCBXS1BhZ2VDYW5Hb0JhY2soV0tQ
YWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHZvaWQgV0tQYWdlR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0oV0tQYWdlUmVmIHBhZ2UsIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKTsKIFdLX0VY
UE9SVCB2b2lkIFdLUGFnZVRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbihXS1BhZ2VSZWYgcGFnZSk7
CiBXS19FWFBPUlQgV0tCYWNrRm9yd2FyZExpc3RSZWYgV0tQYWdlR2V0QmFja0ZvcndhcmRMaXN0
KFdLUGFnZVJlZiBwYWdlKTsKLQorV0tfRVhQT1JUIGJvb2wgV0tQYWdlV2lsbEhhbmRsZUhvcml6
b250YWxTY3JvbGxFdmVudHMoV0tQYWdlUmVmIHBhZ2UpOworICAgIAogV0tfRVhQT1JUIFdLU3Ry
aW5nUmVmIFdLUGFnZUNvcHlUaXRsZShXS1BhZ2VSZWYgcGFnZSk7CiAKIFdLX0VYUE9SVCBXS1VS
TFJlZiBXS1BhZ2VDb3B5UGVuZGluZ0FQSVJlcXVlc3RVUkwoV0tQYWdlUmVmIHBhZ2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA0YmEwNGE3Li5jNjE1
ODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzA2
MCw2ICszMDYwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsVG9Jbml0aWFsaXplUGx1
Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAgICAgbV9sb2FkZXJDbGllbnQuZGlkRmFpbFRv
SW5pdGlhbGl6ZVBsdWdpbih0aGlzLCBtaW1lVHlwZSk7CiB9CiAKK2Jvb2wgV2ViUGFnZVByb3h5
Ojp3aWxsSGFuZGxlSG9yaXpvbnRhbFNjcm9sbEV2ZW50cygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCA+IDA7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbVJlcHJlc2VudGF0aW9uKGNvbnN0IFN0cmluZyYg
c3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IENvcmVJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGFSZWZl
cmVuY2UpCiB7CiAgICAgbV9wYWdlQ2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3Rv
bVJlcHJlc2VudGF0aW9uKHN1Z2dlc3RlZEZpbGVuYW1lLCBkYXRhUmVmZXJlbmNlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzMTQ5NzBhLi43MzE2YmYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yMjYsNiArMjI2LDgg
QEAgcHVibGljOgogICAgIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0qIGFkZGVkSXRlbSwgVmVjdG9yPFJlZlB0cjxBUElPYmplY3Q+ID4qIHJlbW92
ZWRJdGVtcyk7CiAgICAgdm9pZCBzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSh1aW50NjRf
dCBpdGVtSUQsIGJvb2wmIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKTsKIAorICAgIGJv
b2wgd2lsbEhhbmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoKSBjb25zdDsKKwogICAgIGJvb2wg
Y2FuU2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0OwogCiAgICAgYm9v
bCBkcmF3c0JhY2tncm91bmQoKSBjb25zdCB7IHJldHVybiBtX2RyYXdzQmFja2dyb3VuZDsgfQpA
QCAtNjExLDYgKzYxMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxiYXJz
Rm9yTWFpbkZyYW1lKGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciwgYm9vbCBoYXNWZXJ0aWNh
bFNjcm9sbGJhcik7CiAgICAgdm9pZCBkaWRDaGFuZ2VTY3JvbGxPZmZzZXRQaW5uaW5nRm9yTWFp
bkZyYW1lKGJvb2wgcGlubmVkVG9MZWZ0U2lkZSwgYm9vbCBwaW5uZWRUb1JpZ2h0U2lkZSk7CiAg
ICAgdm9pZCBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUp
OworICAgIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCBjb3VudCkg
eyBtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQgPSBjb3VudDsgfQogCiAgICAgdm9pZCByZWF0dGFj
aFRvV2ViUHJvY2VzcygpOwogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtKik7CkBAIC04NjYsNiArODY5LDkgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgbV9tYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyOwogICAgIGJvb2wgbV9t
YWluRnJhbWVIYXNWZXJ0aWNhbFNjcm9sbGJhcjsKKyAgICAvLyBUaGlzIGFnZ3JlZ2F0ZWQgY291
bnQgb2Ygd2hlZWwgaGFuZGxlcnMgb25seSBpbmNsdWRlcyBob3Jpem9udGFsIHNjcm9sbGJhcnMK
KyAgICAvLyBhbmQgSlMgd2hlZWwgZXZlbnQgaGFuZGxlcnMuCisgICAgaW50IG1fd2hlZWxFdmVu
dEhhbmRsZXJDb3VudDsKIAogICAgIGJvb2wgbV9tYWluRnJhbWVJc1Bpbm5lZFRvTGVmdFNpZGU7
CiAgICAgYm9vbCBtX21haW5GcmFtZUlzUGlubmVkVG9SaWdodFNpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA5YTljMTM1
Li4xY2VkYmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTYyLDYgKzYyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKICAgICBEaWRDaGFuZ2VTY3JvbGxiYXJzRm9yTWFpbkZyYW1lKGJvb2wgaGFzSG9yaXpvbnRh
bFNjcm9sbGJhciwgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcikKICAgICBEaWRDaGFuZ2VTY3Jv
bGxPZmZzZXRQaW5uaW5nRm9yTWFpbkZyYW1lKGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciwg
Ym9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcikKICAgICBEaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2lu
KFdURjo6U3RyaW5nIG1pbWVUeXBlKQorICAgIE51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQo
dW5zaWduZWQgY291bnQpCiAKICNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBQ
YWdlRGlkUmVxdWVzdFNjcm9sbChXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5oCmluZGV4IDZlMTI5NTQuLjA5N2YyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuaApAQCAtNzIsNiArNzIsMTIgQEAgZW51bSB7CiB9OwogdHlwZWRlZiB1aW50MzJfdCBX
S0Z1bGxTY3JlZW5LZXlib2FyZFJlcXVlc3RUeXBlOwogCitlbnVtIHsKKyAgICBXS1Njcm9sbERp
cmVjdGlvbkxlZnQsCisgICAgV0tTY3JvbGxEaXJlY3Rpb25SaWdodAorfTsKK3R5cGVkZWYgdWlu
dDMyX3QgV0tTY3JvbGxEaXJlY3Rpb247CisKIC8vIExvYWRlciBDbGllbnQKIHR5cGVkZWYgdm9p
ZCAoKldLQnVuZGxlUGFnZURpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVDYWxsYmFjayko
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiog
dXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5k
bGVQYWdlRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVD
YWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdL
VHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMTc1LDcgKzE4
MSw4IEBAIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlCiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBh
Z2VEaWRTY3JvbGxDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlUGFpbnRDdXN0b21PdmVyaGFu
Z0FyZWFDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLR3JhcGhpY3NDb250ZXh0UmVm
IGdyYXBoaWNzQ29udGV4dCwgV0tSZWN0IGhvcml6b250YWxPdmVyaGFuZywgV0tSZWN0IHZlcnRp
Y2FsT3ZlcmhhbmcsIFdLUmVjdCBkaXJ0eVJlY3QsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
dHlwZWRlZiBXS1N0cmluZ1JlZiAoKldLQnVuZGxlUGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgb3JpZ2luYWxGaWxlUGF0
aCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Ci0KK3R5cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFn
ZVNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbkNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tTY3JvbGxEaXJlY3Rpb24gc2Nyb2xsRGlyZWN0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKKyAgICAKIHN0cnVjdCBXS0J1bmRsZVBhZ2VVSUNsaWVudCB7CiAgICAgaW50ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2ZXJzaW9uOwogICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKQEAgLTE4OSw2ICsxOTYsNyBA
QCBzdHJ1Y3QgV0tCdW5kbGVQYWdlVUlDbGllbnQgewogICAgIFdLQnVuZGxlUGFnZVBhaW50Q3Vz
dG9tT3ZlcmhhbmdBcmVhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgcGFpbnRDdXN0
b21PdmVyaGFuZ0FyZWE7CiAgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVGaWxlRm9yVXBsb2FkQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRHZW5lcmF0ZUZpbGVGb3JVcGxv
YWQ7CiAgICAgV0tCdW5kbGVQYWdlR2VuZXJhdGVGaWxlRm9yVXBsb2FkQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUZpbGVGb3JVcGxvYWQ7CisgICAgV0tCdW5kbGVQ
YWdlU2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb247CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5k
bGVQYWdlVUlDbGllbnQgV0tCdW5kbGVQYWdlVUlDbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKaW5kZXggNTMyZDA1OC4uNDg4MDAzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAKQEAgLTExNSw0ICsxMTUs
OSBAQCBTdHJpbmcgSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQ6OmdlbmVyYXRlRmlsZUZvclVw
bG9hZChXZWJQYWdlKiBwYWdlLCBjb25zdCBTdAogICAgIHJldHVybiBnZW5lcmF0ZWRGaWxlUGF0
aCA/IGdlbmVyYXRlZEZpbGVQYXRoLT5zdHJpbmcoKSA6IFN0cmluZygpOwogfQogCitib29sIElu
amVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2Vi
UGFnZSogcGFnZSwgV0tTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAoreworICAgIHJl
dHVybiBtX2NsaWVudC5zaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24odG9BUEkocGFnZSksIGRp
cmVjdGlvbiwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCmluZGV4IDQ3YTVjYTgu
LmZiYmI5MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgKQEAg
LTU4LDYgKzU4LDggQEAgcHVibGljOgogCiAgICAgU3RyaW5nIHNob3VsZEdlbmVyYXRlRmlsZUZv
clVwbG9hZChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbEZpbGVQYXRoKTsKICAgICBT
dHJpbmcgZ2VuZXJhdGVGaWxlRm9yVXBsb2FkKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIG9yaWdp
bmFsRmlsZVBhdGgpOworICAgIAorICAgIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9u
KFdlYlBhZ2UqLCBXS1Njcm9sbERpcmVjdGlvbikgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmZDVlZTU1Li40YjRlYjYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC03NTksNCArNzU5LDIyIEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50Ojpub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IEludFJl
Y3QmIHNjcm9sbGVyCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok5v
dGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3Qoc2Nyb2xsZXJUaHVtYikpOwogfQogCiti
b29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6
OlNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Cit7CisgICAgQVNTRVJUKGRpcmVjdGlv
biAhPSBXZWJDb3JlOjpTY3JvbGxVcCAmJiBkaXJlY3Rpb24gIT0gV2ViQ29yZTo6U2Nyb2xsRG93
bik7CisgICAgCisgICAgaWYgKGRpcmVjdGlvbiA9PSBXZWJDb3JlOjpTY3JvbGxMZWZ0KQorICAg
ICAgICByZXR1cm4gbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkuc2hvdWxkUnViYmVy
QmFuZEluRGlyZWN0aW9uKG1fcGFnZSwgV0tTY3JvbGxEaXJlY3Rpb25MZWZ0KTsKKyAgICBpZiAo
ZGlyZWN0aW9uID09IFdlYkNvcmU6OlNjcm9sbFJpZ2h0KQorICAgICAgICByZXR1cm4gbV9wYWdl
LT5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkuc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKG1f
cGFnZSwgV0tTY3JvbGxEaXJlY3Rpb25SaWdodCk7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6Om51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgY291bnQpCit7CisgICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoY291
bnQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCA5MDM4ZWFmLi5kMDAxN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIxOCw2ICsyMTgs
OSBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlUnViYmVyQmFuZEZv
ck1haW5GcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2Vi
Q29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgbnVt
V2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCk7CiAKICAgICBTdHJpbmcgbV9jYWNo
ZWRUb29sVGlwOwogICAgIG11dGFibGUgUmVmUHRyPFdlYkZyYW1lPiBtX2NhY2hlZEZyYW1lU2V0
TGFyZ2VzdEZyYW1lOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDdlYmRlODUuLmZiM2MyMjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wNS0xMyAgSm9uIExl
ZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVy
ZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZSk6IFNl
dCBuZXcgZGVmYXVsdCBtZXRob2QgdG8gbmlsLgorCiAyMDExLTA1LTE1ICBTaGVyaWZmIEJvdCAg
PHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByODY1MDQuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggMmExZjg1ZC4uYjc5
YmU0ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMjI1LDYgKzIyNSw3IEBAIEluamVj
dGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQog
ICAgICAgICAwLCAvKnBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKi8KICAgICAgICAgMCwgLypzaG91
bGRHZW5lcmF0ZUZpbGVGb3JVcGxvYWQqLwogICAgICAgICAwLCAvKmdlbmVyYXRlRmlsZUZvclVw
bG9hZCovCisgICAgICAgIDAsIC8qc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKi8KICAgICB9
OwogICAgIFdLQnVuZGxlUGFnZVNldFVJQ2xpZW50KG1fcGFnZSwgJnVpQ2xpZW50KTsKIAotLSAK
MS43LjQuNAoK
</data>
<flag name="review"
          id="86789"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93611</attachid>
            <date>2011-05-15 23:22:13 -0700</date>
            <delta_ts>2011-08-11 16:39:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>OpenSource.patch</filename>
            <type>text/plain</type>
            <size>63610</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">RnJvbSBjZTEzZmViN2YyZmZmNDc3YzcyODEwZjc2MDljMWNjZjQ3ZjhjMWQyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gTGVlIDxqb25sZWVAYXBwbGUuY29tPgpEYXRlOiBTYXQs
IDE0IE1heSAyMDExIDAxOjQwOjEzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gQ2FuJ3QgaG9yaXpv
bnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsCiBldmVudHMg
YXJlIGFsd2F5cyBhY2NlcHRlZAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwNzc5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoK
KiBkb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogSW5pdGlh
bGl6ZSB3aGVlbCBldmVudCBoYW5kbGVyIGNvdW50CihXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQWRk
V2hlZWxFdmVudEhhbmRsZXIpOiBJbmNyZW1lbnQgY291bnQsIGFuZCB0ZWxsIHRoZSBtYWluIGZy
YW1lCnRvIHJlY2FsY3VsYXRlIHRoZSB0b3RhbCBudW1iZXIgb2Ygd2hlZWwgZXZlbnQgaGFuZGxl
cnMgaW4gYWxsIG9mIGl0cyBmcmFtZXMnIGRvY3VtZW50cwooV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
ZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKKiBk
b20vRG9jdW1lbnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp3aGVlbEV2ZW50SGFuZGxlckNvdW50
KTogQWNjZXNzIHRoZSBjb3VudAoqIGRvbS9Ob2RlLmNwcDoKKFdlYkNvcmU6OnRyeUFkZEV2ZW50
TGlzdGVuZXIpOiBJZiB0aGUgZXZlbnQgbGlzdGVuZXIgaXMgYSBtb3VzZSB3aGVlbCBldmVudCwg
dGhlbgp0ZWxsIHRoZSBkb2N1bWVudCB0byBpbmNyZW1lbnQgaXRzIGNvdW50CihXZWJDb3JlOjp0
cnlSZW1vdmVFdmVudExpc3RlbmVyKTogUmV2ZXJzZSBvZiBwcmV2aW91cyBtZXRob2QKCiogcGFn
ZS9DaHJvbWVDbGllbnQuaDogVHdvIG5ldyBtZXRob2RzOgogIG51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQ6IFdlYlByb2Nlc3MgdGVsbHMgVUlQcm9jZXNzIHRvIHVwZGF0ZSBpdHMgY2FjaGVk
CiAgICBjb3VudCBvZiB0b3RhbCB3aGVlbCBldmVudCBoYW5kbGVycywgd2hpY2ggaW4gdGhpcyBj
YXNlIG9ubHkgaW5jbHVkZSBob3Jpem9udGFsCiAgICBzY3JvbGxiYXJzIGFuZCBtb3VzZSB3aGVl
bCBKUyBoYW5kbGVycwogIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbjogYWxsb3cgdGhlIFVJ
UHJvY2VzcyB0byBwcm92aWRlIHNvbWUgY29udHJvbCBvdmVyCiAgICB3aGV0aGVyIHJ1YmJlciBi
YW5kaW5nIGlzIGFsbG93ZWQgd2hlbiBzY3JvbGxpbmcgaW4gYSBwYXJ0aWN1bGFyIGRpcmVjdGlv
bgoqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpu
dW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBlbXB0eSBpbXBsCihXZWJDb3Jl
OjpFbXB0eUNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVs
dCBlbXB0eSBpbXBsCiogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgooV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpoYW5kbGVXaGVlbEV2ZW50KTogUmVtb3ZlIGEgcmVkdW5kYW50IHBvaW50ZXIgY2hlY2sK
KiBwYWdlL0ZyYW1lLmNwcDoKKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1bWVudCk6IFdoZW4gdGhl
IGZyYW1lJ3MgZG9jdW1lbnQgY2hhbmdlcywgY2FsY3VsYXRlIHRoYXQKZG9jdW1lbnQncyB0b3Rh
bCB3aGVlbCBldmVudCBoYW5kbGVycywgYW5kIG5vdGlmeSB0aGUgVUlQcm9jZXNzCihXZWJDb3Jl
OjpGcmFtZTo6bm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQp
OiBQZXJmb3JtcyBhIGNyYXdsCm9mIHRoZSBmcmFtZSB0cmVlIHRvIGFnZ3JlZ2F0ZSB0aGUgY291
bnQKKiBwYWdlL0ZyYW1lLmg6CgoqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6IFZpcnR1YWxp
emUgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhciBhbmQKd2lsbFJlbW92ZUhvcml6b250YWxTY3Jv
bGxiYXIgZm9yIG92ZXJyaWRpbmcgaW4gUmVuZGVyTGF5ZXIgYW5kIEZyYW1lVmlldwooV2ViQ29y
ZTo6U2Nyb2xsYWJsZUFyZWE6OmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9z
aXRpb24pOiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMKbm8gc2Nyb2xsYmFyIG9yIHRoZSBzY3Jv
bGxlciBwb3NpdGlvbiBpcyBpbiB0aGUgbWluaW11bSBzY3JvbGwgcG9zaXRpb24uCihXZWJDb3Jl
OjpTY3JvbGxhYmxlQXJlYTo6aXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb01heGltdW1Qb3Np
dGlvbik6IENvbnZlcnNlIG9mIHRoZSBhYm92ZS4KKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpz
aG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwKKiBwYWdlL0ZyYW1lVmll
dy5jcHA6CihXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOiBV
cGRhdGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MgY291bnQKKFdlYkNvcmU6OkZyYW1lVmlldzo6
d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdzIGRvY3Vt
ZW50J3MKY291bnQKKFdlYkNvcmU6OkZyYW1lVmlldzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKTogQ29ubmVjdGl2ZSBnbHVlCiogcGFnZS9GcmFtZVZpZXcuaDogQWRkaW5nIG92ZXJyaWRp
bmcgbWV0aG9kcyBmcm9tIFNjcm9sbGFibGVBcmVhCiogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDogU2ltaWxhciBmdW5jdGlvbmFsaXR5IHRvIEZyYW1lVmlldwooV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Ondp
bGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKToKKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoK
CiogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmg6IEZpeCB0eXBvIG9mICJtb21lbnR1
bSIKKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CihXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBGaXggdHlwbyBvZiAibW9tZW50dW0iCihX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KTogRml4IHR5
cG8gb2YgImNvYWxlc2NlZCIKKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpiZWdpblNjcm9s
bEdlc3R1cmUpOiBGaXggdHlwbyBvZiAiY29hbGVzY2VkIgooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JNYWM6OnNuYXBSdWJiZXJCYW5kKTogRml4IHR5cG8gb2YgIm1vbWVudHVtIgoKKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KTogTmV3IGxvZ2ljIGZvciBkZXRl
cm1pbmluZyB3aGV0aGVyCnRvIGFsbG93IHJ1YmJlci1iYW5kaW5nIGJhc2VkIG9uIHRoZSBhcmVh
J3Mgc2Nyb2xsIHBvc2l0aW9uIGFuZCB0aGUgd2hlZWwgZXZlbnQuCkNvdWxkIHByZXZlbnQgYWNj
ZXB0aW5nIHRoZSB3aGVlbCBldmVudC4gQWxzbywgZml4IHR5cG8gb2YgIm1vbWVudHVtIgooV2Vi
Q29yZTo6aXNTY3JvbGxpbmdMZWZ0QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGluZSBoZWxw
ZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCihXZWJDb3JlOjppc1Njcm9sbGluZ1JpZ2h0QW5kU2hvdWxk
Tm90UnViYmVyQmFuZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCgpTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtOgoKKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5oOgooV2ViS2l0OjpDaHJv
bWVDbGllbnRJbXBsOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwg
b2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6bnVt
V2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xp
ZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9lZmw6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5oOgooV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpzaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKFdlYkNv
cmU6OkNocm9tZUNsaWVudEVmbDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1
bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9ndGs6Cgoq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgooV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAooV2ViS2l0OjpDaHJvbWVDbGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVy
c0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKClNvdXJj
ZS9XZWJLaXQvaGFpa3U6CgoqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1Lmg6CihX
ZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTog
RGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJDb3JlOjpDaHJvbWVD
bGllbnRIYWlrdTo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBv
ZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9tYWM6CgoqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgooV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50
SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9k
CihXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQg
aW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNlL1dlYktpdC9xdDoKCiogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0Ojpz
aG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNs
aWVudCBtZXRob2QKKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpudW1XaGVlbEV2ZW50SGFuZGxl
cnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpTb3Vy
Y2UvV2ViS2l0L3dpbjoKCiogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CihXZWJD
aHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBv
ZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAooV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50
SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9k
CgpTb3VyY2UvV2ViS2l0L3dpbmNlOgoKKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5D
RS5oOgooV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCihXZWJLaXQ6OkNo
cm9tZUNsaWVudFdpbkNFOjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCgpTb3VyY2UvV2ViS2l0L3d4OgoKKiBXZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6CihXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6c2hv
dWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGll
bnQgbWV0aG9kCihXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6bnVtV2hlZWxFdmVudEhhbmRsZXJz
Q2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAoKU291cmNl
L1dlYktpdDI6CgpXZSBrZWVwIHRyYWNrIG9mIHRoZSBudW1iZXIgb2YgaG9yaXpvbnRhbCBzY3Jv
bGxiYXJzIGFuZCBtb3VzZSB3aGVlbCBldmVudCBoYW5kbGVycyBpbiB0aGUKVUkgcHJvY2VzcyBh
cyBhIG1lYW5zIG9mIGRldGVybWluaW5nIHdoZXRoZXIgaG9yaXpvbnRhbCBzY3JvbGwgZXZlbnRz
IHdpbGwgYmUgaGFuZGxlZApieSB0aGUgd2ViIHByb2Nlc3MuCgoqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgooV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbGxIYW5kbGVIb3Jpem9udGFsU2Ny
b2xsRXZlbnRzKTogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYXQgbGVhc3QKb25lIHdoZWVsIGV2
ZW50IGhhbmRsZXIKKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6IEFkZCBuZXcgdmFyaWFibGUg
dG8gY2FjaGUgdGhlIGNvdW50CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bnVtV2hlZWxFdmVudEhh
bmRsZXJzQ2hhbmdlZCk6IFNldHMgdGhlIGNvdW50CgpUaGUgcmVzdCBqdXN0IHByb3ZpZGVzIGFs
bCB0aGUgY29ubmVjdGlvbnMuCiogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CihXS1BhZ2VX
aWxsSGFuZGxlSG9yaXpvbnRhbFNjcm9sbEV2ZW50cyk6CiogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oOgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CiogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcDoKKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6CiogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oOgoqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOiBGb3J3YXJkIHRvIGluamVj
dGVkIGJ1bmRsZSBVSSBjbGllbnQKKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp1cGRhdGVDb3Vu
dFdoZWVsRXZlbnRIYW5kbGVycyk6IFVwZGF0ZXMgdGhlIHdlYiBwYWdlIHByb3h5CiogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKClRvb2xzOgoKKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CihXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKTogU2V0IG5ldyBkZWZhdWx0IG1l
dGhvZCB0byBuaWwuCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDY3ICsrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwICAgICAgICAgICAgICAgICAgICB8ICAgMTggKysrKwogU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgICAgICAgfCAgICA3ICsrCiBTb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrLQogU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oICAgICAgICAgICAgICAgfCAgICA0ICsK
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggICAgICAgICAgICAgICAgIHwgICAg
MyArCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgICAgICAgICAgICAgICB8
ICAgIDMgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICAg
ICAgIHwgICAxOSArKysrLQogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAg
ICAgICAgICAgICAgICAgIHwgICAyNCArKysrKwogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaCAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmggICAgICAgICAgIHwgICAgOSArKy0KIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oICAgIHwgICAgNiArLQogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tICAgfCAgIDkyICsrKysrKysrKysr
KysrLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgICAgICAg
ICAgIHwgICAxMyArKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oICAg
ICAgICAgICAgIHwgICAgMiArCiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICB8ICAgMTEgKysrCiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmggICAgICB8ICAgIDMgKwogU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKwogU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggfCAgICAzICsKIFNvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIHwgICAgMyArCiBTb3VyY2Uv
V2ViS2l0L2hhaWt1L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrCiAu
Li4vaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaCAgICAgICB8ICAgIDMg
KwogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAg
IDExICsrKwogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmggfCAgICA0ICsKIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuaCAgIHwgICAgMyArCiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTEgKysrCiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCB8ICAgIDMgKwogU291cmNlL1dlYktpdC93aW5jZS9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKwogLi4uL3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggICAgICAgfCAgICAzICsKIFNvdXJjZS9XZWJLaXQv
d3gvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArKysKIFNvdXJjZS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oICAgIHwgICAgMyArCiBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzEgKysr
KysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgICAgICAgICAg
fCAgICA1ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCAgICAgICAg
ICAgIHwgICAgMyArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
ICAgICAgICAgfCAgICA1ICsKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCAgICAgICAgICAgIHwgICAgNiArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbiAgfCAgICAxICsKIC4uLi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZS5oIHwgICAxMCArKy0KIC4uLi9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAgIHwgICAgNSArCiAuLi4vSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCAgICB8ICAgIDIgKwogLi4uL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgfCAgIDE4ICsrKysKIC4uLi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAgIHwgICAgMyArCiBUb29s
cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysK
IC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwICAgICAgICAgIHwgICAg
MSArCiA0NyBmaWxlcyBjaGFuZ2VkLCA0ODEgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGQxYWZkZWQuLmY3OGM3MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw3
MiBAQAogMjAxMS0wNS0xNSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5
IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3
YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MDc3OQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpEb2N1bWVudCk6IEluaXRpYWxpemUgd2hlZWwgZXZlbnQgaGFuZGxlciBj
b3VudAorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVy
KTogSW5jcmVtZW50IGNvdW50LCBhbmQgdGVsbCB0aGUgbWFpbiBmcmFtZQorICAgICAgICB0byBy
ZWNhbGN1bGF0ZSB0aGUgdG90YWwgbnVtYmVyIG9mIHdoZWVsIGV2ZW50IGhhbmRsZXJzIGluIGFs
bCBvZiBpdHMgZnJhbWVzJyBkb2N1bWVudHMKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpk
aWRSZW1vdmVXaGVlbEV2ZW50SGFuZGxlcik6IFJldmVyc2Ugb2YgcHJldmlvdXMgbWV0aG9kCisg
ICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2hl
ZWxFdmVudEhhbmRsZXJDb3VudCk6IEFjY2VzcyB0aGUgY291bnQKKyAgICAgICAgKiBkb20vTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0cnlBZGRFdmVudExpc3RlbmVyKTogSWYgdGhlIGV2
ZW50IGxpc3RlbmVyIGlzIGEgbW91c2Ugd2hlZWwgZXZlbnQsIHRoZW4KKyAgICAgICAgdGVsbCB0
aGUgZG9jdW1lbnQgdG8gaW5jcmVtZW50IGl0cyBjb3VudAorICAgICAgICAoV2ViQ29yZTo6dHJ5
UmVtb3ZlRXZlbnRMaXN0ZW5lcik6IFJldmVyc2Ugb2YgcHJldmlvdXMgbWV0aG9kCisKKyAgICAg
ICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOiBUd28gbmV3IG1ldGhvZHM6CisgICAgICAgICAgbnVt
V2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZDogV2ViUHJvY2VzcyB0ZWxscyBVSVByb2Nlc3MgdG8g
dXBkYXRlIGl0cyBjYWNoZWQKKyAgICAgICAgICAgIGNvdW50IG9mIHRvdGFsIHdoZWVsIGV2ZW50
IGhhbmRsZXJzLCB3aGljaCBpbiB0aGlzIGNhc2Ugb25seSBpbmNsdWRlIGhvcml6b250YWwKKyAg
ICAgICAgICAgIHNjcm9sbGJhcnMgYW5kIG1vdXNlIHdoZWVsIEpTIGhhbmRsZXJzCisgICAgICAg
ICAgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uOiBhbGxvdyB0aGUgVUlQcm9jZXNzIHRvIHBy
b3ZpZGUgc29tZSBjb250cm9sIG92ZXIKKyAgICAgICAgICAgIHdoZXRoZXIgcnViYmVyIGJhbmRp
bmcgaXMgYWxsb3dlZCB3aGVuIHNjcm9sbGluZyBpbiBhIHBhcnRpY3VsYXIgZGlyZWN0aW9uCisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlD
aHJvbWVDbGllbnQ6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGVtcHR5
IGltcGwKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzaG91bGRSdWJiZXJC
YW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGVtcHR5IGltcGwKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVs
RXZlbnQpOiBSZW1vdmUgYSByZWR1bmRhbnQgcG9pbnRlciBjaGVjaworICAgICAgICAqIHBhZ2Uv
RnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNldERvY3VtZW50KTogV2hlbiB0
aGUgZnJhbWUncyBkb2N1bWVudCBjaGFuZ2VzLCBjYWxjdWxhdGUgdGhhdAorICAgICAgICBkb2N1
bWVudCdzIHRvdGFsIHdoZWVsIGV2ZW50IGhhbmRsZXJzLCBhbmQgbm90aWZ5IHRoZSBVSVByb2Nl
c3MKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpub3RpZnlDaHJvbWVDbGllbnRXaGVlbEV2ZW50
SGFuZGxlckNvdW50Q2hhbmdlZCk6IFBlcmZvcm1zIGEgY3Jhd2wKKyAgICAgICAgb2YgdGhlIGZy
YW1lIHRyZWUgdG8gYWdncmVnYXRlIHRoZSBjb3VudAorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoK
KworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6IFZpcnR1YWxpemUgZGlkQWRk
SG9yaXpvbnRhbFNjcm9sbGJhciBhbmQKKyAgICAgICAgd2lsbFJlbW92ZUhvcml6b250YWxTY3Jv
bGxiYXIgZm9yIG92ZXJyaWRpbmcgaW4gUmVuZGVyTGF5ZXIgYW5kIEZyYW1lVmlldworICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9N
aW5pbXVtUG9zaXRpb24pOiBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMKKyAgICAgICAgbm8gc2Ny
b2xsYmFyIG9yIHRoZSBzY3JvbGxlciBwb3NpdGlvbiBpcyBpbiB0aGUgbWluaW11bSBzY3JvbGwg
cG9zaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNIb3Jpem9udGFs
U2Nyb2xsZXJQaW5uZWRUb01heGltdW1Qb3NpdGlvbik6IENvbnZlcnNlIG9mIHRoZSBhYm92ZS4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24pOiBEZWZhdWx0IGltcGwKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOiBVcGRh
dGVzIHRoZSBmcmFtZSdzIGRvY3VtZW50J3MgY291bnQKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIpOiBVcGRhdGVzIHRoZSBmcmFtZSdz
IGRvY3VtZW50J3MKKyAgICAgICAgY291bnQKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogQ29ubmVjdGl2ZSBnbHVlCisgICAgICAgICog
cGFnZS9GcmFtZVZpZXcuaDogQWRkaW5nIG92ZXJyaWRpbmcgbWV0aG9kcyBmcm9tIFNjcm9sbGFi
bGVBcmVhCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDogU2ltaWxhciBmdW5j
dGlvbmFsaXR5IHRvIEZyYW1lVmlldworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmRp
ZEFkZEhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OndpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaDoKKyAgICAgICAgCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLmg6IEZpeCB0eXBvIG9mICJtb21lbnR1bSIKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1h
Yzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBGaXggdHlwbyBvZiAibW9tZW50dW0iCisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KTogRml4IHR5
cG8gb2YgImNvYWxlc2NlZCIKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpi
ZWdpblNjcm9sbEdlc3R1cmUpOiBGaXggdHlwbyBvZiAiY29hbGVzY2VkIgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNuYXBSdWJiZXJCYW5kKTogRml4IHR5cG8gb2YgIm1v
bWVudHVtIgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpo
YW5kbGVXaGVlbEV2ZW50KTogTmV3IGxvZ2ljIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyCisgICAg
ICAgIHRvIGFsbG93IHJ1YmJlci1iYW5kaW5nIGJhc2VkIG9uIHRoZSBhcmVhJ3Mgc2Nyb2xsIHBv
c2l0aW9uIGFuZCB0aGUgd2hlZWwgZXZlbnQuCisgICAgICAgIENvdWxkIHByZXZlbnQgYWNjZXB0
aW5nIHRoZSB3aGVlbCBldmVudC4gQWxzbywgZml4IHR5cG8gb2YgIm1vbWVudHVtIgorICAgICAg
ICAoV2ViQ29yZTo6aXNTY3JvbGxpbmdMZWZ0QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGlu
ZSBoZWxwZXIgZnVuY3Rpb24gZm9yIGxvZ2ljCisgICAgICAgIChXZWJDb3JlOjppc1Njcm9sbGlu
Z1JpZ2h0QW5kU2hvdWxkTm90UnViYmVyQmFuZCk6IElubGluZSBoZWxwZXIgZnVuY3Rpb24gZm9y
IGxvZ2ljCisKKzIwMTEtMDUtMTUgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCiAKICAgICAgICAgTWlzc2luZyBtaWdyYXRp
b24gZnJvbSBFZGl0b3I6OlRleHRDaGVja2luZ09wdGlvbnMgdG8gVGV4dENoZWNraW5nVHlwZSBp
biBTcGVsbGluZ0NvcnJlY3Rpb25Db250cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggN2E0MWM5OS4uODc4ZWRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00MjIs
NiArNDIyLDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYg
dXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogICAgICwgbV93cml0aW5nTW9kZVNldE9u
RG9jdW1lbnRFbGVtZW50KGZhbHNlKQogICAgICwgbV93cml0ZVJlY3Vyc2lvbklzVG9vRGVlcChm
YWxzZSkKICAgICAsIG1fd3JpdGVSZWN1cnNpb25EZXB0aCgwKQorICAgICwgbV93aGVlbEV2ZW50
SGFuZGxlckNvdW50KDApCiB7CiAgICAgbV9kb2N1bWVudCA9IHRoaXM7CiAKQEAgLTUwNzksNCAr
NTA4MCwyMSBAQCBQYXNzUmVmUHRyPFRvdWNoTGlzdD4gRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoTGlz
dChFeGNlcHRpb25Db2RlJikgY29uc3QKIH0KICNlbmRpZgogCit2b2lkIERvY3VtZW50OjpkaWRB
ZGRXaGVlbEV2ZW50SGFuZGxlcigpCit7CisgICAgKyttX3doZWVsRXZlbnRIYW5kbGVyQ291bnQ7
CisgICAgRnJhbWUqIG1haW5GcmFtZSA9IHBhZ2UoKSA/IHBhZ2UoKS0+bWFpbkZyYW1lKCkgOiAw
OworICAgIGlmIChtYWluRnJhbWUpCisgICAgICAgIG1haW5GcmFtZS0+bm90aWZ5Q2hyb21lQ2xp
ZW50V2hlZWxFdmVudEhhbmRsZXJDb3VudENoYW5nZWQoKTsKK30KKwordm9pZCBEb2N1bWVudDo6
ZGlkUmVtb3ZlV2hlZWxFdmVudEhhbmRsZXIoKQoreworICAgIEFTU0VSVChtX3doZWVsRXZlbnRI
YW5kbGVyQ291bnQgPiAwKTsKKyAgICAtLW1fd2hlZWxFdmVudEhhbmRsZXJDb3VudDsKKyAgICBG
cmFtZSogbWFpbkZyYW1lID0gcGFnZSgpID8gcGFnZSgpLT5tYWluRnJhbWUoKSA6IDA7CisgICAg
aWYgKG1haW5GcmFtZSkKKyAgICAgICAgbWFpbkZyYW1lLT5ub3RpZnlDaHJvbWVDbGllbnRXaGVl
bEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDMwMmUwMmYuLjRiODY4MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xMTAwLDYgKzExMDAsMTEgQEAgcHVibGljOgogCiAgICAgQ29udGVudFNlY3Vy
aXR5UG9saWN5KiBjb250ZW50U2VjdXJpdHlQb2xpY3koKSB7IHJldHVybiBtX2NvbnRlbnRTZWN1
cml0eVBvbGljeS5nZXQoKTsgfQogCisgICAgLy8gVXNlZCB0byBrZWVwIHRyYWNrIG9mIGhvcml6
b250YWwgc2Nyb2xsYmFycyBhbmQgb25tb3VzZXdoZWVsIGV2ZW50IGhhbmRsZXJzIG9ubHkuCisg
ICAgdW5zaWduZWQgd2hlZWxFdmVudEhhbmRsZXJDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fd2hl
ZWxFdmVudEhhbmRsZXJDb3VudDsgfQorICAgIHZvaWQgZGlkQWRkV2hlZWxFdmVudEhhbmRsZXIo
KTsKKyAgICB2b2lkIGRpZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKCk7CisgICAgCiBwcm90ZWN0
ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29s
IGlzSFRNTCk7CiAKQEAgLTEzOTcsNiArMTQwMiw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE1l
ZGlhUXVlcnlNYXRjaGVyPiBtX21lZGlhUXVlcnlNYXRjaGVyOwogICAgIGJvb2wgbV93cml0ZVJl
Y3Vyc2lvbklzVG9vRGVlcDsKICAgICB1bnNpZ25lZCBtX3dyaXRlUmVjdXJzaW9uRGVwdGg7Cisg
ICAgCisgICAgdW5zaWduZWQgbV93aGVlbEV2ZW50SGFuZGxlckNvdW50OwogCiAjaWYgRU5BQkxF
KFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIE93blB0cjxTY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXI+IG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmlu
ZGV4IDJhM2Y5N2MuLmQ3MTdjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI4LDYgKzI4LDggQEAK
ICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUg
IkF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVu
dC5oIgogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNs
dWRlICJDU1NSdWxlTGlzdC5oIgpAQCAtMjY2OCw5ICsyNjcwLDEyIEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCB0cnlBZGRFdmVudExpc3RlbmVyKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlCiAgICAgaWYgKCF0YXJnZXROb2RlLT5FdmVudFRhcmdldDo6YWRkRXZlbnRMaXN0
ZW5lcihldmVudFR5cGUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRhcmdldE5vZGUtPmRvY3VtZW50
KCkpCisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRhcmdldE5vZGUtPmRvY3VtZW50KCkp
IHsKICAgICAgICAgZG9jdW1lbnQtPmFkZExpc3RlbmVyVHlwZUlmTmVlZGVkKGV2ZW50VHlwZSk7
Ci0KKyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50
KQorICAgICAgICAgICAgZG9jdW1lbnQtPmRpZEFkZFdoZWVsRXZlbnRIYW5kbGVyKCk7CisgICAg
fQorICAgICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjcxNSw3ICsyNzIwLDExIEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCB0cnlSZW1vdmVFdmVudExpc3RlbmVyKE5vZGUqIHRhcmdldE5v
ZGUsIGNvbnN0IEF0b21pY1N0cmluZyYKIAogICAgIC8vIEZJWE1FOiBOb3RpZnkgRG9jdW1lbnQg
dGhhdCB0aGUgbGlzdGVuZXIgaGFzIHZhbmlzaGVkLiBXZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2Yg
YSBudW1iZXIgb2YKICAgICAvLyBsaXN0ZW5lcnMgZm9yIGVhY2ggdHlwZSwgbm90IGp1c3QgYSBi
b29sIC0gc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzg2MQot
CisgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRhcmdldE5vZGUtPmRvY3VtZW50KCkpIHsK
KyAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50KQor
ICAgICAgICAgICAgZG9jdW1lbnQtPmRpZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKCk7CisgICAg
fQorICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKaW5kZXggYWEyZmM5Yy4uZjMyMDRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtMjIzLDYgKzIyMywxMCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKICAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpIHsgfQogI2VuZGlm
CisgICAgCisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5z
aWduZWQpIHsgfQorICAgIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
fTsKIAogY2xhc3MgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNs
aWVudCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA4OTQxODQ1Li45YTBmZGVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTE3MCw2ICsxNzAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0
cmluZyYsIFRleHREaXJlY3Rpb24pID0gMDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQo
RnJhbWUqKSA9IDA7CisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJl
Y3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdCA9IDA7CiAKICNpZiBFTkFCTEUoREFUQUJBU0Up
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25z
dCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkgPSAwOwpAQCAtMzIwLDYgKzMyMSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgfTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxSdW5Nb2Rh
bERpYWxvZ0R1cmluZ1BhZ2VEaXNtaXNzYWwoY29uc3QgRGlhbG9nVHlwZSYpIGNvbnN0IHsgfQog
CisgICAgICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2ln
bmVkKSA9IDA7CisgICAgICAgIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCB+Q2hy
b21lQ2xpZW50KCkgeyB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApp
bmRleCBkNDE1ZWUwLi4xNDYyMjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC0yMTM2LDEwICsyMTM2LDExIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2
ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICBpZiAoZS5pc0FjY2VwdGVkKCkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gV2UgZG8gYW5vdGhlciBjaGVjayBvbiB0aGUgZnJh
bWUgdmlldyBiZWNhdXNlIHRoZSBldmVudCBoYW5kbGVyIGNhbiBydW4gSlMgd2hpY2ggcmVzdWx0
cyBpbiB0aGUgZnJhbWUgZ2V0dGluZyBkZXN0cm95ZWQuCiAgICAgdmlldyA9IG1fZnJhbWUtPnZp
ZXcoKTsKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQorICAgIAogICAg
IHZpZXctPndoZWVsRXZlbnQoZSk7CiAgICAgcmV0dXJuIGUuaXNBY2NlcHRlZCgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAppbmRleCBmY2M1ZDVlLi5kNWI3OWYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cApAQCAtMzA3LDggKzMwNywxMSBAQCB2b2lkIEZyYW1lOjpzZXREb2N1bWVudChQYXNzUmVmUHRy
PERvY3VtZW50PiBuZXdEb2MpCiAgICAgLy8gVXBkYXRlIHRoZSBjYWNoZWQgJ2RvY3VtZW50JyBw
cm9wZXJ0eSwgd2hpY2ggaXMgbm93IHN0YWxlLgogICAgIG1fc2NyaXB0LnVwZGF0ZURvY3VtZW50
KCk7CiAKLSAgICBpZiAobV9wYWdlKQorICAgIGlmIChtX3BhZ2UpIHsKICAgICAgICAgbV9wYWdl
LT51cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpOworICAgICAgICBpZiAobV9wYWdlLT5tYWluRnJh
bWUoKSA9PSB0aGlzKQorICAgICAgICAgICAgbm90aWZ5Q2hyb21lQ2xpZW50V2hlZWxFdmVudEhh
bmRsZXJDb3VudENoYW5nZWQoKTsKKyAgICB9CiB9CiAKICNpZiBFTkFCTEUoT1JJRU5UQVRJT05f
RVZFTlRTKQpAQCAtMTExNCw0ICsxMTE3LDE4IEBAIHZvaWQgRnJhbWU6OnNjYWxlUGFnZShmbG9h
dCBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKICAgICB9CiB9CiAKK3ZvaWQgRnJhbWU6
Om5vdGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKCkgY29uc3QK
K3sKKyAgICAvLyBFbnN1cmUgdGhhdCB0aGlzIG1ldGhvZCBpcyBiZWluZyBjYWxsZWQgb24gdGhl
IG1haW4gZnJhbWUgb2YgdGhlIHBhZ2UuCisgICAgQVNTRVJUKG1fcGFnZSAmJiBtX3BhZ2UtPm1h
aW5GcmFtZSgpID09IHRoaXMpOworICAgIAorICAgIHVuc2lnbmVkIGNvdW50ID0gMDsKKyAgICBm
b3IgKGNvbnN0IEZyYW1lKiBmcmFtZSA9IHRoaXM7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVl
KCktPnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSkKKyAg
ICAgICAgICAgIGNvdW50ICs9IGZyYW1lLT5kb2N1bWVudCgpLT53aGVlbEV2ZW50SGFuZGxlckNv
dW50KCk7CisgICAgfQorICAgIAorICAgIG1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5udW1X
aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGNvdW50KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IGRlYzIyZDcuLjQ0ZmU0NmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmgKQEAgLTIwNiw2ICsyMDYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICAgICAgTWVkaWFTdHJlYW1GcmFtZUNvbnRyb2xsZXIqIG1lZGlhU3Ry
ZWFtRnJhbWVDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbUZyYW1lQ29u
dHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCisgICAgICAgIAorICAgICAgICAvLyBTaG91bGQgb25s
eSBiZSBjYWxsZWQgb24gdGhlIG1haW4gZnJhbWUgb2YgYSBwYWdlLgorICAgICAgICB2b2lkIG5v
dGlmeUNocm9tZUNsaWVudFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKCkgY29uc3Q7CiAK
ICAgICAvLyA9PT09PT09PQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYzRjYmFl
Yi4uMzA4ODViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
I2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2Vs
ZWN0b3IuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNo
cm9tZS5oIgpAQCAtMzA2LDYgKzMwNywyMSBAQCB2b2lkIEZyYW1lVmlldzo6ZGV0YWNoQ3VzdG9t
U2Nyb2xsYmFycygpCiAgICAgfQogfQogCit2b2lkIEZyYW1lVmlldzo6ZGlkQWRkSG9yaXpvbnRh
bFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICBpZiAobV9mcmFtZS0+ZG9j
dW1lbnQoKSkKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZGlkQWRkV2hlZWxFdmVudEhh
bmRsZXIoKTsKKyAgICBTY3JvbGxWaWV3OjpkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKHNjcm9s
bGJhcik7Cit9CisKK3ZvaWQgRnJhbWVWaWV3Ojp3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJh
cihTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICBTY3JvbGxWaWV3Ojp3aWxsUmVtb3ZlSG9y
aXpvbnRhbFNjcm9sbGJhcihzY3JvbGxiYXIpOworICAgIC8vIEZJWE1FOiBtYXliZSBuZWVkIGEg
c2VwYXJhdGUgU2Nyb2xsYWJsZUFyZWE6OmRpZFJlbW92ZUhvcml6b250YWxTY3JvbGxiYXIgY2Fs
bGJhY2s/CisgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgIG1fZnJhbWUtPmRv
Y3VtZW50KCktPmRpZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKCk7Cit9CisKIFNjcm9sbGJhck92
ZXJsYXlTdHlsZSBGcmFtZVZpZXc6OnJlY29tbWVuZGVkU2Nyb2xsYmFyT3ZlcmxheVN0eWxlKCkg
Y29uc3QKIHsKICAgICBDb2xvciBiZ0NvbG9yID0gbV9mcmFtZS0+Z2V0RG9jdW1lbnRCYWNrZ3Jv
dW5kQ29sb3IoKTsKQEAgLTE0OTAsNiArMTUwNiwxNCBAQCB2b2lkIEZyYW1lVmlldzo6cmVwYWlu
dEZpeGVkRWxlbWVudHNBZnRlclNjcm9sbGluZygpCiAgICAgfQogfQogCitib29sIEZyYW1lVmll
dzo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24p
IGNvbnN0Cit7CisgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkgPyBmcmFtZSgpLT5wYWdlKCkgOiAw
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIFNjcm9sbFZpZXc6OnNob3VsZFJ1YmJl
ckJhbmRJbkRpcmVjdGlvbihkaXJlY3Rpb24pOworICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS0+
Y2xpZW50KCktPnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihkaXJlY3Rpb24pOworfQorCiBI
b3N0V2luZG93KiBGcmFtZVZpZXc6Omhvc3RXaW5kb3coKSBjb25zdAogewogICAgIFBhZ2UqIHBh
Z2UgPSBmcmFtZSgpID8gZnJhbWUoKS0+cGFnZSgpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CmluZGV4IDQ5YTZkOWEuLjViNzM5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtODIs
NiArODIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gY3Jl
YXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uKTsKIAogICAgIHZpcnR1YWwgYm9vbCBh
dm9pZFNjcm9sbGJhckNyZWF0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhv
cml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1v
dmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogCiAgICAgdmlydHVhbCB2b2lkIHNl
dENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJik7CiAKQEAgLTE2MCw2ICsxNjIsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYpOwogICAgIHZv
aWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkVmlhUGxhdGZvcm1XaWRnZXQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVwYWludEZpeGVkRWxlbWVudHNBZnRlclNjcm9sbGluZygpOworICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdDsK
IAogICAgIFN0cmluZyBtZWRpYVR5cGUoKSBjb25zdDsKICAgICB2b2lkIHNldE1lZGlhVHlwZShj
b25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmlu
ZGV4IDRiYmVkM2UuLjdiMGY1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaApAQCAtNzMsOCArNzMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZEFkZFZlcnRp
Y2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZvaWQgd2lsbFJlbW92ZVZlcnRpY2FsU2Ny
b2xsYmFyKFNjcm9sbGJhciopOwotICAgIHZvaWQgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihT
Y3JvbGxiYXIqKTsKLSAgICB2b2lkIHdpbGxSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9s
bGJhciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9s
bGJhciopOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihT
Y3JvbGxiYXIqKTsKIAogICAgIGJvb2wgaGFzT3ZlcmxheVNjcm9sbGJhcnMoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFNjcm9sbGJhck92ZXJsYXlTdHlsZSByZWNvbW1lbmRlZFNjcm9sbGJhck92ZXJs
YXlTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIFNjcm9sbGJhck92ZXJsYXlTdHlsZURlZmF1bHQ7IH0K
QEAgLTEzMSw2ICsxMzEsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdXNw
ZW5kU2Nyb2xsQW5pbWF0aW9ucygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZp
c2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0JikgeyB9CisgICAgCisgICAgYm9v
bCBpc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTWluaW11bVBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3NpdGlvbihob3Jpem9udGFs
U2Nyb2xsYmFyKCkpIDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLngoKTsgfQorICAgIGJvb2wg
aXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb01heGltdW1Qb3NpdGlvbigpIGNvbnN0IHsgcmV0
dXJuICFob3Jpem9udGFsU2Nyb2xsYmFyKCkgfHwgc2Nyb2xsUG9zaXRpb24oaG9yaXpvbnRhbFNj
cm9sbGJhcigpKSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7IH0KKyAgICAKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9t
UGFnZSgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5oCmluZGV4IGJmZWY5NWIuLmZmMDVlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCkBAIC0xNDQsOCArMTQ0LDEyIEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2luU2Nyb2xsR2VzdHVyZTsKICAgICBib29sIG1fbW9tZW50dW1T
Y3JvbGxJblByb2dyZXNzOwogICAgIGJvb2wgbV9pZ25vcmVNb21lbnR1bVNjcm9sbHM7CisgICAg
Ym9vbCBtX3Njcm9sbGVySW5pdGlhbGx5UGlubmVkT25MZWZ0OworICAgIGJvb2wgbV9zY3JvbGxl
ckluaXRpYWxseVBpbm5lZE9uUmlnaHQ7CisgICAgaW50IG1fY3VtdWxhdGl2ZUhvcml6b250YWxT
Y3JvbGw7CisgICAgYm9vbCBtX2RpZEN1bXVsYXRpdmVIb3Jpem9udGFsU2Nyb2xsRXZlclN3aXRj
aFRvT3Bwb3NpdGVEaXJlY3Rpb25PZlBpbjsKICAgICAKLSAgICBDRlRpbWVJbnRlcnZhbCBtX2xh
c3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcDsKKyAgICBDRlRpbWVJbnRlcnZhbCBtX2xhc3RNb21l
bnR1bVNjcm9sbFRpbWVzdGFtcDsKICAgICBGbG9hdFNpemUgbV9vdmVyZmxvd1Njcm9sbERlbHRh
OwogICAgIEZsb2F0U2l6ZSBtX3N0cmV0Y2hTY3JvbGxGb3JjZTsKICAgICBGbG9hdFNpemUgbV9t
b21lbnR1bVZlbG9jaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLm1tCmluZGV4IDk5MzgzZGEuLjYwNWJhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KQEAgLTQ1OSw3ICs0NTks
NyBAQCBTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMoU2Nyb2xsYWJsZUFyZWEq
IHNjcm9sbGFibGVBcmVhKQogICAgICwgbV9pblNjcm9sbEdlc3R1cmUoZmFsc2UpCiAgICAgLCBt
X21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyhmYWxzZSkKICAgICAsIG1faWdub3JlTW9tZW50dW1T
Y3JvbGxzKGZhbHNlKQotICAgICwgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAoMCkKKyAg
ICAsIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wKDApCiAgICAgLCBtX3N0YXJ0VGltZSgw
KQogICAgICwgbV9zbmFwUnViYmVyQmFuZFRpbWVyKHRoaXMsICZTY3JvbGxBbmltYXRvck1hYzo6
c25hcFJ1YmJlckJhbmRUaW1lckZpcmVkKQogI2VuZGlmCkBAIC03NjQsNiArNzY0LDE2IEBAIHN0
YXRpYyBmbG9hdCBzY3JvbGxXaGVlbE11bHRpcGxpZXIoKQogICAgIHJldHVybiBtdWx0aXBsaWVy
OwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgaXNTY3JvbGxpbmdMZWZ0QW5kU2hvdWxkTm90UnVi
YmVyQmFuZChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGFibGVBcmVhKiBz
Y3JvbGxhYmxlQXJlYSkKK3sKKyAgICByZXR1cm4gd2hlZWxFdmVudC5kZWx0YVgoKSA+IDAgJiYg
IXNjcm9sbGFibGVBcmVhLT5zaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsTGVmdCk7
Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1Njcm9sbGluZ1JpZ2h0QW5kU2hvdWxkTm90UnVi
YmVyQmFuZChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNjcm9sbGFibGVBcmVhKiBz
Y3JvbGxhYmxlQXJlYSkKK3sKKyAgICByZXR1cm4gd2hlZWxFdmVudC5kZWx0YVgoKSA8IDAgJiYg
IXNjcm9sbGFibGVBcmVhLT5zaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oU2Nyb2xsUmlnaHQp
OworfQorCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50KFBsYXRmb3Jt
V2hlZWxFdmVudCYgd2hlZWxFdmVudCkKIHsKICAgICBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxv
YWQgPSB0cnVlOwpAQCAtNzg3LDE3ICs3OTcsNDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6
aGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAg
ICAgICBTY3JvbGxBbmltYXRvcjo6aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICht
X3Njcm9sbGFibGVBcmVhLT5ob3Jpem9udGFsU2Nyb2xsYmFyKCkpIHsKKyAgICAgICAgICAgIC8v
IElmIHRoZXJlIGlzIGEgc2Nyb2xsYmFyLCB3ZSBhZ2dyZWdhdGUgdGhlIHdoZWVsIGV2ZW50cyB0
byBnZXQgYW4KKyAgICAgICAgICAgIC8vIG92ZXJhbGwgdHJlbmQgb2YgdGhlIHNjcm9sbC4gSWYg
dGhlIGRpcmVjdGlvbiBvZiB0aGUgc2Nyb2xsIGlzIGV2ZXIKKyAgICAgICAgICAgIC8vIGluIHRo
ZSBvcHBvc2l0ZSBkaXJlY3Rpb24gb2YgdGhlIHBpbiBsb2NhdGlvbiwgdGhlbiB3ZSBzd2l0Y2gg
dGhlCisgICAgICAgICAgICAvLyBib29sZWFuLCBhbmQgcnViYmVyIGJhbmQuIFRoYXQgaXMsIGlm
IHdlIHdlcmUgcGlubmVkIHRvIHRoZSBsZWZ0LAorICAgICAgICAgICAgLy8gYW5kIHdlIGVuZGVk
IHVwIHNjcm9sbGluZyB0byB0aGUgcmlnaHQsIHdlIHJ1YmJlciBiYW5kLgorICAgICAgICAgICAg
bV9jdW11bGF0aXZlSG9yaXpvbnRhbFNjcm9sbCArPSB3aGVlbEV2ZW50LmRlbHRhWCgpOworICAg
ICAgICAgICAgaWYgKG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPbkxlZnQgJiYgbV9jdW11bGF0
aXZlSG9yaXpvbnRhbFNjcm9sbCA8IDApCisgICAgICAgICAgICAgICAgbV9kaWRDdW11bGF0aXZl
SG9yaXpvbnRhbFNjcm9sbEV2ZXJTd2l0Y2hUb09wcG9zaXRlRGlyZWN0aW9uT2ZQaW4gPSB0cnVl
OworICAgICAgICAgICAgaWYgKG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPblJpZ2h0ICYmIG1f
Y3VtdWxhdGl2ZUhvcml6b250YWxTY3JvbGwgPiAwKQorICAgICAgICAgICAgICAgIG1fZGlkQ3Vt
dWxhdGl2ZUhvcml6b250YWxTY3JvbGxFdmVyU3dpdGNoVG9PcHBvc2l0ZURpcmVjdGlvbk9mUGlu
ID0gdHJ1ZTsKKyAgICAgICAgfQogCi0gICAgd2hlZWxFdmVudC5hY2NlcHQoKTsKKyAgICAgICAg
Ly8gQWZ0ZXIgYSBnZXN0dXJlIGJlZ2lucywgd2UgZ28gdGhyb3VnaDoKKyAgICAgICAgLy8gMSsg
UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25lCisgICAgICAgIC8vIDArIFBsYXRmb3JtV2hlZWxF
dmVudFBoYXNlQ2hhbmdlZAorICAgICAgICAvLyAxIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlRW5k
ZWQgaWYgdGhlcmUgd2FzIGF0IGxlYXN0IG9uZSBjaGFuZ2VkIGV2ZW50CisgICAgICAgIGlmICh3
aGVlbEV2ZW50Lm1vbWVudHVtUGhhc2UoKSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUg
JiYgIW1fZGlkQ3VtdWxhdGl2ZUhvcml6b250YWxTY3JvbGxFdmVyU3dpdGNoVG9PcHBvc2l0ZURp
cmVjdGlvbk9mUGluKSB7CisgICAgICAgICAgICBpZiAoKGlzU2Nyb2xsaW5nTGVmdEFuZFNob3Vs
ZE5vdFJ1YmJlckJhbmQod2hlZWxFdmVudCwgbV9zY3JvbGxhYmxlQXJlYSkgJiYKKyAgICAgICAg
ICAgICAgICBtX3Njcm9sbGVySW5pdGlhbGx5UGlubmVkT25MZWZ0ICYmCisgICAgICAgICAgICAg
ICAgbV9zY3JvbGxhYmxlQXJlYS0+aXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb01pbmltdW1Q
b3NpdGlvbigpKSB8fAorICAgICAgICAgICAgICAgIChpc1Njcm9sbGluZ1JpZ2h0QW5kU2hvdWxk
Tm90UnViYmVyQmFuZCh3aGVlbEV2ZW50LCBtX3Njcm9sbGFibGVBcmVhKSAmJgorICAgICAgICAg
ICAgICAgIG1fc2Nyb2xsZXJJbml0aWFsbHlQaW5uZWRPblJpZ2h0ICYmCisgICAgICAgICAgICAg
ICAgbV9zY3JvbGxhYmxlQXJlYS0+aXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb01heGltdW1Q
b3NpdGlvbigpKSkgeworICAgICAgICAgICAgICAgIFNjcm9sbEFuaW1hdG9yOjpoYW5kbGVXaGVl
bEV2ZW50KHdoZWVsRXZlbnQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KIAotICAgIGJvb2wgaXNNb21ldHVtU2Nyb2xsRXZlbnQgPSAo
d2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgIT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VOb25l
KTsKLSAgICBpZiAobV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgJiYgKGlzTW9tZXR1bVNjcm9sbEV2
ZW50IHx8IG1fc25hcFJ1YmJlckJhbmRUaW1lci5pc0FjdGl2ZSgpKSkgewotICAgICAgICBpZiAo
d2hlZWxFdmVudC5tb21lbnR1bVBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRl
ZCkKKyAgICBib29sIGlzTW9tZW50dW1TY3JvbGxFdmVudCA9ICh3aGVlbEV2ZW50Lm1vbWVudHVt
UGhhc2UoKSAhPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZU5vbmUpOworICAgIGlmIChtX2lnbm9y
ZU1vbWVudHVtU2Nyb2xscyAmJiAoaXNNb21lbnR1bVNjcm9sbEV2ZW50IHx8IG1fc25hcFJ1YmJl
ckJhbmRUaW1lci5pc0FjdGl2ZSgpKSkgeworICAgICAgICBpZiAod2hlZWxFdmVudC5tb21lbnR1
bVBoYXNlKCkgPT0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2VFbmRlZCkgewogICAgICAgICAgICAg
bV9pZ25vcmVNb21lbnR1bVNjcm9sbHMgPSBmYWxzZTsKKyAgICAgICAgICAgIHdoZWVsRXZlbnQu
YWNjZXB0KCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIHdoZWVs
RXZlbnQuYWNjZXB0KCk7CiAgICAgc21vb3RoU2Nyb2xsV2l0aEV2ZW50KHdoZWVsRXZlbnQpOwog
fQogCkBAIC04ODEsMTEgKzkyMSwxMSBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhT
Y3JvbGxXaXRoRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIC8vIFJl
c2V0IG92ZXJmbG93IHZhbHVlcyBiZWNhdXNlIHdlIG1heSBkZWNpZGUgdG8gcmVtb3ZlIGRlbHRh
IGF0IHZhcmlvdXMgcG9pbnRzIGFuZCBwdXQgaXQgaW50byBvdmVyZmxvdy4KICAgICBtX292ZXJm
bG93U2Nyb2xsRGVsdGEgPSBGbG9hdFNpemUoKTsKIAotICAgIGZsb2F0IGV2ZW50Q29hbGxlc2Nl
ZERlbHRhWCA9IC13aGVlbEV2ZW50LmRlbHRhWCgpOwotICAgIGZsb2F0IGV2ZW50Q29hbGxlc2Nl
ZERlbHRhWSA9IC13aGVlbEV2ZW50LmRlbHRhWSgpOworICAgIGZsb2F0IGV2ZW50Q29hbGVzY2Vk
RGVsdGFYID0gLXdoZWVsRXZlbnQuZGVsdGFYKCk7CisgICAgZmxvYXQgZXZlbnRDb2FsZXNjZWRE
ZWx0YVkgPSAtd2hlZWxFdmVudC5kZWx0YVkoKTsKIAotICAgIGRlbHRhWCArPSBldmVudENvYWxs
ZXNjZWREZWx0YVg7Ci0gICAgZGVsdGFZICs9IGV2ZW50Q29hbGxlc2NlZERlbHRhWTsKKyAgICBk
ZWx0YVggKz0gZXZlbnRDb2FsZXNjZWREZWx0YVg7CisgICAgZGVsdGFZICs9IGV2ZW50Q29hbGVz
Y2VkRGVsdGFZOwogCiAgICAgLy8gU2xpZ2h0bHkgcHJlZmVyIHNjcm9sbGluZyB2ZXJ0aWNhbGx5
IGJ5IGFwcGx5aW5nIHRoZSA9IGNhc2UgdG8gZGVsdGFZCiAgICAgaWYgKGZhYnNmKGRlbHRhWSkg
Pj0gZmFic2YoZGVsdGFYKSkKQEAgLTkwOCwxNCArOTQ4LDE0IEBAIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNYWM6OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZl
bnQpCiAgICAgaWYgKCFtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyAmJiAocGhhc2UgPT0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2VCZWdhbiB8fCBwaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZUNoYW5nZWQpKQogICAgICAgICBtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVzcyA9IHRydWU7
CiAKLSAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSB3aGVlbEV2ZW50LnRpbWVzdGFtcCgp
IC0gbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXA7CisgICAgQ0ZUaW1lSW50ZXJ2YWwgdGlt
ZURlbHRhID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKSAtIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGlt
ZXN0YW1wOwogICAgIGlmIChtX2luU2Nyb2xsR2VzdHVyZSB8fCBtX21vbWVudHVtU2Nyb2xsSW5Q
cm9ncmVzcykgewotICAgICAgICBpZiAobV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAgJiYg
dGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1lb3V0
KSB7Ci0gICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkuc2V0V2lkdGgoZXZlbnRDb2FsbGVz
Y2VkRGVsdGFYIC8gKGZsb2F0KXRpbWVEZWx0YSk7Ci0gICAgICAgICAgICBtX21vbWVudHVtVmVs
b2NpdHkuc2V0SGVpZ2h0KGV2ZW50Q29hbGxlc2NlZERlbHRhWSAvIChmbG9hdCl0aW1lRGVsdGEp
OwotICAgICAgICAgICAgbV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAgPSB3aGVlbEV2ZW50
LnRpbWVzdGFtcCgpOworICAgICAgICBpZiAobV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAg
JiYgdGltZURlbHRhID4gMCAmJiB0aW1lRGVsdGEgPCBzY3JvbGxWZWxvY2l0eVplcm9pbmdUaW1l
b3V0KSB7CisgICAgICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkuc2V0V2lkdGgoZXZlbnRDb2Fs
ZXNjZWREZWx0YVggLyAoZmxvYXQpdGltZURlbHRhKTsKKyAgICAgICAgICAgIG1fbW9tZW50dW1W
ZWxvY2l0eS5zZXRIZWlnaHQoZXZlbnRDb2FsZXNjZWREZWx0YVkgLyAoZmxvYXQpdGltZURlbHRh
KTsKKyAgICAgICAgICAgIG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVu
dC50aW1lc3RhbXAoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fbGFzdE1vbWVt
dHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsKKyAgICAgICAgICAg
IG1fbGFzdE1vbWVudHVtU2Nyb2xsVGltZXN0YW1wID0gd2hlZWxFdmVudC50aW1lc3RhbXAoKTsK
ICAgICAgICAgICAgIG1fbW9tZW50dW1WZWxvY2l0eSA9IEZsb2F0U2l6ZSgpOwogICAgICAgICB9
CiAKQEAgLTk2OSw3ICsxMDA5LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c21vb3RoU2Ny
b2xsV2l0aEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIGlmICghYWxsb3dzSG9yaXpvbnRhbFN0cmV0Y2hpbmcoKSkgewog
ICAgICAgICAgICAgICAgIGRlbHRhWCA9IDA7Ci0gICAgICAgICAgICAgICAgZXZlbnRDb2FsbGVz
Y2VkRGVsdGFYID0gMDsKKyAgICAgICAgICAgICAgICBldmVudENvYWxlc2NlZERlbHRhWCA9IDA7
CiAgICAgICAgICAgICB9IGVsc2UgaWYgKChkZWx0YVggIT0gMCkgJiYgIWlzSG9yaXpvbnRhbGx5
U3RyZXRjaGVkICYmICFwaW5uZWRJbkRpcmVjdGlvbihkZWx0YVgsIDApKSB7CiAgICAgICAgICAg
ICAgICAgZGVsdGFYICo9IHNjcm9sbFdoZWVsTXVsdGlwbGllcigpOwogCkBAIC05ODIsNyArMTAy
Miw3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNtb290aFNjcm9sbFdpdGhFdmVudChQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
ICghYWxsb3dzVmVydGljYWxTdHJldGNoaW5nKCkpIHsKICAgICAgICAgICAgICAgICBkZWx0YVkg
PSAwOwotICAgICAgICAgICAgICAgIGV2ZW50Q29hbGxlc2NlZERlbHRhWSA9IDA7CisgICAgICAg
ICAgICAgICAgZXZlbnRDb2FsZXNjZWREZWx0YVkgPSAwOwogICAgICAgICAgICAgfSBlbHNlIGlm
ICgoZGVsdGFZICE9IDApICYmICFpc1ZlcnRpY2FsbHlTdHJldGNoZWQgJiYgIXBpbm5lZEluRGly
ZWN0aW9uKDAsIGRlbHRhWSkpIHsKICAgICAgICAgICAgICAgICBkZWx0YVkgKj0gc2Nyb2xsV2hl
ZWxNdWx0aXBsaWVyKCk7CiAKQEAgLTk5Niw3ICsxMDM2LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6c21vb3RoU2Nyb2xsV2l0aEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVu
dCkKICAgICAgICAgICAgIEludFNpemUgc3RyZXRjaEFtb3VudCA9IG1fc2Nyb2xsYWJsZUFyZWEt
Pm92ZXJoYW5nQW1vdW50KCk7CiAgICAgICAgIAogICAgICAgICAgICAgaWYgKG1fbW9tZW50dW1T
Y3JvbGxJblByb2dyZXNzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKChwaW5uZWRJbkRpcmVjdGlv
bihldmVudENvYWxsZXNjZWREZWx0YVgsIGV2ZW50Q29hbGxlc2NlZERlbHRhWSkgfHwgKGZhYnNm
KGV2ZW50Q29hbGxlc2NlZERlbHRhWCkgKyBmYWJzZihldmVudENvYWxsZXNjZWREZWx0YVkpIDw9
IDApKSAmJiBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcCkgeworICAgICAgICAgICAgICAg
IGlmICgocGlubmVkSW5EaXJlY3Rpb24oZXZlbnRDb2FsZXNjZWREZWx0YVgsIGV2ZW50Q29hbGVz
Y2VkRGVsdGFZKSB8fCAoZmFic2YoZXZlbnRDb2FsZXNjZWREZWx0YVgpICsgZmFic2YoZXZlbnRD
b2FsZXNjZWREZWx0YVkpIDw9IDApKSAmJiBtX2xhc3RNb21lbnR1bVNjcm9sbFRpbWVzdGFtcCkg
ewogICAgICAgICAgICAgICAgICAgICBtX2lnbm9yZU1vbWVudHVtU2Nyb2xscyA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgICAgIG1fbW9tZW50dW1TY3JvbGxJblByb2dyZXNzID0gZmFsc2U7CiAg
ICAgICAgICAgICAgICAgICAgIHNuYXBSdWJiZXJCYW5kKCk7CkBAIC0xMDIxLDcgKzEwNjEsNyBA
QCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzbW9vdGhTY3JvbGxXaXRoRXZlbnQoUGxhdGZvcm1X
aGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogICAgIGlmIChtX21vbWVudHVtU2Nyb2xsSW5Qcm9ncmVz
cyAmJiBwaGFzZSA9PSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZUVuZGVkKSB7CiAgICAgICAgIG1f
bW9tZW50dW1TY3JvbGxJblByb2dyZXNzID0gZmFsc2U7CiAgICAgICAgIG1faWdub3JlTW9tZW50
dW1TY3JvbGxzID0gZmFsc2U7Ci0gICAgICAgIG1fbGFzdE1vbWVtdHVtU2Nyb2xsVGltZXN0YW1w
ID0gMDsKKyAgICAgICAgbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgPSAwOwogICAgIH0K
IH0KIApAQCAtMTAzMyw5ICsxMDczLDEzIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmJlZ2lu
U2Nyb2xsR2VzdHVyZSgpCiAgICAgbV9pblNjcm9sbEdlc3R1cmUgPSB0cnVlOwogICAgIG1fbW9t
ZW50dW1TY3JvbGxJblByb2dyZXNzID0gZmFsc2U7CiAgICAgbV9pZ25vcmVNb21lbnR1bVNjcm9s
bHMgPSBmYWxzZTsKLSAgICBtX2xhc3RNb21lbXR1bVNjcm9sbFRpbWVzdGFtcCA9IDA7CisgICAg
bV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXAgPSAwOwogICAgIG1fbW9tZW50dW1WZWxvY2l0
eSA9IEZsb2F0U2l6ZSgpOwotCisgICAgbV9zY3JvbGxlckluaXRpYWxseVBpbm5lZE9uTGVmdCA9
IG1fc2Nyb2xsYWJsZUFyZWEtPmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9z
aXRpb24oKTsKKyAgICBtX3Njcm9sbGVySW5pdGlhbGx5UGlubmVkT25SaWdodCA9IG1fc2Nyb2xs
YWJsZUFyZWEtPmlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9NYXhpbXVtUG9zaXRpb24oKTsK
KyAgICBtX2N1bXVsYXRpdmVIb3Jpem9udGFsU2Nyb2xsID0gMDsKKyAgICBtX2RpZEN1bXVsYXRp
dmVIb3Jpem9udGFsU2Nyb2xsRXZlclN3aXRjaFRvT3Bwb3NpdGVEaXJlY3Rpb25PZlBpbiA9IGZh
bHNlOworICAgIAogICAgIEludFNpemUgc3RyZXRjaEFtb3VudCA9IG1fc2Nyb2xsYWJsZUFyZWEt
Pm92ZXJoYW5nQW1vdW50KCk7CiAgICAgbV9zdHJldGNoU2Nyb2xsRm9yY2Uuc2V0V2lkdGgocmVi
b3VuZERlbHRhRm9yRWxhc3RpY0RlbHRhKHN0cmV0Y2hBbW91bnQud2lkdGgoKSkpOwogICAgIG1f
c3RyZXRjaFNjcm9sbEZvcmNlLnNldEhlaWdodChyZWJvdW5kRGVsdGFGb3JFbGFzdGljRGVsdGEo
c3RyZXRjaEFtb3VudC5oZWlnaHQoKSkpOwpAQCAtMTA1NSw4ICsxMDk5LDggQEAgdm9pZCBTY3Jv
bGxBbmltYXRvck1hYzo6ZW5kU2Nyb2xsR2VzdHVyZSgpCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JN
YWM6OnNuYXBSdWJiZXJCYW5kKCkKIHsKLSAgICBDRlRpbWVJbnRlcnZhbCB0aW1lRGVsdGEgPSBb
W05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5c3RlbVVwdGltZV0gLSBtX2xhc3RNb21lbXR1
bVNjcm9sbFRpbWVzdGFtcDsKLSAgICBpZiAobV9sYXN0TW9tZW10dW1TY3JvbGxUaW1lc3RhbXAg
JiYgdGltZURlbHRhID49IHNjcm9sbFZlbG9jaXR5WmVyb2luZ1RpbWVvdXQpCisgICAgQ0ZUaW1l
SW50ZXJ2YWwgdGltZURlbHRhID0gW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBzeXN0ZW1V
cHRpbWVdIC0gbV9sYXN0TW9tZW50dW1TY3JvbGxUaW1lc3RhbXA7CisgICAgaWYgKG1fbGFzdE1v
bWVudHVtU2Nyb2xsVGltZXN0YW1wICYmIHRpbWVEZWx0YSA+PSBzY3JvbGxWZWxvY2l0eVplcm9p
bmdUaW1lb3V0KQogICAgICAgICBtX21vbWVudHVtVmVsb2NpdHkgPSBGbG9hdFNpemUoKTsKIAog
ICAgIG1faW5TY3JvbGxHZXN0dXJlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAppbmRleCA0NTE1Zjc3Li5jOTM3NjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE5MzAsNiArMTkzMCwxOSBAQCBib29sIFJlbmRl
ckxheWVyOjpzY3JvbGxzT3ZlcmZsb3coKSBjb25zdAogICAgIHJldHVybiB0b1JlbmRlckJveChy
ZW5kZXJlcigpKS0+c2Nyb2xsc092ZXJmbG93KCk7CiB9CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OmRp
ZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCit7CisgICAgbV9y
ZW5kZXJlci0+ZG9jdW1lbnQoKS0+ZGlkQWRkV2hlZWxFdmVudEhhbmRsZXIoKTsKKyAgICBTY3Jv
bGxhYmxlQXJlYTo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihzY3JvbGxiYXIpOworfQorCit2
b2lkIFJlbmRlckxheWVyOjp3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIq
IHNjcm9sbGJhcikKK3sKKyAgICBTY3JvbGxhYmxlQXJlYTo6d2lsbFJlbW92ZUhvcml6b250YWxT
Y3JvbGxiYXIoc2Nyb2xsYmFyKTsKKyAgICAvLyBGSVhNRTogbWF5YmUgbmVlZCBhIHNlcGFyYXRl
IFNjcm9sbGFibGVBcmVhOjpkaWRSZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyIGNhbGxiYWNrPwor
ICAgIG1fcmVuZGVyZXItPmRvY3VtZW50KCktPmRpZFJlbW92ZVdoZWVsRXZlbnRIYW5kbGVyKCk7
Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnNldEhhc0hvcml6b250YWxTY3JvbGxiYXIoYm9vbCBo
YXNTY3JvbGxiYXIpCiB7CiAgICAgaWYgKGhhc1Njcm9sbGJhciA9PSAobV9oQmFyICE9IDApKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAzMjZhMTRkLi43OGNkYzJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtMjQ3LDYgKzI0Nyw4
IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IGdldFJlY3RUb0V4cG9zZShjb25zdCBJbnRSZWN0JiB2
aXNpYmxlUmVjdCwgY29uc3QgSW50UmVjdCYgZXhwb3NlUmVjdCwgY29uc3QgU2Nyb2xsQWxpZ25t
ZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKTsKIAogICAgIGJvb2wg
c2Nyb2xsc092ZXJmbG93KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250
YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmVIb3Jp
em9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZvaWQgc2V0SGFzSG9yaXpvbnRhbFNj
cm9sbGJhcihib29sKTsKICAgICB2b2lkIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGJvb2wpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDRlMDhjMTkuLjhhZGRkYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUg
IDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENhbid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZs
b3cgYmVjYXVzZSB3aGVlbCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIHNy
Yy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21l
Q2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpudW1XaGVl
bEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQg
bWV0aG9kCisKIDIwMTEtMDUtMTMgIFRhbyBCYWkgIDxtaWNoYWVsYmFpQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXggMWZkNTQ1Yi4uYzIwNjkxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaApAQCAtMTk2
LDYgKzE5Niw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsUnVuTW9kYWxEaWFs
b2dEdXJpbmdQYWdlRGlzbWlzc2FsKGNvbnN0IERpYWxvZ1R5cGUmKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGly
ZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQorCiBwcml2YXRlOgogICAgIHZvaWQg
Z2V0UG9wdXBNZW51SW5mbyhXZWJDb3JlOjpQb3B1cENvbnRhaW5lciosIFdlYlBvcHVwTWVudUlu
Zm8qKTsKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDdXJzb3JJbmZvJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKaW5kZXggNWY3Yjk2NS4uMmVkZGEwNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYW4ndCBob3Jpem9udGFs
bHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hlZWwgZXZlbnRzIGFyZSBh
bHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6c2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5n
ZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0x
MyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuIEZpeCBzdHlsZSBlcnJvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXggYWExNzk3NC4uZTBhMjBiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
LmgKQEAgLTE1Miw2ICsxNTIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBv
cHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJC
YW5kSW5EaXJlY3Rpb24oV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5z
aWduZWQpIHsgfQorCiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsKICAgICBLVVJMIG1faG92ZXJl
ZExpbmtVUkw7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDVhOGE3MzQuLjExZjIzMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNh
dXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVD
bGllbnQgbWV0aG9kCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6bnVtV2hlZWxFdmVu
dEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhv
ZAorCiAyMDExLTA1LTEzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBkNDIwYTJlLi41ZDViMTM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuaApAQCAtMTUyLDYgKzE1Miw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0
dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKICNl
bmRpZgogCisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24o
V2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgICAg
IHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0K
KwogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKICAgICAg
ICAgR3RrQWRqdXN0bWVudFdhdGNoZXIgbV9hZGp1c3RtZW50V2F0Y2hlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9oYWlrdS9DaGFu
Z2VMb2cKaW5kZXggYWU4OTBiZS4uNWU2OWVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9o
YWlrdS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpv
bnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBh
cmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1OjpzaG91bGRSdWJi
ZXJCYW5kSW5EaXJlY3Rpb24pOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRo
b2QKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1OjpudW1XaGVlbEV2ZW50SGFu
ZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisK
IDIwMTEtMDUtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2hhaWt1
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmggYi9Tb3VyY2UvV2ViS2l0L2hhaWt1
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKaW5kZXggOGEwOTdhMC4uMzIyZDBi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRIYWlrdS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50SGFpa3UuaApAQCAtMTU5LDYgKzE1OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhlIGdpdmVuIGZvcm0gZWxlbWVudCBoYXMg
Y2hhbmdlZC4gVGhpcyBmdW5jdGlvbgogICAgICAgICAvLyB3aWxsIGJlIGNhbGxlZCBmcmVxdWVu
dGx5LCBzbyBoYW5kbGluZyBzaG91bGQgYmUgdmVyeSBmYXN0LgogICAgICAgICB2aXJ0dWFsIHZv
aWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKTsKKworICAgICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVu
dEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDFiMTNlNzcuLmY0YmFjZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdo
ZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6Om51bVdoZWVsRXZl
bnRIYW5kbGVyc0NoYW5nZWQpOiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRo
b2QKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9u
KTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTMg
IFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRl
cnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCmluZGV4IDBlY2I5ZjIuLjNkMWIzMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODIsNiAr
MTgyLDEwIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2aXJ0dWFs
IHZvaWQgc2hvd0NvbnRleHRNZW51KCk7CiAjZW5kaWYKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQg
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisgICAgCisgICAgdmly
dHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJl
Y3Rpb24pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiBwcml2YXRlOgogICAgIFdlYlZpZXcgKm1f
d2ViVmlldzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDRlYTdiOTUuLjZmODE3ZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENhbid0IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3
aGVlbCBldmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6c2hv
dWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGll
bnQgbWV0aG9kCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6bnVtV2hlZWxFdmVu
dEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhv
ZAorCiAyMDExLTA1LTE1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODY1MDQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmggYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggODE0YTE5
Mi4uZDUyZWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50UXQuaApAQCAtMTkyLDYgKzE5Miw5IEBAIHB1YmxpYzoKICAgICBRV2ViU2VsZWN0
TWV0aG9kKiBjcmVhdGVTZWxlY3RQb3B1cCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29u
c3Q7CisgICAgCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihX
ZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CiAKICAg
ICBRV2ViUGFnZSogbV93ZWJQYWdlOwogICAgIEtVUkwgbGFzdEhvdmVyVVJMOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCmluZGV4IDAwZWZlOGYuLjNkODc1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5
IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3
YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MDc3OQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbik6
IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9m
IG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCisKIDIwMTEtMDUtMTMgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IDRhM2NmM2IuLjE1MjllMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xODIsNiArMTgyLDkgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCopOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0K
KwogcHJpdmF0ZToKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZwppbmRleCAzODMzODlhLi5mZDExZGViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTA1LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
YW4ndCBob3Jpem9udGFsbHkgc2Nyb2xsIGlmcmFtZXMgYW5kIG92ZXJmbG93IGJlY2F1c2Ugd2hl
ZWwgZXZlbnRzIGFyZSBhbHdheXMgYWNjZXB0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNzc5CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRXaW5DRS5oOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6
c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVD
bGllbnQgbWV0aG9kCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpudW1XaGVl
bEV2ZW50SGFuZGxlcnNDaGFuZ2VkKTogRGVmYXVsdCBpbXBsIG9mIG5ldyBDaHJvbWVDbGllbnQg
bWV0aG9kCisKIDIwMTEtMDUtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXggOTU3MDlh
ZS4uMTNjOWVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaApAQCAtMTc3LDYgKzE3Nyw5IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJl
ckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1
bnNpZ25lZCkgeyB9CisKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cKaW5kZXggZWVhNmY2ZC4uMjEzMDMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMS0wNS0xMyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRh
bGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUg
YWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MDc3OQorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5o
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OnNob3VsZFJ1YmJlckJhbmRJbkRp
cmVjdGlvbik6IERlZmF1bHQgaW1wbCBvZiBuZXcgQ2hyb21lQ2xpZW50IG1ldGhvZAorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6Om51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQp
OiBEZWZhdWx0IGltcGwgb2YgbmV3IENocm9tZUNsaWVudCBtZXRob2QKKwogMjAxMS0wNS0wOSAg
Um9iaW4gRHVubiAgPHJvYmluQGFsbGR1bm4uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtl
dmluIE9sbGl2aWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0Nocm9tZUNsaWVudFd4LmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21l
Q2xpZW50V3guaAppbmRleCAwZDgxNDljLi44MjBjOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApAQCAtMTUyLDYgKzE1Miw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBv
cHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0Owog
CisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpT
Y3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisKIHByaXZhdGU6CiAg
ICAgd3hXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGYyYmQ5ZDAuLjhiMDg2
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMS0wNS0xNCAgSm9uIExlZSAgPGpv
bmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVzIGFuZCBvdmVyZmxvdyBi
ZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQorCisgICAgICAgIFdlIGtlZXAg
dHJhY2sgb2YgdGhlIG51bWJlciBvZiBob3Jpem9udGFsIHNjcm9sbGJhcnMgYW5kIG1vdXNlIHdo
ZWVsIGV2ZW50IGhhbmRsZXJzIGluIHRoZQorICAgICAgICBVSSBwcm9jZXNzIGFzIGEgbWVhbnMg
b2YgZGV0ZXJtaW5pbmcgd2hldGhlciBob3Jpem9udGFsIHNjcm9sbCBldmVudHMgd2lsbCBiZSBo
YW5kbGVkCisgICAgICAgIGJ5IHRoZSB3ZWIgcHJvY2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbGxI
YW5kbGVIb3Jpem9udGFsU2Nyb2xsRXZlbnRzKTogUmV0dXJuIHRydWUgaWYgdGhlcmUgaXMgYXQg
bGVhc3QKKyAgICAgICAgb25lIHdoZWVsIGV2ZW50IGhhbmRsZXIKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6IEFkZCBuZXcgdmFyaWFibGUgdG8gY2FjaGUgdGhlIGNvdW50Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdl
ZCk6IFNldHMgdGhlIGNvdW50CisKKyAgICAgICAgVGhlIHJlc3QganVzdCBwcm92aWRlcyBhbGwg
dGhlIGNvbm5lY3Rpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgor
ICAgICAgICAoV0tQYWdlV2lsbEhhbmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVj
dGVkQnVuZGxlUGFnZVVJQ2xpZW50OjpzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGll
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFu
ZEluRGlyZWN0aW9uKTogRm9yd2FyZCB0byBpbmplY3RlZCBidW5kbGUgVUkgY2xpZW50CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6dXBkYXRlQ291bnRXaGVlbEV2ZW50SGFuZGxl
cnMpOiBVcGRhdGVzIHRoZSB3ZWIgcGFnZSBwcm94eQorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTEtMDUtMTUgIE1pY2hhZWwgU2Fi
b2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkg
R2FyZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDk0
MWQyYzcuLjNjM2QyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCkBAIC0xNDYsNiArMTQ2LDExIEBAIFdLQmFja0ZvcndhcmRMaXN0UmVmIFdLUGFnZUdldEJh
Y2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYgcGFnZVJlZikKICAgICByZXR1cm4gdG9BUEkodG9JbXBs
KHBhZ2VSZWYpLT5iYWNrRm9yd2FyZExpc3QoKSk7CiB9CiAKK2Jvb2wgV0tQYWdlV2lsbEhhbmRs
ZUhvcml6b250YWxTY3JvbGxFdmVudHMoV0tQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJu
IHRvSW1wbChwYWdlUmVmKS0+d2lsbEhhbmRsZUhvcml6b250YWxTY3JvbGxFdmVudHMoKTsKK30K
KwogV0tTdHJpbmdSZWYgV0tQYWdlQ29weVRpdGxlKFdLUGFnZVJlZiBwYWdlUmVmKQogewogICAg
IHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwocGFnZVJlZiktPnBhZ2VUaXRsZSgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCBkMDFjODM4Li4xZDQzNGJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0yODgsNyArMjg4LDgg
QEAgV0tfRVhQT1JUIGJvb2wgV0tQYWdlQ2FuR29CYWNrKFdLUGFnZVJlZiBwYWdlKTsKIFdLX0VY
UE9SVCB2b2lkIFdLUGFnZUdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdLUGFnZVJlZiBwYWdlLCBX
S0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSk7CiBXS19FWFBPUlQgdm9pZCBXS1BhZ2VUcnlS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24oV0tQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIFdLQmFja0Zv
cndhcmRMaXN0UmVmIFdLUGFnZUdldEJhY2tGb3J3YXJkTGlzdChXS1BhZ2VSZWYgcGFnZSk7Ci0K
K1dLX0VYUE9SVCBib29sIFdLUGFnZVdpbGxIYW5kbGVIb3Jpem9udGFsU2Nyb2xsRXZlbnRzKFdL
UGFnZVJlZiBwYWdlKTsKKyAgICAKIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1BhZ2VDb3B5VGl0
bGUoV0tQYWdlUmVmIHBhZ2UpOwogCiBXS19FWFBPUlQgV0tVUkxSZWYgV0tQYWdlQ29weVBlbmRp
bmdBUElSZXF1ZXN0VVJMKFdLUGFnZVJlZiBwYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNGJhMDRhNy4uYzYxNTgyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMwNjAsNiArMzA2MCwxMSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKQogICAgIG1fbG9hZGVyQ2xpZW50LmRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4odGhp
cywgbWltZVR5cGUpOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6d2lsbEhhbmRsZUhvcml6b250
YWxTY3JvbGxFdmVudHMoKSBjb25zdAoreworICAgIHJldHVybiBtX3doZWVsRXZlbnRIYW5kbGVy
Q291bnQgPiAwOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZGluZ0RhdGFG
b3JDdXN0b21SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBj
b25zdCBDb3JlSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQogewogICAgIG1fcGFn
ZUNsaWVudC0+ZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21SZXByZXNlbnRhdGlvbihzdWdn
ZXN0ZWRGaWxlbmFtZSwgZGF0YVJlZmVyZW5jZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggMzE0OTcwYS4uNzMxNmJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMjI2LDYgKzIyNiw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0
ZW0sIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+KiByZW1vdmVkSXRlbXMpOwogICAgIHZvaWQg
c2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0odWludDY0X3QgaXRlbUlELCBib29sJiBzaG91
bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSk7CiAKKyAgICBib29sIHdpbGxIYW5kbGVIb3Jpem9u
dGFsU2Nyb2xsRXZlbnRzKCkgY29uc3Q7CisKICAgICBib29sIGNhblNob3dNSU1FVHlwZShjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdDsKIAogICAgIGJvb2wgZHJhd3NCYWNrZ3JvdW5kKCkg
Y29uc3QgeyByZXR1cm4gbV9kcmF3c0JhY2tncm91bmQ7IH0KQEAgLTYxMSw2ICs2MTMsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhh
c0hvcml6b250YWxTY3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIpOwogICAgIHZv
aWQgZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlubmluZ0Zvck1haW5GcmFtZShib29sIHBpbm5lZFRv
TGVmdFNpZGUsIGJvb2wgcGlubmVkVG9SaWdodFNpZGUpOwogICAgIHZvaWQgZGlkRmFpbFRvSW5p
dGlhbGl6ZVBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKKyAgICB2b2lkIG51bVdoZWVs
RXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQgY291bnQpIHsgbV93aGVlbEV2ZW50SGFuZGxl
ckNvdW50ID0gY291bnQ7IH0KIAogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKICAg
ICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRl
bSopOwpAQCAtODY2LDYgKzg2OSw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fbWFpbkZyYW1l
SGFzSG9yaXpvbnRhbFNjcm9sbGJhcjsKICAgICBib29sIG1fbWFpbkZyYW1lSGFzVmVydGljYWxT
Y3JvbGxiYXI7CisgICAgLy8gVGhpcyBhZ2dyZWdhdGVkIGNvdW50IG9mIHdoZWVsIGhhbmRsZXJz
IG9ubHkgaW5jbHVkZXMgaG9yaXpvbnRhbCBzY3JvbGxiYXJzCisgICAgLy8gYW5kIEpTIHdoZWVs
IGV2ZW50IGhhbmRsZXJzLgorICAgIGludCBtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQ7CiAKICAg
ICBib29sIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0xlZnRTaWRlOwogICAgIGJvb2wgbV9tYWluRnJh
bWVJc1Bpbm5lZFRvUmlnaHRTaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOWE5YzEzNS4uMWNlZGJlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC02
Miw2ICs2Miw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkQ2hhbmdlU2Ny
b2xsYmFyc0Zvck1haW5GcmFtZShib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIsIGJvb2wgaGFz
VmVydGljYWxTY3JvbGxiYXIpCiAgICAgRGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0UGlubmluZ0Zvck1h
aW5GcmFtZShib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxTY3Jv
bGxiYXIpCiAgICAgRGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihXVEY6OlN0cmluZyBtaW1lVHlw
ZSkKKyAgICBOdW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkIGNvdW50KQogCiAj
aWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgUGFnZURpZFJlcXVlc3RTY3JvbGwo
V2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCA2
ZTEyOTU0Li4wOTdmMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKQEAgLTcyLDYgKzcy
LDEyIEBAIGVudW0gewogfTsKIHR5cGVkZWYgdWludDMyX3QgV0tGdWxsU2NyZWVuS2V5Ym9hcmRS
ZXF1ZXN0VHlwZTsKIAorZW51bSB7CisgICAgV0tTY3JvbGxEaXJlY3Rpb25MZWZ0LAorICAgIFdL
U2Nyb2xsRGlyZWN0aW9uUmlnaHQKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLU2Nyb2xsRGlyZWN0
aW9uOworCiAvLyBMb2FkZXIgQ2xpZW50CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTE3NSw3ICsxODEsOCBAQCB0eXBlZGVmIHZvaWQg
KCpXS0J1bmRsZVBhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrKShXS0J1bmRsZVBh
Z2VSZWYgcGFnZQogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkU2Nyb2xsQ2FsbGJhY2sp
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYg
dm9pZCAoKldLQnVuZGxlUGFnZVBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhQ2FsbGJhY2spKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0dyYXBoaWNzQ29udGV4dFJlZiBncmFwaGljc0NvbnRleHQsIFdL
UmVjdCBob3Jpem9udGFsT3ZlcmhhbmcsIFdLUmVjdCB2ZXJ0aWNhbE92ZXJoYW5nLCBXS1JlY3Qg
ZGlydHlSZWN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgV0tTdHJpbmdSZWYg
KCpXS0J1bmRsZVBhZ2VHZW5lcmF0ZUZpbGVGb3JVcGxvYWRDYWxsYmFjaykoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG9yaWdpbmFsRmlsZVBhdGgsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwotCit0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb25DYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU2Nyb2xsRGlyZWN0aW9u
IHNjcm9sbERpcmVjdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgCiBzdHJ1Y3Qg
V0tCdW5kbGVQYWdlVUlDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKICAgICBjb25z
dCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsaWVudEluZm87CkBAIC0xODksNiArMTk2LDcgQEAgc3RydWN0IFdLQnVuZGxlUGFn
ZVVJQ2xpZW50IHsKICAgICBXS0J1bmRsZVBhZ2VQYWludEN1c3RvbU92ZXJoYW5nQXJlYUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhOwogICAg
IFdLQnVuZGxlUGFnZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2hvdWxkR2VuZXJhdGVGaWxlRm9yVXBsb2FkOwogICAgIFdLQnVuZGxlUGFn
ZUdlbmVyYXRlRmlsZUZvclVwbG9hZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2VuZXJhdGVGaWxlRm9yVXBsb2FkOworICAgIFdLQnVuZGxlUGFnZVNob3VsZFJ1YmJlckJhbmRJ
bkRpcmVjdGlvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgc2hvdWxkUnViYmVyQmFuZElu
RGlyZWN0aW9uOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVVJQ2xpZW50IFdLQnVu
ZGxlUGFnZVVJQ2xpZW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGll
bnQuY3BwCmluZGV4IDUzMmQwNTguLjQ4ODAwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQuY3BwCkBAIC0xMTUsNCArMTE1LDkgQEAgU3RyaW5nIEluamVjdGVk
QnVuZGxlUGFnZVVJQ2xpZW50OjpnZW5lcmF0ZUZpbGVGb3JVcGxvYWQoV2ViUGFnZSogcGFnZSwg
Y29uc3QgU3QKICAgICByZXR1cm4gZ2VuZXJhdGVkRmlsZVBhdGggPyBnZW5lcmF0ZWRGaWxlUGF0
aC0+c3RyaW5nKCkgOiBTdHJpbmcoKTsKIH0KIAorYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNs
aWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYlBhZ2UqIHBhZ2UsIFdLU2Nyb2xs
RGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQuc2hvdWxk
UnViYmVyQmFuZEluRGlyZWN0aW9uKHRvQVBJKHBhZ2UpLCBkaXJlY3Rpb24sIG1fY2xpZW50LmNs
aWVudEluZm8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVUlDbGllbnQuaAppbmRleCA0N2E1Y2E4Li5mYmJiOTBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oCkBAIC01OCw2ICs1OCw4IEBAIHB1Ymxp
YzoKIAogICAgIFN0cmluZyBzaG91bGRHZW5lcmF0ZUZpbGVGb3JVcGxvYWQoV2ViUGFnZSosIGNv
bnN0IFN0cmluZyYgb3JpZ2luYWxGaWxlUGF0aCk7CiAgICAgU3RyaW5nIGdlbmVyYXRlRmlsZUZv
clVwbG9hZChXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBvcmlnaW5hbEZpbGVQYXRoKTsKKyAgICAK
KyAgICBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJQYWdlKiwgV0tTY3JvbGxE
aXJlY3Rpb24pIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKaW5kZXggZmQ1ZWU1NS4uNGI0ZWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtNzU5LDQgKzc1OSwyMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6bm90aWZ5U2Ny
b2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBJbnRSZWN0JiBzY3JvbGxlcgogICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpOb3RpZnlTY3JvbGxlclRodW1iSXNW
aXNpYmxlSW5SZWN0KHNjcm9sbGVyVGh1bWIpKTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24gZGly
ZWN0aW9uKSBjb25zdAoreworICAgIEFTU0VSVChkaXJlY3Rpb24gIT0gV2ViQ29yZTo6U2Nyb2xs
VXAgJiYgZGlyZWN0aW9uICE9IFdlYkNvcmU6OlNjcm9sbERvd24pOworICAgIAorICAgIGlmIChk
aXJlY3Rpb24gPT0gV2ViQ29yZTo6U2Nyb2xsTGVmdCkKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+
aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihtX3Bh
Z2UsIFdLU2Nyb2xsRGlyZWN0aW9uTGVmdCk7CisgICAgaWYgKGRpcmVjdGlvbiA9PSBXZWJDb3Jl
OjpTY3JvbGxSaWdodCkKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNs
aWVudCgpLnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihtX3BhZ2UsIFdLU2Nyb2xsRGlyZWN0
aW9uUmlnaHQpOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KHVuc2lnbmVkIGNvdW50KQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpOdW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGNvdW50KSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOTAzOGVhZi4uZDAwMTdiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMTgsNiArMjE4LDkgQEAgcHJpdmF0ZToKIAogICAg
IHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxlclRo
dW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNvcmU6OlNjcm9sbERpcmVjdGlv
bikgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0No
YW5nZWQodW5zaWduZWQpOwogCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRh
YmxlIFJlZlB0cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxN2UxODU1Li5k
MmJmN2ZjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbid0
IGhvcml6b250YWxseSBzY3JvbGwgaWZyYW1lcyBhbmQgb3ZlcmZsb3cgYmVjYXVzZSB3aGVlbCBl
dmVudHMgYXJlIGFsd2F5cyBhY2NlcHRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjA3NzkKKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0
ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOiBTZXQgbmV3IGRlZmF1bHQgbWV0aG9k
IHRvIG5pbC4KKwogMjAxMS0wNS0xNSAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZDogYWRkaW5nIG15c2VsZiB0byBjb21taXR0ZXJz
LnB5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDJhMWY4NWQuLmI3OWJlNGQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTIyNSw2ICsyMjUsNyBAQCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKICAgICAgICAgMCwg
LypwYWludEN1c3RvbU92ZXJoYW5nQXJlYSovCiAgICAgICAgIDAsIC8qc2hvdWxkR2VuZXJhdGVG
aWxlRm9yVXBsb2FkKi8KICAgICAgICAgMCwgLypnZW5lcmF0ZUZpbGVGb3JVcGxvYWQqLworICAg
ICAgICAwLCAvKnNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbiovCiAgICAgfTsKICAgICBXS0J1
bmRsZVBhZ2VTZXRVSUNsaWVudChtX3BhZ2UsICZ1aUNsaWVudCk7CiAKLS0gCjEuNy40LjQKCg==
</data>
<flag name="review"
          id="86803"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>