<?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>71595</bug_id>
          
          <creation_ts>2011-11-04 16:58:56 -0700</creation_ts>
          <short_desc>[chromium] Add draw-time scale delta to compositor thread</short_desc>
          <delta_ts>2011-11-09 15:48:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Alexandre Elias">aelias</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aelias</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>496561</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-04 16:58:56 -0700</bug_when>
    <thetext>[chromium] Add draw-time scale delta to compositor thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496562</commentid>
    <comment_count>1</comment_count>
      <attachid>113735</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-04 16:59:55 -0700</bug_when>
    <thetext>Created attachment 113735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496563</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 17:02:17 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496567</commentid>
    <comment_count>3</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-04 17:05:27 -0700</bug_when>
    <thetext>Patch description:

Add draw-time scale delta to compositor thread.

- There are two magnify values:
1. The WebKit-side pageScale value corresponding to the resolution of
   the painted content.
2. The Impl-side-only scaleDelta value representing the additional
   degree of current magnification, applied as a draw transform.  WebKit is
   never explicitly aware of this value and the only way to change it
   currently is via pinch events (and in the future, double-tap/etc
   events).  At the end of a pinch zooms, we multiply pageScale *
   scaleDelta and tell WebKit to use it as the new pageScale.

- Scroll offsets and max-extents are maintained in pageScale space.
  When the scale changes, we need to take care to convert them to the
  new scale and avoid getting them clamped to the extents at the wrong
  scale.

- Remove maxScrollPosition on the non-impl side because it makes no
  sense to precompute it in the presence of an impl-side zoom.

- zoomAnimatorTransform is not used because it currently isn&apos;t in the
  branch, and mostly doesn&apos;t behave the way we want anyway (it does most
  things in WebKit thread).  We will need to unify these later.

- Also introduce deviceOrPageScaleFactorChanged() call which invalidates
  layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496597</commentid>
    <comment_count>4</comment_count>
      <attachid>113742</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-04 17:52:34 -0700</bug_when>
    <thetext>Created attachment 113742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496598</commentid>
    <comment_count>5</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-04 17:53:56 -0700</bug_when>
    <thetext>Fixed bug with scrollbar maxScrollPosition (needed a clampNegativeToZero).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496712</commentid>
    <comment_count>6</comment_count>
      <attachid>113742</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-05 15:01:52 -0700</bug_when>
    <thetext>Comment on attachment 113742
Patch

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

&gt; Source/WebKit/chromium/public/WebLayerTreeViewClient.h:44
&gt; +    virtual void applyScrollAndScale(const WebSize&amp;, float) = 0;

nit: please give the float parameter a name.  i think &quot;scaleFactor&quot; would work.
the WebSize parameter could probably also benefit from a name:  &quot;scrollDelta&quot;

&gt; Source/WebKit/chromium/public/WebView.h:212
&gt; +    virtual void setScaleLimits(float minScale, float maxScale) = 0;

since this impacts &quot;PageScaleFactor&quot;, it seems like the function name should include
that term.  how about calling this function setPageScaleFactorLimits?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496888</commentid>
    <comment_count>7</comment_count>
      <attachid>113803</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-06 14:32:46 -0800</bug_when>
    <thetext>Created attachment 113803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496889</commentid>
    <comment_count>8</comment_count>
      <attachid>113742</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-06 14:33:53 -0800</bug_when>
    <thetext>Comment on attachment 113742
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebLayerTreeViewClient.h:44
&gt;&gt; +    virtual void applyScrollAndScale(const WebSize&amp;, float) = 0;
&gt; 
&gt; nit: please give the float parameter a name.  i think &quot;scaleFactor&quot; would work.
&gt; the WebSize parameter could probably also benefit from a name:  &quot;scrollDelta&quot;

Done.

&gt;&gt; Source/WebKit/chromium/public/WebView.h:212
&gt;&gt; +    virtual void setScaleLimits(float minScale, float maxScale) = 0;
&gt; 
&gt; since this impacts &quot;PageScaleFactor&quot;, it seems like the function name should include
&gt; that term.  how about calling this function setPageScaleFactorLimits?

Sounds good, renamed everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497371</commentid>
    <comment_count>9</comment_count>
      <attachid>113803</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-07 12:28:45 -0800</bug_when>
    <thetext>Comment on attachment 113803
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.cpp:214
&gt; +    if (firstResize || m_pageScaleDirty)

Can you explain why the full-layer invalidation needs to happen in setBounds?

Also, I&apos;m a little confused why you need to do this invalidation yourself.  Shouldn&apos;t WebKit invalidate everything when the scale changes? And, if it somehow doesn&apos;t, why not just call LayerChromium::setNeedsDisplay() instead of calling deviceOrPageScaleFactorChanged?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497477</commentid>
    <comment_count>10</comment_count>
      <attachid>113803</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-07 14:27:10 -0800</bug_when>
    <thetext>Comment on attachment 113803
Patch

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

Compositor stuff here looks great.  I left a few nits.

It looks like the bots weren&apos;t able to apply this patch to ToT - could you merge it up and post a new patch so the bots can double-check it?

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h:101
&gt; +    void setPageMagnifyTransform(const TransformationMatrix&amp; t) { m_pageMagnifyMatrix = t; }

we don&apos;t typically use one-letter variable names in WebKit even for dumb stuff like this

&gt; Source/WebCore/platform/graphics/chromium/NonCompositedContentHost.cpp:74
&gt; +    bool pageScaleChanged = m_graphicsLayer-&gt;pageScaleFactor() != pageScale;
&gt; +    if (pageScaleChanged)

i think the bool here is kind of unnecessary, just inline the check into the if()

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h:219
&gt; +    float m_minScale, m_maxScale;

nit: could you call these m_minPageScale / m_maxPageScale?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:175
&gt;      bool changed = viewportSize != m_viewportSize;
&gt;      m_viewportSize = viewportSize;
&gt; -    if (changed)
&gt; +    if (changed) {
&gt; +        updateMaxScrollPosition();
&gt;          m_layerRenderer-&gt;viewportChanged();

this function would be a little more idomatic if it had an early-return at the top if m_viewportSize == viewportSize and the rest was unguarded. i think it&apos;s structured this way for historical reasons (there used to be a lot more going on in here) that aren&apos;t relevant any more

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:208
&gt; +    bool changed = delta != m_scaleDelta;
&gt; +    m_scaleDelta = delta;
&gt; +
&gt; +    if (changed) {

also here - early return would be more in line with the rest of the code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497523</commentid>
    <comment_count>11</comment_count>
      <attachid>113803</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-07 15:26:37 -0800</bug_when>
    <thetext>Comment on attachment 113803
Patch

WebKit API changes LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497721</commentid>
    <comment_count>12</comment_count>
      <attachid>113985</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-07 21:36:49 -0800</bug_when>
    <thetext>Created attachment 113985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497724</commentid>
    <comment_count>13</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-07 21:43:45 -0800</bug_when>
    <thetext>OK, all style nits applied.  I also synced up the client.  Note that this change conflicted with enne&apos;s clipping fix because I removed m_maxScrollPosition from the non-impl side.  I needed to introduce a &quot;m_scrollable&quot; boolean to allow the root layer to be discovered, and obtained the content bounds from a child layer.

(In reply to comment #9)
&gt; (From update of attachment 113803 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113803&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/LayerChromium.cpp:214
&gt; &gt; +    if (firstResize || m_pageScaleDirty)
&gt; 
&gt; Can you explain why the full-layer invalidation needs to happen in setBounds?
&gt; 
&gt; Also, I&apos;m a little confused why you need to do this invalidation yourself.  Shouldn&apos;t WebKit invalidate everything when the scale changes? And, if it somehow doesn&apos;t, why not just call LayerChromium::setNeedsDisplay() instead of calling deviceOrPageScaleFactorChanged?

It&apos;s because the invalidation is clipped to the bounds, and the bounds are multiplied by the scale, so we need to defer it until after they&apos;re changed.  There may be a cleaner way to do this, but it doesn&apos;t seem like too bad of a hack for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498430</commentid>
    <comment_count>14</comment_count>
      <attachid>114153</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-08 14:22:04 -0800</bug_when>
    <thetext>Created attachment 114153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498468</commentid>
    <comment_count>15</comment_count>
      <attachid>114153</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-08 15:27:43 -0800</bug_when>
    <thetext>Comment on attachment 114153
Patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by James Robinson.

getting a bit ahead of yourself there I think :)

&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.h:135
&gt; +    bool scrollable() const { return m_scrollable; }
&gt; +    void setScrollable(bool scrollable) { m_scrollable = true; }

can you update LayerChromiumTest.cpp&apos;s checkPropertyChangeCausesCorrectBehavior test for this property?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498491</commentid>
    <comment_count>16</comment_count>
      <attachid>114153</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 16:07:55 -0800</bug_when>
    <thetext>Comment on attachment 114153
Patch

Attachment 114153 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10374228

New failing tests:
accessibility/aria-checkbox-checked.html
http/tests/appcache/access-via-redirect.php
http/tests/appcache/auth.html
animations/animation-css-rule-types.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
animations/animation-direction.html
canvas/philip/tests/2d.canvas.readonly.html
accessibility/aria-checkbox-text.html
http/tests/appcache/cyrillic-uri.html
http/tests/appcache/credential-url.html
http/tests/appcache/crash-when-navigating-away-then-back.html
animations/animation-add-events-in-handler.html
animations/animation-controller-drt-api.html
accessibility/adjacent-continuations-cause-assertion-failure.html
canvas/philip/tests/2d.canvas.reference.html
accessibility/aria-describedby-on-input.html
accessibility/anchor-linked-anonymous-block-crash.html
animations/animation-direction-normal.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498492</commentid>
    <comment_count>17</comment_count>
      <attachid>114169</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 16:07:59 -0800</bug_when>
    <thetext>Created attachment 114169
Archive of layout-test-results from ec2-cr-linux-03

The attached test failures were seen while running run-webkit-tests on the chromium-ews.
Bot: ec2-cr-linux-03  Port: Chromium  Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498501</commentid>
    <comment_count>18</comment_count>
      <attachid>114170</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-08 16:15:56 -0800</bug_when>
    <thetext>Created attachment 114170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498502</commentid>
    <comment_count>19</comment_count>
      <attachid>114153</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-08 16:17:55 -0800</bug_when>
    <thetext>Comment on attachment 114153
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:6
&gt;&gt; +        Reviewed by James Robinson.
&gt; 
&gt; getting a bit ahead of yourself there I think :)

Sorry, don&apos;t know the process, reverted.

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerChromium.h:135
&gt;&gt; +    void setScrollable(bool scrollable) { m_scrollable = true; }
&gt; 
&gt; can you update LayerChromiumTest.cpp&apos;s checkPropertyChangeCausesCorrectBehavior test for this property?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498541</commentid>
    <comment_count>20</comment_count>
      <attachid>114170</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-08 17:11:04 -0800</bug_when>
    <thetext>Comment on attachment 114170
Patch

R=me - holding off on cq for now to see if the cr-linux EWS bot goes red again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498578</commentid>
    <comment_count>21</comment_count>
      <attachid>114170</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 18:07:54 -0800</bug_when>
    <thetext>Comment on attachment 114170
Patch

Attachment 114170 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10372099

New failing tests:
accessibility/aria-checkbox-checked.html
http/tests/appcache/access-via-redirect.php
http/tests/appcache/auth.html
animations/animation-css-rule-types.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
animations/animation-direction.html
canvas/philip/tests/2d.canvas.readonly.html
accessibility/aria-checkbox-text.html
http/tests/appcache/cyrillic-uri.html
http/tests/appcache/credential-url.html
http/tests/appcache/crash-when-navigating-away-then-back.html
animations/animation-add-events-in-handler.html
animations/animation-controller-drt-api.html
accessibility/adjacent-continuations-cause-assertion-failure.html
canvas/philip/tests/2d.canvas.reference.html
accessibility/aria-describedby-on-input.html
accessibility/anchor-linked-anonymous-block-crash.html
animations/animation-direction-normal.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498579</commentid>
    <comment_count>22</comment_count>
      <attachid>114187</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 18:07:58 -0800</bug_when>
    <thetext>Created attachment 114187
Archive of layout-test-results from ec2-cr-linux-01

The attached test failures were seen while running run-webkit-tests on the chromium-ews.
Bot: ec2-cr-linux-01  Port: Chromium  Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498640</commentid>
    <comment_count>23</comment_count>
      <attachid>114170</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-08 21:35:44 -0800</bug_when>
    <thetext>Comment on attachment 114170
Patch

cr-linux EWS failure seems unrelated, can&apos;t repro locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498641</commentid>
    <comment_count>24</comment_count>
      <attachid>114170</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 21:38:30 -0800</bug_when>
    <thetext>Comment on attachment 114170
Patch

Rejecting attachment 114170 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

NOBODY found in /mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog does not appear to be a valid reviewer according to committers.py.
ERROR: /mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/10373124</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498643</commentid>
    <comment_count>25</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-08 21:42:32 -0800</bug_when>
    <thetext>Ah, the string you want is &quot;NOBODY (OOPS!).&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499034</commentid>
    <comment_count>26</comment_count>
      <attachid>114299</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-09 09:06:33 -0800</bug_when>
    <thetext>Created attachment 114299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499046</commentid>
    <comment_count>27</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-09 09:19:31 -0800</bug_when>
    <thetext>Ah, oops :).  Switched to &quot;NOBODY (OOPS!)&quot; and changed nothing else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499095</commentid>
    <comment_count>28</comment_count>
      <attachid>114299</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 10:03:18 -0800</bug_when>
    <thetext>Comment on attachment 114299
Patch

Rejecting attachment 114299 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
bkit&apos;, &apos;--debug&apos;, &apos;--chromium&apos;, &apos;--update-chromium&apos;]&quot; exit_code: 2
tform/graphics/chromium/cc/CCSingleThreadProxy.cpp: In member function &apos;void WebCore::CCSingleThreadProxy::doCommit()&apos;:
Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:170: error: &apos;struct WebCore::CCScrollAndScaleSet&apos; has no member named &apos;size&apos;
make: *** [out/Debug/obj.target/webcore_platform/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.o] Error 1
make: *** Waiting for unfinished jobs....

Full output: http://queues.webkit.org/results/10370499</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499192</commentid>
    <comment_count>29</comment_count>
      <attachid>114327</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-09 11:33:49 -0800</bug_when>
    <thetext>Created attachment 114327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499195</commentid>
    <comment_count>30</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-09 11:35:33 -0800</bug_when>
    <thetext>That was an error hidden in a DEBUG-build #ifdef.  Fixed and checked that there aren&apos;t any others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499239</commentid>
    <comment_count>31</comment_count>
      <attachid>114327</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 12:17:07 -0800</bug_when>
    <thetext>Comment on attachment 114327
Patch

Attachment 114327 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10395047

New failing tests:
accessibility/aria-checkbox-checked.html
http/tests/appcache/access-via-redirect.php
http/tests/appcache/auth.html
animations/animation-css-rule-types.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
animations/animation-direction.html
canvas/philip/tests/2d.canvas.readonly.html
accessibility/aria-checkbox-text.html
http/tests/appcache/cyrillic-uri.html
http/tests/appcache/credential-url.html
http/tests/appcache/crash-when-navigating-away-then-back.html
animations/animation-add-events-in-handler.html
animations/animation-controller-drt-api.html
accessibility/adjacent-continuations-cause-assertion-failure.html
canvas/philip/tests/2d.canvas.reference.html
accessibility/aria-describedby-on-input.html
accessibility/anchor-linked-anonymous-block-crash.html
animations/animation-direction-normal.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499240</commentid>
    <comment_count>32</comment_count>
      <attachid>114339</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 12:17:11 -0800</bug_when>
    <thetext>Created attachment 114339
Archive of layout-test-results from ec2-cr-linux-01

The attached test failures were seen while running run-webkit-tests on the chromium-ews.
Bot: ec2-cr-linux-01  Port: Chromium  Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499365</commentid>
    <comment_count>33</comment_count>
      <attachid>114371</attachid>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-09 14:37:00 -0800</bug_when>
    <thetext>Created attachment 114371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499366</commentid>
    <comment_count>34</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2011-11-09 14:38:02 -0800</bug_when>
    <thetext>Fixed updateLayerTreeViewport NULL pointer access causing the layout test failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499424</commentid>
    <comment_count>35</comment_count>
      <attachid>114371</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 15:48:01 -0800</bug_when>
    <thetext>Comment on attachment 114371
Patch

Clearing flags on attachment: 114371

Committed r99774: &lt;http://trac.webkit.org/changeset/99774&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499425</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 15:48:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113735</attachid>
            <date>2011-11-04 16:59:55 -0700</date>
            <delta_ts>2011-11-04 17:52:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71595-20111104165954.patch</filename>
            <type>text/plain</type>
            <size>47228</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZjI0NzczMTkzNDk2M2Vh
ZGNkZTA2ZjMwMjMwMDlmOGE4NzQxYmJmLi5iY2NmNmFhYTM1MmUzMDkzNDg1Y2FlZWQ5NTI5ZTZj
OWE5OWM4Yjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMTEtMDQgIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OmRldmlj
ZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ckNocm9taXVtOjpMYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21p
dW06OnNldEJvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwdXNoUHJv
cGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNo
cm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwYWdlU2NhbGVDaGFu
Z2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpk
cmF3TGF5ZXJzSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpzZXRQYWdlTWFnbmlmeVRyYW5zZm9ybSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6ZmluaXNoQ29tbWl0T25J
bXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNj
YWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0U2NhbGVMaW1pdHMp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFuZFNjYWxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6cGFnZVNjYWxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21t
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OkND
TGF5ZXJUcmVlSG9zdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6Y29tbWl0Q29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6c2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6
c2V0UGFnZVNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNl
dFNjYWxlRGVsdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6c2V0
U2NhbGVMaW1pdHMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6dXBk
YXRlTWF4U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0
SW1wbDo6cGluY2hHZXN0dXJlQmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVI
b3N0SW1wbDo6cGluY2hHZXN0dXJlVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
VHJlZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmg6CisgICAgICAgIChXZWJD
b3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwYWdlU2NhbGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Y3JlYXRlQmVnaW5GcmFtZUFuZENvbW1pdFRhc2tP
bkltcGxUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6YmVnaW5GcmFt
ZUFuZENvbW1pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aHJlYWRQcm94eS5oOgorCiAyMDExLTExLTA0ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ01ha2UgYnVpbGQgZml4IGZvciAhRU5B
QkxFKFNRTF9EQVRBQkFTRSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDFkODk3NzM0
NzQzYzBiMmQ0NGUwMjBlMWJiZTUxZmFlNTgwN2RhM2EuLjZiNjA3YTkzNWIxMzRlMjNlMjYzZTc3
NzMyZmJjNjE3NTVhNjg3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzYgQEAKKzIwMTEtMTEtMDQgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgor
CisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3Np
dG9yIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzE1OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHB1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50Lmg6CisgICAgICAgICogcHVibGljL1dl
YlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb21wb3NpdG9ySW1wbDo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAgICAgICog
c3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0ltcGw6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAqIHNyYy9XZWJMYXll
clRyZWVWaWV3SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjplbmFibGVGaXhlZExheW91dE1vZGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2NhbGVMaW1pdHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVMYXllclRyZWVWaWV3cG9ydCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdDo6ZXhwZWN0Q29udGFpbnMpOgor
ICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9z
dFRlc3QuY3BwOgorICAgICAgICAoV1RGOjpUZXN0SG9va3M6OmFwcGx5U2Nyb2xsQW5kU2NhbGUp
OgorICAgICAgICAoV1RGOjpNb2NrTGF5ZXJUcmVlSG9zdENsaWVudDo6YXBwbHlTY3JvbGxBbmRT
Y2FsZSk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6OmJl
Z2luVGVzdCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6
OmRyYXdMYXllcnNPbkNDVGhyZWFkKToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVz
dFNjcm9sbFNpbXBsZTo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXVEY6OkNDTGF5
ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0aXBsZVJlZHJhdzo6YmVnaW5UZXN0KToKKyAgICAgICAg
KFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdFNjcm9sbE11bHRpcGxlUmVkcmF3OjpkcmF3TGF5ZXJz
T25DQ1RocmVhZCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0
aXBsZVJlZHJhdzo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisKIDIwMTEtMTEtMDIgIFhpYW9tZWkg
SmkgIDx4amlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVuYWJsZSBjdHJsLWFycm93IG1vdmUg
Y3Vyc29yIGJ5IHdvcmQgaW4gdmlzdWFsIG9yZGVyIGluIGNyLXdpbiBieSBjb21tYW5kIGxpbmUg
ZmxhZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDcyOWE5YWNk
ZWNjNDhlZjA5OWMyZTViOWMzNzYwNTk0ZDBjNmIxN2UuLjE1NmIyZTkwZWY0NWU2OTAwNzgyZWE1
OTQ4MDhiNmFkODJlM2ZiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNw
cApAQCAtNjcwLDYgKzY3MCwxMiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRl
T3BhY2l0eU9uTGF5ZXIoKQogICAgIHByaW1hcnlMYXllcigpLT5zZXRPcGFjaXR5KG1fb3BhY2l0
eSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpkZXZpY2VPclBhZ2VTY2FsZUZh
Y3RvckNoYW5nZWQoKQoreworICAgIGlmIChtX2xheWVyKQorICAgICAgICBtX2xheWVyLT5wYWdl
U2NhbGVDaGFuZ2VkKCk7Cit9CisKIGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVtOjpkcmF3c0Nv
bnRlbnQoKSBjb25zdAogewogICAgIHJldHVybiBHcmFwaGljc0xheWVyOjpkcmF3c0NvbnRlbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKaW5kZXggNzE5MGU1MDU5ZmM1NjE2
NDk2OTY5MDQ5NDNhNWU3NWM1MzdjNTM3ZS4uZjczZTczMzczOWJhMTZhNTIyMTFiMzExZTI2OWM1
MzZiY2FiYTcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKQEAgLTEwMCw2
ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eVN5bmNSZXF1aXJlZCgpOwogCisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpOwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNmE2YTBlNzdjNDc0OTA5Y2EwMmI0NDgyZGZm
NjAxNjBhYTExY2Y0OC4uNzBkNTgxODhjMzgxZWIwMWM2ZmU5N2M5NDRhZTRmMzA5YmMxOWNlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTcyLDYgKzcyLDcgQEAgTGF5ZXJDaHJvbWl1bTo6
TGF5ZXJDaHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgICwgbV9yZXBsaWNh
TGF5ZXIoMCkKICAgICAsIG1fZHJhd09wYWNpdHkoMCkKICAgICAsIG1fdGFyZ2V0UmVuZGVyU3Vy
ZmFjZSgwKQorICAgICwgbV9wYWdlU2NhbGVEaXJ0eShmYWxzZSkKIHsKIH0KIApAQCAtMjEwLDEw
ICsyMTEsMTIgQEAgdm9pZCBMYXllckNocm9taXVtOjpzZXRCb3VuZHMoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKIAogICAgIG1fYm91bmRzID0gc2l6ZTsKIAotICAgIGlmIChmaXJzdFJlc2l6ZSkKKyAg
ICBpZiAoZmlyc3RSZXNpemUgfHwgbV9wYWdlU2NhbGVEaXJ0eSkKICAgICAgICAgc2V0TmVlZHNE
aXNwbGF5KEZsb2F0UmVjdCgwLCAwLCBib3VuZHMoKS53aWR0aCgpLCBib3VuZHMoKS5oZWlnaHQo
KSkpOwogICAgIGVsc2UKICAgICAgICAgc2V0TmVlZHNDb21taXQoKTsKKworICAgIG1fcGFnZVNj
YWxlRGlydHkgPSBmYWxzZTsKIH0KIAogY29uc3QgTGF5ZXJDaHJvbWl1bSogTGF5ZXJDaHJvbWl1
bTo6cm9vdExheWVyKCkgY29uc3QKQEAgLTI4Niw3ICsyODksNiBAQCB2b2lkIExheWVyQ2hyb21p
dW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqIGxheWVyKQogICAgIGxheWVyLT5zZXRE
cmF3c0NvbnRlbnQoZHJhd3NDb250ZW50KCkpOwogICAgIGxheWVyLT5zZXRJc05vbkNvbXBvc2l0
ZWRDb250ZW50KG1faXNOb25Db21wb3NpdGVkQ29udGVudCk7CiAgICAgbGF5ZXItPnNldE1hc2tz
VG9Cb3VuZHMobV9tYXNrc1RvQm91bmRzKTsKLSAgICBsYXllci0+c2V0TWF4U2Nyb2xsUG9zaXRp
b24obV9tYXhTY3JvbGxQb3NpdGlvbik7CiAgICAgbGF5ZXItPnNldE5hbWUobV9uYW1lKTsKICAg
ICBsYXllci0+c2V0T3BhcXVlKG1fb3BhcXVlKTsKICAgICBsYXllci0+c2V0T3BhY2l0eShtX29w
YWNpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGM3YWVjYmU1OGE3N2QzMThkZWU2NTVkNTk1
NDNmZmQwMTgwMzM2MWUuLjY5MjNjNzg1Y2NkYzE1Zjk5ZjI0OTEwN2Q0ZTY1ZTU2NTY1MWMzZjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmgKQEAgLTEzMSwxMyArMTMxLDggQEAgcHVibGljOgogICAgIGNv
bnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUG9z
aXRpb247IH0KICAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3Jv
bGxQb3NpdGlvbikgeyBtX3Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247IH0KIAotICAg
IGNvbnN0IEludFNpemUmIG1heFNjcm9sbFBvc2l0aW9uKCkgY29uc3Qge3JldHVybiBtX21heFNj
cm9sbFBvc2l0aW9uOyB9Ci0gICAgdm9pZCBzZXRNYXhTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRT
aXplJiBtYXhTY3JvbGxQb3NpdGlvbikgeyBtX21heFNjcm9sbFBvc2l0aW9uID0gbWF4U2Nyb2xs
UG9zaXRpb247IH0KLQogICAgIEludFNpemUgc2Nyb2xsRGVsdGEoKSBjb25zdCB7IHJldHVybiBJ
bnRTaXplKCk7IH0KIAotICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtYXhT
Y3JvbGxQb3NpdGlvbigpLmlzWmVybygpOyB9Ci0KICAgICBib29sIGRvdWJsZVNpZGVkKCkgY29u
c3QgeyByZXR1cm4gbV9kb3VibGVTaWRlZDsgfQogICAgIHZvaWQgc2V0RG91YmxlU2lkZWQoYm9v
bCBkb3VibGVTaWRlZCkgeyBtX2RvdWJsZVNpZGVkID0gZG91YmxlU2lkZWQ7IHNldE5lZWRzQ29t
bWl0KCk7IH0KIApAQCAtMTY0LDYgKzE1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SXNNYXNrKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250ZW50c1Rl
eHR1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZSgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwYWdlU2NhbGVDaGFuZ2VkKCkgeyBtX3BhZ2VTY2FsZURpcnR5ID0g
dHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpIHsg
fQogCiAgICAgLy8gVGhlc2UgZXhpc3QganVzdCBmb3IgZGVidWdnaW5nICh2aWEgZHJhd0RlYnVn
Qm9yZGVyKCkpLgpAQCAtMjUyLDcgKzI0OCw2IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX2Jv
dW5kczsKICAgICBJbnRSZWN0IG1fdmlzaWJsZUxheWVyUmVjdDsKICAgICBJbnRQb2ludCBtX3Nj
cm9sbFBvc2l0aW9uOwotICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlvbjsKICAgICBGbG9h
dFBvaW50IG1fcG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBtX2FuY2hvclBvaW50OwogICAgIENv
bG9yIG1fYmFja2dyb3VuZENvbG9yOwpAQCAtMjgzLDYgKzI3OCw4IEBAIHByaXZhdGU6CiAgICAg
SW50UmVjdCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7CiAKICAgICBTdHJpbmcgbV9uYW1lOworCisg
ICAgYm9vbCBtX3BhZ2VTY2FsZURpcnR5OwogfTsKIAogdm9pZCBzb3J0TGF5ZXJzKFZlY3RvcjxS
ZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJv
bWl1bT4gPjo6aXRlcmF0b3IsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uY3BwCmluZGV4IGJlZTI2ZTZjOTExYjQ5MTVkYWNjMTY2YjdlMjBjNzljODBkMDM2YzguLmZl
MzFlMGJkNWIyOGU1NjBmZWJhMTEwZDAwMTBiNjVmMDM4YmVmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgTGF5ZXJSZW5k
ZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzSW50ZXJuYWwoKQogCiAgICAgewogICAgICAgICBUUkFD
RV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzSW50ZXJuYWw6OmNhbGNE
cmF3RXRjIiwgdGhpcywgMCk7Ci0gICAgICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3Vs
YXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5
ZXIsIG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtLCBtX3pvb21BbmltYXRvclRyYW5zZm9ybSwgcmVu
ZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9kZWZhdWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCks
ICZtX2xheWVyU29ydGVyLCBtX2NhcGFiaWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CisgICAgICAg
IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmls
aXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5ZXIsIG1fcGFnZU1hZ25pZnlNYXRyaXgsIG1f
cGFnZU1hZ25pZnlNYXRyaXgsIHJlbmRlclN1cmZhY2VMYXllckxpc3QsIG1fZGVmYXVsdFJlbmRl
clN1cmZhY2UtPmxheWVyTGlzdCgpLCAmbV9sYXllclNvcnRlciwgbV9jYXBhYmlsaXRpZXMubWF4
VGV4dHVyZVNpemUpOwogICAgIH0KIAogICAgIC8vIFRoZSBHTCB2aWV3cG9ydCBjb3ZlcnMgdGhl
IGVudGlyZSB2aXNpYmxlIGFyZWEsIGluY2x1ZGluZyB0aGUgc2Nyb2xsYmFycy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmgKaW5kZXggNjQ2ZWE2ZTVjNDQ4YTU4YzYxMjQxMzQyYjBm
OWE2ZWFkZGFlZjQ0Ny4uYTVjZDdmN2YxOTViNDBiYjZkMjBkY2RjNTdkMDJjNjI4MTFiMDUxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCB2aWV3cG9ydENoYW5nZWQoKTsKIAorICAgIHZvaWQgc2V0UGFnZU1h
Z25pZnlUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpIHsgbV9wYWdlTWFn
bmlmeU1hdHJpeCA9IHQ7IH0KKwogICAgIHZvaWQgZHJhd0xheWVycygpOwogCiAgICAgLy8gd2Fp
dHMgZm9yIHJlbmRlcmluZyB0byBmaW5pc2gKQEAgLTE5NSw2ICsxOTcsNyBAQCBwcml2YXRlOgog
CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9wcm9qZWN0aW9uTWF0cml4OwogICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IG1fd2luZG93TWF0cml4OworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IG1fcGFnZU1hZ25pZnlNYXRyaXg7CiAKICAgICBDQ1JlbmRlclN1cmZhY2UqIG1fY3VycmVudFJl
bmRlclN1cmZhY2U7CiAgICAgdW5zaWduZWQgbV9vZmZzY3JlZW5GcmFtZWJ1ZmZlcklkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKaW5kZXggZmNjYjVmNmZkY2Mz
NDNmZTUzY2JlYzdjZGJlZjlkNzMzNDQ3YzdhZS4uOTdkMDNlZDFhNzFkYWFkOTg0NzczYjUzMTUw
MzJiNDc3NmZkMzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3Qu
Y3BwCkBAIC01OSwyMiArNTksMjAgQEAgdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNl
dFJvb3RMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikKICAgICAgICAgbV9ncmFwaGljc0xheWVy
LT5wbGF0Zm9ybUxheWVyKCktPnNldExheWVyVHJlZUhvc3QoMCk7CiB9CiAKLXZvaWQgTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNp
emUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBv
c2l0aW9uKQordm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplLCBjb25z
dCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGZsb2F0IHBhZ2VTY2FsZSkKIHsKICAgICBib29s
IHZpc2libGVSZWN0Q2hhbmdlZCA9IG1fdmlld3BvcnRTaXplICE9IHZpZXdwb3J0U2l6ZTsKIAog
ICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXplOwogICAgIG1fZ3JhcGhpY3NMYXllci0+
cGxhdGZvcm1MYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7Ci0gICAg
SW50U2l6ZSBtYXhTY3JvbGwgPSBjb250ZW50c1NpemUgLSB2aWV3cG9ydFNpemU7Ci0gICAgLy8g
VGhlIHZpZXdwb3J0IG1heSBiZSBsYXJnZXIgdGhhbiB0aGUgY29udGVudHMgaW4gc29tZSBjYXNl
cywgc3VjaCBhcwotICAgIC8vIGhhdmluZyBhIHZlcnRpY2FsIHNjcm9sbGJhciBidXQgbm8gaG9y
aXpvbnRhbCBvdmVyZmxvdy4KLSAgICBtYXhTY3JvbGwuY2xhbXBOZWdhdGl2ZVRvWmVybygpOwot
Ci0gICAgbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldE1heFNjcm9sbFBvc2l0
aW9uKG1heFNjcm9sbCk7CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaXplKGNvbnRlbnRzU2l6
ZSk7CiAKICAgICBpZiAodmlzaWJsZVJlY3RDaGFuZ2VkKQogICAgICAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldE5lZWRzRGlzcGxheSgpOworCisgICAgYm9vbCBwYWdlU2NhbGVDaGFuZ2VkID0gbV9n
cmFwaGljc0xheWVyLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSBwYWdlU2NhbGU7CisgICAgaWYgKHBh
Z2VTY2FsZUNoYW5nZWQpCisgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+ZGV2aWNlT3JQYWdlU2Nh
bGVGYWN0b3JDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojpw
cm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdC5oCmluZGV4IDg5YThmY2VjYTE1ZDBiMTk4YWQ5NzNhNTkwNTRmNzdkNmY2MzgzMjku
LmY1YmRiOTk5OWI2N2Y3NzQxZDdhOTdkOTQ0YmNjNzg4YzBlMTUwYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpOwogICAgIHZvaWQgc2V0Um9v
dExheWVyKEdyYXBoaWNzTGF5ZXIqKTsKLSAgICB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBJbnRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24pOworICAgIHZvaWQgc2V0Vmlld3BvcnQoY29uc3QgSW50U2l6
ZSYgdmlld3BvcnRTaXplLCBjb25zdCBJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgZmxvYXQgcGFnZVNjYWxlKTsKICAgICB2b2lkIHByb3RlY3RW
aXNpYmxlVGlsZVRleHR1cmVzKCk7CiAgICAgR3JhcGhpY3NMYXllciogdG9wTGV2ZWxSb290TGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIApAQCAtNzQsNCAr
NzQsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0X2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5kZXggYzMyZTEx
N2I3YjVmZDlhMWY5ZTA1MTllOWM4YTllYWY3Y2ZiNTMwZC4uNjNhNzRjOGZiMDFhZDdkY2ExYTg0
MjAyOTZmZDMzN2JiMGU2OTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC0yMTMsNyArMjEz
LDYgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIG1fYm91bmRzOwogICAgIEludFNpemUgbV9jb250
ZW50Qm91bmRzOwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247Ci0gICAgSW50U2l6ZSBt
X21heFNjcm9sbFBvc2l0aW9uOwogCiAgICAgLy8gV2hldGhlciB0aGUgImJhY2siIG9mIHRoaXMg
bGF5ZXIgc2hvdWxkIGRyYXcuCiAgICAgYm9vbCBtX2RvdWJsZVNpZGVkOwpAQCAtMjM1LDYgKzIz
NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RyYXdzQ29udGVudDsKIAogICAgIEludFNpemUg
bV9zY3JvbGxEZWx0YTsKKyAgICBJbnRTaXplIG1fbWF4U2Nyb2xsUG9zaXRpb247CiAKICAgICAv
LyBQcm9wZXJ0aWVzIG93bmVkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgQ0NMYXllckltcGwuCiAgICAg
Ly8gRGVidWdnaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMDQ2MWJk
ZjliN2MxOGUyNGE3ZTg5ZmM4OTc0YTNlYjZiNTlmMTI1YS4uYmMyYjJlOTA0ZDUxZjQwNTc5Y2Y4
ZTY2YzI3ZGUzOTNkYjI1NzRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBA
IC0xMzEsNiArMTMxLDggQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmZpbmlzaENvbW1pdE9uSW1w
bFRocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKiBob3N0SW1wbCkKICAgICBob3N0SW1wbC0+c2V0
SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMpOwogICAgIGhv
c3RJbXBsLT5zZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0obV96b29tQW5pbWF0b3JUcmFuc2Zvcm0p
OwogICAgIGhvc3RJbXBsLT5zZXRWaWV3cG9ydCh2aWV3cG9ydFNpemUoKSk7CisgICAgaG9zdElt
cGwtPnNldFBhZ2VTY2FsZShwYWdlU2NhbGUoKSk7CisgICAgaG9zdEltcGwtPnNldFNjYWxlTGlt
aXRzKG1fbWluU2NhbGUsIG1fbWF4U2NhbGUpOwogCiAgICAgLy8gU3luY2hyb25pemUgdHJlZXMs
IGlmIG9uZSBleGlzdHMgYXQgYWxsLi4uCiAgICAgaWYgKHJvb3RMYXllcigpKQpAQCAtMjI1LDYg
KzIyNywyNSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0Vmlld3BvcnQoY29uc3QgSW50U2l6
ZSYgdmlld3BvcnRTaXplKQogICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKK3ZvaWQgQ0NMYXll
clRyZWVIb3N0OjpzZXRQYWdlU2NhbGUoZmxvYXQgcGFnZVNjYWxlKQoreworICAgIGlmIChwYWdl
U2NhbGUgPT0gbV9wYWdlU2NhbGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZVNjYWxl
ID0gcGFnZVNjYWxlOworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9CisKK3ZvaWQgQ0NMYXllclRy
ZWVIb3N0OjpzZXRTY2FsZUxpbWl0cyhmbG9hdCBtaW5TY2FsZSwgZmxvYXQgbWF4U2NhbGUpCit7
CisgICAgaWYgKG1pblNjYWxlID09IG1fbWluU2NhbGUgJiYgbWF4U2NhbGUgPT0gbV9tYXhTY2Fs
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9taW5TY2FsZSA9IG1pblNjYWxlOworICAgIG1f
bWF4U2NhbGUgPSBtYXhTY2FsZTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCiB2b2lkIEND
TGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCiB7CiAgICAgaWYgKG1fdmlz
aWJsZSA9PSB2aXNpYmxlKQpAQCAtNDM4LDE1ICs0NTksMTUgQEAgdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OmNsZWFyUGVuZGluZ1VwZGF0ZSgpCiAgICAgbV91cGRhdGVMaXN0LmNsZWFyKCk7CiB9CiAK
LXZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbERlbHRhcyhjb25zdCBDQ1Njcm9sbFVw
ZGF0ZVNldCYgaW5mbykKK3ZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFuZFNjYWxl
KGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmIGluZm8pCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBpbmZvLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGludCBsYXllcklkID0gaW5mb1tp
XS5sYXllcklkOwotICAgICAgICBJbnRTaXplIHNjcm9sbERlbHRhID0gaW5mb1tpXS5zY3JvbGxE
ZWx0YTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluZm8uc2Nyb2xscy5zaXplKCk7ICsr
aSkgeworICAgICAgICBpbnQgbGF5ZXJJZCA9IGluZm8uc2Nyb2xsc1tpXS5sYXllcklkOworICAg
ICAgICBJbnRTaXplIHNjcm9sbERlbHRhID0gaW5mby5zY3JvbGxzW2ldLnNjcm9sbERlbHRhOwog
CiAgICAgICAgIC8vIEZJWE1FOiBwdXNoaW5nIHNjcm9sbCBvZmZzZXRzIHRvIG5vbi1yb290IGxh
eWVycyBub3QgaW1wbGVtZW50ZWQKICAgICAgICAgaWYgKHJvb3RMYXllcigpLT5pZCgpID09IGxh
eWVySWQpCi0gICAgICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxEZWx0YShzY3JvbGxEZWx0
YSk7CisgICAgICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxBbmRTY2FsZShzY3JvbGxEZWx0
YSwgaW5mby5wYWdlU2NhbGUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDJlMmQ4
ZmM2OWFmMDkyNmZhYjJlNWZkMDEwNGY1NjE0Mzc2YmI1NGQuLmIzYTliYTg1ZWNlYjUyZjQwNTYx
MjJmYjE2NzdhZjdlODg4YTBkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC01
NCw3ICs1NCw3IEBAIGNsYXNzIFRleHR1cmVNYW5hZ2VyOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0
Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3Vi
bGUgZnJhbWVCZWdpblRpbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0
YShjb25zdCBJbnRTaXplJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNj
YWxlKGNvbnN0IEludFNpemUmLCBmbG9hdCkgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1i
ZXIpID0gMDsKQEAgLTE1Nyw2ICsxNTcsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmlld3Bv
cnQoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKTsKIAogICAgIGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRTaXplOyB9CisKKyAgICB2b2lk
IHNldFBhZ2VTY2FsZShmbG9hdCk7CisgICAgZmxvYXQgcGFnZVNjYWxlKCkgY29uc3QgeyByZXR1
cm4gbV9wYWdlU2NhbGU7IH0KKworICAgIHZvaWQgc2V0U2NhbGVMaW1pdHMoZmxvYXQgbWluU2Nh
bGUsIGZsb2F0IG1heFNjYWxlKTsKKwogICAgIFRleHR1cmVNYW5hZ2VyKiBjb250ZW50c1RleHR1
cmVNYW5hZ2VyKCkgY29uc3Q7CiAKICAgICBib29sIHZpc2libGUoKSBjb25zdCB7IHJldHVybiBt
X3Zpc2libGU7IH0KQEAgLTE2Nyw3ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVM
YXllcnMoKTsKIAogICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhHcmFwaGljc0Nv
bnRleHQzRCosIENDVGV4dHVyZVVwZGF0ZXImKTsKLSAgICB2b2lkIGFwcGx5U2Nyb2xsRGVsdGFz
KGNvbnN0IENDU2Nyb2xsVXBkYXRlU2V0Jik7CisgICAgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxl
KGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmKTsKICAgICB2b2lkIHN0YXJ0UmF0ZUxpbWl0ZXIo
R3JhcGhpY3NDb250ZXh0M0QqKTsKICAgICB2b2lkIHN0b3BSYXRlTGltaXRlcihHcmFwaGljc0Nv
bnRleHQzRCopOwogCkBAIC0yMDgsNiArMjE0LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGF2
ZVdoZWVsRXZlbnRIYW5kbGVyczsKICAgICB0eXBlZGVmIEhhc2hNYXA8R3JhcGhpY3NDb250ZXh0
M0QqLCBSZWZQdHI8UmF0ZUxpbWl0ZXI+ID4gUmF0ZUxpbWl0ZXJNYXA7CiAgICAgUmF0ZUxpbWl0
ZXJNYXAgbV9yYXRlTGltaXRlcnM7CisKKyAgICBmbG9hdCBtX3BhZ2VTY2FsZTsKKyAgICBmbG9h
dCBtX21pblNjYWxlLCBtX21heFNjYWxlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RDb21tb24uaAppbmRleCBlNGQ0OTYzNzQxOGI3OWIzMGVjMGMzMGQxZmIwZjNiZGEy
MTYzNTVhLi40MmMxZjA2MDI3ODA4ZWEwMTMyYTlhYjVmNWNhYWI3MTZhYjg3ODAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaApAQCAtNTEsNyArNTEsMTAgQEAgcHVi
bGljOgogICAgIH07CiB9OwogCi10eXBlZGVmIFZlY3RvcjxDQ0xheWVyVHJlZUhvc3RDb21tb246
OlNjcm9sbFVwZGF0ZUluZm8+IENDU2Nyb2xsVXBkYXRlU2V0Oworc3RydWN0IENDU2Nyb2xsQW5k
U2NhbGVTZXQgeworICAgIFZlY3RvcjxDQ0xheWVyVHJlZUhvc3RDb21tb246OlNjcm9sbFVwZGF0
ZUluZm8+IHNjcm9sbHM7CisgICAgZmxvYXQgcGFnZVNjYWxlOworfTsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgTGF5ZXJUeXBlPgogSW50UmVjdCBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0
ZVZpc2libGVMYXllclJlY3QoTGF5ZXJUeXBlKiBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0SW1wbC5jcHAKaW5kZXggNTFkOTJmNTAyYmRhOTAxZWNiYTE2NTBlMWExMzBlNzk4
NDA4MDNiYi4uOTc1MGY3NWY4NjQyMGQyYzg1NDY0MGUyZjgwOTA1ODg2ZWEwMDNlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKQEAgLTUwLDYgKzUwLDExIEBAIEND
TGF5ZXJUcmVlSG9zdEltcGw6OkNDTGF5ZXJUcmVlSG9zdEltcGwoY29uc3QgQ0NTZXR0aW5ncyYg
c2V0dGluZ3MsIENDTGF5ZXJUcmVlCiAgICAgLCBtX3NldHRpbmdzKHNldHRpbmdzKQogICAgICwg
bV92aXNpYmxlKHRydWUpCiAgICAgLCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMoZmFsc2UpCisg
ICAgLCBtX3BhZ2VTY2FsZSgxKQorICAgICwgbV9zY2FsZURlbHRhKDEpCisgICAgLCBtX21pblNj
YWxlKDApCisgICAgLCBtX21heFNjYWxlKDApCisgICAgLCBtX3BpbmNoR2VzdHVyZUFjdGl2ZShm
YWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwogfQpAQCAtNjgs
NiArNzMsOSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmJlZ2luQ29tbWl0KCkKIAogdm9p
ZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21taXRDb21wbGV0ZSgpCiB7CisgICAgLy8gUmVjb21w
dXRlIG1heCBzY3JvbGwgcG9zaXRpb247IG11c3QgYmUgYWZ0ZXIgbGF5ZXIgY29udGVudCBib3Vu
ZHMgYXJlCisgICAgLy8gdXBkYXRlZC4KKyAgICB1cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpOwog
fQogCiBHcmFwaGljc0NvbnRleHQzRCogQ0NMYXllclRyZWVIb3N0SW1wbDo6Y29udGV4dCgpCkBA
IC0xNjIsOCArMTcwLDcwIEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0Vmlld3BvcnQo
Y29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKQogewogICAgIGJvb2wgY2hhbmdlZCA9IHZpZXdw
b3J0U2l6ZSAhPSBtX3ZpZXdwb3J0U2l6ZTsKICAgICBtX3ZpZXdwb3J0U2l6ZSA9IHZpZXdwb3J0
U2l6ZTsKLSAgICBpZiAoY2hhbmdlZCkKKyAgICBpZiAoY2hhbmdlZCkgeworICAgICAgICB1cGRh
dGVNYXhTY3JvbGxQb3NpdGlvbigpOwogICAgICAgICBtX2xheWVyUmVuZGVyZXItPnZpZXdwb3J0
Q2hhbmdlZCgpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRQYWdl
U2NhbGUoZmxvYXQgcGFnZVNjYWxlKQoreworICAgIC8vIE1haW50YWluIGNvbnN0YW50IHRoZSBw
cm9kdWN0IG9mIG1fcGFnZVNjYWxlICogbV9zY2FsZURlbHRhLgorICAgIGZsb2F0IHNjYWxlQ2hh
bmdlID0gcGFnZVNjYWxlIC8gbV9wYWdlU2NhbGU7CisgICAgZmxvYXQgb2xkTWFnbmlmeVNjYWxl
ID0gbV9wYWdlU2NhbGUgKiBtX3NjYWxlRGVsdGE7CisgICAgbV9wYWdlU2NhbGUgPSBwYWdlU2Nh
bGU7CisKKyAgICBzZXRTY2FsZURlbHRhKG9sZE1hZ25pZnlTY2FsZSAvIHBhZ2VTY2FsZSk7CisK
KyAgICAvLyBXZSBhbHNvIG5lZWQgdG8gY29udmVydCBpbXBsLXNpZGUgc2Nyb2xsIGRlbHRhcyB0
byBwYWdlU2NhbGUgc3BhY2UuCisgICAgaWYgKG1fcm9vdExheWVySW1wbCAmJiBtX3Jvb3RMYXll
ckltcGwtPnNjcm9sbGFibGUoKSkgeworICAgICAgICBJbnRTaXplIHNjcm9sbERlbHRhID0gbV9y
b290TGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpOworICAgICAgICBzY3JvbGxEZWx0YS5zY2FsZShz
Y2FsZUNoYW5nZSk7CisgICAgICAgIG1fcm9vdExheWVySW1wbC0+c2V0U2Nyb2xsRGVsdGEoc2Ny
b2xsRGVsdGEpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRTY2Fs
ZURlbHRhKGZsb2F0IGRlbHRhKQoreworICAgIC8vIENsYW1wIHRvIHRoZSBjdXJyZW50IG1pbi9t
YXggbGltaXRzLgorICAgIGZsb2F0IGZpbmFsTWFnbmlmeVNjYWxlID0gbV9wYWdlU2NhbGUgKiBk
ZWx0YTsKKyAgICBpZiAobV9taW5TY2FsZSAmJiBmaW5hbE1hZ25pZnlTY2FsZSA8IG1fbWluU2Nh
bGUpCisgICAgICAgIGRlbHRhID0gbV9taW5TY2FsZSAvIG1fcGFnZVNjYWxlOworICAgIGVsc2Ug
aWYgKG1fbWF4U2NhbGUgJiYgZmluYWxNYWduaWZ5U2NhbGUgPiBtX21heFNjYWxlKQorICAgICAg
ICBkZWx0YSA9IG1fbWF4U2NhbGUgLyBtX3BhZ2VTY2FsZTsKKworICAgIGJvb2wgY2hhbmdlZCA9
IGRlbHRhICE9IG1fc2NhbGVEZWx0YTsKKyAgICBtX3NjYWxlRGVsdGEgPSBkZWx0YTsKKworICAg
IGlmIChjaGFuZ2VkKSB7CisgICAgICAgIHVwZGF0ZU1heFNjcm9sbFBvc2l0aW9uKCk7CisKKyAg
ICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZGVsdGFNYXRyaXg7CisgICAgICAgIGRlbHRhTWF0
cml4LnNjYWxlKG1fc2NhbGVEZWx0YSk7CisgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+c2V0UGFn
ZU1hZ25pZnlUcmFuc2Zvcm0oZGVsdGFNYXRyaXgpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVy
VHJlZUhvc3RJbXBsOjpzZXRTY2FsZUxpbWl0cyhmbG9hdCBtaW5TY2FsZSwgZmxvYXQgbWF4U2Nh
bGUpCit7CisgICAgbV9taW5TY2FsZSA9IG1pblNjYWxlOworICAgIG1fbWF4U2NhbGUgPSBtYXhT
Y2FsZTsKKworICAgIC8vIFRoaXMgd2lsbCBjbGFtcCBtX3NjYWxlRGVsdGEgYW5kIGFwcGx5IHNp
ZGUgZWZmZWN0cyBpZiBjbGFtcGVkLgorICAgIHNldFNjYWxlRGVsdGEobV9zY2FsZURlbHRhKTsK
K30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjp1cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigp
Cit7CisgICAgaWYgKCFtX3Jvb3RMYXllckltcGwpCisgICAgICAgIHJldHVybjsKKworICAgIEZs
b2F0U2l6ZSB2aWV3Qm91bmRzID0gbV92aWV3cG9ydFNpemU7CisgICAgdmlld0JvdW5kcy5zY2Fs
ZSgxIC8gbV9zY2FsZURlbHRhKTsKKworICAgIG1fcm9vdExheWVySW1wbC0+c2V0TWF4U2Nyb2xs
UG9zaXRpb24obV9yb290TGF5ZXJJbXBsLT5jb250ZW50Qm91bmRzKCkgLSBleHBhbmRlZEludFNp
emUodmlld0JvdW5kcykpOworCisgICAgLy8gVE9ETyhhZWxpYXMpOiBBbHNvIHVwZGF0ZSBzdWJs
YXllcnMuCiB9CiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0Wm9vbUFuaW1hdG9yVHJh
bnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB6b29tKQpAQCAtMTg3LDE5ICsyNTcs
NjAgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCkK
ICAgICByZXR1cm4gbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzOwogfQogCi1QYXNzT3duUHRyPEND
U2Nyb2xsVXBkYXRlU2V0PiBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFz
KCkKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6cGluY2hHZXN0dXJlQmVnaW4oKQoreworICAg
IG1fcGluY2hHZXN0dXJlQWN0aXZlID0gdHJ1ZTsKK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJ
bXBsOjpwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRhLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UG9pbnQmIGFuY2hvcikK
K3sKKyAgICBUUkFDRV9FVkVOVCgiQ0NMYXllclRyZWVIb3N0SW1wbDo6cGluY2hHZXN0dXJlVXBk
YXRlIiwgdGhpcywgMCk7CisKKyAgICBpZiAobWFnbmlmeURlbHRhID09IDEuMCkKKyAgICAgICAg
cmV0dXJuOworICAgIGlmICghbV9yb290TGF5ZXJJbXBsKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBLZWVwIHRoZSBjZW50ZXItb2YtcGluY2ggYW5jaG9yIHNwZWNpZmllZCBieSAoeCwgeSkg
aW4gYSBzdGFibGUKKyAgICAvLyBwb3NpdGlvbiBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhlIG1hZ25p
ZnkuCisgICAgRmxvYXRQb2ludCBwcmV2U2NhbGVBbmNob3IoYW5jaG9yLngoKSAvIG1fc2NhbGVE
ZWx0YSwgYW5jaG9yLnkoKSAvIG1fc2NhbGVEZWx0YSk7CisgICAgc2V0U2NhbGVEZWx0YShtX3Nj
YWxlRGVsdGEgKiBtYWduaWZ5RGVsdGEpOworICAgIEZsb2F0UG9pbnQgbmV3U2NhbGVBbmNob3Io
YW5jaG9yLngoKSAvIG1fc2NhbGVEZWx0YSwgYW5jaG9yLnkoKSAvIG1fc2NhbGVEZWx0YSk7CisK
KyAgICBGbG9hdFNpemUgbW92ZSA9IHByZXZTY2FsZUFuY2hvciAtIG5ld1NjYWxlQW5jaG9yOwor
CisgICAgc2Nyb2xsUm9vdExheWVyKHJvdW5kZWRJbnRTaXplKG1vdmUpKTsKKworICAgIG1fY2xp
ZW50LT5zZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCgpOworfQorCit2b2lkIENDTGF5ZXJUcmVl
SG9zdEltcGw6OnBpbmNoR2VzdHVyZUVuZCgpCit7CisgICAgbV9waW5jaEdlc3R1cmVBY3RpdmUg
PSBmYWxzZTsKKworICAgIG1fY2xpZW50LT5zZXROZWVkc0NvbW1pdE9uSW1wbFRocmVhZCgpOwor
fQorCitQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IENDTGF5ZXJUcmVlSG9zdEltcGw6
OnByb2Nlc3NTY3JvbGxEZWx0YXMoKQogewotICAgIE93blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4g
c2Nyb2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBDQ1Njcm9sbFVwZGF0ZVNldCgpKTsKKyAgICBPd25Q
dHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBDQ1Njcm9s
bEFuZFNjYWxlU2V0KCkpOworICAgIHNjcm9sbEluZm8tPnBhZ2VTY2FsZSA9IG1fcGFnZVNjYWxl
OworCisgICAgYm9vbCBkaWRNb3ZlID0gcm9vdExheWVyKCkgJiYgKCFyb290TGF5ZXIoKS0+c2Ny
b2xsRGVsdGEoKS5pc1plcm8oKSB8fCBtX3NjYWxlRGVsdGEgIT0gMS4wZik7CisgICAgaWYgKCFk
aWRNb3ZlIHx8IG1fcGluY2hHZXN0dXJlQWN0aXZlKQorICAgICAgICByZXR1cm4gc2Nyb2xsSW5m
by5yZWxlYXNlKCk7CisKICAgICAvLyBGSVhNRTogdHJhY2sgc2Nyb2xscyBmcm9tIGxheWVycyBv
dGhlciB0aGFuIHRoZSByb290Ci0gICAgaWYgKHJvb3RMYXllcigpICYmICFyb290TGF5ZXIoKS0+
c2Nyb2xsRGVsdGEoKS5pc1plcm8oKSkgewotICAgICAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246
OlNjcm9sbFVwZGF0ZUluZm8gaW5mbzsKLSAgICAgICAgaW5mby5sYXllcklkID0gcm9vdExheWVy
KCktPmlkKCk7Ci0gICAgICAgIGluZm8uc2Nyb2xsRGVsdGEgPSByb290TGF5ZXIoKS0+c2Nyb2xs
RGVsdGEoKTsKLSAgICAgICAgc2Nyb2xsSW5mby0+YXBwZW5kKGluZm8pOwotCi0gICAgICAgIHJv
b3RMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihyb290TGF5ZXIoKS0+c2Nyb2xsUG9zaXRpb24o
KSArIHJvb3RMYXllcigpLT5zY3JvbGxEZWx0YSgpKTsKLSAgICAgICAgcm9vdExheWVyKCktPnNl
dFNjcm9sbERlbHRhKEludFNpemUoKSk7Ci0gICAgfQorICAgIHNjcm9sbEluZm8tPnBhZ2VTY2Fs
ZSA9IG1fcGFnZVNjYWxlICogbV9zY2FsZURlbHRhOworICAgIENDTGF5ZXJUcmVlSG9zdENvbW1v
bjo6U2Nyb2xsVXBkYXRlSW5mbyBzY3JvbGw7CisgICAgc2Nyb2xsLmxheWVySWQgPSByb290TGF5
ZXIoKS0+aWQoKTsKKyAgICBzY3JvbGwuc2Nyb2xsRGVsdGEgPSByb290TGF5ZXIoKS0+c2Nyb2xs
RGVsdGEoKTsKKyAgICBzY3JvbGxJbmZvLT5zY3JvbGxzLmFwcGVuZChzY3JvbGwpOworCisgICAg
cm9vdExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHJvb3RMYXllcigpLT5zY3JvbGxQb3NpdGlv
bigpICsgcm9vdExheWVyKCktPnNjcm9sbERlbHRhKCkpOworICAgIHJvb3RMYXllcigpLT5zZXRT
Y3JvbGxEZWx0YShJbnRTaXplKCkpOworCiAgICAgcmV0dXJuIHNjcm9sbEluZm8ucmVsZWFzZSgp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKaW5kZXggNWE2OGYwZmUz
MDg0Y2U4ZDFmNWUyYTcwYzcwMWFmYTdjNzUwMTQ4Mi4uNGJlNTc4NmFmZjUzMWUwZDEyYmJhOTZk
NDk3NDQxMjcyOWRiMmY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaApA
QCAtOTcsOSArOTcsMTcgQEAgcHVibGljOgogICAgIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRTaXplOyB9CiAgICAgdm9pZCBzZXRab29tQW5p
bWF0b3JUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIAorICAgIHZvaWQg
c2V0UGFnZVNjYWxlKGZsb2F0KTsKKyAgICBmbG9hdCBwYWdlU2NhbGUoKSBjb25zdCB7IHJldHVy
biBtX3BhZ2VTY2FsZTsgfQorICAgIHZvaWQgc2V0U2NhbGVMaW1pdHMoZmxvYXQgbWluU2NhbGUs
IGZsb2F0IG1heFNjYWxlKTsKKwogICAgIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKCkgY29u
c3QgeyByZXR1cm4gbV9zZXR0aW5nczsgfQogCi0gICAgUGFzc093blB0cjxDQ1Njcm9sbFVwZGF0
ZVNldD4gcHJvY2Vzc1Njcm9sbERlbHRhcygpOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1
cmVCZWdpbigpOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQsIGNv
bnN0IEludFBvaW50Jik7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUVuZCgpOworICAg
IFBhc3NPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gcHJvY2Vzc1Njcm9sbERlbHRhcygpOwor
ICAgIHZvaWQgdXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24oKTsKIAogcHJvdGVjdGVkOgogICAgIEND
TGF5ZXJUcmVlSG9zdEltcGwoY29uc3QgQ0NTZXR0aW5ncyYsIENDTGF5ZXJUcmVlSG9zdEltcGxD
bGllbnQqKTsKQEAgLTEwOCwxMiArMTE2LDIwIEBAIHByb3RlY3RlZDoKICAgICBpbnQgbV9mcmFt
ZU51bWJlcjsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHNldFNjYWxlRGVsdGEoZmxvYXQpOworCiAg
ICAgT3duUHRyPExheWVyUmVuZGVyZXJDaHJvbWl1bT4gbV9sYXllclJlbmRlcmVyOwogICAgIFJl
ZlB0cjxDQ0xheWVySW1wbD4gbV9yb290TGF5ZXJJbXBsOwogICAgIENDU2V0dGluZ3MgbV9zZXR0
aW5nczsKICAgICBJbnRTaXplIG1fdmlld3BvcnRTaXplOwogICAgIGJvb2wgbV92aXNpYmxlOwog
ICAgIGJvb2wgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzOworCisgICAgZmxvYXQgbV9wYWdlU2Nh
bGU7CisgICAgZmxvYXQgbV9zY2FsZURlbHRhOworICAgIGZsb2F0IG1fbWluU2NhbGUsIG1fbWF4
U2NhbGU7CisKKyAgICBib29sIG1fcGluY2hHZXN0dXJlQWN0aXZlOwogfTsKIAogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Ny
b2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKaW5kZXggOTJiOTVkN2RjYWNkNzRhZGYzZGJlNTZm
Y2YyYTBkZTA4OThiY2M0Mi4uYzg0MWQyNDNhODA1YTJkMGRmYzI0MDQzZTc5NjgyZWMwMGY4ZWNk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKQEAgLTM2LDYgKzM2LDkgQEAg
Y2xhc3MgQ0NTY3JvbGxDb250cm9sbGVyIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhdmVX
aGVlbEV2ZW50SGFuZGxlcnMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJl
Z2luKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFn
bmlmeURlbHRhLCBjb25zdCBJbnRQb2ludCYgYW5jaG9yKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHBpbmNoR2VzdHVyZUVuZCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIENDU2Nyb2xsQ29udHJv
bGxlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCBl
YjFkY2Q0ZGRiN2U4OGZiOTkzNmM5Y2RmZDY4YjRkMWYzMWQ3MDJmLi4xMWIyNjQ4ZmI1YWMxYjYy
MGEwZDVkMmMyODI2MzdkNGZjNGY3YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVh
ZFByb3h5LmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6
ZG9Db21taXQoKQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAgICAgLy8gSW4gdGhlIHNpbmds
ZS10aHJlYWRlZCBjYXNlLCB0aGUgc2Nyb2xsIGRlbHRhcyBzaG91bGQgbmV2ZXIgYmUKICAgICAg
ICAgLy8gdG91Y2hlZCBvbiB0aGUgaW1wbCBsYXllciB0cmVlLgotICAgICAgICBPd25QdHI8Q0NT
Y3JvbGxVcGRhdGVTZXQ+IHNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNz
U2Nyb2xsRGVsdGFzKCk7CisgICAgICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3Jv
bGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAg
ICAgICBBU1NFUlQoIXNjcm9sbEluZm8tPnNpemUoKSk7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVh
ZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGRlMTk1ZWYyMjZlMDJkMTY4YjFmNDRkMTQ2NGE3NDJl
YTI0N2I3OTcuLjNjMTM3NzNiNjVjMDc2NDI4OTc1ZDE2ZDlkODc0ZmE5MDBmZjA4YjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCBQYXNzT3duUHRy
PENDTWFpblRocmVhZDo6VGFzaz4gQ0NUaHJlYWRQcm94eTo6Y3JlYXRlQmVnaW5GcmFtZUFuZENv
bW1pdFRhc2tPbkltcAogICAgIC8vIG51bWJlcnMgYmVsb3cgdGhlIGxhc3QgZXhlY3V0ZWQgb25l
LgogICAgIGludCB0aGlzVGFza1NlcXVlbmNlTnVtYmVyID0gbV9udW1CZWdpbkZyYW1lQW5kQ29t
bWl0c0lzc3VlZE9uSW1wbFRocmVhZDsKICAgICBtX251bUJlZ2luRnJhbWVBbmRDb21taXRzSXNz
dWVkT25JbXBsVGhyZWFkKys7Ci0gICAgT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJ
bmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOworICAgIE93
blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1w
bC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIHJldHVybiBjcmVhdGVNYWluVGhyZWFkVGFz
ayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdCwgdGhpc1Rhc2tTZXF1
ZW5jZU51bWJlciwgZnJhbWVCZWdpblRpbWUsIHNjcm9sbEluZm8ucmVsZWFzZSgpKTsKIH0KIAot
dm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJl
ciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBz
Y3JvbGxJbmZvKQordm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBz
ZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xs
QW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8pCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJv
eHk6OmJlZ2luRnJhbWVBbmRDb21taXQiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwpAQCAtMzUzLDcgKzM1Myw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFt
ZUFuZENvbW1pdChpbnQgc2VxdWVuY2VOdW1iZXIsIGRvdWJsZSBmcmFtZUJlZ2luVGltCiAgICAg
ICAgIHJldHVybjsKIAogICAgIC8vIFNjcm9sbCBkZWx0YXMgbmVlZCB0byBiZSBhcHBsaWVkIGV2
ZW4gaWYgdGhlIGNvbW1pdCB3aWxsIGJlIGRyb3BwZWQuCi0gICAgbV9sYXllclRyZWVIb3N0LT5h
cHBseVNjcm9sbERlbHRhcygqc2Nyb2xsSW5mby5nZXQoKSk7CisgICAgbV9sYXllclRyZWVIb3N0
LT5hcHBseVNjcm9sbEFuZFNjYWxlKCpzY3JvbGxJbmZvLmdldCgpKTsKIAogICAgIC8vIERyb3Ag
YmVnaW5GcmFtZUFuZENvbW1pdCBjYWxscyB0aGF0IG9jY3VyIG91dCBvZiBzZXF1ZW5jZS4gU2Vl
IGNyZWF0ZUJlZ2luRnJhbWVBbmRDb21taXRUYXNrT25JbXBsVGhyZWFkIGZvcgogICAgIC8vIGFu
IGV4cGxhbmF0aW9uIG9mIGhvdyBvdXQtb2Ytc2VxdWVuY2UgYmVnaW5GcmFtZUFuZENvbW1pdCB0
YXNrcyBjYW4gb2NjdXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggMTY3NmY4MzcwYmJl
YzBmNDZkOTAxZDk0M2U3M2E1Zjk3MTg5ZjBlMy4uZGZmMDViYmRmNmE5MzNmZTE2OGI1ZmZkZGZm
Y2Y3YmQ5ZDgwN2YyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtODEsNyArODEsNyBA
QCBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDVGhyZWFkUHJveHkoQ0NMYXllclRyZWVIb3N0Kik7
CiAKICAgICAvLyBDYWxsZWQgb24gQ0NNYWluVGhyZWFkCi0gICAgdm9pZCBiZWdpbkZyYW1lQW5k
Q29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3du
UHRyPENDU2Nyb2xsVXBkYXRlU2V0Pik7CisgICAgdm9pZCBiZWdpbkZyYW1lQW5kQ29tbWl0KGlu
dCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Ny
b2xsQW5kU2NhbGVTZXQ+KTsKICAgICB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJh
bWVOdW1iZXIpOwogCiAgICAgLy8gQ2FsbGVkIG9uIENDVGhyZWFkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmgKaW5kZXgg
MDkxMjY5YzdhYjU0OTA4ZmJmMjg1ODMzYjVlMTg2MGNhM2QyYjMzZi4uZDlkZGQ4MGRiNzNhNzg5
NjMyZTRmY2YwOTUyY2VkYjIzMmQyNDAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaApAQCAtMzcsOSArMzcsMTEg
QEAgcHVibGljOgogICAgIC8vIHNvIHRoYXQgbGF5ZXJzIGNhbiBiZSB1cGRhdGVkIGF0IHRoZSBn
aXZlbiBmcmFtZSB0aW1lLgogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJs
ZSBmcmFtZUJlZ2luVGltZSkgPSAwOwogCi0gICAgLy8gQXBwbGllcyBhIHNjcm9sbCBkZWx0YSB0
byB0aGUgcm9vdCBsYXllci4gVGhpcyBpcyB0cmlnZ2VyZWQgYnkgZXZlbnRzCi0gICAgLy8gc2Vu
dCB0byB0aGUgY29tcG9zaXRvciB0aHJlYWQgdGhyb3VnaCB0aGUgV2ViQ29tcG9zaXRvciBpbnRl
cmZhY2UuCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgV2ViU2l6ZSYp
ID0gMDsKKyAgICAvLyBBcHBsaWVzIGEgc2Nyb2xsIGRlbHRhIHRvIHRoZSByb290IGxheWVyLCB3
aGljaCBpcyBidW5kbGVkIHdpdGggYSBwYWdlCisgICAgLy8gc2NhbGUgZmFjdG9yIHRoYXQgbWF5
IGFwcGx5IGEgQ1NTIHRyYW5zZm9ybSBvbiB0aGUgd2hvbGUgZG9jdW1lbnQgKHVzZWQKKyAgICAv
LyBmb3IgbW9iaWxlLWRldmljZSBwaW5jaCB6b29taW5nKS4gVGhpcyBpcyB0cmlnZ2VyZWQgYnkg
ZXZlbnRzIHNlbnQgdG8gdGhlCisgICAgLy8gY29tcG9zaXRvciB0aHJlYWQgdGhyb3VnaCB0aGUg
V2ViQ29tcG9zaXRvciBpbnRlcmZhY2UuCisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5k
U2NhbGUoY29uc3QgV2ViU2l6ZSYsIGZsb2F0KSA9IDA7CiAKICAgICAvLyBDcmVhdGVzIGEgM0Qg
Y29udGV4dCBzdWl0YWJsZSBmb3IgdGhlIGNvbXBvc2l0aW5nLiBUaGlzIG1heSBiZSBjYWxsZWQK
ICAgICAvLyBtb3JlIHRoYW4gb25jZSBpZiB0aGUgY29udGV4dCBnZXRzIGxvc3QuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggNzVlMGJiMDM0M2U4NjM4NGIzYzQz
MDlmYTY0ZWRhZWRjYjE5ZjU5Ni4uYTMwMWY4MWYwM2NkYmJiMTM1MWI4YjI4MzJhNWQxZjNlNzRk
NzhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjA3LDYg
KzIwNywxMCBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgZG91YmxlIHpvb21M
ZXZlbFRvWm9vbUZhY3Rvcihkb3VibGUgem9vbUxldmVsKTsKICAgICBXRUJLSVRfRVhQT1JUIHN0
YXRpYyBkb3VibGUgem9vbUZhY3RvclRvWm9vbUxldmVsKGRvdWJsZSBmYWN0b3IpOwogCisgICAg
Ly8gUGFnZVNjYWxlRmFjdG9yIHdpbGwgYmUgZm9yY2UtY2xhbXBlZCBiZXR3ZWVuIG1pblNjYWxl
IGFuZCBtYXhTY2FsZQorICAgIC8vIChhbmQgdGhlc2UgdmFsdWVzIHdpbGwgcGVyc2lzdCB1bnRp
bCBzZXRTY2FsZUxpbWl0cyBpcyBjYWxsZWQgYWdhaW4pLgorICAgIHZpcnR1YWwgdm9pZCBzZXRT
Y2FsZUxpbWl0cyhmbG9hdCBtaW5TY2FsZSwgZmxvYXQgbWF4U2NhbGUpID0gMDsKKwogICAgIC8v
IEdldHMgdGhlIHNjYWxlIGZhY3RvciBvZiB0aGUgcGFnZSwgd2hlcmUgMS4wIGlzIHRoZSBub3Jt
YWwgc2l6ZSwgPiAxLjAKICAgICAvLyBpcyBzY2FsZWQgdXAsIDwgMS4wIGlzIHNjYWxlZCBkb3du
LgogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgPSAwOwpAQCAtMjI4
LDcgKzIzMiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlNpemUgZml4ZWRMYXlvdXRTaXpl
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZExheW91dFNpemUoY29uc3Qg
V2ViU2l6ZSYpID0gMDsKIAotCiAgICAgLy8gTWVkaWEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBQZXJmb3Jt
cyB0aGUgc3BlY2lmaWVkIGFjdGlvbiBvbiB0aGUgbm9kZSBhdCB0aGUgZ2l2ZW4gbG9jYXRpb24u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAK
aW5kZXggZDhiZDNhMTYzNDFiNzljNWZiMjIxZDdhM2ZlMjBkNjE4MGM0OWFkNy4uNWY4ZTljYmNh
ZjNjMDEzY2Y2MmE0MDA1ZjgzMjBiMjRhNDY1NjA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmNwcApAQCAtMTIzLDYgKzEyMyw3IEBAIHZv
aWQgV2ViQ29tcG9zaXRvckltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVu
dCYgZXZlbnQpCiAgICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CisKICAgICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRFdmVu
dCh0cnVlIC8qIHNlbmRUb1dpZGdldCAqLyk7CiB9CiAKQEAgLTEzMyw0ICsxMzQsMyBAQCBpbnQg
V2ViQ29tcG9zaXRvckltcGw6OmlkZW50aWZpZXIoKSBjb25zdAogfQogCiB9Ci0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcAppbmRl
eCA4OWRiYmE2MTY2NjRhYTdiYWRlMjY5MDc5ODc4ZmFhM2Y2YjFkYjFhLi4wMWUwZmI4N2RkZThl
NDQ0ODYxY2E0ZDc0OGRhZWEyMDRlOTVhMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCkBAIC02NCwxMCArNjQsMTAgQEAg
dm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6YW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVC
ZWdpblRpbWUpCiAgICAgICAgIG1fY2xpZW50LT5hbmltYXRlQW5kTGF5b3V0KGZyYW1lQmVnaW5U
aW1lKTsKIH0KIAotdm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlTY3JvbGxEZWx0YShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBkZWx0YSkKK3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6
OmFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEsIGZsb2F0
IHNjYWxlKQogewogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmFwcGx5U2Ny
b2xsRGVsdGEoV2ViU2l6ZShkZWx0YSkpOworICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxB
bmRTY2FsZShXZWJTaXplKGRlbHRhKSwgc2NhbGUpOwogfQogCiBQYXNzUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiBXZWJMYXllclRyZWVWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRl
eHQzRCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRy
ZWVWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmll
d0ltcGwuaAppbmRleCAxYjEzYmYzNDU5MTMxODFiN2UwN2Q3ZDJiZTc4Njg4Y2Y5YzQ0M2JmLi5m
YmZhMDU0MDQyYWY0NzdiYzY3MGUzNWFhYjE4MmI0NWQ1ZDVmZjQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKQEAgLTQyLDcgKzQy
LDcgQEAgcHJpdmF0ZToKICAgICBXZWJMYXllclRyZWVWaWV3SW1wbChXZWJMYXllclRyZWVWaWV3
Q2xpZW50KiwgY29uc3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNl
dHRpbmdzJik7CiAgICAgdmlydHVhbCB+V2ViTGF5ZXJUcmVlVmlld0ltcGwoKTsKICAgICB2aXJ0
dWFsIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpOwotICAgIHZp
cnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgZmxvYXQpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRDb21taXRBbmREcmF3RnJhbWUoaW50IGZyYW1lTnVtYmVyKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA0OGZiM2UwYTk4ZjNhYjJhYzE1NDE1
YjA1NzVlZmFhMzA0MDBhMDgzLi5jMjNjZWJhM2FmOGU2YmU4YjQyMTA2Y2M3MzdlYTcxZjRhZDY0
NWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0x
ODc1LDYgKzE4NzUsMjMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZW5hYmxlRml4ZWRMYXlvdXRNb2Rl
KGJvb2wgZW5hYmxlKQogICAgICAgICByZXR1cm47CiAKICAgICBmcmFtZS0+dmlldygpLT5zZXRV
c2VGaXhlZExheW91dChlbmFibGUpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQorICAgIC8vIEFsc28gbm90aWZ5IHRoZSBiYXNlIGxheWVyLCB3aGljaCBSZW5kZXJMYXllckNv
bXBvc2l0b3IgZG9lcyBub3Qgc2VlLgorICAgIGlmIChtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9z
dCkgeworICAgICAgICBHcmFwaGljc0xheWVyKiByb290ID0gbV9ub25Db21wb3NpdGVkQ29udGVu
dEhvc3QtPnRvcExldmVsUm9vdExheWVyKCk7CisgICAgICAgIHJvb3QtPmRldmljZU9yUGFnZVNj
YWxlRmFjdG9yQ2hhbmdlZCgpOworICAgIH0KKworICAgIHVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0
KCk7CisjZW5kaWYKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0U2NhbGVMaW1pdHMoZmxvYXQg
bWluU2NhbGUsIGZsb2F0IG1heFNjYWxlKQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFNjYWxlTGltaXRzKG1pblNjYWxlLCBtYXhT
Y2FsZSk7CisjZW5kaWYKIH0KIAogV2ViU2l6ZSBXZWJWaWV3SW1wbDo6Zml4ZWRMYXlvdXRTaXpl
KCkgY29uc3QKQEAgLTI2NjQsMTIgKzI2ODEsMzAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YW5pbWF0
ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpCiAgICAgbGF5b3V0KCk7CiB9CiAKLXZv
aWQgV2ViVmlld0ltcGw6OmFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCit2b2lkIFdlYlZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUm
IHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3RvcikKIHsKICAgICBpZiAoIW1haW5GcmFtZUlt
cGwoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKS0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEp
OworICAgIGZsb2F0IG9sZFNjYWxlID0gcGFnZVNjYWxlRmFjdG9yKCk7CisgICAgaWYgKCFvbGRT
Y2FsZSkKKyAgICAgICAgb2xkU2NhbGUgPSAxLjBmOworCisgICAgaWYgKCFzY2FsZUZhY3RvciB8
fCBvbGRTY2FsZSA9PSBzY2FsZUZhY3RvcikKKyAgICAgICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFt
ZVZpZXcoKS0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEpOworICAgIGVsc2UgeworICAgICAgICAvLyBU
aGUgcGFnZSBzY2FsZSBjaGFuZ2VkLCBzbyBhcHBseSBhIHNjYWxlIGFuZCBzY3JvbGwgaW4gYSBz
aW5nbGUKKyAgICAgICAgLy8gb3BlcmF0aW9uLiBUaGUgb2xkIHNjcm9sbCBvZmZzZXQgKGFuZCBw
YXNzZWQtaW4gZGVsdGEpIGFyZQorICAgICAgICAvLyBpbiB0aGUgb2xkIGNvb3JkaW5hdGUgc3Bh
Y2UsIHNvIHdlIGZpcnN0IG5lZWQgdG8gbXVsdGlwbHkgdGhlbQorICAgICAgICAvLyBieSB0aGUg
cGFnZSBzY2FsZSBkZWx0YS4KKyAgICAgICAgV2ViU2l6ZSBzY3JvbGxPZmZzZXQgPSBtYWluRnJh
bWUoKS0+c2Nyb2xsT2Zmc2V0KCk7CisgICAgICAgIHNjcm9sbE9mZnNldC53aWR0aCArPSBzY3Jv
bGxEZWx0YS53aWR0aCgpOworICAgICAgICBzY3JvbGxPZmZzZXQuaGVpZ2h0ICs9IHNjcm9sbERl
bHRhLmhlaWdodCgpOworICAgICAgICBmbG9hdCBzY2FsZURlbHRhID0gc2NhbGVGYWN0b3IgLyBv
bGRTY2FsZTsKKyAgICAgICAgV2ViUG9pbnQgc2NhbGVkU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNl
dC53aWR0aCAqIHNjYWxlRGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzY3JvbGxPZmZzZXQuaGVpZ2h0ICogc2NhbGVEZWx0YSk7CisgICAgICAgIHNjYWxlUGFnZShz
Y2FsZUZhY3Rvciwgc2NhbGVkU2Nyb2xsT2Zmc2V0KTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViVmll
d0ltcGw6OmRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpCkBAIC0yNzExLDgg
KzI3NDYsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVMYXllclRyZWVWaWV3cG9ydCgpCiAg
ICAgSW50UmVjdCB2aXNpYmxlUmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCh0cnVlIC8q
IGluY2x1ZGUgc2Nyb2xsYmFycyAqLyk7CiAgICAgSW50UG9pbnQgc2Nyb2xsKHZpZXctPnNjcm9s
bFgoKSwgdmlldy0+c2Nyb2xsWSgpKTsKIAotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
LT5zZXRWaWV3cG9ydCh2aXNpYmxlUmVjdC5zaXplKCksIHZpZXctPmNvbnRlbnRzU2l6ZSgpLCBz
Y3JvbGwpOworICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LT5zZXRWaWV3cG9ydCh2aXNp
YmxlUmVjdC5zaXplKCksIHZpZXctPmNvbnRlbnRzU2l6ZSgpLCBzY3JvbGwsIHBhZ2VTY2FsZUZh
Y3RvcigpKTsKICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0KHZpc2libGVSZWN0LnNp
emUoKSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRQYWdlU2NhbGUocGFnZVNjYWxlRmFjdG9y
KCkpOwogfQogCiBXZWJHcmFwaGljc0NvbnRleHQzRCogV2ViVmlld0ltcGw6OmdyYXBoaWNzQ29u
dGV4dDNEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDk5
MTFhNWY4YWMwZWRiOTg5MzE4ZWFjMTEyYTI1ZTU3MGQ2OWUxYmYuLmNlOGQ2NmQ5ZmI0OWNiNTY3
YzkyYjk3MTA5NjkxMWEyYjUyZThhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaApAQCAtMTU5LDYgKzE1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZG91YmxlIG1heGltdW1ab29tTGV2ZWwpOwogICAgIHZpcnR1YWwg
ZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNjYWxlUGFn
ZShmbG9hdCBzY2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2NhbGVMaW1pdHMoZmxvYXQgbWluU2NhbGUsIGZsb2F0IG1heFNjYWxlKTsKICAgICB2aXJ0
dWFsIGJvb2wgaXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIGVuYWJsZUZpeGVkTGF5b3V0TW9kZShib29sIGVuYWJsZSk7CiAgICAgdmlydHVhbCBXZWJT
aXplIGZpeGVkTGF5b3V0U2l6ZSgpIGNvbnN0OwpAQCAtMjE4LDcgKzIxOSw3IEBAIHB1YmxpYzoK
IAogICAgIC8vIENDTGF5ZXJUcmVlSG9zdENsaWVudAogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRl
QW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5
U2Nyb2xsRGVsdGEoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZpcnR1YWwgdm9pZCBh
cHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCk7CiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXll
clRyZWVIb3N0Q29udGV4dDNEKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdG
cmFtZShpbnQgZnJhbWVOdW1iZXIpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUdyYXBo
aWNzQ29udGV4dChib29sIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcAppbmRleCBmYTVjNzBjYmYx
YjQzMzk4YTEwMjMxMjFlMTc1YTUwMzI1YWM4YTM2Li5hNzE5ODMwOTBiYjQ4N2NiNzcxYmQzYWUw
NjJkMTYzNzU5MjcxMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcApAQCAtNTksMTQgKzU5LDE0IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUobGF5
ZXItPmNoaWxkcmVuKClbaV0uZ2V0KCkpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIGV4cGVj
dENvbnRhaW5zKGNvbnN0IENDU2Nyb2xsVXBkYXRlU2V0JiBzY3JvbGxJbmZvLCBpbnQgaWQsIGNv
bnN0IEludFNpemUmIHNjcm9sbERlbHRhKQorICAgIHN0YXRpYyB2b2lkIGV4cGVjdENvbnRhaW5z
KGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmIHNjcm9sbEluZm8sIGludCBpZCwgY29uc3QgSW50
U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgewogICAgICAgICBpbnQgdGltZXNFbmNvdW50ZXJlZCA9
IDA7CiAKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzY3JvbGxJbmZvLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xsSW5mb1tpXS5sYXllcklkICE9IGlkKQorICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNjcm9sbEluZm8uc2Nyb2xscy5zaXplKCk7ICsr
aSkgeworICAgICAgICAgICAgaWYgKHNjcm9sbEluZm8uc2Nyb2xsc1tpXS5sYXllcklkICE9IGlk
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgQVNTRVJUX0VRKHNjcm9s
bEluZm9baV0uc2Nyb2xsRGVsdGEsIHNjcm9sbERlbHRhKTsKKyAgICAgICAgICAgIEFTU0VSVF9F
UShzY3JvbGxJbmZvLnNjcm9sbHNbaV0uc2Nyb2xsRGVsdGEsIHNjcm9sbERlbHRhKTsKICAgICAg
ICAgICAgIHRpbWVzRW5jb3VudGVyZWQrKzsKICAgICAgICAgfQogCkBAIC04NCw4ICs4NCw4IEBA
IFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFOb0xheWVycykKIHsK
ICAgICBBU1NFUlRfRkFMU0UobV9ob3N0SW1wbC0+cm9vdExheWVyKCkpOwogCi0gICAgT3duUHRy
PENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9s
bERlbHRhcygpOwotICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsKKyAgICBP
d25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nl
c3NTY3JvbGxEZWx0YXMoKTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXpl
KCksIDB1KTsKIH0KIAogVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0
YVRyZWVCdXROb0NoYW5nZXMpCkBAIC0xMDAsMTQgKzEwMCwxNCBAQCBURVNUX0YoQ0NMYXllclRy
ZWVIb3N0SW1wbFRlc3QsIHNjcm9sbERlbHRhVHJlZUJ1dE5vQ2hhbmdlcykKIAogICAgIGV4cGVj
dENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUocm9vdC5nZXQoKSk7CiAKLSAgICBPd25QdHI8
Q0NTY3JvbGxVcGRhdGVTZXQ+IHNjcm9sbEluZm87CisgICAgT3duUHRyPENDU2Nyb2xsQW5kU2Nh
bGVTZXQ+IHNjcm9sbEluZm87CiAKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vz
c1Njcm9sbERlbHRhcygpOwotICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsK
KyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDB1KTsKICAgICBleHBl
Y3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogCiAgICAgc2Nyb2xs
SW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEo
c2Nyb2xsSW5mby0+c2l6ZSgpLCAwdSk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9s
bHMuc2l6ZSgpLCAwdSk7CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShy
b290LmdldCgpKTsKIH0KIApAQCAtMTIxLDExICsxMjEsMTEgQEAgVEVTVF9GKENDTGF5ZXJUcmVl
SG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICByb290LT5zY3Jv
bGxCeShzY3JvbGxEZWx0YSk7CiAgICAgbV9ob3N0SW1wbC0+c2V0Um9vdExheWVyKHJvb3QpOwog
Ci0gICAgT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvOworICAgIE93blB0cjxD
Q1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9z
dEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKICAgICBBU1NFUlRfRVEocm9vdC0+c2Nyb2xs
UG9zaXRpb24oKSwgc2Nyb2xsUG9zaXRpb24gKyBzY3JvbGxEZWx0YSk7Ci0gICAgQVNTRVJUX0VR
KHNjcm9sbEluZm8tPnNpemUoKSwgMXUpOworICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3Jv
bGxzLnNpemUoKSwgMXUpOwogICAgIGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLmdldCgpLCBy
b290LT5pZCgpLCBzY3JvbGxEZWx0YSk7CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1Jl
Y3Vyc2l2ZShyb290LmdldCgpKTsKIApAQCAtMTMzLDE0ICsxMzMsMTQgQEAgVEVTVF9GKENDTGF5
ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICByb290
LT5zY3JvbGxCeShzY3JvbGxEZWx0YTIpOwogICAgIHNjcm9sbEluZm8gPSBtX2hvc3RJbXBsLT5w
cm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAgICAgQVNTRVJUX0VRKHJvb3QtPnNjcm9sbFBvc2l0aW9u
KCksIHNjcm9sbFBvc2l0aW9uICsgc2Nyb2xsRGVsdGEgKyBzY3JvbGxEZWx0YTIpOwotICAgIEFT
U0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDF1KTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5m
by0+c2Nyb2xscy5zaXplKCksIDF1KTsKICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5n
ZXQoKSwgcm9vdC0+aWQoKSwgc2Nyb2xsRGVsdGEyKTsKICAgICBleHBlY3RDbGVhcmVkU2Nyb2xs
RGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogCiAgICAgcm9vdC0+c2Nyb2xsQnkoSW50U2l6
ZSgpKTsKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygp
OwogICAgIEFTU0VSVF9FUShyb290LT5zY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxQb3NpdGlvbiAr
IHNjcm9sbERlbHRhICsgc2Nyb2xsRGVsdGEyKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+
c2l6ZSgpLCAwdSk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAw
dSk7CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJl
ZUhvc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVI
b3N0VGVzdC5jcHAKaW5kZXggZjNmMDQ4MmY2YjRkYWZmYjBmZjliODVmNmE2ZmFjZmQ0NjM3Yjcy
YS4uZjk2Nzk4Y2Q3NmM2ODMzMjM5MGE5MWNmMDkzYzczNmFmNzNiYjVhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5Db21taXRPbkND
VGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0
Q29tcGxldGVPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZHJhd0xheWVyc09uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiwgZmxvYXQpIHsg
fQogfTsKIAogLy8gQWRhcHRzIENDTGF5ZXJUcmVlSG9zdEltcGwgZm9yIHRlc3QuIFJ1bnMgcmVh
bCBjb2RlLCB0aGVuIGludm9rZXMgdGVzdCBob29rcy4KQEAgLTE1Miw5ICsxNTIsOSBAQCBwdWJs
aWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNv
bnN0IEludFNpemUmIHNjcm9sbERlbHRhKQorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFu
ZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZSkKICAgICB7Ci0g
ICAgICAgIG1fdGVzdEhvb2tzLT5hcHBseVNjcm9sbERlbHRhKHNjcm9sbERlbHRhKTsKKyAgICAg
ICAgbV90ZXN0SG9va3MtPmFwcGx5U2Nyb2xsQW5kU2NhbGUoc2Nyb2xsRGVsdGEsIHNjYWxlKTsK
ICAgICB9CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0
ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQpAQCAtNjIzLDcgKzYyMyw2IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBiZWdpblRlc3QoKQogICAgIHsKLSAgICAgICAgbV9sYXllclRyZWVI
b3N0LT5yb290TGF5ZXIoKS0+c2V0TWF4U2Nyb2xsUG9zaXRpb24oSW50U2l6ZSgxMDAsIDEwMCkp
OwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlv
bihtX2luaXRpYWxTY3JvbGwpOwogICAgICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJl
YWQoKTsKICAgICB9CkBAIC02NDYsNiArNjQ1LDcgQEAgcHVibGljOgogICAgICAgICBDQ0xheWVy
SW1wbCogcm9vdCA9IGltcGwtPnJvb3RMYXllcigpOwogICAgICAgICBFWFBFQ1RfRVEocm9vdC0+
c2Nyb2xsRGVsdGEoKSwgSW50U2l6ZSgpKTsKIAorICAgICAgICByb290LT5zZXRNYXhTY3JvbGxQ
b3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CiAgICAgICAgIHJvb3QtPnNjcm9sbEJ5KG1fc2Ny
b2xsQW1vdW50KTsKIAogICAgICAgICBpZiAoaW1wbC0+ZnJhbWVOdW1iZXIoKSA9PSAxKSB7CkBA
IC02NTksNyArNjU5LDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdmlydHVh
bCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCisgICAg
dmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGZsb2F0IHNjYWxlKQogICAgIHsKICAgICAgICAgSW50UG9pbnQgcG9zaXRpb24gPSBtX2xh
eWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICBtX2xh
eWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiArIHNj
cm9sbERlbHRhKTsKQEAgLTY5Myw3ICs2OTMsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgYmVnaW5UZXN0KCkKICAgICB7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVy
KCktPnNldE1heFNjcm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDApKTsKICAgICAgICAgbV9s
YXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24obV9pbml0aWFsU2Ny
b2xsKTsKICAgICAgICAgcG9zdFNldE5lZWRzQ29tbWl0VG9NYWluVGhyZWFkKCk7CiAgICAgfQpA
QCAtNzEyLDYgKzcxMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVyc09u
Q0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaW1wbCkKICAgICB7CiAgICAgICAgIENDTGF5
ZXJJbXBsKiByb290ID0gaW1wbC0+cm9vdExheWVyKCk7CisgICAgICAgIHJvb3QtPnNldE1heFNj
cm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDApKTsKIAogICAgICAgICBpZiAoaW1wbC0+ZnJh
bWVOdW1iZXIoKSA9PSAxKSB7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocm9vdC0+c2Nyb2xsRGVs
dGEoKSwgSW50U2l6ZSgpKTsKQEAgLTczNCw3ICs3MzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSkKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25z
dCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgc2NhbGUpCiAgICAgewogICAgICAgICBJbnRQ
b2ludCBwb3NpdGlvbiA9IG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNjcm9sbFBvc2l0
aW9uKCk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldFNjcm9sbFBv
c2l0aW9uKHBvc2l0aW9uICsgc2Nyb2xsRGVsdGEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113742</attachid>
            <date>2011-11-04 17:52:34 -0700</date>
            <delta_ts>2011-11-06 14:33:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71595-20111104175233.patch</filename>
            <type>text/plain</type>
            <size>47444</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZjI0NzczMTkzNDk2M2Vh
ZGNkZTA2ZjMwMjMwMDlmOGE4NzQxYmJmLi5iY2NmNmFhYTM1MmUzMDkzNDg1Y2FlZWQ5NTI5ZTZj
OWE5OWM4Yjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMTEtMDQgIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OmRldmlj
ZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ckNocm9taXVtOjpMYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21p
dW06OnNldEJvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwdXNoUHJv
cGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNo
cm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwYWdlU2NhbGVDaGFu
Z2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpk
cmF3TGF5ZXJzSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpzZXRQYWdlTWFnbmlmeVRyYW5zZm9ybSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6ZmluaXNoQ29tbWl0T25J
bXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNj
YWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0U2NhbGVMaW1pdHMp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFuZFNjYWxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6cGFnZVNjYWxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21t
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OkND
TGF5ZXJUcmVlSG9zdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6Y29tbWl0Q29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6c2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6
c2V0UGFnZVNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNl
dFNjYWxlRGVsdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6c2V0
U2NhbGVMaW1pdHMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6dXBk
YXRlTWF4U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0
SW1wbDo6cGluY2hHZXN0dXJlQmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVI
b3N0SW1wbDo6cGluY2hHZXN0dXJlVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
VHJlZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmg6CisgICAgICAgIChXZWJD
b3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwYWdlU2NhbGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Y3JlYXRlQmVnaW5GcmFtZUFuZENvbW1pdFRhc2tP
bkltcGxUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6YmVnaW5GcmFt
ZUFuZENvbW1pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aHJlYWRQcm94eS5oOgorCiAyMDExLTExLTA0ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ01ha2UgYnVpbGQgZml4IGZvciAhRU5B
QkxFKFNRTF9EQVRBQkFTRSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDFkODk3NzM0
NzQzYzBiMmQ0NGUwMjBlMWJiZTUxZmFlNTgwN2RhM2EuLjZiNjA3YTkzNWIxMzRlMjNlMjYzZTc3
NzMyZmJjNjE3NTVhNjg3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzYgQEAKKzIwMTEtMTEtMDQgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgor
CisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3Np
dG9yIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzE1OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHB1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50Lmg6CisgICAgICAgICogcHVibGljL1dl
YlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb21wb3NpdG9ySW1wbDo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAgICAgICog
c3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0ltcGw6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAqIHNyYy9XZWJMYXll
clRyZWVWaWV3SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjplbmFibGVGaXhlZExheW91dE1vZGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2NhbGVMaW1pdHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVMYXllclRyZWVWaWV3cG9ydCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdDo6ZXhwZWN0Q29udGFpbnMpOgor
ICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9z
dFRlc3QuY3BwOgorICAgICAgICAoV1RGOjpUZXN0SG9va3M6OmFwcGx5U2Nyb2xsQW5kU2NhbGUp
OgorICAgICAgICAoV1RGOjpNb2NrTGF5ZXJUcmVlSG9zdENsaWVudDo6YXBwbHlTY3JvbGxBbmRT
Y2FsZSk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6OmJl
Z2luVGVzdCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6
OmRyYXdMYXllcnNPbkNDVGhyZWFkKToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVz
dFNjcm9sbFNpbXBsZTo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXVEY6OkNDTGF5
ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0aXBsZVJlZHJhdzo6YmVnaW5UZXN0KToKKyAgICAgICAg
KFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdFNjcm9sbE11bHRpcGxlUmVkcmF3OjpkcmF3TGF5ZXJz
T25DQ1RocmVhZCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0
aXBsZVJlZHJhdzo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisKIDIwMTEtMTEtMDIgIFhpYW9tZWkg
SmkgIDx4amlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVuYWJsZSBjdHJsLWFycm93IG1vdmUg
Y3Vyc29yIGJ5IHdvcmQgaW4gdmlzdWFsIG9yZGVyIGluIGNyLXdpbiBieSBjb21tYW5kIGxpbmUg
ZmxhZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDcyOWE5YWNk
ZWNjNDhlZjA5OWMyZTViOWMzNzYwNTk0ZDBjNmIxN2UuLjE1NmIyZTkwZWY0NWU2OTAwNzgyZWE1
OTQ4MDhiNmFkODJlM2ZiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNw
cApAQCAtNjcwLDYgKzY3MCwxMiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRl
T3BhY2l0eU9uTGF5ZXIoKQogICAgIHByaW1hcnlMYXllcigpLT5zZXRPcGFjaXR5KG1fb3BhY2l0
eSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpkZXZpY2VPclBhZ2VTY2FsZUZh
Y3RvckNoYW5nZWQoKQoreworICAgIGlmIChtX2xheWVyKQorICAgICAgICBtX2xheWVyLT5wYWdl
U2NhbGVDaGFuZ2VkKCk7Cit9CisKIGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVtOjpkcmF3c0Nv
bnRlbnQoKSBjb25zdAogewogICAgIHJldHVybiBHcmFwaGljc0xheWVyOjpkcmF3c0NvbnRlbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKaW5kZXggNzE5MGU1MDU5ZmM1NjE2
NDk2OTY5MDQ5NDNhNWU3NWM1MzdjNTM3ZS4uZjczZTczMzczOWJhMTZhNTIyMTFiMzExZTI2OWM1
MzZiY2FiYTcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKQEAgLTEwMCw2
ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eVN5bmNSZXF1aXJlZCgpOwogCisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpOwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNmE2YTBlNzdjNDc0OTA5Y2EwMmI0NDgyZGZm
NjAxNjBhYTExY2Y0OC4uNzBkNTgxODhjMzgxZWIwMWM2ZmU5N2M5NDRhZTRmMzA5YmMxOWNlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTcyLDYgKzcyLDcgQEAgTGF5ZXJDaHJvbWl1bTo6
TGF5ZXJDaHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgICwgbV9yZXBsaWNh
TGF5ZXIoMCkKICAgICAsIG1fZHJhd09wYWNpdHkoMCkKICAgICAsIG1fdGFyZ2V0UmVuZGVyU3Vy
ZmFjZSgwKQorICAgICwgbV9wYWdlU2NhbGVEaXJ0eShmYWxzZSkKIHsKIH0KIApAQCAtMjEwLDEw
ICsyMTEsMTIgQEAgdm9pZCBMYXllckNocm9taXVtOjpzZXRCb3VuZHMoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKIAogICAgIG1fYm91bmRzID0gc2l6ZTsKIAotICAgIGlmIChmaXJzdFJlc2l6ZSkKKyAg
ICBpZiAoZmlyc3RSZXNpemUgfHwgbV9wYWdlU2NhbGVEaXJ0eSkKICAgICAgICAgc2V0TmVlZHNE
aXNwbGF5KEZsb2F0UmVjdCgwLCAwLCBib3VuZHMoKS53aWR0aCgpLCBib3VuZHMoKS5oZWlnaHQo
KSkpOwogICAgIGVsc2UKICAgICAgICAgc2V0TmVlZHNDb21taXQoKTsKKworICAgIG1fcGFnZVNj
YWxlRGlydHkgPSBmYWxzZTsKIH0KIAogY29uc3QgTGF5ZXJDaHJvbWl1bSogTGF5ZXJDaHJvbWl1
bTo6cm9vdExheWVyKCkgY29uc3QKQEAgLTI4Niw3ICsyODksNiBAQCB2b2lkIExheWVyQ2hyb21p
dW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqIGxheWVyKQogICAgIGxheWVyLT5zZXRE
cmF3c0NvbnRlbnQoZHJhd3NDb250ZW50KCkpOwogICAgIGxheWVyLT5zZXRJc05vbkNvbXBvc2l0
ZWRDb250ZW50KG1faXNOb25Db21wb3NpdGVkQ29udGVudCk7CiAgICAgbGF5ZXItPnNldE1hc2tz
VG9Cb3VuZHMobV9tYXNrc1RvQm91bmRzKTsKLSAgICBsYXllci0+c2V0TWF4U2Nyb2xsUG9zaXRp
b24obV9tYXhTY3JvbGxQb3NpdGlvbik7CiAgICAgbGF5ZXItPnNldE5hbWUobV9uYW1lKTsKICAg
ICBsYXllci0+c2V0T3BhcXVlKG1fb3BhcXVlKTsKICAgICBsYXllci0+c2V0T3BhY2l0eShtX29w
YWNpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGM3YWVjYmU1OGE3N2QzMThkZWU2NTVkNTk1
NDNmZmQwMTgwMzM2MWUuLjY5MjNjNzg1Y2NkYzE1Zjk5ZjI0OTEwN2Q0ZTY1ZTU2NTY1MWMzZjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmgKQEAgLTEzMSwxMyArMTMxLDggQEAgcHVibGljOgogICAgIGNv
bnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUG9z
aXRpb247IH0KICAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3Jv
bGxQb3NpdGlvbikgeyBtX3Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247IH0KIAotICAg
IGNvbnN0IEludFNpemUmIG1heFNjcm9sbFBvc2l0aW9uKCkgY29uc3Qge3JldHVybiBtX21heFNj
cm9sbFBvc2l0aW9uOyB9Ci0gICAgdm9pZCBzZXRNYXhTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRT
aXplJiBtYXhTY3JvbGxQb3NpdGlvbikgeyBtX21heFNjcm9sbFBvc2l0aW9uID0gbWF4U2Nyb2xs
UG9zaXRpb247IH0KLQogICAgIEludFNpemUgc2Nyb2xsRGVsdGEoKSBjb25zdCB7IHJldHVybiBJ
bnRTaXplKCk7IH0KIAotICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtYXhT
Y3JvbGxQb3NpdGlvbigpLmlzWmVybygpOyB9Ci0KICAgICBib29sIGRvdWJsZVNpZGVkKCkgY29u
c3QgeyByZXR1cm4gbV9kb3VibGVTaWRlZDsgfQogICAgIHZvaWQgc2V0RG91YmxlU2lkZWQoYm9v
bCBkb3VibGVTaWRlZCkgeyBtX2RvdWJsZVNpZGVkID0gZG91YmxlU2lkZWQ7IHNldE5lZWRzQ29t
bWl0KCk7IH0KIApAQCAtMTY0LDYgKzE1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SXNNYXNrKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250ZW50c1Rl
eHR1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZSgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwYWdlU2NhbGVDaGFuZ2VkKCkgeyBtX3BhZ2VTY2FsZURpcnR5ID0g
dHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpIHsg
fQogCiAgICAgLy8gVGhlc2UgZXhpc3QganVzdCBmb3IgZGVidWdnaW5nICh2aWEgZHJhd0RlYnVn
Qm9yZGVyKCkpLgpAQCAtMjUyLDcgKzI0OCw2IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX2Jv
dW5kczsKICAgICBJbnRSZWN0IG1fdmlzaWJsZUxheWVyUmVjdDsKICAgICBJbnRQb2ludCBtX3Nj
cm9sbFBvc2l0aW9uOwotICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlvbjsKICAgICBGbG9h
dFBvaW50IG1fcG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBtX2FuY2hvclBvaW50OwogICAgIENv
bG9yIG1fYmFja2dyb3VuZENvbG9yOwpAQCAtMjgzLDYgKzI3OCw4IEBAIHByaXZhdGU6CiAgICAg
SW50UmVjdCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7CiAKICAgICBTdHJpbmcgbV9uYW1lOworCisg
ICAgYm9vbCBtX3BhZ2VTY2FsZURpcnR5OwogfTsKIAogdm9pZCBzb3J0TGF5ZXJzKFZlY3RvcjxS
ZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJv
bWl1bT4gPjo6aXRlcmF0b3IsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uY3BwCmluZGV4IGJlZTI2ZTZjOTExYjQ5MTVkYWNjMTY2YjdlMjBjNzljODBkMDM2YzguLmZl
MzFlMGJkNWIyOGU1NjBmZWJhMTEwZDAwMTBiNjVmMDM4YmVmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgTGF5ZXJSZW5k
ZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzSW50ZXJuYWwoKQogCiAgICAgewogICAgICAgICBUUkFD
RV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzSW50ZXJuYWw6OmNhbGNE
cmF3RXRjIiwgdGhpcywgMCk7Ci0gICAgICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3Vs
YXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5
ZXIsIG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtLCBtX3pvb21BbmltYXRvclRyYW5zZm9ybSwgcmVu
ZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9kZWZhdWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCks
ICZtX2xheWVyU29ydGVyLCBtX2NhcGFiaWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CisgICAgICAg
IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmls
aXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5ZXIsIG1fcGFnZU1hZ25pZnlNYXRyaXgsIG1f
cGFnZU1hZ25pZnlNYXRyaXgsIHJlbmRlclN1cmZhY2VMYXllckxpc3QsIG1fZGVmYXVsdFJlbmRl
clN1cmZhY2UtPmxheWVyTGlzdCgpLCAmbV9sYXllclNvcnRlciwgbV9jYXBhYmlsaXRpZXMubWF4
VGV4dHVyZVNpemUpOwogICAgIH0KIAogICAgIC8vIFRoZSBHTCB2aWV3cG9ydCBjb3ZlcnMgdGhl
IGVudGlyZSB2aXNpYmxlIGFyZWEsIGluY2x1ZGluZyB0aGUgc2Nyb2xsYmFycy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmgKaW5kZXggNjQ2ZWE2ZTVjNDQ4YTU4YzYxMjQxMzQyYjBm
OWE2ZWFkZGFlZjQ0Ny4uYTVjZDdmN2YxOTViNDBiYjZkMjBkY2RjNTdkMDJjNjI4MTFiMDUxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCB2aWV3cG9ydENoYW5nZWQoKTsKIAorICAgIHZvaWQgc2V0UGFnZU1h
Z25pZnlUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpIHsgbV9wYWdlTWFn
bmlmeU1hdHJpeCA9IHQ7IH0KKwogICAgIHZvaWQgZHJhd0xheWVycygpOwogCiAgICAgLy8gd2Fp
dHMgZm9yIHJlbmRlcmluZyB0byBmaW5pc2gKQEAgLTE5NSw2ICsxOTcsNyBAQCBwcml2YXRlOgog
CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9wcm9qZWN0aW9uTWF0cml4OwogICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IG1fd2luZG93TWF0cml4OworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IG1fcGFnZU1hZ25pZnlNYXRyaXg7CiAKICAgICBDQ1JlbmRlclN1cmZhY2UqIG1fY3VycmVudFJl
bmRlclN1cmZhY2U7CiAgICAgdW5zaWduZWQgbV9vZmZzY3JlZW5GcmFtZWJ1ZmZlcklkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKaW5kZXggZmNjYjVmNmZkY2Mz
NDNmZTUzY2JlYzdjZGJlZjlkNzMzNDQ3YzdhZS4uOTdkMDNlZDFhNzFkYWFkOTg0NzczYjUzMTUw
MzJiNDc3NmZkMzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3Qu
Y3BwCkBAIC01OSwyMiArNTksMjAgQEAgdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNl
dFJvb3RMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikKICAgICAgICAgbV9ncmFwaGljc0xheWVy
LT5wbGF0Zm9ybUxheWVyKCktPnNldExheWVyVHJlZUhvc3QoMCk7CiB9CiAKLXZvaWQgTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNp
emUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBv
c2l0aW9uKQordm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplLCBjb25z
dCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGZsb2F0IHBhZ2VTY2FsZSkKIHsKICAgICBib29s
IHZpc2libGVSZWN0Q2hhbmdlZCA9IG1fdmlld3BvcnRTaXplICE9IHZpZXdwb3J0U2l6ZTsKIAog
ICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXplOwogICAgIG1fZ3JhcGhpY3NMYXllci0+
cGxhdGZvcm1MYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7Ci0gICAg
SW50U2l6ZSBtYXhTY3JvbGwgPSBjb250ZW50c1NpemUgLSB2aWV3cG9ydFNpemU7Ci0gICAgLy8g
VGhlIHZpZXdwb3J0IG1heSBiZSBsYXJnZXIgdGhhbiB0aGUgY29udGVudHMgaW4gc29tZSBjYXNl
cywgc3VjaCBhcwotICAgIC8vIGhhdmluZyBhIHZlcnRpY2FsIHNjcm9sbGJhciBidXQgbm8gaG9y
aXpvbnRhbCBvdmVyZmxvdy4KLSAgICBtYXhTY3JvbGwuY2xhbXBOZWdhdGl2ZVRvWmVybygpOwot
Ci0gICAgbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldE1heFNjcm9sbFBvc2l0
aW9uKG1heFNjcm9sbCk7CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaXplKGNvbnRlbnRzU2l6
ZSk7CiAKICAgICBpZiAodmlzaWJsZVJlY3RDaGFuZ2VkKQogICAgICAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldE5lZWRzRGlzcGxheSgpOworCisgICAgYm9vbCBwYWdlU2NhbGVDaGFuZ2VkID0gbV9n
cmFwaGljc0xheWVyLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSBwYWdlU2NhbGU7CisgICAgaWYgKHBh
Z2VTY2FsZUNoYW5nZWQpCisgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+ZGV2aWNlT3JQYWdlU2Nh
bGVGYWN0b3JDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojpw
cm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdC5oCmluZGV4IDg5YThmY2VjYTE1ZDBiMTk4YWQ5NzNhNTkwNTRmNzdkNmY2MzgzMjku
LmY1YmRiOTk5OWI2N2Y3NzQxZDdhOTdkOTQ0YmNjNzg4YzBlMTUwYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpOwogICAgIHZvaWQgc2V0Um9v
dExheWVyKEdyYXBoaWNzTGF5ZXIqKTsKLSAgICB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBJbnRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24pOworICAgIHZvaWQgc2V0Vmlld3BvcnQoY29uc3QgSW50U2l6
ZSYgdmlld3BvcnRTaXplLCBjb25zdCBJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgZmxvYXQgcGFnZVNjYWxlKTsKICAgICB2b2lkIHByb3RlY3RW
aXNpYmxlVGlsZVRleHR1cmVzKCk7CiAgICAgR3JhcGhpY3NMYXllciogdG9wTGV2ZWxSb290TGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIApAQCAtNzQsNCAr
NzQsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0X2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5kZXggYzMyZTEx
N2I3YjVmZDlhMWY5ZTA1MTllOWM4YTllYWY3Y2ZiNTMwZC4uNjNhNzRjOGZiMDFhZDdkY2ExYTg0
MjAyOTZmZDMzN2JiMGU2OTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC0yMTMsNyArMjEz
LDYgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIG1fYm91bmRzOwogICAgIEludFNpemUgbV9jb250
ZW50Qm91bmRzOwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247Ci0gICAgSW50U2l6ZSBt
X21heFNjcm9sbFBvc2l0aW9uOwogCiAgICAgLy8gV2hldGhlciB0aGUgImJhY2siIG9mIHRoaXMg
bGF5ZXIgc2hvdWxkIGRyYXcuCiAgICAgYm9vbCBtX2RvdWJsZVNpZGVkOwpAQCAtMjM1LDYgKzIz
NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RyYXdzQ29udGVudDsKIAogICAgIEludFNpemUg
bV9zY3JvbGxEZWx0YTsKKyAgICBJbnRTaXplIG1fbWF4U2Nyb2xsUG9zaXRpb247CiAKICAgICAv
LyBQcm9wZXJ0aWVzIG93bmVkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgQ0NMYXllckltcGwuCiAgICAg
Ly8gRGVidWdnaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMDQ2MWJk
ZjliN2MxOGUyNGE3ZTg5ZmM4OTc0YTNlYjZiNTlmMTI1YS4uYmMyYjJlOTA0ZDUxZjQwNTc5Y2Y4
ZTY2YzI3ZGUzOTNkYjI1NzRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBA
IC0xMzEsNiArMTMxLDggQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmZpbmlzaENvbW1pdE9uSW1w
bFRocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKiBob3N0SW1wbCkKICAgICBob3N0SW1wbC0+c2V0
SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMpOwogICAgIGhv
c3RJbXBsLT5zZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0obV96b29tQW5pbWF0b3JUcmFuc2Zvcm0p
OwogICAgIGhvc3RJbXBsLT5zZXRWaWV3cG9ydCh2aWV3cG9ydFNpemUoKSk7CisgICAgaG9zdElt
cGwtPnNldFBhZ2VTY2FsZShwYWdlU2NhbGUoKSk7CisgICAgaG9zdEltcGwtPnNldFNjYWxlTGlt
aXRzKG1fbWluU2NhbGUsIG1fbWF4U2NhbGUpOwogCiAgICAgLy8gU3luY2hyb25pemUgdHJlZXMs
IGlmIG9uZSBleGlzdHMgYXQgYWxsLi4uCiAgICAgaWYgKHJvb3RMYXllcigpKQpAQCAtMjI1LDYg
KzIyNywyNSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0Vmlld3BvcnQoY29uc3QgSW50U2l6
ZSYgdmlld3BvcnRTaXplKQogICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKK3ZvaWQgQ0NMYXll
clRyZWVIb3N0OjpzZXRQYWdlU2NhbGUoZmxvYXQgcGFnZVNjYWxlKQoreworICAgIGlmIChwYWdl
U2NhbGUgPT0gbV9wYWdlU2NhbGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZVNjYWxl
ID0gcGFnZVNjYWxlOworICAgIHNldE5lZWRzQ29tbWl0KCk7Cit9CisKK3ZvaWQgQ0NMYXllclRy
ZWVIb3N0OjpzZXRTY2FsZUxpbWl0cyhmbG9hdCBtaW5TY2FsZSwgZmxvYXQgbWF4U2NhbGUpCit7
CisgICAgaWYgKG1pblNjYWxlID09IG1fbWluU2NhbGUgJiYgbWF4U2NhbGUgPT0gbV9tYXhTY2Fs
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9taW5TY2FsZSA9IG1pblNjYWxlOworICAgIG1f
bWF4U2NhbGUgPSBtYXhTY2FsZTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCiB2b2lkIEND
TGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCiB7CiAgICAgaWYgKG1fdmlz
aWJsZSA9PSB2aXNpYmxlKQpAQCAtNDM4LDE1ICs0NTksMTUgQEAgdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OmNsZWFyUGVuZGluZ1VwZGF0ZSgpCiAgICAgbV91cGRhdGVMaXN0LmNsZWFyKCk7CiB9CiAK
LXZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbERlbHRhcyhjb25zdCBDQ1Njcm9sbFVw
ZGF0ZVNldCYgaW5mbykKK3ZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFuZFNjYWxl
KGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmIGluZm8pCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBpbmZvLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGludCBsYXllcklkID0gaW5mb1tp
XS5sYXllcklkOwotICAgICAgICBJbnRTaXplIHNjcm9sbERlbHRhID0gaW5mb1tpXS5zY3JvbGxE
ZWx0YTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluZm8uc2Nyb2xscy5zaXplKCk7ICsr
aSkgeworICAgICAgICBpbnQgbGF5ZXJJZCA9IGluZm8uc2Nyb2xsc1tpXS5sYXllcklkOworICAg
ICAgICBJbnRTaXplIHNjcm9sbERlbHRhID0gaW5mby5zY3JvbGxzW2ldLnNjcm9sbERlbHRhOwog
CiAgICAgICAgIC8vIEZJWE1FOiBwdXNoaW5nIHNjcm9sbCBvZmZzZXRzIHRvIG5vbi1yb290IGxh
eWVycyBub3QgaW1wbGVtZW50ZWQKICAgICAgICAgaWYgKHJvb3RMYXllcigpLT5pZCgpID09IGxh
eWVySWQpCi0gICAgICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxEZWx0YShzY3JvbGxEZWx0
YSk7CisgICAgICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxBbmRTY2FsZShzY3JvbGxEZWx0
YSwgaW5mby5wYWdlU2NhbGUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDJlMmQ4
ZmM2OWFmMDkyNmZhYjJlNWZkMDEwNGY1NjE0Mzc2YmI1NGQuLmIzYTliYTg1ZWNlYjUyZjQwNTYx
MjJmYjE2NzdhZjdlODg4YTBkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC01
NCw3ICs1NCw3IEBAIGNsYXNzIFRleHR1cmVNYW5hZ2VyOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0
Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3Vi
bGUgZnJhbWVCZWdpblRpbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0
YShjb25zdCBJbnRTaXplJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNj
YWxlKGNvbnN0IEludFNpemUmLCBmbG9hdCkgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1i
ZXIpID0gMDsKQEAgLTE1Nyw2ICsxNTcsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmlld3Bv
cnQoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKTsKIAogICAgIGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRTaXplOyB9CisKKyAgICB2b2lk
IHNldFBhZ2VTY2FsZShmbG9hdCk7CisgICAgZmxvYXQgcGFnZVNjYWxlKCkgY29uc3QgeyByZXR1
cm4gbV9wYWdlU2NhbGU7IH0KKworICAgIHZvaWQgc2V0U2NhbGVMaW1pdHMoZmxvYXQgbWluU2Nh
bGUsIGZsb2F0IG1heFNjYWxlKTsKKwogICAgIFRleHR1cmVNYW5hZ2VyKiBjb250ZW50c1RleHR1
cmVNYW5hZ2VyKCkgY29uc3Q7CiAKICAgICBib29sIHZpc2libGUoKSBjb25zdCB7IHJldHVybiBt
X3Zpc2libGU7IH0KQEAgLTE2Nyw3ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVM
YXllcnMoKTsKIAogICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhHcmFwaGljc0Nv
bnRleHQzRCosIENDVGV4dHVyZVVwZGF0ZXImKTsKLSAgICB2b2lkIGFwcGx5U2Nyb2xsRGVsdGFz
KGNvbnN0IENDU2Nyb2xsVXBkYXRlU2V0Jik7CisgICAgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxl
KGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmKTsKICAgICB2b2lkIHN0YXJ0UmF0ZUxpbWl0ZXIo
R3JhcGhpY3NDb250ZXh0M0QqKTsKICAgICB2b2lkIHN0b3BSYXRlTGltaXRlcihHcmFwaGljc0Nv
bnRleHQzRCopOwogCkBAIC0yMDgsNiArMjE0LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGF2
ZVdoZWVsRXZlbnRIYW5kbGVyczsKICAgICB0eXBlZGVmIEhhc2hNYXA8R3JhcGhpY3NDb250ZXh0
M0QqLCBSZWZQdHI8UmF0ZUxpbWl0ZXI+ID4gUmF0ZUxpbWl0ZXJNYXA7CiAgICAgUmF0ZUxpbWl0
ZXJNYXAgbV9yYXRlTGltaXRlcnM7CisKKyAgICBmbG9hdCBtX3BhZ2VTY2FsZTsKKyAgICBmbG9h
dCBtX21pblNjYWxlLCBtX21heFNjYWxlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RDb21tb24uaAppbmRleCBlNGQ0OTYzNzQxOGI3OWIzMGVjMGMzMGQxZmIwZjNiZGEy
MTYzNTVhLi40MmMxZjA2MDI3ODA4ZWEwMTMyYTlhYjVmNWNhYWI3MTZhYjg3ODAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RDb21tb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaApAQCAtNTEsNyArNTEsMTAgQEAgcHVi
bGljOgogICAgIH07CiB9OwogCi10eXBlZGVmIFZlY3RvcjxDQ0xheWVyVHJlZUhvc3RDb21tb246
OlNjcm9sbFVwZGF0ZUluZm8+IENDU2Nyb2xsVXBkYXRlU2V0Oworc3RydWN0IENDU2Nyb2xsQW5k
U2NhbGVTZXQgeworICAgIFZlY3RvcjxDQ0xheWVyVHJlZUhvc3RDb21tb246OlNjcm9sbFVwZGF0
ZUluZm8+IHNjcm9sbHM7CisgICAgZmxvYXQgcGFnZVNjYWxlOworfTsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgTGF5ZXJUeXBlPgogSW50UmVjdCBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0
ZVZpc2libGVMYXllclJlY3QoTGF5ZXJUeXBlKiBsYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0SW1wbC5jcHAKaW5kZXggNTFkOTJmNTAyYmRhOTAxZWNiYTE2NTBlMWExMzBlNzk4
NDA4MDNiYi4uYjAwOTZiMWI2NzlmNzJmMzg0OThkZDNlMjNmMzY3ZWE5YjFkODRjMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKQEAgLTUwLDYgKzUwLDExIEBAIEND
TGF5ZXJUcmVlSG9zdEltcGw6OkNDTGF5ZXJUcmVlSG9zdEltcGwoY29uc3QgQ0NTZXR0aW5ncyYg
c2V0dGluZ3MsIENDTGF5ZXJUcmVlCiAgICAgLCBtX3NldHRpbmdzKHNldHRpbmdzKQogICAgICwg
bV92aXNpYmxlKHRydWUpCiAgICAgLCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMoZmFsc2UpCisg
ICAgLCBtX3BhZ2VTY2FsZSgxKQorICAgICwgbV9zY2FsZURlbHRhKDEpCisgICAgLCBtX21pblNj
YWxlKDApCisgICAgLCBtX21heFNjYWxlKDApCisgICAgLCBtX3BpbmNoR2VzdHVyZUFjdGl2ZShm
YWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwogfQpAQCAtNjgs
NiArNzMsOSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmJlZ2luQ29tbWl0KCkKIAogdm9p
ZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21taXRDb21wbGV0ZSgpCiB7CisgICAgLy8gUmVjb21w
dXRlIG1heCBzY3JvbGwgcG9zaXRpb247IG11c3QgYmUgYWZ0ZXIgbGF5ZXIgY29udGVudCBib3Vu
ZHMgYXJlCisgICAgLy8gdXBkYXRlZC4KKyAgICB1cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpOwog
fQogCiBHcmFwaGljc0NvbnRleHQzRCogQ0NMYXllclRyZWVIb3N0SW1wbDo6Y29udGV4dCgpCkBA
IC0xNjIsOCArMTcwLDc1IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0Vmlld3BvcnQo
Y29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKQogewogICAgIGJvb2wgY2hhbmdlZCA9IHZpZXdw
b3J0U2l6ZSAhPSBtX3ZpZXdwb3J0U2l6ZTsKICAgICBtX3ZpZXdwb3J0U2l6ZSA9IHZpZXdwb3J0
U2l6ZTsKLSAgICBpZiAoY2hhbmdlZCkKKyAgICBpZiAoY2hhbmdlZCkgeworICAgICAgICB1cGRh
dGVNYXhTY3JvbGxQb3NpdGlvbigpOwogICAgICAgICBtX2xheWVyUmVuZGVyZXItPnZpZXdwb3J0
Q2hhbmdlZCgpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRQYWdl
U2NhbGUoZmxvYXQgcGFnZVNjYWxlKQoreworICAgIC8vIE1haW50YWluIGNvbnN0YW50IHRoZSBw
cm9kdWN0IG9mIG1fcGFnZVNjYWxlICogbV9zY2FsZURlbHRhLgorICAgIGZsb2F0IHNjYWxlQ2hh
bmdlID0gcGFnZVNjYWxlIC8gbV9wYWdlU2NhbGU7CisgICAgZmxvYXQgb2xkTWFnbmlmeVNjYWxl
ID0gbV9wYWdlU2NhbGUgKiBtX3NjYWxlRGVsdGE7CisgICAgbV9wYWdlU2NhbGUgPSBwYWdlU2Nh
bGU7CisKKyAgICBzZXRTY2FsZURlbHRhKG9sZE1hZ25pZnlTY2FsZSAvIHBhZ2VTY2FsZSk7CisK
KyAgICAvLyBXZSBhbHNvIG5lZWQgdG8gY29udmVydCBpbXBsLXNpZGUgc2Nyb2xsIGRlbHRhcyB0
byBwYWdlU2NhbGUgc3BhY2UuCisgICAgaWYgKG1fcm9vdExheWVySW1wbCAmJiBtX3Jvb3RMYXll
ckltcGwtPnNjcm9sbGFibGUoKSkgeworICAgICAgICBJbnRTaXplIHNjcm9sbERlbHRhID0gbV9y
b290TGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpOworICAgICAgICBzY3JvbGxEZWx0YS5zY2FsZShz
Y2FsZUNoYW5nZSk7CisgICAgICAgIG1fcm9vdExheWVySW1wbC0+c2V0U2Nyb2xsRGVsdGEoc2Ny
b2xsRGVsdGEpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRTY2Fs
ZURlbHRhKGZsb2F0IGRlbHRhKQoreworICAgIC8vIENsYW1wIHRvIHRoZSBjdXJyZW50IG1pbi9t
YXggbGltaXRzLgorICAgIGZsb2F0IGZpbmFsTWFnbmlmeVNjYWxlID0gbV9wYWdlU2NhbGUgKiBk
ZWx0YTsKKyAgICBpZiAobV9taW5TY2FsZSAmJiBmaW5hbE1hZ25pZnlTY2FsZSA8IG1fbWluU2Nh
bGUpCisgICAgICAgIGRlbHRhID0gbV9taW5TY2FsZSAvIG1fcGFnZVNjYWxlOworICAgIGVsc2Ug
aWYgKG1fbWF4U2NhbGUgJiYgZmluYWxNYWduaWZ5U2NhbGUgPiBtX21heFNjYWxlKQorICAgICAg
ICBkZWx0YSA9IG1fbWF4U2NhbGUgLyBtX3BhZ2VTY2FsZTsKKworICAgIGJvb2wgY2hhbmdlZCA9
IGRlbHRhICE9IG1fc2NhbGVEZWx0YTsKKyAgICBtX3NjYWxlRGVsdGEgPSBkZWx0YTsKKworICAg
IGlmIChjaGFuZ2VkKSB7CisgICAgICAgIHVwZGF0ZU1heFNjcm9sbFBvc2l0aW9uKCk7CisKKyAg
ICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggZGVsdGFNYXRyaXg7CisgICAgICAgIGRlbHRhTWF0
cml4LnNjYWxlKG1fc2NhbGVEZWx0YSk7CisgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+c2V0UGFn
ZU1hZ25pZnlUcmFuc2Zvcm0oZGVsdGFNYXRyaXgpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVy
VHJlZUhvc3RJbXBsOjpzZXRTY2FsZUxpbWl0cyhmbG9hdCBtaW5TY2FsZSwgZmxvYXQgbWF4U2Nh
bGUpCit7CisgICAgbV9taW5TY2FsZSA9IG1pblNjYWxlOworICAgIG1fbWF4U2NhbGUgPSBtYXhT
Y2FsZTsKKworICAgIC8vIFRoaXMgd2lsbCBjbGFtcCBtX3NjYWxlRGVsdGEgYW5kIGFwcGx5IHNp
ZGUgZWZmZWN0cyBpZiBjbGFtcGVkLgorICAgIHNldFNjYWxlRGVsdGEobV9zY2FsZURlbHRhKTsK
K30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjp1cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigp
Cit7CisgICAgaWYgKCFtX3Jvb3RMYXllckltcGwpCisgICAgICAgIHJldHVybjsKKworICAgIEZs
b2F0U2l6ZSB2aWV3Qm91bmRzID0gbV92aWV3cG9ydFNpemU7CisgICAgdmlld0JvdW5kcy5zY2Fs
ZSgxIC8gbV9zY2FsZURlbHRhKTsKKworICAgIEludFNpemUgbWF4U2Nyb2xsID0gbV9yb290TGF5
ZXJJbXBsLT5jb250ZW50Qm91bmRzKCkgLSBleHBhbmRlZEludFNpemUodmlld0JvdW5kcyk7Cisg
ICAgLy8gVGhlIHZpZXdwb3J0IG1heSBiZSBsYXJnZXIgdGhhbiB0aGUgY29udGVudHMgaW4gc29t
ZSBjYXNlcywgc3VjaCBhcworICAgIC8vIGhhdmluZyBhIHZlcnRpY2FsIHNjcm9sbGJhciBidXQg
bm8gaG9yaXpvbnRhbCBvdmVyZmxvdy4KKyAgICBtYXhTY3JvbGwuY2xhbXBOZWdhdGl2ZVRvWmVy
bygpOworCisgICAgbV9yb290TGF5ZXJJbXBsLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtYXhTY3Jv
bGwpOworCisgICAgLy8gVE9ETyhhZWxpYXMpOiBBbHNvIHVwZGF0ZSBzdWJsYXllcnMuCiB9CiAK
IHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB6b29tKQpAQCAtMTg3LDE5ICsyNjIsNjAgQEAgYm9vbCBD
Q0xheWVyVHJlZUhvc3RJbXBsOjpoYXZlV2hlZWxFdmVudEhhbmRsZXJzKCkKICAgICByZXR1cm4g
bV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzOwogfQogCi1QYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRl
U2V0PiBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKCkKK3ZvaWQgQ0NM
YXllclRyZWVIb3N0SW1wbDo6cGluY2hHZXN0dXJlQmVnaW4oKQogewotICAgIE93blB0cjxDQ1Nj
cm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBDQ1Njcm9sbFVwZGF0ZVNl
dCgpKTsKKyAgICBtX3BpbmNoR2VzdHVyZUFjdGl2ZSA9IHRydWU7Cit9CisKK3ZvaWQgQ0NMYXll
clRyZWVIb3N0SW1wbDo6cGluY2hHZXN0dXJlVXBkYXRlKGZsb2F0IG1hZ25pZnlEZWx0YSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFBvaW50
JiBhbmNob3IpCit7CisgICAgVFJBQ0VfRVZFTlQoIkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNo
R2VzdHVyZVVwZGF0ZSIsIHRoaXMsIDApOworCisgICAgaWYgKG1hZ25pZnlEZWx0YSA9PSAxLjAp
CisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIW1fcm9vdExheWVySW1wbCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgLy8gS2VlcCB0aGUgY2VudGVyLW9mLXBpbmNoIGFuY2hvciBzcGVjaWZpZWQg
YnkgKHgsIHkpIGluIGEgc3RhYmxlCisgICAgLy8gcG9zaXRpb24gb3ZlciB0aGUgY291cnNlIG9m
IHRoZSBtYWduaWZ5LgorICAgIEZsb2F0UG9pbnQgcHJldlNjYWxlQW5jaG9yKGFuY2hvci54KCkg
LyBtX3NjYWxlRGVsdGEsIGFuY2hvci55KCkgLyBtX3NjYWxlRGVsdGEpOworICAgIHNldFNjYWxl
RGVsdGEobV9zY2FsZURlbHRhICogbWFnbmlmeURlbHRhKTsKKyAgICBGbG9hdFBvaW50IG5ld1Nj
YWxlQW5jaG9yKGFuY2hvci54KCkgLyBtX3NjYWxlRGVsdGEsIGFuY2hvci55KCkgLyBtX3NjYWxl
RGVsdGEpOworCisgICAgRmxvYXRTaXplIG1vdmUgPSBwcmV2U2NhbGVBbmNob3IgLSBuZXdTY2Fs
ZUFuY2hvcjsKKworICAgIHNjcm9sbFJvb3RMYXllcihyb3VuZGVkSW50U2l6ZShtb3ZlKSk7CisK
KyAgICBtX2NsaWVudC0+c2V0TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQoKTsKK30KKwordm9pZCBD
Q0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVFbmQoKQoreworICAgIG1fcGluY2hHZXN0
dXJlQWN0aXZlID0gZmFsc2U7CisKKyAgICBtX2NsaWVudC0+c2V0TmVlZHNDb21taXRPbkltcGxU
aHJlYWQoKTsKK30KKworUGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKCkKK3sKKyAgICBPd25QdHI8Q0NTY3JvbGxB
bmRTY2FsZVNldD4gc2Nyb2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBDQ1Njcm9sbEFuZFNjYWxlU2V0
KCkpOworICAgIHNjcm9sbEluZm8tPnBhZ2VTY2FsZSA9IG1fcGFnZVNjYWxlOworCisgICAgYm9v
bCBkaWRNb3ZlID0gcm9vdExheWVyKCkgJiYgKCFyb290TGF5ZXIoKS0+c2Nyb2xsRGVsdGEoKS5p
c1plcm8oKSB8fCBtX3NjYWxlRGVsdGEgIT0gMS4wZik7CisgICAgaWYgKCFkaWRNb3ZlIHx8IG1f
cGluY2hHZXN0dXJlQWN0aXZlKQorICAgICAgICByZXR1cm4gc2Nyb2xsSW5mby5yZWxlYXNlKCk7
CisKICAgICAvLyBGSVhNRTogdHJhY2sgc2Nyb2xscyBmcm9tIGxheWVycyBvdGhlciB0aGFuIHRo
ZSByb290Ci0gICAgaWYgKHJvb3RMYXllcigpICYmICFyb290TGF5ZXIoKS0+c2Nyb2xsRGVsdGEo
KS5pc1plcm8oKSkgewotICAgICAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OlNjcm9sbFVwZGF0
ZUluZm8gaW5mbzsKLSAgICAgICAgaW5mby5sYXllcklkID0gcm9vdExheWVyKCktPmlkKCk7Ci0g
ICAgICAgIGluZm8uc2Nyb2xsRGVsdGEgPSByb290TGF5ZXIoKS0+c2Nyb2xsRGVsdGEoKTsKLSAg
ICAgICAgc2Nyb2xsSW5mby0+YXBwZW5kKGluZm8pOwotCi0gICAgICAgIHJvb3RMYXllcigpLT5z
ZXRTY3JvbGxQb3NpdGlvbihyb290TGF5ZXIoKS0+c2Nyb2xsUG9zaXRpb24oKSArIHJvb3RMYXll
cigpLT5zY3JvbGxEZWx0YSgpKTsKLSAgICAgICAgcm9vdExheWVyKCktPnNldFNjcm9sbERlbHRh
KEludFNpemUoKSk7Ci0gICAgfQorICAgIHNjcm9sbEluZm8tPnBhZ2VTY2FsZSA9IG1fcGFnZVNj
YWxlICogbV9zY2FsZURlbHRhOworICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6U2Nyb2xsVXBk
YXRlSW5mbyBzY3JvbGw7CisgICAgc2Nyb2xsLmxheWVySWQgPSByb290TGF5ZXIoKS0+aWQoKTsK
KyAgICBzY3JvbGwuc2Nyb2xsRGVsdGEgPSByb290TGF5ZXIoKS0+c2Nyb2xsRGVsdGEoKTsKKyAg
ICBzY3JvbGxJbmZvLT5zY3JvbGxzLmFwcGVuZChzY3JvbGwpOworCisgICAgcm9vdExheWVyKCkt
PnNldFNjcm9sbFBvc2l0aW9uKHJvb3RMYXllcigpLT5zY3JvbGxQb3NpdGlvbigpICsgcm9vdExh
eWVyKCktPnNjcm9sbERlbHRhKCkpOworICAgIHJvb3RMYXllcigpLT5zZXRTY3JvbGxEZWx0YShJ
bnRTaXplKCkpOworCiAgICAgcmV0dXJuIHNjcm9sbEluZm8ucmVsZWFzZSgpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKaW5kZXggNWE2OGYwZmUzMDg0Y2U4ZDFmNWUy
YTcwYzcwMWFmYTdjNzUwMTQ4Mi4uNGJlNTc4NmFmZjUzMWUwZDEyYmJhOTZkNDk3NDQxMjcyOWRi
MmY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaApAQCAtOTcsOSArOTcs
MTcgQEAgcHVibGljOgogICAgIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdmlld3BvcnRTaXplOyB9CiAgICAgdm9pZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zv
cm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIAorICAgIHZvaWQgc2V0UGFnZVNjYWxl
KGZsb2F0KTsKKyAgICBmbG9hdCBwYWdlU2NhbGUoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VTY2Fs
ZTsgfQorICAgIHZvaWQgc2V0U2NhbGVMaW1pdHMoZmxvYXQgbWluU2NhbGUsIGZsb2F0IG1heFNj
YWxlKTsKKwogICAgIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4g
bV9zZXR0aW5nczsgfQogCi0gICAgUGFzc093blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gcHJvY2Vz
c1Njcm9sbERlbHRhcygpOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVCZWdpbigpOwor
ICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQsIGNvbnN0IEludFBvaW50
Jik7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUVuZCgpOworICAgIFBhc3NPd25QdHI8
Q0NTY3JvbGxBbmRTY2FsZVNldD4gcHJvY2Vzc1Njcm9sbERlbHRhcygpOworICAgIHZvaWQgdXBk
YXRlTWF4U2Nyb2xsUG9zaXRpb24oKTsKIAogcHJvdGVjdGVkOgogICAgIENDTGF5ZXJUcmVlSG9z
dEltcGwoY29uc3QgQ0NTZXR0aW5ncyYsIENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQqKTsKQEAg
LTEwOCwxMiArMTE2LDIwIEBAIHByb3RlY3RlZDoKICAgICBpbnQgbV9mcmFtZU51bWJlcjsKIAog
cHJpdmF0ZToKKyAgICB2b2lkIHNldFNjYWxlRGVsdGEoZmxvYXQpOworCiAgICAgT3duUHRyPExh
eWVyUmVuZGVyZXJDaHJvbWl1bT4gbV9sYXllclJlbmRlcmVyOwogICAgIFJlZlB0cjxDQ0xheWVy
SW1wbD4gbV9yb290TGF5ZXJJbXBsOwogICAgIENDU2V0dGluZ3MgbV9zZXR0aW5nczsKICAgICBJ
bnRTaXplIG1fdmlld3BvcnRTaXplOwogICAgIGJvb2wgbV92aXNpYmxlOwogICAgIGJvb2wgbV9o
YXZlV2hlZWxFdmVudEhhbmRsZXJzOworCisgICAgZmxvYXQgbV9wYWdlU2NhbGU7CisgICAgZmxv
YXQgbV9zY2FsZURlbHRhOworICAgIGZsb2F0IG1fbWluU2NhbGUsIG1fbWF4U2NhbGU7CisKKyAg
ICBib29sIG1fcGluY2hHZXN0dXJlQWN0aXZlOwogfTsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3Jv
bGxDb250cm9sbGVyLmgKaW5kZXggOTJiOTVkN2RjYWNkNzRhZGYzZGJlNTZmY2YyYTBkZTA4OThi
Y2M0Mi4uYzg0MWQyNDNhODA1YTJkMGRmYzI0MDQzZTc5NjgyZWMwMGY4ZWNkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKQEAgLTM2LDYgKzM2LDkgQEAgY2xhc3MgQ0NTY3Jv
bGxDb250cm9sbGVyIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUm9vdExheWVy
KGNvbnN0IEludFNpemUmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhdmVXaGVlbEV2ZW50SGFu
ZGxlcnMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRhLCBj
b25zdCBJbnRQb2ludCYgYW5jaG9yKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVy
ZUVuZCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIENDU2Nyb2xsQ29udHJvbGxlcigpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCBlYjFkY2Q0ZGRiN2U4
OGZiOTkzNmM5Y2RmZDY4YjRkMWYzMWQ3MDJmLi4xMWIyNjQ4ZmI1YWMxYjYyMGEwZDVkMmMyODI2
MzdkNGZjNGY3YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApA
QCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQoKQog
I2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAgICAgLy8gSW4gdGhlIHNpbmdsZS10aHJlYWRlZCBj
YXNlLCB0aGUgc2Nyb2xsIGRlbHRhcyBzaG91bGQgbmV2ZXIgYmUKICAgICAgICAgLy8gdG91Y2hl
ZCBvbiB0aGUgaW1wbCBsYXllciB0cmVlLgotICAgICAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVT
ZXQ+IHNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFz
KCk7CisgICAgICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9s
YXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgICAgICBBU1NFUlQo
IXNjcm9sbEluZm8tPnNpemUoKSk7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJv
eHkuY3BwCmluZGV4IGRlMTk1ZWYyMjZlMDJkMTY4YjFmNDRkMTQ2NGE3NDJlYTI0N2I3OTcuLjNj
MTM3NzNiNjVjMDc2NDI4OTc1ZDE2ZDlkODc0ZmE5MDBmZjA4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuY3BwCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCBQYXNzT3duUHRyPENDTWFpblRocmVh
ZDo6VGFzaz4gQ0NUaHJlYWRQcm94eTo6Y3JlYXRlQmVnaW5GcmFtZUFuZENvbW1pdFRhc2tPbklt
cAogICAgIC8vIG51bWJlcnMgYmVsb3cgdGhlIGxhc3QgZXhlY3V0ZWQgb25lLgogICAgIGludCB0
aGlzVGFza1NlcXVlbmNlTnVtYmVyID0gbV9udW1CZWdpbkZyYW1lQW5kQ29tbWl0c0lzc3VlZE9u
SW1wbFRocmVhZDsKICAgICBtX251bUJlZ2luRnJhbWVBbmRDb21taXRzSXNzdWVkT25JbXBsVGhy
ZWFkKys7Ci0gICAgT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvID0gbV9sYXll
clRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOworICAgIE93blB0cjxDQ1Njcm9s
bEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Nj
cm9sbERlbHRhcygpOwogICAgIHJldHVybiBjcmVhdGVNYWluVGhyZWFkVGFzayh0aGlzLCAmQ0NU
aHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdCwgdGhpc1Rhc2tTZXF1ZW5jZU51bWJlciwg
ZnJhbWVCZWdpblRpbWUsIHNjcm9sbEluZm8ucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBDQ1RocmVh
ZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZy
YW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvKQor
dm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJl
ciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+
IHNjcm9sbEluZm8pCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OmJlZ2luRnJh
bWVBbmRDb21taXQiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAt
MzUzLDcgKzM1Myw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdChp
bnQgc2VxdWVuY2VOdW1iZXIsIGRvdWJsZSBmcmFtZUJlZ2luVGltCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIFNjcm9sbCBkZWx0YXMgbmVlZCB0byBiZSBhcHBsaWVkIGV2ZW4gaWYgdGhlIGNv
bW1pdCB3aWxsIGJlIGRyb3BwZWQuCi0gICAgbV9sYXllclRyZWVIb3N0LT5hcHBseVNjcm9sbERl
bHRhcygqc2Nyb2xsSW5mby5nZXQoKSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5hcHBseVNjcm9s
bEFuZFNjYWxlKCpzY3JvbGxJbmZvLmdldCgpKTsKIAogICAgIC8vIERyb3AgYmVnaW5GcmFtZUFu
ZENvbW1pdCBjYWxscyB0aGF0IG9jY3VyIG91dCBvZiBzZXF1ZW5jZS4gU2VlIGNyZWF0ZUJlZ2lu
RnJhbWVBbmRDb21taXRUYXNrT25JbXBsVGhyZWFkIGZvcgogICAgIC8vIGFuIGV4cGxhbmF0aW9u
IG9mIGhvdyBvdXQtb2Ytc2VxdWVuY2UgYmVnaW5GcmFtZUFuZENvbW1pdCB0YXNrcyBjYW4gb2Nj
dXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggMTY3NmY4MzcwYmJlYzBmNDZkOTAxZDk0
M2U3M2E1Zjk3MTg5ZjBlMy4uZGZmMDViYmRmNmE5MzNmZTE2OGI1ZmZkZGZmY2Y3YmQ5ZDgwN2Yy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgog
ICAgIGV4cGxpY2l0IENDVGhyZWFkUHJveHkoQ0NMYXllclRyZWVIb3N0Kik7CiAKICAgICAvLyBD
YWxsZWQgb24gQ0NNYWluVGhyZWFkCi0gICAgdm9pZCBiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBz
ZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xs
VXBkYXRlU2V0Pik7CisgICAgdm9pZCBiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51
bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVT
ZXQ+KTsKICAgICB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpOwog
CiAgICAgLy8gQ2FsbGVkIG9uIENDVGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmgKaW5kZXggMDkxMjY5YzdhYjU0
OTA4ZmJmMjg1ODMzYjVlMTg2MGNhM2QyYjMzZi4uZDlkZGQ4MGRiNzNhNzg5NjMyZTRmY2YwOTUy
Y2VkYjIzMmQyNDAxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaApAQCAtMzcsOSArMzcsMTEgQEAgcHVibGljOgog
ICAgIC8vIHNvIHRoYXQgbGF5ZXJzIGNhbiBiZSB1cGRhdGVkIGF0IHRoZSBnaXZlbiBmcmFtZSB0
aW1lLgogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2lu
VGltZSkgPSAwOwogCi0gICAgLy8gQXBwbGllcyBhIHNjcm9sbCBkZWx0YSB0byB0aGUgcm9vdCBs
YXllci4gVGhpcyBpcyB0cmlnZ2VyZWQgYnkgZXZlbnRzCi0gICAgLy8gc2VudCB0byB0aGUgY29t
cG9zaXRvciB0aHJlYWQgdGhyb3VnaCB0aGUgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UuCi0gICAg
dmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgV2ViU2l6ZSYpID0gMDsKKyAgICAv
LyBBcHBsaWVzIGEgc2Nyb2xsIGRlbHRhIHRvIHRoZSByb290IGxheWVyLCB3aGljaCBpcyBidW5k
bGVkIHdpdGggYSBwYWdlCisgICAgLy8gc2NhbGUgZmFjdG9yIHRoYXQgbWF5IGFwcGx5IGEgQ1NT
IHRyYW5zZm9ybSBvbiB0aGUgd2hvbGUgZG9jdW1lbnQgKHVzZWQKKyAgICAvLyBmb3IgbW9iaWxl
LWRldmljZSBwaW5jaCB6b29taW5nKS4gVGhpcyBpcyB0cmlnZ2VyZWQgYnkgZXZlbnRzIHNlbnQg
dG8gdGhlCisgICAgLy8gY29tcG9zaXRvciB0aHJlYWQgdGhyb3VnaCB0aGUgV2ViQ29tcG9zaXRv
ciBpbnRlcmZhY2UuCisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3Qg
V2ViU2l6ZSYsIGZsb2F0KSA9IDA7CiAKICAgICAvLyBDcmVhdGVzIGEgM0QgY29udGV4dCBzdWl0
YWJsZSBmb3IgdGhlIGNvbXBvc2l0aW5nLiBUaGlzIG1heSBiZSBjYWxsZWQKICAgICAvLyBtb3Jl
IHRoYW4gb25jZSBpZiB0aGUgY29udGV4dCBnZXRzIGxvc3QuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggNzVlMGJiMDM0M2U4NjM4NGIzYzQzMDlmYTY0ZWRhZWRj
YjE5ZjU5Ni4uYTMwMWY4MWYwM2NkYmJiMTM1MWI4YjI4MzJhNWQxZjNlNzRkNzhmNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjA3LDYgKzIwNywxMCBAQCBw
dWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgZG91YmxlIHpvb21MZXZlbFRvWm9vbUZh
Y3Rvcihkb3VibGUgem9vbUxldmVsKTsKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBkb3VibGUg
em9vbUZhY3RvclRvWm9vbUxldmVsKGRvdWJsZSBmYWN0b3IpOwogCisgICAgLy8gUGFnZVNjYWxl
RmFjdG9yIHdpbGwgYmUgZm9yY2UtY2xhbXBlZCBiZXR3ZWVuIG1pblNjYWxlIGFuZCBtYXhTY2Fs
ZQorICAgIC8vIChhbmQgdGhlc2UgdmFsdWVzIHdpbGwgcGVyc2lzdCB1bnRpbCBzZXRTY2FsZUxp
bWl0cyBpcyBjYWxsZWQgYWdhaW4pLgorICAgIHZpcnR1YWwgdm9pZCBzZXRTY2FsZUxpbWl0cyhm
bG9hdCBtaW5TY2FsZSwgZmxvYXQgbWF4U2NhbGUpID0gMDsKKwogICAgIC8vIEdldHMgdGhlIHNj
YWxlIGZhY3RvciBvZiB0aGUgcGFnZSwgd2hlcmUgMS4wIGlzIHRoZSBub3JtYWwgc2l6ZSwgPiAx
LjAKICAgICAvLyBpcyBzY2FsZWQgdXAsIDwgMS4wIGlzIHNjYWxlZCBkb3duLgogICAgIHZpcnR1
YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgPSAwOwpAQCAtMjI4LDcgKzIzMiw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYlNpemUgZml4ZWRMYXlvdXRTaXplKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZExheW91dFNpemUoY29uc3QgV2ViU2l6ZSYpID0g
MDsKIAotCiAgICAgLy8gTWVkaWEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICAgICAvLyBQZXJmb3JtcyB0aGUgc3BlY2lm
aWVkIGFjdGlvbiBvbiB0aGUgbm9kZSBhdCB0aGUgZ2l2ZW4gbG9jYXRpb24uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKaW5kZXggZDhiZDNh
MTYzNDFiNzljNWZiMjIxZDdhM2ZlMjBkNjE4MGM0OWFkNy4uNWY4ZTljYmNhZjNjMDEzY2Y2MmE0
MDA1ZjgzMjBiMjRhNDY1NjA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQ29tcG9zaXRvckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkNvbXBvc2l0b3JJbXBsLmNwcApAQCAtMTIzLDYgKzEyMyw3IEBAIHZvaWQgV2ViQ29tcG9z
aXRvckltcGw6OmhhbmRsZUlucHV0RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgZXZlbnQpCiAg
ICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisKICAgICBtX2NsaWVudC0+ZGlkTm90SGFuZGxlSW5wdXRFdmVudCh0cnVlIC8qIHNl
bmRUb1dpZGdldCAqLyk7CiB9CiAKQEAgLTEzMyw0ICsxMzQsMyBAQCBpbnQgV2ViQ29tcG9zaXRv
ckltcGw6OmlkZW50aWZpZXIoKSBjb25zdAogfQogCiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcAppbmRleCA4OWRiYmE2MTY2
NjRhYTdiYWRlMjY5MDc5ODc4ZmFhM2Y2YjFkYjFhLi4wMWUwZmI4N2RkZThlNDQ0ODYxY2E0ZDc0
OGRhZWEyMDRlOTVhMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJMYXllclRyZWVWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCkBAIC02NCwxMCArNjQsMTAgQEAgdm9pZCBXZWJMYXll
clRyZWVWaWV3SW1wbDo6YW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpCiAg
ICAgICAgIG1fY2xpZW50LT5hbmltYXRlQW5kTGF5b3V0KGZyYW1lQmVnaW5UaW1lKTsKIH0KIAot
dm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlTY3JvbGxEZWx0YShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBkZWx0YSkKK3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmFwcGx5U2Nyb2xs
QW5kU2NhbGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEsIGZsb2F0IHNjYWxlKQogewog
ICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsRGVsdGEoV2Vi
U2l6ZShkZWx0YSkpOworICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJT
aXplKGRlbHRhKSwgc2NhbGUpOwogfQogCiBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBX
ZWJMYXllclRyZWVWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAppbmRl
eCAxYjEzYmYzNDU5MTMxODFiN2UwN2Q3ZDJiZTc4Njg4Y2Y5YzQ0M2JmLi5mYmZhMDU0MDQyYWY0
NzdiYzY3MGUzNWFhYjE4MmI0NWQ1ZDVmZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHJpdmF0
ZToKICAgICBXZWJMYXllclRyZWVWaWV3SW1wbChXZWJMYXllclRyZWVWaWV3Q2xpZW50KiwgY29u
c3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJik7CiAg
ICAgdmlydHVhbCB+V2ViTGF5ZXJUcmVlVmlld0ltcGwoKTsKICAgICB2aXJ0dWFsIHZvaWQgYW5p
bWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBh
cHBseVNjcm9sbERlbHRhKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2aXJ0dWFsIHZv
aWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQpOwog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRl
TGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmRE
cmF3RnJhbWUoaW50IGZyYW1lTnVtYmVyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVH
cmFwaGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAppbmRleCA0OGZiM2UwYTk4ZjNhYjJhYzE1NDE1YjA1NzVlZmFhMzA0
MDBhMDgzLi5jMjNjZWJhM2FmOGU2YmU4YjQyMTA2Y2M3MzdlYTcxZjRhZDY0NWQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xODc1LDYgKzE4NzUs
MjMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKGJvb2wgZW5hYmxl
KQogICAgICAgICByZXR1cm47CiAKICAgICBmcmFtZS0+dmlldygpLT5zZXRVc2VGaXhlZExheW91
dChlbmFibGUpOworCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIC8vIEFs
c28gbm90aWZ5IHRoZSBiYXNlIGxheWVyLCB3aGljaCBSZW5kZXJMYXllckNvbXBvc2l0b3IgZG9l
cyBub3Qgc2VlLgorICAgIGlmIChtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCkgeworICAgICAg
ICBHcmFwaGljc0xheWVyKiByb290ID0gbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QtPnRvcExl
dmVsUm9vdExheWVyKCk7CisgICAgICAgIHJvb3QtPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hh
bmdlZCgpOworICAgIH0KKworICAgIHVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0KCk7CisjZW5kaWYK
K30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0U2NhbGVMaW1pdHMoZmxvYXQgbWluU2NhbGUsIGZs
b2F0IG1heFNjYWxlKQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBt
X2xheWVyVHJlZUhvc3QtPnNldFNjYWxlTGltaXRzKG1pblNjYWxlLCBtYXhTY2FsZSk7CisjZW5k
aWYKIH0KIAogV2ViU2l6ZSBXZWJWaWV3SW1wbDo6Zml4ZWRMYXlvdXRTaXplKCkgY29uc3QKQEAg
LTI2NjQsMTIgKzI2ODEsMzAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YW5pbWF0ZUFuZExheW91dChk
b3VibGUgZnJhbWVCZWdpblRpbWUpCiAgICAgbGF5b3V0KCk7CiB9CiAKLXZvaWQgV2ViVmlld0lt
cGw6OmFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCit2b2lkIFdl
YlZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRh
LCBmbG9hdCBzY2FsZUZhY3RvcikKIHsKICAgICBpZiAoIW1haW5GcmFtZUltcGwoKSB8fCAhbWFp
bkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbWFpbkZy
YW1lSW1wbCgpLT5mcmFtZVZpZXcoKS0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEpOworICAgIGZsb2F0
IG9sZFNjYWxlID0gcGFnZVNjYWxlRmFjdG9yKCk7CisgICAgaWYgKCFvbGRTY2FsZSkKKyAgICAg
ICAgb2xkU2NhbGUgPSAxLjBmOworCisgICAgaWYgKCFzY2FsZUZhY3RvciB8fCBvbGRTY2FsZSA9
PSBzY2FsZUZhY3RvcikKKyAgICAgICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKS0+c2Ny
b2xsQnkoc2Nyb2xsRGVsdGEpOworICAgIGVsc2UgeworICAgICAgICAvLyBUaGUgcGFnZSBzY2Fs
ZSBjaGFuZ2VkLCBzbyBhcHBseSBhIHNjYWxlIGFuZCBzY3JvbGwgaW4gYSBzaW5nbGUKKyAgICAg
ICAgLy8gb3BlcmF0aW9uLiBUaGUgb2xkIHNjcm9sbCBvZmZzZXQgKGFuZCBwYXNzZWQtaW4gZGVs
dGEpIGFyZQorICAgICAgICAvLyBpbiB0aGUgb2xkIGNvb3JkaW5hdGUgc3BhY2UsIHNvIHdlIGZp
cnN0IG5lZWQgdG8gbXVsdGlwbHkgdGhlbQorICAgICAgICAvLyBieSB0aGUgcGFnZSBzY2FsZSBk
ZWx0YS4KKyAgICAgICAgV2ViU2l6ZSBzY3JvbGxPZmZzZXQgPSBtYWluRnJhbWUoKS0+c2Nyb2xs
T2Zmc2V0KCk7CisgICAgICAgIHNjcm9sbE9mZnNldC53aWR0aCArPSBzY3JvbGxEZWx0YS53aWR0
aCgpOworICAgICAgICBzY3JvbGxPZmZzZXQuaGVpZ2h0ICs9IHNjcm9sbERlbHRhLmhlaWdodCgp
OworICAgICAgICBmbG9hdCBzY2FsZURlbHRhID0gc2NhbGVGYWN0b3IgLyBvbGRTY2FsZTsKKyAg
ICAgICAgV2ViUG9pbnQgc2NhbGVkU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldC53aWR0aCAqIHNj
YWxlRGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxPZmZz
ZXQuaGVpZ2h0ICogc2NhbGVEZWx0YSk7CisgICAgICAgIHNjYWxlUGFnZShzY2FsZUZhY3Rvciwg
c2NhbGVkU2Nyb2xsT2Zmc2V0KTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmRpZENv
bW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpCkBAIC0yNzExLDggKzI3NDYsOSBAQCB2
b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVMYXllclRyZWVWaWV3cG9ydCgpCiAgICAgSW50UmVjdCB2
aXNpYmxlUmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCh0cnVlIC8qIGluY2x1ZGUgc2Ny
b2xsYmFycyAqLyk7CiAgICAgSW50UG9pbnQgc2Nyb2xsKHZpZXctPnNjcm9sbFgoKSwgdmlldy0+
c2Nyb2xsWSgpKTsKIAotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LT5zZXRWaWV3cG9y
dCh2aXNpYmxlUmVjdC5zaXplKCksIHZpZXctPmNvbnRlbnRzU2l6ZSgpLCBzY3JvbGwpOworICAg
IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LT5zZXRWaWV3cG9ydCh2aXNpYmxlUmVjdC5zaXpl
KCksIHZpZXctPmNvbnRlbnRzU2l6ZSgpLCBzY3JvbGwsIHBhZ2VTY2FsZUZhY3RvcigpKTsKICAg
ICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0KHZpc2libGVSZWN0LnNpemUoKSk7CisgICAg
bV9sYXllclRyZWVIb3N0LT5zZXRQYWdlU2NhbGUocGFnZVNjYWxlRmFjdG9yKCkpOwogfQogCiBX
ZWJHcmFwaGljc0NvbnRleHQzRCogV2ViVmlld0ltcGw6OmdyYXBoaWNzQ29udGV4dDNEKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDk5MTFhNWY4YWMwZWRi
OTg5MzE4ZWFjMTEyYTI1ZTU3MGQ2OWUxYmYuLmNlOGQ2NmQ5ZmI0OWNiNTY3YzkyYjk3MTA5Njkx
MWEyYjUyZThhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApA
QCAtMTU5LDYgKzE1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZG91YmxlIG1heGltdW1ab29tTGV2ZWwpOwogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNj
YWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNjYWxlUGFnZShmbG9hdCBzY2Fs
ZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2NhbGVMaW1p
dHMoZmxvYXQgbWluU2NhbGUsIGZsb2F0IG1heFNjYWxlKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNG
aXhlZExheW91dE1vZGVFbmFibGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZUZp
eGVkTGF5b3V0TW9kZShib29sIGVuYWJsZSk7CiAgICAgdmlydHVhbCBXZWJTaXplIGZpeGVkTGF5
b3V0U2l6ZSgpIGNvbnN0OwpAQCAtMjE4LDcgKzIxOSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEND
TGF5ZXJUcmVlSG9zdENsaWVudAogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlQW5kTGF5b3V0KGRv
dWJsZSBmcmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEo
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFu
ZFNjYWxlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCk7CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXllclRyZWVIb3N0Q29u
dGV4dDNEKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJh
bWVOdW1iZXIpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4dChi
b29sIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
Q0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcAppbmRleCBmYTVjNzBjYmYxYjQzMzk4YTEwMjMx
MjFlMTc1YTUwMzI1YWM4YTM2Li5hNzE5ODMwOTBiYjQ4N2NiNzcxYmQzYWUwNjJkMTYzNzU5Mjcx
MTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdEltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdEltcGxUZXN0LmNwcApAQCAtNTksMTQgKzU5LDE0IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUobGF5ZXItPmNoaWxkcmVu
KClbaV0uZ2V0KCkpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIGV4cGVjdENvbnRhaW5zKGNv
bnN0IENDU2Nyb2xsVXBkYXRlU2V0JiBzY3JvbGxJbmZvLCBpbnQgaWQsIGNvbnN0IEludFNpemUm
IHNjcm9sbERlbHRhKQorICAgIHN0YXRpYyB2b2lkIGV4cGVjdENvbnRhaW5zKGNvbnN0IENDU2Ny
b2xsQW5kU2NhbGVTZXQmIHNjcm9sbEluZm8sIGludCBpZCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xs
RGVsdGEpCiAgICAgewogICAgICAgICBpbnQgdGltZXNFbmNvdW50ZXJlZCA9IDA7CiAKLSAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzY3JvbGxJbmZvLnNpemUoKTsgKytpKSB7Ci0gICAg
ICAgICAgICBpZiAoc2Nyb2xsSW5mb1tpXS5sYXllcklkICE9IGlkKQorICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNjcm9sbEluZm8uc2Nyb2xscy5zaXplKCk7ICsraSkgeworICAgICAg
ICAgICAgaWYgKHNjcm9sbEluZm8uc2Nyb2xsc1tpXS5sYXllcklkICE9IGlkKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgQVNTRVJUX0VRKHNjcm9sbEluZm9baV0uc2Ny
b2xsRGVsdGEsIHNjcm9sbERlbHRhKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzY3JvbGxJbmZv
LnNjcm9sbHNbaV0uc2Nyb2xsRGVsdGEsIHNjcm9sbERlbHRhKTsKICAgICAgICAgICAgIHRpbWVz
RW5jb3VudGVyZWQrKzsKICAgICAgICAgfQogCkBAIC04NCw4ICs4NCw4IEBAIFRFU1RfRihDQ0xh
eWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFOb0xheWVycykKIHsKICAgICBBU1NFUlRf
RkFMU0UobV9ob3N0SW1wbC0+cm9vdExheWVyKCkpOwogCi0gICAgT3duUHRyPENDU2Nyb2xsVXBk
YXRlU2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwot
ICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsKKyAgICBPd25QdHI8Q0NTY3Jv
bGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0
YXMoKTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDB1KTsKIH0K
IAogVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVRyZWVCdXROb0No
YW5nZXMpCkBAIC0xMDAsMTQgKzEwMCwxNCBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRl
c3QsIHNjcm9sbERlbHRhVHJlZUJ1dE5vQ2hhbmdlcykKIAogICAgIGV4cGVjdENsZWFyZWRTY3Jv
bGxEZWx0YXNSZWN1cnNpdmUocm9vdC5nZXQoKSk7CiAKLSAgICBPd25QdHI8Q0NTY3JvbGxVcGRh
dGVTZXQ+IHNjcm9sbEluZm87CisgICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9s
bEluZm87CiAKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRh
cygpOwotICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsKKyAgICBBU1NFUlRf
RVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDB1KTsKICAgICBleHBlY3RDbGVhcmVkU2Ny
b2xsRGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9z
dEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+
c2l6ZSgpLCAwdSk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAw
dSk7CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsK
IH0KIApAQCAtMTIxLDExICsxMjEsMTEgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0
LCBzY3JvbGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICByb290LT5zY3JvbGxCeShzY3JvbGxE
ZWx0YSk7CiAgICAgbV9ob3N0SW1wbC0+c2V0Um9vdExheWVyKHJvb3QpOwogCi0gICAgT3duUHRy
PENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvOworICAgIE93blB0cjxDQ1Njcm9sbEFuZFNj
YWxlU2V0PiBzY3JvbGxJbmZvOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nl
c3NTY3JvbGxEZWx0YXMoKTsKICAgICBBU1NFUlRfRVEocm9vdC0+c2Nyb2xsUG9zaXRpb24oKSwg
c2Nyb2xsUG9zaXRpb24gKyBzY3JvbGxEZWx0YSk7Ci0gICAgQVNTRVJUX0VRKHNjcm9sbEluZm8t
PnNpemUoKSwgMXUpOworICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwg
MXUpOwogICAgIGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLmdldCgpLCByb290LT5pZCgpLCBz
Y3JvbGxEZWx0YSk7CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290
LmdldCgpKTsKIApAQCAtMTMzLDE0ICsxMzMsMTQgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdElt
cGxUZXN0LCBzY3JvbGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICByb290LT5zY3JvbGxCeShz
Y3JvbGxEZWx0YTIpOwogICAgIHNjcm9sbEluZm8gPSBtX2hvc3RJbXBsLT5wcm9jZXNzU2Nyb2xs
RGVsdGFzKCk7CiAgICAgQVNTRVJUX0VRKHJvb3QtPnNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbFBv
c2l0aW9uICsgc2Nyb2xsRGVsdGEgKyBzY3JvbGxEZWx0YTIpOwotICAgIEFTU0VSVF9FUShzY3Jv
bGxJbmZvLT5zaXplKCksIDF1KTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5z
aXplKCksIDF1KTsKICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgcm9vdC0+
aWQoKSwgc2Nyb2xsRGVsdGEyKTsKICAgICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJz
aXZlKHJvb3QuZ2V0KCkpOwogCiAgICAgcm9vdC0+c2Nyb2xsQnkoSW50U2l6ZSgpKTsKICAgICBz
Y3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VS
VF9FUShyb290LT5zY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxQb3NpdGlvbiArIHNjcm9sbERlbHRh
ICsgc2Nyb2xsRGVsdGEyKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAwdSk7
CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAwdSk7CiAgICAgZXhw
ZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAK
aW5kZXggZjNmMDQ4MmY2YjRkYWZmYjBmZjliODVmNmE2ZmFjZmQ0NjM3YjcyYS4uZjk2Nzk4Y2Q3
NmM2ODMzMjM5MGE5MWNmMDkzYzczNmFmNzNiYjVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC01Nyw3ICs1Nyw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5Db21taXRPbkNDVGhyZWFkKENDTGF5
ZXJUcmVlSG9zdEltcGwqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q29tcGxldGVPbkND
VGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xh
eWVyc09uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiwgZmxvYXQpIHsgfQogfTsKIAogLy8g
QWRhcHRzIENDTGF5ZXJUcmVlSG9zdEltcGwgZm9yIHRlc3QuIFJ1bnMgcmVhbCBjb2RlLCB0aGVu
IGludm9rZXMgdGVzdCBob29rcy4KQEAgLTE1Miw5ICsxNTIsOSBAQCBwdWJsaWM6CiAgICAgewog
ICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IEludFNpemUm
IHNjcm9sbERlbHRhKQorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0
IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZSkKICAgICB7Ci0gICAgICAgIG1fdGVz
dEhvb2tzLT5hcHBseVNjcm9sbERlbHRhKHNjcm9sbERlbHRhKTsKKyAgICAgICAgbV90ZXN0SG9v
a3MtPmFwcGx5U2Nyb2xsQW5kU2NhbGUoc2Nyb2xsRGVsdGEsIHNjYWxlKTsKICAgICB9CiAKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhv
c3RDb250ZXh0M0QoKQpAQCAtNjIzLDcgKzYyMyw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBiZWdpblRlc3QoKQogICAgIHsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5
ZXIoKS0+c2V0TWF4U2Nyb2xsUG9zaXRpb24oSW50U2l6ZSgxMDAsIDEwMCkpOwogICAgICAgICBt
X2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihtX2luaXRpYWxT
Y3JvbGwpOwogICAgICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQoKTsKICAgICB9
CkBAIC02NDYsNiArNjQ1LDcgQEAgcHVibGljOgogICAgICAgICBDQ0xheWVySW1wbCogcm9vdCA9
IGltcGwtPnJvb3RMYXllcigpOwogICAgICAgICBFWFBFQ1RfRVEocm9vdC0+c2Nyb2xsRGVsdGEo
KSwgSW50U2l6ZSgpKTsKIAorICAgICAgICByb290LT5zZXRNYXhTY3JvbGxQb3NpdGlvbihJbnRT
aXplKDEwMCwgMTAwKSk7CiAgICAgICAgIHJvb3QtPnNjcm9sbEJ5KG1fc2Nyb2xsQW1vdW50KTsK
IAogICAgICAgICBpZiAoaW1wbC0+ZnJhbWVOdW1iZXIoKSA9PSAxKSB7CkBAIC02NTksNyArNjU5
LDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5
U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCisgICAgdmlydHVhbCB2b2lk
IGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNj
YWxlKQogICAgIHsKICAgICAgICAgSW50UG9pbnQgcG9zaXRpb24gPSBtX2xheWVyVHJlZUhvc3Qt
PnJvb3RMYXllcigpLT5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnJvb3RMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiArIHNjcm9sbERlbHRhKTsK
QEAgLTY5Myw3ICs2OTMsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5UZXN0
KCkKICAgICB7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldE1heFNj
cm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDApKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24obV9pbml0aWFsU2Nyb2xsKTsKICAgICAg
ICAgcG9zdFNldE5lZWRzQ29tbWl0VG9NYWluVGhyZWFkKCk7CiAgICAgfQpAQCAtNzEyLDYgKzcx
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVyc09uQ0NUaHJlYWQoQ0NM
YXllclRyZWVIb3N0SW1wbCogaW1wbCkKICAgICB7CiAgICAgICAgIENDTGF5ZXJJbXBsKiByb290
ID0gaW1wbC0+cm9vdExheWVyKCk7CisgICAgICAgIHJvb3QtPnNldE1heFNjcm9sbFBvc2l0aW9u
KEludFNpemUoMTAwLCAxMDApKTsKIAogICAgICAgICBpZiAoaW1wbC0+ZnJhbWVOdW1iZXIoKSA9
PSAxKSB7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocm9vdC0+c2Nyb2xsRGVsdGEoKSwgSW50U2l6
ZSgpKTsKQEAgLTczNCw3ICs3MzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0
YSkKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBz
Y3JvbGxEZWx0YSwgZmxvYXQgc2NhbGUpCiAgICAgewogICAgICAgICBJbnRQb2ludCBwb3NpdGlv
biA9IG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNjcm9sbFBvc2l0aW9uKCk7CiAgICAg
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHBvc2l0
aW9uICsgc2Nyb2xsRGVsdGEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113803</attachid>
            <date>2011-11-06 14:32:46 -0800</date>
            <delta_ts>2011-11-07 21:36:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71595-20111106143245.patch</filename>
            <type>text/plain</type>
            <size>47640</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZjI0NzczMTkzNDk2M2Vh
ZGNkZTA2ZjMwMjMwMDlmOGE4NzQxYmJmLi5iY2NmNmFhYTM1MmUzMDkzNDg1Y2FlZWQ5NTI5ZTZj
OWE5OWM4Yjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMTEtMDQgIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkK
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OmRldmlj
ZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ckNocm9taXVtOjpMYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21p
dW06OnNldEJvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwdXNoUHJv
cGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNo
cm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwYWdlU2NhbGVDaGFu
Z2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpk
cmF3TGF5ZXJzSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpzZXRQYWdlTWFnbmlmeVRyYW5zZm9ybSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6ZmluaXNoQ29tbWl0T25J
bXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNj
YWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0U2NhbGVMaW1pdHMp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFuZFNjYWxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6cGFnZVNjYWxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21t
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OkND
TGF5ZXJUcmVlSG9zdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6Y29tbWl0Q29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6c2V0Vmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6
c2V0UGFnZVNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNl
dFNjYWxlRGVsdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6c2V0
U2NhbGVMaW1pdHMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6dXBk
YXRlTWF4U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0
SW1wbDo6cGluY2hHZXN0dXJlQmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVI
b3N0SW1wbDo6cGluY2hHZXN0dXJlVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
VHJlZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmg6CisgICAgICAgIChXZWJD
b3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwYWdlU2NhbGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Y3JlYXRlQmVnaW5GcmFtZUFuZENvbW1pdFRhc2tP
bkltcGxUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6YmVnaW5GcmFt
ZUFuZENvbW1pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aHJlYWRQcm94eS5oOgorCiAyMDExLTExLTA0ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ01ha2UgYnVpbGQgZml4IGZvciAhRU5B
QkxFKFNRTF9EQVRBQkFTRSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDFkODk3NzM0
NzQzYzBiMmQ0NGUwMjBlMWJiZTUxZmFlNTgwN2RhM2EuLjZiNjA3YTkzNWIxMzRlMjNlMjYzZTc3
NzMyZmJjNjE3NTVhNjg3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzYgQEAKKzIwMTEtMTEtMDQgIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgor
CisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3Np
dG9yIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzE1OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHB1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50Lmg6CisgICAgICAgICogcHVibGljL1dl
YlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb21wb3NpdG9ySW1wbDo6aGFuZGxlSW5wdXRFdmVudCk6CisgICAgICAgICog
c3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0ltcGw6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAqIHNyYy9XZWJMYXll
clRyZWVWaWV3SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjplbmFibGVGaXhlZExheW91dE1vZGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2NhbGVMaW1pdHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVMYXllclRyZWVWaWV3cG9ydCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdDo6ZXhwZWN0Q29udGFpbnMpOgor
ICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9z
dFRlc3QuY3BwOgorICAgICAgICAoV1RGOjpUZXN0SG9va3M6OmFwcGx5U2Nyb2xsQW5kU2NhbGUp
OgorICAgICAgICAoV1RGOjpNb2NrTGF5ZXJUcmVlSG9zdENsaWVudDo6YXBwbHlTY3JvbGxBbmRT
Y2FsZSk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6OmJl
Z2luVGVzdCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6
OmRyYXdMYXllcnNPbkNDVGhyZWFkKToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVz
dFNjcm9sbFNpbXBsZTo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXVEY6OkNDTGF5
ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0aXBsZVJlZHJhdzo6YmVnaW5UZXN0KToKKyAgICAgICAg
KFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdFNjcm9sbE11bHRpcGxlUmVkcmF3OjpkcmF3TGF5ZXJz
T25DQ1RocmVhZCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0
aXBsZVJlZHJhdzo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisKIDIwMTEtMTEtMDIgIFhpYW9tZWkg
SmkgIDx4amlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVuYWJsZSBjdHJsLWFycm93IG1vdmUg
Y3Vyc29yIGJ5IHdvcmQgaW4gdmlzdWFsIG9yZGVyIGluIGNyLXdpbiBieSBjb21tYW5kIGxpbmUg
ZmxhZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDcyOWE5YWNk
ZWNjNDhlZjA5OWMyZTViOWMzNzYwNTk0ZDBjNmIxN2UuLjE1NmIyZTkwZWY0NWU2OTAwNzgyZWE1
OTQ4MDhiNmFkODJlM2ZiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNw
cApAQCAtNjcwLDYgKzY3MCwxMiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRl
T3BhY2l0eU9uTGF5ZXIoKQogICAgIHByaW1hcnlMYXllcigpLT5zZXRPcGFjaXR5KG1fb3BhY2l0
eSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpkZXZpY2VPclBhZ2VTY2FsZUZh
Y3RvckNoYW5nZWQoKQoreworICAgIGlmIChtX2xheWVyKQorICAgICAgICBtX2xheWVyLT5wYWdl
U2NhbGVDaGFuZ2VkKCk7Cit9CisKIGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVtOjpkcmF3c0Nv
bnRlbnQoKSBjb25zdAogewogICAgIHJldHVybiBHcmFwaGljc0xheWVyOjpkcmF3c0NvbnRlbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKaW5kZXggNzE5MGU1MDU5ZmM1NjE2
NDk2OTY5MDQ5NDNhNWU3NWM1MzdjNTM3ZS4uZjczZTczMzczOWJhMTZhNTIyMTFiMzExZTI2OWM1
MzZiY2FiYTcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKQEAgLTEwMCw2
ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eVN5bmNSZXF1aXJlZCgpOwogCisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpOwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNmE2YTBlNzdjNDc0OTA5Y2EwMmI0NDgyZGZm
NjAxNjBhYTExY2Y0OC4uNzBkNTgxODhjMzgxZWIwMWM2ZmU5N2M5NDRhZTRmMzA5YmMxOWNlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTcyLDYgKzcyLDcgQEAgTGF5ZXJDaHJvbWl1bTo6
TGF5ZXJDaHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgICwgbV9yZXBsaWNh
TGF5ZXIoMCkKICAgICAsIG1fZHJhd09wYWNpdHkoMCkKICAgICAsIG1fdGFyZ2V0UmVuZGVyU3Vy
ZmFjZSgwKQorICAgICwgbV9wYWdlU2NhbGVEaXJ0eShmYWxzZSkKIHsKIH0KIApAQCAtMjEwLDEw
ICsyMTEsMTIgQEAgdm9pZCBMYXllckNocm9taXVtOjpzZXRCb3VuZHMoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKIAogICAgIG1fYm91bmRzID0gc2l6ZTsKIAotICAgIGlmIChmaXJzdFJlc2l6ZSkKKyAg
ICBpZiAoZmlyc3RSZXNpemUgfHwgbV9wYWdlU2NhbGVEaXJ0eSkKICAgICAgICAgc2V0TmVlZHNE
aXNwbGF5KEZsb2F0UmVjdCgwLCAwLCBib3VuZHMoKS53aWR0aCgpLCBib3VuZHMoKS5oZWlnaHQo
KSkpOwogICAgIGVsc2UKICAgICAgICAgc2V0TmVlZHNDb21taXQoKTsKKworICAgIG1fcGFnZVNj
YWxlRGlydHkgPSBmYWxzZTsKIH0KIAogY29uc3QgTGF5ZXJDaHJvbWl1bSogTGF5ZXJDaHJvbWl1
bTo6cm9vdExheWVyKCkgY29uc3QKQEAgLTI4Niw3ICsyODksNiBAQCB2b2lkIExheWVyQ2hyb21p
dW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqIGxheWVyKQogICAgIGxheWVyLT5zZXRE
cmF3c0NvbnRlbnQoZHJhd3NDb250ZW50KCkpOwogICAgIGxheWVyLT5zZXRJc05vbkNvbXBvc2l0
ZWRDb250ZW50KG1faXNOb25Db21wb3NpdGVkQ29udGVudCk7CiAgICAgbGF5ZXItPnNldE1hc2tz
VG9Cb3VuZHMobV9tYXNrc1RvQm91bmRzKTsKLSAgICBsYXllci0+c2V0TWF4U2Nyb2xsUG9zaXRp
b24obV9tYXhTY3JvbGxQb3NpdGlvbik7CiAgICAgbGF5ZXItPnNldE5hbWUobV9uYW1lKTsKICAg
ICBsYXllci0+c2V0T3BhcXVlKG1fb3BhcXVlKTsKICAgICBsYXllci0+c2V0T3BhY2l0eShtX29w
YWNpdHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGM3YWVjYmU1OGE3N2QzMThkZWU2NTVkNTk1
NDNmZmQwMTgwMzM2MWUuLjY5MjNjNzg1Y2NkYzE1Zjk5ZjI0OTEwN2Q0ZTY1ZTU2NTY1MWMzZjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmgKQEAgLTEzMSwxMyArMTMxLDggQEAgcHVibGljOgogICAgIGNv
bnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUG9z
aXRpb247IH0KICAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3Jv
bGxQb3NpdGlvbikgeyBtX3Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247IH0KIAotICAg
IGNvbnN0IEludFNpemUmIG1heFNjcm9sbFBvc2l0aW9uKCkgY29uc3Qge3JldHVybiBtX21heFNj
cm9sbFBvc2l0aW9uOyB9Ci0gICAgdm9pZCBzZXRNYXhTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRT
aXplJiBtYXhTY3JvbGxQb3NpdGlvbikgeyBtX21heFNjcm9sbFBvc2l0aW9uID0gbWF4U2Nyb2xs
UG9zaXRpb247IH0KLQogICAgIEludFNpemUgc2Nyb2xsRGVsdGEoKSBjb25zdCB7IHJldHVybiBJ
bnRTaXplKCk7IH0KIAotICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtYXhT
Y3JvbGxQb3NpdGlvbigpLmlzWmVybygpOyB9Ci0KICAgICBib29sIGRvdWJsZVNpZGVkKCkgY29u
c3QgeyByZXR1cm4gbV9kb3VibGVTaWRlZDsgfQogICAgIHZvaWQgc2V0RG91YmxlU2lkZWQoYm9v
bCBkb3VibGVTaWRlZCkgeyBtX2RvdWJsZVNpZGVkID0gZG91YmxlU2lkZWQ7IHNldE5lZWRzQ29t
bWl0KCk7IH0KIApAQCAtMTY0LDYgKzE1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SXNNYXNrKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250ZW50c1Rl
eHR1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZSgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBwYWdlU2NhbGVDaGFuZ2VkKCkgeyBtX3BhZ2VTY2FsZURpcnR5ID0g
dHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpIHsg
fQogCiAgICAgLy8gVGhlc2UgZXhpc3QganVzdCBmb3IgZGVidWdnaW5nICh2aWEgZHJhd0RlYnVn
Qm9yZGVyKCkpLgpAQCAtMjUyLDcgKzI0OCw2IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX2Jv
dW5kczsKICAgICBJbnRSZWN0IG1fdmlzaWJsZUxheWVyUmVjdDsKICAgICBJbnRQb2ludCBtX3Nj
cm9sbFBvc2l0aW9uOwotICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlvbjsKICAgICBGbG9h
dFBvaW50IG1fcG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBtX2FuY2hvclBvaW50OwogICAgIENv
bG9yIG1fYmFja2dyb3VuZENvbG9yOwpAQCAtMjgzLDYgKzI3OCw4IEBAIHByaXZhdGU6CiAgICAg
SW50UmVjdCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7CiAKICAgICBTdHJpbmcgbV9uYW1lOworCisg
ICAgYm9vbCBtX3BhZ2VTY2FsZURpcnR5OwogfTsKIAogdm9pZCBzb3J0TGF5ZXJzKFZlY3RvcjxS
ZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJv
bWl1bT4gPjo6aXRlcmF0b3IsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uY3BwCmluZGV4IGJlZTI2ZTZjOTExYjQ5MTVkYWNjMTY2YjdlMjBjNzljODBkMDM2YzguLmZl
MzFlMGJkNWIyOGU1NjBmZWJhMTEwZDAwMTBiNjVmMDM4YmVmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgTGF5ZXJSZW5k
ZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzSW50ZXJuYWwoKQogCiAgICAgewogICAgICAgICBUUkFD
RV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3TGF5ZXJzSW50ZXJuYWw6OmNhbGNE
cmF3RXRjIiwgdGhpcywgMCk7Ci0gICAgICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3Vs
YXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5
ZXIsIG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtLCBtX3pvb21BbmltYXRvclRyYW5zZm9ybSwgcmVu
ZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9kZWZhdWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCks
ICZtX2xheWVyU29ydGVyLCBtX2NhcGFiaWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CisgICAgICAg
IENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmls
aXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5ZXIsIG1fcGFnZU1hZ25pZnlNYXRyaXgsIG1f
cGFnZU1hZ25pZnlNYXRyaXgsIHJlbmRlclN1cmZhY2VMYXllckxpc3QsIG1fZGVmYXVsdFJlbmRl
clN1cmZhY2UtPmxheWVyTGlzdCgpLCAmbV9sYXllclNvcnRlciwgbV9jYXBhYmlsaXRpZXMubWF4
VGV4dHVyZVNpemUpOwogICAgIH0KIAogICAgIC8vIFRoZSBHTCB2aWV3cG9ydCBjb3ZlcnMgdGhl
IGVudGlyZSB2aXNpYmxlIGFyZWEsIGluY2x1ZGluZyB0aGUgc2Nyb2xsYmFycy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmgKaW5kZXggNjQ2ZWE2ZTVjNDQ4YTU4YzYxMjQxMzQyYjBm
OWE2ZWFkZGFlZjQ0Ny4uYTVjZDdmN2YxOTViNDBiYjZkMjBkY2RjNTdkMDJjNjI4MTFiMDUxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCB2aWV3cG9ydENoYW5nZWQoKTsKIAorICAgIHZvaWQgc2V0UGFnZU1h
Z25pZnlUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHQpIHsgbV9wYWdlTWFn
bmlmeU1hdHJpeCA9IHQ7IH0KKwogICAgIHZvaWQgZHJhd0xheWVycygpOwogCiAgICAgLy8gd2Fp
dHMgZm9yIHJlbmRlcmluZyB0byBmaW5pc2gKQEAgLTE5NSw2ICsxOTcsNyBAQCBwcml2YXRlOgog
CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9wcm9qZWN0aW9uTWF0cml4OwogICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IG1fd2luZG93TWF0cml4OworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IG1fcGFnZU1hZ25pZnlNYXRyaXg7CiAKICAgICBDQ1JlbmRlclN1cmZhY2UqIG1fY3VycmVudFJl
bmRlclN1cmZhY2U7CiAgICAgdW5zaWduZWQgbV9vZmZzY3JlZW5GcmFtZWJ1ZmZlcklkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKaW5kZXggZmNjYjVmNmZkY2Mz
NDNmZTUzY2JlYzdjZGJlZjlkNzMzNDQ3YzdhZS4uOTdkMDNlZDFhNzFkYWFkOTg0NzczYjUzMTUw
MzJiNDc3NmZkMzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3Qu
Y3BwCkBAIC01OSwyMiArNTksMjAgQEAgdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNl
dFJvb3RMYXllcihHcmFwaGljc0xheWVyKiBsYXllcikKICAgICAgICAgbV9ncmFwaGljc0xheWVy
LT5wbGF0Zm9ybUxheWVyKCktPnNldExheWVyVHJlZUhvc3QoMCk7CiB9CiAKLXZvaWQgTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNp
emUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBv
c2l0aW9uKQordm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplLCBjb25z
dCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGZsb2F0IHBhZ2VTY2FsZSkKIHsKICAgICBib29s
IHZpc2libGVSZWN0Q2hhbmdlZCA9IG1fdmlld3BvcnRTaXplICE9IHZpZXdwb3J0U2l6ZTsKIAog
ICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXplOwogICAgIG1fZ3JhcGhpY3NMYXllci0+
cGxhdGZvcm1MYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3NpdGlvbik7Ci0gICAg
SW50U2l6ZSBtYXhTY3JvbGwgPSBjb250ZW50c1NpemUgLSB2aWV3cG9ydFNpemU7Ci0gICAgLy8g
VGhlIHZpZXdwb3J0IG1heSBiZSBsYXJnZXIgdGhhbiB0aGUgY29udGVudHMgaW4gc29tZSBjYXNl
cywgc3VjaCBhcwotICAgIC8vIGhhdmluZyBhIHZlcnRpY2FsIHNjcm9sbGJhciBidXQgbm8gaG9y
aXpvbnRhbCBvdmVyZmxvdy4KLSAgICBtYXhTY3JvbGwuY2xhbXBOZWdhdGl2ZVRvWmVybygpOwot
Ci0gICAgbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCktPnNldE1heFNjcm9sbFBvc2l0
aW9uKG1heFNjcm9sbCk7CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaXplKGNvbnRlbnRzU2l6
ZSk7CiAKICAgICBpZiAodmlzaWJsZVJlY3RDaGFuZ2VkKQogICAgICAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldE5lZWRzRGlzcGxheSgpOworCisgICAgYm9vbCBwYWdlU2NhbGVDaGFuZ2VkID0gbV9n
cmFwaGljc0xheWVyLT5wYWdlU2NhbGVGYWN0b3IoKSAhPSBwYWdlU2NhbGU7CisgICAgaWYgKHBh
Z2VTY2FsZUNoYW5nZWQpCisgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+ZGV2aWNlT3JQYWdlU2Nh
bGVGYWN0b3JDaGFuZ2VkKCk7CiB9CiAKIHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojpw
cm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdC5oCmluZGV4IDg5YThmY2VjYTE1ZDBiMTk4YWQ5NzNhNTkwNTRmNzdkNmY2MzgzMjku
LmY1YmRiOTk5OWI2N2Y3NzQxZDdhOTdkOTQ0YmNjNzg4YzBlMTUwYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpOwogICAgIHZvaWQgc2V0Um9v
dExheWVyKEdyYXBoaWNzTGF5ZXIqKTsKLSAgICB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBJbnRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24pOworICAgIHZvaWQgc2V0Vmlld3BvcnQoY29uc3QgSW50U2l6
ZSYgdmlld3BvcnRTaXplLCBjb25zdCBJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IEludFBv
aW50JiBzY3JvbGxQb3NpdGlvbiwgZmxvYXQgcGFnZVNjYWxlKTsKICAgICB2b2lkIHByb3RlY3RW
aXNpYmxlVGlsZVRleHR1cmVzKCk7CiAgICAgR3JhcGhpY3NMYXllciogdG9wTGV2ZWxSb290TGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIApAQCAtNzQsNCAr
NzQsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0X2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5kZXggYzMyZTEx
N2I3YjVmZDlhMWY5ZTA1MTllOWM4YTllYWY3Y2ZiNTMwZC4uNjNhNzRjOGZiMDFhZDdkY2ExYTg0
MjAyOTZmZDMzN2JiMGU2OTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC0yMTMsNyArMjEz
LDYgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIG1fYm91bmRzOwogICAgIEludFNpemUgbV9jb250
ZW50Qm91bmRzOwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247Ci0gICAgSW50U2l6ZSBt
X21heFNjcm9sbFBvc2l0aW9uOwogCiAgICAgLy8gV2hldGhlciB0aGUgImJhY2siIG9mIHRoaXMg
bGF5ZXIgc2hvdWxkIGRyYXcuCiAgICAgYm9vbCBtX2RvdWJsZVNpZGVkOwpAQCAtMjM1LDYgKzIz
NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RyYXdzQ29udGVudDsKIAogICAgIEludFNpemUg
bV9zY3JvbGxEZWx0YTsKKyAgICBJbnRTaXplIG1fbWF4U2Nyb2xsUG9zaXRpb247CiAKICAgICAv
LyBQcm9wZXJ0aWVzIG93bmVkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgQ0NMYXllckltcGwuCiAgICAg
Ly8gRGVidWdnaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMDQ2MWJk
ZjliN2MxOGUyNGE3ZTg5ZmM4OTc0YTNlYjZiNTlmMTI1YS4uZDg1OGVlYmIzZjFhMmQ2MTM2Zjkz
ODExNjU0YzE0NjgzODJmMzQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBA
IC0xMzEsNiArMTMxLDggQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmZpbmlzaENvbW1pdE9uSW1w
bFRocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKiBob3N0SW1wbCkKICAgICBob3N0SW1wbC0+c2V0
SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMpOwogICAgIGhv
c3RJbXBsLT5zZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0obV96b29tQW5pbWF0b3JUcmFuc2Zvcm0p
OwogICAgIGhvc3RJbXBsLT5zZXRWaWV3cG9ydCh2aWV3cG9ydFNpemUoKSk7CisgICAgaG9zdElt
cGwtPnNldFBhZ2VTY2FsZShwYWdlU2NhbGUoKSk7CisgICAgaG9zdEltcGwtPnNldFBhZ2VTY2Fs
ZUZhY3RvckxpbWl0cyhtX21pblNjYWxlLCBtX21heFNjYWxlKTsKIAogICAgIC8vIFN5bmNocm9u
aXplIHRyZWVzLCBpZiBvbmUgZXhpc3RzIGF0IGFsbC4uLgogICAgIGlmIChyb290TGF5ZXIoKSkK
QEAgLTIyNSw2ICsyMjcsMjUgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldFZpZXdwb3J0KGNv
bnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCit2
b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNjYWxlKGZsb2F0IHBhZ2VTY2FsZSkKK3sKKyAg
ICBpZiAocGFnZVNjYWxlID09IG1fcGFnZVNjYWxlKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3BhZ2VTY2FsZSA9IHBhZ2VTY2FsZTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCit2b2lk
IENDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblNjYWxl
LCBmbG9hdCBtYXhTY2FsZSkKK3sKKyAgICBpZiAobWluU2NhbGUgPT0gbV9taW5TY2FsZSAmJiBt
YXhTY2FsZSA9PSBtX21heFNjYWxlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21pblNjYWxl
ID0gbWluU2NhbGU7CisgICAgbV9tYXhTY2FsZSA9IG1heFNjYWxlOworICAgIHNldE5lZWRzQ29t
bWl0KCk7Cit9CisKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzZXRWaXNpYmxlKGJvb2wgdmlzaWJs
ZSkKIHsKICAgICBpZiAobV92aXNpYmxlID09IHZpc2libGUpCkBAIC00MzgsMTUgKzQ1OSwxNSBA
QCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6Y2xlYXJQZW5kaW5nVXBkYXRlKCkKICAgICBtX3VwZGF0
ZUxpc3QuY2xlYXIoKTsKIH0KIAotdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmFwcGx5U2Nyb2xsRGVs
dGFzKGNvbnN0IENDU2Nyb2xsVXBkYXRlU2V0JiBpbmZvKQordm9pZCBDQ0xheWVyVHJlZUhvc3Q6
OmFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgQ0NTY3JvbGxBbmRTY2FsZVNldCYgaW5mbykKIHsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluZm8uc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
aW50IGxheWVySWQgPSBpbmZvW2ldLmxheWVySWQ7Ci0gICAgICAgIEludFNpemUgc2Nyb2xsRGVs
dGEgPSBpbmZvW2ldLnNjcm9sbERlbHRhOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5m
by5zY3JvbGxzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGludCBsYXllcklkID0gaW5mby5zY3Jv
bGxzW2ldLmxheWVySWQ7CisgICAgICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBpbmZvLnNjcm9s
bHNbaV0uc2Nyb2xsRGVsdGE7CiAKICAgICAgICAgLy8gRklYTUU6IHB1c2hpbmcgc2Nyb2xsIG9m
ZnNldHMgdG8gbm9uLXJvb3QgbGF5ZXJzIG5vdCBpbXBsZW1lbnRlZAogICAgICAgICBpZiAocm9v
dExheWVyKCktPmlkKCkgPT0gbGF5ZXJJZCkKLSAgICAgICAgICAgIG1fY2xpZW50LT5hcHBseVNj
cm9sbERlbHRhKHNjcm9sbERlbHRhKTsKKyAgICAgICAgICAgIG1fY2xpZW50LT5hcHBseVNjcm9s
bEFuZFNjYWxlKHNjcm9sbERlbHRhLCBpbmZvLnBhZ2VTY2FsZSk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmgKaW5kZXggMmUyZDhmYzY5YWYwOTI2ZmFiMmU1ZmQwMTA0ZjU2MTQzNzZiYjU0ZC4u
NDhlYjBlZGQzYzYwNzExZGI0MGUyNzE4ZjM1MmVlYTJiYjViMzIyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0LmgKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgVGV4dHVyZU1hbmFnZXI7CiBj
bGFzcyBDQ0xheWVyVHJlZUhvc3RDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBh
bmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0
IHBhZ2VTY2FsZSkgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQz
RD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpID0gMDsKQEAgLTE1
Nyw2ICsxNTcsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmlld3BvcnQoY29uc3QgSW50U2l6
ZSYgdmlld3BvcnRTaXplKTsKIAogICAgIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmlld3BvcnRTaXplOyB9CisKKyAgICB2b2lkIHNldFBhZ2VTY2FsZShm
bG9hdCk7CisgICAgZmxvYXQgcGFnZVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlU2NhbGU7
IH0KKworICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblNjYWxlLCBm
bG9hdCBtYXhTY2FsZSk7CisKICAgICBUZXh0dXJlTWFuYWdlciogY29udGVudHNUZXh0dXJlTWFu
YWdlcigpIGNvbnN0OwogCiAgICAgYm9vbCB2aXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV92aXNp
YmxlOyB9CkBAIC0xNjcsNyArMTczLDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlTGF5ZXJz
KCk7CiAKICAgICB2b2lkIHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoR3JhcGhpY3NDb250ZXh0
M0QqLCBDQ1RleHR1cmVVcGRhdGVyJik7Ci0gICAgdm9pZCBhcHBseVNjcm9sbERlbHRhcyhjb25z
dCBDQ1Njcm9sbFVwZGF0ZVNldCYpOworICAgIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25z
dCBDQ1Njcm9sbEFuZFNjYWxlU2V0Jik7CiAgICAgdm9pZCBzdGFydFJhdGVMaW1pdGVyKEdyYXBo
aWNzQ29udGV4dDNEKik7CiAgICAgdm9pZCBzdG9wUmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0
M0QqKTsKIApAQCAtMjA4LDYgKzIxNCw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhdmVXaGVl
bEV2ZW50SGFuZGxlcnM7CiAgICAgdHlwZWRlZiBIYXNoTWFwPEdyYXBoaWNzQ29udGV4dDNEKiwg
UmVmUHRyPFJhdGVMaW1pdGVyPiA+IFJhdGVMaW1pdGVyTWFwOwogICAgIFJhdGVMaW1pdGVyTWFw
IG1fcmF0ZUxpbWl0ZXJzOworCisgICAgZmxvYXQgbV9wYWdlU2NhbGU7CisgICAgZmxvYXQgbV9t
aW5TY2FsZSwgbV9tYXhTY2FsZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Q29tbW9uLmgKaW5kZXggZTRkNDk2Mzc0MThiNzliMzBlYzBjMzBkMWZiMGYzYmRhMjE2MzU1
YS4uNDJjMWYwNjAyNzgwOGVhMDEzMmE5YWI1ZjVjYWFiNzE2YWI4NzgwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKQEAgLTUxLDcgKzUxLDEwIEBAIHB1YmxpYzoK
ICAgICB9OwogfTsKIAotdHlwZWRlZiBWZWN0b3I8Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3Jv
bGxVcGRhdGVJbmZvPiBDQ1Njcm9sbFVwZGF0ZVNldDsKK3N0cnVjdCBDQ1Njcm9sbEFuZFNjYWxl
U2V0IHsKKyAgICBWZWN0b3I8Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZv
PiBzY3JvbGxzOworICAgIGZsb2F0IHBhZ2VTY2FsZTsKK307CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IExheWVyVHlwZT4KIEludFJlY3QgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNp
YmxlTGF5ZXJSZWN0KExheWVyVHlwZSogbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdEltcGwuY3BwCmluZGV4IDUxZDkyZjUwMmJkYTkwMWVjYmExNjUwZTFhMTMwZTc5ODQwODAz
YmIuLjdlYzQ2NDNjOGRjYWI2ZWY0YjM0Yjg0NGQ5ZGI2NTI1YTY2YWYxYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC01MCw2ICs1MCwxMSBAQCBDQ0xheWVy
VHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhvc3RJbXBsKGNvbnN0IENDU2V0dGluZ3MmIHNldHRp
bmdzLCBDQ0xheWVyVHJlZQogICAgICwgbV9zZXR0aW5ncyhzZXR0aW5ncykKICAgICAsIG1fdmlz
aWJsZSh0cnVlKQogICAgICwgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKGZhbHNlKQorICAgICwg
bV9wYWdlU2NhbGUoMSkKKyAgICAsIG1fc2NhbGVEZWx0YSgxKQorICAgICwgbV9taW5TY2FsZSgw
KQorICAgICwgbV9tYXhTY2FsZSgwKQorICAgICwgbV9waW5jaEdlc3R1cmVBY3RpdmUoZmFsc2Up
CiB7CiAgICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKIH0KQEAgLTY4LDYgKzcz
LDkgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpiZWdpbkNvbW1pdCgpCiAKIHZvaWQgQ0NM
YXllclRyZWVIb3N0SW1wbDo6Y29tbWl0Q29tcGxldGUoKQogeworICAgIC8vIFJlY29tcHV0ZSBt
YXggc2Nyb2xsIHBvc2l0aW9uOyBtdXN0IGJlIGFmdGVyIGxheWVyIGNvbnRlbnQgYm91bmRzIGFy
ZQorICAgIC8vIHVwZGF0ZWQuCisgICAgdXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24oKTsKIH0KIAog
R3JhcGhpY3NDb250ZXh0M0QqIENDTGF5ZXJUcmVlSG9zdEltcGw6OmNvbnRleHQoKQpAQCAtMTYy
LDggKzE3MCw3NSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFZpZXdwb3J0KGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKIHsKICAgICBib29sIGNoYW5nZWQgPSB2aWV3cG9ydFNp
emUgIT0gbV92aWV3cG9ydFNpemU7CiAgICAgbV92aWV3cG9ydFNpemUgPSB2aWV3cG9ydFNpemU7
Ci0gICAgaWYgKGNoYW5nZWQpCisgICAgaWYgKGNoYW5nZWQpIHsKKyAgICAgICAgdXBkYXRlTWF4
U2Nyb2xsUG9zaXRpb24oKTsKICAgICAgICAgbV9sYXllclJlbmRlcmVyLT52aWV3cG9ydENoYW5n
ZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0UGFnZVNjYWxl
KGZsb2F0IHBhZ2VTY2FsZSkKK3sKKyAgICAvLyBNYWludGFpbiBjb25zdGFudCB0aGUgcHJvZHVj
dCBvZiBtX3BhZ2VTY2FsZSAqIG1fc2NhbGVEZWx0YS4KKyAgICBmbG9hdCBzY2FsZUNoYW5nZSA9
IHBhZ2VTY2FsZSAvIG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG9sZE1hZ25pZnlTY2FsZSA9IG1f
cGFnZVNjYWxlICogbV9zY2FsZURlbHRhOworICAgIG1fcGFnZVNjYWxlID0gcGFnZVNjYWxlOwor
CisgICAgc2V0U2NhbGVEZWx0YShvbGRNYWduaWZ5U2NhbGUgLyBwYWdlU2NhbGUpOworCisgICAg
Ly8gV2UgYWxzbyBuZWVkIHRvIGNvbnZlcnQgaW1wbC1zaWRlIHNjcm9sbCBkZWx0YXMgdG8gcGFn
ZVNjYWxlIHNwYWNlLgorICAgIGlmIChtX3Jvb3RMYXllckltcGwgJiYgbV9yb290TGF5ZXJJbXBs
LT5zY3JvbGxhYmxlKCkpIHsKKyAgICAgICAgSW50U2l6ZSBzY3JvbGxEZWx0YSA9IG1fcm9vdExh
eWVySW1wbC0+c2Nyb2xsRGVsdGEoKTsKKyAgICAgICAgc2Nyb2xsRGVsdGEuc2NhbGUoc2NhbGVD
aGFuZ2UpOworICAgICAgICBtX3Jvb3RMYXllckltcGwtPnNldFNjcm9sbERlbHRhKHNjcm9sbERl
bHRhKTsKKyAgICB9Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0U2NhbGVEZWx0
YShmbG9hdCBkZWx0YSkKK3sKKyAgICAvLyBDbGFtcCB0byB0aGUgY3VycmVudCBtaW4vbWF4IGxp
bWl0cy4KKyAgICBmbG9hdCBmaW5hbE1hZ25pZnlTY2FsZSA9IG1fcGFnZVNjYWxlICogZGVsdGE7
CisgICAgaWYgKG1fbWluU2NhbGUgJiYgZmluYWxNYWduaWZ5U2NhbGUgPCBtX21pblNjYWxlKQor
ICAgICAgICBkZWx0YSA9IG1fbWluU2NhbGUgLyBtX3BhZ2VTY2FsZTsKKyAgICBlbHNlIGlmICht
X21heFNjYWxlICYmIGZpbmFsTWFnbmlmeVNjYWxlID4gbV9tYXhTY2FsZSkKKyAgICAgICAgZGVs
dGEgPSBtX21heFNjYWxlIC8gbV9wYWdlU2NhbGU7CisKKyAgICBib29sIGNoYW5nZWQgPSBkZWx0
YSAhPSBtX3NjYWxlRGVsdGE7CisgICAgbV9zY2FsZURlbHRhID0gZGVsdGE7CisKKyAgICBpZiAo
Y2hhbmdlZCkgeworICAgICAgICB1cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpOworCisgICAgICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IGRlbHRhTWF0cml4OworICAgICAgICBkZWx0YU1hdHJpeC5z
Y2FsZShtX3NjYWxlRGVsdGEpOworICAgICAgICBtX2xheWVyUmVuZGVyZXItPnNldFBhZ2VNYWdu
aWZ5VHJhbnNmb3JtKGRlbHRhTWF0cml4KTsKKyAgICB9Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVI
b3N0SW1wbDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblNjYWxlLCBmbG9hdCBt
YXhTY2FsZSkKK3sKKyAgICBtX21pblNjYWxlID0gbWluU2NhbGU7CisgICAgbV9tYXhTY2FsZSA9
IG1heFNjYWxlOworCisgICAgLy8gVGhpcyB3aWxsIGNsYW1wIG1fc2NhbGVEZWx0YSBhbmQgYXBw
bHkgc2lkZSBlZmZlY3RzIGlmIGNsYW1wZWQuCisgICAgc2V0U2NhbGVEZWx0YShtX3NjYWxlRGVs
dGEpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnVwZGF0ZU1heFNjcm9sbFBvc2l0
aW9uKCkKK3sKKyAgICBpZiAoIW1fcm9vdExheWVySW1wbCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgRmxvYXRTaXplIHZpZXdCb3VuZHMgPSBtX3ZpZXdwb3J0U2l6ZTsKKyAgICB2aWV3Qm91bmRz
LnNjYWxlKDEgLyBtX3NjYWxlRGVsdGEpOworCisgICAgSW50U2l6ZSBtYXhTY3JvbGwgPSBtX3Jv
b3RMYXllckltcGwtPmNvbnRlbnRCb3VuZHMoKSAtIGV4cGFuZGVkSW50U2l6ZSh2aWV3Qm91bmRz
KTsKKyAgICAvLyBUaGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBjb250ZW50cyBp
biBzb21lIGNhc2VzLCBzdWNoIGFzCisgICAgLy8gaGF2aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFy
IGJ1dCBubyBob3Jpem9udGFsIG92ZXJmbG93LgorICAgIG1heFNjcm9sbC5jbGFtcE5lZ2F0aXZl
VG9aZXJvKCk7CisKKyAgICBtX3Jvb3RMYXllckltcGwtPnNldE1heFNjcm9sbFBvc2l0aW9uKG1h
eFNjcm9sbCk7CisKKyAgICAvLyBUT0RPKGFlbGlhcyk6IEFsc28gdXBkYXRlIHN1YmxheWVycy4K
IH0KIAogdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0o
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHpvb20pCkBAIC0xODcsMTkgKzI2Miw2MCBAQCBi
b29sIENDTGF5ZXJUcmVlSG9zdEltcGw6OmhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKQogICAgIHJl
dHVybiBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnM7CiB9CiAKLVBhc3NPd25QdHI8Q0NTY3JvbGxV
cGRhdGVTZXQ+IENDTGF5ZXJUcmVlSG9zdEltcGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMoKQordm9p
ZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVCZWdpbigpCiB7Ci0gICAgT3duUHRy
PENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvID0gYWRvcHRQdHIobmV3IENDU2Nyb2xsVXBk
YXRlU2V0KCkpOworICAgIG1fcGluY2hHZXN0dXJlQWN0aXZlID0gdHJ1ZTsKK30KKwordm9pZCBD
Q0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRh
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50
UG9pbnQmIGFuY2hvcikKK3sKKyAgICBUUkFDRV9FVkVOVCgiQ0NMYXllclRyZWVIb3N0SW1wbDo6
cGluY2hHZXN0dXJlVXBkYXRlIiwgdGhpcywgMCk7CisKKyAgICBpZiAobWFnbmlmeURlbHRhID09
IDEuMCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghbV9yb290TGF5ZXJJbXBsKQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBLZWVwIHRoZSBjZW50ZXItb2YtcGluY2ggYW5jaG9yIHNwZWNp
ZmllZCBieSAoeCwgeSkgaW4gYSBzdGFibGUKKyAgICAvLyBwb3NpdGlvbiBvdmVyIHRoZSBjb3Vy
c2Ugb2YgdGhlIG1hZ25pZnkuCisgICAgRmxvYXRQb2ludCBwcmV2U2NhbGVBbmNob3IoYW5jaG9y
LngoKSAvIG1fc2NhbGVEZWx0YSwgYW5jaG9yLnkoKSAvIG1fc2NhbGVEZWx0YSk7CisgICAgc2V0
U2NhbGVEZWx0YShtX3NjYWxlRGVsdGEgKiBtYWduaWZ5RGVsdGEpOworICAgIEZsb2F0UG9pbnQg
bmV3U2NhbGVBbmNob3IoYW5jaG9yLngoKSAvIG1fc2NhbGVEZWx0YSwgYW5jaG9yLnkoKSAvIG1f
c2NhbGVEZWx0YSk7CisKKyAgICBGbG9hdFNpemUgbW92ZSA9IHByZXZTY2FsZUFuY2hvciAtIG5l
d1NjYWxlQW5jaG9yOworCisgICAgc2Nyb2xsUm9vdExheWVyKHJvdW5kZWRJbnRTaXplKG1vdmUp
KTsKKworICAgIG1fY2xpZW50LT5zZXROZWVkc1JlZHJhd09uSW1wbFRocmVhZCgpOworfQorCit2
b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUVuZCgpCit7CisgICAgbV9waW5j
aEdlc3R1cmVBY3RpdmUgPSBmYWxzZTsKKworICAgIG1fY2xpZW50LT5zZXROZWVkc0NvbW1pdE9u
SW1wbFRocmVhZCgpOworfQorCitQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IENDTGF5
ZXJUcmVlSG9zdEltcGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMoKQoreworICAgIE93blB0cjxDQ1Nj
cm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gYWRvcHRQdHIobmV3IENDU2Nyb2xsQW5kU2Nh
bGVTZXQoKSk7CisgICAgc2Nyb2xsSW5mby0+cGFnZVNjYWxlID0gbV9wYWdlU2NhbGU7CisKKyAg
ICBib29sIGRpZE1vdmUgPSByb290TGF5ZXIoKSAmJiAoIXJvb3RMYXllcigpLT5zY3JvbGxEZWx0
YSgpLmlzWmVybygpIHx8IG1fc2NhbGVEZWx0YSAhPSAxLjBmKTsKKyAgICBpZiAoIWRpZE1vdmUg
fHwgbV9waW5jaEdlc3R1cmVBY3RpdmUpCisgICAgICAgIHJldHVybiBzY3JvbGxJbmZvLnJlbGVh
c2UoKTsKKwogICAgIC8vIEZJWE1FOiB0cmFjayBzY3JvbGxzIGZyb20gbGF5ZXJzIG90aGVyIHRo
YW4gdGhlIHJvb3QKLSAgICBpZiAocm9vdExheWVyKCkgJiYgIXJvb3RMYXllcigpLT5zY3JvbGxE
ZWx0YSgpLmlzWmVybygpKSB7Ci0gICAgICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6U2Nyb2xs
VXBkYXRlSW5mbyBpbmZvOwotICAgICAgICBpbmZvLmxheWVySWQgPSByb290TGF5ZXIoKS0+aWQo
KTsKLSAgICAgICAgaW5mby5zY3JvbGxEZWx0YSA9IHJvb3RMYXllcigpLT5zY3JvbGxEZWx0YSgp
OwotICAgICAgICBzY3JvbGxJbmZvLT5hcHBlbmQoaW5mbyk7Ci0KLSAgICAgICAgcm9vdExheWVy
KCktPnNldFNjcm9sbFBvc2l0aW9uKHJvb3RMYXllcigpLT5zY3JvbGxQb3NpdGlvbigpICsgcm9v
dExheWVyKCktPnNjcm9sbERlbHRhKCkpOwotICAgICAgICByb290TGF5ZXIoKS0+c2V0U2Nyb2xs
RGVsdGEoSW50U2l6ZSgpKTsKLSAgICB9CisgICAgc2Nyb2xsSW5mby0+cGFnZVNjYWxlID0gbV9w
YWdlU2NhbGUgKiBtX3NjYWxlRGVsdGE7CisgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3Jv
bGxVcGRhdGVJbmZvIHNjcm9sbDsKKyAgICBzY3JvbGwubGF5ZXJJZCA9IHJvb3RMYXllcigpLT5p
ZCgpOworICAgIHNjcm9sbC5zY3JvbGxEZWx0YSA9IHJvb3RMYXllcigpLT5zY3JvbGxEZWx0YSgp
OworICAgIHNjcm9sbEluZm8tPnNjcm9sbHMuYXBwZW5kKHNjcm9sbCk7CisKKyAgICByb290TGF5
ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24ocm9vdExheWVyKCktPnNjcm9sbFBvc2l0aW9uKCkgKyBy
b290TGF5ZXIoKS0+c2Nyb2xsRGVsdGEoKSk7CisgICAgcm9vdExheWVyKCktPnNldFNjcm9sbERl
bHRhKEludFNpemUoKSk7CisKICAgICByZXR1cm4gc2Nyb2xsSW5mby5yZWxlYXNlKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAppbmRleCA1YTY4ZjBmZTMwODRjZThk
MWY1ZTJhNzBjNzAxYWZhN2M3NTAxNDgyLi4zZGI3Mjg1OTI2N2RmYjQyMjI0YzI1MzEyZTBkNmI4
NjY5M2E4ODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCkBAIC05Nyw5
ICs5NywxNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKCkgY29u
c3QgeyByZXR1cm4gbV92aWV3cG9ydFNpemU7IH0KICAgICB2b2lkIHNldFpvb21BbmltYXRvclRy
YW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogCisgICAgdm9pZCBzZXRQYWdl
U2NhbGUoZmxvYXQpOworICAgIGZsb2F0IHBhZ2VTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFn
ZVNjYWxlOyB9CisgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluU2Nh
bGUsIGZsb2F0IG1heFNjYWxlKTsKKwogICAgIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXR0aW5nczsgfQogCi0gICAgUGFzc093blB0cjxDQ1Njcm9sbFVw
ZGF0ZVNldD4gcHJvY2Vzc1Njcm9sbERlbHRhcygpOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdl
c3R1cmVCZWdpbigpOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQs
IGNvbnN0IEludFBvaW50Jik7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUVuZCgpOwor
ICAgIFBhc3NPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gcHJvY2Vzc1Njcm9sbERlbHRhcygp
OworICAgIHZvaWQgdXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24oKTsKIAogcHJvdGVjdGVkOgogICAg
IENDTGF5ZXJUcmVlSG9zdEltcGwoY29uc3QgQ0NTZXR0aW5ncyYsIENDTGF5ZXJUcmVlSG9zdElt
cGxDbGllbnQqKTsKQEAgLTEwOCwxMiArMTE2LDIwIEBAIHByb3RlY3RlZDoKICAgICBpbnQgbV9m
cmFtZU51bWJlcjsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHNldFNjYWxlRGVsdGEoZmxvYXQpOwor
CiAgICAgT3duUHRyPExheWVyUmVuZGVyZXJDaHJvbWl1bT4gbV9sYXllclJlbmRlcmVyOwogICAg
IFJlZlB0cjxDQ0xheWVySW1wbD4gbV9yb290TGF5ZXJJbXBsOwogICAgIENDU2V0dGluZ3MgbV9z
ZXR0aW5nczsKICAgICBJbnRTaXplIG1fdmlld3BvcnRTaXplOwogICAgIGJvb2wgbV92aXNpYmxl
OwogICAgIGJvb2wgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzOworCisgICAgZmxvYXQgbV9wYWdl
U2NhbGU7CisgICAgZmxvYXQgbV9zY2FsZURlbHRhOworICAgIGZsb2F0IG1fbWluU2NhbGUsIG1f
bWF4U2NhbGU7CisKKyAgICBib29sIG1fcGluY2hHZXN0dXJlQWN0aXZlOwogfTsKIAogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2Nyb2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKaW5kZXggOTJiOTVkN2RjYWNkNzRhZGYzZGJl
NTZmY2YyYTBkZTA4OThiY2M0Mi4uYzg0MWQyNDNhODA1YTJkMGRmYzI0MDQzZTc5NjgyZWMwMGY4
ZWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKQEAgLTM2LDYgKzM2LDkg
QEAgY2xhc3MgQ0NTY3JvbGxDb250cm9sbGVyIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGhh
dmVXaGVlbEV2ZW50SGFuZGxlcnMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVy
ZUJlZ2luKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQg
bWFnbmlmeURlbHRhLCBjb25zdCBJbnRQb2ludCYgYW5jaG9yKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHBpbmNoR2VzdHVyZUVuZCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIENDU2Nyb2xsQ29u
dHJvbGxlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRl
eCBlYjFkY2Q0ZGRiN2U4OGZiOTkzNmM5Y2RmZDY4YjRkMWYzMWQ3MDJmLi4xMWIyNjQ4ZmI1YWMx
YjYyMGEwZDVkMmMyODI2MzdkNGZjNGY3YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRo
cmVhZFByb3h5LmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94
eTo6ZG9Db21taXQoKQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAgICAgLy8gSW4gdGhlIHNp
bmdsZS10aHJlYWRlZCBjYXNlLCB0aGUgc2Nyb2xsIGRlbHRhcyBzaG91bGQgbmV2ZXIgYmUKICAg
ICAgICAgLy8gdG91Y2hlZCBvbiB0aGUgaW1wbCBsYXllciB0cmVlLgotICAgICAgICBPd25QdHI8
Q0NTY3JvbGxVcGRhdGVTZXQ+IHNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9j
ZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBz
Y3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwog
ICAgICAgICBBU1NFUlQoIXNjcm9sbEluZm8tPnNpemUoKSk7CiAjZW5kaWYKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGRlMTk1ZWYyMjZlMDJkMTY4YjFmNDRkMTQ2NGE3
NDJlYTI0N2I3OTcuLjNjMTM3NzNiNjVjMDc2NDI4OTc1ZDE2ZDlkODc0ZmE5MDBmZjA4YjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0zNDEsMTEgKzM0MSwxMSBAQCBQYXNzT3du
UHRyPENDTWFpblRocmVhZDo6VGFzaz4gQ0NUaHJlYWRQcm94eTo6Y3JlYXRlQmVnaW5GcmFtZUFu
ZENvbW1pdFRhc2tPbkltcAogICAgIC8vIG51bWJlcnMgYmVsb3cgdGhlIGxhc3QgZXhlY3V0ZWQg
b25lLgogICAgIGludCB0aGlzVGFza1NlcXVlbmNlTnVtYmVyID0gbV9udW1CZWdpbkZyYW1lQW5k
Q29tbWl0c0lzc3VlZE9uSW1wbFRocmVhZDsKICAgICBtX251bUJlZ2luRnJhbWVBbmRDb21taXRz
SXNzdWVkT25JbXBsVGhyZWFkKys7Ci0gICAgT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3Jv
bGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOworICAg
IE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0
SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIHJldHVybiBjcmVhdGVNYWluVGhyZWFk
VGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdCwgdGhpc1Rhc2tT
ZXF1ZW5jZU51bWJlciwgZnJhbWVCZWdpblRpbWUsIHNjcm9sbEluZm8ucmVsZWFzZSgpKTsKIH0K
IAotdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51
bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0
PiBzY3JvbGxJbmZvKQordm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGlu
dCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Ny
b2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8pCiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFk
UHJveHk6OmJlZ2luRnJhbWVBbmRDb21taXQiLCB0aGlzLCAwKTsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwpAQCAtMzUzLDcgKzM1Myw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5G
cmFtZUFuZENvbW1pdChpbnQgc2VxdWVuY2VOdW1iZXIsIGRvdWJsZSBmcmFtZUJlZ2luVGltCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIFNjcm9sbCBkZWx0YXMgbmVlZCB0byBiZSBhcHBsaWVk
IGV2ZW4gaWYgdGhlIGNvbW1pdCB3aWxsIGJlIGRyb3BwZWQuCi0gICAgbV9sYXllclRyZWVIb3N0
LT5hcHBseVNjcm9sbERlbHRhcygqc2Nyb2xsSW5mby5nZXQoKSk7CisgICAgbV9sYXllclRyZWVI
b3N0LT5hcHBseVNjcm9sbEFuZFNjYWxlKCpzY3JvbGxJbmZvLmdldCgpKTsKIAogICAgIC8vIERy
b3AgYmVnaW5GcmFtZUFuZENvbW1pdCBjYWxscyB0aGF0IG9jY3VyIG91dCBvZiBzZXF1ZW5jZS4g
U2VlIGNyZWF0ZUJlZ2luRnJhbWVBbmRDb21taXRUYXNrT25JbXBsVGhyZWFkIGZvcgogICAgIC8v
IGFuIGV4cGxhbmF0aW9uIG9mIGhvdyBvdXQtb2Ytc2VxdWVuY2UgYmVnaW5GcmFtZUFuZENvbW1p
dCB0YXNrcyBjYW4gb2NjdXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggMTY3NmY4Mzcw
YmJlYzBmNDZkOTAxZDk0M2U3M2E1Zjk3MTg5ZjBlMy4uZGZmMDViYmRmNmE5MzNmZTE2OGI1ZmZk
ZGZmY2Y3YmQ5ZDgwN2YyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtODEsNyArODEs
NyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDVGhyZWFkUHJveHkoQ0NMYXllclRyZWVIb3N0
Kik7CiAKICAgICAvLyBDYWxsZWQgb24gQ0NNYWluVGhyZWFkCi0gICAgdm9pZCBiZWdpbkZyYW1l
QW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNz
T3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0Pik7CisgICAgdm9pZCBiZWdpbkZyYW1lQW5kQ29tbWl0
KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPEND
U2Nyb2xsQW5kU2NhbGVTZXQ+KTsKICAgICB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQg
ZnJhbWVOdW1iZXIpOwogCiAgICAgLy8gQ2FsbGVkIG9uIENDVGhyZWFkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmgKaW5k
ZXggMDkxMjY5YzdhYjU0OTA4ZmJmMjg1ODMzYjVlMTg2MGNhM2QyYjMzZi4uNmY1MDA5NjA3NmNk
ZjY2MmI3MjRhMDE4MzQ1Mzc0YzRiMGQ2YWQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaApAQCAtMzcsOSArMzcs
MTEgQEAgcHVibGljOgogICAgIC8vIHNvIHRoYXQgbGF5ZXJzIGNhbiBiZSB1cGRhdGVkIGF0IHRo
ZSBnaXZlbiBmcmFtZSB0aW1lLgogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlQW5kTGF5b3V0KGRv
dWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOwogCi0gICAgLy8gQXBwbGllcyBhIHNjcm9sbCBkZWx0
YSB0byB0aGUgcm9vdCBsYXllci4gVGhpcyBpcyB0cmlnZ2VyZWQgYnkgZXZlbnRzCi0gICAgLy8g
c2VudCB0byB0aGUgY29tcG9zaXRvciB0aHJlYWQgdGhyb3VnaCB0aGUgV2ViQ29tcG9zaXRvciBp
bnRlcmZhY2UuCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgV2ViU2l6
ZSYpID0gMDsKKyAgICAvLyBBcHBsaWVzIGEgc2Nyb2xsIGRlbHRhIHRvIHRoZSByb290IGxheWVy
LCB3aGljaCBpcyBidW5kbGVkIHdpdGggYSBwYWdlCisgICAgLy8gc2NhbGUgZmFjdG9yIHRoYXQg
bWF5IGFwcGx5IGEgQ1NTIHRyYW5zZm9ybSBvbiB0aGUgd2hvbGUgZG9jdW1lbnQgKHVzZWQKKyAg
ICAvLyBmb3IgbW9iaWxlLWRldmljZSBwaW5jaCB6b29taW5nKS4gVGhpcyBpcyB0cmlnZ2VyZWQg
YnkgZXZlbnRzIHNlbnQgdG8gdGhlCisgICAgLy8gY29tcG9zaXRvciB0aHJlYWQgdGhyb3VnaCB0
aGUgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UuCisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xs
QW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlRmFjdG9yKSA9
IDA7CiAKICAgICAvLyBDcmVhdGVzIGEgM0QgY29udGV4dCBzdWl0YWJsZSBmb3IgdGhlIGNvbXBv
c2l0aW5nLiBUaGlzIG1heSBiZSBjYWxsZWQKICAgICAvLyBtb3JlIHRoYW4gb25jZSBpZiB0aGUg
Y29udGV4dCBnZXRzIGxvc3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgK
aW5kZXggNzVlMGJiMDM0M2U4NjM4NGIzYzQzMDlmYTY0ZWRhZWRjYjE5ZjU5Ni4uMmFiZWUxMzAw
ODY5ZDcyMGJkOTc0M2VlYzllOWQxMTljOWNmOGVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaApAQCAtMjA3LDYgKzIwNywxMSBAQCBwdWJsaWM6CiAgICAgV0VCS0lU
X0VYUE9SVCBzdGF0aWMgZG91YmxlIHpvb21MZXZlbFRvWm9vbUZhY3Rvcihkb3VibGUgem9vbUxl
dmVsKTsKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBkb3VibGUgem9vbUZhY3RvclRvWm9vbUxl
dmVsKGRvdWJsZSBmYWN0b3IpOwogCisgICAgLy8gUGFnZVNjYWxlRmFjdG9yIHdpbGwgYmUgZm9y
Y2UtY2xhbXBlZCBiZXR3ZWVuIG1pblNjYWxlIGFuZCBtYXhTY2FsZQorICAgIC8vIChhbmQgdGhl
c2UgdmFsdWVzIHdpbGwgcGVyc2lzdCB1bnRpbCBzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMgaXMg
Y2FsbGVkCisgICAgLy8gYWdhaW4pLgorICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlU2NhbGVGYWN0
b3JMaW1pdHMoZmxvYXQgbWluU2NhbGUsIGZsb2F0IG1heFNjYWxlKSA9IDA7CisKICAgICAvLyBH
ZXRzIHRoZSBzY2FsZSBmYWN0b3Igb2YgdGhlIHBhZ2UsIHdoZXJlIDEuMCBpcyB0aGUgbm9ybWFs
IHNpemUsID4gMS4wCiAgICAgLy8gaXMgc2NhbGVkIHVwLCA8IDEuMCBpcyBzY2FsZWQgZG93bi4K
ICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0ID0gMDsKQEAgLTIyOCw3
ICsyMzMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJTaXplIGZpeGVkTGF5b3V0U2l6ZSgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rml4ZWRMYXlvdXRTaXplKGNvbnN0IFdl
YlNpemUmKSA9IDA7CiAKLQogICAgIC8vIE1lZGlhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgLy8gUGVyZm9ybXMg
dGhlIHNwZWNpZmllZCBhY3Rpb24gb24gdGhlIG5vZGUgYXQgdGhlIGdpdmVuIGxvY2F0aW9uLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwCmlu
ZGV4IGQ4YmQzYTE2MzQxYjc5YzVmYjIyMWQ3YTNmZTIwZDYxODBjNDlhZDcuLjVmOGU5Y2JjYWYz
YzAxM2NmNjJhNDAwNWY4MzIwYjI0YTQ2NTYwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKQEAgLTEyMyw2ICsxMjMsNyBAQCB2b2lk
IFdlYkNvbXBvc2l0b3JJbXBsOjpoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQm
IGV2ZW50KQogICAgICAgICBtX2NsaWVudC0+ZGlkSGFuZGxlSW5wdXRFdmVudCgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorCiAgICAgbV9jbGllbnQtPmRpZE5vdEhhbmRsZUlucHV0RXZlbnQo
dHJ1ZSAvKiBzZW5kVG9XaWRnZXQgKi8pOwogfQogCkBAIC0xMzMsNCArMTM0LDMgQEAgaW50IFdl
YkNvbXBvc2l0b3JJbXBsOjppZGVudGlmaWVyKCkgY29uc3QKIH0KIAogfQotCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHAKaW5kZXgg
ODlkYmJhNjE2NjY0YWE3YmFkZTI2OTA3OTg3OGZhYTNmNmIxZGIxYS4uMzk1ODY0NWI3YTdlOTQ1
MWQ1MDQ4NjU3NTZlY2YxMDYyYWY5ZWMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcApAQCAtNjQsMTAgKzY0LDEwIEBAIHZv
aWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmFuaW1hdGVBbmRMYXlvdXQoZG91YmxlIGZyYW1lQmVn
aW5UaW1lKQogICAgICAgICBtX2NsaWVudC0+YW5pbWF0ZUFuZExheW91dChmcmFtZUJlZ2luVGlt
ZSk7CiB9CiAKLXZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmFwcGx5U2Nyb2xsRGVsdGEoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEpCit2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjph
cHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBm
bG9hdCBwYWdlU2NhbGUpCiB7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+
YXBwbHlTY3JvbGxEZWx0YShXZWJTaXplKGRlbHRhKSk7CisgICAgICAgIG1fY2xpZW50LT5hcHBs
eVNjcm9sbEFuZFNjYWxlKFdlYlNpemUoc2Nyb2xsRGVsdGEpLCBwYWdlU2NhbGUpOwogfQogCiBQ
YXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBXZWJMYXllclRyZWVWaWV3SW1wbDo6Y3JlYXRl
TGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAppbmRleCAxYjEzYmYzNDU5MTMxODFiN2UwN2Q3ZDJi
ZTc4Njg4Y2Y5YzQ0M2JmLi5kNmRkNmUzMzI4NzJjN2M5YWMwZGQwYmRjNjgxZjZmOTBmNGY1M2U5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJ
bXBsLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHJpdmF0ZToKICAgICBXZWJMYXllclRyZWVWaWV3SW1w
bChXZWJMYXllclRyZWVWaWV3Q2xpZW50KiwgY29uc3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFdl
YkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJik7CiAgICAgdmlydHVhbCB+V2ViTGF5ZXJUcmVlVmll
d0ltcGwoKTsKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVC
ZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKTsKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVy
VHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0Zy
YW1lKGludCBmcmFtZU51bWJlcik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY3JlYXRlR3JhcGhp
Y3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKaW5kZXggNDhmYjNlMGE5OGYzYWIyYWMxNTQxNWIwNTc1ZWZhYTMwNDAwYTA4
My4uZWIyYWVjNmIxMzBlYjc2ODkyMTZhYWZjZmJkYTUxOTJiYTgyNmQwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMTg3NSw2ICsxODc1LDIzIEBA
IHZvaWQgV2ViVmlld0ltcGw6OmVuYWJsZUZpeGVkTGF5b3V0TW9kZShib29sIGVuYWJsZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgZnJhbWUtPnZpZXcoKS0+c2V0VXNlRml4ZWRMYXlvdXQoZW5h
YmxlKTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICAvLyBBbHNvIG5v
dGlmeSB0aGUgYmFzZSBsYXllciwgd2hpY2ggUmVuZGVyTGF5ZXJDb21wb3NpdG9yIGRvZXMgbm90
IHNlZS4KKyAgICBpZiAobV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QpIHsKKyAgICAgICAgR3Jh
cGhpY3NMYXllciogcm9vdCA9IG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LT50b3BMZXZlbFJv
b3RMYXllcigpOworICAgICAgICByb290LT5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQo
KTsKKyAgICB9CisKKyAgICB1cGRhdGVMYXllclRyZWVWaWV3cG9ydCgpOworI2VuZGlmCit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5TY2Fs
ZSwgZmxvYXQgbWF4U2NhbGUpCit7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQor
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKG1pblNjYWxlLCBt
YXhTY2FsZSk7CisjZW5kaWYKIH0KIAogV2ViU2l6ZSBXZWJWaWV3SW1wbDo6Zml4ZWRMYXlvdXRT
aXplKCkgY29uc3QKQEAgLTI2NjQsMTIgKzI2ODEsMzAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YW5p
bWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpCiAgICAgbGF5b3V0KCk7CiB9CiAK
LXZvaWQgV2ViVmlld0ltcGw6OmFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xs
RGVsdGEpCit2b2lkIFdlYlZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNp
emUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3RvcikKIHsKICAgICBpZiAoIW1haW5GcmFt
ZUltcGwoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKS0+c2Nyb2xsQnkoc2Nyb2xsRGVs
dGEpOworICAgIGZsb2F0IG9sZFNjYWxlID0gcGFnZVNjYWxlRmFjdG9yKCk7CisgICAgaWYgKCFv
bGRTY2FsZSkKKyAgICAgICAgb2xkU2NhbGUgPSAxLjBmOworCisgICAgaWYgKCFzY2FsZUZhY3Rv
ciB8fCBvbGRTY2FsZSA9PSBzY2FsZUZhY3RvcikKKyAgICAgICAgbWFpbkZyYW1lSW1wbCgpLT5m
cmFtZVZpZXcoKS0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEpOworICAgIGVsc2UgeworICAgICAgICAv
LyBUaGUgcGFnZSBzY2FsZSBjaGFuZ2VkLCBzbyBhcHBseSBhIHNjYWxlIGFuZCBzY3JvbGwgaW4g
YSBzaW5nbGUKKyAgICAgICAgLy8gb3BlcmF0aW9uLiBUaGUgb2xkIHNjcm9sbCBvZmZzZXQgKGFu
ZCBwYXNzZWQtaW4gZGVsdGEpIGFyZQorICAgICAgICAvLyBpbiB0aGUgb2xkIGNvb3JkaW5hdGUg
c3BhY2UsIHNvIHdlIGZpcnN0IG5lZWQgdG8gbXVsdGlwbHkgdGhlbQorICAgICAgICAvLyBieSB0
aGUgcGFnZSBzY2FsZSBkZWx0YS4KKyAgICAgICAgV2ViU2l6ZSBzY3JvbGxPZmZzZXQgPSBtYWlu
RnJhbWUoKS0+c2Nyb2xsT2Zmc2V0KCk7CisgICAgICAgIHNjcm9sbE9mZnNldC53aWR0aCArPSBz
Y3JvbGxEZWx0YS53aWR0aCgpOworICAgICAgICBzY3JvbGxPZmZzZXQuaGVpZ2h0ICs9IHNjcm9s
bERlbHRhLmhlaWdodCgpOworICAgICAgICBmbG9hdCBzY2FsZURlbHRhID0gc2NhbGVGYWN0b3Ig
LyBvbGRTY2FsZTsKKyAgICAgICAgV2ViUG9pbnQgc2NhbGVkU2Nyb2xsT2Zmc2V0KHNjcm9sbE9m
ZnNldC53aWR0aCAqIHNjYWxlRGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzY3JvbGxPZmZzZXQuaGVpZ2h0ICogc2NhbGVEZWx0YSk7CisgICAgICAgIHNjYWxlUGFn
ZShzY2FsZUZhY3Rvciwgc2NhbGVkU2Nyb2xsT2Zmc2V0KTsKKyAgICB9CiB9CiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OmRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpCkBAIC0yNzEx
LDggKzI3NDYsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVMYXllclRyZWVWaWV3cG9ydCgp
CiAgICAgSW50UmVjdCB2aXNpYmxlUmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCh0cnVl
IC8qIGluY2x1ZGUgc2Nyb2xsYmFycyAqLyk7CiAgICAgSW50UG9pbnQgc2Nyb2xsKHZpZXctPnNj
cm9sbFgoKSwgdmlldy0+c2Nyb2xsWSgpKTsKIAotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0LT5zZXRWaWV3cG9ydCh2aXNpYmxlUmVjdC5zaXplKCksIHZpZXctPmNvbnRlbnRzU2l6ZSgp
LCBzY3JvbGwpOworICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LT5zZXRWaWV3cG9ydCh2
aXNpYmxlUmVjdC5zaXplKCksIHZpZXctPmNvbnRlbnRzU2l6ZSgpLCBzY3JvbGwsIHBhZ2VTY2Fs
ZUZhY3RvcigpKTsKICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdwb3J0KHZpc2libGVSZWN0
LnNpemUoKSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRQYWdlU2NhbGUocGFnZVNjYWxlRmFj
dG9yKCkpOwogfQogCiBXZWJHcmFwaGljc0NvbnRleHQzRCogV2ViVmlld0ltcGw6OmdyYXBoaWNz
Q29udGV4dDNEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4
IDk5MTFhNWY4YWMwZWRiOTg5MzE4ZWFjMTEyYTI1ZTU3MGQ2OWUxYmYuLjcwYzY4ZWFlODFhNjA1
ZmQ2ZWU2ZDE2YzFkNzVkMTBlNTJlMjk5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaApAQCAtMTU5LDYgKzE1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZG91YmxlIG1heGltdW1ab29tTGV2ZWwpOwogICAgIHZpcnR1
YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNjYWxl
UGFnZShmbG9hdCBzY2FsZUZhY3RvciwgV2ViUG9pbnQgb3JpZ2luKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblNjYWxlLCBmbG9hdCBtYXhTY2Fs
ZSk7CiAgICAgdmlydHVhbCBib29sIGlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBlbmFibGVGaXhlZExheW91dE1vZGUoYm9vbCBlbmFibGUpOwogICAg
IHZpcnR1YWwgV2ViU2l6ZSBmaXhlZExheW91dFNpemUoKSBjb25zdDsKQEAgLTIxOCw3ICsyMTks
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBDQ0xheWVyVHJlZUhvc3RDbGllbnQKICAgICB2aXJ0dWFs
IHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpOwotICAgIHZpcnR1
YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
ZmxvYXQpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRD
b21taXRBbmREcmF3RnJhbWUoaW50IGZyYW1lTnVtYmVyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjcmVhdGVHcmFwaGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKaW5k
ZXggZmE1YzcwY2JmMWI0MzM5OGExMDIzMTIxZTE3NWE1MDMyNWFjOGEzNi4uYTcxOTgzMDkwYmI0
ODdjYjc3MWJkM2FlMDYyZDE2Mzc1OTI3MTE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKQEAgLTU5LDE0
ICs1OSwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVsdGFz
UmVjdXJzaXZlKGxheWVyLT5jaGlsZHJlbigpW2ldLmdldCgpKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgdm9pZCBleHBlY3RDb250YWlucyhjb25zdCBDQ1Njcm9sbFVwZGF0ZVNldCYgc2Nyb2xsSW5m
bywgaW50IGlkLCBjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKKyAgICBzdGF0aWMgdm9pZCBl
eHBlY3RDb250YWlucyhjb25zdCBDQ1Njcm9sbEFuZFNjYWxlU2V0JiBzY3JvbGxJbmZvLCBpbnQg
aWQsIGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQogICAgIHsKICAgICAgICAgaW50IHRpbWVz
RW5jb3VudGVyZWQgPSAwOwogCi0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2Nyb2xs
SW5mby5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgaWYgKHNjcm9sbEluZm9baV0ubGF5ZXJJ
ZCAhPSBpZCkKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzY3JvbGxJbmZvLnNjcm9s
bHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzY3JvbGxJbmZvLnNjcm9sbHNbaV0u
bGF5ZXJJZCAhPSBpZCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIEFT
U0VSVF9FUShzY3JvbGxJbmZvW2ldLnNjcm9sbERlbHRhLCBzY3JvbGxEZWx0YSk7CisgICAgICAg
ICAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby5zY3JvbGxzW2ldLnNjcm9sbERlbHRhLCBzY3JvbGxE
ZWx0YSk7CiAgICAgICAgICAgICB0aW1lc0VuY291bnRlcmVkKys7CiAgICAgICAgIH0KIApAQCAt
ODQsOCArODQsOCBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHNjcm9sbERlbHRh
Tm9MYXllcnMpCiB7CiAgICAgQVNTRVJUX0ZBTFNFKG1faG9zdEltcGwtPnJvb3RMYXllcigpKTsK
IAotICAgIE93blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwt
PnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgp
LCAwdSk7CisgICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8gPSBtX2hv
c3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8t
PnNjcm9sbHMuc2l6ZSgpLCAwdSk7CiB9CiAKIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVz
dCwgc2Nyb2xsRGVsdGFUcmVlQnV0Tm9DaGFuZ2VzKQpAQCAtMTAwLDE0ICsxMDAsMTQgQEAgVEVT
VF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVRyZWVCdXROb0NoYW5nZXMp
CiAKICAgICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwog
Ci0gICAgT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvOworICAgIE93blB0cjxD
Q1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9z
dEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+
c2l6ZSgpLCAwdSk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAw
dSk7CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsK
IAogICAgIHNjcm9sbEluZm8gPSBtX2hvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7Ci0g
ICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNpemUoKSwgMHUpOworICAgIEFTU0VSVF9FUShzY3Jv
bGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMHUpOwogICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0
YXNSZWN1cnNpdmUocm9vdC5nZXQoKSk7CiB9CiAKQEAgLTEyMSwxMSArMTIxLDExIEBAIFRFU1Rf
RihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFSZXBlYXRlZFNjcm9sbHMpCiAg
ICAgcm9vdC0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEpOwogICAgIG1faG9zdEltcGwtPnNldFJvb3RM
YXllcihyb290KTsKIAotICAgIE93blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5mbzsK
KyAgICBPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbzsKIAogICAgIHNjcm9s
bEluZm8gPSBtX2hvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAgICAgQVNTRVJUX0VR
KHJvb3QtPnNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbFBvc2l0aW9uICsgc2Nyb2xsRGVsdGEpOwot
ICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDF1KTsKKyAgICBBU1NFUlRfRVEoc2Ny
b2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDF1KTsKICAgICBleHBlY3RDb250YWlucygqc2Nyb2xs
SW5mby5nZXQoKSwgcm9vdC0+aWQoKSwgc2Nyb2xsRGVsdGEpOwogICAgIGV4cGVjdENsZWFyZWRT
Y3JvbGxEZWx0YXNSZWN1cnNpdmUocm9vdC5nZXQoKSk7CiAKQEAgLTEzMywxNCArMTMzLDE0IEBA
IFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFSZXBlYXRlZFNjcm9s
bHMpCiAgICAgcm9vdC0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEyKTsKICAgICBzY3JvbGxJbmZvID0g
bV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShyb290LT5z
Y3JvbGxQb3NpdGlvbigpLCBzY3JvbGxQb3NpdGlvbiArIHNjcm9sbERlbHRhICsgc2Nyb2xsRGVs
dGEyKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAxdSk7CisgICAgQVNTRVJU
X0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAxdSk7CiAgICAgZXhwZWN0Q29udGFpbnMo
KnNjcm9sbEluZm8uZ2V0KCksIHJvb3QtPmlkKCksIHNjcm9sbERlbHRhMik7CiAgICAgZXhwZWN0
Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIAogICAgIHJvb3QtPnNj
cm9sbEJ5KEludFNpemUoKSk7CiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NT
Y3JvbGxEZWx0YXMoKTsKICAgICBBU1NFUlRfRVEocm9vdC0+c2Nyb2xsUG9zaXRpb24oKSwgc2Ny
b2xsUG9zaXRpb24gKyBzY3JvbGxEZWx0YSArIHNjcm9sbERlbHRhMik7Ci0gICAgQVNTRVJUX0VR
KHNjcm9sbEluZm8tPnNpemUoKSwgMHUpOworICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3Jv
bGxzLnNpemUoKSwgMHUpOwogICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUo
cm9vdC5nZXQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4IGYzZjA0ODJmNmI0ZGFmZmIwZmY5Yjg1ZjZh
NmZhY2ZkNDYzN2I3MmEuLmY5Njc5OGNkNzZjNjgzMzIzOTBhOTFjZjA5M2M3MzZhZjczYmI1YTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhv
c3RUZXN0LmNwcApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJl
Z2luQ29tbWl0T25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGNvbW1pdENvbXBsZXRlT25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdElt
cGwqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXpl
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6
ZSYsIGZsb2F0KSB7IH0KIH07CiAKIC8vIEFkYXB0cyBDQ0xheWVyVHJlZUhvc3RJbXBsIGZvciB0
ZXN0LiBSdW5zIHJlYWwgY29kZSwgdGhlbiBpbnZva2VzIHRlc3QgaG9va3MuCkBAIC0xNTIsOSAr
MTUyLDkgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlT
Y3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKKyAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgc2Nh
bGUpCiAgICAgewotICAgICAgICBtX3Rlc3RIb29rcy0+YXBwbHlTY3JvbGxEZWx0YShzY3JvbGxE
ZWx0YSk7CisgICAgICAgIG1fdGVzdEhvb2tzLT5hcHBseVNjcm9sbEFuZFNjYWxlKHNjcm9sbERl
bHRhLCBzY2FsZSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBjcmVhdGVMYXllclRyZWVIb3N0Q29udGV4dDNEKCkKQEAgLTYyMyw3ICs2MjMsNiBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5UZXN0KCkKICAgICB7Ci0gICAgICAg
IG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldE1heFNjcm9sbFBvc2l0aW9uKEludFNp
emUoMTAwLCAxMDApKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0
U2Nyb2xsUG9zaXRpb24obV9pbml0aWFsU2Nyb2xsKTsKICAgICAgICAgcG9zdFNldE5lZWRzQ29t
bWl0VG9NYWluVGhyZWFkKCk7CiAgICAgfQpAQCAtNjQ2LDYgKzY0NSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgQ0NMYXllckltcGwqIHJvb3QgPSBpbXBsLT5yb290TGF5ZXIoKTsKICAgICAgICAgRVhQ
RUNUX0VRKHJvb3QtPnNjcm9sbERlbHRhKCksIEludFNpemUoKSk7CiAKKyAgICAgICAgcm9vdC0+
c2V0TWF4U2Nyb2xsUG9zaXRpb24oSW50U2l6ZSgxMDAsIDEwMCkpOwogICAgICAgICByb290LT5z
Y3JvbGxCeShtX3Njcm9sbEFtb3VudCk7CiAKICAgICAgICAgaWYgKGltcGwtPmZyYW1lTnVtYmVy
KCkgPT0gMSkgewpAQCAtNjU5LDcgKzY1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0K
IAotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmIHNjcm9s
bERlbHRhKQorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNp
emUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZSkKICAgICB7CiAgICAgICAgIEludFBvaW50IHBv
c2l0aW9uID0gbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2Nyb2xsUG9zaXRpb24oKTsK
ICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24o
cG9zaXRpb24gKyBzY3JvbGxEZWx0YSk7CkBAIC02OTMsNyArNjkzLDYgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpCiAgICAgewotICAgICAgICBtX2xheWVyVHJlZUhv
c3QtPnJvb3RMYXllcigpLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7
CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9u
KG1faW5pdGlhbFNjcm9sbCk7CiAgICAgICAgIHBvc3RTZXROZWVkc0NvbW1pdFRvTWFpblRocmVh
ZCgpOwogICAgIH0KQEAgLTcxMiw2ICs3MTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqIGltcGwpCiAgICAgewog
ICAgICAgICBDQ0xheWVySW1wbCogcm9vdCA9IGltcGwtPnJvb3RMYXllcigpOworICAgICAgICBy
b290LT5zZXRNYXhTY3JvbGxQb3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CiAKICAgICAgICAg
aWYgKGltcGwtPmZyYW1lTnVtYmVyKCkgPT0gMSkgewogICAgICAgICAgICAgRVhQRUNUX0VRKHJv
b3QtPnNjcm9sbERlbHRhKCksIEludFNpemUoKSk7CkBAIC03MzQsNyArNzM0LDcgQEAgcHVibGlj
OgogICAgICAgICB9CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEo
Y29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xs
QW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlKQogICAgIHsK
ICAgICAgICAgSW50UG9pbnQgcG9zaXRpb24gPSBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigp
LT5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigp
LT5zZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiArIHNjcm9sbERlbHRhKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113985</attachid>
            <date>2011-11-07 21:36:49 -0800</date>
            <delta_ts>2011-11-08 14:22:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71595-20111107213647.patch</filename>
            <type>text/plain</type>
            <size>51234</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkzOTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZDEyMTUyMGUzNWUyODdi
ZDBhNTdiYmNmNjA5ZDA0M2EwYWM1ZTVjLi5kNjcyZDllYzhjZjM3NDk5ODJiMTk2YTNmYjU1Mzc5
OWFlNmI3ODA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTEtMTEtMDcgIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBObyBuZXcgdGVzdHM7IGJ1ZyA3MTUy
OSBmaWxlZCB0byBhZGQgdGhlbSBsYXRlci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVt
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpMYXllckNocm9taXVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldEJvdW5kcyk6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXllckNocm9taXVtOjpzY3JvbGxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21p
dW06OnNldFNjcm9sbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6cGFn
ZVNjYWxlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJD
aHJvbWl1bTo6ZHJhd0xheWVyc0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0UGFnZU1hZ25pZnlUcmFuc2Zvcm0pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29u
dGVudEhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6
dG9wTGV2ZWxSb290TGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpDQ0xh
eWVySW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
ckltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzY3JvbGxhYmxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRTY3JvbGxhYmxlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpDQ0xheWVyVHJlZUhvc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpmaW5pc2hDb21taXRPbkltcGxUaHJlYWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpzZXRQYWdlU2NhbGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFuZFNjYWxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6cGFnZVNjYWxlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OkNDTGF5ZXJU
cmVlSG9zdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6Y29t
bWl0Q29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZFNjcm9sbExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFZpZXdwb3J0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRTY2FsZURlbHRhKToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjp1cGRhdGVNYXhTY3JvbGxQb3Np
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1
cmVCZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdl
c3R1cmVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6cGlu
Y2hHZXN0dXJlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBy
b2Nlc3NTY3JvbGxEZWx0YXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdEltcGw6OnBhZ2VTY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q1NpbmdsZVRocmVhZFByb3h5Ojpkb0NvbW1pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1Ro
cmVhZFByb3h5OjpjcmVhdGVCZWdpbkZyYW1lQW5kQ29tbWl0VGFza09uSW1wbFRocmVhZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisK
IDIwMTEtMTEtMDYgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgogCiAgICAg
ICAgIEZpeCBzb21lIHN0eWxlIGlzc3VlcyBpbiBJbWFnZUJ1ZmZlci5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGQxM2I4ODNmMDNkNjg2YmYwMDY2NDNjZjg3YmVhNGJiZjNlZDU2MzQu
LjI4ZTgxOTRkYzNkODEzMWQxNGVkM2YwYTlmNTRmNjFiYTVkZTBlMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMTEtMDcgIEFsZXhhbmRyZSBFbGlh
cyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGRyYXctdGlt
ZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZpZXdlZCBieSBK
YW1lcyBSb2JpbnNvbi4KKworICAgICAgICAqIHB1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50
Lmg6CisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9z
aXRvckltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxl
KToKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaDoKKyAgICAgICAgKiBzcmMv
V2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5hYmxlRml4
ZWRMYXlvdXRNb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFBhZ2VTY2Fs
ZUZhY3RvckxpbWl0cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphcHBseVNjcm9s
bEFuZFNjYWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUxheWVyVHJl
ZVZpZXdwb3J0KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiB0ZXN0
cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNDTGF5ZXJU
cmVlSG9zdEltcGxUZXN0OjpleHBlY3RDb250YWlucyk6CisgICAgICAgIChXZWJLaXQ6OlRFU1Rf
Rik6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHA6CisgICAgICAgIChX
VEY6OlRlc3RIb29rczo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXVEY6Ok1vY2tM
YXllclRyZWVIb3N0Q2xpZW50OjphcHBseVNjcm9sbEFuZFNjYWxlKToKKyAgICAgICAgKFdURjo6
Q0NMYXllclRyZWVIb3N0VGVzdFNjcm9sbFNpbXBsZTo6YmVnaW5UZXN0KToKKyAgICAgICAgKFdU
Rjo6Q0NMYXllclRyZWVIb3N0VGVzdFNjcm9sbFNpbXBsZTo6ZHJhd0xheWVyc09uQ0NUaHJlYWQp
OgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0U2Nyb2xsU2ltcGxlOjphcHBseVNj
cm9sbEFuZFNjYWxlKToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdFNjcm9sbE11
bHRpcGxlUmVkcmF3OjpiZWdpblRlc3QpOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RU
ZXN0U2Nyb2xsTXVsdGlwbGVSZWRyYXc6OmRyYXdMYXllcnNPbkNDVGhyZWFkKToKKyAgICAgICAg
KFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdFNjcm9sbE11bHRpcGxlUmVkcmF3OjphcHBseVNjcm9s
bEFuZFNjYWxlKToKKwogMjAxMS0xMS0wNSAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVzZSB0aGUgc2VjdXJpdHkgb3JpZ2luIGluc3Rl
YWQgb2YgdGhlIFVSTCB3aGVuIGNoZWNraW5nIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9ucwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhp
Y3NMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNzI5YTlhY2RlY2M0OGVmMDk5
YzJlNWI5YzM3NjA1OTRkMGM2YjE3ZS4uMTU2YjJlOTBlZjQ1ZTY5MDA3ODJlYTU5NDgwOGI2YWQ4
MmUzZmJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCkBAIC02NzAs
NiArNjcwLDEyIEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVPcGFjaXR5T25M
YXllcigpCiAgICAgcHJpbWFyeUxheWVyKCktPnNldE9wYWNpdHkobV9vcGFjaXR5KTsKIH0KIAor
dm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdl
ZCgpCit7CisgICAgaWYgKG1fbGF5ZXIpCisgICAgICAgIG1fbGF5ZXItPnBhZ2VTY2FsZUNoYW5n
ZWQoKTsKK30KKwogYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIEdyYXBoaWNzTGF5ZXI6OmRyYXdzQ29udGVudCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NM
YXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRleCA3MTkwZTUwNTlmYzU2MTY0OTY5NjkwNDk0
M2E1ZTc1YzUzN2M1MzdlLi5mNzNlNzMzNzM5YmExNmE1MjIxMWIzMTFlMjY5YzUzNmJjYWJhNzIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9H
cmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTAwLDYgKzEwMCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBJbnRSZWN0JiBjbGlwKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3luY1JlcXVp
cmVkKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2Vk
KCk7CiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlT3BhY2l0eU9uTGF5ZXIoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmNwcAppbmRleCAxYmU3OTg1NWMxZTZiM2ZlMTI5NzI0MmJjMjk4NDA1NmQ0MDk3
OGJiLi5jYTAwYzIzNTI0Zjc3YTYzYjBlODU5OGJkODEzZjIwMzZjNjA4NjQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmNwcApAQCAtNTgsNiArNTgsNyBAQCBMYXllckNocm9taXVtOjpMYXllckNocm9t
aXVtKENDTGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgOiBtX2RlbGVnYXRlKGRlbGVnYXRl
KQogICAgICwgbV9sYXllcklkKHNfbmV4dExheWVySWQrKykKICAgICAsIG1fcGFyZW50KDApCisg
ICAgLCBtX3Njcm9sbGFibGUoZmFsc2UpCiAgICAgLCBtX2FuY2hvclBvaW50KDAuNSwgMC41KQog
ICAgICwgbV9iYWNrZ3JvdW5kQ29sb3IoMCwgMCwgMCwgMCkKICAgICAsIG1fZGVidWdCb3JkZXJX
aWR0aCgwKQpAQCAtNzIsNiArNzMsNyBAQCBMYXllckNocm9taXVtOjpMYXllckNocm9taXVtKEND
TGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgLCBtX3JlcGxpY2FMYXllcigwKQogICAgICwg
bV9kcmF3T3BhY2l0eSgwKQogICAgICwgbV90YXJnZXRSZW5kZXJTdXJmYWNlKDApCisgICAgLCBt
X3BhZ2VTY2FsZURpcnR5KGZhbHNlKQogewogfQogCkBAIC0yMTAsMTAgKzIxMiwxMiBAQCB2b2lk
IExheWVyQ2hyb21pdW06OnNldEJvdW5kcyhjb25zdCBJbnRTaXplJiBzaXplKQogCiAgICAgbV9i
b3VuZHMgPSBzaXplOwogCi0gICAgaWYgKGZpcnN0UmVzaXplKQorICAgIGlmIChmaXJzdFJlc2l6
ZSB8fCBtX3BhZ2VTY2FsZURpcnR5KQogICAgICAgICBzZXROZWVkc0Rpc3BsYXkoRmxvYXRSZWN0
KDAsIDAsIGJvdW5kcygpLndpZHRoKCksIGJvdW5kcygpLmhlaWdodCgpKSk7CiAgICAgZWxzZQog
ICAgICAgICBzZXROZWVkc0NvbW1pdCgpOworCisgICAgbV9wYWdlU2NhbGVEaXJ0eSA9IGZhbHNl
OwogfQogCiBjb25zdCBMYXllckNocm9taXVtKiBMYXllckNocm9taXVtOjpyb290TGF5ZXIoKSBj
b25zdApAQCAtMjg3LDcgKzI5MSw3IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRp
ZXNUbyhDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudChkcmF3
c0NvbnRlbnQoKSk7CiAgICAgbGF5ZXItPnNldElzTm9uQ29tcG9zaXRlZENvbnRlbnQobV9pc05v
bkNvbXBvc2l0ZWRDb250ZW50KTsKICAgICBsYXllci0+c2V0TWFza3NUb0JvdW5kcyhtX21hc2tz
VG9Cb3VuZHMpOwotICAgIGxheWVyLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtX21heFNjcm9sbFBv
c2l0aW9uKTsKKyAgICBsYXllci0+c2V0U2Nyb2xsYWJsZShtX3Njcm9sbGFibGUpOwogICAgIGxh
eWVyLT5zZXROYW1lKG1fbmFtZSk7CiAgICAgbGF5ZXItPnNldE9wYXF1ZShtX29wYXF1ZSk7CiAg
ICAgbGF5ZXItPnNldE9wYWNpdHkobV9vcGFjaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAppbmRleCBi
YjBlYzYyNjUwMzM2OGY0OTljOTUzMmRkNjk0NDljZWJhMzcwYzk0Li44MmQzYjgxNDdlNmFmYWJk
ZTU0NWUxNjAwODMwNDk2OWQyMTg5MDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBAIC0xMzEsMTMg
KzEzMSwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JvbGxQb3NpdGlvbjsgfQogICAgIHZvaWQgc2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKSB7IG1fc2Nyb2xsUG9zaXRpb24g
PSBzY3JvbGxQb3NpdGlvbjsgfQogCi0gICAgY29uc3QgSW50U2l6ZSYgbWF4U2Nyb2xsUG9zaXRp
b24oKSBjb25zdCB7cmV0dXJuIG1fbWF4U2Nyb2xsUG9zaXRpb247IH0KLSAgICB2b2lkIHNldE1h
eFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFNpemUmIG1heFNjcm9sbFBvc2l0aW9uKSB7IG1fbWF4
U2Nyb2xsUG9zaXRpb24gPSBtYXhTY3JvbGxQb3NpdGlvbjsgfQorICAgIGJvb2wgc2Nyb2xsYWJs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZTsgfQorICAgIHZvaWQgc2V0U2Nyb2xsYWJs
ZShib29sIHNjcm9sbGFibGUpIHsgbV9zY3JvbGxhYmxlID0gdHJ1ZTsgfQogCiAgICAgSW50U2l6
ZSBzY3JvbGxEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIEludFNpemUoKTsgfQogCi0gICAgYm9vbCBz
Y3JvbGxhYmxlKCkgY29uc3QgeyByZXR1cm4gIW1heFNjcm9sbFBvc2l0aW9uKCkuaXNaZXJvKCk7
IH0KLQogICAgIGJvb2wgZG91YmxlU2lkZWQoKSBjb25zdCB7IHJldHVybiBtX2RvdWJsZVNpZGVk
OyB9CiAgICAgdm9pZCBzZXREb3VibGVTaWRlZChib29sIGRvdWJsZVNpZGVkKSB7IG1fZG91Ymxl
U2lkZWQgPSBkb3VibGVTaWRlZDsgc2V0TmVlZHNDb21taXQoKTsgfQogCkBAIC0xNjQsNiArMTYy
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRJc01hc2soYm9vbCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIHVucmVzZXJ2ZUNvbnRlbnRzVGV4dHVyZSgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBiaW5kQ29udGVudHNUZXh0dXJlKCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHBhZ2VTY2Fs
ZUNoYW5nZWQoKSB7IG1fcGFnZVNjYWxlRGlydHkgPSB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lk
IHByb3RlY3RWaXNpYmxlVGlsZVRleHR1cmVzKCkgeyB9CiAKICAgICAvLyBUaGVzZSBleGlzdCBq
dXN0IGZvciBkZWJ1Z2dpbmcgKHZpYSBkcmF3RGVidWdCb3JkZXIoKSkuCkBAIC0yNTIsNyArMjUx
LDcgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIG1fYm91bmRzOwogICAgIEludFJlY3QgbV92aXNp
YmxlTGF5ZXJSZWN0OwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247Ci0gICAgSW50U2l6
ZSBtX21heFNjcm9sbFBvc2l0aW9uOworICAgIGJvb2wgbV9zY3JvbGxhYmxlOwogICAgIEZsb2F0
UG9pbnQgbV9wb3NpdGlvbjsKICAgICBGbG9hdFBvaW50IG1fYW5jaG9yUG9pbnQ7CiAgICAgQ29s
b3IgbV9iYWNrZ3JvdW5kQ29sb3I7CkBAIC0yODMsNiArMjgyLDggQEAgcHJpdmF0ZToKICAgICBJ
bnRSZWN0IG1fZHJhd2FibGVDb250ZW50UmVjdDsKIAogICAgIFN0cmluZyBtX25hbWU7CisKKyAg
ICBib29sIG1fcGFnZVNjYWxlRGlydHk7CiB9OwogCiB2b2lkIHNvcnRMYXllcnMoVmVjdG9yPFJl
ZlB0cjxMYXllckNocm9taXVtPiA+OjppdGVyYXRvciwgVmVjdG9yPFJlZlB0cjxMYXllckNocm9t
aXVtPiA+OjppdGVyYXRvciwgdm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1
bS5jcHAKaW5kZXggZGYyNTQzNTZiZGJkNjFmODJkOTIxZThlOWMwZGNlZWM5YWE1ZThhMi4uMjE3
ZTljNDQxNzQ2ZjI3MWEwMGU0NjIyNmUyNjlkNzhhOTE5OTNlNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgdm9pZCBMYXllclJlbmRl
cmVyQ2hyb21pdW06OmRyYXdMYXllcnNJbnRlcm5hbCgpCiAKICAgICB7CiAgICAgICAgIFRSQUNF
X0VWRU5UKCJMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnNJbnRlcm5hbDo6Y2FsY0Ry
YXdFdGMiLCB0aGlzLCAwKTsKLSAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxh
dGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdERyYXdMYXllciwgcm9vdERyYXdMYXll
ciwgbV96b29tQW5pbWF0b3JUcmFuc2Zvcm0sIG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtLCByZW5k
ZXJTdXJmYWNlTGF5ZXJMaXN0LCBtX2RlZmF1bHRSZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKSwg
Jm1fbGF5ZXJTb3J0ZXIsIG1fY2FwYWJpbGl0aWVzLm1heFRleHR1cmVTaXplKTsKKyAgICAgICAg
Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxp
dHkocm9vdERyYXdMYXllciwgcm9vdERyYXdMYXllciwgbV9wYWdlTWFnbmlmeU1hdHJpeCwgbV9w
YWdlTWFnbmlmeU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9kZWZhdWx0UmVuZGVy
U3VyZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xheWVyU29ydGVyLCBtX2NhcGFiaWxpdGllcy5tYXhU
ZXh0dXJlU2l6ZSk7CiAgICAgfQogCiAgICAgLy8gVGhlIEdMIHZpZXdwb3J0IGNvdmVycyB0aGUg
ZW50aXJlIHZpc2libGUgYXJlYSwgaW5jbHVkaW5nIHRoZSBzY3JvbGxiYXJzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uaAppbmRleCA2NDZlYTZlNWM0NDhhNThjNjEyNDEzNDJiMGY5
YTZlYWRkYWVmNDQ3Li4wMjhlNjY0ZDNjYjllNWY1YjA2ZTZiZWY5ZmM3N2IwZmVjNTEyZGFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clJlbmRlcmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApAQCAtOTgsNiArOTgsOCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHZpZXdwb3J0Q2hhbmdlZCgpOwogCisgICAgdm9pZCBzZXRQYWdlTWFn
bmlmeVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGFnZU1hZ25pZnlNYXRy
aXgpIHsgbV9wYWdlTWFnbmlmeU1hdHJpeCA9IHBhZ2VNYWduaWZ5TWF0cml4OyB9CisKICAgICB2
b2lkIGRyYXdMYXllcnMoKTsKIAogICAgIC8vIHdhaXRzIGZvciByZW5kZXJpbmcgdG8gZmluaXNo
CkBAIC0xOTUsNiArMTk3LDcgQEAgcHJpdmF0ZToKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IG1fcHJvamVjdGlvbk1hdHJpeDsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3dpbmRvd01h
dHJpeDsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3BhZ2VNYWduaWZ5TWF0cml4OwogCiAg
ICAgQ0NSZW5kZXJTdXJmYWNlKiBtX2N1cnJlbnRSZW5kZXJTdXJmYWNlOwogICAgIHVuc2lnbmVk
IG1fb2Zmc2NyZWVuRnJhbWVidWZmZXJJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29u
dGVudEhvc3QuY3BwCmluZGV4IDI1ODM5Yzg4YTk3MzM5ZGU2NzEwZmMwNmNiZWQwOWVhNGJlMjRm
Y2YuLmJjNmEyYTQ5NzgyOGViMjkxZTk4OTdlYjFiYjEyMjIwNzBhNGEyYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRD
b250ZW50SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcApAQCAtNzQsNyArNzQsNyBAQCB2b2lk
IE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0U2Nyb2xsTGF5ZXIoR3JhcGhpY3NMYXllciog
bGF5ZXIpCiAgICAgQVNTRVJUKHNjcm9sbExheWVyKCkpOwogfQogCi12b2lkIE5vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBj
b25zdCBJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlv
bikKK3ZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydChjb25zdCBJbnRT
aXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50
UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBmbG9hdCBwYWdlU2NhbGUpCiB7CiAgICAgaWYgKCFzY3Jv
bGxMYXllcigpKQogICAgICAgICByZXR1cm47CkBAIC04MywxNiArODMsMTYgQEAgdm9pZCBOb25D
b21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0
U2l6ZSwgY29uc3QgSW4KIAogICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXplOwogICAg
IHNjcm9sbExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKLSAgICBJ
bnRTaXplIG1heFNjcm9sbCA9IGNvbnRlbnRzU2l6ZSAtIHZpZXdwb3J0U2l6ZTsKLSAgICAvLyBU
aGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBjb250ZW50cyBpbiBzb21lIGNhc2Vz
LCBzdWNoIGFzCi0gICAgLy8gaGF2aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIGJ1dCBubyBob3Jp
em9udGFsIG92ZXJmbG93LgotICAgIG1heFNjcm9sbC5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7Ci0K
LSAgICBzY3JvbGxMYXllcigpLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtYXhTY3JvbGwpOworICAg
IC8vIER1ZSB0byB0aGUgcG9zc2liaWxpdHkgb2YgcGluY2ggem9vbSwgdGhlIG5vbmNvbXBvc2l0
ZWQgbGF5ZXIgaXMgYWx3YXlzCisgICAgLy8gYXNzdW1lZCB0byBiZSBzY3JvbGxhYmxlLgorICAg
IHNjcm9sbExheWVyKCktPnNldFNjcm9sbGFibGUodHJ1ZSk7CiAgICAgbV9ncmFwaGljc0xheWVy
LT5zZXRTaXplKGNvbnRlbnRzU2l6ZSk7CiAKICAgICBpZiAodmlzaWJsZVJlY3RDaGFuZ2VkKQog
ICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworCisgICAgaWYgKG1f
Z3JhcGhpY3NMYXllci0+cGFnZVNjYWxlRmFjdG9yKCkgIT0gcGFnZVNjYWxlKQorICAgICAgICBt
X2dyYXBoaWNzTGF5ZXItPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQogCiBM
YXllckNocm9taXVtKiBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNjcm9sbExheWVyKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKaW5kZXggMjg2NDc1Y2JkY2RjN2Y1
YjE5MTI0MGFkOGUxYTExNzkwMTRiYjI3YS4uODBhNzBhOWRiZDMxNmVhYTBiZWQyNDlhZTk5YWQz
ODk5ZThmNDA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKQEAg
LTU1LDggKzU1LDkgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50
UmVjdCYpOwogICAgIHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAg
dm9pZCBzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVyKik7Ci0gICAgdm9pZCBzZXRWaWV3cG9y
dChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6
ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKTsKKyAgICB2b2lkIHNldFZpZXdwb3J0
KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXpl
LCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGZsb2F0IHBhZ2VTY2FsZSk7CiAgICAg
dm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpOworICAgIEdyYXBoaWNzTGF5ZXIqIHRv
cExldmVsUm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9ncmFwaGljc0xheWVyLmdldCgpOyB9
CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KFBhc3NP
d25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+IGNvbnRlbnRQYWludCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
SW1wbC5jcHAKaW5kZXggZjVhNWExZDFhN2QwODUxOGUzMjljNjhmNGMyOGQyOWY3ODI4ZjMwZi4u
YmQyYWEwYWZjNDNkNzhlMDFhNjNjOWM0OGQyYWVjYTJhMTIyNzkxMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJJbXBsLmNwcApAQCAtNDIsNiArNDIsNyBAQCBDQ0xheWVySW1wbDo6Q0NMYXllckltcGwoaW50
IGlkKQogICAgICwgbV9sYXllcklkKGlkKQogICAgICwgbV9hbmNob3JQb2ludCgwLjUsIDAuNSkK
ICAgICAsIG1fYW5jaG9yUG9pbnRaKDApCisgICAgLCBtX3Njcm9sbGFibGUoZmFsc2UpCiAgICAg
LCBtX2RvdWJsZVNpZGVkKHRydWUpCiAgICAgLCBtX2xheWVyUHJvcGVydHlDaGFuZ2VkKGZhbHNl
KQogICAgICwgbV9tYXNrc1RvQm91bmRzKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5kZXgg
MmI4ODQzOWQ0ZmYwMzFhYzUxMTYxYjRlMDcxY2ZjYzE2Y2QyNGZmMi4uYjcyY2FlMTBkOTE3MWNl
NjdkYmRiNzRjYjE0YjVlNTE1MzUwYWM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC0xNTgs
NyArMTU4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6
ZSYpOwogCiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBJbnRTaXplJiBzY3JvbGwpOwotICAgIGJv
b2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtYXhTY3JvbGxQb3NpdGlvbigpLmlzWmVy
bygpOyB9CisKKyAgICBib29sIHNjcm9sbGFibGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFi
bGU7IH0KKyAgICB2b2lkIHNldFNjcm9sbGFibGUoYm9vbCBzY3JvbGxhYmxlKSB7IG1fc2Nyb2xs
YWJsZSA9IHNjcm9sbGFibGU7IH0KIAogICAgIGNvbnN0IEludFJlY3QmIHZpc2libGVMYXllclJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3Zpc2libGVMYXllclJlY3Q7IH0KICAgICB2b2lkIHNldFZp
c2libGVMYXllclJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZUxheWVyUmVjdCkgeyBtX3Zpc2li
bGVMYXllclJlY3QgPSB2aXNpYmxlTGF5ZXJSZWN0OyB9CkBAIC0yMTYsNyArMjE4LDcgQEAgcHJp
dmF0ZToKICAgICBJbnRTaXplIG1fYm91bmRzOwogICAgIEludFNpemUgbV9jb250ZW50Qm91bmRz
OwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247Ci0gICAgSW50U2l6ZSBtX21heFNjcm9s
bFBvc2l0aW9uOworICAgIGJvb2wgbV9zY3JvbGxhYmxlOwogICAgIENvbG9yIG1fYmFja2dyb3Vu
ZENvbG9yOwogCiAgICAgLy8gV2hldGhlciB0aGUgImJhY2siIG9mIHRoaXMgbGF5ZXIgc2hvdWxk
IGRyYXcuCkBAIC0yMzksNiArMjQxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHJhd3NDb250
ZW50OwogCiAgICAgSW50U2l6ZSBtX3Njcm9sbERlbHRhOworICAgIEludFNpemUgbV9tYXhTY3Jv
bGxQb3NpdGlvbjsKIAogICAgIC8vIFByb3BlcnRpZXMgb3duZWQgZXhjbHVzaXZlbHkgYnkgdGhp
cyBDQ0xheWVySW1wbC4KICAgICAvLyBEZWJ1Z2dpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcAppbmRleCAxMjc2MWYxYWQwOWE1YjBiMWRjZjM1NjY0ZDhmMjk0NzcxYmE0ZTliLi40
ZjJjMWZiNjI2NGVlN2MzYTllNjE3NTM3YTAyODk4MmY4YWIzM2ZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgQ0NMYXllclRyZWVIb3N0OjpDQ0xh
eWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQsIGNvbnN0IENDU2V0dGlu
Z3MKICAgICAsIG1fc2V0dGluZ3Moc2V0dGluZ3MpCiAgICAgLCBtX3Zpc2libGUodHJ1ZSkKICAg
ICAsIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhmYWxzZSkKKyAgICAsIG1fcGFnZVNjYWxlKDEp
CisgICAgLCBtX21pblBhZ2VTY2FsZSgxKQorICAgICwgbV9tYXhQYWdlU2NhbGUoMSkKIHsKICAg
ICBDQ01haW5UaHJlYWQ6OmluaXRpYWxpemUoKTsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNNYWlu
VGhyZWFkKCkpOwpAQCAtMTMwLDYgKzEzMyw4IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpmaW5p
c2hDb21taXRPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaG9zdEltcGwpCiAgICAg
aG9zdEltcGwtPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMobV9oYXZlV2hlZWxFdmVudEhhbmRs
ZXJzKTsKICAgICBob3N0SW1wbC0+c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKG1fem9vbUFuaW1h
dG9yVHJhbnNmb3JtKTsKICAgICBob3N0SW1wbC0+c2V0Vmlld3BvcnQodmlld3BvcnRTaXplKCkp
OworICAgIGhvc3RJbXBsLT5zZXRQYWdlU2NhbGUocGFnZVNjYWxlKCkpOworICAgIGhvc3RJbXBs
LT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMobV9taW5QYWdlU2NhbGUsIG1fbWF4UGFnZVNjYWxl
KTsKIAogICAgIC8vIFN5bmNocm9uaXplIHRyZWVzLCBpZiBvbmUgZXhpc3RzIGF0IGFsbC4uLgog
ICAgIGlmIChyb290TGF5ZXIoKSkKQEAgLTIyNCw2ICsyMjksMjUgQEAgdm9pZCBDQ0xheWVyVHJl
ZUhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKICAgICBzZXRO
ZWVkc0NvbW1pdCgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNjYWxlKGZs
b2F0IHBhZ2VTY2FsZSkKK3sKKyAgICBpZiAocGFnZVNjYWxlID09IG1fcGFnZVNjYWxlKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3BhZ2VTY2FsZSA9IHBhZ2VTY2FsZTsKKyAgICBzZXROZWVk
c0NvbW1pdCgpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNjYWxlRmFjdG9y
TGltaXRzKGZsb2F0IG1pblNjYWxlLCBmbG9hdCBtYXhTY2FsZSkKK3sKKyAgICBpZiAobWluU2Nh
bGUgPT0gbV9taW5QYWdlU2NhbGUgJiYgbWF4U2NhbGUgPT0gbV9tYXhQYWdlU2NhbGUpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fbWluUGFnZVNjYWxlID0gbWluU2NhbGU7CisgICAgbV9tYXhQ
YWdlU2NhbGUgPSBtYXhTY2FsZTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCiB2b2lkIEND
TGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCiB7CiAgICAgaWYgKG1fdmlz
aWJsZSA9PSB2aXNpYmxlKQpAQCAtNDM3LDE1ICs0NjEsMTUgQEAgdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OmNsZWFyUGVuZGluZ1VwZGF0ZSgpCiAgICAgbV91cGRhdGVMaXN0LmNsZWFyKCk7CiB9CiAK
LXZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbERlbHRhcyhjb25zdCBDQ1Njcm9sbFVw
ZGF0ZVNldCYgaW5mbykKK3ZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFuZFNjYWxl
KGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmIGluZm8pCiB7CiAgICAgLy8gRklYTUU6IHB1c2hp
bmcgc2Nyb2xsIG9mZnNldHMgdG8gbm9uLXJvb3QgbGF5ZXJzIG5vdCBpbXBsZW1lbnRlZAotICAg
IGlmICghaW5mby5zaXplKCkpCisgICAgaWYgKCFpbmZvLnNjcm9sbHMuc2l6ZSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBBU1NFUlQoaW5mby5zaXplKCkgPT0gMSk7Ci0gICAgSW50U2l6ZSBz
Y3JvbGxEZWx0YSA9IGluZm9bMF0uc2Nyb2xsRGVsdGE7Ci0gICAgbV9jbGllbnQtPmFwcGx5U2Ny
b2xsRGVsdGEoc2Nyb2xsRGVsdGEpOworICAgIEFTU0VSVChpbmZvLnNjcm9sbHMuc2l6ZSgpID09
IDEpOworICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBpbmZvLnNjcm9sbHNbMF0uc2Nyb2xsRGVs
dGE7CisgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsQW5kU2NhbGUoc2Nyb2xsRGVsdGEsIGluZm8u
cGFnZVNjYWxlKTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnN0YXJ0UmF0ZUxpbWl0ZXIo
R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmlu
ZGV4IDc1MDczMGRjZWJhNzM2NDgzZWNjZDI4MDg4NDEwODcwNzMyYjE4Y2IuLjc1MTk1NDVlMTc1
MDRiNmEyNGNjMWE3NDI4OTZhNjgxYTc1Mjc5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5oCkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIFRleHR1cmVNYW5hZ2VyOwogY2xhc3MgQ0NMYXll
clRyZWVIb3N0Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZUFuZExh
eW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlT
Y3JvbGxEZWx0YShjb25zdCBJbnRTaXplJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhcHBseVNj
cm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUp
ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUxh
eWVyVHJlZUhvc3RDb250ZXh0M0QoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY3JlYXRl
R3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2VzcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRD
b21taXRBbmREcmF3RnJhbWUoaW50IGZyYW1lTnVtYmVyKSA9IDA7CkBAIC0xNTgsNiArMTU4LDEy
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0
U2l6ZSk7CiAKICAgICBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUoKSBjb25zdCB7IHJldHVy
biBtX3ZpZXdwb3J0U2l6ZTsgfQorCisgICAgdm9pZCBzZXRQYWdlU2NhbGUoZmxvYXQpOworICAg
IGZsb2F0IHBhZ2VTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlOyB9CisKKyAgICB2
b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5TY2FsZSwgZmxvYXQgbWF4U2Nh
bGUpOworCiAgICAgVGV4dHVyZU1hbmFnZXIqIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKSBjb25z
dDsKIAogICAgIGJvb2wgdmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzaWJsZTsgfQpAQCAt
MTY4LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUxheWVycygpOwogCiAgICAg
dm9pZCB1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4dDNEKiwgQ0NUZXh0
dXJlVXBkYXRlciYpOwotICAgIHZvaWQgYXBwbHlTY3JvbGxEZWx0YXMoY29uc3QgQ0NTY3JvbGxV
cGRhdGVTZXQmKTsKKyAgICB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgQ0NTY3JvbGxB
bmRTY2FsZVNldCYpOwogICAgIHZvaWQgc3RhcnRSYXRlTGltaXRlcihHcmFwaGljc0NvbnRleHQz
RCopOwogICAgIHZvaWQgc3RvcFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKik7CiAKQEAg
LTIwOSw2ICsyMTUsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXZlV2hlZWxFdmVudEhhbmRs
ZXJzOwogICAgIHR5cGVkZWYgSGFzaE1hcDxHcmFwaGljc0NvbnRleHQzRCosIFJlZlB0cjxSYXRl
TGltaXRlcj4gPiBSYXRlTGltaXRlck1hcDsKICAgICBSYXRlTGltaXRlck1hcCBtX3JhdGVMaW1p
dGVyczsKKworICAgIGZsb2F0IG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG1fbWluUGFnZVNjYWxl
LCBtX21heFBhZ2VTY2FsZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
Q29tbW9uLmgKaW5kZXggNjlkNTg0ZDRkMGVhYmFmYWNlN2QwNTFjMzg2NTJhZWE4YjRiMTg4OC4u
NTI5YjNiMzIwY2Y3MjQ0ZTJlNDE5OGVmMTk3ZTVjNDNkYzViNjlhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKQEAgLTUxLDcgKzUxLDEwIEBAIHB1YmxpYzoKICAg
ICB9OwogfTsKIAotdHlwZWRlZiBWZWN0b3I8Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3JvbGxV
cGRhdGVJbmZvPiBDQ1Njcm9sbFVwZGF0ZVNldDsKK3N0cnVjdCBDQ1Njcm9sbEFuZFNjYWxlU2V0
IHsKKyAgICBWZWN0b3I8Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZvPiBz
Y3JvbGxzOworICAgIGZsb2F0IHBhZ2VTY2FsZTsKK307CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExh
eWVyVHlwZT4KIEludFJlY3QgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxl
TGF5ZXJSZWN0KExheWVyVHlwZSogbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dEltcGwuY3BwCmluZGV4IGZlMDkzMjZlNGIyOTkwNTZmMmQ3NWIzZWIxZTZhZTMyMzhjYzQ2ZTYu
LjhhY2I1NGJiYzQ1NmNlYTBjMGM0MTZiZWVjMjRlMDJmYjk3MDY0ZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC01MCw2ICs1MCwxMSBAQCBDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhvc3RJbXBsKGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdz
LCBDQ0xheWVyVHJlZQogICAgICwgbV9zZXR0aW5ncyhzZXR0aW5ncykKICAgICAsIG1fdmlzaWJs
ZSh0cnVlKQogICAgICwgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKGZhbHNlKQorICAgICwgbV9w
YWdlU2NhbGUoMSkKKyAgICAsIG1fc2NhbGVEZWx0YSgxKQorICAgICwgbV9taW5QYWdlU2NhbGUo
MCkKKyAgICAsIG1fbWF4UGFnZVNjYWxlKDApCisgICAgLCBtX3BpbmNoR2VzdHVyZUFjdGl2ZShm
YWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwogfQpAQCAtNjgs
NiArNzMsOSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmJlZ2luQ29tbWl0KCkKIAogdm9p
ZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21taXRDb21wbGV0ZSgpCiB7CisgICAgLy8gUmVjb21w
dXRlIG1heCBzY3JvbGwgcG9zaXRpb247IG11c3QgYmUgYWZ0ZXIgbGF5ZXIgY29udGVudCBib3Vu
ZHMgYXJlCisgICAgLy8gdXBkYXRlZC4KKyAgICB1cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpOwog
fQogCiBHcmFwaGljc0NvbnRleHQzRCogQ0NMYXllclRyZWVIb3N0SW1wbDo6Y29udGV4dCgpCkBA
IC0xMjgsNyArMTM2LDcgQEAgc3RhdGljIENDTGF5ZXJJbXBsKiBmaW5kU2Nyb2xsTGF5ZXIoQ0NM
YXllckltcGwqIGxheWVyKQogICAgIGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgaWYgKCFsYXllci0+bWF4U2Nyb2xsUG9zaXRpb24oKS5pc1plcm8oKSkKKyAgICBpZiAobGF5
ZXItPnNjcm9sbGFibGUoKSkKICAgICAgICAgcmV0dXJuIGxheWVyOwogCiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBsYXllci0+Y2hpbGRyZW4oKS5zaXplKCk7ICsraSkgewpAQCAtMTgwLDEw
ICsxODgsODIgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3RJbXBsOjppbml0aWFsaXplTGF5ZXJSZW5k
ZXJlcihQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPgogCiB2b2lkIENDTGF5ZXJUcmVlSG9z
dEltcGw6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKIHsKLSAgICBi
b29sIGNoYW5nZWQgPSB2aWV3cG9ydFNpemUgIT0gbV92aWV3cG9ydFNpemU7CisgICAgaWYgKHZp
ZXdwb3J0U2l6ZSA9PSBtX3ZpZXdwb3J0U2l6ZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV92
aWV3cG9ydFNpemUgPSB2aWV3cG9ydFNpemU7Ci0gICAgaWYgKGNoYW5nZWQpCi0gICAgICAgIG1f
bGF5ZXJSZW5kZXJlci0+dmlld3BvcnRDaGFuZ2VkKCk7CisgICAgdXBkYXRlTWF4U2Nyb2xsUG9z
aXRpb24oKTsKKyAgICBtX2xheWVyUmVuZGVyZXItPnZpZXdwb3J0Q2hhbmdlZCgpOworfQorCit2
b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZShmbG9hdCBwYWdlU2NhbGUpCit7
CisgICAgaWYgKCFwYWdlU2NhbGUgfHwgcGFnZVNjYWxlID09IG1fcGFnZVNjYWxlKQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBNYWludGFpbiBjb25zdGFudCB0aGUgcHJvZHVjdCBvZiBtX3Bh
Z2VTY2FsZSAqIG1fc2NhbGVEZWx0YS4KKyAgICBmbG9hdCBzY2FsZUNoYW5nZSA9IHBhZ2VTY2Fs
ZSAvIG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG9sZE1hZ25pZnlTY2FsZSA9IG1fcGFnZVNjYWxl
ICogbV9zY2FsZURlbHRhOworICAgIG1fcGFnZVNjYWxlID0gcGFnZVNjYWxlOworCisgICAgc2V0
U2NhbGVEZWx0YShvbGRNYWduaWZ5U2NhbGUgLyBwYWdlU2NhbGUpOworCisgICAgLy8gV2UgYWxz
byBuZWVkIHRvIGNvbnZlcnQgaW1wbC1zaWRlIHNjcm9sbCBkZWx0YXMgdG8gcGFnZVNjYWxlIHNw
YWNlLgorICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiBtX3Njcm9sbExheWVySW1wbC0+c2Ny
b2xsYWJsZSgpKSB7CisgICAgICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBtX3Njcm9sbExheWVy
SW1wbC0+c2Nyb2xsRGVsdGEoKTsKKyAgICAgICAgc2Nyb2xsRGVsdGEuc2NhbGUoc2NhbGVDaGFu
Z2UpOworICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2Nyb2xsRGVsdGEoc2Nyb2xsRGVs
dGEpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRTY2FsZURlbHRh
KGZsb2F0IGRlbHRhKQoreworICAgIC8vIENsYW1wIHRvIHRoZSBjdXJyZW50IG1pbi9tYXggbGlt
aXRzLgorICAgIGZsb2F0IGZpbmFsTWFnbmlmeVNjYWxlID0gbV9wYWdlU2NhbGUgKiBkZWx0YTsK
KyAgICBpZiAobV9taW5QYWdlU2NhbGUgJiYgZmluYWxNYWduaWZ5U2NhbGUgPCBtX21pblBhZ2VT
Y2FsZSkKKyAgICAgICAgZGVsdGEgPSBtX21pblBhZ2VTY2FsZSAvIG1fcGFnZVNjYWxlOworICAg
IGVsc2UgaWYgKG1fbWF4UGFnZVNjYWxlICYmIGZpbmFsTWFnbmlmeVNjYWxlID4gbV9tYXhQYWdl
U2NhbGUpCisgICAgICAgIGRlbHRhID0gbV9tYXhQYWdlU2NhbGUgLyBtX3BhZ2VTY2FsZTsKKwor
ICAgIGlmIChkZWx0YSA9PSBtX3NjYWxlRGVsdGEpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
c2NhbGVEZWx0YSA9IGRlbHRhOworCisgICAgdXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24oKTsKKwor
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGRlbHRhTWF0cml4OworICAgIGRlbHRhTWF0cml4LnNj
YWxlKG1fc2NhbGVEZWx0YSk7CisgICAgbV9sYXllclJlbmRlcmVyLT5zZXRQYWdlTWFnbmlmeVRy
YW5zZm9ybShkZWx0YU1hdHJpeCk7Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2V0
UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VTY2FsZSwgZmxvYXQgbWF4UGFnZVNj
YWxlKQoreworICAgIG1fbWluUGFnZVNjYWxlID0gbWluUGFnZVNjYWxlOworICAgIG1fbWF4UGFn
ZVNjYWxlID0gbWF4UGFnZVNjYWxlOworCisgICAgLy8gVGhpcyB3aWxsIGNsYW1wIG1fc2NhbGVE
ZWx0YSBhbmQgYXBwbHkgc2lkZSBlZmZlY3RzIGlmIGNsYW1wZWQuCisgICAgc2V0U2NhbGVEZWx0
YShtX3NjYWxlRGVsdGEpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnVwZGF0ZU1h
eFNjcm9sbFBvc2l0aW9uKCkKK3sKKyAgICBpZiAoIW1fc2Nyb2xsTGF5ZXJJbXBsIHx8ICFtX3Nj
cm9sbExheWVySW1wbC0+Y2hpbGRyZW4oKS5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IEZsb2F0U2l6ZSB2aWV3Qm91bmRzID0gbV92aWV3cG9ydFNpemU7CisgICAgdmlld0JvdW5kcy5z
Y2FsZSgxIC8gbV9zY2FsZURlbHRhKTsKKworICAgIC8vIFRPRE8oYWVsaWFzKTogSGFyZGNvZGlu
ZyB0aGUgZmlyc3QgY2hpbGQgaGVyZSBpcyB3ZWlyZC4gVGhpbmsgb2YKKyAgICAvLyBhIGNsZWFu
ZXIgd2F5IHRvIGdldCB0aGUgY29udGVudEJvdW5kcyBvbiB0aGUgSW1wbCBzaWRlLgorICAgIElu
dFNpemUgbWF4U2Nyb2xsID0gbV9zY3JvbGxMYXllckltcGwtPmNoaWxkcmVuKClbMF0tPmNvbnRl
bnRCb3VuZHMoKSAtIGV4cGFuZGVkSW50U2l6ZSh2aWV3Qm91bmRzKTsKKyAgICAvLyBUaGUgdmll
d3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBjb250ZW50cyBpbiBzb21lIGNhc2VzLCBzdWNo
IGFzCisgICAgLy8gaGF2aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIGJ1dCBubyBob3Jpem9udGFs
IG92ZXJmbG93LgorICAgIG1heFNjcm9sbC5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7CisKKyAgICBt
X3Njcm9sbExheWVySW1wbC0+c2V0TWF4U2Nyb2xsUG9zaXRpb24obWF4U2Nyb2xsKTsKKworICAg
IC8vIFRPRE8oYWVsaWFzKTogQWxzbyB1cGRhdGUgc3VibGF5ZXJzLgogfQogCiB2b2lkIENDTGF5
ZXJUcmVlSG9zdEltcGw6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgem9vbSkKQEAgLTIwNywyMCArMjg3LDYxIEBAIGJvb2wgQ0NMYXllclRyZWVI
b3N0SW1wbDo6aGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpCiAgICAgcmV0dXJuIG1faGF2ZVdoZWVs
RXZlbnRIYW5kbGVyczsKIH0KIAotUGFzc093blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gQ0NMYXll
clRyZWVIb3N0SW1wbDo6cHJvY2Vzc1Njcm9sbERlbHRhcygpCit2b2lkIENDTGF5ZXJUcmVlSG9z
dEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKCkKIHsKLSAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVT
ZXQ+IHNjcm9sbEluZm8gPSBhZG9wdFB0cihuZXcgQ0NTY3JvbGxVcGRhdGVTZXQoKSk7Ci0gICAg
Ly8gRklYTUU6IHRyYWNrIHNjcm9sbHMgZnJvbSBsYXllcnMgb3RoZXIgdGhhbiB0aGUgcm9vdAot
ICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiAhbV9zY3JvbGxMYXllckltcGwtPnNjcm9sbERl
bHRhKCkuaXNaZXJvKCkpIHsKLSAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3JvbGxV
cGRhdGVJbmZvIGluZm87Ci0gICAgICAgIGluZm8ubGF5ZXJJZCA9IG1fc2Nyb2xsTGF5ZXJJbXBs
LT5pZCgpOwotICAgICAgICBpbmZvLnNjcm9sbERlbHRhID0gbV9zY3JvbGxMYXllckltcGwtPnNj
cm9sbERlbHRhKCk7Ci0gICAgICAgIHNjcm9sbEluZm8tPmFwcGVuZChpbmZvKTsKLQotICAgICAg
ICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2Nyb2xsUG9zaXRpb24obV9zY3JvbGxMYXllckltcGwt
PnNjcm9sbFBvc2l0aW9uKCkgKyBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKSk7Ci0g
ICAgICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRQb3NpdGlvbihtX3Njcm9sbExheWVySW1wbC0+
cG9zaXRpb24oKSAtIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKLSAgICAgICAg
bV9zY3JvbGxMYXllckltcGwtPnNldFNjcm9sbERlbHRhKEludFNpemUoKSk7CisgICAgbV9waW5j
aEdlc3R1cmVBY3RpdmUgPSB0cnVlOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBp
bmNoR2VzdHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQb2ludCYgYW5jaG9yKQoreworICAg
IFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVVcGRhdGUiLCB0
aGlzLCAwKTsKKworICAgIGlmIChtYWduaWZ5RGVsdGEgPT0gMS4wKQorICAgICAgICByZXR1cm47
CisgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
S2VlcCB0aGUgY2VudGVyLW9mLXBpbmNoIGFuY2hvciBzcGVjaWZpZWQgYnkgKHgsIHkpIGluIGEg
c3RhYmxlCisgICAgLy8gcG9zaXRpb24gb3ZlciB0aGUgY291cnNlIG9mIHRoZSBtYWduaWZ5Lgor
ICAgIEZsb2F0UG9pbnQgcHJldlNjYWxlQW5jaG9yKGFuY2hvci54KCkgLyBtX3NjYWxlRGVsdGEs
IGFuY2hvci55KCkgLyBtX3NjYWxlRGVsdGEpOworICAgIHNldFNjYWxlRGVsdGEobV9zY2FsZURl
bHRhICogbWFnbmlmeURlbHRhKTsKKyAgICBGbG9hdFBvaW50IG5ld1NjYWxlQW5jaG9yKGFuY2hv
ci54KCkgLyBtX3NjYWxlRGVsdGEsIGFuY2hvci55KCkgLyBtX3NjYWxlRGVsdGEpOworCisgICAg
RmxvYXRTaXplIG1vdmUgPSBwcmV2U2NhbGVBbmNob3IgLSBuZXdTY2FsZUFuY2hvcjsKKworICAg
IHNjcm9sbFJvb3RMYXllcihyb3VuZGVkSW50U2l6ZShtb3ZlKSk7CisKKyAgICBtX2NsaWVudC0+
c2V0TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQoKTsKK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJ
bXBsOjpwaW5jaEdlc3R1cmVFbmQoKQoreworICAgIG1fcGluY2hHZXN0dXJlQWN0aXZlID0gZmFs
c2U7CisKKyAgICBtX2NsaWVudC0+c2V0TmVlZHNDb21taXRPbkltcGxUaHJlYWQoKTsKK30KKwor
UGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwcm9j
ZXNzU2Nyb2xsRGVsdGFzKCkKK3sKKyAgICBPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gc2Ny
b2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBDQ1Njcm9sbEFuZFNjYWxlU2V0KCkpOworICAgIGJvb2wg
ZGlkTW92ZSA9IG1fc2Nyb2xsTGF5ZXJJbXBsICYmICghbV9zY3JvbGxMYXllckltcGwtPnNjcm9s
bERlbHRhKCkuaXNaZXJvKCkgfHwgbV9zY2FsZURlbHRhICE9IDEuMGYpOworICAgIGlmICghZGlk
TW92ZSB8fCBtX3BpbmNoR2VzdHVyZUFjdGl2ZSkgeworICAgICAgICBzY3JvbGxJbmZvLT5wYWdl
U2NhbGUgPSBtX3BhZ2VTY2FsZTsKKyAgICAgICAgcmV0dXJuIHNjcm9sbEluZm8ucmVsZWFzZSgp
OwogICAgIH0KKworICAgIC8vIEZJWE1FOiB0cmFjayBzY3JvbGxzIGZyb20gbGF5ZXJzIG90aGVy
IHRoYW4gdGhlIHJvb3QKKyAgICBzY3JvbGxJbmZvLT5wYWdlU2NhbGUgPSBtX3BhZ2VTY2FsZSAq
IG1fc2NhbGVEZWx0YTsKKyAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OlNjcm9sbFVwZGF0ZUlu
Zm8gc2Nyb2xsOworICAgIHNjcm9sbC5sYXllcklkID0gbV9zY3JvbGxMYXllckltcGwtPmlkKCk7
CisgICAgc2Nyb2xsLnNjcm9sbERlbHRhID0gbV9zY3JvbGxMYXllckltcGwtPnNjcm9sbERlbHRh
KCk7CisgICAgc2Nyb2xsSW5mby0+c2Nyb2xscy5hcHBlbmQoc2Nyb2xsKTsKKworICAgIG1fc2Ny
b2xsTGF5ZXJJbXBsLT5zZXRTY3JvbGxQb3NpdGlvbihtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xs
UG9zaXRpb24oKSArIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKKyAgICBtX3Nj
cm9sbExheWVySW1wbC0+c2V0UG9zaXRpb24obV9zY3JvbGxMYXllckltcGwtPnBvc2l0aW9uKCkg
LSBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKSk7CisgICAgbV9zY3JvbGxMYXllcklt
cGwtPnNldFNjcm9sbERlbHRhKEludFNpemUoKSk7CisKICAgICByZXR1cm4gc2Nyb2xsSW5mby5y
ZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAppbmRleCBi
NTNlMjAwMTkxOGM2NTY2NGMyY2NhNjA1NWVhN2U1ZGUwYjRiNjIyLi5jODdjYzFjYzg0NjcwN2M3
ZDc3MDNhN2NlODk3YjA0YTcxMzQyYzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
SW1wbC5oCkBAIC05Nyw5ICs5NywxNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50U2l6ZSYgdmll
d3BvcnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydFNpemU7IH0KICAgICB2b2lkIHNl
dFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogCisg
ICAgdm9pZCBzZXRQYWdlU2NhbGUoZmxvYXQpOworICAgIGZsb2F0IHBhZ2VTY2FsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZVNjYWxlOyB9CisgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JMaW1p
dHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbGUpOworCiAgICAgY29uc3Qg
Q0NTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAKLSAg
ICBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBwcm9jZXNzU2Nyb2xsRGVsdGFzKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCk7CisgICAgdmlydHVhbCB2b2lkIHBp
bmNoR2VzdHVyZVVwZGF0ZShmbG9hdCwgY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0dWFsIHZv
aWQgcGluY2hHZXN0dXJlRW5kKCk7CisgICAgUGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0
PiBwcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgdm9pZCB1cGRhdGVNYXhTY3JvbGxQb3NpdGlv
bigpOwogCiBwcm90ZWN0ZWQ6CiAgICAgQ0NMYXllclRyZWVIb3N0SW1wbChjb25zdCBDQ1NldHRp
bmdzJiwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCopOwpAQCAtMTA4LDYgKzExNiw4IEBAIHBy
b3RlY3RlZDoKICAgICBpbnQgbV9mcmFtZU51bWJlcjsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHNl
dFNjYWxlRGVsdGEoZmxvYXQpOworCiAgICAgT3duUHRyPExheWVyUmVuZGVyZXJDaHJvbWl1bT4g
bV9sYXllclJlbmRlcmVyOwogICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbV9yb290TGF5ZXJJbXBs
OwogICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbV9zY3JvbGxMYXllckltcGw7CkBAIC0xMTUsNiAr
MTI1LDEyIEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKICAgICBib29s
IG1fdmlzaWJsZTsKICAgICBib29sIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVyczsKKworICAgIGZs
b2F0IG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG1fc2NhbGVEZWx0YTsKKyAgICBmbG9hdCBtX21p
blBhZ2VTY2FsZSwgbV9tYXhQYWdlU2NhbGU7CisKKyAgICBib29sIG1fcGluY2hHZXN0dXJlQWN0
aXZlOwogfTsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKaW5kZXggOTJi
OTVkN2RjYWNkNzRhZGYzZGJlNTZmY2YyYTBkZTA4OThiY2M0Mi4uYzg0MWQyNDNhODA1YTJkMGRm
YzI0MDQzZTc5NjgyZWMwMGY4ZWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVy
LmgKQEAgLTM2LDYgKzM2LDkgQEAgY2xhc3MgQ0NTY3JvbGxDb250cm9sbGVyIHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmKSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdl
c3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRhLCBjb25zdCBJbnRQb2ludCYgYW5jaG9yKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUVuZCgpID0gMDsKIAogcHJvdGVjdGVk
OgogICAgIENDU2Nyb2xsQ29udHJvbGxlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRo
cmVhZFByb3h5LmNwcAppbmRleCBlYjFkY2Q0ZGRiN2U4OGZiOTkzNmM5Y2RmZDY4YjRkMWYzMWQ3
MDJmLi4xMWIyNjQ4ZmI1YWMxYjYyMGEwZDVkMmMyODI2MzdkNGZjNGY3YTM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRo
cmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIHZvaWQg
Q0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQoKQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAg
ICAgICAgLy8gSW4gdGhlIHNpbmdsZS10aHJlYWRlZCBjYXNlLCB0aGUgc2Nyb2xsIGRlbHRhcyBz
aG91bGQgbmV2ZXIgYmUKICAgICAgICAgLy8gdG91Y2hlZCBvbiB0aGUgaW1wbCBsYXllciB0cmVl
LgotICAgICAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+IHNjcm9sbEluZm8gPSBtX2xheWVy
VHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgICAgIE93blB0cjxDQ1Nj
cm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vz
c1Njcm9sbERlbHRhcygpOwogICAgICAgICBBU1NFUlQoIXNjcm9sbEluZm8tPnNpemUoKSk7CiAj
ZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGRlMTk1ZWYyMjZl
MDJkMTY4YjFmNDRkMTQ2NGE3NDJlYTI0N2I3OTcuLjNjMTM3NzNiNjVjMDc2NDI4OTc1ZDE2ZDlk
ODc0ZmE5MDBmZjA4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0zNDEsMTEg
KzM0MSwxMSBAQCBQYXNzT3duUHRyPENDTWFpblRocmVhZDo6VGFzaz4gQ0NUaHJlYWRQcm94eTo6
Y3JlYXRlQmVnaW5GcmFtZUFuZENvbW1pdFRhc2tPbkltcAogICAgIC8vIG51bWJlcnMgYmVsb3cg
dGhlIGxhc3QgZXhlY3V0ZWQgb25lLgogICAgIGludCB0aGlzVGFza1NlcXVlbmNlTnVtYmVyID0g
bV9udW1CZWdpbkZyYW1lQW5kQ29tbWl0c0lzc3VlZE9uSW1wbFRocmVhZDsKICAgICBtX251bUJl
Z2luRnJhbWVBbmRDb21taXRzSXNzdWVkT25JbXBsVGhyZWFkKys7Ci0gICAgT3duUHRyPENDU2Ny
b2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Nj
cm9sbERlbHRhcygpOworICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZv
ID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIHJldHVy
biBjcmVhdGVNYWluVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFu
ZENvbW1pdCwgdGhpc1Rhc2tTZXF1ZW5jZU51bWJlciwgZnJhbWVCZWdpblRpbWUsIHNjcm9sbElu
Zm8ucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29t
bWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRy
PENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvKQordm9pZCBDQ1RocmVhZFByb3h5OjpiZWdp
bkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1l
LCBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8pCiB7CiAgICAgVFJB
Q0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVBbmRDb21taXQiLCB0aGlzLCAwKTsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMzUzLDcgKzM1Myw3IEBAIHZvaWQgQ0NU
aHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdChpbnQgc2VxdWVuY2VOdW1iZXIsIGRvdWJs
ZSBmcmFtZUJlZ2luVGltCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFNjcm9sbCBkZWx0YXMg
bmVlZCB0byBiZSBhcHBsaWVkIGV2ZW4gaWYgdGhlIGNvbW1pdCB3aWxsIGJlIGRyb3BwZWQuCi0g
ICAgbV9sYXllclRyZWVIb3N0LT5hcHBseVNjcm9sbERlbHRhcygqc2Nyb2xsSW5mby5nZXQoKSk7
CisgICAgbV9sYXllclRyZWVIb3N0LT5hcHBseVNjcm9sbEFuZFNjYWxlKCpzY3JvbGxJbmZvLmdl
dCgpKTsKIAogICAgIC8vIERyb3AgYmVnaW5GcmFtZUFuZENvbW1pdCBjYWxscyB0aGF0IG9jY3Vy
IG91dCBvZiBzZXF1ZW5jZS4gU2VlIGNyZWF0ZUJlZ2luRnJhbWVBbmRDb21taXRUYXNrT25JbXBs
VGhyZWFkIGZvcgogICAgIC8vIGFuIGV4cGxhbmF0aW9uIG9mIGhvdyBvdXQtb2Ytc2VxdWVuY2Ug
YmVnaW5GcmFtZUFuZENvbW1pdCB0YXNrcyBjYW4gb2NjdXIuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmgKaW5kZXggMTY3NmY4MzcwYmJlYzBmNDZkOTAxZDk0M2U3M2E1Zjk3MTg5ZjBlMy4uZGZmMDVi
YmRmNmE5MzNmZTE2OGI1ZmZkZGZmY2Y3YmQ5ZDgwN2YyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJv
eHkuaApAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDVGhyZWFkUHJv
eHkoQ0NMYXllclRyZWVIb3N0Kik7CiAKICAgICAvLyBDYWxsZWQgb24gQ0NNYWluVGhyZWFkCi0g
ICAgdm9pZCBiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZy
YW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0Pik7CisgICAgdm9pZCBi
ZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5U
aW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+KTsKICAgICB2b2lkIGRpZENvbW1p
dEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpOwogCiAgICAgLy8gQ2FsbGVkIG9uIENDVGhy
ZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRy
ZWVWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRy
ZWVWaWV3Q2xpZW50LmgKaW5kZXggMDkxMjY5YzdhYjU0OTA4ZmJmMjg1ODMzYjVlMTg2MGNhM2Qy
YjMzZi4uNmY1MDA5NjA3NmNkZjY2MmI3MjRhMDE4MzQ1Mzc0YzRiMGQ2YWQ3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGll
bnQuaApAQCAtMzcsOSArMzcsMTEgQEAgcHVibGljOgogICAgIC8vIHNvIHRoYXQgbGF5ZXJzIGNh
biBiZSB1cGRhdGVkIGF0IHRoZSBnaXZlbiBmcmFtZSB0aW1lLgogICAgIHZpcnR1YWwgdm9pZCBh
bmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOwogCi0gICAgLy8gQXBw
bGllcyBhIHNjcm9sbCBkZWx0YSB0byB0aGUgcm9vdCBsYXllci4gVGhpcyBpcyB0cmlnZ2VyZWQg
YnkgZXZlbnRzCi0gICAgLy8gc2VudCB0byB0aGUgY29tcG9zaXRvciB0aHJlYWQgdGhyb3VnaCB0
aGUgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UuCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xs
RGVsdGEoY29uc3QgV2ViU2l6ZSYpID0gMDsKKyAgICAvLyBBcHBsaWVzIGEgc2Nyb2xsIGRlbHRh
IHRvIHRoZSByb290IGxheWVyLCB3aGljaCBpcyBidW5kbGVkIHdpdGggYSBwYWdlCisgICAgLy8g
c2NhbGUgZmFjdG9yIHRoYXQgbWF5IGFwcGx5IGEgQ1NTIHRyYW5zZm9ybSBvbiB0aGUgd2hvbGUg
ZG9jdW1lbnQgKHVzZWQKKyAgICAvLyBmb3IgbW9iaWxlLWRldmljZSBwaW5jaCB6b29taW5nKS4g
VGhpcyBpcyB0cmlnZ2VyZWQgYnkgZXZlbnRzIHNlbnQgdG8gdGhlCisgICAgLy8gY29tcG9zaXRv
ciB0aHJlYWQgdGhyb3VnaCB0aGUgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UuCisgICAgdmlydHVh
bCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEsIGZs
b2F0IHNjYWxlRmFjdG9yKSA9IDA7CiAKICAgICAvLyBDcmVhdGVzIGEgM0QgY29udGV4dCBzdWl0
YWJsZSBmb3IgdGhlIGNvbXBvc2l0aW5nLiBUaGlzIG1heSBiZSBjYWxsZWQKICAgICAvLyBtb3Jl
IHRoYW4gb25jZSBpZiB0aGUgY29udGV4dCBnZXRzIGxvc3QuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggMWNjNGZkMWYyZjM5NTY4ZWJlOGMzYWJhZWVkZmIzNTlh
OGE5YmMyMy4uMTM3NjMxNTJkZjJiMjk4NTM0NDlhMGFhY2NjZDNkOTUxZmYxMjAyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjA3LDYgKzIwNywxMSBAQCBw
dWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgZG91YmxlIHpvb21MZXZlbFRvWm9vbUZh
Y3Rvcihkb3VibGUgem9vbUxldmVsKTsKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBkb3VibGUg
em9vbUZhY3RvclRvWm9vbUxldmVsKGRvdWJsZSBmYWN0b3IpOwogCisgICAgLy8gUGFnZVNjYWxl
RmFjdG9yIHdpbGwgYmUgZm9yY2UtY2xhbXBlZCBiZXR3ZWVuIG1pblBhZ2VTY2FsZSBhbmQgbWF4
UGFnZVNjYWxlCisgICAgLy8gKGFuZCB0aGVzZSB2YWx1ZXMgd2lsbCBwZXJzaXN0IHVudGlsIHNl
dFBhZ2VTY2FsZUZhY3RvckxpbWl0cyBpcyBjYWxsZWQKKyAgICAvLyBhZ2FpbikuCisgICAgdmly
dHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUsIGZs
b2F0IG1heFBhZ2VTY2FsZSkgPSAwOworCiAgICAgLy8gR2V0cyB0aGUgc2NhbGUgZmFjdG9yIG9m
IHRoZSBwYWdlLCB3aGVyZSAxLjAgaXMgdGhlIG5vcm1hbCBzaXplLCA+IDEuMAogICAgIC8vIGlz
IHNjYWxlZCB1cCwgPCAxLjAgaXMgc2NhbGVkIGRvd24uCiAgICAgdmlydHVhbCBmbG9hdCBwYWdl
U2NhbGVGYWN0b3IoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKaW5kZXggZDhiZDNhMTYzNDFiNzljNWZiMjIxZDdhM2Zl
MjBkNjE4MGM0OWFkNy4uY2YzMzMzNTY2ZTQzMTg4ZDllNTMwYWM5YjVmMThkOWYzNGY3OWZlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmNw
cApAQCAtMTMzLDQgKzEzMywzIEBAIGludCBXZWJDb21wb3NpdG9ySW1wbDo6aWRlbnRpZmllcigp
IGNvbnN0CiB9CiAKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TGF5ZXJUcmVlVmlld0ltcGwuY3BwCmluZGV4IDJlNjllYzM0N2NkZDBlNTA1YWU1NWYyYzUwYWNh
YWE5NmQ0ZGExYmYuLmRkYmUwNjQzMWM2NTdlZDM3MzRjNTQxOGZiNzA0ZWFiZjQ0Y2IyMDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1w
bC5jcHAKQEAgLTY1LDEwICs2NSwxMCBAQCB2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjphbmlt
YXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKICAgICAgICAgbV9jbGllbnQtPmFu
aW1hdGVBbmRMYXlvdXQoZnJhbWVCZWdpblRpbWUpOwogfQogCi12b2lkIFdlYkxheWVyVHJlZVZp
ZXdJbXBsOjphcHBseVNjcm9sbERlbHRhKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGRlbHRhKQor
dm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKQogewogICAgIGlmICht
X2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsRGVsdGEoV2ViU2l6ZShkZWx0
YSkpOworICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJTaXplKHNjcm9s
bERlbHRhKSwgcGFnZVNjYWxlKTsKIH0KIAogUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4g
V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKaW5k
ZXggMWIxM2JmMzQ1OTEzMTgxYjdlMDdkN2QyYmU3ODY4OGNmOWM0NDNiZi4uZDZkZDZlMzMyODcy
YzdjOWFjMGRkMGJkYzY4MWY2ZjkwZjRmNTNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCkBAIC00Miw3ICs0Miw3IEBAIHByaXZh
dGU6CiAgICAgV2ViTGF5ZXJUcmVlVmlld0ltcGwoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCosIGNv
bnN0IFdlYkxheWVyJiByb290LCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncyYpOwog
ICAgIHZpcnR1YWwgfldlYkxheWVyVHJlZVZpZXdJbXBsKCk7CiAgICAgdmlydHVhbCB2b2lkIGFu
aW1hdGVBbmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKTsKLSAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlTY3JvbGxEZWx0YShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgdmlydHVhbCB2
b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGZsb2F0IHBhZ2VTY2FsZSk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXllclRyZWVIb3N0Q29udGV4dDNEKCk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4dChib29sIHN1Y2Nlc3MpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDNlNTNiYTlkNTM0
Y2Q4OTc1Y2Y4YWE2YmMwMWY5NDU3NGY2YWI5Y2QuLjYxYTUxYTBmYjYxMTAzNjFkNzRmOWU0NGMz
NWViZGY2Yzc2NzAzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKQEAgLTE4OTIsNiArMTg5MiwyMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjplbmFibGVGaXhl
ZExheW91dE1vZGUoYm9vbCBlbmFibGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZyYW1lLT52
aWV3KCktPnNldFVzZUZpeGVkTGF5b3V0KGVuYWJsZSk7CisKKyNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCisgICAgLy8gQWxzbyBub3RpZnkgdGhlIGJhc2UgbGF5ZXIsIHdoaWNoIFJl
bmRlckxheWVyQ29tcG9zaXRvciBkb2VzIG5vdCBzZWUuCisgICAgaWYgKG1fbm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0KSB7CisgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3QgPSBtX25vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdC0+dG9wTGV2ZWxSb290TGF5ZXIoKTsKKyAgICAgICAgcm9vdC0+ZGV2
aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CisgICAgfQorCisgICAgdXBkYXRlTGF5ZXJU
cmVlVmlld3BvcnQoKTsKKyNlbmRpZgorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRQYWdlU2Nh
bGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbGUpCit7
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKG1pblBhZ2VTY2FsZSwgbWF4UGFnZVNjYWxlKTsKKyNl
bmRpZgogfQogCiBXZWJTaXplIFdlYlZpZXdJbXBsOjpmaXhlZExheW91dFNpemUoKSBjb25zdApA
QCAtMjcwMCwxMiArMjcxNywzMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjphbmltYXRlQW5kTGF5b3V0
KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKICAgICBsYXlvdXQoKTsKIH0KIAotdm9pZCBXZWJWaWV3
SW1wbDo6YXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKK3ZvaWQg
V2ViVmlld0ltcGw6OmFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGZsb2F0IHNjYWxlRmFjdG9yKQogewogICAgIGlmICghbWFpbkZyYW1lSW1wbCgpIHx8ICFt
YWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtYWlu
RnJhbWVJbXBsKCktPmZyYW1lVmlldygpLT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7CisgICAgZmxv
YXQgb2xkU2NhbGUgPSBwYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBpZiAoIW9sZFNjYWxlKQorICAg
ICAgICBvbGRTY2FsZSA9IDEuMGY7CisKKyAgICBpZiAoIXNjYWxlRmFjdG9yIHx8IG9sZFNjYWxl
ID09IHNjYWxlRmFjdG9yKQorICAgICAgICBtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLT5z
Y3JvbGxCeShzY3JvbGxEZWx0YSk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIFRoZSBwYWdlIHNj
YWxlIGNoYW5nZWQsIHNvIGFwcGx5IGEgc2NhbGUgYW5kIHNjcm9sbCBpbiBhIHNpbmdsZQorICAg
ICAgICAvLyBvcGVyYXRpb24uIFRoZSBvbGQgc2Nyb2xsIG9mZnNldCAoYW5kIHBhc3NlZC1pbiBk
ZWx0YSkgYXJlCisgICAgICAgIC8vIGluIHRoZSBvbGQgY29vcmRpbmF0ZSBzcGFjZSwgc28gd2Ug
Zmlyc3QgbmVlZCB0byBtdWx0aXBseSB0aGVtCisgICAgICAgIC8vIGJ5IHRoZSBwYWdlIHNjYWxl
IGRlbHRhLgorICAgICAgICBXZWJTaXplIHNjcm9sbE9mZnNldCA9IG1haW5GcmFtZSgpLT5zY3Jv
bGxPZmZzZXQoKTsKKyAgICAgICAgc2Nyb2xsT2Zmc2V0LndpZHRoICs9IHNjcm9sbERlbHRhLndp
ZHRoKCk7CisgICAgICAgIHNjcm9sbE9mZnNldC5oZWlnaHQgKz0gc2Nyb2xsRGVsdGEuaGVpZ2h0
KCk7CisgICAgICAgIGZsb2F0IHNjYWxlRGVsdGEgPSBzY2FsZUZhY3RvciAvIG9sZFNjYWxlOwor
ICAgICAgICBXZWJQb2ludCBzY2FsZWRTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0LndpZHRoICog
c2NhbGVEZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbE9m
ZnNldC5oZWlnaHQgKiBzY2FsZURlbHRhKTsKKyAgICAgICAgc2NhbGVQYWdlKHNjYWxlRmFjdG9y
LCBzY2FsZWRTY3JvbGxPZmZzZXQpOworICAgIH0KIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6ZGlk
Q29tbWl0QW5kRHJhd0ZyYW1lKGludCBmcmFtZU51bWJlcikKQEAgLTI3NDcsOCArMjc4Miw5IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0KCkKICAgICBJbnRSZWN0
IHZpc2libGVSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyogaW5jbHVkZSBz
Y3JvbGxiYXJzICovKTsKICAgICBJbnRQb2ludCBzY3JvbGwodmlldy0+c2Nyb2xsWCgpLCB2aWV3
LT5zY3JvbGxZKCkpOwogCi0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QtPnNldFZpZXdw
b3J0KHZpc2libGVSZWN0LnNpemUoKSwgdmlldy0+Y29udGVudHNTaXplKCksIHNjcm9sbCk7Cisg
ICAgbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QtPnNldFZpZXdwb3J0KHZpc2libGVSZWN0LnNp
emUoKSwgdmlldy0+Y29udGVudHNTaXplKCksIHNjcm9sbCwgcGFnZVNjYWxlRmFjdG9yKCkpOwog
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnQodmlzaWJsZVJlY3Quc2l6ZSgpKTsKKyAg
ICBtX2xheWVyVHJlZUhvc3QtPnNldFBhZ2VTY2FsZShwYWdlU2NhbGVGYWN0b3IoKSk7CiB9CiAK
IFdlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJWaWV3SW1wbDo6Z3JhcGhpY3NDb250ZXh0M0QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggZGU5YTc5Zjc5OGRl
YWJiMWE1OGJmOGJkNzRmMjI2NTFkNWZkZTZiZi4uODYzNjljZGE1NGFjOWQ0ZDM2NzdhOTdhOGE1
MmE2NjRjNzc5NzkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CkBAIC0xNTksNiArMTU5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkb3VibGUgbWF4aW11bVpvb21MZXZlbCk7CiAgICAgdmlydHVhbCBmbG9hdCBwYWdl
U2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2NhbGVQYWdlKGZsb2F0IHNj
YWxlRmFjdG9yLCBXZWJQb2ludCBvcmlnaW4pOworICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlU2Nh
bGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbGUpOwog
ICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwogICAgIHZpcnR1YWwgYm9vbCBpc0Zp
eGVkTGF5b3V0TW9kZUVuYWJsZWQoKSBjb25zdDsKQEAgLTIyMCw3ICsyMjEsNyBAQCBwdWJsaWM6
CiAKICAgICAvLyBDQ0xheWVyVHJlZUhvc3RDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0
ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBhcHBs
eVNjcm9sbERlbHRhKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQpOwogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5
ZXJUcmVlSG9zdENvbnRleHQzRCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3
RnJhbWUoaW50IGZyYW1lTnVtYmVyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVHcmFw
aGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKaW5kZXggZmE1YzcwY2Jm
MWI0MzM5OGExMDIzMTIxZTE3NWE1MDMyNWFjOGEzNi4uNGM0MzQ4N2VkNWJmMDc3ZjY5NWJmZmQy
NzUyNjZhYmU2Y2FiMzIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKQEAgLTU5LDE0ICs1OSwxNCBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKGxh
eWVyLT5jaGlsZHJlbigpW2ldLmdldCgpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgdm9pZCBleHBl
Y3RDb250YWlucyhjb25zdCBDQ1Njcm9sbFVwZGF0ZVNldCYgc2Nyb2xsSW5mbywgaW50IGlkLCBj
b25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKKyAgICBzdGF0aWMgdm9pZCBleHBlY3RDb250YWlu
cyhjb25zdCBDQ1Njcm9sbEFuZFNjYWxlU2V0JiBzY3JvbGxJbmZvLCBpbnQgaWQsIGNvbnN0IElu
dFNpemUmIHNjcm9sbERlbHRhKQogICAgIHsKICAgICAgICAgaW50IHRpbWVzRW5jb3VudGVyZWQg
PSAwOwogCi0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2Nyb2xsSW5mby5zaXplKCk7
ICsraSkgewotICAgICAgICAgICAgaWYgKHNjcm9sbEluZm9baV0ubGF5ZXJJZCAhPSBpZCkKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzY3JvbGxJbmZvLnNjcm9sbHMuc2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgICAgIGlmIChzY3JvbGxJbmZvLnNjcm9sbHNbaV0ubGF5ZXJJZCAhPSBp
ZCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIEFTU0VSVF9FUShzY3Jv
bGxJbmZvW2ldLnNjcm9sbERlbHRhLCBzY3JvbGxEZWx0YSk7CisgICAgICAgICAgICBBU1NFUlRf
RVEoc2Nyb2xsSW5mby5zY3JvbGxzW2ldLnNjcm9sbERlbHRhLCBzY3JvbGxEZWx0YSk7CiAgICAg
ICAgICAgICB0aW1lc0VuY291bnRlcmVkKys7CiAgICAgICAgIH0KIApAQCAtODQsOCArODQsOCBA
QCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHNjcm9sbERlbHRhTm9MYXllcnMpCiB7
CiAgICAgQVNTRVJUX0ZBTFNFKG1faG9zdEltcGwtPnJvb3RMYXllcigpKTsKIAotICAgIE93blB0
cjxDQ1Njcm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3Jv
bGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAwdSk7CisgICAg
T3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8gPSBtX2hvc3RJbXBsLT5wcm9j
ZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6
ZSgpLCAwdSk7CiB9CiAKIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVs
dGFUcmVlQnV0Tm9DaGFuZ2VzKQpAQCAtMTAwLDE0ICsxMDAsMTQgQEAgVEVTVF9GKENDTGF5ZXJU
cmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVRyZWVCdXROb0NoYW5nZXMpCiAKICAgICBleHBl
Y3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogCi0gICAgT3duUHRy
PENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvOworICAgIE93blB0cjxDQ1Njcm9sbEFuZFNj
YWxlU2V0PiBzY3JvbGxJbmZvOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nl
c3NTY3JvbGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAwdSk7
CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAwdSk7CiAgICAgZXhw
ZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIAogICAgIHNjcm9s
bEluZm8gPSBtX2hvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7Ci0gICAgQVNTRVJUX0VR
KHNjcm9sbEluZm8tPnNpemUoKSwgMHUpOworICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3Jv
bGxzLnNpemUoKSwgMHUpOwogICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUo
cm9vdC5nZXQoKSk7CiB9CiAKQEAgLTExNywxNSArMTE3LDE2IEBAIFRFU1RfRihDQ0xheWVyVHJl
ZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFSZXBlYXRlZFNjcm9sbHMpCiAgICAgSW50U2l6ZSBz
Y3JvbGxEZWx0YSgxMSwgLTE1KTsKICAgICBSZWZQdHI8Q0NMYXllckltcGw+IHJvb3QgPSBDQ0xh
eWVySW1wbDo6Y3JlYXRlKDEwKTsKICAgICByb290LT5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQ
b3NpdGlvbik7CisgICAgcm9vdC0+c2V0U2Nyb2xsYWJsZSh0cnVlKTsKICAgICByb290LT5zZXRN
YXhTY3JvbGxQb3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CiAgICAgcm9vdC0+c2Nyb2xsQnko
c2Nyb2xsRGVsdGEpOwogICAgIG1faG9zdEltcGwtPnNldFJvb3RMYXllcihyb290KTsKIAotICAg
IE93blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5mbzsKKyAgICBPd25QdHI8Q0NTY3Jv
bGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbzsKIAogICAgIHNjcm9sbEluZm8gPSBtX2hvc3RJbXBs
LT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAgICAgQVNTRVJUX0VRKHJvb3QtPnNjcm9sbFBvc2l0
aW9uKCksIHNjcm9sbFBvc2l0aW9uICsgc2Nyb2xsRGVsdGEpOwotICAgIEFTU0VSVF9FUShzY3Jv
bGxJbmZvLT5zaXplKCksIDF1KTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5z
aXplKCksIDF1KTsKICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgcm9vdC0+
aWQoKSwgc2Nyb2xsRGVsdGEpOwogICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNp
dmUocm9vdC5nZXQoKSk7CiAKQEAgLTEzMywxNCArMTM0LDE0IEBAIFRFU1RfRihDQ0xheWVyVHJl
ZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFSZXBlYXRlZFNjcm9sbHMpCiAgICAgcm9vdC0+c2Ny
b2xsQnkoc2Nyb2xsRGVsdGEyKTsKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vz
c1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShyb290LT5zY3JvbGxQb3NpdGlvbigpLCBz
Y3JvbGxQb3NpdGlvbiArIHNjcm9sbERlbHRhICsgc2Nyb2xsRGVsdGEyKTsKLSAgICBBU1NFUlRf
RVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAxdSk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNj
cm9sbHMuc2l6ZSgpLCAxdSk7CiAgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8uZ2V0KCks
IHJvb3QtPmlkKCksIHNjcm9sbERlbHRhMik7CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRh
c1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIAogICAgIHJvb3QtPnNjcm9sbEJ5KEludFNpemUoKSk7
CiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKICAg
ICBBU1NFUlRfRVEocm9vdC0+c2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsUG9zaXRpb24gKyBzY3Jv
bGxEZWx0YSArIHNjcm9sbERlbHRhMik7Ci0gICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNpemUo
KSwgMHUpOworICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMHUpOwog
ICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUocm9vdC5nZXQoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwCmluZGV4IDU5Y2JhYjExMGI2ZDNkZmY2NDk5ZjM0MjM1YTdlYTEyNjk3Y2RlMGEuLjlk
OTFiY2QwZTA1NTkyYTFmMGE3NjBmZDgyYTgyNmJkYjcyMGNiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcApAQCAtNTcs
NyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luQ29tbWl0T25DQ1RocmVh
ZChDQ0xheWVyVHJlZUhvc3RJbXBsKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdENvbXBs
ZXRlT25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJikgeyB9CisgICAgdmlydHVh
bCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYsIGZsb2F0KSB7IH0KIH07
CiAKIC8vIEFkYXB0cyBDQ0xheWVyVHJlZUhvc3RJbXBsIGZvciB0ZXN0LiBSdW5zIHJlYWwgY29k
ZSwgdGhlbiBpbnZva2VzIHRlc3QgaG9va3MuCkBAIC0xNTMsOSArMTUzLDkgQEAgcHVibGljOgog
ICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJ
bnRTaXplJiBzY3JvbGxEZWx0YSkKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2Fs
ZShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgc2NhbGUpCiAgICAgewotICAgICAg
ICBtX3Rlc3RIb29rcy0+YXBwbHlTY3JvbGxEZWx0YShzY3JvbGxEZWx0YSk7CisgICAgICAgIG1f
dGVzdEhvb2tzLT5hcHBseVNjcm9sbEFuZFNjYWxlKHNjcm9sbERlbHRhLCBzY2FsZSk7CiAgICAg
fQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXll
clRyZWVIb3N0Q29udGV4dDNEKCkKQEAgLTYyNCw3ICs2MjQsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgYmVnaW5UZXN0KCkKICAgICB7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
cm9vdExheWVyKCktPnNldE1heFNjcm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDApKTsKKyAg
ICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsYWJsZSh0cnVlKTsK
ICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24o
bV9pbml0aWFsU2Nyb2xsKTsKICAgICAgICAgcG9zdFNldE5lZWRzQ29tbWl0VG9NYWluVGhyZWFk
KCk7CiAgICAgfQpAQCAtNjQ3LDYgKzY0Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgQ0NMYXllcklt
cGwqIHJvb3QgPSBpbXBsLT5yb290TGF5ZXIoKTsKICAgICAgICAgRVhQRUNUX0VRKHJvb3QtPnNj
cm9sbERlbHRhKCksIEludFNpemUoKSk7CiAKKyAgICAgICAgcm9vdC0+c2V0U2Nyb2xsYWJsZSh0
cnVlKTsKKyAgICAgICAgcm9vdC0+c2V0TWF4U2Nyb2xsUG9zaXRpb24oSW50U2l6ZSgxMDAsIDEw
MCkpOwogICAgICAgICByb290LT5zY3JvbGxCeShtX3Njcm9sbEFtb3VudCk7CiAKICAgICAgICAg
aWYgKGltcGwtPmZyYW1lTnVtYmVyKCkgPT0gMSkgewpAQCAtNjYwLDcgKzY2Miw3IEBAIHB1Ymxp
YzoKICAgICAgICAgfQogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRh
KGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9s
bEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZSkKICAgICB7
CiAgICAgICAgIEludFBvaW50IHBvc2l0aW9uID0gbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIo
KS0+c2Nyb2xsUG9zaXRpb24oKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIo
KS0+c2V0U2Nyb2xsUG9zaXRpb24ocG9zaXRpb24gKyBzY3JvbGxEZWx0YSk7CkBAIC02OTQsNyAr
Njk2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpCiAgICAgewot
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRNYXhTY3JvbGxQb3NpdGlv
bihJbnRTaXplKDEwMCwgMTAwKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVy
KCktPnNldFNjcm9sbGFibGUodHJ1ZSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExh
eWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKG1faW5pdGlhbFNjcm9sbCk7CiAgICAgICAgIHBvc3RT
ZXROZWVkc0NvbW1pdFRvTWFpblRocmVhZCgpOwogICAgIH0KQEAgLTcxMyw2ICs3MTUsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVl
SG9zdEltcGwqIGltcGwpCiAgICAgewogICAgICAgICBDQ0xheWVySW1wbCogcm9vdCA9IGltcGwt
PnJvb3RMYXllcigpOworICAgICAgICByb290LT5zZXRTY3JvbGxhYmxlKHRydWUpOworICAgICAg
ICByb290LT5zZXRNYXhTY3JvbGxQb3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CiAKICAgICAg
ICAgaWYgKGltcGwtPmZyYW1lTnVtYmVyKCkgPT0gMSkgewogICAgICAgICAgICAgRVhQRUNUX0VR
KHJvb3QtPnNjcm9sbERlbHRhKCksIEludFNpemUoKSk7CkBAIC03MzUsNyArNzM5LDcgQEAgcHVi
bGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVs
dGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Ny
b2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlKQogICAg
IHsKICAgICAgICAgSW50UG9pbnQgcG9zaXRpb24gPSBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXll
cigpLT5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXll
cigpLT5zZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiArIHNjcm9sbERlbHRhKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114153</attachid>
            <date>2011-11-08 14:22:04 -0800</date>
            <delta_ts>2011-11-08 16:17:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71595-20111108142203.patch</filename>
            <type>text/plain</type>
            <size>51614</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk1OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOWQ5NDA3YjNhMmFiOTA3
ZjBlNTVkNjZmOGUzYzkyMDFjZmY3MjFjLi5mNDZjMjkyMjYwOWI1ZjZkYThhMzY5YTMyMzMyMzU4
NzVkZDZhZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTEtMTEtMDggIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMgKGZpbGVkIDcx
NTI5IHRvIHJlbWVtYmVyIHRvIGRvIGl0IGxhdGVyKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNo
cm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpMYXllckNocm9taXVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldEJvdW5kcyk6CisgICAgICAg
IChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpzY3JvbGxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
Q2hyb21pdW06OnNldFNjcm9sbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1
bTo6cGFnZVNjYWxlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0UGFnZU1hZ25pZnlUcmFuc2Zvcm0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9z
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZp
ZXdwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3Np
dGVkQ29udGVudEhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkNvbXBvc2l0ZWRDb250ZW50
SG9zdDo6dG9wTGV2ZWxSb290TGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBs
OjpDQ0xheWVySW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzY3JvbGxhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRTY3JvbGxhYmxlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpDQ0xheWVyVHJlZUhvc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpmaW5pc2hDb21taXRPbkltcGxUaHJlYWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpzZXRQYWdlU2NhbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFuZFNjYWxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6cGFnZVNjYWxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21t
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OkND
TGF5ZXJUcmVlSG9zdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6Y29tbWl0Q29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZFNjcm9sbExheWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFZpZXdwb3J0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRTY2FsZURlbHRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0
cyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjp1cGRhdGVNYXhTY3Jv
bGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5j
aEdlc3R1cmVCZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpw
aW5jaEdlc3R1cmVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6cGluY2hHZXN0dXJlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdElt
cGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5
ZXJUcmVlSG9zdEltcGw6OnBhZ2VTY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDQ1NpbmdsZVRocmVhZFByb3h5Ojpkb0NvbW1pdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDQ1RocmVhZFByb3h5OjpjcmVhdGVCZWdpbkZyYW1lQW5kQ29tbWl0VGFza09uSW1wbFRocmVh
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
Lmg6CisKIDIwMTEtMTEtMDggIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJlbW92ZSBnZXQoKSBkZWZpbmVkIGluIENyZWRlbnRpYWxTdG9yYWdlU291cC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNTFmYzBkYzQ4OTVkMzJjMTM2ZDExOWIwNGJj
MjFjMDg3ZGRlZjlhZi4uZGU3Njc3MDBhNTU0OTQ5YmUwMTBjOWE5MGJjMzUxYmZhYTRhNTA4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMS0xMS0wOCAg
QWxleGFuZHJlIEVsaWFzICA8YWVsaWFzQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVt
XSBBZGQgZHJhdy10aW1lIHNjYWxlIGRlbHRhIHRvIGNvbXBvc2l0b3IgdGhyZWFkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAgICogcHVibGljL1dlYkxheWVy
VHJlZVZpZXdDbGllbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAq
IHNyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZp
ZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmFwcGx5
U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAqIHNyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oOgor
ICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjplbmFibGVGaXhlZExheW91dE1vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
dXBkYXRlTGF5ZXJUcmVlVmlld3BvcnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q0NMYXllclRyZWVIb3N0SW1wbFRlc3Q6OmV4cGVjdENvbnRhaW5zKToKKyAgICAgICAg
KFdlYktpdDo6VEVTVF9GKToKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNw
cDoKKyAgICAgICAgKFdURjo6VGVzdEhvb2tzOjphcHBseVNjcm9sbEFuZFNjYWxlKToKKyAgICAg
ICAgKFdURjo6TW9ja0xheWVyVHJlZUhvc3RDbGllbnQ6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgor
ICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0U2Nyb2xsU2ltcGxlOjpiZWdpblRlc3Qp
OgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0U2Nyb2xsU2ltcGxlOjpkcmF3TGF5
ZXJzT25DQ1RocmVhZCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxT
aW1wbGU6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhv
c3RUZXN0U2Nyb2xsTXVsdGlwbGVSZWRyYXc6OmJlZ2luVGVzdCk6CisgICAgICAgIChXVEY6OkND
TGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0aXBsZVJlZHJhdzo6ZHJhd0xheWVyc09uQ0NUaHJl
YWQpOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0U2Nyb2xsTXVsdGlwbGVSZWRy
YXc6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorCiAyMDExLTExLTA4ICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkg
bm90aWZpY2F0aW9uIGluIHRoZSBmcm9udC1lbmQgd2hlbiBpbnNwZWN0ZWQgd29ya2VyIHRlcm1p
bmF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDcyOWE5YWNk
ZWNjNDhlZjA5OWMyZTViOWMzNzYwNTk0ZDBjNmIxN2UuLjE1NmIyZTkwZWY0NWU2OTAwNzgyZWE1
OTQ4MDhiNmFkODJlM2ZiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNw
cApAQCAtNjcwLDYgKzY3MCwxMiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRl
T3BhY2l0eU9uTGF5ZXIoKQogICAgIHByaW1hcnlMYXllcigpLT5zZXRPcGFjaXR5KG1fb3BhY2l0
eSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpkZXZpY2VPclBhZ2VTY2FsZUZh
Y3RvckNoYW5nZWQoKQoreworICAgIGlmIChtX2xheWVyKQorICAgICAgICBtX2xheWVyLT5wYWdl
U2NhbGVDaGFuZ2VkKCk7Cit9CisKIGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVtOjpkcmF3c0Nv
bnRlbnQoKSBjb25zdAogewogICAgIHJldHVybiBHcmFwaGljc0xheWVyOjpkcmF3c0NvbnRlbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKaW5kZXggNzE5MGU1MDU5ZmM1NjE2
NDk2OTY5MDQ5NDNhNWU3NWM1MzdjNTM3ZS4uZjczZTczMzczOWJhMTZhNTIyMTFiMzExZTI2OWM1
MzZiY2FiYTcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKQEAgLTEwMCw2
ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eVN5bmNSZXF1aXJlZCgpOwogCisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpOwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggMWJlNzk4NTVjMWU2YjNmZTEyOTcyNDJiYzI5
ODQwNTZkNDA5NzhiYi4uY2EwMGMyMzUyNGY3N2E2M2IwZTg1OThiZDgxM2YyMDM2YzYwODY0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTU4LDYgKzU4LDcgQEAgTGF5ZXJDaHJvbWl1bTo6
TGF5ZXJDaHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgIDogbV9kZWxlZ2F0
ZShkZWxlZ2F0ZSkKICAgICAsIG1fbGF5ZXJJZChzX25leHRMYXllcklkKyspCiAgICAgLCBtX3Bh
cmVudCgwKQorICAgICwgbV9zY3JvbGxhYmxlKGZhbHNlKQogICAgICwgbV9hbmNob3JQb2ludCgw
LjUsIDAuNSkKICAgICAsIG1fYmFja2dyb3VuZENvbG9yKDAsIDAsIDAsIDApCiAgICAgLCBtX2Rl
YnVnQm9yZGVyV2lkdGgoMCkKQEAgLTcyLDYgKzczLDcgQEAgTGF5ZXJDaHJvbWl1bTo6TGF5ZXJD
aHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgICwgbV9yZXBsaWNhTGF5ZXIo
MCkKICAgICAsIG1fZHJhd09wYWNpdHkoMCkKICAgICAsIG1fdGFyZ2V0UmVuZGVyU3VyZmFjZSgw
KQorICAgICwgbV9wYWdlU2NhbGVEaXJ0eShmYWxzZSkKIHsKIH0KIApAQCAtMjEwLDEwICsyMTIs
MTIgQEAgdm9pZCBMYXllckNocm9taXVtOjpzZXRCb3VuZHMoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
IAogICAgIG1fYm91bmRzID0gc2l6ZTsKIAotICAgIGlmIChmaXJzdFJlc2l6ZSkKKyAgICBpZiAo
Zmlyc3RSZXNpemUgfHwgbV9wYWdlU2NhbGVEaXJ0eSkKICAgICAgICAgc2V0TmVlZHNEaXNwbGF5
KEZsb2F0UmVjdCgwLCAwLCBib3VuZHMoKS53aWR0aCgpLCBib3VuZHMoKS5oZWlnaHQoKSkpOwog
ICAgIGVsc2UKICAgICAgICAgc2V0TmVlZHNDb21taXQoKTsKKworICAgIG1fcGFnZVNjYWxlRGly
dHkgPSBmYWxzZTsKIH0KIAogY29uc3QgTGF5ZXJDaHJvbWl1bSogTGF5ZXJDaHJvbWl1bTo6cm9v
dExheWVyKCkgY29uc3QKQEAgLTI4Nyw3ICsyOTEsNyBAQCB2b2lkIExheWVyQ2hyb21pdW06OnB1
c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqIGxheWVyKQogICAgIGxheWVyLT5zZXREcmF3c0Nv
bnRlbnQoZHJhd3NDb250ZW50KCkpOwogICAgIGxheWVyLT5zZXRJc05vbkNvbXBvc2l0ZWRDb250
ZW50KG1faXNOb25Db21wb3NpdGVkQ29udGVudCk7CiAgICAgbGF5ZXItPnNldE1hc2tzVG9Cb3Vu
ZHMobV9tYXNrc1RvQm91bmRzKTsKLSAgICBsYXllci0+c2V0TWF4U2Nyb2xsUG9zaXRpb24obV9t
YXhTY3JvbGxQb3NpdGlvbik7CisgICAgbGF5ZXItPnNldFNjcm9sbGFibGUobV9zY3JvbGxhYmxl
KTsKICAgICBsYXllci0+c2V0TmFtZShtX25hbWUpOwogICAgIGxheWVyLT5zZXRPcGFxdWUobV9v
cGFxdWUpOwogICAgIGxheWVyLT5zZXRPcGFjaXR5KG1fb3BhY2l0eSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmgKaW5kZXggYmIwZWM2MjY1MDMzNjhmNDk5Yzk1MzJkZDY5NDQ5Y2ViYTM3MGM5NC4uODJkM2I4
MTQ3ZTZhZmFiZGU1NDVlMTYwMDgzMDQ5NjlkMjE4OTA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApA
QCAtMTMxLDEzICsxMzEsMTEgQEAgcHVibGljOgogICAgIGNvbnN0IEludFBvaW50JiBzY3JvbGxQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUG9zaXRpb247IH0KICAgICB2b2lkIHNl
dFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbikgeyBtX3Njcm9s
bFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247IH0KIAotICAgIGNvbnN0IEludFNpemUmIG1heFNj
cm9sbFBvc2l0aW9uKCkgY29uc3Qge3JldHVybiBtX21heFNjcm9sbFBvc2l0aW9uOyB9Ci0gICAg
dm9pZCBzZXRNYXhTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRTaXplJiBtYXhTY3JvbGxQb3NpdGlv
bikgeyBtX21heFNjcm9sbFBvc2l0aW9uID0gbWF4U2Nyb2xsUG9zaXRpb247IH0KKyAgICBib29s
IHNjcm9sbGFibGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGU7IH0KKyAgICB2b2lkIHNl
dFNjcm9sbGFibGUoYm9vbCBzY3JvbGxhYmxlKSB7IG1fc2Nyb2xsYWJsZSA9IHRydWU7IH0KIAog
ICAgIEludFNpemUgc2Nyb2xsRGVsdGEoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KIAot
ICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtYXhTY3JvbGxQb3NpdGlvbigp
LmlzWmVybygpOyB9Ci0KICAgICBib29sIGRvdWJsZVNpZGVkKCkgY29uc3QgeyByZXR1cm4gbV9k
b3VibGVTaWRlZDsgfQogICAgIHZvaWQgc2V0RG91YmxlU2lkZWQoYm9vbCBkb3VibGVTaWRlZCkg
eyBtX2RvdWJsZVNpZGVkID0gZG91YmxlU2lkZWQ7IHNldE5lZWRzQ29tbWl0KCk7IH0KIApAQCAt
MTY0LDYgKzE2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNNYXNrKGJvb2wp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250ZW50c1RleHR1cmUoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZSgpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBwYWdlU2NhbGVDaGFuZ2VkKCkgeyBtX3BhZ2VTY2FsZURpcnR5ID0gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpIHsgfQogCiAgICAgLy8gVGhl
c2UgZXhpc3QganVzdCBmb3IgZGVidWdnaW5nICh2aWEgZHJhd0RlYnVnQm9yZGVyKCkpLgpAQCAt
MjUyLDcgKzI1MSw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX2JvdW5kczsKICAgICBJbnRS
ZWN0IG1fdmlzaWJsZUxheWVyUmVjdDsKICAgICBJbnRQb2ludCBtX3Njcm9sbFBvc2l0aW9uOwot
ICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlvbjsKKyAgICBib29sIG1fc2Nyb2xsYWJsZTsK
ICAgICBGbG9hdFBvaW50IG1fcG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBtX2FuY2hvclBvaW50
OwogICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9yOwpAQCAtMjgzLDYgKzI4Miw4IEBAIHByaXZh
dGU6CiAgICAgSW50UmVjdCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7CiAKICAgICBTdHJpbmcgbV9u
YW1lOworCisgICAgYm9vbCBtX3BhZ2VTY2FsZURpcnR5OwogfTsKIAogdm9pZCBzb3J0TGF5ZXJz
KFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIFZlY3RvcjxSZWZQdHI8
TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRl
cmVyQ2hyb21pdW0uY3BwCmluZGV4IGRmMjU0MzU2YmRiZDYxZjgyZDkyMWU4ZTljMGRjZWVjOWFh
NWU4YTIuLjIyMDMyMWI3NGVhYTY1NmUwYWU0MzVmMmU5NmY4YzM1NjZiMTI1ZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtMzYxLDkgKzM2MSwxNCBAQCB2b2lk
IExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc0ludGVybmFsKCkKICAgICBtX2RlZmF1
bHRSZW5kZXJTdXJmYWNlID0gcm9vdERyYXdMYXllci0+cmVuZGVyU3VyZmFjZSgpOwogICAgIG1f
ZGVmYXVsdFJlbmRlclN1cmZhY2UtPmNsZWFyTGF5ZXJMaXN0KCk7CiAKKyAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBtYWduaWZ5TWF0cml4KG1fcGFnZU1hZ25pZnlNYXRyaXgpOworICAgIC8vIFRP
RE8oYWVsaWFzKTogVGhlc2UgdHdvIHRyYW5zZm9ybWF0aW9ucyBhcmUgcmVkdW5kYW50OyB1bmlm
eSB6b29tQW5pbWF0b3IKKyAgICAvLyBhbmQgaW1wbC10aHJlYWQgc2lkZSBtYXRyaXguCisgICAg
bWFnbmlmeU1hdHJpeC5tdWx0aXBseShtX3pvb21BbmltYXRvclRyYW5zZm9ybSk7CisKICAgICB7
CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnNJ
bnRlcm5hbDo6Y2FsY0RyYXdFdGMiLCB0aGlzLCAwKTsKLSAgICAgICAgQ0NMYXllclRyZWVIb3N0
Q29tbW9uOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdERyYXdMYXll
ciwgcm9vdERyYXdMYXllciwgbV96b29tQW5pbWF0b3JUcmFuc2Zvcm0sIG1fem9vbUFuaW1hdG9y
VHJhbnNmb3JtLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBtX2RlZmF1bHRSZW5kZXJTdXJmYWNl
LT5sYXllckxpc3QoKSwgJm1fbGF5ZXJTb3J0ZXIsIG1fY2FwYWJpbGl0aWVzLm1heFRleHR1cmVT
aXplKTsKKyAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVEcmF3VHJhbnNm
b3Jtc0FuZFZpc2liaWxpdHkocm9vdERyYXdMYXllciwgcm9vdERyYXdMYXllciwgbWFnbmlmeU1h
dHJpeCwgbWFnbmlmeU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9kZWZhdWx0UmVu
ZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xheWVyU29ydGVyLCBtX2NhcGFiaWxpdGllcy5t
YXhUZXh0dXJlU2l6ZSk7CiAgICAgfQogCiAgICAgLy8gVGhlIEdMIHZpZXdwb3J0IGNvdmVycyB0
aGUgZW50aXJlIHZpc2libGUgYXJlYSwgaW5jbHVkaW5nIHRoZSBzY3JvbGxiYXJzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5k
ZXJlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAppbmRleCA2NDZlYTZlNWM0NDhhNThjNjEyNDEzNDJi
MGY5YTZlYWRkYWVmNDQ3Li4wMjhlNjY0ZDNjYjllNWY1YjA2ZTZiZWY5ZmM3N2IwZmVjNTEyZGFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApAQCAtOTgsNiArOTgsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHZpZXdwb3J0Q2hhbmdlZCgpOwogCisgICAgdm9pZCBzZXRQYWdl
TWFnbmlmeVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGFnZU1hZ25pZnlN
YXRyaXgpIHsgbV9wYWdlTWFnbmlmeU1hdHJpeCA9IHBhZ2VNYWduaWZ5TWF0cml4OyB9CisKICAg
ICB2b2lkIGRyYXdMYXllcnMoKTsKIAogICAgIC8vIHdhaXRzIGZvciByZW5kZXJpbmcgdG8gZmlu
aXNoCkBAIC0xOTUsNiArMTk3LDcgQEAgcHJpdmF0ZToKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IG1fcHJvamVjdGlvbk1hdHJpeDsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3dpbmRv
d01hdHJpeDsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3BhZ2VNYWduaWZ5TWF0cml4Owog
CiAgICAgQ0NSZW5kZXJTdXJmYWNlKiBtX2N1cnJlbnRSZW5kZXJTdXJmYWNlOwogICAgIHVuc2ln
bmVkIG1fb2Zmc2NyZWVuRnJhbWVidWZmZXJJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuY3BwCmluZGV4IDI1ODM5Yzg4YTk3MzM5ZGU2NzEwZmMwNmNiZWQwOWVhNGJl
MjRmY2YuLmJjNmEyYTQ5NzgyOGViMjkxZTk4OTdlYjFiYjEyMjIwNzBhNGEyYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcApAQCAtNzQsNyArNzQsNyBAQCB2
b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0U2Nyb2xsTGF5ZXIoR3JhcGhpY3NMYXll
ciogbGF5ZXIpCiAgICAgQVNTRVJUKHNjcm9sbExheWVyKCkpOwogfQogCi12b2lkIE5vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXpl
LCBjb25zdCBJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3Np
dGlvbikKK3ZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydChjb25zdCBJ
bnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3Qg
SW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBmbG9hdCBwYWdlU2NhbGUpCiB7CiAgICAgaWYgKCFz
Y3JvbGxMYXllcigpKQogICAgICAgICByZXR1cm47CkBAIC04MywxNiArODMsMTYgQEAgdm9pZCBO
b25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdw
b3J0U2l6ZSwgY29uc3QgSW4KIAogICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXplOwog
ICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKLSAg
ICBJbnRTaXplIG1heFNjcm9sbCA9IGNvbnRlbnRzU2l6ZSAtIHZpZXdwb3J0U2l6ZTsKLSAgICAv
LyBUaGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBjb250ZW50cyBpbiBzb21lIGNh
c2VzLCBzdWNoIGFzCi0gICAgLy8gaGF2aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIGJ1dCBubyBo
b3Jpem9udGFsIG92ZXJmbG93LgotICAgIG1heFNjcm9sbC5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7
Ci0KLSAgICBzY3JvbGxMYXllcigpLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtYXhTY3JvbGwpOwor
ICAgIC8vIER1ZSB0byB0aGUgcG9zc2liaWxpdHkgb2YgcGluY2ggem9vbSwgdGhlIG5vbmNvbXBv
c2l0ZWQgbGF5ZXIgaXMgYWx3YXlzCisgICAgLy8gYXNzdW1lZCB0byBiZSBzY3JvbGxhYmxlLgor
ICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbGFibGUodHJ1ZSk7CiAgICAgbV9ncmFwaGljc0xh
eWVyLT5zZXRTaXplKGNvbnRlbnRzU2l6ZSk7CiAKICAgICBpZiAodmlzaWJsZVJlY3RDaGFuZ2Vk
KQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworCisgICAgaWYg
KG1fZ3JhcGhpY3NMYXllci0+cGFnZVNjYWxlRmFjdG9yKCkgIT0gcGFnZVNjYWxlKQorICAgICAg
ICBtX2dyYXBoaWNzTGF5ZXItPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogfQog
CiBMYXllckNocm9taXVtKiBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNjcm9sbExheWVyKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05v
bkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKaW5kZXggMjg2NDc1Y2JkY2Rj
N2Y1YjE5MTI0MGFkOGUxYTExNzkwMTRiYjI3YS4uODBhNzBhOWRiZDMxNmVhYTBiZWQyNDlhZTk5
YWQzODk5ZThmNDA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgK
QEAgLTU1LDggKzU1LDkgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3Qg
SW50UmVjdCYpOwogICAgIHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7CiAg
ICAgdm9pZCBzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVyKik7Ci0gICAgdm9pZCBzZXRWaWV3
cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRz
U2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKTsKKyAgICB2b2lkIHNldFZpZXdw
b3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudHNT
aXplLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGZsb2F0IHBhZ2VTY2FsZSk7CiAg
ICAgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpOworICAgIEdyYXBoaWNzTGF5ZXIq
IHRvcExldmVsUm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9ncmFwaGljc0xheWVyLmdldCgp
OyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KFBh
c3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+IGNvbnRlbnRQYWludCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5jcHAKaW5kZXggZjVhNWExZDFhN2QwODUxOGUzMjljNjhmNGMyOGQyOWY3ODI4ZjMw
Zi4uYmQyYWEwYWZjNDNkNzhlMDFhNjNjOWM0OGQyYWVjYTJhMTIyNzkxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmNwcApAQCAtNDIsNiArNDIsNyBAQCBDQ0xheWVySW1wbDo6Q0NMYXllckltcGwo
aW50IGlkKQogICAgICwgbV9sYXllcklkKGlkKQogICAgICwgbV9hbmNob3JQb2ludCgwLjUsIDAu
NSkKICAgICAsIG1fYW5jaG9yUG9pbnRaKDApCisgICAgLCBtX3Njcm9sbGFibGUoZmFsc2UpCiAg
ICAgLCBtX2RvdWJsZVNpZGVkKHRydWUpCiAgICAgLCBtX2xheWVyUHJvcGVydHlDaGFuZ2VkKGZh
bHNlKQogICAgICwgbV9tYXNrc1RvQm91bmRzKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5k
ZXggMmI4ODQzOWQ0ZmYwMzFhYzUxMTYxYjRlMDcxY2ZjYzE2Y2QyNGZmMi4uYjcyY2FlMTBkOTE3
MWNlNjdkYmRiNzRjYjE0YjVlNTE1MzUwYWM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC0x
NTgsNyArMTU4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Nyb2xsRGVsdGEoY29uc3QgSW50
U2l6ZSYpOwogCiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBJbnRTaXplJiBzY3JvbGwpOwotICAg
IGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtYXhTY3JvbGxQb3NpdGlvbigpLmlz
WmVybygpOyB9CisKKyAgICBib29sIHNjcm9sbGFibGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9s
bGFibGU7IH0KKyAgICB2b2lkIHNldFNjcm9sbGFibGUoYm9vbCBzY3JvbGxhYmxlKSB7IG1fc2Ny
b2xsYWJsZSA9IHNjcm9sbGFibGU7IH0KIAogICAgIGNvbnN0IEludFJlY3QmIHZpc2libGVMYXll
clJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Zpc2libGVMYXllclJlY3Q7IH0KICAgICB2b2lkIHNl
dFZpc2libGVMYXllclJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZUxheWVyUmVjdCkgeyBtX3Zp
c2libGVMYXllclJlY3QgPSB2aXNpYmxlTGF5ZXJSZWN0OyB9CkBAIC0yMTYsNyArMjE4LDcgQEAg
cHJpdmF0ZToKICAgICBJbnRTaXplIG1fYm91bmRzOwogICAgIEludFNpemUgbV9jb250ZW50Qm91
bmRzOwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247Ci0gICAgSW50U2l6ZSBtX21heFNj
cm9sbFBvc2l0aW9uOworICAgIGJvb2wgbV9zY3JvbGxhYmxlOwogICAgIENvbG9yIG1fYmFja2dy
b3VuZENvbG9yOwogCiAgICAgLy8gV2hldGhlciB0aGUgImJhY2siIG9mIHRoaXMgbGF5ZXIgc2hv
dWxkIGRyYXcuCkBAIC0yMzksNiArMjQxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHJhd3ND
b250ZW50OwogCiAgICAgSW50U2l6ZSBtX3Njcm9sbERlbHRhOworICAgIEludFNpemUgbV9tYXhT
Y3JvbGxQb3NpdGlvbjsKIAogICAgIC8vIFByb3BlcnRpZXMgb3duZWQgZXhjbHVzaXZlbHkgYnkg
dGhpcyBDQ0xheWVySW1wbC4KICAgICAvLyBEZWJ1Z2dpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmNwcAppbmRleCAxMjc2MWYxYWQwOWE1YjBiMWRjZjM1NjY0ZDhmMjk0NzcxYmE0ZTli
Li40ZjJjMWZiNjI2NGVlN2MzYTllNjE3NTM3YTAyODk4MmY4YWIzM2ZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgQ0NMYXllclRyZWVIb3N0OjpD
Q0xheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQsIGNvbnN0IENDU2V0
dGluZ3MKICAgICAsIG1fc2V0dGluZ3Moc2V0dGluZ3MpCiAgICAgLCBtX3Zpc2libGUodHJ1ZSkK
ICAgICAsIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhmYWxzZSkKKyAgICAsIG1fcGFnZVNjYWxl
KDEpCisgICAgLCBtX21pblBhZ2VTY2FsZSgxKQorICAgICwgbV9tYXhQYWdlU2NhbGUoMSkKIHsK
ICAgICBDQ01haW5UaHJlYWQ6OmluaXRpYWxpemUoKTsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNN
YWluVGhyZWFkKCkpOwpAQCAtMTMwLDYgKzEzMyw4IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojpm
aW5pc2hDb21taXRPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaG9zdEltcGwpCiAg
ICAgaG9zdEltcGwtPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMobV9oYXZlV2hlZWxFdmVudEhh
bmRsZXJzKTsKICAgICBob3N0SW1wbC0+c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKG1fem9vbUFu
aW1hdG9yVHJhbnNmb3JtKTsKICAgICBob3N0SW1wbC0+c2V0Vmlld3BvcnQodmlld3BvcnRTaXpl
KCkpOworICAgIGhvc3RJbXBsLT5zZXRQYWdlU2NhbGUocGFnZVNjYWxlKCkpOworICAgIGhvc3RJ
bXBsLT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMobV9taW5QYWdlU2NhbGUsIG1fbWF4UGFnZVNj
YWxlKTsKIAogICAgIC8vIFN5bmNocm9uaXplIHRyZWVzLCBpZiBvbmUgZXhpc3RzIGF0IGFsbC4u
LgogICAgIGlmIChyb290TGF5ZXIoKSkKQEAgLTIyNCw2ICsyMjksMjUgQEAgdm9pZCBDQ0xheWVy
VHJlZUhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKICAgICBz
ZXROZWVkc0NvbW1pdCgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNjYWxl
KGZsb2F0IHBhZ2VTY2FsZSkKK3sKKyAgICBpZiAocGFnZVNjYWxlID09IG1fcGFnZVNjYWxlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2VTY2FsZSA9IHBhZ2VTY2FsZTsKKyAgICBzZXRO
ZWVkc0NvbW1pdCgpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNjYWxlRmFj
dG9yTGltaXRzKGZsb2F0IG1pblNjYWxlLCBmbG9hdCBtYXhTY2FsZSkKK3sKKyAgICBpZiAobWlu
U2NhbGUgPT0gbV9taW5QYWdlU2NhbGUgJiYgbWF4U2NhbGUgPT0gbV9tYXhQYWdlU2NhbGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fbWluUGFnZVNjYWxlID0gbWluU2NhbGU7CisgICAgbV9t
YXhQYWdlU2NhbGUgPSBtYXhTY2FsZTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCiB2b2lk
IENDTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCiB7CiAgICAgaWYgKG1f
dmlzaWJsZSA9PSB2aXNpYmxlKQpAQCAtNDM3LDE1ICs0NjEsMTUgQEAgdm9pZCBDQ0xheWVyVHJl
ZUhvc3Q6OmNsZWFyUGVuZGluZ1VwZGF0ZSgpCiAgICAgbV91cGRhdGVMaXN0LmNsZWFyKCk7CiB9
CiAKLXZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbERlbHRhcyhjb25zdCBDQ1Njcm9s
bFVwZGF0ZVNldCYgaW5mbykKK3ZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFuZFNj
YWxlKGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmIGluZm8pCiB7CiAgICAgLy8gRklYTUU6IHB1
c2hpbmcgc2Nyb2xsIG9mZnNldHMgdG8gbm9uLXJvb3QgbGF5ZXJzIG5vdCBpbXBsZW1lbnRlZAot
ICAgIGlmICghaW5mby5zaXplKCkpCisgICAgaWYgKCFpbmZvLnNjcm9sbHMuc2l6ZSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaW5mby5zaXplKCkgPT0gMSk7Ci0gICAgSW50U2l6
ZSBzY3JvbGxEZWx0YSA9IGluZm9bMF0uc2Nyb2xsRGVsdGE7Ci0gICAgbV9jbGllbnQtPmFwcGx5
U2Nyb2xsRGVsdGEoc2Nyb2xsRGVsdGEpOworICAgIEFTU0VSVChpbmZvLnNjcm9sbHMuc2l6ZSgp
ID09IDEpOworICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBpbmZvLnNjcm9sbHNbMF0uc2Nyb2xs
RGVsdGE7CisgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsQW5kU2NhbGUoc2Nyb2xsRGVsdGEsIGlu
Zm8ucGFnZVNjYWxlKTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnN0YXJ0UmF0ZUxpbWl0
ZXIoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5o
CmluZGV4IDc1MDczMGRjZWJhNzM2NDgzZWNjZDI4MDg4NDEwODcwNzMyYjE4Y2IuLjc1MTk1NDVl
MTc1MDRiNmEyNGNjMWE3NDI4OTZhNjgxYTc1Mjc5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdC5oCkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIFRleHR1cmVNYW5hZ2VyOwogY2xhc3MgQ0NM
YXllclRyZWVIb3N0Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZUFu
ZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYXBw
bHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhcHBs
eVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2Nh
bGUpID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0
ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY3Jl
YXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2VzcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRDb21taXRBbmREcmF3RnJhbWUoaW50IGZyYW1lTnVtYmVyKSA9IDA7CkBAIC0xNTgsNiArMTU4
LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdw
b3J0U2l6ZSk7CiAKICAgICBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUoKSBjb25zdCB7IHJl
dHVybiBtX3ZpZXdwb3J0U2l6ZTsgfQorCisgICAgdm9pZCBzZXRQYWdlU2NhbGUoZmxvYXQpOwor
ICAgIGZsb2F0IHBhZ2VTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlOyB9CisKKyAg
ICB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5TY2FsZSwgZmxvYXQgbWF4
U2NhbGUpOworCiAgICAgVGV4dHVyZU1hbmFnZXIqIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKSBj
b25zdDsKIAogICAgIGJvb2wgdmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzaWJsZTsgfQpA
QCAtMTY4LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUxheWVycygpOwogCiAg
ICAgdm9pZCB1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4dDNEKiwgQ0NU
ZXh0dXJlVXBkYXRlciYpOwotICAgIHZvaWQgYXBwbHlTY3JvbGxEZWx0YXMoY29uc3QgQ0NTY3Jv
bGxVcGRhdGVTZXQmKTsKKyAgICB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgQ0NTY3Jv
bGxBbmRTY2FsZVNldCYpOwogICAgIHZvaWQgc3RhcnRSYXRlTGltaXRlcihHcmFwaGljc0NvbnRl
eHQzRCopOwogICAgIHZvaWQgc3RvcFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKik7CiAK
QEAgLTIwOSw2ICsyMTUsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXZlV2hlZWxFdmVudEhh
bmRsZXJzOwogICAgIHR5cGVkZWYgSGFzaE1hcDxHcmFwaGljc0NvbnRleHQzRCosIFJlZlB0cjxS
YXRlTGltaXRlcj4gPiBSYXRlTGltaXRlck1hcDsKICAgICBSYXRlTGltaXRlck1hcCBtX3JhdGVM
aW1pdGVyczsKKworICAgIGZsb2F0IG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG1fbWluUGFnZVNj
YWxlLCBtX21heFBhZ2VTY2FsZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Q29tbW9uLmgKaW5kZXggNjlkNTg0ZDRkMGVhYmFmYWNlN2QwNTFjMzg2NTJhZWE4YjRiMTg4
OC4uNTI5YjNiMzIwY2Y3MjQ0ZTJlNDE5OGVmMTk3ZTVjNDNkYzViNjlhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKQEAgLTUxLDcgKzUxLDEwIEBAIHB1YmxpYzoK
ICAgICB9OwogfTsKIAotdHlwZWRlZiBWZWN0b3I8Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3Jv
bGxVcGRhdGVJbmZvPiBDQ1Njcm9sbFVwZGF0ZVNldDsKK3N0cnVjdCBDQ1Njcm9sbEFuZFNjYWxl
U2V0IHsKKyAgICBWZWN0b3I8Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZv
PiBzY3JvbGxzOworICAgIGZsb2F0IHBhZ2VTY2FsZTsKK307CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IExheWVyVHlwZT4KIEludFJlY3QgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNp
YmxlTGF5ZXJSZWN0KExheWVyVHlwZSogbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdEltcGwuY3BwCmluZGV4IGZlMDkzMjZlNGIyOTkwNTZmMmQ3NWIzZWIxZTZhZTMyMzhjYzQ2
ZTYuLjhhY2I1NGJiYzQ1NmNlYTBjMGM0MTZiZWVjMjRlMDJmYjk3MDY0ZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC01MCw2ICs1MCwxMSBAQCBDQ0xheWVy
VHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhvc3RJbXBsKGNvbnN0IENDU2V0dGluZ3MmIHNldHRp
bmdzLCBDQ0xheWVyVHJlZQogICAgICwgbV9zZXR0aW5ncyhzZXR0aW5ncykKICAgICAsIG1fdmlz
aWJsZSh0cnVlKQogICAgICwgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKGZhbHNlKQorICAgICwg
bV9wYWdlU2NhbGUoMSkKKyAgICAsIG1fc2NhbGVEZWx0YSgxKQorICAgICwgbV9taW5QYWdlU2Nh
bGUoMCkKKyAgICAsIG1fbWF4UGFnZVNjYWxlKDApCisgICAgLCBtX3BpbmNoR2VzdHVyZUFjdGl2
ZShmYWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwogfQpAQCAt
NjgsNiArNzMsOSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmJlZ2luQ29tbWl0KCkKIAog
dm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21taXRDb21wbGV0ZSgpCiB7CisgICAgLy8gUmVj
b21wdXRlIG1heCBzY3JvbGwgcG9zaXRpb247IG11c3QgYmUgYWZ0ZXIgbGF5ZXIgY29udGVudCBi
b3VuZHMgYXJlCisgICAgLy8gdXBkYXRlZC4KKyAgICB1cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigp
OwogfQogCiBHcmFwaGljc0NvbnRleHQzRCogQ0NMYXllclRyZWVIb3N0SW1wbDo6Y29udGV4dCgp
CkBAIC0xMjgsNyArMTM2LDcgQEAgc3RhdGljIENDTGF5ZXJJbXBsKiBmaW5kU2Nyb2xsTGF5ZXIo
Q0NMYXllckltcGwqIGxheWVyKQogICAgIGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgaWYgKCFsYXllci0+bWF4U2Nyb2xsUG9zaXRpb24oKS5pc1plcm8oKSkKKyAgICBpZiAo
bGF5ZXItPnNjcm9sbGFibGUoKSkKICAgICAgICAgcmV0dXJuIGxheWVyOwogCiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBsYXllci0+Y2hpbGRyZW4oKS5zaXplKCk7ICsraSkgewpAQCAtMTgw
LDEwICsxODgsODIgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3RJbXBsOjppbml0aWFsaXplTGF5ZXJS
ZW5kZXJlcihQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPgogCiB2b2lkIENDTGF5ZXJUcmVl
SG9zdEltcGw6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKIHsKLSAg
ICBib29sIGNoYW5nZWQgPSB2aWV3cG9ydFNpemUgIT0gbV92aWV3cG9ydFNpemU7CisgICAgaWYg
KHZpZXdwb3J0U2l6ZSA9PSBtX3ZpZXdwb3J0U2l6ZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
bV92aWV3cG9ydFNpemUgPSB2aWV3cG9ydFNpemU7Ci0gICAgaWYgKGNoYW5nZWQpCi0gICAgICAg
IG1fbGF5ZXJSZW5kZXJlci0+dmlld3BvcnRDaGFuZ2VkKCk7CisgICAgdXBkYXRlTWF4U2Nyb2xs
UG9zaXRpb24oKTsKKyAgICBtX2xheWVyUmVuZGVyZXItPnZpZXdwb3J0Q2hhbmdlZCgpOworfQor
Cit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZShmbG9hdCBwYWdlU2NhbGUp
Cit7CisgICAgaWYgKCFwYWdlU2NhbGUgfHwgcGFnZVNjYWxlID09IG1fcGFnZVNjYWxlKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBNYWludGFpbiBjb25zdGFudCB0aGUgcHJvZHVjdCBvZiBt
X3BhZ2VTY2FsZSAqIG1fc2NhbGVEZWx0YS4KKyAgICBmbG9hdCBzY2FsZUNoYW5nZSA9IHBhZ2VT
Y2FsZSAvIG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG9sZE1hZ25pZnlTY2FsZSA9IG1fcGFnZVNj
YWxlICogbV9zY2FsZURlbHRhOworICAgIG1fcGFnZVNjYWxlID0gcGFnZVNjYWxlOworCisgICAg
c2V0U2NhbGVEZWx0YShvbGRNYWduaWZ5U2NhbGUgLyBwYWdlU2NhbGUpOworCisgICAgLy8gV2Ug
YWxzbyBuZWVkIHRvIGNvbnZlcnQgaW1wbC1zaWRlIHNjcm9sbCBkZWx0YXMgdG8gcGFnZVNjYWxl
IHNwYWNlLgorICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiBtX3Njcm9sbExheWVySW1wbC0+
c2Nyb2xsYWJsZSgpKSB7CisgICAgICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBtX3Njcm9sbExh
eWVySW1wbC0+c2Nyb2xsRGVsdGEoKTsKKyAgICAgICAgc2Nyb2xsRGVsdGEuc2NhbGUoc2NhbGVD
aGFuZ2UpOworICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2Nyb2xsRGVsdGEoc2Nyb2xs
RGVsdGEpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRTY2FsZURl
bHRhKGZsb2F0IGRlbHRhKQoreworICAgIC8vIENsYW1wIHRvIHRoZSBjdXJyZW50IG1pbi9tYXgg
bGltaXRzLgorICAgIGZsb2F0IGZpbmFsTWFnbmlmeVNjYWxlID0gbV9wYWdlU2NhbGUgKiBkZWx0
YTsKKyAgICBpZiAobV9taW5QYWdlU2NhbGUgJiYgZmluYWxNYWduaWZ5U2NhbGUgPCBtX21pblBh
Z2VTY2FsZSkKKyAgICAgICAgZGVsdGEgPSBtX21pblBhZ2VTY2FsZSAvIG1fcGFnZVNjYWxlOwor
ICAgIGVsc2UgaWYgKG1fbWF4UGFnZVNjYWxlICYmIGZpbmFsTWFnbmlmeVNjYWxlID4gbV9tYXhQ
YWdlU2NhbGUpCisgICAgICAgIGRlbHRhID0gbV9tYXhQYWdlU2NhbGUgLyBtX3BhZ2VTY2FsZTsK
KworICAgIGlmIChkZWx0YSA9PSBtX3NjYWxlRGVsdGEpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fc2NhbGVEZWx0YSA9IGRlbHRhOworCisgICAgdXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24oKTsK
KworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGRlbHRhTWF0cml4OworICAgIGRlbHRhTWF0cml4
LnNjYWxlKG1fc2NhbGVEZWx0YSk7CisgICAgbV9sYXllclJlbmRlcmVyLT5zZXRQYWdlTWFnbmlm
eVRyYW5zZm9ybShkZWx0YU1hdHJpeCk7Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6
c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VTY2FsZSwgZmxvYXQgbWF4UGFn
ZVNjYWxlKQoreworICAgIG1fbWluUGFnZVNjYWxlID0gbWluUGFnZVNjYWxlOworICAgIG1fbWF4
UGFnZVNjYWxlID0gbWF4UGFnZVNjYWxlOworCisgICAgLy8gVGhpcyB3aWxsIGNsYW1wIG1fc2Nh
bGVEZWx0YSBhbmQgYXBwbHkgc2lkZSBlZmZlY3RzIGlmIGNsYW1wZWQuCisgICAgc2V0U2NhbGVE
ZWx0YShtX3NjYWxlRGVsdGEpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnVwZGF0
ZU1heFNjcm9sbFBvc2l0aW9uKCkKK3sKKyAgICBpZiAoIW1fc2Nyb2xsTGF5ZXJJbXBsIHx8ICFt
X3Njcm9sbExheWVySW1wbC0+Y2hpbGRyZW4oKS5zaXplKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEZsb2F0U2l6ZSB2aWV3Qm91bmRzID0gbV92aWV3cG9ydFNpemU7CisgICAgdmlld0JvdW5k
cy5zY2FsZSgxIC8gbV9zY2FsZURlbHRhKTsKKworICAgIC8vIFRPRE8oYWVsaWFzKTogSGFyZGNv
ZGluZyB0aGUgZmlyc3QgY2hpbGQgaGVyZSBpcyB3ZWlyZC4gVGhpbmsgb2YKKyAgICAvLyBhIGNs
ZWFuZXIgd2F5IHRvIGdldCB0aGUgY29udGVudEJvdW5kcyBvbiB0aGUgSW1wbCBzaWRlLgorICAg
IEludFNpemUgbWF4U2Nyb2xsID0gbV9zY3JvbGxMYXllckltcGwtPmNoaWxkcmVuKClbMF0tPmNv
bnRlbnRCb3VuZHMoKSAtIGV4cGFuZGVkSW50U2l6ZSh2aWV3Qm91bmRzKTsKKyAgICAvLyBUaGUg
dmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBjb250ZW50cyBpbiBzb21lIGNhc2VzLCBz
dWNoIGFzCisgICAgLy8gaGF2aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIGJ1dCBubyBob3Jpem9u
dGFsIG92ZXJmbG93LgorICAgIG1heFNjcm9sbC5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7CisKKyAg
ICBtX3Njcm9sbExheWVySW1wbC0+c2V0TWF4U2Nyb2xsUG9zaXRpb24obWF4U2Nyb2xsKTsKKwor
ICAgIC8vIFRPRE8oYWVsaWFzKTogQWxzbyB1cGRhdGUgc3VibGF5ZXJzLgogfQogCiB2b2lkIEND
TGF5ZXJUcmVlSG9zdEltcGw6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgem9vbSkKQEAgLTIwNywyMCArMjg3LDYxIEBAIGJvb2wgQ0NMYXllclRy
ZWVIb3N0SW1wbDo6aGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpCiAgICAgcmV0dXJuIG1faGF2ZVdo
ZWVsRXZlbnRIYW5kbGVyczsKIH0KIAotUGFzc093blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gQ0NM
YXllclRyZWVIb3N0SW1wbDo6cHJvY2Vzc1Njcm9sbERlbHRhcygpCit2b2lkIENDTGF5ZXJUcmVl
SG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKCkKIHsKLSAgICBPd25QdHI8Q0NTY3JvbGxVcGRh
dGVTZXQ+IHNjcm9sbEluZm8gPSBhZG9wdFB0cihuZXcgQ0NTY3JvbGxVcGRhdGVTZXQoKSk7Ci0g
ICAgLy8gRklYTUU6IHRyYWNrIHNjcm9sbHMgZnJvbSBsYXllcnMgb3RoZXIgdGhhbiB0aGUgcm9v
dAotICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiAhbV9zY3JvbGxMYXllckltcGwtPnNjcm9s
bERlbHRhKCkuaXNaZXJvKCkpIHsKLSAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3Jv
bGxVcGRhdGVJbmZvIGluZm87Ci0gICAgICAgIGluZm8ubGF5ZXJJZCA9IG1fc2Nyb2xsTGF5ZXJJ
bXBsLT5pZCgpOwotICAgICAgICBpbmZvLnNjcm9sbERlbHRhID0gbV9zY3JvbGxMYXllckltcGwt
PnNjcm9sbERlbHRhKCk7Ci0gICAgICAgIHNjcm9sbEluZm8tPmFwcGVuZChpbmZvKTsKLQotICAg
ICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2Nyb2xsUG9zaXRpb24obV9zY3JvbGxMYXllcklt
cGwtPnNjcm9sbFBvc2l0aW9uKCkgKyBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKSk7
Ci0gICAgICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRQb3NpdGlvbihtX3Njcm9sbExheWVySW1w
bC0+cG9zaXRpb24oKSAtIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKLSAgICAg
ICAgbV9zY3JvbGxMYXllckltcGwtPnNldFNjcm9sbERlbHRhKEludFNpemUoKSk7CisgICAgbV9w
aW5jaEdlc3R1cmVBY3RpdmUgPSB0cnVlOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6
OnBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQb2ludCYgYW5jaG9yKQorewor
ICAgIFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVVcGRhdGUi
LCB0aGlzLCAwKTsKKworICAgIGlmIChtYWduaWZ5RGVsdGEgPT0gMS4wKQorICAgICAgICByZXR1
cm47CisgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gS2VlcCB0aGUgY2VudGVyLW9mLXBpbmNoIGFuY2hvciBzcGVjaWZpZWQgYnkgKHgsIHkpIGlu
IGEgc3RhYmxlCisgICAgLy8gcG9zaXRpb24gb3ZlciB0aGUgY291cnNlIG9mIHRoZSBtYWduaWZ5
LgorICAgIEZsb2F0UG9pbnQgcHJldlNjYWxlQW5jaG9yKGFuY2hvci54KCkgLyBtX3NjYWxlRGVs
dGEsIGFuY2hvci55KCkgLyBtX3NjYWxlRGVsdGEpOworICAgIHNldFNjYWxlRGVsdGEobV9zY2Fs
ZURlbHRhICogbWFnbmlmeURlbHRhKTsKKyAgICBGbG9hdFBvaW50IG5ld1NjYWxlQW5jaG9yKGFu
Y2hvci54KCkgLyBtX3NjYWxlRGVsdGEsIGFuY2hvci55KCkgLyBtX3NjYWxlRGVsdGEpOworCisg
ICAgRmxvYXRTaXplIG1vdmUgPSBwcmV2U2NhbGVBbmNob3IgLSBuZXdTY2FsZUFuY2hvcjsKKwor
ICAgIHNjcm9sbFJvb3RMYXllcihyb3VuZGVkSW50U2l6ZShtb3ZlKSk7CisKKyAgICBtX2NsaWVu
dC0+c2V0TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQoKTsKK30KKwordm9pZCBDQ0xheWVyVHJlZUhv
c3RJbXBsOjpwaW5jaEdlc3R1cmVFbmQoKQoreworICAgIG1fcGluY2hHZXN0dXJlQWN0aXZlID0g
ZmFsc2U7CisKKyAgICBtX2NsaWVudC0+c2V0TmVlZHNDb21taXRPbkltcGxUaHJlYWQoKTsKK30K
KworUGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBDQ0xheWVyVHJlZUhvc3RJbXBsOjpw
cm9jZXNzU2Nyb2xsRGVsdGFzKCkKK3sKKyAgICBPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4g
c2Nyb2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBDQ1Njcm9sbEFuZFNjYWxlU2V0KCkpOworICAgIGJv
b2wgZGlkTW92ZSA9IG1fc2Nyb2xsTGF5ZXJJbXBsICYmICghbV9zY3JvbGxMYXllckltcGwtPnNj
cm9sbERlbHRhKCkuaXNaZXJvKCkgfHwgbV9zY2FsZURlbHRhICE9IDEuMGYpOworICAgIGlmICgh
ZGlkTW92ZSB8fCBtX3BpbmNoR2VzdHVyZUFjdGl2ZSkgeworICAgICAgICBzY3JvbGxJbmZvLT5w
YWdlU2NhbGUgPSBtX3BhZ2VTY2FsZTsKKyAgICAgICAgcmV0dXJuIHNjcm9sbEluZm8ucmVsZWFz
ZSgpOwogICAgIH0KKworICAgIC8vIEZJWE1FOiB0cmFjayBzY3JvbGxzIGZyb20gbGF5ZXJzIG90
aGVyIHRoYW4gdGhlIHJvb3QKKyAgICBzY3JvbGxJbmZvLT5wYWdlU2NhbGUgPSBtX3BhZ2VTY2Fs
ZSAqIG1fc2NhbGVEZWx0YTsKKyAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OlNjcm9sbFVwZGF0
ZUluZm8gc2Nyb2xsOworICAgIHNjcm9sbC5sYXllcklkID0gbV9zY3JvbGxMYXllckltcGwtPmlk
KCk7CisgICAgc2Nyb2xsLnNjcm9sbERlbHRhID0gbV9zY3JvbGxMYXllckltcGwtPnNjcm9sbERl
bHRhKCk7CisgICAgc2Nyb2xsSW5mby0+c2Nyb2xscy5hcHBlbmQoc2Nyb2xsKTsKKworICAgIG1f
c2Nyb2xsTGF5ZXJJbXBsLT5zZXRTY3JvbGxQb3NpdGlvbihtX3Njcm9sbExheWVySW1wbC0+c2Ny
b2xsUG9zaXRpb24oKSArIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKKyAgICBt
X3Njcm9sbExheWVySW1wbC0+c2V0UG9zaXRpb24obV9zY3JvbGxMYXllckltcGwtPnBvc2l0aW9u
KCkgLSBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKSk7CisgICAgbV9zY3JvbGxMYXll
ckltcGwtPnNldFNjcm9sbERlbHRhKEludFNpemUoKSk7CisKICAgICByZXR1cm4gc2Nyb2xsSW5m
by5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAppbmRl
eCBiNTNlMjAwMTkxOGM2NTY2NGMyY2NhNjA1NWVhN2U1ZGUwYjRiNjIyLi5jODdjYzFjYzg0Njcw
N2M3ZDc3MDNhN2NlODk3YjA0YTcxMzQyYzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0SW1wbC5oCkBAIC05Nyw5ICs5NywxNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50U2l6ZSYg
dmlld3BvcnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydFNpemU7IH0KICAgICB2b2lk
IHNldFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwog
CisgICAgdm9pZCBzZXRQYWdlU2NhbGUoZmxvYXQpOworICAgIGZsb2F0IHBhZ2VTY2FsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlOyB9CisgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JM
aW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbGUpOworCiAgICAgY29u
c3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAK
LSAgICBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBwcm9jZXNzU2Nyb2xsRGVsdGFzKCk7
CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCk7CisgICAgdmlydHVhbCB2b2lk
IHBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCwgY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGluY2hHZXN0dXJlRW5kKCk7CisgICAgUGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxl
U2V0PiBwcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgdm9pZCB1cGRhdGVNYXhTY3JvbGxQb3Np
dGlvbigpOwogCiBwcm90ZWN0ZWQ6CiAgICAgQ0NMYXllclRyZWVIb3N0SW1wbChjb25zdCBDQ1Nl
dHRpbmdzJiwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCopOwpAQCAtMTA4LDYgKzExNiw4IEBA
IHByb3RlY3RlZDoKICAgICBpbnQgbV9mcmFtZU51bWJlcjsKIAogcHJpdmF0ZToKKyAgICB2b2lk
IHNldFNjYWxlRGVsdGEoZmxvYXQpOworCiAgICAgT3duUHRyPExheWVyUmVuZGVyZXJDaHJvbWl1
bT4gbV9sYXllclJlbmRlcmVyOwogICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbV9yb290TGF5ZXJJ
bXBsOwogICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbV9zY3JvbGxMYXllckltcGw7CkBAIC0xMTUs
NiArMTI1LDEyIEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKICAgICBi
b29sIG1fdmlzaWJsZTsKICAgICBib29sIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVyczsKKworICAg
IGZsb2F0IG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG1fc2NhbGVEZWx0YTsKKyAgICBmbG9hdCBt
X21pblBhZ2VTY2FsZSwgbV9tYXhQYWdlU2NhbGU7CisKKyAgICBib29sIG1fcGluY2hHZXN0dXJl
QWN0aXZlOwogfTsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKaW5kZXgg
OTJiOTVkN2RjYWNkNzRhZGYzZGJlNTZmY2YyYTBkZTA4OThiY2M0Mi4uYzg0MWQyNDNhODA1YTJk
MGRmYzI0MDQzZTc5NjgyZWMwMGY4ZWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9s
bGVyLmgKQEAgLTM2LDYgKzM2LDkgQEAgY2xhc3MgQ0NTY3JvbGxDb250cm9sbGVyIHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmKSA9IDA7
CiAgICAgdmlydHVhbCBib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwaW5j
aEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRhLCBjb25zdCBJbnRQb2ludCYgYW5jaG9y
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUVuZCgpID0gMDsKIAogcHJvdGVj
dGVkOgogICAgIENDU2Nyb2xsQ29udHJvbGxlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Npbmds
ZVRocmVhZFByb3h5LmNwcAppbmRleCBlYjFkY2Q0ZGRiN2U4OGZiOTkzNmM5Y2RmZDY4YjRkMWYz
MWQ3MDJmLi4xMWIyNjQ4ZmI1YWMxYjYyMGEwZDVkMmMyODI2MzdkNGZjNGY3YTM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Npbmds
ZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAtMTY2LDcgKzE2Niw3IEBAIHZv
aWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQoKQogI2lmICFBU1NFUlRfRElTQUJMRUQK
ICAgICAgICAgLy8gSW4gdGhlIHNpbmdsZS10aHJlYWRlZCBjYXNlLCB0aGUgc2Nyb2xsIGRlbHRh
cyBzaG91bGQgbmV2ZXIgYmUKICAgICAgICAgLy8gdG91Y2hlZCBvbiB0aGUgaW1wbCBsYXllciB0
cmVlLgotICAgICAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+IHNjcm9sbEluZm8gPSBtX2xh
eWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgICAgIE93blB0cjxD
Q1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJv
Y2Vzc1Njcm9sbERlbHRhcygpOwogICAgICAgICBBU1NFUlQoIXNjcm9sbEluZm8tPnNpemUoKSk7
CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGRlMTk1ZWYy
MjZlMDJkMTY4YjFmNDRkMTQ2NGE3NDJlYTI0N2I3OTcuLjNjMTM3NzNiNjVjMDc2NDI4OTc1ZDE2
ZDlkODc0ZmE5MDBmZjA4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0zNDEs
MTEgKzM0MSwxMSBAQCBQYXNzT3duUHRyPENDTWFpblRocmVhZDo6VGFzaz4gQ0NUaHJlYWRQcm94
eTo6Y3JlYXRlQmVnaW5GcmFtZUFuZENvbW1pdFRhc2tPbkltcAogICAgIC8vIG51bWJlcnMgYmVs
b3cgdGhlIGxhc3QgZXhlY3V0ZWQgb25lLgogICAgIGludCB0aGlzVGFza1NlcXVlbmNlTnVtYmVy
ID0gbV9udW1CZWdpbkZyYW1lQW5kQ29tbWl0c0lzc3VlZE9uSW1wbFRocmVhZDsKICAgICBtX251
bUJlZ2luRnJhbWVBbmRDb21taXRzSXNzdWVkT25JbXBsVGhyZWFkKys7Ci0gICAgT3duUHRyPEND
U2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vz
c1Njcm9sbERlbHRhcygpOworICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJ
bmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIHJl
dHVybiBjcmVhdGVNYWluVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFt
ZUFuZENvbW1pdCwgdGhpc1Rhc2tTZXF1ZW5jZU51bWJlciwgZnJhbWVCZWdpblRpbWUsIHNjcm9s
bEluZm8ucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5k
Q29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3du
UHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvKQordm9pZCBDQ1RocmVhZFByb3h5Ojpi
ZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5U
aW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8pCiB7CiAgICAg
VFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVBbmRDb21taXQiLCB0aGlzLCAw
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMzUzLDcgKzM1Myw3IEBAIHZvaWQg
Q0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdChpbnQgc2VxdWVuY2VOdW1iZXIsIGRv
dWJsZSBmcmFtZUJlZ2luVGltCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFNjcm9sbCBkZWx0
YXMgbmVlZCB0byBiZSBhcHBsaWVkIGV2ZW4gaWYgdGhlIGNvbW1pdCB3aWxsIGJlIGRyb3BwZWQu
Ci0gICAgbV9sYXllclRyZWVIb3N0LT5hcHBseVNjcm9sbERlbHRhcygqc2Nyb2xsSW5mby5nZXQo
KSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5hcHBseVNjcm9sbEFuZFNjYWxlKCpzY3JvbGxJbmZv
LmdldCgpKTsKIAogICAgIC8vIERyb3AgYmVnaW5GcmFtZUFuZENvbW1pdCBjYWxscyB0aGF0IG9j
Y3VyIG91dCBvZiBzZXF1ZW5jZS4gU2VlIGNyZWF0ZUJlZ2luRnJhbWVBbmRDb21taXRUYXNrT25J
bXBsVGhyZWFkIGZvcgogICAgIC8vIGFuIGV4cGxhbmF0aW9uIG9mIGhvdyBvdXQtb2Ytc2VxdWVu
Y2UgYmVnaW5GcmFtZUFuZENvbW1pdCB0YXNrcyBjYW4gb2NjdXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5LmgKaW5kZXggMTY3NmY4MzcwYmJlYzBmNDZkOTAxZDk0M2U3M2E1Zjk3MTg5ZjBlMy4uZGZm
MDViYmRmNmE5MzNmZTE2OGI1ZmZkZGZmY2Y3YmQ5ZDgwN2YyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFk
UHJveHkuaApAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDVGhyZWFk
UHJveHkoQ0NMYXllclRyZWVIb3N0Kik7CiAKICAgICAvLyBDYWxsZWQgb24gQ0NNYWluVGhyZWFk
Ci0gICAgdm9pZCBiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91Ymxl
IGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0Pik7CisgICAgdm9p
ZCBiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVn
aW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+KTsKICAgICB2b2lkIGRpZENv
bW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpOwogCiAgICAgLy8gQ2FsbGVkIG9uIEND
VGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXll
clRyZWVWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXll
clRyZWVWaWV3Q2xpZW50LmgKaW5kZXggMDkxMjY5YzdhYjU0OTA4ZmJmMjg1ODMzYjVlMTg2MGNh
M2QyYjMzZi4uNmY1MDA5NjA3NmNkZjY2MmI3MjRhMDE4MzQ1Mzc0YzRiMGQ2YWQ3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdD
bGllbnQuaApAQCAtMzcsOSArMzcsMTEgQEAgcHVibGljOgogICAgIC8vIHNvIHRoYXQgbGF5ZXJz
IGNhbiBiZSB1cGRhdGVkIGF0IHRoZSBnaXZlbiBmcmFtZSB0aW1lLgogICAgIHZpcnR1YWwgdm9p
ZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOwogCi0gICAgLy8g
QXBwbGllcyBhIHNjcm9sbCBkZWx0YSB0byB0aGUgcm9vdCBsYXllci4gVGhpcyBpcyB0cmlnZ2Vy
ZWQgYnkgZXZlbnRzCi0gICAgLy8gc2VudCB0byB0aGUgY29tcG9zaXRvciB0aHJlYWQgdGhyb3Vn
aCB0aGUgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UuCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Ny
b2xsRGVsdGEoY29uc3QgV2ViU2l6ZSYpID0gMDsKKyAgICAvLyBBcHBsaWVzIGEgc2Nyb2xsIGRl
bHRhIHRvIHRoZSByb290IGxheWVyLCB3aGljaCBpcyBidW5kbGVkIHdpdGggYSBwYWdlCisgICAg
Ly8gc2NhbGUgZmFjdG9yIHRoYXQgbWF5IGFwcGx5IGEgQ1NTIHRyYW5zZm9ybSBvbiB0aGUgd2hv
bGUgZG9jdW1lbnQgKHVzZWQKKyAgICAvLyBmb3IgbW9iaWxlLWRldmljZSBwaW5jaCB6b29taW5n
KS4gVGhpcyBpcyB0cmlnZ2VyZWQgYnkgZXZlbnRzIHNlbnQgdG8gdGhlCisgICAgLy8gY29tcG9z
aXRvciB0aHJlYWQgdGhyb3VnaCB0aGUgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UuCisgICAgdmly
dHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVsdGEs
IGZsb2F0IHNjYWxlRmFjdG9yKSA9IDA7CiAKICAgICAvLyBDcmVhdGVzIGEgM0QgY29udGV4dCBz
dWl0YWJsZSBmb3IgdGhlIGNvbXBvc2l0aW5nLiBUaGlzIG1heSBiZSBjYWxsZWQKICAgICAvLyBt
b3JlIHRoYW4gb25jZSBpZiB0aGUgY29udGV4dCBnZXRzIGxvc3QuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggYzc3ZjQ1MmQwZjZjMmQwY2RmNDk0ZDQ1MzhlODUw
OGM3MDY0OWRjNC4uNDI4YjgyNzQ3YWMxZDJmNWMwNjgzZjVhYTE5ZjIxOTE0ZTViOWQzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjA3LDYgKzIwNywxMSBA
QCBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgZG91YmxlIHpvb21MZXZlbFRvWm9v
bUZhY3Rvcihkb3VibGUgem9vbUxldmVsKTsKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBkb3Vi
bGUgem9vbUZhY3RvclRvWm9vbUxldmVsKGRvdWJsZSBmYWN0b3IpOwogCisgICAgLy8gUGFnZVNj
YWxlRmFjdG9yIHdpbGwgYmUgZm9yY2UtY2xhbXBlZCBiZXR3ZWVuIG1pblBhZ2VTY2FsZSBhbmQg
bWF4UGFnZVNjYWxlCisgICAgLy8gKGFuZCB0aGVzZSB2YWx1ZXMgd2lsbCBwZXJzaXN0IHVudGls
IHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyBpcyBjYWxsZWQKKyAgICAvLyBhZ2FpbikuCisgICAg
dmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUs
IGZsb2F0IG1heFBhZ2VTY2FsZSkgPSAwOworCiAgICAgLy8gR2V0cyB0aGUgc2NhbGUgZmFjdG9y
IG9mIHRoZSBwYWdlLCB3aGVyZSAxLjAgaXMgdGhlIG5vcm1hbCBzaXplLCA+IDEuMAogICAgIC8v
IGlzIHNjYWxlZCB1cCwgPCAxLjAgaXMgc2NhbGVkIGRvd24uCiAgICAgdmlydHVhbCBmbG9hdCBw
YWdlU2NhbGVGYWN0b3IoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKaW5kZXggZDhiZDNhMTYzNDFiNzljNWZiMjIxZDdh
M2ZlMjBkNjE4MGM0OWFkNy4uY2YzMzMzNTY2ZTQzMTg4ZDllNTMwYWM5YjVmMThkOWYzNGY3OWZl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBs
LmNwcApAQCAtMTMzLDQgKzEzMywzIEBAIGludCBXZWJDb21wb3NpdG9ySW1wbDo6aWRlbnRpZmll
cigpIGNvbnN0CiB9CiAKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCmluZGV4IDJlNjllYzM0N2NkZDBlNTA1YWU1NWYyYzUw
YWNhYWE5NmQ0ZGExYmYuLmRkYmUwNjQzMWM2NTdlZDM3MzRjNTQxOGZiNzA0ZWFiZjQ0Y2IyMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3
SW1wbC5jcHAKQEAgLTY1LDEwICs2NSwxMCBAQCB2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjph
bmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKICAgICAgICAgbV9jbGllbnQt
PmFuaW1hdGVBbmRMYXlvdXQoZnJhbWVCZWdpblRpbWUpOwogfQogCi12b2lkIFdlYkxheWVyVHJl
ZVZpZXdJbXBsOjphcHBseVNjcm9sbERlbHRhKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGRlbHRh
KQordm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKQogewogICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsRGVsdGEoV2ViU2l6ZShk
ZWx0YSkpOworICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJTaXplKHNj
cm9sbERlbHRhKSwgcGFnZVNjYWxlKTsKIH0KIAogUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQz
RD4gV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0lt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgK
aW5kZXggMWIxM2JmMzQ1OTEzMTgxYjdlMDdkN2QyYmU3ODY4OGNmOWM0NDNiZi4uZDZkZDZlMzMy
ODcyYzdjOWFjMGRkMGJkYzY4MWY2ZjkwZjRmNTNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCkBAIC00Miw3ICs0Miw3IEBAIHBy
aXZhdGU6CiAgICAgV2ViTGF5ZXJUcmVlVmlld0ltcGwoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCos
IGNvbnN0IFdlYkxheWVyJiByb290LCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncyYp
OwogICAgIHZpcnR1YWwgfldlYkxheWVyVHJlZVZpZXdJbXBsKCk7CiAgICAgdmlydHVhbCB2b2lk
IGFuaW1hdGVBbmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKTsKLSAgICB2aXJ0dWFsIHZv
aWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgdmlydHVh
bCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xs
RGVsdGEsIGZsb2F0IHBhZ2VTY2FsZSk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXllclRyZWVIb3N0Q29udGV4dDNEKCk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4dChib29sIHN1Y2Nlc3MpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGIyZDE2ZTUx
YzczZWRmYzY0YTdjMGMwM2U4OGEzNmQ5ZTNmZDBhNGMuLjZhOGQ3Mzg5ZDcyMDE5NDg2ZWY1YjI2
ODhkMjk0ZjVkYjZjMDM1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKQEAgLTE4OTgsNiArMTg5OCwyMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjplbmFibGVG
aXhlZExheW91dE1vZGUoYm9vbCBlbmFibGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZyYW1l
LT52aWV3KCktPnNldFVzZUZpeGVkTGF5b3V0KGVuYWJsZSk7CisKKyNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCisgICAgLy8gQWxzbyBub3RpZnkgdGhlIGJhc2UgbGF5ZXIsIHdoaWNo
IFJlbmRlckxheWVyQ29tcG9zaXRvciBkb2VzIG5vdCBzZWUuCisgICAgaWYgKG1fbm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0KSB7CisgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3QgPSBtX25vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdC0+dG9wTGV2ZWxSb290TGF5ZXIoKTsKKyAgICAgICAgcm9vdC0+
ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CisgICAgfQorCisgICAgdXBkYXRlTGF5
ZXJUcmVlVmlld3BvcnQoKTsKKyNlbmRpZgorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRQYWdl
U2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbGUp
Cit7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIG1fbGF5ZXJUcmVlSG9z
dC0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKG1pblBhZ2VTY2FsZSwgbWF4UGFnZVNjYWxlKTsK
KyNlbmRpZgogfQogCiBXZWJTaXplIFdlYlZpZXdJbXBsOjpmaXhlZExheW91dFNpemUoKSBjb25z
dApAQCAtMjcwNiwxMiArMjcyMywzMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjphbmltYXRlQW5kTGF5
b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKICAgICBsYXlvdXQoKTsKIH0KIAotdm9pZCBXZWJW
aWV3SW1wbDo6YXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKK3Zv
aWQgV2ViVmlld0ltcGw6OmFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xs
RGVsdGEsIGZsb2F0IHNjYWxlRmFjdG9yKQogewogICAgIGlmICghbWFpbkZyYW1lSW1wbCgpIHx8
ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
YWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7CisgICAg
ZmxvYXQgb2xkU2NhbGUgPSBwYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBpZiAoIW9sZFNjYWxlKQor
ICAgICAgICBvbGRTY2FsZSA9IDEuMGY7CisKKyAgICBpZiAoIXNjYWxlRmFjdG9yIHx8IG9sZFNj
YWxlID09IHNjYWxlRmFjdG9yKQorICAgICAgICBtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygp
LT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIFRoZSBwYWdl
IHNjYWxlIGNoYW5nZWQsIHNvIGFwcGx5IGEgc2NhbGUgYW5kIHNjcm9sbCBpbiBhIHNpbmdsZQor
ICAgICAgICAvLyBvcGVyYXRpb24uIFRoZSBvbGQgc2Nyb2xsIG9mZnNldCAoYW5kIHBhc3NlZC1p
biBkZWx0YSkgYXJlCisgICAgICAgIC8vIGluIHRoZSBvbGQgY29vcmRpbmF0ZSBzcGFjZSwgc28g
d2UgZmlyc3QgbmVlZCB0byBtdWx0aXBseSB0aGVtCisgICAgICAgIC8vIGJ5IHRoZSBwYWdlIHNj
YWxlIGRlbHRhLgorICAgICAgICBXZWJTaXplIHNjcm9sbE9mZnNldCA9IG1haW5GcmFtZSgpLT5z
Y3JvbGxPZmZzZXQoKTsKKyAgICAgICAgc2Nyb2xsT2Zmc2V0LndpZHRoICs9IHNjcm9sbERlbHRh
LndpZHRoKCk7CisgICAgICAgIHNjcm9sbE9mZnNldC5oZWlnaHQgKz0gc2Nyb2xsRGVsdGEuaGVp
Z2h0KCk7CisgICAgICAgIGZsb2F0IHNjYWxlRGVsdGEgPSBzY2FsZUZhY3RvciAvIG9sZFNjYWxl
OworICAgICAgICBXZWJQb2ludCBzY2FsZWRTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0LndpZHRo
ICogc2NhbGVEZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9s
bE9mZnNldC5oZWlnaHQgKiBzY2FsZURlbHRhKTsKKyAgICAgICAgc2V0UGFnZVNjYWxlRmFjdG9y
KHNjYWxlRmFjdG9yLCBzY2FsZWRTY3JvbGxPZmZzZXQpOworICAgIH0KIH0KIAogdm9pZCBXZWJW
aWV3SW1wbDo6ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKGludCBmcmFtZU51bWJlcikKQEAgLTI3NTMs
OCArMjc4OCw5IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0KCkK
ICAgICBJbnRSZWN0IHZpc2libGVSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUg
LyogaW5jbHVkZSBzY3JvbGxiYXJzICovKTsKICAgICBJbnRQb2ludCBzY3JvbGwodmlldy0+c2Ny
b2xsWCgpLCB2aWV3LT5zY3JvbGxZKCkpOwogCi0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudEhv
c3QtPnNldFZpZXdwb3J0KHZpc2libGVSZWN0LnNpemUoKSwgdmlldy0+Y29udGVudHNTaXplKCks
IHNjcm9sbCk7CisgICAgbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QtPnNldFZpZXdwb3J0KHZp
c2libGVSZWN0LnNpemUoKSwgdmlldy0+Y29udGVudHNTaXplKCksIHNjcm9sbCwgcGFnZVNjYWxl
RmFjdG9yKCkpOwogICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnQodmlzaWJsZVJlY3Qu
c2l6ZSgpKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFBhZ2VTY2FsZShwYWdlU2NhbGVGYWN0
b3IoKSk7CiB9CiAKIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJWaWV3SW1wbDo6Z3JhcGhpY3ND
b250ZXh0M0QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXgg
NGQxMmIyOTQzM2IyNDE5ZmU2OWM1MjY4MzIwNDI0NmFlNjE1NzRkMS4uOGRhNjMyZDI1MjZjOTc3
MTdjZjI4MzE4Nzk0YzUzZWFhMjBlZDZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCkBAIC0xNjAsNiArMTYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZmxv
YXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNjYWxlUGFnZShm
bG9hdCBzY2FsZUZhY3RvciwgY29uc3QgV2ViUG9pbnQmIG9yaWdpbik7CiAgICAgdmlydHVhbCB2
b2lkIHNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvciwgY29uc3QgV2ViUG9pbnQm
IG9yaWdpbik7CisgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9h
dCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSk7CiAgICAgdmlydHVhbCBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTY2Fs
ZUZhY3RvcihmbG9hdCk7CiAgICAgdmlydHVhbCBib29sIGlzRml4ZWRMYXlvdXRNb2RlRW5hYmxl
ZCgpIGNvbnN0OwpAQCAtMjIxLDcgKzIyMiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENDTGF5ZXJU
cmVlSG9zdENsaWVudAogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBm
cmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxl
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXllclRyZWVIb3N0Q29udGV4dDNE
KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1i
ZXIpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4dChib29sIHN1
Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
VHJlZUhvc3RJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdEltcGxUZXN0LmNwcAppbmRleCBmYTVjNzBjYmYxYjQzMzk4YTEwMjMxMjFlMTc1
YTUwMzI1YWM4YTM2Li40YzQzNDg3ZWQ1YmYwNzdmNjk1YmZmZDI3NTI2NmFiZTZjYWIzMjIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdElt
cGxUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdEltcGxUZXN0LmNwcApAQCAtNTksMTQgKzU5LDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUobGF5ZXItPmNoaWxkcmVuKClbaV0u
Z2V0KCkpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIGV4cGVjdENvbnRhaW5zKGNvbnN0IEND
U2Nyb2xsVXBkYXRlU2V0JiBzY3JvbGxJbmZvLCBpbnQgaWQsIGNvbnN0IEludFNpemUmIHNjcm9s
bERlbHRhKQorICAgIHN0YXRpYyB2b2lkIGV4cGVjdENvbnRhaW5zKGNvbnN0IENDU2Nyb2xsQW5k
U2NhbGVTZXQmIHNjcm9sbEluZm8sIGludCBpZCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEp
CiAgICAgewogICAgICAgICBpbnQgdGltZXNFbmNvdW50ZXJlZCA9IDA7CiAKLSAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzY3JvbGxJbmZvLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAg
ICBpZiAoc2Nyb2xsSW5mb1tpXS5sYXllcklkICE9IGlkKQorICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNjcm9sbEluZm8uc2Nyb2xscy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAg
aWYgKHNjcm9sbEluZm8uc2Nyb2xsc1tpXS5sYXllcklkICE9IGlkKQogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgQVNTRVJUX0VRKHNjcm9sbEluZm9baV0uc2Nyb2xsRGVs
dGEsIHNjcm9sbERlbHRhKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLnNjcm9s
bHNbaV0uc2Nyb2xsRGVsdGEsIHNjcm9sbERlbHRhKTsKICAgICAgICAgICAgIHRpbWVzRW5jb3Vu
dGVyZWQrKzsKICAgICAgICAgfQogCkBAIC04NCw4ICs4NCw4IEBAIFRFU1RfRihDQ0xheWVyVHJl
ZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFOb0xheWVycykKIHsKICAgICBBU1NFUlRfRkFMU0Uo
bV9ob3N0SW1wbC0+cm9vdExheWVyKCkpOwogCi0gICAgT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0
PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwotICAgIEFT
U0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsKKyAgICBPd25QdHI8Q0NTY3JvbGxBbmRT
Y2FsZVNldD4gc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsK
KyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDB1KTsKIH0KIAogVEVT
VF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVRyZWVCdXROb0NoYW5nZXMp
CkBAIC0xMDAsMTQgKzEwMCwxNCBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHNj
cm9sbERlbHRhVHJlZUJ1dE5vQ2hhbmdlcykKIAogICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0
YXNSZWN1cnNpdmUocm9vdC5nZXQoKSk7CiAKLSAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+
IHNjcm9sbEluZm87CisgICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm87
CiAKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwot
ICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsKKyAgICBBU1NFUlRfRVEoc2Ny
b2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDB1KTsKICAgICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVs
dGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwt
PnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgp
LCAwdSk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAwdSk7CiAg
ICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIH0KIApA
QCAtMTE3LDE1ICsxMTcsMTYgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3Jv
bGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICBJbnRTaXplIHNjcm9sbERlbHRhKDExLCAtMTUp
OwogICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gcm9vdCA9IENDTGF5ZXJJbXBsOjpjcmVhdGUoMTAp
OwogICAgIHJvb3QtPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICByb290
LT5zZXRTY3JvbGxhYmxlKHRydWUpOwogICAgIHJvb3QtPnNldE1heFNjcm9sbFBvc2l0aW9uKElu
dFNpemUoMTAwLCAxMDApKTsKICAgICByb290LT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7CiAgICAg
bV9ob3N0SW1wbC0+c2V0Um9vdExheWVyKHJvb3QpOwogCi0gICAgT3duUHRyPENDU2Nyb2xsVXBk
YXRlU2V0PiBzY3JvbGxJbmZvOworICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3Jv
bGxJbmZvOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0
YXMoKTsKICAgICBBU1NFUlRfRVEocm9vdC0+c2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsUG9zaXRp
b24gKyBzY3JvbGxEZWx0YSk7Ci0gICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNpemUoKSwgMXUp
OworICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMXUpOwogICAgIGV4
cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLmdldCgpLCByb290LT5pZCgpLCBzY3JvbGxEZWx0YSk7
CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIApA
QCAtMTMzLDE0ICsxMzQsMTQgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3Jv
bGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICByb290LT5zY3JvbGxCeShzY3JvbGxEZWx0YTIp
OwogICAgIHNjcm9sbEluZm8gPSBtX2hvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAg
ICAgQVNTRVJUX0VRKHJvb3QtPnNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbFBvc2l0aW9uICsgc2Ny
b2xsRGVsdGEgKyBzY3JvbGxEZWx0YTIpOwotICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXpl
KCksIDF1KTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDF1KTsK
ICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgcm9vdC0+aWQoKSwgc2Nyb2xs
RGVsdGEyKTsKICAgICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0
KCkpOwogCiAgICAgcm9vdC0+c2Nyb2xsQnkoSW50U2l6ZSgpKTsKICAgICBzY3JvbGxJbmZvID0g
bV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShyb290LT5z
Y3JvbGxQb3NpdGlvbigpLCBzY3JvbGxQb3NpdGlvbiArIHNjcm9sbERlbHRhICsgc2Nyb2xsRGVs
dGEyKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAwdSk7CisgICAgQVNTRVJU
X0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAwdSk7CiAgICAgZXhwZWN0Q2xlYXJlZFNj
cm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKaW5kZXggNTljYmFi
MTEwYjZkM2RmZjY0OTlmMzQyMzVhN2VhMTI2OTdjZGUwYS4uOWQ5MWJjZDBlMDU1OTJhMWYwYTc2
MGZkODJhODI2YmRiNzIwY2IzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5Db21taXRPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdElt
cGwqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q29tcGxldGVPbkNDVGhyZWFkKENDTGF5
ZXJUcmVlSG9zdEltcGwqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVyc09uQ0NUaHJl
YWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9s
bERlbHRhKGNvbnN0IEludFNpemUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxB
bmRTY2FsZShjb25zdCBJbnRTaXplJiwgZmxvYXQpIHsgfQogfTsKIAogLy8gQWRhcHRzIENDTGF5
ZXJUcmVlSG9zdEltcGwgZm9yIHRlc3QuIFJ1bnMgcmVhbCBjb2RlLCB0aGVuIGludm9rZXMgdGVz
dCBob29rcy4KQEAgLTE1Myw5ICsxNTMsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAg
IHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRh
KQorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBmbG9hdCBzY2FsZSkKICAgICB7Ci0gICAgICAgIG1fdGVzdEhvb2tzLT5hcHBs
eVNjcm9sbERlbHRhKHNjcm9sbERlbHRhKTsKKyAgICAgICAgbV90ZXN0SG9va3MtPmFwcGx5U2Ny
b2xsQW5kU2NhbGUoc2Nyb2xsRGVsdGEsIHNjYWxlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0Qo
KQpAQCAtNjI0LDcgKzYyNCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBiZWdpblRl
c3QoKQogICAgIHsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0TWF4
U2Nyb2xsUG9zaXRpb24oSW50U2l6ZSgxMDAsIDEwMCkpOworICAgICAgICBtX2xheWVyVHJlZUhv
c3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxhYmxlKHRydWUpOwogICAgICAgICBtX2xheWVyVHJl
ZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihtX2luaXRpYWxTY3JvbGwpOwog
ICAgICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQoKTsKICAgICB9CkBAIC02NDcs
NiArNjQ3LDggQEAgcHVibGljOgogICAgICAgICBDQ0xheWVySW1wbCogcm9vdCA9IGltcGwtPnJv
b3RMYXllcigpOwogICAgICAgICBFWFBFQ1RfRVEocm9vdC0+c2Nyb2xsRGVsdGEoKSwgSW50U2l6
ZSgpKTsKIAorICAgICAgICByb290LT5zZXRTY3JvbGxhYmxlKHRydWUpOworICAgICAgICByb290
LT5zZXRNYXhTY3JvbGxQb3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CiAgICAgICAgIHJvb3Qt
PnNjcm9sbEJ5KG1fc2Nyb2xsQW1vdW50KTsKIAogICAgICAgICBpZiAoaW1wbC0+ZnJhbWVOdW1i
ZXIoKSA9PSAxKSB7CkBAIC02NjAsNyArNjYyLDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAg
fQogCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgc2Ny
b2xsRGVsdGEpCisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50
U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlKQogICAgIHsKICAgICAgICAgSW50UG9pbnQg
cG9zaXRpb24gPSBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zY3JvbGxQb3NpdGlvbigp
OwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlv
bihwb3NpdGlvbiArIHNjcm9sbERlbHRhKTsKQEAgLTY5NCw3ICs2OTYsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5UZXN0KCkKICAgICB7Ci0gICAgICAgIG1fbGF5ZXJUcmVl
SG9zdC0+cm9vdExheWVyKCktPnNldE1heFNjcm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDAp
KTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsYWJsZSh0
cnVlKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsUG9z
aXRpb24obV9pbml0aWFsU2Nyb2xsKTsKICAgICAgICAgcG9zdFNldE5lZWRzQ29tbWl0VG9NYWlu
VGhyZWFkKCk7CiAgICAgfQpAQCAtNzEzLDYgKzcxNSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZHJhd0xheWVyc09uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaW1wbCkKICAg
ICB7CiAgICAgICAgIENDTGF5ZXJJbXBsKiByb290ID0gaW1wbC0+cm9vdExheWVyKCk7CisgICAg
ICAgIHJvb3QtPnNldFNjcm9sbGFibGUodHJ1ZSk7CisgICAgICAgIHJvb3QtPnNldE1heFNjcm9s
bFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDApKTsKIAogICAgICAgICBpZiAoaW1wbC0+ZnJhbWVO
dW1iZXIoKSA9PSAxKSB7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocm9vdC0+c2Nyb2xsRGVsdGEo
KSwgSW50U2l6ZSgpKTsKQEAgLTczNSw3ICs3MzksNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBz
Y3JvbGxEZWx0YSkKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJ
bnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgc2NhbGUpCiAgICAgewogICAgICAgICBJbnRQb2lu
dCBwb3NpdGlvbiA9IG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNjcm9sbFBvc2l0aW9u
KCk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldFNjcm9sbFBvc2l0
aW9uKHBvc2l0aW9uICsgc2Nyb2xsRGVsdGEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>114169</attachid>
            <date>2011-11-08 16:07:59 -0800</date>
            <delta_ts>2011-11-08 16:07:59 -0800</delta_ts>
            <desc>Archive of layout-test-results from ec2-cr-linux-03</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>43315</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAE2/aD8AAAAAAAAAAAAAAAAYABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvVVQJ
AAMhwrlOIsK5TnV4CwABBOgDAAAE6AMAAFBLAwQKAAAAAABLv2g/AAAAAAAAAAAAAAAAIwAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvVVQJAAMewrlOIsK5TnV4CwABBOgDAAAE
6AMAAFBLAwQUAAIACABLv2g/CXaQEPYAAAB4AQAARgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNzcy1ydWxlLXR5cGVzLXN0ZGVyci50eHRVVAkAAx3CuU4d
wrlOdXgLAAEE6AMAAAToAwAAVY89T8MwEIbn9ld0bLc0NXbsNQxFIJZEMKAOF/tSIuIP+UO0/x6b
RqhMvnv9Pu/drQYIKITCIZ2F6CLIr96DxPt6u9t8VJcH4A3H03p1I7ZgrLlqm8LGgMbgsnG3UI9J
u246G5iPYNSMfkngdcN5TqgubKSUkJFRWVelB8KgVO84tNbn+FdrWqudDVNE1VoT0cSjDVGIgPFt
wm9nfbzFZlbW5PQLP0/Zkd/ieNJuFiI5BRFf4Iq+94j/UUIlxYL2GGL3iXMGPOYJpS9TvZ3/1iek
Aqmy2SdT/he1PlSyyaqGySwCY4f7K+leNVh6smdq5Ot8G/4AUEsDBBQAAgAIAEq/aD/DBx6R9gAA
AHgBAABQABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tYWRk
LWV2ZW50cy1pbi1oYW5kbGVyLWNyYXNoLWxvZy50eHRVVAkAAxzCuU4cwrlOdXgLAAEE6AMAAATo
AwAAVY8/T8MwEMXn9lN0bLeQmDj2GoYiEEsqGFCHi31pI+I/sh3RfnvONEJl8t3z+727W/UQUUqN
/XySskugvg4BFN7X293ms7g8gmgEHterG7EF6+zVuDluLBiMnoy7hXqaje/Gk4VpD1ZPGJYEUTZC
UEJx4UPFm7rqmSqL3APjkKsP7FsXKP7N2dYZ7+KYULfOJrRp72KSMmJ6H/Hbu5BuscSqkh1/4ZeR
HPRmx7Pxk5Sz15DwFa4YDgHxP8pqVWNGDxhTd8aJgIA0Ifd5anDT3/qMFaA0mcNs8/+illWhGlIN
jHYROK/urxSDbjD37IHrQazpNvwBUEsDBBQAAgAIAEu/aD81M99z9QAAAHgBAABLABwAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZGlyZWN0aW9uLW5vcm1hbC1j
cmFzaC1sb2cudHh0VVQJAAMdwrlOHcK5TnV4CwABBOgDAAAE6AMAAFWPP2/CMBDFZ/gUjLClwSWx
13SgatUlqB0qhov9AlHjP7IdFb597RJVdPLd8/u9u1t0FCCEQjedhGgjya+DJ4n7er1ZfRaXR+I1
x3G5uBFrMtZctZ3CypBGcMm4mamnSbt2OBka92TUCD8n8LLmPCUUl6pnsgdTvSyL3BOrKFcf6Brr
U/ybNY3VzoYhQjXWRJi4tyEKERDfB3w76+MtNrGyZMdf+GVIjvRmx7N2oxCTUxTxSlf4gwf+o2wn
d8joASG2Z4wJ8EgTcp+nejv+rc9YQVIls59M/p/VclvIOqmaBjMLVbW9v1KSqpF79lCpni/TbfgB
UEsDBBQAAgAIAEq/aD9heuHA9gAAAHgBAABKABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5p
bWF0aW9ucy9hbmltYXRpb24tY29udHJvbGxlci1kcnQtYXBpLXN0ZGVyci50eHRVVAkAAxzCuU4c
wrlOdXgLAAEE6AMAAAToAwAAVY8/T8MwEMXn9lN0bDeTmiT2GoYiEEsiGFCHi31pI+I/sh3RfnvO
NEJl8t3z+727W/UQUUqN/XySsk2gvroACu/r7W7zyS6PIGqBx/XqRmzBOns1bo4bCwajJ+NuoZ5m
49vxZGE6gNUThiVBFLUQlMAu1QBalYKhKljugVeQqw/sGxco/s3Zxhnv4phQN84mtOngYpIyYnof
8du7kG6xxKqCH3/hl5Ec9GbHs/GTlLPXkPAVrhi6gPgf5aUqMaMdxtSecSIgIE3IfZ4a3PS3PucM
lCZzmG3+X9Riz1RNqoHRLkJV7e+urAeha8w9f6j0INZ0G/4AUEsDBBQAAgAIAEu/aD8JdpAQ9gAA
AHgBAABJABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY3Nz
LXJ1bGUtdHlwZXMtY3Jhc2gtbG9nLnR4dFVUCQADHcK5Th3CuU51eAsAAQToAwAABOgDAABVjz1P
wzAQhuf2V3RstzQ1duw1DEUglkQwoA4X+1Ii4g/5Q7T/HptGqEy+e/0+792tBggohMIhnYXoIsiv
3oPE+3q723xUlwfgDcfTenUjtmCsuWqbwsaAxuCycbdQj0m7bjobmI9g1Ix+SeB1w3lOqC5spJSQ
kVFZV6UHwqBU7zi01uf4V2taq50NU0TVWhPRxKMNUYiA8W3Cb2d9vMVmVtbk9As/T9mR3+J40m4W
IjkFEV/gir73iP9RQiXFgvYYYveJcwY85gmlL1O9nf/WJ6QCqbLZJ1P+F7U+VLLJqobJLAJjh/sr
6V41WHqyZ2rk63wb/gBQSwMEFAACAAgAS79oPwA+2J72AAAAeAEAAEQAHAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tY3Jhc2gtbG9nLnR4dFVU
CQADHsK5Th7CuU51eAsAAQToAwAABOgDAABVjz9vwjAQxWf4FIywmWBI7DUdqFp1SdQOFcPFvkDU
+I9sR4Vv33OJKjr57vn93t0tOogopcZuOkvZJFBfbQCFj/V6s/pk1z2ISuBpubgTa7DO3oyb4sqC
wejJuJmpp8n4ZjhbGI9g9YhhThBFJQQlsGvZ71lfdHqrCpZ74CXk6gO72gWKf3O2dsa7OCTUtbMJ
bTq6mKSMmN4H/PYupHsssargp1/4ZSAHvdnxbPwo5eQ1JHyFG4Y2IP5H+UEdMKMtxtRccCQgIE3I
fZ4a3Pi3PucMlCZzmGz+n9Vix1RFqoHBzkJZ7h6v7JSuMPd8W+peLOk2/AFQSwMEFAACAAgAS79o
P2F64cD2AAAAeAEAAE0AHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1jb250cm9sbGVyLWRydC1hcGktY3Jhc2gtbG9nLnR4dFVUCQADHcK5Th3CuU51eAsAAQTo
AwAABOgDAABVjz9PwzAQxef2U3RsN5OaJPYahiIQSyIYUIeLfWkj4j+yHdF+e840QmXy3fP7vbtb
9RBRSo39fJKyTaC+ugAK7+vtbvPJLo8gaoHH9epGbME6ezVujhsLBqMn426hnmbj2/FkYTqA1ROG
JUEUtRCUwC7VAFqVgqEqWO6BV5CrD+wbFyj+zdnGGe/imFA3zia06eBikjJieh/x27uQbrHEqoIf
f+GXkRz0Zsez8ZOUs9eQ8BWuGLqA+B/lpSoxox3G1J5xIiAgTch9nhrc9Lc+5wyUJnOYbf5f1GLP
VE2qgdEuQlXt766sB6FrzD1/qPQg1nQb/gBQSwMEFAACAAgAS79oPwA+2J72AAAAeAEAAEEAHAB0
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tc3Rk
ZXJyLnR4dFVUCQADHsK5Th7CuU51eAsAAQToAwAABOgDAABVjz9vwjAQxWf4FIywmWBI7DUdqFp1
SdQOFcPFvkDU+I9sR4Vv33OJKjr57vn93t0tOogopcZuOkvZJFBfbQCFj/V6s/pk1z2ISuBpubgT
a7DO3oyb4sqCwejJuJmpp8n4ZjhbGI9g9YhhThBFJQQlsGvZ71lfdHqrCpZ74CXk6gO72gWKf3O2
dsa7OCTUtbMJbTq6mKSMmN4H/PYupHsssargp1/4ZSAHvdnxbPwo5eQ1JHyFG4Y2IP5H+UEdMKMt
xtRccCQgIE3IfZ4a3Pi3PucMlCZzmGz+n9Vix1RFqoHBzkJZ7h6v7JSuMPd8W+peLOk2/AFQSwME
FAACAAgAS79oPzUz33P1AAAAeAEAAEgAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRp
b25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tbm9ybWFsLXN0ZGVyci50eHRVVAkAAx3CuU4dwrlOdXgL
AAEE6AMAAAToAwAAVY8/b8IwEMVn+BSMsKXBJbHXdKBq1SWoHSqGi/0CUeM/sh0Vvn3tElV08t3z
+727W3QUIIRCN52EaCPJr4Mnift6vVl9FpdH4jXHcbm4EWsy1ly1ncLKkEZwybiZqadJu3Y4GRr3
ZNQIPyfwsuY8JRSXqmeyB1O9LIvcE6soVx/oGutT/Js1jdXOhiFCNdZEmLi3IQoREN8HfDvr4y02
sbJkx1/4ZUiO9GbHs3ajEJNTFPFKV/iDB/6jbCd3yOgBIbZnjAnwSBNyn6d6O/6tz1hBUiWzn0z+
n9VyW8g6qZoGMwtVtb2/UpKqkXv2UKmeL9Nt+AFQSwMEFAACAAgASr9oP8MHHpH2AAAAeAEAAE0A
HAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hZGQtZXZlbnRz
LWluLWhhbmRsZXItc3RkZXJyLnR4dFVUCQADHMK5ThzCuU51eAsAAQToAwAABOgDAABVjz9PwzAQ
xef2U3Rst5CYOPYahiIQSyoYUIeLfWkj4j+yHdF+e840QmXy3fP7vbtb9RBRSo39fJKyS6C+DgEU
3tfb3eazuDyCaAQe16sbsQXr7NW4OW4sGIyejLuFepqN78aThWkPVk8YlgRRNkJQQnHhQ8WbuuqZ
KovcA+OQqw/sWxco/s3Z1hnv4phQt84mtGnvYpIyYnof8du7kG6xxKqSHX/hl5Ec9GbHs/GTlLPX
kPAVrhgOAfE/ympVY0YPGFN3xomAgDQh93lqcNPf+owVoDSZw2zz/6KWVaEaUg2MdhE4r+6vFINu
MPfsgetBrOk2/AFQSwMEFAACAAgAS79oP1zdWFhkAAAA1gAAACYAHAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy90ZXN0c19ydW4wLnR4dFVUCQADHcK5ThvCuU51eAsAAQToAwAABOgDAAB9y1EOg0AI
hOH33gX3TCMSId1uCKDG27eNr8bX+b/RKm8lWdngzmCVBmbJpN1AIYuFcE2u/tI7u5VOWp9+WzmQ
SofKoIHdVpSNlXDgpPqPM/j99JZFRhk6bdEf3BnWu/FP2aW+UEsDBBQAAgAIAEu/aD/Yo2JjeQAA
APUAAAAmABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMS50eHRVVAkAAx3CuU4b
wrlOdXgLAAEE6AMAAAToAwAAhY5BCkIxDET33iV6pjSNNLY/kSSF39ur6Ebw424Y3hsGiThCigzJ
dcF6Q2JNINMUnZhiGkA4gwEj2F8FXFHGdD633MYJvxeUmjkM0c4VUE3XZjOgDKMO5Bjtp+aCQI2p
F9vfget/MHnPQ6pykEvhWhY8T4ve5wd+AFBLAwQUAAIACABLv2g/O4sDFFgAAAD8AAAAJgAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjMudHh0VVQJAAMewrlOHMK5TnV4CwABBOgD
AAAE6AMAAJ3LQQqAMAxE0b1XEVIRvIg3iGmkgVhLEwRvL+pe0d0w/EeYN7RQkqiU4GxuoY9A1w2V
Ma5Zd0i+aEMv7cyVM/FzrIx1ZPJ2FtVzAGpJ2MHw031UE5rQjQ5QSwMECgAAAAAASr9oPwAAAAAA
AAAAAAAAAB8AHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvVVQJAAMcwrlOIsK5TnV4
CwABBOgDAAAE6AMAAFBLAwQKAAAAAABKv2g/AAAAAAAAAAAAAAAAJgAcAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvVVQJAAMcwrlOIsK5TnV4CwABBOgDAAAE6AMAAFBLAwQK
AAAAAABLv2g/AAAAAAAAAAAAAAAALAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9w
aGlsaXAvdGVzdHMvVVQJAAMewrlOIsK5TnV4CwABBOgDAAAE6AMAAFBLAwQUAAIACABLv2g/jp2p
5fUAAAB4AQAAVgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMv
MmQuY2xlYXJSZWN0K2ZpbGxSZWN0LmFscGhhMC1jcmFzaC1sb2cudHh0VVQJAAMdwrlOHcK5TnV4
CwABBOgDAAAE6AMAAFWPP2/CMBDFZ/gUjLAFx5DYazpQteqSqB0qhot9QNT4j2xHhW/fc4kqOvnu
+f3e3S16iCilxn46S9kmUF9dAIWP9Xqz+iyuOxC1wONycSfWYJ29GTfFlQWD0ZNxM1NPk/HtcLYw
HsDqEcOcIFgtBCUU1+pUbpFpAYoVuQdeQa4+sG9coPg3ZxtnvItDQt04m9Cmg4tJyojpfcBv70K6
xxKrGD/+wi8DOejNjmfjRyknryHhK9wwdAHxP8r3ao8Z7TCm9oIjAQFpQu7z1ODGv/U5L0BpMofJ
5v9ZZWWhalINDHYWqqp8vLLe6Rpzz7eVPokl3YY/UEsDBBQAAgAIAEq/aD+Oll7k9wAAAHgBAABM
ABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jYW52YXMu
cmVhZG9ubHktY3Jhc2gtbG9nLnR4dFVUCQADHMK5ThzCuU51eAsAAQToAwAABOgDAABVjz9PwzAQ
xef2U3RsNzc1Sew1DEUglkQwoA4X+1Ii4j+yHdF+e840QmXy3fP7vbtb9RBRSo39fJayTaC+ugAK
7+vtbvPBLg8gaoGn9epGbME6ezVujhsLBqMn426hHmfj2/FsYTqC1ROGJUEUtRCUwC7VMECpC1aq
guUeeAW5ese+cYHiX51tnPEujgl142xCm44uJikjprcRv70L6RZLrCr46Rd+HslBb3Y8GT9JOXsN
CV/giqELiP9RXqoSM9phTO0nTgQEpAm5z1ODm/7W55yB0mQOs83/i1ocmKpJNTDaRaiqw92V+2Gv
a8w931d6EGu6DX8AUEsDBBQAAgAIAEu/aD8m8zh39QAAAHgBAABNABwAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jYW52YXMucmVmZXJlbmNlLWNyYXNoLWxv
Zy50eHRVVAkAAx3CuU4dwrlOdXgLAAEE6AMAAAToAwAAVY8/b8IwEMVn+BSMsKXBxbHXdABRdUnU
DhXDxb5A1PiPbEeFb99ziSo6+e75/d7dLTqIKKXGbjpL2SRQX20AhY/1erP6LK7PICqBp+XiTqzB
OnszboorCwajJ+Nmpl4m45vhbGHcg9UjhjlBlJUQlFBced8jF1XPVFnkHhiHXH1gV7tA8W/O1s54
F4eEunY2oU17F5OUEdP7gN/ehXSPJVaV7PQLHwdy0JsdB+NHKSevIeEr3DC0AfE/ynZqhxltMabm
giMBAWlC7vPU4Ma/9RkrQGkyh8nm/1ktt4WqSDUw2FngfPt4pe51hblnT1z3Ykm34Q9QSwMEFAAC
AAgAS79oP3j0EzP2AAAAeAEAAFIAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLmNsZWFyUmVjdCtmaWxsUmVjdC5iYXNpYy1zdGRlcnIudHh0VVQJAAMewrlO
HsK5TnV4CwABBOgDAAAE6AMAAFWPP0/DMBDF5/ZTdGy34LpJ7DUMRSCWRDCgDhf7UiLiP7Id0X57
zjRCZfLd8/u9u1v1EFFKjf18lrJNoL66AArv6+1u81FcDiBqgaf16kZswTp7NW6OGwsGoyfjbqEe
Z+Pb8WxhOoLVE4YlQbBaCEooLtUwMK10OShW5B54Bbl6x75xgeJfnW2c8S6OCXXjbEKbji4mKSOm
txG/vQvpFkusYvz0Cz+P5KA3O56Mn6ScvYaEL3DF0AXE/ygvVYkZ7TCm9hMnAgLShNznqcFNf+tz
XoDSZA6zzf+LyvaFqkk1MNpFqKr9/ZUH0DXmnj9UehBrug1/AFBLAwQUAAIACABLv2g/JvM4d/UA
AAB4AQAASgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQu
Y2FudmFzLnJlZmVyZW5jZS1zdGRlcnIudHh0VVQJAAMdwrlOHcK5TnV4CwABBOgDAAAE6AMAAFWP
P2/CMBDFZ/gUjLClwcWx13QAUXVJ1A4Vw8W+QNT4j2xHhW/fc4kqOvnu+f3e3S06iCilxm46S9kk
UF9tAIWP9Xqz+iyuzyAqgafl4k6swTp7M26KKwsGoyfjZqZeJuOb4Wxh3IPVI4Y5QZSVEJRQXHnf
IxdVz1RZ5B4Yh1x9YFe7QPFvztbOeBeHhLp2NqFNexeTlBHT+4Df3oV0jyVWlez0Cx8HctCbHQfj
RyknryHhK9wwtAHxP8p2aocZbTGm5oIjAQFpQu7z1ODGv/UZK0BpMofJ5v9ZLbeFqkg1MNhZ4Hz7
eKXudYW5Z09c92JJt+EPUEsDBBQAAgAIAEu/aD949BMz9gAAAHgBAABVABwAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmlsbFJlY3QuYmFz
aWMtY3Jhc2gtbG9nLnR4dFVUCQADHsK5Th7CuU51eAsAAQToAwAABOgDAABVjz9PwzAQxef2U3Rs
t+C6Sew1DEUglkQwoA4X+1Ii4j+yHdF+e840QmXy3fP7vbtb9RBRSo39fJayTaC+ugAK7+vtbvNR
XA4gaoGn9epGbME6ezVujhsLBqMn426hHmfj2/FsYTqC1ROGJUGwWghKKC7VMDCtdDkoVuQeeAW5
ese+cYHiX51tnPEujgl142xCm44uJikjprcRv70L6RZLrGL89As/j+SgNzuejJ+knL2GhC9wxdAF
xP8oL1WJGe0wpvYTJwIC0oTc56nBTX/rc16A0mQOs83/i8r2hapJNTDaRaiq/f2VB9A15p4/VHoQ
a7oNfwBQSwMEFAACAAgAS79oP46dqeX1AAAAeAEAAFMAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNsZWFyUmVjdCtmaWxsUmVjdC5hbHBoYTAtc3RkZXJy
LnR4dFVUCQADHcK5Th3CuU51eAsAAQToAwAABOgDAABVjz9vwjAQxWf4FIywBceQ2Gs6ULXqkqgd
KoaLfUDU+I9sR4Vv33OJKjr57vn93t0teogopcZ+OkvZJlBfXQCFj/V6s/osrjsQtcDjcnEn1mCd
vRk3xZUFg9GTcTNTT5Px7XC2MB7A6hHDnCBYLQQlFNfqVG6RaQGKFbkHXkGuPrBvXKD4N2cbZ7yL
Q0LdOJvQpoOLScqI6X3Ab+9CuscSqxg//sIvAznozY5n40cpJ68h4SvcMHQB8T/K92qPGe0wpvaC
IwEBaULu89Tgxr/1OS9AaTKHyeb/WWVloWpSDQx2FqqqfLyy3ukac8+3lT6JJd2GP1BLAwQUAAIA
CABLv2g/lzoLvfYAAAB4AQAAVQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGls
aXAvdGVzdHMvMmQuY2xlYXJSZWN0K2ZpbGxSZWN0LmFscGhhMC41LXN0ZGVyci50eHRVVAkAAx3C
uU4dwrlOdXgLAAEE6AMAAAToAwAAVY8/b8IwEMVn+BSMsJlgSOw1HahadUnUDhXDxb5A1PiPbEeF
b99ziSo6+e75/d7dLTqIKKXGbjpL2SRQX20AhY/1erP6ZNc9iErgabm4E2uwzt6Mm+LKgsHoybiZ
qafJ+GY4WxiPYPWIYU4QRSUEJbBr2e/FllcFVwXLPfAScvWBXe0Cxb85WzvjXRwS6trZhDYdXUxS
RkzvA357F9I9llhV8NMv/DKQg97seDZ+lHLyGhK+wg1DGxD/o/ygDpjRFmNqLjgSEJAm5D5PDW78
W59zBkqTOUw2/89qsWOqItXAYGehLHePV7JeV5h7vi11L5Z0G/4AUEsDBBQAAgAIAEq/aD+Oll7k
9wAAAHgBAABJABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5jYW52YXMucmVhZG9ubHktc3RkZXJyLnR4dFVUCQADHMK5ThzCuU51eAsAAQToAwAABOgDAABV
jz9PwzAQxef2U3RsNzc1Sew1DEUglkQwoA4X+1Ii4j+yHdF+e840QmXy3fP7vbtb9RBRSo39fJay
TaC+ugAK7+vtbvPBLg8gaoGn9epGbME6ezVujhsLBqMn426hHmfj2/FsYTqC1ROGJUEUtRCUwC7V
MECpC1aqguUeeAW5ese+cYHiX51tnPEujgl142xCm44uJikjprcRv70L6RZLrCr46Rd+HslBb3Y8
GT9JOXsNCV/giqELiP9RXqoSM9phTO0nTgQEpAm5z1ODm/7W55yB0mQOs83/i1ocmKpJNTDaRaiq
w92V+2Gva8w931d6EGu6DX8AUEsDBBQAAgAIAEu/aD+XOgu99gAAAHgBAABYABwAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmlsbFJlY3Qu
YWxwaGEwLjUtY3Jhc2gtbG9nLnR4dFVUCQADHcK5Th3CuU51eAsAAQToAwAABOgDAABVjz9vwjAQ
xWf4FIywmWBI7DUdqFp1SdQOFcPFvkDU+I9sR4Vv33OJKjr57vn93t0tOogopcZuOkvZJFBfbQCF
j/V6s/pk1z2ISuBpubgTa7DO3oyb4sqCwejJuJmpp8n4ZjhbGI9g9YhhThBFJQQlsGvZ78WWVwVX
Bcs98BJy9YFd7QLFvzlbO+NdHBLq2tmENh1dTFJGTO8DfnsX0j2WWFXw0y/8MpCD3ux4Nn6UcvIa
Er7CDUMbEP+j/KAOmNEWY2ouOBIQkCbkPk8Nbvxbn3MGSpM5TDb/z2qxY6oi1cBgZ6Esd49Xsl5X
mHu+LXUvlnQb/gBQSwMECgAAAAAAS79oPwAAAAAAAAAAAAAAACYAHAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9hY2Nlc3NpYmlsaXR5L1VUCQADHcK5TiLCuU51eAsAAQToAwAABOgDAABQSwMEFAAC
AAgAS79oP6qdbk31AAAAeAEAAEkAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmls
aXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1jcmFzaC1sb2cudHh0VVQJAAMdwrlOHcK5TnV4CwAB
BOgDAAAE6AMAAFWPP0/DMBDF5/ZTdGy3kLh17DUMRSCWRDCgDhf7UiLiP7Id0X57zjRCZfLd8/u9
u1v1EFFKjf18lrJNoL66AArv6+1u81Fc9iBqgaf16kZswTp7NW6OGwsGoyfjbqEeZ+Pb8WxhOoLV
E4YlQZS1EJRQXPgAWFXDnquyyD0wDrl6x75xgeJfnW2c8S6OCXXjbEKbji4mKSOmtxG/vQvpFkus
KtnpF34eyUFvdjwZP0k5ew0JX+CKoQuI/1F2UAfMaIcxtZ84ERCQJuQ+Tw1u+lufsQKUJnOYbf5f
1LIqVE2qgdEuAufV/ZWs1DXmnj1wPYg13YY/UEsDBBQAAgAIAEq/aD8wJ36h9QAAAHgBAABfABwA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRp
b25zLWNhdXNlLWFzc2VydGlvbi1mYWlsdXJlLXN0ZGVyci50eHRVVAkAAxzCuU4cwrlOdXgLAAEE
6AMAAAToAwAAVY8/b8IwEMVn+BSMsLnB4NhrOlC16pKoHSqGi33QqPEf2Y4K377nElV08t3z+727
W/SQUCmD/XRWqs2gv7oIGu/r9Wb1wS47kLXE43JxI9bgvLtaP6WVA4spkHEzU4+TDe1wdjAewJkR
45wgq1pKSmAXcTLS7JgRumKlBy6gVO/YNz5S/Kt3jbfBpyGjabzL6PLBp6xUwvw24HfwMd9iidUV
P/7CzwM56C2OJxtGpaZgIOMLXDF2EfE/yvd6jwXtMOX2E0cCItKE0pep0Y9/63POQBsyx8mV/1mt
tkzXpFoY3CwIsb2/UlemxtLzB2FOckm34Q9QSwMEFAACAAgAS79oP/NlPxP2AAAAeAEAAEoAHAB0
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtZGVzY3JpYmVkYnktb24t
aW5wdXQtc3RkZXJyLnR4dFVUCQADHcK5Th3CuU51eAsAAQToAwAABOgDAABVjz9vwjAQxWf4FIyw
ucHBsdd0oGrVJagdKoaLfdCo8R/ZjgrfvucSVXTy3fP7vbtb9JBQKYP9dFaqy6C/DhE03tfrzeqD
XWqQjcTjcnEj1uC8u1o/pZUDiymQcTNTj5MN3XB2MO7BmRHjnCCrRkpKYBdxEnUtes50xUoPXECp
3rFvfaT4V+9ab4NPQ0bTepfR5b1PWamE+W3A7+BjvsUSqyt+/IWfB3LQWxxPNoxKTcFAxhe4YjxE
xP8o3+kdFvSAKXefOBIQkSaUvkyNfvxbn3MG2pA5Tq78z2q1Zboh1cLgZkGI7f2VVW8aLD1/EOYk
l3Qb/gBQSwMEFAACAAgAS79oPwscyFD1AAAAeAEAAEYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtdGV4dC1jcmFzaC1sb2cudHh0VVQJAAMdwrlO
HcK5TnV4CwABBOgDAAAE6AMAAFWPP2/CMBDFZ/gUjLCZxJDYazpQteqSqB0qhsO+QNT4j2xHhW/f
c4kqOvnu+f3e3S1OEFFKjafpLGWbQH11ARQ+1uvN6pNddyBqgcfl4k6swTp7M26KKwsGoyfjZqae
JuPb4WxhPIDVI4Y5QRS1EJTArlW/Y9uyR1QFyz3wCnL1gafGBYp/c7Zxxrs4JNSNswltOriYpIyY
3gf89i6keyyxquDHX/hlIAe92fFs/Cjl5DUkfIUbhi4g/kf5Xu0xox3G1F5wJCAgTch9nhrc+Lc+
5wyUJnOYbP6f1aJkqibVwGBnoarKxyu10DXmnm8r3Ysl3YY/UEsDBBQAAgAIAEu/aD+qnW5N9QAA
AHgBAABGABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNr
Ym94LWNoZWNrZWQtc3RkZXJyLnR4dFVUCQADHcK5Th3CuU51eAsAAQToAwAABOgDAABVjz9PwzAQ
xef2U3Rst5C4dew1DEUglkQwoA4X+1Ii4j+yHdF+e840QmXy3fP7vbtb9RBRSo39fJayTaC+ugAK
7+vtbvNRXPYgaoGn9epGbME6ezVujhsLBqMn426hHmfj2/FsYTqC1ROGJUGUtRCUUFz4AFhVw56r
ssg9MA65ese+cYHiX51tnPEujgl142xCm44uJikjprcRv70L6RZLrCrZ6Rd+HslBb3Y8GT9JOXsN
CV/giqELiP9RdlAHzGiHMbWfOBEQkCbkPk8Nbvpbn7EClCZzmG3+X9SyKlRNqoHRLgLn1f2VrNQ1
5p49cD2INd2GP1BLAwQUAAIACABLv2g/82U/E/YAAAB4AQAATQAcAHRtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmliZWRieS1vbi1pbnB1dC1jcmFzaC1sb2cu
dHh0VVQJAAMdwrlOHcK5TnV4CwABBOgDAAAE6AMAAFWPP2/CMBDFZ/gUjLC5wcGx13SgatUlqB0q
hot90KjxH9mOCt++5xJVdPLd8/u9u1v0kFApg/10VqrLoL8OETTe1+vN6oNdapCNxONycSPW4Ly7
Wj+llQOLKZBxM1OPkw3dcHYw7sGZEeOcIKtGSkpgF3ESdS16znTFSg9cQKnesW99pPhX71pvg09D
RtN6l9HlvU9ZqYT5bcDv4GO+xRKrK378hZ8HctBbHE82jEpNwUDGF7hiPETE/yjf6R0W9IApd584
EhCRJpS+TI1+/FufcwbakDlOrvzParVluiHVwuBmQYjt/ZVVbxosPX8Q5iSXdBv+AFBLAwQUAAIA
CABLv2g/CxzIUPUAAAB4AQAAQwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxp
dHkvYXJpYS1jaGVja2JveC10ZXh0LXN0ZGVyci50eHRVVAkAAx3CuU4dwrlOdXgLAAEE6AMAAATo
AwAAVY8/b8IwEMVn+BSMsJnEkNhrOlC16pKoHSqGw75A1PiPbEeFb99ziSo6+e75/d7dLU4QUUqN
p+ksZZtAfXUBFD7W683qk113IGqBx+XiTqzBOnszboorCwajJ+Nmpp4m49vhbGE8gNUjhjlBFLUQ
lMCuVb9j27JHVAXLPfAKcvWBp8YFin9ztnHGuzgk1I2zCW06uJikjJjeB/z2LqR7LLGq4Mdf+GUg
B73Z8Wz8KOXkNSR8hRuGLiD+R/le7TGjHcbUXnAkICBNyH2eGtz4tz7nDJQmc5hs/p/VomSqJtXA
YGehqsrHK7XQNeaebyvdiyXdhj9QSwMEFAACAAgASr9oPzAnfqH1AAAAeAEAAGIAHAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FkamFjZW50LWNvbnRpbnVhdGlvbnMtY2F1
c2UtYXNzZXJ0aW9uLWZhaWx1cmUtY3Jhc2gtbG9nLnR4dFVUCQADHMK5ThzCuU51eAsAAQToAwAA
BOgDAABVjz9vwjAQxWf4FIywucHg2Gs6ULXqkqgdKoaLfdCo8R/ZjgrfvucSVXTy3fP7vbtb9JBQ
KYP9dFaqzaC/ugga7+v1ZvXBLjuQtcTjcnEj1uC8u1o/pZUDiymQcTNTj5MN7XB2MB7AmRHjnCCr
WkpKYBdxMtLsmBG6YqUHLqBU79g3PlL8q3eNt8GnIaNpvMvo8sGnrFTC/Dbgd/Ax32KJ1RU//sLP
AznoLY4nG0alpmAg4wtcMXYR8T/K93qPBe0w5fYTRwIi0oTSl6nRj3/rc85AGzLHyZX/Wa22TNek
WhjcLAixvb9SV6bG0vMHYU5ySbfhD1BLAwQUAAIACABKv2g/L5ls0vUAAAB4AQAAVwAcAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYW5jaG9yLWxpbmtlZC1hbm9ueW1vdXMt
YmxvY2stY3Jhc2gtY3Jhc2gtbG9nLnR4dFVUCQADHMK5ThzCuU51eAsAAQToAwAABOgDAABVjz9v
wjAQxWf4FIywmeDGsdd0oGrVJVE7VAyHfdCo8R/ZjgrfvucSVXTy3fP7vbtbHCGhUgaP01mpLoP+
6iNovK/Xm9UHuzyAbCQelosbsQbn3dX6Ka0cWEyBjJuZepxs6Iazg3EPzowY5wRZNVJSAruIkzCm
hq3UFSs9cAGlesdj6yPFv3rXeht8GjKa1ruMLu99ykolzG8Dfgcf8y2WWF3xwy/8PJCD3uJ4smFU
agoGMr7AFWMfEf+jvNY1FrTHlLtPHAmISBNKX6ZGP/6tzzkDbcgcJ1f+Z7XaMd2QamFwsyDE7v5K
xk2DpedbYU5ySbfhD1BLAwQUAAIACABKv2g/L5ls0vUAAAB4AQAAVAAcAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYW5jaG9yLWxpbmtlZC1hbm9ueW1vdXMtYmxvY2stY3Jh
c2gtc3RkZXJyLnR4dFVUCQADHMK5ThzCuU51eAsAAQToAwAABOgDAABVjz9vwjAQxWf4FIywmeDG
sdd0oGrVJVE7VAyHfdCo8R/ZjgrfvucSVXTy3fP7vbtbHCGhUgaP01mpLoP+6iNovK/Xm9UHuzyA
bCQelosbsQbn3dX6Ka0cWEyBjJuZepxs6Iazg3EPzowY5wRZNVJSAruIkzCmhq3UFSs9cAGlesdj
6yPFv3rXeht8GjKa1ruMLu99ykolzG8Dfgcf8y2WWF3xwy/8PJCD3uJ4smFUagoGMr7AFWMfEf+j
vNY1FrTHlLtPHAmISBNKX6ZGP/6tzzkDbcgcJ1f+Z7XaMd2QamFwsyDE7v5Kxk2DpedbYU5ySbfh
D1BLAwQKAAAAAABKv2g/AAAAAAAAAAAAAAAAHQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0
dHAvVVQJAAMcwrlOIsK5TnV4CwABBOgDAAAE6AMAAFBLAwQKAAAAAABKv2g/AAAAAAAAAAAAAAAA
IwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvVVQJAAMcwrlOIsK5TnV4CwAB
BOgDAAAE6AMAAFBLAwQKAAAAAABLv2g/AAAAAAAAAAAAAAAALAAcAHRtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvVVQJAAMdwrlOIsK5TnV4CwABBOgDAAAE6AMAAFBL
AwQUAAIACABLv2g/iq+EpvUAAAB4AQAAXgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAv
dGVzdHMvYXBwY2FjaGUvY3Jhc2gtd2hlbi1uYXZpZ2F0aW5nLWF3YXktdGhlbi1iYWNrLWNyYXNo
LWxvZy50eHRVVAkAAx3CuU4dwrlOdXgLAAEE6AMAAAToAwAAVY8/b8IwEMVn+BSMsLmJIbbXdKBq
1SVRO1QMh33QqPEf2Y4K377nElV08t3z+727WxwhoVIGj9NZqS6D/uojaLyv15vVB7tsQQqJh+Xi
RqzBeXe1fkorBxZTIONmph4nG7rh7GDcgzMjxjlBVkJKSmCX5rTlUjBudMVKD7yBUr3jsfWR4l+9
a70NPg0ZTetdRpf3PmWlEua3Ab+Dj/kWS6yu+OEXfh7IQW9xPNkwKjUFAxlf4Iqxj4j/Ub7TOyxo
jyl3nzgSEJEmlL5MjX78W59zBtqQOU6u/M9qVTMtSLUwuFlomvr+yloYgaXnD405ySXdhj9QSwME
FAACAAgAS79oP4qvhKb1AAAAeAEAAFsAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rl
c3RzL2FwcGNhY2hlL2NyYXNoLXdoZW4tbmF2aWdhdGluZy1hd2F5LXRoZW4tYmFjay1zdGRlcnIu
dHh0VVQJAAMdwrlOHcK5TnV4CwABBOgDAAAE6AMAAFWPP2/CMBDFZ/gUjLC5iSG213SgatUlUTtU
DId90KjxH9mOCt++5xJVdPLd8/u9u1scIaFSBo/TWakug/7qI2i8r9eb1Qe7bEEKiYfl4kaswXl3
tX5KKwcWUyDjZqYeJxu64exg3IMzI8Y5QVZCSkpgl+a05VIwbnTFSg+8gVK947H1keJfvWu9DT4N
GU3rXUaX9z5lpRLmtwG/g4/5FkusrvjhF34eyEFvcTzZMCo1BQMZX+CKsY+I/1G+0zssaI8pd584
EhCRJpS+TI1+/FufcwbakDlOrvzPalUzLUi1MLhZaJr6/spaGIGl5w+NOckl3YY/UEsDBBQAAgAI
AEu/aD8rtKkZ9gAAAHgBAABIABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9h
cHBjYWNoZS9jcmVkZW50aWFsLXVybC1jcmFzaC1sb2cudHh0VVQJAAMdwrlOHcK5TnV4CwABBOgD
AAAE6AMAAFWPP2/CMBDFZ/gUjLC5wY1jr+lA1apLUDtUDBf7gKjxH9mOCt++5xJVdPLd8/u9u1v0
kFApg/10UqrLoL/2ETTe1+vN6pNdHkE2Eg/LxY1Yg/Puav2UVg4spkDGzUw9TTZ0w8nBuANnRoxz
gqwaKSmBXcSxZlXNhdEVKz1wAaX6wL71keLfvGu9DT4NGU3rXUaXdz5lpRLm9wG/g4/5Fkusrvjh
F34ZyEFvcTzbMCo1BQMZX+GKcR8R/6O81jUWdI8pd2ccCYhIE0pfpkY//q3POQNtyBwnV/5ntdoy
3ZBqYXCzIMT2/sq6MQ2Wnj8Ic5RLug1/AFBLAwQUAAIACABLv2g/K7SpGfYAAAB4AQAARQAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvY3JlZGVudGlhbC11cmwt
c3RkZXJyLnR4dFVUCQADHcK5Th3CuU51eAsAAQToAwAABOgDAABVjz9vwjAQxWf4FIywucGNY6/p
QNWqS1A7VAwX+4Co8R/ZjgrfvucSVXTy3fP7vbtb9JBQKYP9dFKqy6C/9hE03tfrzeqTXR5BNhIP
y8WNWIPz7mr9lFYOLKZAxs1MPU02dMPJwbgDZ0aMc4KsGikpgV3EsWZVzYXRFSs9cAGl+sC+9ZHi
37xrvQ0+DRlN611Gl3c+ZaUS5vcBv4OP+RZLrK744Rd+GchBb3E82zAqNQUDGV/hinEfEf+jvNY1
FnSPKXdnHAmISBNKX6ZGP/6tzzkDbcgcJ1f+Z7XaMt2QamFwsyDE9v7KujENlp4/CHOUS7oNfwBQ
SwMEFAACAAgASr9oP136aYn1AAAAeAEAADsAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRw
L3Rlc3RzL2FwcGNhY2hlL2F1dGgtc3RkZXJyLnR4dFVUCQADHMK5ThzCuU51eAsAAQToAwAABOgD
AABVjz9vwjAQxWf4FIywpYkhsdd0oGrVJVE7VAyH/aBR4z+yHRW+fe0SVXTy3fP7vbtbHClACIXj
dBaiiyS/ek8S9/V6s/ooLlviDcdhubgRazLWXLWdwsqQRnDJuJmpx0m7bjgbGvdk1Ag/J/Cy4Twl
FJf6xJXEFo0si9wTqylX7zi21qf4V2taq50NQ4RqrYkwcW9DFCIgvg34dtbHW2xiZckOv/DzkBzp
zY4n7UYhJqco4oWu8L0H/qNsJ3fIaI8Qu0+MCfBIE3Kfp3o7/q3PWEFSJbOfTP6f1bIqZJNUTYOZ
hbqu7q9UlWqQe/ZQqxNfptvwA1BLAwQUAAIACABLv2g/AD2InPUAAAB4AQAAQwAcAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvY3lyaWxsaWMtdXJpLXN0ZGVyci50
eHRVVAkAAx3CuU4dwrlOdXgLAAEE6AMAAAToAwAAVY8/b8IwEMVn+BSMsKXBTWKv6UDVqktQO1QM
F/sBUeM/sh0Vvn3tElV08t3z+727W/QUIIRCP52E6CLJr70nift6vVl9FpdH4g3HYbm4EWsy1ly1
ncLKkEZwybiZqadJu244GRp3ZNQIPyfwsuE8JRSX+siVrJiCLIvcE6spVx/oW+tT/Js1rdXOhiFC
tdZEmLizIQoREN8HfDvr4y02sbJkh1/4ZUiO9GbHs3ajEJNTFPFKV/i9B/6jrJIVMrpHiN0ZYwI8
0oTc56nejn/rM1aQVMnsJ5P/Z7XcFrJJqqbBzEJdb++vlFw1yD17qNWRL9Nt+AFQSwMEFAACAAgA
Sr9oP/Tsb1L2AAAAeAEAAE0AHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL2FjY2Vzcy12aWEtcmVkaXJlY3QtY3Jhc2gtbG9nLnR4dFVUCQADHMK5ThzCuU51eAsA
AQToAwAABOgDAABVjz9vwjAQxWf4FIywhWDi2Gs6ULXqkqgdKoaLfUDU+I9sR4Vv33OJKjr57vn9
3t0teogopcZ+OkvZJlBfXQCFj/V6s/osrnsQtcDjcnEn1mCdvRk3xZUFg9GTcTNTT5Px7XC2MB7A
6hHDnCDKWghKKK78hCXj232lyiL3wDjk6gP7xgWKf3O2cca7OCTUjbMJbTq4mKSMmN4H/PYupHss
sapkx1/4ZSAHvdnxbPwo5eQ1JHyFG4YuIP5HWaUqzGiHMbUXHAkISBNyn6cGN/6tz1gBSpM5TDb/
z2q5K1RNqoHBzgLnu8cr2VbXmHu25foklnQb/gBQSwMEFAACAAgASr9oP136aYn1AAAAeAEAAD4A
HAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2F1dGgtY3Jhc2gt
bG9nLnR4dFVUCQADHMK5ThzCuU51eAsAAQToAwAABOgDAABVjz9vwjAQxWf4FIywpYkhsdd0oGrV
JVE7VAyH/aBR4z+yHRW+fe0SVXTy3fP7vbtbHClACIXjdBaiiyS/ek8S9/V6s/ooLlviDcdhubgR
azLWXLWdwsqQRnDJuJmpx0m7bjgbGvdk1Ag/J/Cy4TwlFJf6xJXEFo0si9wTqylX7zi21qf4V2ta
q50NQ4RqrYkwcW9DFCIgvg34dtbHW2xiZckOv/DzkBzpzY4n7UYhJqco4oWu8L0H/qNsJ3fIaI8Q
u0+MCfBIE3Kfp3o7/q3PWEFSJbOfTP6f1bIqZJNUTYOZhbqu7q9UlWqQe/ZQqxNfptvwA1BLAwQU
AAIACABKv2g/9OxvUvYAAAB4AQAASgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVz
dHMvYXBwY2FjaGUvYWNjZXNzLXZpYS1yZWRpcmVjdC1zdGRlcnIudHh0VVQJAAMcwrlOHMK5TnV4
CwABBOgDAAAE6AMAAFWPP2/CMBDFZ/gUjLCFYOLYazpQteqSqB0qhot9QNT4j2xHhW/fc4kqOvnu
+f3e3S16iCilxn46S9kmUF9dAIWP9Xqz+iyuexC1wONycSfWYJ29GTfFlQWD0ZNxM1NPk/HtcLYw
HsDqEcOcIMpaCEoorvyEJePbfaXKIvfAOOTqA/vGBYp/c7Zxxrs4JNSNswltOriYpIyY3gf89i6k
eyyxqmTHX/hlIAe92fFs/Cjl5DUkfIUbhi4g/kdZpSrMaIcxtRccCQhIE3KfpwY3/q3PWAFKkzlM
Nv/ParkrVE2qgcHOAue7xyvZVteYe7bl+iSWdBv+AFBLAwQUAAIACABLv2g/AD2InPUAAAB4AQAA
RgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvY3lyaWxsaWMt
dXJpLWNyYXNoLWxvZy50eHRVVAkAAx3CuU4dwrlOdXgLAAEE6AMAAAToAwAAVY8/b8IwEMVn+BSM
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
qz/pFWX4ZqAG2+xt0QNuDms1KiKHXOCOHbml9CuOBx98w/E3glYuHY8wCRMeN3ASVo8ZOJK3Twkm
PtMiTdzc+CVvtWFVxO6bvCUAK+BSBpLoK++dSndh55WmyqH1pA3ZClxIb2UpaknmYFVnsvvdA9JP
PNAPN2RhZ3zvVjtn8qz7EwWOZXWTFza7qegr/dwB00XM31FX5C7l6zFeIctF1NbDw5zO8tn/XB7/
+6fjq+ubD8fXP14c/d385/XlweFxe+AlgAfPzcj8dPJLb/FWT4J5zi++kYU3XlLiH67OGmy+H3ca
Jv4fUEsDBAoAAAAAAEm/aD8AAAAAAAAAAAAAAAAmABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
YWNjZXNzX2xvZy50eHRVVAkAAxnCuU4ZwrlOdXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAAEm/aD8A
AAAAAAAAAAAAAABDABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcHl3ZWJzb2NrZXQud3MubG9n
LTA4Tm92MjAxMS0yMzU4MTgtZXJyLnR4dFVUCQADGsK5ThrCuU51eAsAAQToAwAABOgDAABQSwME
CgAAAAAASb9oPwAAAAAAAAAAAAAAAEMAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9weXdlYnNv
Y2tldC53cy5sb2ctMDhOb3YyMDExLTIzNTgxOC1vdXQudHh0VVQJAAMawrlOGsK5TnV4CwABBOgD
AAAE6AMAAFBLAQIeAwoAAAAAAE2/aD8AAAAAAAAAAAAAAAAYABgAAAAAAAAAEADtQQAAAAB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9VVAUAAyHCuU51eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABL
v2g/AAAAAAAAAAAAAAAAIwAYAAAAAAAAABAA7UFSAAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
YW5pbWF0aW9ucy9VVAUAAx7CuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABLv2g/CXaQEPYA
AAB4AQAARgAYAAAAAAABAAAApIGvAAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9u
cy9hbmltYXRpb24tY3NzLXJ1bGUtdHlwZXMtc3RkZXJyLnR4dFVUBQADHcK5TnV4CwABBOgDAAAE
6AMAAFBLAQIeAxQAAgAIAEq/aD/DBx6R9gAAAHgBAABQABgAAAAAAAEAAACkgSUCAAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hZGQtZXZlbnRzLWluLWhhbmRs
ZXItY3Jhc2gtbG9nLnR4dFVUBQADHMK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEu/aD81
M99z9QAAAHgBAABLABgAAAAAAAEAAACkgaUDAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tbm9ybWFsLWNyYXNoLWxvZy50eHRVVAUAAx3CuU51
eAsAAQToAwAABOgDAABQSwECHgMUAAIACABKv2g/YXrhwPYAAAB4AQAASgAYAAAAAAABAAAApIEf
BQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY29udHJvbGxl
ci1kcnQtYXBpLXN0ZGVyci50eHRVVAUAAxzCuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABL
v2g/CXaQEPYAAAB4AQAASQAYAAAAAAABAAAApIGZBgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
YW5pbWF0aW9ucy9hbmltYXRpb24tY3NzLXJ1bGUtdHlwZXMtY3Jhc2gtbG9nLnR4dFVUBQADHcK5
TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEu/aD8APtie9gAAAHgBAABEABgAAAAAAAEAAACk
gRIIAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rp
b24tY3Jhc2gtbG9nLnR4dFVUBQADHsK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEu/aD9h
euHA9gAAAHgBAABNABgAAAAAAAEAAACkgYYJAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1jb250cm9sbGVyLWRydC1hcGktY3Jhc2gtbG9nLnR4dFVUBQADHcK5
TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEu/aD8APtie9gAAAHgBAABBABgAAAAAAAEAAACk
gQMLAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rp
b24tc3RkZXJyLnR4dFVUBQADHsK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEu/aD81M99z
9QAAAHgBAABIABgAAAAAAAEAAACkgXQMAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRp
b25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tbm9ybWFsLXN0ZGVyci50eHRVVAUAAx3CuU51eAsAAQTo
AwAABOgDAABQSwECHgMUAAIACABKv2g/wwcekfYAAAB4AQAATQAYAAAAAAABAAAApIHrDQAAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tYWRkLWV2ZW50cy1pbi1o
YW5kbGVyLXN0ZGVyci50eHRVVAUAAxzCuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABLv2g/
XN1YWGQAAADWAAAAJgAYAAAAAAABAAAApIFoDwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVz
dHNfcnVuMC50eHRVVAUAAx3CuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABLv2g/2KNiY3kA
AAD1AAAAJgAYAAAAAAABAAAApIEsEAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVu
MS50eHRVVAUAAx3CuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABLv2g/O4sDFFgAAAD8AAAA
JgAYAAAAAAABAAAApIEFEQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMy50eHRV
VAUAAx7CuU51eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABKv2g/AAAAAAAAAAAAAAAAHwAYAAAA
AAAAABAA7UG9EQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL1VUBQADHMK5TnV4CwAB
BOgDAAAE6AMAAFBLAQIeAwoAAAAAAEq/aD8AAAAAAAAAAAAAAAAmABgAAAAAAAAAEADtQRYSAAB0
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL1VUBQADHMK5TnV4CwABBOgDAAAE
6AMAAFBLAQIeAwoAAAAAAEu/aD8AAAAAAAAAAAAAAAAsABgAAAAAAAAAEADtQXYSAAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzL1VUBQADHsK5TnV4CwABBOgDAAAE
6AMAAFBLAQIeAxQAAgAIAEu/aD+Onanl9QAAAHgBAABWABgAAAAAAAEAAACkgdwSAAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNsZWFyUmVjdCtmaWxsUmVj
dC5hbHBoYTAtY3Jhc2gtbG9nLnR4dFVUBQADHcK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAI
AEq/aD+Oll7k9wAAAHgBAABMABgAAAAAAAEAAACkgWEUAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNhbnZhcy5yZWFkb25seS1jcmFzaC1sb2cudHh0VVQF
AAMcwrlOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAS79oPybzOHf1AAAAeAEAAE0AGAAAAAAA
AQAAAKSB3hUAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQu
Y2FudmFzLnJlZmVyZW5jZS1jcmFzaC1sb2cudHh0VVQFAAMdwrlOdXgLAAEE6AMAAAToAwAAUEsB
Ah4DFAACAAgAS79oP3j0EzP2AAAAeAEAAFIAGAAAAAAAAQAAAKSBWhcAAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0K2ZpbGxSZWN0LmJhc2lj
LXN0ZGVyci50eHRVVAUAAx7CuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABLv2g/JvM4d/UA
AAB4AQAASgAYAAAAAAABAAAApIHcGAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5jYW52YXMucmVmZXJlbmNlLXN0ZGVyci50eHRVVAUAAx3CuU51eAsAAQTo
AwAABOgDAABQSwECHgMUAAIACABLv2g/ePQTM/YAAAB4AQAAVQAYAAAAAAABAAAApIFVGgAAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmls
bFJlY3QuYmFzaWMtY3Jhc2gtbG9nLnR4dFVUBQADHsK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQA
AgAIAEu/aD+Onanl9QAAAHgBAABTABgAAAAAAAEAAACkgdobAAB0bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNsZWFyUmVjdCtmaWxsUmVjdC5hbHBoYTAtc3Rk
ZXJyLnR4dFVUBQADHcK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEu/aD+XOgu99gAAAHgB
AABVABgAAAAAAAEAAACkgVwdAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlw
L3Rlc3RzLzJkLmNsZWFyUmVjdCtmaWxsUmVjdC5hbHBoYTAuNS1zdGRlcnIudHh0VVQFAAMdwrlO
dXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgASr9oP46WXuT3AAAAeAEAAEkAGAAAAAAAAQAAAKSB
4R4AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2FudmFz
LnJlYWRvbmx5LXN0ZGVyci50eHRVVAUAAxzCuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABL
v2g/lzoLvfYAAAB4AQAAWAAYAAAAAAABAAAApIFbIAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmlsbFJlY3QuYWxwaGEwLjUtY3Jhc2gt
bG9nLnR4dFVUBQADHcK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAEu/aD8AAAAAAAAAAAAA
AAAmABgAAAAAAAAAEADtQeMhAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5
L1VUBQADHcK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEu/aD+qnW5N9QAAAHgBAABJABgA
AAAAAAEAAACkgUMiAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FyaWEt
Y2hlY2tib3gtY2hlY2tlZC1jcmFzaC1sb2cudHh0VVQFAAMdwrlOdXgLAAEE6AMAAAToAwAAUEsB
Ah4DFAACAAgASr9oPzAnfqH1AAAAeAEAAF8AGAAAAAAAAQAAAKSBuyMAAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYWRqYWNlbnQtY29udGludWF0aW9ucy1jYXVzZS1hc3Nl
cnRpb24tZmFpbHVyZS1zdGRlcnIudHh0VVQFAAMcwrlOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAC
AAgAS79oP/NlPxP2AAAAeAEAAEoAGAAAAAAAAQAAAKSBSSUAAHRtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmliZWRieS1vbi1pbnB1dC1zdGRlcnIudHh0VVQF
AAMdwrlOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAS79oPwscyFD1AAAAeAEAAEYAGAAAAAAA
AQAAAKSBwyYAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVj
a2JveC10ZXh0LWNyYXNoLWxvZy50eHRVVAUAAx3CuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIA
CABLv2g/qp1uTfUAAAB4AQAARgAYAAAAAAABAAAApIE4KAAAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtc3RkZXJyLnR4dFVUBQADHcK5
TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEu/aD/zZT8T9gAAAHgBAABNABgAAAAAAAEAAACk
ga0pAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtZGVzY3JpYmVk
Ynktb24taW5wdXQtY3Jhc2gtbG9nLnR4dFVUBQADHcK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQA
AgAIAEu/aD8LHMhQ9QAAAHgBAABDABgAAAAAAAEAAACkgSorAAB0bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtdGV4dC1zdGRlcnIudHh0VVQFAAMdwrlO
dXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgASr9oPzAnfqH1AAAAeAEAAGIAGAAAAAAAAQAAAKSB
nCwAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYWRqYWNlbnQtY29udGlu
dWF0aW9ucy1jYXVzZS1hc3NlcnRpb24tZmFpbHVyZS1jcmFzaC1sb2cudHh0VVQFAAMcwrlOdXgL
AAEE6AMAAAToAwAAUEsBAh4DFAACAAgASr9oPy+ZbNL1AAAAeAEAAFcAGAAAAAAAAQAAAKSBLS4A
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYW5jaG9yLWxpbmtlZC1hbm9u
eW1vdXMtYmxvY2stY3Jhc2gtY3Jhc2gtbG9nLnR4dFVUBQADHMK5TnV4CwABBOgDAAAE6AMAAFBL
AQIeAxQAAgAIAEq/aD8vmWzS9QAAAHgBAABUABgAAAAAAAEAAACkgbMvAAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FuY2hvci1saW5rZWQtYW5vbnltb3VzLWJsb2NrLWNy
YXNoLXN0ZGVyci50eHRVVAUAAxzCuU51eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABKv2g/AAAA
AAAAAAAAAAAAHQAYAAAAAAAAABAA7UE2MQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC9V
VAUAAxzCuU51eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABKv2g/AAAAAAAAAAAAAAAAIwAYAAAA
AAAAABAA7UGNMQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9VVAUAAxzCuU51
eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABLv2g/AAAAAAAAAAAAAAAALAAYAAAAAAAAABAA7UHq
MQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9VVAUAAx3CuU51
eAsAAQToAwAABOgDAABQSwECHgMUAAIACABLv2g/iq+EpvUAAAB4AQAAXgAYAAAAAAABAAAApIFQ
MgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9jcmFzaC13aGVu
LW5hdmlnYXRpbmctYXdheS10aGVuLWJhY2stY3Jhc2gtbG9nLnR4dFVUBQADHcK5TnV4CwABBOgD
AAAE6AMAAFBLAQIeAxQAAgAIAEu/aD+Kr4Sm9QAAAHgBAABbABgAAAAAAAEAAACkgd0zAAB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2NyYXNoLXdoZW4tbmF2aWdh
dGluZy1hd2F5LXRoZW4tYmFjay1zdGRlcnIudHh0VVQFAAMdwrlOdXgLAAEE6AMAAAToAwAAUEsB
Ah4DFAACAAgAS79oPyu0qRn2AAAAeAEAAEgAGAAAAAAAAQAAAKSBZzUAAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvY3JlZGVudGlhbC11cmwtY3Jhc2gtbG9nLnR4
dFVUBQADHcK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEu/aD8rtKkZ9gAAAHgBAABFABgA
AAAAAAEAAACkgd82AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hl
L2NyZWRlbnRpYWwtdXJsLXN0ZGVyci50eHRVVAUAAx3CuU51eAsAAQToAwAABOgDAABQSwECHgMU
AAIACABKv2g/XfppifUAAAB4AQAAOwAYAAAAAAABAAAApIFUOAAAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9hdXRoLXN0ZGVyci50eHRVVAUAAxzCuU51eAsAAQTo
AwAABOgDAABQSwECHgMUAAIACABLv2g/AD2InPUAAAB4AQAAQwAYAAAAAAABAAAApIG+OQAAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9jeXJpbGxpYy11cmktc3Rk
ZXJyLnR4dFVUBQADHcK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEq/aD/07G9S9gAAAHgB
AABNABgAAAAAAAEAAACkgTA7AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL2FjY2Vzcy12aWEtcmVkaXJlY3QtY3Jhc2gtbG9nLnR4dFVUBQADHMK5TnV4CwABBOgD
AAAE6AMAAFBLAQIeAxQAAgAIAEq/aD9d+mmJ9QAAAHgBAAA+ABgAAAAAAAEAAACkga08AAB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2F1dGgtY3Jhc2gtbG9nLnR4
dFVUBQADHMK5TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAEq/aD/07G9S9gAAAHgBAABKABgA
AAAAAAEAAACkgRo+AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hl
L2FjY2Vzcy12aWEtcmVkaXJlY3Qtc3RkZXJyLnR4dFVUBQADHMK5TnV4CwABBOgDAAAE6AMAAFBL
AQIeAxQAAgAIAEu/aD8APYic9QAAAHgBAABGABgAAAAAAAEAAACkgZQ/AAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2N5cmlsbGljLXVyaS1jcmFzaC1sb2cudHh0
VVQFAAMdwrlOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAS79oP6qbk9zZAAAATAEAACUAGAAA
AAAAAQAAAKSBCUEAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Vycm9yX2xvZy50eHRVVAUAAx7C
uU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABNv2g/sQtGC+IdAAASfAAAJAAYAAAAAAABAAAA
pIFBQgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcmVzdWx0cy5odG1sVVQFAAMhwrlOdXgLAAEE
6AMAAAToAwAAUEsBAh4DFAACAAgAS79oP4zO62VVAAAA1QAAACYAGAAAAAAAAQAAAKSBgWAAAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjIudHh0VVQFAAMewrlOdXgLAAEE6AMAAATo
AwAAUEsBAh4DFAACAAgATb9oP5AzVGg4AgAAXAgAACkAGAAAAAAAAQAAAKSBNmEAAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2Z1bGxfcmVzdWx0cy5qc29uVVQFAAMhwrlOdXgLAAEE6AMAAAToAwAA
UEsBAh4DFAACAAgASb9oP5HsZoEaJAAAb2EAACIAGAAAAAAAAQAAAKSB0WMAAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2h0dHBkLmNvbmZVVAUAAxnCuU51eAsAAQToAwAABOgDAABQSwECHgMKAAAA
AABJv2g/AAAAAAAAAAAAAAAAJgAYAAAAAAAAAAAApIFHiAAAdG1wL2xheW91dC10ZXN0LXJlc3Vs
dHMvYWNjZXNzX2xvZy50eHRVVAUAAxnCuU51eAsAAQToAwAABOgDAABQSwECHgMKAAAAAABJv2g/
AAAAAAAAAAAAAAAAQwAYAAAAAAAAAAAApIGniAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcHl3
ZWJzb2NrZXQud3MubG9nLTA4Tm92MjAxMS0yMzU4MTgtZXJyLnR4dFVUBQADGsK5TnV4CwABBOgD
AAAE6AMAAFBLAQIeAwoAAAAAAEm/aD8AAAAAAAAAAAAAAABDABgAAAAAAAAAAACkgSSJAAB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9weXdlYnNvY2tldC53cy5sb2ctMDhOb3YyMDExLTIzNTgxOC1v
dXQudHh0VVQFAAMawrlOdXgLAAEE6AMAAAToAwAAUEsFBgAAAAA8ADwAfB8AAKGJAAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114170</attachid>
            <date>2011-11-08 16:15:56 -0800</date>
            <delta_ts>2011-11-09 09:06:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71595-20111108161555.patch</filename>
            <type>text/plain</type>
            <size>52661</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk1OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOWQ5NDA3YjNhMmFiOTA3
ZjBlNTVkNjZmOGUzYzkyMDFjZmY3MjFjLi43MTJhYTI3NmE3MTA5ZTBjMThhNTNiZGUzYzI3YTY4
ZmJiNjAwNzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTEtMTEtMDggIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChmaWxlZCA3MTUyOSB0byBy
ZW1lbWJlciB0byBkbyBpdCBsYXRlcikuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNocm9taXVtOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpzZXRCb3VuZHMpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5
ZXJDaHJvbWl1bTo6c2Nyb2xsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVt
OjpzZXRTY3JvbGxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnBhZ2VT
Y2FsZUNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
UmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hy
b21pdW06OmRyYXdMYXllcnNJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXll
clJlbmRlcmVyQ2hyb21pdW06OnNldFBhZ2VNYWduaWZ5VHJhbnNmb3JtKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0Lmg6CisgICAgICAgIChXZWJDb3JlOjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnRv
cExldmVsUm9vdExheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6Q0NMYXll
ckltcGwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6c2Nyb2xsYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6c2V0U2Nyb2xsYWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6Q0NMYXllclRyZWVIb3N0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNjYWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnBhZ2VTY2FsZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1w
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJl
ZUhvc3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OmNvbW1p
dENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRTY3JvbGxMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChX
ZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRQYWdlU2NhbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6c2V0U2NhbGVEZWx0YSk6CisgICAgICAgIChXZWJD
b3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6dXBkYXRlTWF4U2Nyb2xsUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6cGluY2hHZXN0dXJl
QmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6cGluY2hHZXN0
dXJlVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNo
R2VzdHVyZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwcm9j
ZXNzU2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhv
c3RJbXBsOjpwYWdlU2NhbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDU2Nyb2xsQ29udHJvbGxlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NT
aW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJl
YWRQcm94eTo6Y3JlYXRlQmVnaW5GcmFtZUFuZENvbW1pdFRhc2tPbkltcGxUaHJlYWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oOgorCiAy
MDExLTExLTA4ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZW1vdmUgZ2V0KCkgZGVmaW5lZCBpbiBDcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDUxZmMwZGM0ODk1ZDMyYzEzNmQxMTliMDRiYzIxYzA4N2Rk
ZWY5YWYuLjZjNzgzYjA4M2M5N2ZkZGEzMjc0OWVkNWI5MjM2NWE4MWEwOWVmYzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMTEtMDggIEFsZXhhbmRy
ZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGRy
YXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5o
OgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0
b3JJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6
CisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmg6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmVuYWJsZUZpeGVk
TGF5b3V0TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVG
YWN0b3JMaW1pdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBwbHlTY3JvbGxB
bmRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVMYXllclRyZWVW
aWV3cG9ydCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogdGVzdHMv
Q0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpDQ0xheWVyVHJl
ZUhvc3RJbXBsVGVzdDo6ZXhwZWN0Q29udGFpbnMpOgorICAgICAgICAoV2ViS2l0OjpURVNUX0Yp
OgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAgICAgICAoV1RG
OjpUZXN0SG9va3M6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAoV1RGOjpNb2NrTGF5
ZXJUcmVlSG9zdENsaWVudDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXVEY6OkND
TGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6OmJlZ2luVGVzdCk6CisgICAgICAgIChXVEY6
OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6OmRyYXdMYXllcnNPbkNDVGhyZWFkKToK
KyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdFNjcm9sbFNpbXBsZTo6YXBwbHlTY3Jv
bGxBbmRTY2FsZSk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0
aXBsZVJlZHJhdzo6YmVnaW5UZXN0KToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVz
dFNjcm9sbE11bHRpcGxlUmVkcmF3OjpkcmF3TGF5ZXJzT25DQ1RocmVhZCk6CisgICAgICAgIChX
VEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0aXBsZVJlZHJhdzo6YXBwbHlTY3JvbGxB
bmRTY2FsZSk6CisKIDIwMTEtMTEtMDggIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZGlzcGxheSBub3RpZmljYXRpb24gaW4g
dGhlIGZyb250LWVuZCB3aGVuIGluc3BlY3RlZCB3b3JrZXIgdGVybWluYXRlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXll
ckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNzI5YTlhY2RlY2M0OGVmMDk5YzJlNWI5
YzM3NjA1OTRkMGM2YjE3ZS4uMTU2YjJlOTBlZjQ1ZTY5MDA3ODJlYTU5NDgwOGI2YWQ4MmUzZmJj
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
R3JhcGhpY3NMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCkBAIC02NzAsNiArNjcw
LDEyIEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVPcGFjaXR5T25MYXllcigp
CiAgICAgcHJpbWFyeUxheWVyKCktPnNldE9wYWNpdHkobV9vcGFjaXR5KTsKIH0KIAordm9pZCBH
cmFwaGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCit7
CisgICAgaWYgKG1fbGF5ZXIpCisgICAgICAgIG1fbGF5ZXItPnBhZ2VTY2FsZUNoYW5nZWQoKTsK
K30KKwogYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIEdyYXBoaWNzTGF5ZXI6OmRyYXdzQ29udGVudCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNo
cm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFw
aGljc0xheWVyQ2hyb21pdW0uaAppbmRleCA3MTkwZTUwNTlmYzU2MTY0OTY5NjkwNDk0M2E1ZTc1
YzUzN2M1MzdlLi5mNzNlNzMzNzM5YmExNmE1MjIxMWIzMTFlMjY5YzUzNmJjYWJhNzIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGlj
c0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTAwLDYgKzEwMCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBJbnRSZWN0JiBjbGlwKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U3luY1JlcXVpcmVkKCk7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlT3BhY2l0eU9uTGF5ZXIoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9t
aXVtLmNwcAppbmRleCAxYmU3OTg1NWMxZTZiM2ZlMTI5NzI0MmJjMjk4NDA1NmQ0MDk3OGJiLi5j
YTAwYzIzNTI0Zjc3YTYzYjBlODU5OGJkODEzZjIwMzZjNjA4NjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9t
aXVtLmNwcApAQCAtNTgsNiArNTgsNyBAQCBMYXllckNocm9taXVtOjpMYXllckNocm9taXVtKEND
TGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgOiBtX2RlbGVnYXRlKGRlbGVnYXRlKQogICAg
ICwgbV9sYXllcklkKHNfbmV4dExheWVySWQrKykKICAgICAsIG1fcGFyZW50KDApCisgICAgLCBt
X3Njcm9sbGFibGUoZmFsc2UpCiAgICAgLCBtX2FuY2hvclBvaW50KDAuNSwgMC41KQogICAgICwg
bV9iYWNrZ3JvdW5kQ29sb3IoMCwgMCwgMCwgMCkKICAgICAsIG1fZGVidWdCb3JkZXJXaWR0aCgw
KQpAQCAtNzIsNiArNzMsNyBAQCBMYXllckNocm9taXVtOjpMYXllckNocm9taXVtKENDTGF5ZXJE
ZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgLCBtX3JlcGxpY2FMYXllcigwKQogICAgICwgbV9kcmF3
T3BhY2l0eSgwKQogICAgICwgbV90YXJnZXRSZW5kZXJTdXJmYWNlKDApCisgICAgLCBtX3BhZ2VT
Y2FsZURpcnR5KGZhbHNlKQogewogfQogCkBAIC0yMTAsMTAgKzIxMiwxMiBAQCB2b2lkIExheWVy
Q2hyb21pdW06OnNldEJvdW5kcyhjb25zdCBJbnRTaXplJiBzaXplKQogCiAgICAgbV9ib3VuZHMg
PSBzaXplOwogCi0gICAgaWYgKGZpcnN0UmVzaXplKQorICAgIGlmIChmaXJzdFJlc2l6ZSB8fCBt
X3BhZ2VTY2FsZURpcnR5KQogICAgICAgICBzZXROZWVkc0Rpc3BsYXkoRmxvYXRSZWN0KDAsIDAs
IGJvdW5kcygpLndpZHRoKCksIGJvdW5kcygpLmhlaWdodCgpKSk7CiAgICAgZWxzZQogICAgICAg
ICBzZXROZWVkc0NvbW1pdCgpOworCisgICAgbV9wYWdlU2NhbGVEaXJ0eSA9IGZhbHNlOwogfQog
CiBjb25zdCBMYXllckNocm9taXVtKiBMYXllckNocm9taXVtOjpyb290TGF5ZXIoKSBjb25zdApA
QCAtMjg3LDcgKzI5MSw3IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNUbyhD
Q0xheWVySW1wbCogbGF5ZXIpCiAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudChkcmF3c0NvbnRl
bnQoKSk7CiAgICAgbGF5ZXItPnNldElzTm9uQ29tcG9zaXRlZENvbnRlbnQobV9pc05vbkNvbXBv
c2l0ZWRDb250ZW50KTsKICAgICBsYXllci0+c2V0TWFza3NUb0JvdW5kcyhtX21hc2tzVG9Cb3Vu
ZHMpOwotICAgIGxheWVyLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtX21heFNjcm9sbFBvc2l0aW9u
KTsKKyAgICBsYXllci0+c2V0U2Nyb2xsYWJsZShtX3Njcm9sbGFibGUpOwogICAgIGxheWVyLT5z
ZXROYW1lKG1fbmFtZSk7CiAgICAgbGF5ZXItPnNldE9wYXF1ZShtX29wYXF1ZSk7CiAgICAgbGF5
ZXItPnNldE9wYWNpdHkobV9vcGFjaXR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAppbmRleCBiYjBlYzYy
NjUwMzM2OGY0OTljOTUzMmRkNjk0NDljZWJhMzcwYzk0Li43NDdkYzk4NjljZjEwYjYyZjMwZTli
ZjA5YWYyMjc5ODY2NGQzNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBAIC0xMzEsMTMgKzEzMSwx
MSBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zY3JvbGxQb3NpdGlvbjsgfQogICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKSB7IG1fc2Nyb2xsUG9zaXRpb24gPSBzY3Jv
bGxQb3NpdGlvbjsgfQogCi0gICAgY29uc3QgSW50U2l6ZSYgbWF4U2Nyb2xsUG9zaXRpb24oKSBj
b25zdCB7cmV0dXJuIG1fbWF4U2Nyb2xsUG9zaXRpb247IH0KLSAgICB2b2lkIHNldE1heFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEludFNpemUmIG1heFNjcm9sbFBvc2l0aW9uKSB7IG1fbWF4U2Nyb2xs
UG9zaXRpb24gPSBtYXhTY3JvbGxQb3NpdGlvbjsgfQorICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZTsgfQorICAgIHZvaWQgc2V0U2Nyb2xsYWJsZShib29s
IHNjcm9sbGFibGUpIHsgbV9zY3JvbGxhYmxlID0gdHJ1ZTsgIHNldE5lZWRzQ29tbWl0KCk7IH0K
IAogICAgIEludFNpemUgc2Nyb2xsRGVsdGEoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0K
IAotICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtYXhTY3JvbGxQb3NpdGlv
bigpLmlzWmVybygpOyB9Ci0KICAgICBib29sIGRvdWJsZVNpZGVkKCkgY29uc3QgeyByZXR1cm4g
bV9kb3VibGVTaWRlZDsgfQogICAgIHZvaWQgc2V0RG91YmxlU2lkZWQoYm9vbCBkb3VibGVTaWRl
ZCkgeyBtX2RvdWJsZVNpZGVkID0gZG91YmxlU2lkZWQ7IHNldE5lZWRzQ29tbWl0KCk7IH0KIApA
QCAtMTY0LDYgKzE2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNNYXNrKGJv
b2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250ZW50c1RleHR1cmUoKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZSgpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBwYWdlU2NhbGVDaGFuZ2VkKCkgeyBtX3BhZ2VTY2FsZURpcnR5ID0gdHJ1ZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpIHsgfQogCiAgICAgLy8g
VGhlc2UgZXhpc3QganVzdCBmb3IgZGVidWdnaW5nICh2aWEgZHJhd0RlYnVnQm9yZGVyKCkpLgpA
QCAtMjUyLDcgKzI1MSw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX2JvdW5kczsKICAgICBJ
bnRSZWN0IG1fdmlzaWJsZUxheWVyUmVjdDsKICAgICBJbnRQb2ludCBtX3Njcm9sbFBvc2l0aW9u
OwotICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlvbjsKKyAgICBib29sIG1fc2Nyb2xsYWJs
ZTsKICAgICBGbG9hdFBvaW50IG1fcG9zaXRpb247CiAgICAgRmxvYXRQb2ludCBtX2FuY2hvclBv
aW50OwogICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9yOwpAQCAtMjgzLDYgKzI4Miw4IEBAIHBy
aXZhdGU6CiAgICAgSW50UmVjdCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7CiAKICAgICBTdHJpbmcg
bV9uYW1lOworCisgICAgYm9vbCBtX3BhZ2VTY2FsZURpcnR5OwogfTsKIAogdm9pZCBzb3J0TGF5
ZXJzKFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIFZlY3RvcjxSZWZQ
dHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IGRmMjU0MzU2YmRiZDYxZjgyZDkyMWU4ZTljMGRjZWVj
OWFhNWU4YTIuLjIyMDMyMWI3NGVhYTY1NmUwYWU0MzVmMmU5NmY4YzM1NjZiMTI1ZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVu
ZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtMzYxLDkgKzM2MSwxNCBAQCB2
b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc0ludGVybmFsKCkKICAgICBtX2Rl
ZmF1bHRSZW5kZXJTdXJmYWNlID0gcm9vdERyYXdMYXllci0+cmVuZGVyU3VyZmFjZSgpOwogICAg
IG1fZGVmYXVsdFJlbmRlclN1cmZhY2UtPmNsZWFyTGF5ZXJMaXN0KCk7CiAKKyAgICBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCBtYWduaWZ5TWF0cml4KG1fcGFnZU1hZ25pZnlNYXRyaXgpOworICAgIC8v
IFRPRE8oYWVsaWFzKTogVGhlc2UgdHdvIHRyYW5zZm9ybWF0aW9ucyBhcmUgcmVkdW5kYW50OyB1
bmlmeSB6b29tQW5pbWF0b3IKKyAgICAvLyBhbmQgaW1wbC10aHJlYWQgc2lkZSBtYXRyaXguCisg
ICAgbWFnbmlmeU1hdHJpeC5tdWx0aXBseShtX3pvb21BbmltYXRvclRyYW5zZm9ybSk7CisKICAg
ICB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXll
cnNJbnRlcm5hbDo6Y2FsY0RyYXdFdGMiLCB0aGlzLCAwKTsKLSAgICAgICAgQ0NMYXllclRyZWVI
b3N0Q29tbW9uOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdERyYXdM
YXllciwgcm9vdERyYXdMYXllciwgbV96b29tQW5pbWF0b3JUcmFuc2Zvcm0sIG1fem9vbUFuaW1h
dG9yVHJhbnNmb3JtLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBtX2RlZmF1bHRSZW5kZXJTdXJm
YWNlLT5sYXllckxpc3QoKSwgJm1fbGF5ZXJTb3J0ZXIsIG1fY2FwYWJpbGl0aWVzLm1heFRleHR1
cmVTaXplKTsKKyAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVEcmF3VHJh
bnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdERyYXdMYXllciwgcm9vdERyYXdMYXllciwgbWFnbmlm
eU1hdHJpeCwgbWFnbmlmeU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9kZWZhdWx0
UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xheWVyU29ydGVyLCBtX2NhcGFiaWxpdGll
cy5tYXhUZXh0dXJlU2l6ZSk7CiAgICAgfQogCiAgICAgLy8gVGhlIEdMIHZpZXdwb3J0IGNvdmVy
cyB0aGUgZW50aXJlIHZpc2libGUgYXJlYSwgaW5jbHVkaW5nIHRoZSBzY3JvbGxiYXJzLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAppbmRleCA2NDZlYTZlNWM0NDhhNThjNjEyNDEz
NDJiMGY5YTZlYWRkYWVmNDQ3Li4wMjhlNjY0ZDNjYjllNWY1YjA2ZTZiZWY5ZmM3N2IwZmVjNTEy
ZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApAQCAtOTgsNiArOTgsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHZpZXdwb3J0Q2hhbmdlZCgpOwogCisgICAgdm9pZCBzZXRQ
YWdlTWFnbmlmeVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgcGFnZU1hZ25p
ZnlNYXRyaXgpIHsgbV9wYWdlTWFnbmlmeU1hdHJpeCA9IHBhZ2VNYWduaWZ5TWF0cml4OyB9CisK
ICAgICB2b2lkIGRyYXdMYXllcnMoKTsKIAogICAgIC8vIHdhaXRzIGZvciByZW5kZXJpbmcgdG8g
ZmluaXNoCkBAIC0xOTUsNiArMTk3LDcgQEAgcHJpdmF0ZToKIAogICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IG1fcHJvamVjdGlvbk1hdHJpeDsKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3dp
bmRvd01hdHJpeDsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3BhZ2VNYWduaWZ5TWF0cml4
OwogCiAgICAgQ0NSZW5kZXJTdXJmYWNlKiBtX2N1cnJlbnRSZW5kZXJTdXJmYWNlOwogICAgIHVu
c2lnbmVkIG1fb2Zmc2NyZWVuRnJhbWVidWZmZXJJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3Np
dGVkQ29udGVudEhvc3QuY3BwCmluZGV4IDI1ODM5Yzg4YTk3MzM5ZGU2NzEwZmMwNmNiZWQwOWVh
NGJlMjRmY2YuLmJjNmEyYTQ5NzgyOGViMjkxZTk4OTdlYjFiYjEyMjIwNzBhNGEyYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcApAQCAtNzQsNyArNzQsNyBA
QCB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0U2Nyb2xsTGF5ZXIoR3JhcGhpY3NM
YXllciogbGF5ZXIpCiAgICAgQVNTRVJUKHNjcm9sbExheWVyKCkpOwogfQogCi12b2lkIE5vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRT
aXplLCBjb25zdCBJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQ
b3NpdGlvbikKK3ZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydChjb25z
dCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29u
c3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBmbG9hdCBwYWdlU2NhbGUpCiB7CiAgICAgaWYg
KCFzY3JvbGxMYXllcigpKQogICAgICAgICByZXR1cm47CkBAIC04MywxNiArODMsMTYgQEAgdm9p
ZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSwgY29uc3QgSW4KIAogICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXpl
OwogICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsK
LSAgICBJbnRTaXplIG1heFNjcm9sbCA9IGNvbnRlbnRzU2l6ZSAtIHZpZXdwb3J0U2l6ZTsKLSAg
ICAvLyBUaGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBjb250ZW50cyBpbiBzb21l
IGNhc2VzLCBzdWNoIGFzCi0gICAgLy8gaGF2aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIGJ1dCBu
byBob3Jpem9udGFsIG92ZXJmbG93LgotICAgIG1heFNjcm9sbC5jbGFtcE5lZ2F0aXZlVG9aZXJv
KCk7Ci0KLSAgICBzY3JvbGxMYXllcigpLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtYXhTY3JvbGwp
OworICAgIC8vIER1ZSB0byB0aGUgcG9zc2liaWxpdHkgb2YgcGluY2ggem9vbSwgdGhlIG5vbmNv
bXBvc2l0ZWQgbGF5ZXIgaXMgYWx3YXlzCisgICAgLy8gYXNzdW1lZCB0byBiZSBzY3JvbGxhYmxl
LgorICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbGFibGUodHJ1ZSk7CiAgICAgbV9ncmFwaGlj
c0xheWVyLT5zZXRTaXplKGNvbnRlbnRzU2l6ZSk7CiAKICAgICBpZiAodmlzaWJsZVJlY3RDaGFu
Z2VkKQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOworCisgICAg
aWYgKG1fZ3JhcGhpY3NMYXllci0+cGFnZVNjYWxlRmFjdG9yKCkgIT0gcGFnZVNjYWxlKQorICAg
ICAgICBtX2dyYXBoaWNzTGF5ZXItPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwog
fQogCiBMYXllckNocm9taXVtKiBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNjcm9sbExheWVy
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKaW5kZXggMjg2NDc1Y2Jk
Y2RjN2Y1YjE5MTI0MGFkOGUxYTExNzkwMTRiYjI3YS4uODBhNzBhOWRiZDMxNmVhYTBiZWQyNDlh
ZTk5YWQzODk5ZThmNDA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
LmgKQEAgLTU1LDggKzU1LDkgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29u
c3QgSW50UmVjdCYpOwogICAgIHZvaWQgc2V0QmFja2dyb3VuZENvbG9yKGNvbnN0IENvbG9yJik7
CiAgICAgdm9pZCBzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVyKik7Ci0gICAgdm9pZCBzZXRW
aWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNvbnRl
bnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKTsKKyAgICB2b2lkIHNldFZp
ZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVu
dHNTaXplLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGZsb2F0IHBhZ2VTY2FsZSk7
CiAgICAgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpOworICAgIEdyYXBoaWNzTGF5
ZXIqIHRvcExldmVsUm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9ncmFwaGljc0xheWVyLmdl
dCgpOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
KFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+IGNvbnRlbnRQYWludCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVySW1wbC5jcHAKaW5kZXggZjVhNWExZDFhN2QwODUxOGUzMjljNjhmNGMyOGQyOWY3ODI4
ZjMwZi4uYmQyYWEwYWZjNDNkNzhlMDFhNjNjOWM0OGQyYWVjYTJhMTIyNzkxMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllcklt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJJbXBsLmNwcApAQCAtNDIsNiArNDIsNyBAQCBDQ0xheWVySW1wbDo6Q0NMYXllcklt
cGwoaW50IGlkKQogICAgICwgbV9sYXllcklkKGlkKQogICAgICwgbV9hbmNob3JQb2ludCgwLjUs
IDAuNSkKICAgICAsIG1fYW5jaG9yUG9pbnRaKDApCisgICAgLCBtX3Njcm9sbGFibGUoZmFsc2Up
CiAgICAgLCBtX2RvdWJsZVNpZGVkKHRydWUpCiAgICAgLCBtX2xheWVyUHJvcGVydHlDaGFuZ2Vk
KGZhbHNlKQogICAgICwgbV9tYXNrc1RvQm91bmRzKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgK
aW5kZXggMmI4ODQzOWQ0ZmYwMzFhYzUxMTYxYjRlMDcxY2ZjYzE2Y2QyNGZmMi4uYjcyY2FlMTBk
OTE3MWNlNjdkYmRiNzRjYjE0YjVlNTE1MzUwYWM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBA
IC0xNTgsNyArMTU4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Nyb2xsRGVsdGEoY29uc3Qg
SW50U2l6ZSYpOwogCiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBJbnRTaXplJiBzY3JvbGwpOwot
ICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtYXhTY3JvbGxQb3NpdGlvbigp
LmlzWmVybygpOyB9CisKKyAgICBib29sIHNjcm9sbGFibGUoKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbGFibGU7IH0KKyAgICB2b2lkIHNldFNjcm9sbGFibGUoYm9vbCBzY3JvbGxhYmxlKSB7IG1f
c2Nyb2xsYWJsZSA9IHNjcm9sbGFibGU7IH0KIAogICAgIGNvbnN0IEludFJlY3QmIHZpc2libGVM
YXllclJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Zpc2libGVMYXllclJlY3Q7IH0KICAgICB2b2lk
IHNldFZpc2libGVMYXllclJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJsZUxheWVyUmVjdCkgeyBt
X3Zpc2libGVMYXllclJlY3QgPSB2aXNpYmxlTGF5ZXJSZWN0OyB9CkBAIC0yMTYsNyArMjE4LDcg
QEAgcHJpdmF0ZToKICAgICBJbnRTaXplIG1fYm91bmRzOwogICAgIEludFNpemUgbV9jb250ZW50
Qm91bmRzOwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247Ci0gICAgSW50U2l6ZSBtX21h
eFNjcm9sbFBvc2l0aW9uOworICAgIGJvb2wgbV9zY3JvbGxhYmxlOwogICAgIENvbG9yIG1fYmFj
a2dyb3VuZENvbG9yOwogCiAgICAgLy8gV2hldGhlciB0aGUgImJhY2siIG9mIHRoaXMgbGF5ZXIg
c2hvdWxkIGRyYXcuCkBAIC0yMzksNiArMjQxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHJh
d3NDb250ZW50OwogCiAgICAgSW50U2l6ZSBtX3Njcm9sbERlbHRhOworICAgIEludFNpemUgbV9t
YXhTY3JvbGxQb3NpdGlvbjsKIAogICAgIC8vIFByb3BlcnRpZXMgb3duZWQgZXhjbHVzaXZlbHkg
YnkgdGhpcyBDQ0xheWVySW1wbC4KICAgICAvLyBEZWJ1Z2dpbmcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmNwcAppbmRleCAxMjc2MWYxYWQwOWE1YjBiMWRjZjM1NjY0ZDhmMjk0NzcxYmE0
ZTliLi40ZjJjMWZiNjI2NGVlN2MzYTllNjE3NTM3YTAyODk4MmY4YWIzM2ZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTU2LDYgKzU2LDkgQEAgQ0NMYXllclRyZWVIb3N0
OjpDQ0xheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQsIGNvbnN0IEND
U2V0dGluZ3MKICAgICAsIG1fc2V0dGluZ3Moc2V0dGluZ3MpCiAgICAgLCBtX3Zpc2libGUodHJ1
ZSkKICAgICAsIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhmYWxzZSkKKyAgICAsIG1fcGFnZVNj
YWxlKDEpCisgICAgLCBtX21pblBhZ2VTY2FsZSgxKQorICAgICwgbV9tYXhQYWdlU2NhbGUoMSkK
IHsKICAgICBDQ01haW5UaHJlYWQ6OmluaXRpYWxpemUoKTsKICAgICBBU1NFUlQoQ0NQcm94eTo6
aXNNYWluVGhyZWFkKCkpOwpAQCAtMTMwLDYgKzEzMyw4IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0
OjpmaW5pc2hDb21taXRPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaG9zdEltcGwp
CiAgICAgaG9zdEltcGwtPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMobV9oYXZlV2hlZWxFdmVu
dEhhbmRsZXJzKTsKICAgICBob3N0SW1wbC0+c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKG1fem9v
bUFuaW1hdG9yVHJhbnNmb3JtKTsKICAgICBob3N0SW1wbC0+c2V0Vmlld3BvcnQodmlld3BvcnRT
aXplKCkpOworICAgIGhvc3RJbXBsLT5zZXRQYWdlU2NhbGUocGFnZVNjYWxlKCkpOworICAgIGhv
c3RJbXBsLT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMobV9taW5QYWdlU2NhbGUsIG1fbWF4UGFn
ZVNjYWxlKTsKIAogICAgIC8vIFN5bmNocm9uaXplIHRyZWVzLCBpZiBvbmUgZXhpc3RzIGF0IGFs
bC4uLgogICAgIGlmIChyb290TGF5ZXIoKSkKQEAgLTIyNCw2ICsyMjksMjUgQEAgdm9pZCBDQ0xh
eWVyVHJlZUhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKICAg
ICBzZXROZWVkc0NvbW1pdCgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNj
YWxlKGZsb2F0IHBhZ2VTY2FsZSkKK3sKKyAgICBpZiAocGFnZVNjYWxlID09IG1fcGFnZVNjYWxl
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2VTY2FsZSA9IHBhZ2VTY2FsZTsKKyAgICBz
ZXROZWVkc0NvbW1pdCgpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0UGFnZVNjYWxl
RmFjdG9yTGltaXRzKGZsb2F0IG1pblNjYWxlLCBmbG9hdCBtYXhTY2FsZSkKK3sKKyAgICBpZiAo
bWluU2NhbGUgPT0gbV9taW5QYWdlU2NhbGUgJiYgbWF4U2NhbGUgPT0gbV9tYXhQYWdlU2NhbGUp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbWluUGFnZVNjYWxlID0gbWluU2NhbGU7CisgICAg
bV9tYXhQYWdlU2NhbGUgPSBtYXhTY2FsZTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCiB2
b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZShib29sIHZpc2libGUpCiB7CiAgICAgaWYg
KG1fdmlzaWJsZSA9PSB2aXNpYmxlKQpAQCAtNDM3LDE1ICs0NjEsMTUgQEAgdm9pZCBDQ0xheWVy
VHJlZUhvc3Q6OmNsZWFyUGVuZGluZ1VwZGF0ZSgpCiAgICAgbV91cGRhdGVMaXN0LmNsZWFyKCk7
CiB9CiAKLXZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbERlbHRhcyhjb25zdCBDQ1Nj
cm9sbFVwZGF0ZVNldCYgaW5mbykKK3ZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFu
ZFNjYWxlKGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmIGluZm8pCiB7CiAgICAgLy8gRklYTUU6
IHB1c2hpbmcgc2Nyb2xsIG9mZnNldHMgdG8gbm9uLXJvb3QgbGF5ZXJzIG5vdCBpbXBsZW1lbnRl
ZAotICAgIGlmICghaW5mby5zaXplKCkpCisgICAgaWYgKCFpbmZvLnNjcm9sbHMuc2l6ZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaW5mby5zaXplKCkgPT0gMSk7Ci0gICAgSW50
U2l6ZSBzY3JvbGxEZWx0YSA9IGluZm9bMF0uc2Nyb2xsRGVsdGE7Ci0gICAgbV9jbGllbnQtPmFw
cGx5U2Nyb2xsRGVsdGEoc2Nyb2xsRGVsdGEpOworICAgIEFTU0VSVChpbmZvLnNjcm9sbHMuc2l6
ZSgpID09IDEpOworICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBpbmZvLnNjcm9sbHNbMF0uc2Ny
b2xsRGVsdGE7CisgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsQW5kU2NhbGUoc2Nyb2xsRGVsdGEs
IGluZm8ucGFnZVNjYWxlKTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnN0YXJ0UmF0ZUxp
bWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5oCmluZGV4IDc1MDczMGRjZWJhNzM2NDgzZWNjZDI4MDg4NDEwODcwNzMyYjE4Y2IuLjc1MTk1
NDVlMTc1MDRiNmEyNGNjMWE3NDI4OTZhNjgxYTc1Mjc5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5oCkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIFRleHR1cmVNYW5hZ2VyOwogY2xhc3Mg
Q0NMYXllclRyZWVIb3N0Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0
ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBh
cHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdl
U2NhbGUpID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNy
ZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2VzcykgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDb21taXRBbmREcmF3RnJhbWUoaW50IGZyYW1lTnVtYmVyKSA9IDA7CkBAIC0xNTgsNiAr
MTU4LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSk7CiAKICAgICBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUoKSBjb25zdCB7
IHJldHVybiBtX3ZpZXdwb3J0U2l6ZTsgfQorCisgICAgdm9pZCBzZXRQYWdlU2NhbGUoZmxvYXQp
OworICAgIGZsb2F0IHBhZ2VTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlOyB9CisK
KyAgICB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5TY2FsZSwgZmxvYXQg
bWF4U2NhbGUpOworCiAgICAgVGV4dHVyZU1hbmFnZXIqIGNvbnRlbnRzVGV4dHVyZU1hbmFnZXIo
KSBjb25zdDsKIAogICAgIGJvb2wgdmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzaWJsZTsg
fQpAQCAtMTY4LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUxheWVycygpOwog
CiAgICAgdm9pZCB1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4dDNEKiwg
Q0NUZXh0dXJlVXBkYXRlciYpOwotICAgIHZvaWQgYXBwbHlTY3JvbGxEZWx0YXMoY29uc3QgQ0NT
Y3JvbGxVcGRhdGVTZXQmKTsKKyAgICB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgQ0NT
Y3JvbGxBbmRTY2FsZVNldCYpOwogICAgIHZvaWQgc3RhcnRSYXRlTGltaXRlcihHcmFwaGljc0Nv
bnRleHQzRCopOwogICAgIHZvaWQgc3RvcFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKik7
CiAKQEAgLTIwOSw2ICsyMTUsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXZlV2hlZWxFdmVu
dEhhbmRsZXJzOwogICAgIHR5cGVkZWYgSGFzaE1hcDxHcmFwaGljc0NvbnRleHQzRCosIFJlZlB0
cjxSYXRlTGltaXRlcj4gPiBSYXRlTGltaXRlck1hcDsKICAgICBSYXRlTGltaXRlck1hcCBtX3Jh
dGVMaW1pdGVyczsKKworICAgIGZsb2F0IG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG1fbWluUGFn
ZVNjYWxlLCBtX21heFBhZ2VTY2FsZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0Q29tbW9uLmgKaW5kZXggNjlkNTg0ZDRkMGVhYmFmYWNlN2QwNTFjMzg2NTJhZWE4YjRi
MTg4OC4uNTI5YjNiMzIwY2Y3MjQ0ZTJlNDE5OGVmMTk3ZTVjNDNkYzViNjlhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKQEAgLTUxLDcgKzUxLDEwIEBAIHB1Ymxp
YzoKICAgICB9OwogfTsKIAotdHlwZWRlZiBWZWN0b3I8Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpT
Y3JvbGxVcGRhdGVJbmZvPiBDQ1Njcm9sbFVwZGF0ZVNldDsKK3N0cnVjdCBDQ1Njcm9sbEFuZFNj
YWxlU2V0IHsKKyAgICBWZWN0b3I8Q0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJ
bmZvPiBzY3JvbGxzOworICAgIGZsb2F0IHBhZ2VTY2FsZTsKK307CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIExheWVyVHlwZT4KIEludFJlY3QgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVW
aXNpYmxlTGF5ZXJSZWN0KExheWVyVHlwZSogbGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuY3BwCmluZGV4IGZlMDkzMjZlNGIyOTkwNTZmMmQ3NWIzZWIxZTZhZTMyMzhj
YzQ2ZTYuLjhhY2I1NGJiYzQ1NmNlYTBjMGM0MTZiZWVjMjRlMDJmYjk3MDY0ZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC01MCw2ICs1MCwxMSBAQCBDQ0xh
eWVyVHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhvc3RJbXBsKGNvbnN0IENDU2V0dGluZ3MmIHNl
dHRpbmdzLCBDQ0xheWVyVHJlZQogICAgICwgbV9zZXR0aW5ncyhzZXR0aW5ncykKICAgICAsIG1f
dmlzaWJsZSh0cnVlKQogICAgICwgbV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKGZhbHNlKQorICAg
ICwgbV9wYWdlU2NhbGUoMSkKKyAgICAsIG1fc2NhbGVEZWx0YSgxKQorICAgICwgbV9taW5QYWdl
U2NhbGUoMCkKKyAgICAsIG1fbWF4UGFnZVNjYWxlKDApCisgICAgLCBtX3BpbmNoR2VzdHVyZUFj
dGl2ZShmYWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwogfQpA
QCAtNjgsNiArNzMsOSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmJlZ2luQ29tbWl0KCkK
IAogdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21taXRDb21wbGV0ZSgpCiB7CisgICAgLy8g
UmVjb21wdXRlIG1heCBzY3JvbGwgcG9zaXRpb247IG11c3QgYmUgYWZ0ZXIgbGF5ZXIgY29udGVu
dCBib3VuZHMgYXJlCisgICAgLy8gdXBkYXRlZC4KKyAgICB1cGRhdGVNYXhTY3JvbGxQb3NpdGlv
bigpOwogfQogCiBHcmFwaGljc0NvbnRleHQzRCogQ0NMYXllclRyZWVIb3N0SW1wbDo6Y29udGV4
dCgpCkBAIC0xMjgsNyArMTM2LDcgQEAgc3RhdGljIENDTGF5ZXJJbXBsKiBmaW5kU2Nyb2xsTGF5
ZXIoQ0NMYXllckltcGwqIGxheWVyKQogICAgIGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgaWYgKCFsYXllci0+bWF4U2Nyb2xsUG9zaXRpb24oKS5pc1plcm8oKSkKKyAgICBp
ZiAobGF5ZXItPnNjcm9sbGFibGUoKSkKICAgICAgICAgcmV0dXJuIGxheWVyOwogCiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBsYXllci0+Y2hpbGRyZW4oKS5zaXplKCk7ICsraSkgewpAQCAt
MTgwLDEwICsxODgsODIgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3RJbXBsOjppbml0aWFsaXplTGF5
ZXJSZW5kZXJlcihQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPgogCiB2b2lkIENDTGF5ZXJU
cmVlSG9zdEltcGw6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKIHsK
LSAgICBib29sIGNoYW5nZWQgPSB2aWV3cG9ydFNpemUgIT0gbV92aWV3cG9ydFNpemU7CisgICAg
aWYgKHZpZXdwb3J0U2l6ZSA9PSBtX3ZpZXdwb3J0U2l6ZSkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgbV92aWV3cG9ydFNpemUgPSB2aWV3cG9ydFNpemU7Ci0gICAgaWYgKGNoYW5nZWQpCi0gICAg
ICAgIG1fbGF5ZXJSZW5kZXJlci0+dmlld3BvcnRDaGFuZ2VkKCk7CisgICAgdXBkYXRlTWF4U2Ny
b2xsUG9zaXRpb24oKTsKKyAgICBtX2xheWVyUmVuZGVyZXItPnZpZXdwb3J0Q2hhbmdlZCgpOwor
fQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZShmbG9hdCBwYWdlU2Nh
bGUpCit7CisgICAgaWYgKCFwYWdlU2NhbGUgfHwgcGFnZVNjYWxlID09IG1fcGFnZVNjYWxlKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBNYWludGFpbiBjb25zdGFudCB0aGUgcHJvZHVjdCBv
ZiBtX3BhZ2VTY2FsZSAqIG1fc2NhbGVEZWx0YS4KKyAgICBmbG9hdCBzY2FsZUNoYW5nZSA9IHBh
Z2VTY2FsZSAvIG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG9sZE1hZ25pZnlTY2FsZSA9IG1fcGFn
ZVNjYWxlICogbV9zY2FsZURlbHRhOworICAgIG1fcGFnZVNjYWxlID0gcGFnZVNjYWxlOworCisg
ICAgc2V0U2NhbGVEZWx0YShvbGRNYWduaWZ5U2NhbGUgLyBwYWdlU2NhbGUpOworCisgICAgLy8g
V2UgYWxzbyBuZWVkIHRvIGNvbnZlcnQgaW1wbC1zaWRlIHNjcm9sbCBkZWx0YXMgdG8gcGFnZVNj
YWxlIHNwYWNlLgorICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiBtX3Njcm9sbExheWVySW1w
bC0+c2Nyb2xsYWJsZSgpKSB7CisgICAgICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBtX3Njcm9s
bExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKTsKKyAgICAgICAgc2Nyb2xsRGVsdGEuc2NhbGUoc2Nh
bGVDaGFuZ2UpOworICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2Nyb2xsRGVsdGEoc2Ny
b2xsRGVsdGEpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRTY2Fs
ZURlbHRhKGZsb2F0IGRlbHRhKQoreworICAgIC8vIENsYW1wIHRvIHRoZSBjdXJyZW50IG1pbi9t
YXggbGltaXRzLgorICAgIGZsb2F0IGZpbmFsTWFnbmlmeVNjYWxlID0gbV9wYWdlU2NhbGUgKiBk
ZWx0YTsKKyAgICBpZiAobV9taW5QYWdlU2NhbGUgJiYgZmluYWxNYWduaWZ5U2NhbGUgPCBtX21p
blBhZ2VTY2FsZSkKKyAgICAgICAgZGVsdGEgPSBtX21pblBhZ2VTY2FsZSAvIG1fcGFnZVNjYWxl
OworICAgIGVsc2UgaWYgKG1fbWF4UGFnZVNjYWxlICYmIGZpbmFsTWFnbmlmeVNjYWxlID4gbV9t
YXhQYWdlU2NhbGUpCisgICAgICAgIGRlbHRhID0gbV9tYXhQYWdlU2NhbGUgLyBtX3BhZ2VTY2Fs
ZTsKKworICAgIGlmIChkZWx0YSA9PSBtX3NjYWxlRGVsdGEpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fc2NhbGVEZWx0YSA9IGRlbHRhOworCisgICAgdXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24o
KTsKKworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGRlbHRhTWF0cml4OworICAgIGRlbHRhTWF0
cml4LnNjYWxlKG1fc2NhbGVEZWx0YSk7CisgICAgbV9sYXllclJlbmRlcmVyLT5zZXRQYWdlTWFn
bmlmeVRyYW5zZm9ybShkZWx0YU1hdHJpeCk7Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1w
bDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VTY2FsZSwgZmxvYXQgbWF4
UGFnZVNjYWxlKQoreworICAgIG1fbWluUGFnZVNjYWxlID0gbWluUGFnZVNjYWxlOworICAgIG1f
bWF4UGFnZVNjYWxlID0gbWF4UGFnZVNjYWxlOworCisgICAgLy8gVGhpcyB3aWxsIGNsYW1wIG1f
c2NhbGVEZWx0YSBhbmQgYXBwbHkgc2lkZSBlZmZlY3RzIGlmIGNsYW1wZWQuCisgICAgc2V0U2Nh
bGVEZWx0YShtX3NjYWxlRGVsdGEpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnVw
ZGF0ZU1heFNjcm9sbFBvc2l0aW9uKCkKK3sKKyAgICBpZiAoIW1fc2Nyb2xsTGF5ZXJJbXBsIHx8
ICFtX3Njcm9sbExheWVySW1wbC0+Y2hpbGRyZW4oKS5zaXplKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIEZsb2F0U2l6ZSB2aWV3Qm91bmRzID0gbV92aWV3cG9ydFNpemU7CisgICAgdmlld0Jv
dW5kcy5zY2FsZSgxIC8gbV9zY2FsZURlbHRhKTsKKworICAgIC8vIFRPRE8oYWVsaWFzKTogSGFy
ZGNvZGluZyB0aGUgZmlyc3QgY2hpbGQgaGVyZSBpcyB3ZWlyZC4gVGhpbmsgb2YKKyAgICAvLyBh
IGNsZWFuZXIgd2F5IHRvIGdldCB0aGUgY29udGVudEJvdW5kcyBvbiB0aGUgSW1wbCBzaWRlLgor
ICAgIEludFNpemUgbWF4U2Nyb2xsID0gbV9zY3JvbGxMYXllckltcGwtPmNoaWxkcmVuKClbMF0t
PmNvbnRlbnRCb3VuZHMoKSAtIGV4cGFuZGVkSW50U2l6ZSh2aWV3Qm91bmRzKTsKKyAgICAvLyBU
aGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBjb250ZW50cyBpbiBzb21lIGNhc2Vz
LCBzdWNoIGFzCisgICAgLy8gaGF2aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIGJ1dCBubyBob3Jp
em9udGFsIG92ZXJmbG93LgorICAgIG1heFNjcm9sbC5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7CisK
KyAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0TWF4U2Nyb2xsUG9zaXRpb24obWF4U2Nyb2xsKTsK
KworICAgIC8vIFRPRE8oYWVsaWFzKTogQWxzbyB1cGRhdGUgc3VibGF5ZXJzLgogfQogCiB2b2lk
IENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgem9vbSkKQEAgLTIwNywyMCArMjg3LDYxIEBAIGJvb2wgQ0NMYXll
clRyZWVIb3N0SW1wbDo6aGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpCiAgICAgcmV0dXJuIG1faGF2
ZVdoZWVsRXZlbnRIYW5kbGVyczsKIH0KIAotUGFzc093blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4g
Q0NMYXllclRyZWVIb3N0SW1wbDo6cHJvY2Vzc1Njcm9sbERlbHRhcygpCit2b2lkIENDTGF5ZXJU
cmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKCkKIHsKLSAgICBPd25QdHI8Q0NTY3JvbGxV
cGRhdGVTZXQ+IHNjcm9sbEluZm8gPSBhZG9wdFB0cihuZXcgQ0NTY3JvbGxVcGRhdGVTZXQoKSk7
Ci0gICAgLy8gRklYTUU6IHRyYWNrIHNjcm9sbHMgZnJvbSBsYXllcnMgb3RoZXIgdGhhbiB0aGUg
cm9vdAotICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiAhbV9zY3JvbGxMYXllckltcGwtPnNj
cm9sbERlbHRhKCkuaXNaZXJvKCkpIHsKLSAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpT
Y3JvbGxVcGRhdGVJbmZvIGluZm87Ci0gICAgICAgIGluZm8ubGF5ZXJJZCA9IG1fc2Nyb2xsTGF5
ZXJJbXBsLT5pZCgpOwotICAgICAgICBpbmZvLnNjcm9sbERlbHRhID0gbV9zY3JvbGxMYXllcklt
cGwtPnNjcm9sbERlbHRhKCk7Ci0gICAgICAgIHNjcm9sbEluZm8tPmFwcGVuZChpbmZvKTsKLQot
ICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2Nyb2xsUG9zaXRpb24obV9zY3JvbGxMYXll
ckltcGwtPnNjcm9sbFBvc2l0aW9uKCkgKyBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEo
KSk7Ci0gICAgICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRQb3NpdGlvbihtX3Njcm9sbExheWVy
SW1wbC0+cG9zaXRpb24oKSAtIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKLSAg
ICAgICAgbV9zY3JvbGxMYXllckltcGwtPnNldFNjcm9sbERlbHRhKEludFNpemUoKSk7CisgICAg
bV9waW5jaEdlc3R1cmVBY3RpdmUgPSB0cnVlOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdElt
cGw6OnBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQb2ludCYgYW5jaG9yKQor
eworICAgIFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVVcGRh
dGUiLCB0aGlzLCAwKTsKKworICAgIGlmIChtYWduaWZ5RGVsdGEgPT0gMS4wKQorICAgICAgICBy
ZXR1cm47CisgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gS2VlcCB0aGUgY2VudGVyLW9mLXBpbmNoIGFuY2hvciBzcGVjaWZpZWQgYnkgKHgsIHkp
IGluIGEgc3RhYmxlCisgICAgLy8gcG9zaXRpb24gb3ZlciB0aGUgY291cnNlIG9mIHRoZSBtYWdu
aWZ5LgorICAgIEZsb2F0UG9pbnQgcHJldlNjYWxlQW5jaG9yKGFuY2hvci54KCkgLyBtX3NjYWxl
RGVsdGEsIGFuY2hvci55KCkgLyBtX3NjYWxlRGVsdGEpOworICAgIHNldFNjYWxlRGVsdGEobV9z
Y2FsZURlbHRhICogbWFnbmlmeURlbHRhKTsKKyAgICBGbG9hdFBvaW50IG5ld1NjYWxlQW5jaG9y
KGFuY2hvci54KCkgLyBtX3NjYWxlRGVsdGEsIGFuY2hvci55KCkgLyBtX3NjYWxlRGVsdGEpOwor
CisgICAgRmxvYXRTaXplIG1vdmUgPSBwcmV2U2NhbGVBbmNob3IgLSBuZXdTY2FsZUFuY2hvcjsK
KworICAgIHNjcm9sbFJvb3RMYXllcihyb3VuZGVkSW50U2l6ZShtb3ZlKSk7CisKKyAgICBtX2Ns
aWVudC0+c2V0TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQoKTsKK30KKwordm9pZCBDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVFbmQoKQoreworICAgIG1fcGluY2hHZXN0dXJlQWN0aXZl
ID0gZmFsc2U7CisKKyAgICBtX2NsaWVudC0+c2V0TmVlZHNDb21taXRPbkltcGxUaHJlYWQoKTsK
K30KKworUGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBDQ0xheWVyVHJlZUhvc3RJbXBs
Ojpwcm9jZXNzU2Nyb2xsRGVsdGFzKCkKK3sKKyAgICBPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNl
dD4gc2Nyb2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBDQ1Njcm9sbEFuZFNjYWxlU2V0KCkpOworICAg
IGJvb2wgZGlkTW92ZSA9IG1fc2Nyb2xsTGF5ZXJJbXBsICYmICghbV9zY3JvbGxMYXllckltcGwt
PnNjcm9sbERlbHRhKCkuaXNaZXJvKCkgfHwgbV9zY2FsZURlbHRhICE9IDEuMGYpOworICAgIGlm
ICghZGlkTW92ZSB8fCBtX3BpbmNoR2VzdHVyZUFjdGl2ZSkgeworICAgICAgICBzY3JvbGxJbmZv
LT5wYWdlU2NhbGUgPSBtX3BhZ2VTY2FsZTsKKyAgICAgICAgcmV0dXJuIHNjcm9sbEluZm8ucmVs
ZWFzZSgpOwogICAgIH0KKworICAgIC8vIEZJWE1FOiB0cmFjayBzY3JvbGxzIGZyb20gbGF5ZXJz
IG90aGVyIHRoYW4gdGhlIHJvb3QKKyAgICBzY3JvbGxJbmZvLT5wYWdlU2NhbGUgPSBtX3BhZ2VT
Y2FsZSAqIG1fc2NhbGVEZWx0YTsKKyAgICBDQ0xheWVyVHJlZUhvc3RDb21tb246OlNjcm9sbFVw
ZGF0ZUluZm8gc2Nyb2xsOworICAgIHNjcm9sbC5sYXllcklkID0gbV9zY3JvbGxMYXllckltcGwt
PmlkKCk7CisgICAgc2Nyb2xsLnNjcm9sbERlbHRhID0gbV9zY3JvbGxMYXllckltcGwtPnNjcm9s
bERlbHRhKCk7CisgICAgc2Nyb2xsSW5mby0+c2Nyb2xscy5hcHBlbmQoc2Nyb2xsKTsKKworICAg
IG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRTY3JvbGxQb3NpdGlvbihtX3Njcm9sbExheWVySW1wbC0+
c2Nyb2xsUG9zaXRpb24oKSArIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKKyAg
ICBtX3Njcm9sbExheWVySW1wbC0+c2V0UG9zaXRpb24obV9zY3JvbGxMYXllckltcGwtPnBvc2l0
aW9uKCkgLSBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKSk7CisgICAgbV9zY3JvbGxM
YXllckltcGwtPnNldFNjcm9sbERlbHRhKEludFNpemUoKSk7CisKICAgICByZXR1cm4gc2Nyb2xs
SW5mby5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaApp
bmRleCBiNTNlMjAwMTkxOGM2NTY2NGMyY2NhNjA1NWVhN2U1ZGUwYjRiNjIyLi5jODdjYzFjYzg0
NjcwN2M3ZDc3MDNhN2NlODk3YjA0YTcxMzQyYzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0SW1wbC5oCkBAIC05Nyw5ICs5NywxNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50U2l6
ZSYgdmlld3BvcnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydFNpemU7IH0KICAgICB2
b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYp
OwogCisgICAgdm9pZCBzZXRQYWdlU2NhbGUoZmxvYXQpOworICAgIGZsb2F0IHBhZ2VTY2FsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlOyB9CisgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0
b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbGUpOworCiAgICAg
Y29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzOyB9
CiAKLSAgICBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBwcm9jZXNzU2Nyb2xsRGVsdGFz
KCk7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCk7CisgICAgdmlydHVhbCB2
b2lkIHBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCwgY29uc3QgSW50UG9pbnQmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcGluY2hHZXN0dXJlRW5kKCk7CisgICAgUGFzc093blB0cjxDQ1Njcm9sbEFuZFNj
YWxlU2V0PiBwcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgdm9pZCB1cGRhdGVNYXhTY3JvbGxQ
b3NpdGlvbigpOwogCiBwcm90ZWN0ZWQ6CiAgICAgQ0NMYXllclRyZWVIb3N0SW1wbChjb25zdCBD
Q1NldHRpbmdzJiwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCopOwpAQCAtMTA4LDYgKzExNiw4
IEBAIHByb3RlY3RlZDoKICAgICBpbnQgbV9mcmFtZU51bWJlcjsKIAogcHJpdmF0ZToKKyAgICB2
b2lkIHNldFNjYWxlRGVsdGEoZmxvYXQpOworCiAgICAgT3duUHRyPExheWVyUmVuZGVyZXJDaHJv
bWl1bT4gbV9sYXllclJlbmRlcmVyOwogICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbV9yb290TGF5
ZXJJbXBsOwogICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbV9zY3JvbGxMYXllckltcGw7CkBAIC0x
MTUsNiArMTI1LDEyIEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKICAg
ICBib29sIG1fdmlzaWJsZTsKICAgICBib29sIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVyczsKKwor
ICAgIGZsb2F0IG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG1fc2NhbGVEZWx0YTsKKyAgICBmbG9h
dCBtX21pblBhZ2VTY2FsZSwgbV9tYXhQYWdlU2NhbGU7CisKKyAgICBib29sIG1fcGluY2hHZXN0
dXJlQWN0aXZlOwogfTsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKaW5k
ZXggOTJiOTVkN2RjYWNkNzRhZGYzZGJlNTZmY2YyYTBkZTA4OThiY2M0Mi4uYzg0MWQyNDNhODA1
YTJkMGRmYzI0MDQzZTc5NjgyZWMwMGY4ZWNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250
cm9sbGVyLmgKQEAgLTM2LDYgKzM2LDkgQEAgY2xhc3MgQ0NTY3JvbGxDb250cm9sbGVyIHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBw
aW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRhLCBjb25zdCBJbnRQb2ludCYgYW5j
aG9yKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUVuZCgpID0gMDsKIAogcHJv
dGVjdGVkOgogICAgIENDU2Nyb2xsQ29udHJvbGxlcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Np
bmdsZVRocmVhZFByb3h5LmNwcAppbmRleCBlYjFkY2Q0ZGRiN2U4OGZiOTkzNmM5Y2RmZDY4YjRk
MWYzMWQ3MDJmLi4xMWIyNjQ4ZmI1YWMxYjYyMGEwZDVkMmMyODI2MzdkNGZjNGY3YTM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Np
bmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAtMTY2LDcgKzE2Niw3IEBA
IHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQoKQogI2lmICFBU1NFUlRfRElTQUJM
RUQKICAgICAgICAgLy8gSW4gdGhlIHNpbmdsZS10aHJlYWRlZCBjYXNlLCB0aGUgc2Nyb2xsIGRl
bHRhcyBzaG91bGQgbmV2ZXIgYmUKICAgICAgICAgLy8gdG91Y2hlZCBvbiB0aGUgaW1wbCBsYXll
ciB0cmVlLgotICAgICAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+IHNjcm9sbEluZm8gPSBt
X2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgICAgIE93blB0
cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+
cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgICAgICBBU1NFUlQoIXNjcm9sbEluZm8tPnNpemUo
KSk7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IGRlMTk1
ZWYyMjZlMDJkMTY4YjFmNDRkMTQ2NGE3NDJlYTI0N2I3OTcuLjNjMTM3NzNiNjVjMDc2NDI4OTc1
ZDE2ZDlkODc0ZmE5MDBmZjA4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBAIC0z
NDEsMTEgKzM0MSwxMSBAQCBQYXNzT3duUHRyPENDTWFpblRocmVhZDo6VGFzaz4gQ0NUaHJlYWRQ
cm94eTo6Y3JlYXRlQmVnaW5GcmFtZUFuZENvbW1pdFRhc2tPbkltcAogICAgIC8vIG51bWJlcnMg
YmVsb3cgdGhlIGxhc3QgZXhlY3V0ZWQgb25lLgogICAgIGludCB0aGlzVGFza1NlcXVlbmNlTnVt
YmVyID0gbV9udW1CZWdpbkZyYW1lQW5kQ29tbWl0c0lzc3VlZE9uSW1wbFRocmVhZDsKICAgICBt
X251bUJlZ2luRnJhbWVBbmRDb21taXRzSXNzdWVkT25JbXBsVGhyZWFkKys7Ci0gICAgT3duUHRy
PENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJv
Y2Vzc1Njcm9sbERlbHRhcygpOworICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3Jv
bGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAg
IHJldHVybiBjcmVhdGVNYWluVGhyZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6YmVnaW5G
cmFtZUFuZENvbW1pdCwgdGhpc1Rhc2tTZXF1ZW5jZU51bWJlciwgZnJhbWVCZWdpblRpbWUsIHNj
cm9sbEluZm8ucmVsZWFzZSgpKTsKIH0KIAotdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1l
QW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNz
T3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvKQordm9pZCBDQ1RocmVhZFByb3h5
OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1lQmVn
aW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8pCiB7CiAg
ICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVBbmRDb21taXQiLCB0aGlz
LCAwKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMzUzLDcgKzM1Myw3IEBAIHZv
aWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdChpbnQgc2VxdWVuY2VOdW1iZXIs
IGRvdWJsZSBmcmFtZUJlZ2luVGltCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFNjcm9sbCBk
ZWx0YXMgbmVlZCB0byBiZSBhcHBsaWVkIGV2ZW4gaWYgdGhlIGNvbW1pdCB3aWxsIGJlIGRyb3Bw
ZWQuCi0gICAgbV9sYXllclRyZWVIb3N0LT5hcHBseVNjcm9sbERlbHRhcygqc2Nyb2xsSW5mby5n
ZXQoKSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5hcHBseVNjcm9sbEFuZFNjYWxlKCpzY3JvbGxJ
bmZvLmdldCgpKTsKIAogICAgIC8vIERyb3AgYmVnaW5GcmFtZUFuZENvbW1pdCBjYWxscyB0aGF0
IG9jY3VyIG91dCBvZiBzZXF1ZW5jZS4gU2VlIGNyZWF0ZUJlZ2luRnJhbWVBbmRDb21taXRUYXNr
T25JbXBsVGhyZWFkIGZvcgogICAgIC8vIGFuIGV4cGxhbmF0aW9uIG9mIGhvdyBvdXQtb2Ytc2Vx
dWVuY2UgYmVnaW5GcmFtZUFuZENvbW1pdCB0YXNrcyBjYW4gb2NjdXIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVh
ZFByb3h5LmgKaW5kZXggMTY3NmY4MzcwYmJlYzBmNDZkOTAxZDk0M2U3M2E1Zjk3MTg5ZjBlMy4u
ZGZmMDViYmRmNmE5MzNmZTE2OGI1ZmZkZGZmY2Y3YmQ5ZDgwN2YyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuaApAQCAtODEsNyArODEsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IENDVGhy
ZWFkUHJveHkoQ0NMYXllclRyZWVIb3N0Kik7CiAKICAgICAvLyBDYWxsZWQgb24gQ0NNYWluVGhy
ZWFkCi0gICAgdm9pZCBiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91
YmxlIGZyYW1lQmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0Pik7CisgICAg
dm9pZCBiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1l
QmVnaW5UaW1lLCBQYXNzT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+KTsKICAgICB2b2lkIGRp
ZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpOwogCiAgICAgLy8gQ2FsbGVkIG9u
IENDVGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJM
YXllclRyZWVWaWV3Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJM
YXllclRyZWVWaWV3Q2xpZW50LmgKaW5kZXggMDkxMjY5YzdhYjU0OTA4ZmJmMjg1ODMzYjVlMTg2
MGNhM2QyYjMzZi4uNmY1MDA5NjA3NmNkZjY2MmI3MjRhMDE4MzQ1Mzc0YzRiMGQ2YWQ3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0Ns
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZp
ZXdDbGllbnQuaApAQCAtMzcsOSArMzcsMTEgQEAgcHVibGljOgogICAgIC8vIHNvIHRoYXQgbGF5
ZXJzIGNhbiBiZSB1cGRhdGVkIGF0IHRoZSBnaXZlbiBmcmFtZSB0aW1lLgogICAgIHZpcnR1YWwg
dm9pZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOwogCi0gICAg
Ly8gQXBwbGllcyBhIHNjcm9sbCBkZWx0YSB0byB0aGUgcm9vdCBsYXllci4gVGhpcyBpcyB0cmln
Z2VyZWQgYnkgZXZlbnRzCi0gICAgLy8gc2VudCB0byB0aGUgY29tcG9zaXRvciB0aHJlYWQgdGhy
b3VnaCB0aGUgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UuCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5
U2Nyb2xsRGVsdGEoY29uc3QgV2ViU2l6ZSYpID0gMDsKKyAgICAvLyBBcHBsaWVzIGEgc2Nyb2xs
IGRlbHRhIHRvIHRoZSByb290IGxheWVyLCB3aGljaCBpcyBidW5kbGVkIHdpdGggYSBwYWdlCisg
ICAgLy8gc2NhbGUgZmFjdG9yIHRoYXQgbWF5IGFwcGx5IGEgQ1NTIHRyYW5zZm9ybSBvbiB0aGUg
d2hvbGUgZG9jdW1lbnQgKHVzZWQKKyAgICAvLyBmb3IgbW9iaWxlLWRldmljZSBwaW5jaCB6b29t
aW5nKS4gVGhpcyBpcyB0cmlnZ2VyZWQgYnkgZXZlbnRzIHNlbnQgdG8gdGhlCisgICAgLy8gY29t
cG9zaXRvciB0aHJlYWQgdGhyb3VnaCB0aGUgV2ViQ29tcG9zaXRvciBpbnRlcmZhY2UuCisgICAg
dmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYgc2Nyb2xsRGVs
dGEsIGZsb2F0IHNjYWxlRmFjdG9yKSA9IDA7CiAKICAgICAvLyBDcmVhdGVzIGEgM0QgY29udGV4
dCBzdWl0YWJsZSBmb3IgdGhlIGNvbXBvc2l0aW5nLiBUaGlzIG1heSBiZSBjYWxsZWQKICAgICAv
LyBtb3JlIHRoYW4gb25jZSBpZiB0aGUgY29udGV4dCBnZXRzIGxvc3QuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggYzc3ZjQ1MmQwZjZjMmQwY2RmNDk0ZDQ1Mzhl
ODUwOGM3MDY0OWRjNC4uNDI4YjgyNzQ3YWMxZDJmNWMwNjgzZjVhYTE5ZjIxOTE0ZTViOWQzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjA3LDYgKzIwNywx
MSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgZG91YmxlIHpvb21MZXZlbFRv
Wm9vbUZhY3Rvcihkb3VibGUgem9vbUxldmVsKTsKICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBk
b3VibGUgem9vbUZhY3RvclRvWm9vbUxldmVsKGRvdWJsZSBmYWN0b3IpOwogCisgICAgLy8gUGFn
ZVNjYWxlRmFjdG9yIHdpbGwgYmUgZm9yY2UtY2xhbXBlZCBiZXR3ZWVuIG1pblBhZ2VTY2FsZSBh
bmQgbWF4UGFnZVNjYWxlCisgICAgLy8gKGFuZCB0aGVzZSB2YWx1ZXMgd2lsbCBwZXJzaXN0IHVu
dGlsIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyBpcyBjYWxsZWQKKyAgICAvLyBhZ2FpbikuCisg
ICAgdmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2Nh
bGUsIGZsb2F0IG1heFBhZ2VTY2FsZSkgPSAwOworCiAgICAgLy8gR2V0cyB0aGUgc2NhbGUgZmFj
dG9yIG9mIHRoZSBwYWdlLCB3aGVyZSAxLjAgaXMgdGhlIG5vcm1hbCBzaXplLCA+IDEuMAogICAg
IC8vIGlzIHNjYWxlZCB1cCwgPCAxLjAgaXMgc2NhbGVkIGRvd24uCiAgICAgdmlydHVhbCBmbG9h
dCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKaW5kZXggZDhiZDNhMTYzNDFiNzljNWZiMjIx
ZDdhM2ZlMjBkNjE4MGM0OWFkNy4uY2YzMzMzNTY2ZTQzMTg4ZDllNTMwYWM5YjVmMThkOWYzNGY3
OWZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRv
ckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJ
bXBsLmNwcApAQCAtMTMzLDQgKzEzMywzIEBAIGludCBXZWJDb21wb3NpdG9ySW1wbDo6aWRlbnRp
ZmllcigpIGNvbnN0CiB9CiAKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCmluZGV4IDJlNjllYzM0N2NkZDBlNTA1YWU1NWYy
YzUwYWNhYWE5NmQ0ZGExYmYuLmRkYmUwNjQzMWM2NTdlZDM3MzRjNTQxOGZiNzA0ZWFiZjQ0Y2Iy
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZp
ZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVW
aWV3SW1wbC5jcHAKQEAgLTY1LDEwICs2NSwxMCBAQCB2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBs
OjphbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKICAgICAgICAgbV9jbGll
bnQtPmFuaW1hdGVBbmRMYXlvdXQoZnJhbWVCZWdpblRpbWUpOwogfQogCi12b2lkIFdlYkxheWVy
VHJlZVZpZXdJbXBsOjphcHBseVNjcm9sbERlbHRhKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGRl
bHRhKQordm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZShjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKQogewogICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsRGVsdGEoV2ViU2l6
ZShkZWx0YSkpOworICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJTaXpl
KHNjcm9sbERlbHRhKSwgcGFnZVNjYWxlKTsKIH0KIAogUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRl
eHQzRD4gV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0Qo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmll
d0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBs
LmgKaW5kZXggMWIxM2JmMzQ1OTEzMTgxYjdlMDdkN2QyYmU3ODY4OGNmOWM0NDNiZi4uZDZkZDZl
MzMyODcyYzdjOWFjMGRkMGJkYzY4MWY2ZjkwZjRmNTNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCkBAIC00Miw3ICs0Miw3IEBA
IHByaXZhdGU6CiAgICAgV2ViTGF5ZXJUcmVlVmlld0ltcGwoV2ViTGF5ZXJUcmVlVmlld0NsaWVu
dCosIGNvbnN0IFdlYkxheWVyJiByb290LCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5n
cyYpOwogICAgIHZpcnR1YWwgfldlYkxheWVyVHJlZVZpZXdJbXBsKCk7CiAgICAgdmlydHVhbCB2
b2lkIGFuaW1hdGVBbmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKTsKLSAgICB2aXJ0dWFs
IHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgdmly
dHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Ny
b2xsRGVsdGEsIGZsb2F0IHBhZ2VTY2FsZSk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXllclRyZWVIb3N0Q29udGV4dDNEKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4dChib29sIHN1Y2Nlc3Mp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGIyZDE2
ZTUxYzczZWRmYzY0YTdjMGMwM2U4OGEzNmQ5ZTNmZDBhNGMuLjZhOGQ3Mzg5ZDcyMDE5NDg2ZWY1
YjI2ODhkMjk0ZjVkYjZjMDM1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKQEAgLTE4OTgsNiArMTg5OCwyMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjplbmFi
bGVGaXhlZExheW91dE1vZGUoYm9vbCBlbmFibGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZy
YW1lLT52aWV3KCktPnNldFVzZUZpeGVkTGF5b3V0KGVuYWJsZSk7CisKKyNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCisgICAgLy8gQWxzbyBub3RpZnkgdGhlIGJhc2UgbGF5ZXIsIHdo
aWNoIFJlbmRlckxheWVyQ29tcG9zaXRvciBkb2VzIG5vdCBzZWUuCisgICAgaWYgKG1fbm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0KSB7CisgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3QgPSBtX25v
bkNvbXBvc2l0ZWRDb250ZW50SG9zdC0+dG9wTGV2ZWxSb290TGF5ZXIoKTsKKyAgICAgICAgcm9v
dC0+ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CisgICAgfQorCisgICAgdXBkYXRl
TGF5ZXJUcmVlVmlld3BvcnQoKTsKKyNlbmRpZgorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRQ
YWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2Nh
bGUpCit7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIG1fbGF5ZXJUcmVl
SG9zdC0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKG1pblBhZ2VTY2FsZSwgbWF4UGFnZVNjYWxl
KTsKKyNlbmRpZgogfQogCiBXZWJTaXplIFdlYlZpZXdJbXBsOjpmaXhlZExheW91dFNpemUoKSBj
b25zdApAQCAtMjcwNiwxMiArMjcyMywzMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjphbmltYXRlQW5k
TGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKICAgICBsYXlvdXQoKTsKIH0KIAotdm9pZCBX
ZWJWaWV3SW1wbDo6YXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkK
K3ZvaWQgV2ViVmlld0ltcGw6OmFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Ny
b2xsRGVsdGEsIGZsb2F0IHNjYWxlRmFjdG9yKQogewogICAgIGlmICghbWFpbkZyYW1lSW1wbCgp
IHx8ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7Cisg
ICAgZmxvYXQgb2xkU2NhbGUgPSBwYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBpZiAoIW9sZFNjYWxl
KQorICAgICAgICBvbGRTY2FsZSA9IDEuMGY7CisKKyAgICBpZiAoIXNjYWxlRmFjdG9yIHx8IG9s
ZFNjYWxlID09IHNjYWxlRmFjdG9yKQorICAgICAgICBtYWluRnJhbWVJbXBsKCktPmZyYW1lVmll
dygpLT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIFRoZSBw
YWdlIHNjYWxlIGNoYW5nZWQsIHNvIGFwcGx5IGEgc2NhbGUgYW5kIHNjcm9sbCBpbiBhIHNpbmds
ZQorICAgICAgICAvLyBvcGVyYXRpb24uIFRoZSBvbGQgc2Nyb2xsIG9mZnNldCAoYW5kIHBhc3Nl
ZC1pbiBkZWx0YSkgYXJlCisgICAgICAgIC8vIGluIHRoZSBvbGQgY29vcmRpbmF0ZSBzcGFjZSwg
c28gd2UgZmlyc3QgbmVlZCB0byBtdWx0aXBseSB0aGVtCisgICAgICAgIC8vIGJ5IHRoZSBwYWdl
IHNjYWxlIGRlbHRhLgorICAgICAgICBXZWJTaXplIHNjcm9sbE9mZnNldCA9IG1haW5GcmFtZSgp
LT5zY3JvbGxPZmZzZXQoKTsKKyAgICAgICAgc2Nyb2xsT2Zmc2V0LndpZHRoICs9IHNjcm9sbERl
bHRhLndpZHRoKCk7CisgICAgICAgIHNjcm9sbE9mZnNldC5oZWlnaHQgKz0gc2Nyb2xsRGVsdGEu
aGVpZ2h0KCk7CisgICAgICAgIGZsb2F0IHNjYWxlRGVsdGEgPSBzY2FsZUZhY3RvciAvIG9sZFNj
YWxlOworICAgICAgICBXZWJQb2ludCBzY2FsZWRTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0Lndp
ZHRoICogc2NhbGVEZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj
cm9sbE9mZnNldC5oZWlnaHQgKiBzY2FsZURlbHRhKTsKKyAgICAgICAgc2V0UGFnZVNjYWxlRmFj
dG9yKHNjYWxlRmFjdG9yLCBzY2FsZWRTY3JvbGxPZmZzZXQpOworICAgIH0KIH0KIAogdm9pZCBX
ZWJWaWV3SW1wbDo6ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKGludCBmcmFtZU51bWJlcikKQEAgLTI3
NTMsOCArMjc4OCw5IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0
KCkKICAgICBJbnRSZWN0IHZpc2libGVSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRy
dWUgLyogaW5jbHVkZSBzY3JvbGxiYXJzICovKTsKICAgICBJbnRQb2ludCBzY3JvbGwodmlldy0+
c2Nyb2xsWCgpLCB2aWV3LT5zY3JvbGxZKCkpOwogCi0gICAgbV9ub25Db21wb3NpdGVkQ29udGVu
dEhvc3QtPnNldFZpZXdwb3J0KHZpc2libGVSZWN0LnNpemUoKSwgdmlldy0+Y29udGVudHNTaXpl
KCksIHNjcm9sbCk7CisgICAgbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QtPnNldFZpZXdwb3J0
KHZpc2libGVSZWN0LnNpemUoKSwgdmlldy0+Y29udGVudHNTaXplKCksIHNjcm9sbCwgcGFnZVNj
YWxlRmFjdG9yKCkpOwogICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnQodmlzaWJsZVJl
Y3Quc2l6ZSgpKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFBhZ2VTY2FsZShwYWdlU2NhbGVG
YWN0b3IoKSk7CiB9CiAKIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJWaWV3SW1wbDo6Z3JhcGhp
Y3NDb250ZXh0M0QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5k
ZXggNGQxMmIyOTQzM2IyNDE5ZmU2OWM1MjY4MzIwNDI0NmFlNjE1NzRkMS4uOGRhNjMyZDI1MjZj
OTc3MTdjZjI4MzE4Nzk0YzUzZWFhMjBlZDZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCkBAIC0xNjAsNiArMTYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
ZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNjYWxlUGFn
ZShmbG9hdCBzY2FsZUZhY3RvciwgY29uc3QgV2ViUG9pbnQmIG9yaWdpbik7CiAgICAgdmlydHVh
bCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvciwgY29uc3QgV2ViUG9p
bnQmIG9yaWdpbik7CisgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhm
bG9hdCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSk7CiAgICAgdmlydHVhbCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VT
Y2FsZUZhY3RvcihmbG9hdCk7CiAgICAgdmlydHVhbCBib29sIGlzRml4ZWRMYXlvdXRNb2RlRW5h
YmxlZCgpIGNvbnN0OwpAQCAtMjIxLDcgKzIyMiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENDTGF5
ZXJUcmVlSG9zdENsaWVudAogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJs
ZSBmcmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNj
YWxlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCk7CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXllclRyZWVIb3N0Q29udGV4
dDNEKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVO
dW1iZXIpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4dChib29s
IHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xh
eWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcAppbmRleCBmYTVjNzBjYmYxYjQzMzk4YTEwMjMxMjFl
MTc1YTUwMzI1YWM4YTM2Li40YzQzNDg3ZWQ1YmYwNzdmNjk1YmZmZDI3NTI2NmFiZTZjYWIzMjIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9z
dEltcGxUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJU
cmVlSG9zdEltcGxUZXN0LmNwcApAQCAtNTksMTQgKzU5LDE0IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUobGF5ZXItPmNoaWxkcmVuKClb
aV0uZ2V0KCkpOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIGV4cGVjdENvbnRhaW5zKGNvbnN0
IENDU2Nyb2xsVXBkYXRlU2V0JiBzY3JvbGxJbmZvLCBpbnQgaWQsIGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhKQorICAgIHN0YXRpYyB2b2lkIGV4cGVjdENvbnRhaW5zKGNvbnN0IENDU2Nyb2xs
QW5kU2NhbGVTZXQmIHNjcm9sbEluZm8sIGludCBpZCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCiAgICAgewogICAgICAgICBpbnQgdGltZXNFbmNvdW50ZXJlZCA9IDA7CiAKLSAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzY3JvbGxJbmZvLnNpemUoKTsgKytpKSB7Ci0gICAgICAg
ICAgICBpZiAoc2Nyb2xsSW5mb1tpXS5sYXllcklkICE9IGlkKQorICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNjcm9sbEluZm8uc2Nyb2xscy5zaXplKCk7ICsraSkgeworICAgICAgICAg
ICAgaWYgKHNjcm9sbEluZm8uc2Nyb2xsc1tpXS5sYXllcklkICE9IGlkKQogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgQVNTRVJUX0VRKHNjcm9sbEluZm9baV0uc2Nyb2xs
RGVsdGEsIHNjcm9sbERlbHRhKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLnNj
cm9sbHNbaV0uc2Nyb2xsRGVsdGEsIHNjcm9sbERlbHRhKTsKICAgICAgICAgICAgIHRpbWVzRW5j
b3VudGVyZWQrKzsKICAgICAgICAgfQogCkBAIC04NCw4ICs4NCw4IEBAIFRFU1RfRihDQ0xheWVy
VHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFOb0xheWVycykKIHsKICAgICBBU1NFUlRfRkFM
U0UobV9ob3N0SW1wbC0+cm9vdExheWVyKCkpOwogCi0gICAgT3duUHRyPENDU2Nyb2xsVXBkYXRl
U2V0PiBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwotICAg
IEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsKKyAgICBPd25QdHI8Q0NTY3JvbGxB
bmRTY2FsZVNldD4gc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMo
KTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDB1KTsKIH0KIAog
VEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVRyZWVCdXROb0NoYW5n
ZXMpCkBAIC0xMDAsMTQgKzEwMCwxNCBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3Qs
IHNjcm9sbERlbHRhVHJlZUJ1dE5vQ2hhbmdlcykKIAogICAgIGV4cGVjdENsZWFyZWRTY3JvbGxE
ZWx0YXNSZWN1cnNpdmUocm9vdC5nZXQoKSk7CiAKLSAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVT
ZXQ+IHNjcm9sbEluZm87CisgICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbElu
Zm87CiAKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygp
OwotICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsKKyAgICBBU1NFUlRfRVEo
c2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDB1KTsKICAgICBleHBlY3RDbGVhcmVkU2Nyb2xs
RGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdElt
cGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6
ZSgpLCAwdSk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAwdSk7
CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIH0K
IApAQCAtMTE3LDE1ICsxMTcsMTYgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBz
Y3JvbGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICBJbnRTaXplIHNjcm9sbERlbHRhKDExLCAt
MTUpOwogICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gcm9vdCA9IENDTGF5ZXJJbXBsOjpjcmVhdGUo
MTApOwogICAgIHJvb3QtPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICBy
b290LT5zZXRTY3JvbGxhYmxlKHRydWUpOwogICAgIHJvb3QtPnNldE1heFNjcm9sbFBvc2l0aW9u
KEludFNpemUoMTAwLCAxMDApKTsKICAgICByb290LT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7CiAg
ICAgbV9ob3N0SW1wbC0+c2V0Um9vdExheWVyKHJvb3QpOwogCi0gICAgT3duUHRyPENDU2Nyb2xs
VXBkYXRlU2V0PiBzY3JvbGxJbmZvOworICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBz
Y3JvbGxJbmZvOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxE
ZWx0YXMoKTsKICAgICBBU1NFUlRfRVEocm9vdC0+c2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsUG9z
aXRpb24gKyBzY3JvbGxEZWx0YSk7Ci0gICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNpemUoKSwg
MXUpOworICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMXUpOwogICAg
IGV4cGVjdENvbnRhaW5zKCpzY3JvbGxJbmZvLmdldCgpLCByb290LT5pZCgpLCBzY3JvbGxEZWx0
YSk7CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsK
IApAQCAtMTMzLDE0ICsxMzQsMTQgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBz
Y3JvbGxEZWx0YVJlcGVhdGVkU2Nyb2xscykKICAgICByb290LT5zY3JvbGxCeShzY3JvbGxEZWx0
YTIpOwogICAgIHNjcm9sbEluZm8gPSBtX2hvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7
CiAgICAgQVNTRVJUX0VRKHJvb3QtPnNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbFBvc2l0aW9uICsg
c2Nyb2xsRGVsdGEgKyBzY3JvbGxEZWx0YTIpOwotICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5z
aXplKCksIDF1KTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDF1
KTsKICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgcm9vdC0+aWQoKSwgc2Ny
b2xsRGVsdGEyKTsKICAgICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKHJvb3Qu
Z2V0KCkpOwogCiAgICAgcm9vdC0+c2Nyb2xsQnkoSW50U2l6ZSgpKTsKICAgICBzY3JvbGxJbmZv
ID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShyb290
LT5zY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxQb3NpdGlvbiArIHNjcm9sbERlbHRhICsgc2Nyb2xs
RGVsdGEyKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAwdSk7CisgICAgQVNT
RVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAwdSk7CiAgICAgZXhwZWN0Q2xlYXJl
ZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKaW5kZXggNTlj
YmFiMTEwYjZkM2RmZjY0OTlmMzQyMzVhN2VhMTI2OTdjZGUwYS4uOWQ5MWJjZDBlMDU1OTJhMWYw
YTc2MGZkODJhODI2YmRiNzIwY2IzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5Db21taXRPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9z
dEltcGwqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q29tcGxldGVPbkNDVGhyZWFkKEND
TGF5ZXJUcmVlSG9zdEltcGwqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVyc09uQ0NU
aHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNj
cm9sbERlbHRhKGNvbnN0IEludFNpemUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3Jv
bGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiwgZmxvYXQpIHsgfQogfTsKIAogLy8gQWRhcHRzIEND
TGF5ZXJUcmVlSG9zdEltcGwgZm9yIHRlc3QuIFJ1bnMgcmVhbCBjb2RlLCB0aGVuIGludm9rZXMg
dGVzdCBob29rcy4KQEAgLTE1Myw5ICsxNTMsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAot
ICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmIHNjcm9sbERl
bHRhKQorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUm
IHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZSkKICAgICB7Ci0gICAgICAgIG1fdGVzdEhvb2tzLT5h
cHBseVNjcm9sbERlbHRhKHNjcm9sbERlbHRhKTsKKyAgICAgICAgbV90ZXN0SG9va3MtPmFwcGx5
U2Nyb2xsQW5kU2NhbGUoc2Nyb2xsRGVsdGEsIHNjYWxlKTsKICAgICB9CiAKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0
M0QoKQpAQCAtNjI0LDcgKzYyNCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBiZWdp
blRlc3QoKQogICAgIHsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0
TWF4U2Nyb2xsUG9zaXRpb24oSW50U2l6ZSgxMDAsIDEwMCkpOworICAgICAgICBtX2xheWVyVHJl
ZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxhYmxlKHRydWUpOwogICAgICAgICBtX2xheWVy
VHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihtX2luaXRpYWxTY3JvbGwp
OwogICAgICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQoKTsKICAgICB9CkBAIC02
NDcsNiArNjQ3LDggQEAgcHVibGljOgogICAgICAgICBDQ0xheWVySW1wbCogcm9vdCA9IGltcGwt
PnJvb3RMYXllcigpOwogICAgICAgICBFWFBFQ1RfRVEocm9vdC0+c2Nyb2xsRGVsdGEoKSwgSW50
U2l6ZSgpKTsKIAorICAgICAgICByb290LT5zZXRTY3JvbGxhYmxlKHRydWUpOworICAgICAgICBy
b290LT5zZXRNYXhTY3JvbGxQb3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CiAgICAgICAgIHJv
b3QtPnNjcm9sbEJ5KG1fc2Nyb2xsQW1vdW50KTsKIAogICAgICAgICBpZiAoaW1wbC0+ZnJhbWVO
dW1iZXIoKSA9PSAxKSB7CkBAIC02NjAsNyArNjYyLDcgQEAgcHVibGljOgogICAgICAgICB9CiAg
ICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYg
c2Nyb2xsRGVsdGEpCisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3Qg
SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlKQogICAgIHsKICAgICAgICAgSW50UG9p
bnQgcG9zaXRpb24gPSBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zY3JvbGxQb3NpdGlv
bigpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxQb3Np
dGlvbihwb3NpdGlvbiArIHNjcm9sbERlbHRhKTsKQEAgLTY5NCw3ICs2OTYsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5UZXN0KCkKICAgICB7Ci0gICAgICAgIG1fbGF5ZXJU
cmVlSG9zdC0+cm9vdExheWVyKCktPnNldE1heFNjcm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAx
MDApKTsKKyAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsYWJs
ZSh0cnVlKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xs
UG9zaXRpb24obV9pbml0aWFsU2Nyb2xsKTsKICAgICAgICAgcG9zdFNldE5lZWRzQ29tbWl0VG9N
YWluVGhyZWFkKCk7CiAgICAgfQpAQCAtNzEzLDYgKzcxNSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZHJhd0xheWVyc09uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaW1wbCkK
ICAgICB7CiAgICAgICAgIENDTGF5ZXJJbXBsKiByb290ID0gaW1wbC0+cm9vdExheWVyKCk7Cisg
ICAgICAgIHJvb3QtPnNldFNjcm9sbGFibGUodHJ1ZSk7CisgICAgICAgIHJvb3QtPnNldE1heFNj
cm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDApKTsKIAogICAgICAgICBpZiAoaW1wbC0+ZnJh
bWVOdW1iZXIoKSA9PSAxKSB7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocm9vdC0+c2Nyb2xsRGVs
dGEoKSwgSW50U2l6ZSgpKTsKQEAgLTczNSw3ICs3MzksNyBAQCBwdWJsaWM6CiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSkKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25z
dCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgc2NhbGUpCiAgICAgewogICAgICAgICBJbnRQ
b2ludCBwb3NpdGlvbiA9IG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNjcm9sbFBvc2l0
aW9uKCk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldFNjcm9sbFBv
c2l0aW9uKHBvc2l0aW9uICsgc2Nyb2xsRGVsdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCBjNDM3ZjhhY2UwYTAxNGIx
MDVlMzdmZGU3MDE1MGYwZDY4Y2Y5NDYzLi5lZDljZWNiOTYzNjYxOWFjZDI1ZTQwMjA1OTFhZGE2
ZDM2M2E5MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVy
Q2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVy
Q2hyb21pdW1UZXN0LmNwcApAQCAtNjQ2LDYgKzY0Niw3IEBAIFRFU1RfRihMYXllckNocm9taXVt
VGVzdCwgY2hlY2tQcm9wZXJ0eUNoYW5nZUNhdXNlc0NvcnJlY3RCZWhhdmlvcikKICAgICBFWEVD
VVRFX0FORF9WRVJJRllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAxLCB0ZXN0
TGF5ZXItPnNldE9wYXF1ZShmYWxzZSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllf
U1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0UG9zaXRpb24oRmxv
YXRQb2ludCg0LjBmLCA5LjBmKSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllfU1lO
Q19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0U3VibGF5ZXJUcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgoKSkpOworICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJ
RllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0U2Nyb2xsYWJs
ZSh0cnVlKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1v
Y2tEZWxlZ2F0ZSwgMSwgdGVzdExheWVyLT5zZXRUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRy
aXgoKSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2Nr
RGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0RG91YmxlU2lkZWQoZmFsc2UpKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>114187</attachid>
            <date>2011-11-08 18:07:58 -0800</date>
            <delta_ts>2011-11-08 18:07:58 -0800</delta_ts>
            <desc>Archive of layout-test-results from ec2-cr-linux-01</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>43300</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAG8PaT8AAAAAAAAAAAAAAAAYABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvVVQJ
AAOB3rlOhN65TnV4CwABBOgDAAAE6AMAAFBLAwQKAAAAAABtD2k/AAAAAAAAAAAAAAAAIwAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvVVQJAAN93rlOhN65TnV4CwABBOgDAAAE
6AMAAFBLAwQUAAIACABtD2k/zOdMa/UAAAB4AQAARgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNzcy1ydWxlLXR5cGVzLXN0ZGVyci50eHRVVAkAA33euU59
3rlOdXgLAAEE6AMAAAToAwAAVY8/T8MwEMXn9lN0bDeTuHXsNQxFIJZEMCCGi30tEfEf2Y5ovz1n
NUJl8t3z+727Ww2QUCmDw3xWqsugv/sIGu/r7W7zwS57kI3Ez/XqRmzBeXe1fk4bBxZTIONuoR5n
G7rx7GA6gjMTxiVBVo2UlMAu4iQMq2oOumKlBy6gVO84tD5S/Kt3rbfBpzGjab3L6PLRp6xUwvw2
4k/wMd9iidVViSX4eSQHvcXxZMOk1BwMZHyBK8Y+Iv5H+UEfkBPaY8rdF04ERKQJpS9To5/+1uec
gTZkjrMr/4ta1Uw3pFoY3SIIUd9fWe9Ng6XnD8Kc5Jpuw19QSwMEFAACAAgAbA9pPwjt/gf1AAAA
eAEAAFAAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hZGQt
ZXZlbnRzLWluLWhhbmRsZXItY3Jhc2gtbG9nLnR4dFVUCQADfN65TnzeuU51eAsAAQToAwAABOgD
AABVjz9PwzAQxef2U3RsN5OYOPYahiIQSyoYEMPFvrYR8R/Zjmi/PWc1QmXy3fP7vbtbDZBQKYPD
fFKqz6C/DxE03tfb3eaTXR5BthK/1qsbsQXn3dX6OW0cWEyBjLuFeppt6MeTg2kPzkwYlwRZtVJS
AruIIzAhJR90xUoPXECpPnDofKT4N+86b4NPY0bTeZfR5b1PWamE+X3En+BjvsUSq6sSS/DLSA56
i+PZhkmpORjI+ApXjIeI+B/ljW6QE3rAlPszTgREpAmlL1Ojn/7W55yBNmSOsyv/i1rVTLekWhjd
IghR319ZN6bF0vMHYY5yTbfhL1BLAwQUAAIACABtD2k/fnZbP/UAAAB4AQAASwAcAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1ub3JtYWwtY3Jh
c2gtbG9nLnR4dFVUCQADfd65Tn3euU51eAsAAQToAwAABOgDAABVjz9PwzAQxef2U3Rst9Q1Tew1
DEUglkQwIIaLfSkW8R/Zjmi/PWc1QmXy3fP7vbtbDZBQSo3DfJayy6C++wgK7+vtbvNRXR5ANAI/
16sbsQXn3dX6OW0cWEyBjLuFepxt6MzZwXQCpyeMS4JgjRCUUF3qUY3AORsVq0oPvIZSvePQ+kjx
r9613gafTEbdepfR5ZNPWcqE+c3gT/Ax32KJVazEEvxsyEFvcTzZMEk5Bw0ZX+CKsY+I/1F+VEfk
hPaYcveFEwERaULpy9Top7/1Oa9AaTLH2ZX/RWWHSjWkWjBuEer6cH/lHnSDpef7Wo9iTbfhL1BL
AwQUAAIACABsD2k/7zR1OPUAAAB4AQAASgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1h
dGlvbnMvYW5pbWF0aW9uLWNvbnRyb2xsZXItZHJ0LWFwaS1zdGRlcnIudHh0VVQJAAN83rlOfN65
TnV4CwABBOgDAAAE6AMAAFWPvW7DMAyE5+QpMiabY8uxpdUdUrToYqMdig60xCRG9QdJRpO3L4UY
RTqJPN13JFcjRBRC4TifhegTyO8hgMTHervbfBbXGnjL8Wu9uhNbsM7ejJvjxoLB6Mm4W6in2fh+
OlvQR7BKY1gSeNlyTgnFtTnBHqqagSyL3ANrIFcfOHYuUPybs50z3sUpoeqcTWjT0cUkRMT0PuGP
dyHdY4mVZY4l+GUiB73Z8Wy8FmL2ChK+wg3DEBD/o+wgD8gIHTCm/oKagIA0Ifd5anD6b33GCpCK
zGG2+X9Ry6qQLakGJrsITVM9XlnVqsXcs32jTnxNt+EvUEsDBBQAAgAIAG0PaT/M50xr9QAAAHgB
AABJABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY3NzLXJ1
bGUtdHlwZXMtY3Jhc2gtbG9nLnR4dFVUCQADfd65Tn3euU51eAsAAQToAwAABOgDAABVjz9PwzAQ
xef2U3RsN5O4dew1DEUglkQwIIaLfS0R8R/Zjmi/PWc1QmXy3fP7vbtbDZBQKYPDfFaqy6C/+wga
7+vtbvPBLnuQjcTP9epGbMF5d7V+ThsHFlMg426hHmcbuvHsYDqCMxPGJUFWjZSUwC7iJAyrag66
YqUHLqBU7zi0PlL8q3ett8GnMaNpvcvo8tGnrFTC/DbiT/Ax32KJ1VWJJfh5JAe9xfFkw6TUHAxk
fIErxj4i/kf5QR+QE9pjyt0XTgREpAmlL1Ojn/7W55yBNmSOsyv/i1rVTDekWhjdIghR319Z702D
pecPwpzkmm7DX1BLAwQUAAIACABtD2k/U7nDfvUAAAB4AQAARAAcAHRtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1jcmFzaC1sb2cudHh0VVQJAAN9
3rlOfd65TnV4CwABBOgDAAAE6AMAAFWPMU/DMBCF5/ZXdGy3kIQ68RqGIhBLIhgQw8V+bSMS27Id
0f57zmqEyuS75/e9u1v1FCClRj+fpGwjqe/Ok8J9vd1tPrPLI9VVja/16kZsyVhznewcNoYmBMfG
3UI9zZNrh5Oh8UBGj/BLQp1Xdc0J2UUcC4iqQKHyLPVUCkrVB/rGeo5/s6axk7NhiNCNNREmHmyI
UgbE9wE/zvp4i2VW5SmW4ZeBHfwmx/PkRilnpynila7wnQf+o+Ve7VEy2iHE9oyRAQ+ekPo01dvx
b/2yzEhpNvvZpP9FzYtMVaxONJhFEKK4v1JBV0h9+SD0sV7zbfgFUEsDBBQAAgAIAGwPaT/vNHU4
9QAAAHgBAABNABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
Y29udHJvbGxlci1kcnQtYXBpLWNyYXNoLWxvZy50eHRVVAkAA3zeuU583rlOdXgLAAEE6AMAAATo
AwAAVY+9bsMwDITn5CkyJptjy7Gl1R1StOhiox2KDrTEJEb1B0lGk7cvhRhFOok83XckVyNEFELh
OJ+F6BPI7yGAxMd6u9t8FtcaeMvxa726E1uwzt6Mm+PGgsHoybhbqKfZ+H46W9BHsEpjWBJ42XJO
CcW1OcEeqpqBLIvcA2sgVx84di5Q/JuznTPexSmh6pxNaNPRxSRExPQ+4Y93Id1jiZVljiX4ZSIH
vdnxbLwWYvYKEr7CDcMQEP+j7CAPyAgdMKb+gpqAgDQh93lqcPpvfcYKkIrMYbb5f1HLqpAtqQYm
uwhNUz1eWdWqxdyzfaNOfE234S9QSwMEFAACAAgAbQ9pP1O5w371AAAAeAEAAEEAHAB0bXAvbGF5
b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tc3RkZXJyLnR4
dFVUCQADfd65Tn3euU51eAsAAQToAwAABOgDAABVjzFPwzAQhef2V3Rst5CEOvEahiIQSyIYEMPF
fm0jEtuyHdH+e85qhMrku+f3vbtb9RQgpUY/n6RsI6nvzpPCfb3dbT6zyyPVVY2v9epGbMlYc53s
HDaGJgTHxt1CPc2Ta4eTofFARo/wS0KdV3XNCdlFHAuIqkCh8iz1VApK1Qf6xnqOf7OmsZOzYYjQ
jTURJh5siFIGxPcBP876eItlVuUpluGXgR38Jsfz5EYpZ6cp4pWu8J0H/qPlXu1RMtohxPaMkQEP
npD6NNXb8W/9ssxIaTb72aT/Rc2LTFWsTjSYRRCiuL9SQVdIffkg9LFe8234BVBLAwQUAAIACABt
D2k/fnZbP/UAAAB4AQAASAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvYW5p
bWF0aW9uLWRpcmVjdGlvbi1ub3JtYWwtc3RkZXJyLnR4dFVUCQADfd65Tn3euU51eAsAAQToAwAA
BOgDAABVjz9PwzAQxef2U3Rst9Q1Tew1DEUglkQwIIaLfSkW8R/Zjmi/PWc1QmXy3fP7vbtbDZBQ
So3DfJayy6C++wgK7+vtbvNRXR5ANAI/16sbsQXn3dX6OW0cWEyBjLuFepxt6MzZwXQCpyeMS4Jg
jRCUUF3qUY3AORsVq0oPvIZSvePQ+kjxr9613gafTEbdepfR5ZNPWcqE+c3gT/Ax32KJVazEEvxs
yEFvcTzZMEk5Bw0ZX+CKsY+I/1F+VEfkhPaYcveFEwERaULpy9Top7/1Oa9AaTLH2ZX/RWWHSjWk
WjBuEer6cH/lHnSDpef7Wo9iTbfhL1BLAwQUAAIACABsD2k/CO3+B/UAAAB4AQAATQAcAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWFkZC1ldmVudHMtaW4taGFu
ZGxlci1zdGRlcnIudHh0VVQJAAN83rlOfN65TnV4CwABBOgDAAAE6AMAAFWPP0/DMBDF5/ZTdGw3
k5g49hqGIhBLKhgQw8W+thHxH9mOaL89ZzVCZfLd8/u9u1sNkFApg8N8UqrPoL8PETTe19vd5pNd
HkG2Er/WqxuxBefd1fo5bRxYTIGMu4V6mm3ox5ODaQ/OTBiXBFm1UlICu4gjMCElH3TFSg9cQKk+
cOh8pPg37zpvg09jRtN5l9HlvU9ZqYT5fcSf4GO+xRKrqxJL8MtIDnqL49mGSak5GMj4CleMh4j4
H+WNbpATesCU+zNOBESkCaUvU6Of/tbnnIE2ZI6zK/+LWtVMt6RaGN0iCFHfX1k3psXS8wdhjnJN
t+EvUEsDBBQAAgAIAG0PaT9c3VhYZAAAANYAAAAmABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
dGVzdHNfcnVuMC50eHRVVAkAA33euU573rlOdXgLAAEE6AMAAAToAwAAfctRDoNACITh994F90wj
EiHdbgigxtu3ja/G1/m/0SpvJVnZ4M5glQZmyaTdQCGLhXBNrv7SO7uVTlqffls5kEqHyqCB3VaU
jZVw4KT6jzP4/fSWRUYZOm3RH9wZ1rvxT9mlvlBLAwQUAAIACABtD2k/2KNiY3kAAAD1AAAAJgAc
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjEudHh0VVQJAAN93rlOe965TnV4CwAB
BOgDAAAE6AMAAIWOQQpCMQxE994leqY0jTS2P5Ekhd/bq+hG8ONuGN4bBok4QooMyXXBekNiTSDT
FJ2YYhpAOIMBI9hfBVxRxnQ+t9zGCb8XlJo5DNHOFVBN12YzoAyjDuQY7afmgkCNqRfb34HrfzB5
z0OqcpBL4VoWPE+L3ucHfgBQSwMEFAACAAgAbQ9pPzuLAxRYAAAA/AAAACYAHAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4zLnR4dFVUCQADfd65TnveuU51eAsAAQToAwAABOgDAACd
y0EKgDAMRNG9VxFSEbyIN4hppIFYSxMEby/qXtHdMPxHmDe0UJKolOBsbqGPQNcNlTGuWXdIvmhD
L+3MlTPxc6yMdWTydhbVcwBqSdjB8NN9VBOa0I0OUEsDBAoAAAAAAGsPaT8AAAAAAAAAAAAAAABD
ABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcHl3ZWJzb2NrZXQud3MubG9nLTA5Tm92MjAxMS0w
MTU5MjItb3V0LnR4dFVUCQADet65TnreuU51eAsAAQToAwAABOgDAABQSwMECgAAAAAAbA9pPwAA
AAAAAAAAAAAAAB8AHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvVVQJAAN83rlOhN65
TnV4CwABBOgDAAAE6AMAAFBLAwQKAAAAAABsD2k/AAAAAAAAAAAAAAAAJgAcAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvVVQJAAN83rlOhN65TnV4CwABBOgDAAAE6AMAAFBL
AwQKAAAAAABtD2k/AAAAAAAAAAAAAAAALAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZh
cy9waGlsaXAvdGVzdHMvVVQJAAN93rlOhN65TnV4CwABBOgDAAAE6AMAAFBLAwQUAAIACABtD2k/
DNxcGPYAAAB4AQAAVgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVz
dHMvMmQuY2xlYXJSZWN0K2ZpbGxSZWN0LmFscGhhMC1jcmFzaC1sb2cudHh0VVQJAAN93rlOfd65
TnV4CwABBOgDAAAE6AMAAFWPP2/CMBDFZ/gUjLCFxCSx13QAUXVJ1A5Vh4t9gajxH9mOCt++ZxFV
dPLd8/u9u1v1EFAIhf18EaKNIL87DxKf6+1u85ndDsBrjl/r1YPYgrHmru0cNgY0BkfG3UK9zNq1
48XAdASjJvRLAs9rzikhu1UDlP2+PDCZZ6kHVkGqPrBvrKf4N2saq50NY0TVWBPRxKMNUYiA8X3E
H2d9fMQSK/MUS/B5JAe9yXHSbhJidgoivsIdfecR/6OslCUyQjsMsb3iRIBHmpD6NNXb6W99xjKQ
isx+Nul/UfMikzWpGkazCFVVPF9ZDKrG1LN9pQa+ptvwF1BLAwQUAAIACABsD2k/8ISClfUAAAB4
AQAATAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2Fu
dmFzLnJlYWRvbmx5LWNyYXNoLWxvZy50eHRVVAkAA3zeuU583rlOdXgLAAEE6AMAAAToAwAAVY8/
T8MwEMXn9lN0bDeTmjj2GoYiEEsiGBDD1b60EfEf2Y5ovz1nNUJl8t3z+727Wx0hoVIGj/NJqS6D
/u4jaLyvt7vNJ7s8gmwkfq1XN2ILzrur9XPaOLCYAhl3C/U029CNJwfTAZyZMC4JsmqkpAR2EQMf
RM2k0BUrPXABpfrAY+sjxb9513obfBozmta7jC4ffMpKJczvI/4EH/MtllhdlViCX0Zy0FsczzZM
Ss3BQMZXuGLsI+J/lNe6Rk5ojyl3Z5wIiEgTSl+mRj/9rc85A23IHGdX/he12jPdkGphdIsgxP7+
yqYyDZaePwgzyDXdhr9QSwMEFAACAAgAbA9pP0TkJmb2AAAAeAEAAE0AHAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNhbnZhcy5yZWZlcmVuY2UtY3Jhc2gt
bG9nLnR4dFVUCQADfN65TnzeuU51eAsAAQToAwAABOgDAABVjz9PwzAQxef2U3RsN5O4Sew1DEUg
lkQwIIaLfSkR8R/Zjmi/PWc1QmXy3fP7vbvbDBBRSo3DcpayS6C++wAK7+v9YffBLkcQjcDP7eZG
7ME6ezVuiTsLBqMn42GlHhfju+lsYT6B1TOGNUEUjRCUwC71qMcjq6pSFSz3wGvI1TsOrQsU/+ps
64x3cUqoW2cT2nRyMUkZMb1N+ONdSLdYYlWRYwl+nshBb3Y8GT9LuXgNCV/giqEPiP9RXqkKOaE9
xtR94UxAQJqQ+zw1uPlvfc4ZKE3msNj8v6pFyVRDqoHJrkJdl/dXctQN5p4/1HoUW7oNfwFQSwME
FAACAAgAbQ9pP3GblGf1AAAAeAEAAFIAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLmNsZWFyUmVjdCtmaWxsUmVjdC5iYXNpYy1zdGRlcnIudHh0VVQJAAN9
3rlOfd65TnV4CwABBOgDAAAE6AMAAFWPP28CMQzFZ/gUjLClIZBL1utA1arLndqh6mASQ0+9/FGS
U+Hb1xGnik6xX97v2V4cIaPWFo/TWeuugPnuExi8r9eb1Qe77EA1Cj+XixuxBh/81YUprzw4zJGM
m5l6nFzshrOH8QDejpjmBMUbpSiBXeRJMOBsJw1ntQchoVbveGxDovjX4NvgYshDQdsGX9CXQ8hF
64zlbcCfGFK5xRJreI0l+HkgB73V8eTiqPUULRR8gSumPiH+R8Xe7FEQ2mMu3ReOBCSkCbWvU1MY
/9YXtLKxZE6Tr/+zyrfMNKQ6GPwsSLm9v1Jw22DtxYO0J7Wk2/AXUEsDBBQAAgAIAGwPaT9E5CZm
9gAAAHgBAABKABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5jYW52YXMucmVmZXJlbmNlLXN0ZGVyci50eHRVVAkAA3zeuU583rlOdXgLAAEE6AMAAAToAwAA
VY8/T8MwEMXn9lN0bDeTuEnsNQxFIJZEMCCGi30pEfEf2Y5ovz1nNUJl8t3z+7272wwQUUqNw3KW
skugvvsACu/r/WH3wS5HEI3Az+3mRuzBOns1bok7CwajJ+NhpR4X47vpbGE+gdUzhjVBFI0QlMAu
9ajHI6uqUhUs98BryNU7Dq0LFP/qbOuMd3FKqFtnE9p0cjFJGTG9TfjjXUi3WGJVkWMJfp7IQW92
PBk/S7l4DQlf4IqhD4j/UV6pCjmhPcbUfeFMQECakPs8Nbj5b33OGShN5rDY/L+qRclUQ6qBya5C
XZf3V3LUDeaeP9R6FFu6DX8BUEsDBBQAAgAIAG0PaT9xm5Rn9QAAAHgBAABVABwAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmlsbFJlY3Qu
YmFzaWMtY3Jhc2gtbG9nLnR4dFVUCQADfd65Tn3euU51eAsAAQToAwAABOgDAABVjz9vAjEMxWf4
FIywpSGQS9brQNWqy53aoepgEkNPvfxRklPh29cRp4pOsV/e79leHCGj1haP01nrroD57hMYvK/X
m9UHu+xANQo/l4sbsQYf/NWFKa88OMyRjJuZepxc7Iazh/EA3o6Y5gTFG6UogV3kSTDgbCcNZ7UH
IaFW73hsQ6L41+Db4GLIQ0HbBl/Ql0PIReuM5W3AnxhSucUSa3iNJfh5IAe91fHk4qj1FC0UfIEr
pj4h/kfF3uxRENpjLt0XjgQkpAm1r1NTGP/WF7SysWROk6//s8q3zDSkOhj8LEi5vb9ScNtg7cWD
tCe1pNvwF1BLAwQUAAIACABtD2k/DNxcGPYAAAB4AQAAUwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0K2ZpbGxSZWN0LmFscGhhMC1zdGRl
cnIudHh0VVQJAAN93rlOfd65TnV4CwABBOgDAAAE6AMAAFWPP2/CMBDFZ/gUjLCFxCSx13QAUXVJ
1A5Vh4t9gajxH9mOCt++ZxFVdPLd8/u9u1v1EFAIhf18EaKNIL87DxKf6+1u85ndDsBrjl/r1YPY
grHmru0cNgY0BkfG3UK9zNq148XAdASjJvRLAs9rzikhu1UDlP2+PDCZZ6kHVkGqPrBvrKf4N2sa
q50NY0TVWBPRxKMNUYiA8X3EH2d9fMQSK/MUS/B5JAe9yXHSbhJidgoivsIdfecR/6OslCUyQjsM
sb3iRIBHmpD6NNXb6W99xjKQisx+Nul/UfMikzWpGkazCFVVPF9ZDKrG1LN9pQa+ptvwF1BLAwQU
AAIACABtD2k/JgUwxvUAAAB4AQAAVQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9w
aGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0K2ZpbGxSZWN0LmFscGhhMC41LXN0ZGVyci50eHRVVAkA
A33euU593rlOdXgLAAEE6AMAAAToAwAAVY+9bsMwDITn5CkyJpvtKLGl1R1StOhiox2KDrREJ0b1
B0lGk7cvhRhFOok83XckVwNEFELhMJ+F6BLI7z6AxMd6u9t8FtcD8Ibj13p1J7Zgnb0ZN8eNBYPR
k3G3UE+z8d10tqBPYJXGsCTwquGcEoprPR7KclTDKKsi98BqyNUHDq0LFP/mbOuMd3FKqFpnE9p0
cjEJETG9T/jjXUj3WGJllWMJfpnIQW92PBuvhZi9goSvcMPQB8T/KDvKIzJCe4ypu6AmICBNyH2e
Gpz+W5+xAqQic5ht/l/Ual/IhlQDk12Eut4/XgmgGsw9K2s18jXdhr9QSwMEFAACAAgAbA9pP/CE
gpX1AAAAeAEAAEkAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLmNhbnZhcy5yZWFkb25seS1zdGRlcnIudHh0VVQJAAN83rlOfN65TnV4CwABBOgDAAAE6AMA
AFWPP0/DMBDF5/ZTdGw3k5o49hqGIhBLIhgQw9W+tBHxH9mOaL89ZzVCZfLd8/u9u1sdIaFSBo/z
Sakug/7uI2i8r7e7zSe7PIJsJH6tVzdiC867q/Vz2jiwmAIZdwv1NNvQjScH0wGcmTAuCbJqpKQE
dhEDH0TNpNAVKz1wAaX6wGPrI8W/edd6G3waM5rWu4wuH3zKSiXM7yP+BB/zLZZYXZVYgl9GctBb
HM82TErNwUDGV7hi7CPif5TXukZOaI8pd2ecCIhIE0pfpkY//a3POQNtyBxnV/4Xtdoz3ZBqYXSL
IMT+/sqmMg2Wnj8IM8g13Ya/UEsDBBQAAgAIAG0PaT8mBTDG9QAAAHgBAABYABwAdG1wL2xheW91
dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmlsbFJlY3Qu
YWxwaGEwLjUtY3Jhc2gtbG9nLnR4dFVUCQADfd65Tn3euU51eAsAAQToAwAABOgDAABVj71uwzAM
hOfkKTImm+0osaXVHVK06GKjHYoOtEQnRvUHSUaTty+FGEU6iTzddyRXA0QUQuEwn4XoEsjvPoDE
x3q723wW1wPwhuPXenUntmCdvRk3x40Fg9GTcbdQT7Px3XS2oE9glcawJPCq4ZwSims9HspyVMMo
qyL3wGrI1QcOrQsU/+Zs64x3cUqoWmcT2nRyMQkRMb1P+ONdSPdYYmWVYwl+mchBb3Y8G6+FmL2C
hK9ww9AHxP8oO8ojMkJ7jKm7oCYgIE3IfZ4anP5bn7ECpCJzmG3+X9RqX8iGVAOTXYS63j9eCaAa
zD0razXyNd2Gv1BLAwQKAAAAAABtD2k/AAAAAAAAAAAAAAAAJgAcAHRtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2FjY2Vzc2liaWxpdHkvVVQJAAN93rlOhN65TnV4CwABBOgDAAAE6AMAAFBLAwQUAAIA
CABsD2k/1fqH//UAAAB4AQAASQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxp
dHkvYXJpYS1jaGVja2JveC1jaGVja2VkLWNyYXNoLWxvZy50eHRVVAkAA3zeuU583rlOdXgLAAEE
6AMAAAToAwAAVY8/b8IwEMVn+BSMsKXBxbHXdABRdUnUDlWHi32A1fiPbEeFb9+ziCo6+e75/d7d
LQZIKKXGYTpL2WVQ330EhY/1erP6rK7PIBqBX8vFnViD8+5m/ZRWDiymQMbNTL1MNnTm7GDcg9Mj
xjlB1I0QlFBd+UmoHYpGqboqPTAOpfrAofWR4t+8a70NPpmMuvUuo8t7n7KUCfO7wZ/gY77HEqvq
Ekvw0ZCD3uI42DBKOQUNGV/hhrGPiP9RtqMtGKE9ptxdcCQgIk0ofZka/fi3PmMVKE3mOLnyP6v1
tlINqRaMmwXOt49Xcq4bLD174voklnQb/gJQSwMEFAACAAgAbA9pP55UGiH1AAAAeAEAAF8AHAB0
bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FkamFjZW50LWNvbnRpbnVhdGlv
bnMtY2F1c2UtYXNzZXJ0aW9uLWZhaWx1cmUtc3RkZXJyLnR4dFVUCQADfN65TnzeuU51eAsAAQTo
AwAABOgDAABVjz9vwjAQxWf4FIywOcHg2Gs6ULXqkqgdqg6HfUDU+I9sR4Vv37OIKjr57vn93t0t
jpBQKYPH6axUl0F/9xE0PtbrzeqTXXcgG4lfy8WdWIPz7mb9lFYOLKZAxs1MPU02dMPZwXgAZ0aM
c4KsGykpgV3FCStT7Sqta1Z64AJK9YHH1keKf/Ou9Tb4NGQ0rXcZXT74lJVKmN8H/Ak+5nsssbou
sQS/DOSgtziebRiVmoKBjK9ww9hHxP8o3+s9ckJ7TLm74EhARJpQ+jI1+vFvfc4ZaEPmOLnyP6v1
lumGVAuDmwUhto9XMmEaLD2vhDnJJd2Gv1BLAwQUAAIACABtD2k/xw+ol/UAAAB4AQAASgAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmliZWRieS1vbi1p
bnB1dC1zdGRlcnIudHh0VVQJAAN93rlOfd65TnV4CwABBOgDAAAE6AMAAFWPP0/DMBDF5/ZTdGw3
k5gm9hqGIhBLIhgQw8W+thbxH9mOaL89ZzVCZfLd8/u9u1uNkFBKjeN8krLPoL6HCArv6+1u88ku
jyBagV/r1Y3YgvPuav2cNg4spkDG3UI9zTb05uRgOoDTE8YlQVStEJTALs0RBTDGtapY6YE3UKoP
HDsfKf7Nu87b4JPJqDvvMrp88ClLmTC/G/wJPuZbLLGqKrEEvxhy0FsczzZMUs5BQ8ZXuGIcIuJ/
lO/VHjmhA6bcn3EiICJNKH2ZGv30tz7nDJQmc5xd+V/UqmaqJdWCcYvQNPX9lXWrWyw9f2j0Uazp
NvwFUEsDBBQAAgAIAG0PaT8WJ4Er9gAAAHgBAABGABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LXRleHQtY3Jhc2gtbG9nLnR4dFVUCQADfd65Tn3e
uU51eAsAAQToAwAABOgDAABVj71uwzAMhOfkKTImm+solqXVHVIk6GKjHYoOtESnRq0fSDKavH0p
xCjSSeTpviO56iGilBr7+SJlm0B9dwEUPtbb3eajuB5A1AI/16s7sQXr7M24OW4sGIyejLuFep6N
b8eLhekIVk8YlgRR1kJQQnHlQ8+HA3ClyiL3wDjk6h37xgWKf3W2cca7OCbUjbMJbTq6mKSMmN5G
/PEupHsssarMsQSfRnLQmx0vxk9Szl5DwjPcMHQB8T/KKlUhI7TDmNovnAgISBNyn6cGN/2tz1gB
SpM5zDb/L2q5L1RNqoHRLgLn+8crK65rzD174noQa7oNfwFQSwMEFAACAAgAbA9pP9X6h//1AAAA
eAEAAEYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2ti
b3gtY2hlY2tlZC1zdGRlcnIudHh0VVQJAAN83rlOfN65TnV4CwABBOgDAAAE6AMAAFWPP2/CMBDF
Z/gUjLClwcWx13QAUXVJ1A5Vh4t9gNX4j2xHhW/fs4gqOvnu+f3e3S0GSCilxmE6S9llUN99BIWP
9Xqz+qyuzyAagV/LxZ1Yg/PuZv2UVg4spkDGzUy9TDZ05uxg3IPTI8Y5QdSNEJRQXflJqB2KRqm6
Kj0wDqX6wKH1keLfvGu9DT6ZjLr1LqPLe5+ylAnzu8Gf4GO+xxKr6hJL8NGQg97iONgwSjkFDRlf
4Yaxj4j/UbajLRihPabcXXAkICJNKH2ZGv34tz5jFShN5ji58j+r9bZSDakWjJsFzrePV3KuGyw9
e+L6JJZ0G/4CUEsDBBQAAgAIAG0PaT/HD6iX9QAAAHgBAABNABwAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWRlc2NyaWJlZGJ5LW9uLWlucHV0LWNyYXNoLWxvZy50
eHRVVAkAA33euU593rlOdXgLAAEE6AMAAAToAwAAVY8/T8MwEMXn9lN0bDeTmCb2GoYiEEsiGBDD
xb62FvEf2Y5ovz1nNUJl8t3z+727W42QUEqN43ySss+gvocICu/r7W7zyS6PIFqBX+vVjdiC8+5q
/Zw2DiymQMbdQj3NNvTm5GA6gNMTxiVBVK0QlMAuzREFMMa1qljpgTdQqg8cOx8p/s27ztvgk8mo
O+8yunzwKUuZML8b/Ak+5lsssaoqsQS/GHLQWxzPNkxSzkFDxle4Yhwi4n+U79UeOaEDptyfcSIg
Ik0ofZka/fS3PucMlCZznF35X9SqZqol1YJxi9A09f2VdatbLD1/aPRRrOk2/AVQSwMEFAACAAgA
bQ9pPxYngSv2AAAAeAEAAEMAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5
L2FyaWEtY2hlY2tib3gtdGV4dC1zdGRlcnIudHh0VVQJAAN93rlOfd65TnV4CwABBOgDAAAE6AMA
AFWPvW7DMAyE5+QpMiab6yiWpdUdUiToYqMdig60RKdGrR9IMpq8fSnEKNJJ5Om+I7nqIaKUGvv5
ImWbQH13ARQ+1tvd5qO4HkDUAj/XqzuxBevszbg5biwYjJ6Mu4V6no1vx4uF6QhWTxiWBFHWQlBC
ceVDz4cDcKXKIvfAOOTqHfvGBYp/dbZxxrs4JtSNswltOrqYpIyY3kb88S6keyyxqsyxBJ9GctCb
HS/GT1LOXkPCM9wwdAHxP8oqVSEjtMOY2i+cCAhIE3KfpwY3/a3PWAFKkznMNv8varkvVE2qgdEu
Auf7xysrrmvMPXviehBrug1/AVBLAwQUAAIACABsD2k/nlQaIfUAAAB4AQAAYgAcAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYWRqYWNlbnQtY29udGludWF0aW9ucy1jYXVz
ZS1hc3NlcnRpb24tZmFpbHVyZS1jcmFzaC1sb2cudHh0VVQJAAN83rlOfN65TnV4CwABBOgDAAAE
6AMAAFWPP2/CMBDFZ/gUjLA5weDYazpQteqSqB2qDod9QNT4j2xHhW/fs4gqOvnu+f3e3S2OkFAp
g8fprFSXQX/3ETQ+1uvN6pNddyAbiV/LxZ1Yg/PuZv2UVg4spkDGzUw9TTZ0w9nBeABnRoxzgqwb
KSmBXcUJK1PtKq1rVnrgAkr1gcfWR4p/8671Nvg0ZDStdxldPviUlUqY3wf8CT7meyyxui6xBL8M
5KC3OJ5tGJWagoGMr3DD2EfE/yjf6z1yQntMubvgSEBEmlD6MjX68W99zhloQ+Y4ufI/q/WW6YZU
C4ObBSG2j1cyYRosPa+EOckl3Ya/UEsDBBQAAgAIAGwPaT8ZYSYg9QAAAHgBAABXABwAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hbmNob3ItbGlua2VkLWFub255bW91cy1i
bG9jay1jcmFzaC1jcmFzaC1sb2cudHh0VVQJAAN83rlOfN65TnV4CwABBOgDAAAE6AMAAFWPvW7D
MAyE5+QpMiabayuxpdUdErToYqMdig60RKdCrB9IMpq8fSnEKNJJ5Om+I7kaIKIQCof5LESXQF76
ABIf6+1u81lc98Abjl/r1Z3YgnX2ZtwcNxYMRk/G3UI9z8Z3+mxhOoJVE4YlgZcN55RQXOtxD7Ia
FcqyyD2wGnL1gUPrAsW/Ods6413UCVXrbEKbji4mISKmd40/3oV0jyVWljmW4BdNDnqz42T8JMTs
FSR8hRuGPiD+R9lBHpAR2mNM3TdOBASkCbnPU4Ob/tZnrACpyBxmm/8XtawK2ZBqQNtFqOvq8UrJ
VYO5Z0+1GvmabsNfUEsDBBQAAgAIAGwPaT8ZYSYg9QAAAHgBAABUABwAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hbmNob3ItbGlua2VkLWFub255bW91cy1ibG9jay1jcmFz
aC1zdGRlcnIudHh0VVQJAAN83rlOfN65TnV4CwABBOgDAAAE6AMAAFWPvW7DMAyE5+QpMiabayux
pdUdErToYqMdig60RKdCrB9IMpq8fSnEKNJJ5Om+I7kaIKIQCof5LESXQF76ABIf6+1u81lc98Ab
jl/r1Z3YgnX2ZtwcNxYMRk/G3UI9z8Z3+mxhOoJVE4YlgZcN55RQXOtxD7IaFcqyyD2wGnL1gUPr
AsW/Ods6413UCVXrbEKbji4mISKmd40/3oV0jyVWljmW4BdNDnqz42T8JMTsFSR8hRuGPiD+R9lB
HpAR2mNM3TdOBASkCbnPU4Ob/tZnrACpyBxmm/8XtawK2ZBqQNtFqOvq8UrJVYO5Z0+1GvmabsNf
UEsDBAoAAAAAAGwPaT8AAAAAAAAAAAAAAAAdABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0
cC9VVAkAA3zeuU6E3rlOdXgLAAEE6AMAAAToAwAAUEsDBAoAAAAAAGwPaT8AAAAAAAAAAAAAAAAj
ABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9VVAkAA3zeuU6E3rlOdXgLAAEE
6AMAAAToAwAAUEsDBAoAAAAAAG0PaT8AAAAAAAAAAAAAAAAsABwAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9VVAkAA33euU6E3rlOdXgLAAEE6AMAAAToAwAAUEsD
BBQAAgAIAGwPaT8UbXbw9QAAAHgBAABeABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90
ZXN0cy9hcHBjYWNoZS9jcmFzaC13aGVuLW5hdmlnYXRpbmctYXdheS10aGVuLWJhY2stY3Jhc2gt
bG9nLnR4dFVUCQADfN65TnzeuU51eAsAAQToAwAABOgDAABVjz9vwjAQxWf4FIywpcbFsdd0AFF1
SdQOVYeLfUDU+I9sR4Vv37OIKjr57vn93t0tekiolMF+OivVZtDfXQSNj/V6s/qsrs8ga4lfy8Wd
WIPz7mb9lFYOLKZAxs1MvUw2tMPZwbgHZ0aMc4JktZSUUF3FiaFkzAjNqtIDF1CqD+wbHyn+zbvG
2+DTkNE03mV0ee9TViphfh/wJ/iY77HEalZiCT4O5KC3OA42jEpNwUDGV7hh7CLif5Tv9A45oR2m
3F5wJCAiTSh9mRr9+Lc+5xVoQ+Y4ufI/q2xb6ZpUC4ObBSG2j1dqZmosPX8S5iSXdBv+AlBLAwQU
AAIACABsD2k/FG128PUAAAB4AQAAWwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVz
dHMvYXBwY2FjaGUvY3Jhc2gtd2hlbi1uYXZpZ2F0aW5nLWF3YXktdGhlbi1iYWNrLXN0ZGVyci50
eHRVVAkAA3zeuU583rlOdXgLAAEE6AMAAAToAwAAVY8/b8IwEMVn+BSMsKXGxbHXdABRdUnUDlWH
i31A1PiPbEeFb9+ziCo6+e75/d7dLXpIqJTBfjor1WbQ310EjY/1erP6rK7PIGuJX8vFnViD8+5m
/ZRWDiymQMbNTL1MNrTD2cG4B2dGjHOCZLWUlFBdxYmhZMwIzarSAxdQqg/sGx8p/s27xtvg05DR
NN5ldHnvU1YqYX4f8Cf4mO+xxGpWYgk+DuSgtzgONoxKTcFAxle4Yewi4n+U7/QOOaEdptxecCQg
Ik0ofZka/fi3PucVaEPmOLnyP6tsW+maVAuDmwUhto9XamZqLD1/EuYkl3Qb/gJQSwMEFAACAAgA
bQ9pP7TRNzb1AAAAeAEAAEgAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL2NyZWRlbnRpYWwtdXJsLWNyYXNoLWxvZy50eHRVVAkAA33euU593rlOdXgLAAEE6AMA
AAToAwAAVY8/T8MwEMXn9lN0bDeTuHHsNQxFIJZUMCCGi30tEfEf2Y5ovz1nNUJl8t3z+727Ww2Q
UCmDw3xWqs+gv48RNN7X293mg132IFuJn+vVjdiC8+5q/Zw2DiymQMbdQj3ONvTj2cF0AGcmjEuC
rFopKYFdxAn2hgk+6IqVHriAUr3j0PlI8a/edd4Gn8aMpvMuo8sHn7JSCfPbiD/Bx3yLJVZXJZbg
55Ec9BbHkw2TUnMwkPEFrhiPEfE/yhvdICf0iCn3XzgREJEmlL5MjX76W59zBtqQOc6u/C9qVTPd
kmphdIsgRH1/Zd2YFkvPH4Q5yTXdhr9QSwMEFAACAAgAbQ9pP7TRNzb1AAAAeAEAAEUAHAB0bXAv
bGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2NyZWRlbnRpYWwtdXJsLXN0
ZGVyci50eHRVVAkAA33euU593rlOdXgLAAEE6AMAAAToAwAAVY8/T8MwEMXn9lN0bDeTuHHsNQxF
IJZUMCCGi30tEfEf2Y5ovz1nNUJl8t3z+727Ww2QUCmDw3xWqs+gv48RNN7X293mg132IFuJn+vV
jdiC8+5q/Zw2DiymQMbdQj3ONvTj2cF0AGcmjEuCrFopKYFdxAn2hgk+6IqVHriAUr3j0PlI8a/e
dd4Gn8aMpvMuo8sHn7JSCfPbiD/Bx3yLJVZXJZbg55Ec9BbHkw2TUnMwkPEFrhiPEfE/yhvdICf0
iCn3XzgREJEmlL5MjX76W59zBtqQOc6u/C9qVTPdkmphdIsgRH1/Zd2YFkvPH4Q5yTXdhr9QSwME
FAACAAgAbA9pP36RX1H1AAAAeAEAADsAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rl
c3RzL2FwcGNhY2hlL2F1dGgtc3RkZXJyLnR4dFVUCQADfN65TnzeuU51eAsAAQToAwAABOgDAABV
j71uwzAMhOfkKTImmyOrsaXVHRK06GKjHYoOtESnRqwfSDKavH0pxCjSSeTpviO56iGilBr7+Sxl
m0BdugAKH+vtbvNZXJ9A1AK/1qs7sQXr7M24OW4sGIyejLuFep6Nb8ezhekIVk8YlgTBaiEoobhW
g1ZsP6hSsSL3wCvI1Qf2jQsU/+Zs44x3cUyoG2cT2nR0MUkZMb2P+ONdSPdYYhXLsQS/jOSgNztO
xk9Szl5Dwle4YegC4n+UH9QBOaEdxtR+40RAQJqQ+zw1uOlvfc4LUJrMYbb5f1FZWaiaVAOjXYSq
Kh+vBNQ15p7vKz2INd2Gv1BLAwQUAAIACABtD2k/pJDbuvcAAAB4AQAAQwAcAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvY3lyaWxsaWMtdXJpLXN0ZGVyci50eHRV
VAkAA33euU593rlOdXgLAAEE6AMAAAToAwAAVY+9bsMwDITn5CkyJpvsKLal1R1StOhiox2KDrTE
JEatH0gymrx9KcQo0knk6b4juRogopQah/ksZZdAffcBFD7W293mk10PIBqBX+vVndiCdfZm3Bw3
FgxGT8bdQj3Nxnfj2cJ0BKsnDEuCKBshKIFd61NRDKpipSpZ7oHXkKsPHFoXKP7N2dYZ7+KYULfO
JrTp6GKSMmJ6H/HHu5DuscSqMscS/DKSg97seDZ+knL2GhK+wg1DHxD/o7xSFXJCe4ypu+BEQECa
kPs8Nbjpb33OGShN5jDb/L+o5Z6phlQDo12Eut4/XHlArRvMPS9qfRJrug1/AVBLAwQUAAIACABs
D2k/PItE0fUAAAB4AQAATQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBw
Y2FjaGUvYWNjZXNzLXZpYS1yZWRpcmVjdC1jcmFzaC1sb2cudHh0VVQJAAN83rlOfN65TnV4CwAB
BOgDAAAE6AMAAFWPP2/CMBDFZ/gUjLC5weDYazpQgbokaoeqw8U+aNT4j2xHhW/fs4gqOvnu+f3e
3S16SKiUwX66KNVm0N9dBI2P9Xqz+mDXHcha4udycSfW4Ly7WT+llQOLKZBxM1PPkw3tcHEwHsCZ
EeOcIKtaSkpgV3E2rBIMQVes9MAFlOod+8ZHin/1rvE2+DRkNI13GV0++JSVSpjfBvwJPuZ7LLG6
KrEEHwdy0FscLzaMSk3BQMYT3DB2EfE/yvd6j5zQDlNuv3AkICJNKH2ZGv34tz7nDLQhc5xc+Z/V
ast0TaqFwc2CENvHK83O1Fh6/iTMWS7pNvwFUEsDBBQAAgAIAGwPaT9+kV9R9QAAAHgBAAA+ABwA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9hdXRoLWNyYXNoLWxv
Zy50eHRVVAkAA3zeuU583rlOdXgLAAEE6AMAAAToAwAAVY+9bsMwDITn5CkyJpsjq7Gl1R0StOhi
ox2KDrREp0asH0gymrx9KcQo0knk6b4jueohopQa+/ksZZtAXboACh/r7W7zWVyfQNQCv9arO7EF
6+zNuDluLBiMnoy7hXqejW/Hs4XpCFZPGJYEwWohKKG4VoNWbD+oUrEi98AryNUH9o0LFP/mbOOM
d3FMqBtnE9p0dDFJGTG9j/jjXUj3WGIVy7EEv4zkoDc7TsZPUs5eQ8JXuGHoAuJ/lB/UATmhHcbU
fuNEQECakPs8Nbjpb33OC1CazGG2+X9RWVmomlQDo12EqiofrwTUNeae7ys9iDXdhr9QSwMEFAAC
AAgAbA9pPzyLRNH1AAAAeAEAAEoAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3Rz
L2FwcGNhY2hlL2FjY2Vzcy12aWEtcmVkaXJlY3Qtc3RkZXJyLnR4dFVUCQADfN65TnzeuU51eAsA
AQToAwAABOgDAABVjz9vwjAQxWf4FIywucHg2Gs6UIG6JGqHqsPFPmjU+I9sR4Vv37OIKjr57vn9
3t0tekiolMF+uijVZtDfXQSNj/V6s/pg1x3IWuLncnEn1uC8u1k/pZUDiymQcTNTz5MN7XBxMB7A
mRHjnCCrWkpKYFdxNqwSDEFXrPTABZTqHfvGR4p/9a7xNvg0ZDSNdxldPviUlUqY3wb8CT7meyyx
uiqxBB8HctBbHC82jEpNwUDGE9wwdhHxP8r3eo+c0A5Tbr9wJCAiTSh9mRr9+Lc+5wy0IXOcXPmf
1WrLdE2qhcHNghDbxyvNztRYev4kzFku6Tb8BVBLAwQUAAIACABtD2k/pJDbuvcAAAB4AQAARgAc
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
HQfuUbdgPZWu2ZV5IvI6CA03vBCKNuLove3jItUeMG7a+Y2brGjrxM4DLn4opnXukLewcfLdyevF
wR9BWaeqqHnVI4KA5g/EHT/p99mr0+d/wz/3yHO68lF/TY5eOx78WmG6iiw6TXpwFGO8ugdpCZ9X
5Bmt80qXpVeDvXOR4AJaaFqsUiF/sFm8oUwyXlFNylhQViWFsO4HrN8fu3/gDroW6xKkxqE+TwIv
+w/dHVPSaZEjdif7rsOB/ajYdO9/AFBLAwQUAAIACABtD2k/jM7rZVUAAADVAAAAJgAcAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjIudHh0VVQJAAN93rlOe965TnV4CwABBOgDAAAE
6AMAAI3KQQqAQAgAwHt/sd4kq7CC64Za0O+Lolss3eYwaNIwpVss+BKQCHhnywAxqGik7HPNphN+
/dItveuVgDwBVxnlCPBNGfJYOQaRxLncsu4N9U99zglQSwMECgAAAAAAaw9pPwAAAAAAAAAAAAAA
AEMAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9weXdlYnNvY2tldC53cy5sb2ctMDlOb3YyMDEx
LTAxNTkyMi1lcnIudHh0VVQJAAN63rlOet65TnV4CwABBOgDAAAE6AMAAFBLAwQUAAIACABvD2k/
qftFMjYCAABcCAAAKQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Z1bGxfcmVzdWx0cy5qc29u
VVQJAAOB3rlOhN65TnV4CwABBOgDAAAE6AMAALWVzW7bMAyA30WnDYuSruuKNDsV64Adehia7mzQ
Eh1zlmVBP0mMou8+SkYK9LCTPZ9omvxIkRR9//BQPf3Y/3583n94ERFDDGL3IhTYIxTJtWTIZent
47VeK4Pgn1DFTw0Zk4U1GNfC1frruo29yWZ4dqxHLXbi1/1+L1YCVEzA38T3p/v9T1a0EKoQNXov
dtEnfF0VeAm+9gh6sGZcAPjPbP8HuoZAasEqNOjRKpxF5Ie1Mb5vJDinQLVYOj56PgApmTzNTF55
1GgjgWGYmQ2D0MpTi1ZaONIBItmDhBOMMmZlDaqbGQJSbOcilMIQ5JFA8uHJ5zlwrZvVrolJNd+/
OJZ26T+guLBSDVxdm7gUgw1SQQooIQT0WSEbIJM8zj2R57NoDMpTjboeJZPJuhTncq1qBy8N2Q61
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
AGwPaT8I7f4H9QAAAHgBAABQABgAAAAAAAEAAACkgSQCAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hZGQtZXZlbnRzLWluLWhhbmRsZXItY3Jhc2gtbG9nLnR4
dFVUBQADfN65TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAG0PaT9+dls/9QAAAHgBAABLABgA
AAAAAAEAAACkgaMDAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlv
bi1kaXJlY3Rpb24tbm9ybWFsLWNyYXNoLWxvZy50eHRVVAUAA33euU51eAsAAQToAwAABOgDAABQ
SwECHgMUAAIACABsD2k/7zR1OPUAAAB4AQAASgAYAAAAAAABAAAApIEdBQAAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY29udHJvbGxlci1kcnQtYXBpLXN0ZGVy
ci50eHRVVAUAA3zeuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABtD2k/zOdMa/UAAAB4AQAA
SQAYAAAAAAABAAAApIGWBgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmlt
YXRpb24tY3NzLXJ1bGUtdHlwZXMtY3Jhc2gtbG9nLnR4dFVUBQADfd65TnV4CwABBOgDAAAE6AMA
AFBLAQIeAxQAAgAIAG0PaT9TucN+9QAAAHgBAABEABgAAAAAAAEAAACkgQ4IAAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tY3Jhc2gtbG9nLnR4
dFVUBQADfd65TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAGwPaT/vNHU49QAAAHgBAABNABgA
AAAAAAEAAACkgYEJAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlv
bi1jb250cm9sbGVyLWRydC1hcGktY3Jhc2gtbG9nLnR4dFVUBQADfN65TnV4CwABBOgDAAAE6AMA
AFBLAQIeAxQAAgAIAG0PaT9TucN+9QAAAHgBAABBABgAAAAAAAEAAACkgf0KAAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tc3RkZXJyLnR4dFVU
BQADfd65TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAG0PaT9+dls/9QAAAHgBAABIABgAAAAA
AAEAAACkgW0MAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1k
aXJlY3Rpb24tbm9ybWFsLXN0ZGVyci50eHRVVAUAA33euU51eAsAAQToAwAABOgDAABQSwECHgMU
AAIACABsD2k/CO3+B/UAAAB4AQAATQAYAAAAAAABAAAApIHkDQAAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tYWRkLWV2ZW50cy1pbi1oYW5kbGVyLXN0ZGVyci50
eHRVVAUAA3zeuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABtD2k/XN1YWGQAAADWAAAAJgAY
AAAAAAABAAAApIFgDwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHRVVAUA
A33euU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABtD2k/2KNiY3kAAAD1AAAAJgAYAAAAAAAB
AAAApIEkEAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMS50eHRVVAUAA33euU51
eAsAAQToAwAABOgDAABQSwECHgMUAAIACABtD2k/O4sDFFgAAAD8AAAAJgAYAAAAAAABAAAApIH9
EAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMy50eHRVVAUAA33euU51eAsAAQTo
AwAABOgDAABQSwECHgMKAAAAAABrD2k/AAAAAAAAAAAAAAAAQwAYAAAAAAAAAAAApIG1EQAAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvcHl3ZWJzb2NrZXQud3MubG9nLTA5Tm92MjAxMS0wMTU5MjIt
b3V0LnR4dFVUBQADet65TnV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAGwPaT8AAAAAAAAAAAAA
AAAfABgAAAAAAAAAEADtQTISAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvVVQFAAN8
3rlOdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAbA9pPwAAAAAAAAAAAAAAACYAGAAAAAAAAAAQ
AO1BixIAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvVVQFAAN83rlOdXgL
AAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAbQ9pPwAAAAAAAAAAAAAAACwAGAAAAAAAAAAQAO1B6xIA
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvVVQFAAN93rlOdXgL
AAEE6AMAAAToAwAAUEsBAh4DFAACAAgAbQ9pPwzcXBj2AAAAeAEAAFYAGAAAAAAAAQAAAKSBURMA
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0
K2ZpbGxSZWN0LmFscGhhMC1jcmFzaC1sb2cudHh0VVQFAAN93rlOdXgLAAEE6AMAAAToAwAAUEsB
Ah4DFAACAAgAbA9pP/CEgpX1AAAAeAEAAEwAGAAAAAAAAQAAAKSB1xQAAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2FudmFzLnJlYWRvbmx5LWNyYXNoLWxv
Zy50eHRVVAUAA3zeuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABsD2k/ROQmZvYAAAB4AQAA
TQAYAAAAAAABAAAApIFSFgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90
ZXN0cy8yZC5jYW52YXMucmVmZXJlbmNlLWNyYXNoLWxvZy50eHRVVAUAA3zeuU51eAsAAQToAwAA
BOgDAABQSwECHgMUAAIACABtD2k/cZuUZ/UAAAB4AQAAUgAYAAAAAAABAAAApIHPFwAAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmlsbFJl
Y3QuYmFzaWMtc3RkZXJyLnR4dFVUBQADfd65TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAGwP
aT9E5CZm9gAAAHgBAABKABgAAAAAAAEAAACkgVAZAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNhbnZhcy5yZWZlcmVuY2Utc3RkZXJyLnR4dFVUBQADfN65
TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAG0PaT9xm5Rn9QAAAHgBAABVABgAAAAAAAEAAACk
gcoaAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNsZWFy
UmVjdCtmaWxsUmVjdC5iYXNpYy1jcmFzaC1sb2cudHh0VVQFAAN93rlOdXgLAAEE6AMAAAToAwAA
UEsBAh4DFAACAAgAbQ9pPwzcXBj2AAAAeAEAAFMAGAAAAAAAAQAAAKSBThwAAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0K2ZpbGxSZWN0LmFs
cGhhMC1zdGRlcnIudHh0VVQFAAN93rlOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAbQ9pPyYF
MMb1AAAAeAEAAFUAGAAAAAAAAQAAAKSB0R0AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZh
cy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0K2ZpbGxSZWN0LmFscGhhMC41LXN0ZGVyci50eHRV
VAUAA33euU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABsD2k/8ISClfUAAAB4AQAASQAYAAAA
AAABAAAApIFVHwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5jYW52YXMucmVhZG9ubHktc3RkZXJyLnR4dFVUBQADfN65TnV4CwABBOgDAAAE6AMAAFBLAQIe
AxQAAgAIAG0PaT8mBTDG9QAAAHgBAABYABgAAAAAAAEAAACkgc0gAAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNsZWFyUmVjdCtmaWxsUmVjdC5hbHBoYTAu
NS1jcmFzaC1sb2cudHh0VVQFAAN93rlOdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAbQ9pPwAA
AAAAAAAAAAAAACYAGAAAAAAAAAAQAO1BVCIAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vz
c2liaWxpdHkvVVQFAAN93rlOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAbA9pP9X6h//1AAAA
eAEAAEkAGAAAAAAAAQAAAKSBtCIAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxp
dHkvYXJpYS1jaGVja2JveC1jaGVja2VkLWNyYXNoLWxvZy50eHRVVAUAA3zeuU51eAsAAQToAwAA
BOgDAABQSwECHgMUAAIACABsD2k/nlQaIfUAAAB4AQAAXwAYAAAAAAABAAAApIEsJAAAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRpb25zLWNh
dXNlLWFzc2VydGlvbi1mYWlsdXJlLXN0ZGVyci50eHRVVAUAA3zeuU51eAsAAQToAwAABOgDAABQ
SwECHgMUAAIACABtD2k/xw+ol/UAAAB4AQAASgAYAAAAAAABAAAApIG6JQAAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWRlc2NyaWJlZGJ5LW9uLWlucHV0LXN0ZGVy
ci50eHRVVAUAA33euU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABtD2k/FieBK/YAAAB4AQAA
RgAYAAAAAAABAAAApIEzJwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9h
cmlhLWNoZWNrYm94LXRleHQtY3Jhc2gtbG9nLnR4dFVUBQADfd65TnV4CwABBOgDAAAE6AMAAFBL
AQIeAxQAAgAIAGwPaT/V+of/9QAAAHgBAABGABgAAAAAAAEAAACkgakoAAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1zdGRlcnIudHh0
VVQFAAN83rlOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAbQ9pP8cPqJf1AAAAeAEAAE0AGAAA
AAAAAQAAAKSBHioAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYXJpYS1k
ZXNjcmliZWRieS1vbi1pbnB1dC1jcmFzaC1sb2cudHh0VVQFAAN93rlOdXgLAAEE6AMAAAToAwAA
UEsBAh4DFAACAAgAbQ9pPxYngSv2AAAAeAEAAEMAGAAAAAAAAQAAAKSBmisAAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC10ZXh0LXN0ZGVyci50eHRV
VAUAA33euU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABsD2k/nlQaIfUAAAB4AQAAYgAYAAAA
AAABAAAApIENLQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hZGphY2Vu
dC1jb250aW51YXRpb25zLWNhdXNlLWFzc2VydGlvbi1mYWlsdXJlLWNyYXNoLWxvZy50eHRVVAUA
A3zeuU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABsD2k/GWEmIPUAAAB4AQAAVwAYAAAAAAAB
AAAApIGeLgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hbmNob3ItbGlu
a2VkLWFub255bW91cy1ibG9jay1jcmFzaC1jcmFzaC1sb2cudHh0VVQFAAN83rlOdXgLAAEE6AMA
AAToAwAAUEsBAh4DFAACAAgAbA9pPxlhJiD1AAAAeAEAAFQAGAAAAAAAAQAAAKSBJDAAAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYW5jaG9yLWxpbmtlZC1hbm9ueW1vdXMt
YmxvY2stY3Jhc2gtc3RkZXJyLnR4dFVUBQADfN65TnV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAA
AGwPaT8AAAAAAAAAAAAAAAAdABgAAAAAAAAAEADtQacxAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9odHRwL1VUBQADfN65TnV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAGwPaT8AAAAAAAAAAAAA
AAAjABgAAAAAAAAAEADtQf4xAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL1VU
BQADfN65TnV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAAG0PaT8AAAAAAAAAAAAAAAAsABgAAAAA
AAAAEADtQVsyAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL1VU
BQADfd65TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAGwPaT8UbXbw9QAAAHgBAABeABgAAAAA
AAEAAACkgcEyAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2Ny
YXNoLXdoZW4tbmF2aWdhdGluZy1hd2F5LXRoZW4tYmFjay1jcmFzaC1sb2cudHh0VVQFAAN83rlO
dXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAbA9pPxRtdvD1AAAAeAEAAFsAGAAAAAAAAQAAAKSB
TjQAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvY3Jhc2gtd2hl
bi1uYXZpZ2F0aW5nLWF3YXktdGhlbi1iYWNrLXN0ZGVyci50eHRVVAUAA3zeuU51eAsAAQToAwAA
BOgDAABQSwECHgMUAAIACABtD2k/tNE3NvUAAAB4AQAASAAYAAAAAAABAAAApIHYNQAAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9jcmVkZW50aWFsLXVybC1jcmFz
aC1sb2cudHh0VVQFAAN93rlOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAbQ9pP7TRNzb1AAAA
eAEAAEUAGAAAAAAAAQAAAKSBTzcAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMv
YXBwY2FjaGUvY3JlZGVudGlhbC11cmwtc3RkZXJyLnR4dFVUBQADfd65TnV4CwABBOgDAAAE6AMA
AFBLAQIeAxQAAgAIAGwPaT9+kV9R9QAAAHgBAAA7ABgAAAAAAAEAAACkgcM4AAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2F1dGgtc3RkZXJyLnR4dFVUBQADfN65
TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAG0PaT+kkNu69wAAAHgBAABDABgAAAAAAAEAAACk
gS06AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2N5cmlsbGlj
LXVyaS1zdGRlcnIudHh0VVQFAAN93rlOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAbA9pPzyL
RNH1AAAAeAEAAE0AGAAAAAAAAQAAAKSBoTsAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAv
dGVzdHMvYXBwY2FjaGUvYWNjZXNzLXZpYS1yZWRpcmVjdC1jcmFzaC1sb2cudHh0VVQFAAN83rlO
dXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAbA9pP36RX1H1AAAAeAEAAD4AGAAAAAAAAQAAAKSB
HT0AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvYXV0aC1jcmFz
aC1sb2cudHh0VVQFAAN83rlOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAbA9pPzyLRNH1AAAA
eAEAAEoAGAAAAAAAAQAAAKSBij4AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMv
YXBwY2FjaGUvYWNjZXNzLXZpYS1yZWRpcmVjdC1zdGRlcnIudHh0VVQFAAN83rlOdXgLAAEE6AMA
AAToAwAAUEsBAh4DFAACAAgAbQ9pP6SQ27r3AAAAeAEAAEYAGAAAAAAAAQAAAKSBA0AAAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvY3lyaWxsaWMtdXJpLWNyYXNo
LWxvZy50eHRVVAUAA33euU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABtD2k/YLjuJtgAAABM
AQAAJQAYAAAAAAABAAAApIF6QQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvZXJyb3JfbG9nLnR4
dFVUBQADft65TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAG8PaT+xC0YL4h0AABJ8AAAkABgA
AAAAAAEAAACkgbFCAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9yZXN1bHRzLmh0bWxVVAUAA4He
uU51eAsAAQToAwAABOgDAABQSwECHgMUAAIACABtD2k/jM7rZVUAAADVAAAAJgAYAAAAAAABAAAA
pIHxYAAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMi50eHRVVAUAA33euU51eAsA
AQToAwAABOgDAABQSwECHgMKAAAAAABrD2k/AAAAAAAAAAAAAAAAQwAYAAAAAAAAAAAApIGmYQAA
dG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcHl3ZWJzb2NrZXQud3MubG9nLTA5Tm92MjAxMS0wMTU5
MjItZXJyLnR4dFVUBQADet65TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAG8PaT+p+0UyNgIA
AFwIAAApABgAAAAAAAEAAACkgSNiAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9mdWxsX3Jlc3Vs
dHMuanNvblVUBQADgd65TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAGoPaT+R7GaBGiQAAG9h
AAAiABgAAAAAAAEAAACkgbxkAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwZC5jb25mVVQF
AAN43rlOdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAaw9pPwAAAAAAAAAAAAAAACYAGAAAAAAA
AAAAAKSBMokAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc19sb2cudHh0VVQFAAN53rlO
dXgLAAEE6AMAAAToAwAAUEsFBgAAAAA8ADwAfB8AAJKJAAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114299</attachid>
            <date>2011-11-09 09:06:33 -0800</date>
            <delta_ts>2011-11-09 11:33:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71595-20111109090632.patch</filename>
            <type>text/plain</type>
            <size>52677</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk1OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOWQ5NDA3YjNhMmFiOTA3
ZjBlNTVkNjZmOGUzYzkyMDFjZmY3MjFjLi4zZDA1YTE4YTc0MGQ0ZTQzMWFjNzM5NTI1Mzg1NThh
MDk3ODU4MWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTEtMTEtMDggIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKGZpbGVkIDcx
NTI5IHRvIHJlbWVtYmVyIHRvIGRvIGl0IGxhdGVyKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNo
cm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpMYXllckNocm9taXVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldEJvdW5kcyk6CisgICAgICAg
IChXZWJDb3JlOjpMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJD
b3JlOjpMYXllckNocm9taXVtOjpzY3JvbGxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVy
Q2hyb21pdW06OnNldFNjcm9sbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1
bTo6cGFnZVNjYWxlQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc0ludGVybmFsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0UGFnZU1hZ25pZnlUcmFuc2Zvcm0pOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9z
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZp
ZXdwb3J0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3Np
dGVkQ29udGVudEhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkNvbXBvc2l0ZWRDb250ZW50
SG9zdDo6dG9wTGV2ZWxSb290TGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBs
OjpDQ0xheWVySW1wbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzY3JvbGxhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpzZXRTY3JvbGxhYmxlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpDQ0xheWVyVHJlZUhvc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpmaW5pc2hDb21taXRPbkltcGxUaHJlYWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpzZXRQYWdlU2NhbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMp
OgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbEFuZFNjYWxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6cGFnZVNjYWxlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21t
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OkND
TGF5ZXJUcmVlSG9zdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6Y29tbWl0Q29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZFNjcm9sbExheWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFZpZXdwb3J0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRTY2FsZURlbHRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0
cyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjp1cGRhdGVNYXhTY3Jv
bGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5j
aEdlc3R1cmVCZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpw
aW5jaEdlc3R1cmVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1w
bDo6cGluY2hHZXN0dXJlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdElt
cGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5
ZXJUcmVlSG9zdEltcGw6OnBhZ2VTY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTY3JvbGxDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDQ1NpbmdsZVRocmVhZFByb3h5Ojpkb0NvbW1pdCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDQ1RocmVhZFByb3h5OjpjcmVhdGVCZWdpbkZyYW1lQW5kQ29tbWl0VGFza09uSW1wbFRocmVh
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
Lmg6CisKIDIwMTEtMTEtMDggIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJlbW92ZSBnZXQoKSBkZWZpbmVkIGluIENyZWRlbnRpYWxTdG9yYWdlU291cC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNTFmYzBkYzQ4OTVkMzJjMTM2ZDExOWIwNGJj
MjFjMDg3ZGRlZjlhZi4uYzY1NTU0ODBiMzM1YzI3NWZkYmU1Y2I3NTRiNTY4YTM0Yjg2MzE2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMS0xMS0wOCAg
QWxleGFuZHJlIEVsaWFzICA8YWVsaWFzQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVt
XSBBZGQgZHJhdy10aW1lIHNjYWxlIGRlbHRhIHRvIGNvbXBvc2l0b3IgdGhyZWFkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU5NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkxheWVy
VHJlZVZpZXdDbGllbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAq
IHNyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHA6CisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZp
ZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmFwcGx5
U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAqIHNyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oOgor
ICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjplbmFibGVGaXhlZExheW91dE1vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
dXBkYXRlTGF5ZXJUcmVlVmlld3BvcnQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q0NMYXllclRyZWVIb3N0SW1wbFRlc3Q6OmV4cGVjdENvbnRhaW5zKToKKyAgICAgICAg
KFdlYktpdDo6VEVTVF9GKToKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNw
cDoKKyAgICAgICAgKFdURjo6VGVzdEhvb2tzOjphcHBseVNjcm9sbEFuZFNjYWxlKToKKyAgICAg
ICAgKFdURjo6TW9ja0xheWVyVHJlZUhvc3RDbGllbnQ6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgor
ICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0U2Nyb2xsU2ltcGxlOjpiZWdpblRlc3Qp
OgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0U2Nyb2xsU2ltcGxlOjpkcmF3TGF5
ZXJzT25DQ1RocmVhZCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxT
aW1wbGU6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhv
c3RUZXN0U2Nyb2xsTXVsdGlwbGVSZWRyYXc6OmJlZ2luVGVzdCk6CisgICAgICAgIChXVEY6OkND
TGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0aXBsZVJlZHJhdzo6ZHJhd0xheWVyc09uQ0NUaHJl
YWQpOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0U2Nyb2xsTXVsdGlwbGVSZWRy
YXc6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorCiAyMDExLTExLTA4ICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkg
bm90aWZpY2F0aW9uIGluIHRoZSBmcm9udC1lbmQgd2hlbiBpbnNwZWN0ZWQgd29ya2VyIHRlcm1p
bmF0ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDcyOWE5YWNk
ZWNjNDhlZjA5OWMyZTViOWMzNzYwNTk0ZDBjNmIxN2UuLjE1NmIyZTkwZWY0NWU2OTAwNzgyZWE1
OTQ4MDhiNmFkODJlM2ZiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNw
cApAQCAtNjcwLDYgKzY3MCwxMiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRl
T3BhY2l0eU9uTGF5ZXIoKQogICAgIHByaW1hcnlMYXllcigpLT5zZXRPcGFjaXR5KG1fb3BhY2l0
eSk7CiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpkZXZpY2VPclBhZ2VTY2FsZUZh
Y3RvckNoYW5nZWQoKQoreworICAgIGlmIChtX2xheWVyKQorICAgICAgICBtX2xheWVyLT5wYWdl
U2NhbGVDaGFuZ2VkKCk7Cit9CisKIGJvb2wgR3JhcGhpY3NMYXllckNocm9taXVtOjpkcmF3c0Nv
bnRlbnQoKSBjb25zdAogewogICAgIHJldHVybiBHcmFwaGljc0xheWVyOjpkcmF3c0NvbnRlbnQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKaW5kZXggNzE5MGU1MDU5ZmM1NjE2
NDk2OTY5MDQ5NDNhNWU3NWM1MzdjNTM3ZS4uZjczZTczMzczOWJhMTZhNTIyMTFiMzExZTI2OWM1
MzZiY2FiYTcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKQEAgLTEwMCw2
ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eVN5bmNSZXF1aXJlZCgpOwogCisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpOwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU9wYWNpdHlPbkxheWVyKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggMWJlNzk4NTVjMWU2YjNmZTEyOTcyNDJiYzI5
ODQwNTZkNDA5NzhiYi4uY2EwMGMyMzUyNGY3N2E2M2IwZTg1OThiZDgxM2YyMDM2YzYwODY0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTU4LDYgKzU4LDcgQEAgTGF5ZXJDaHJvbWl1bTo6
TGF5ZXJDaHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgIDogbV9kZWxlZ2F0
ZShkZWxlZ2F0ZSkKICAgICAsIG1fbGF5ZXJJZChzX25leHRMYXllcklkKyspCiAgICAgLCBtX3Bh
cmVudCgwKQorICAgICwgbV9zY3JvbGxhYmxlKGZhbHNlKQogICAgICwgbV9hbmNob3JQb2ludCgw
LjUsIDAuNSkKICAgICAsIG1fYmFja2dyb3VuZENvbG9yKDAsIDAsIDAsIDApCiAgICAgLCBtX2Rl
YnVnQm9yZGVyV2lkdGgoMCkKQEAgLTcyLDYgKzczLDcgQEAgTGF5ZXJDaHJvbWl1bTo6TGF5ZXJD
aHJvbWl1bShDQ0xheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQogICAgICwgbV9yZXBsaWNhTGF5ZXIo
MCkKICAgICAsIG1fZHJhd09wYWNpdHkoMCkKICAgICAsIG1fdGFyZ2V0UmVuZGVyU3VyZmFjZSgw
KQorICAgICwgbV9wYWdlU2NhbGVEaXJ0eShmYWxzZSkKIHsKIH0KIApAQCAtMjEwLDEwICsyMTIs
MTIgQEAgdm9pZCBMYXllckNocm9taXVtOjpzZXRCb3VuZHMoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
IAogICAgIG1fYm91bmRzID0gc2l6ZTsKIAotICAgIGlmIChmaXJzdFJlc2l6ZSkKKyAgICBpZiAo
Zmlyc3RSZXNpemUgfHwgbV9wYWdlU2NhbGVEaXJ0eSkKICAgICAgICAgc2V0TmVlZHNEaXNwbGF5
KEZsb2F0UmVjdCgwLCAwLCBib3VuZHMoKS53aWR0aCgpLCBib3VuZHMoKS5oZWlnaHQoKSkpOwog
ICAgIGVsc2UKICAgICAgICAgc2V0TmVlZHNDb21taXQoKTsKKworICAgIG1fcGFnZVNjYWxlRGly
dHkgPSBmYWxzZTsKIH0KIAogY29uc3QgTGF5ZXJDaHJvbWl1bSogTGF5ZXJDaHJvbWl1bTo6cm9v
dExheWVyKCkgY29uc3QKQEAgLTI4Nyw3ICsyOTEsNyBAQCB2b2lkIExheWVyQ2hyb21pdW06OnB1
c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqIGxheWVyKQogICAgIGxheWVyLT5zZXREcmF3c0Nv
bnRlbnQoZHJhd3NDb250ZW50KCkpOwogICAgIGxheWVyLT5zZXRJc05vbkNvbXBvc2l0ZWRDb250
ZW50KG1faXNOb25Db21wb3NpdGVkQ29udGVudCk7CiAgICAgbGF5ZXItPnNldE1hc2tzVG9Cb3Vu
ZHMobV9tYXNrc1RvQm91bmRzKTsKLSAgICBsYXllci0+c2V0TWF4U2Nyb2xsUG9zaXRpb24obV9t
YXhTY3JvbGxQb3NpdGlvbik7CisgICAgbGF5ZXItPnNldFNjcm9sbGFibGUobV9zY3JvbGxhYmxl
KTsKICAgICBsYXllci0+c2V0TmFtZShtX25hbWUpOwogICAgIGxheWVyLT5zZXRPcGFxdWUobV9v
cGFxdWUpOwogICAgIGxheWVyLT5zZXRPcGFjaXR5KG1fb3BhY2l0eSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmgKaW5kZXggYmIwZWM2MjY1MDMzNjhmNDk5Yzk1MzJkZDY5NDQ5Y2ViYTM3MGM5NC4uNzQ3ZGM5
ODY5Y2YxMGI2MmYzMGU5YmYwOWFmMjI3OTg2NjRkMzQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApA
QCAtMTMxLDEzICsxMzEsMTEgQEAgcHVibGljOgogICAgIGNvbnN0IEludFBvaW50JiBzY3JvbGxQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUG9zaXRpb247IH0KICAgICB2b2lkIHNl
dFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbikgeyBtX3Njcm9s
bFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247IH0KIAotICAgIGNvbnN0IEludFNpemUmIG1heFNj
cm9sbFBvc2l0aW9uKCkgY29uc3Qge3JldHVybiBtX21heFNjcm9sbFBvc2l0aW9uOyB9Ci0gICAg
dm9pZCBzZXRNYXhTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRTaXplJiBtYXhTY3JvbGxQb3NpdGlv
bikgeyBtX21heFNjcm9sbFBvc2l0aW9uID0gbWF4U2Nyb2xsUG9zaXRpb247IH0KKyAgICBib29s
IHNjcm9sbGFibGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGU7IH0KKyAgICB2b2lkIHNl
dFNjcm9sbGFibGUoYm9vbCBzY3JvbGxhYmxlKSB7IG1fc2Nyb2xsYWJsZSA9IHRydWU7ICBzZXRO
ZWVkc0NvbW1pdCgpOyB9CiAKICAgICBJbnRTaXplIHNjcm9sbERlbHRhKCkgY29uc3QgeyByZXR1
cm4gSW50U2l6ZSgpOyB9CiAKLSAgICBib29sIHNjcm9sbGFibGUoKSBjb25zdCB7IHJldHVybiAh
bWF4U2Nyb2xsUG9zaXRpb24oKS5pc1plcm8oKTsgfQotCiAgICAgYm9vbCBkb3VibGVTaWRlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fZG91YmxlU2lkZWQ7IH0KICAgICB2b2lkIHNldERvdWJsZVNpZGVk
KGJvb2wgZG91YmxlU2lkZWQpIHsgbV9kb3VibGVTaWRlZCA9IGRvdWJsZVNpZGVkOyBzZXROZWVk
c0NvbW1pdCgpOyB9CiAKQEAgLTE2NCw2ICsxNjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldElzTWFzayhib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5yZXNlcnZlQ29udGVu
dHNUZXh0dXJlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGJpbmRDb250ZW50c1RleHR1cmUoKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFnZVNjYWxlQ2hhbmdlZCgpIHsgbV9wYWdlU2NhbGVEaXJ0
eSA9IHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJvdGVjdFZpc2libGVUaWxlVGV4dHVyZXMo
KSB7IH0KIAogICAgIC8vIFRoZXNlIGV4aXN0IGp1c3QgZm9yIGRlYnVnZ2luZyAodmlhIGRyYXdE
ZWJ1Z0JvcmRlcigpKS4KQEAgLTI1Miw3ICsyNTEsNyBAQCBwcml2YXRlOgogICAgIEludFNpemUg
bV9ib3VuZHM7CiAgICAgSW50UmVjdCBtX3Zpc2libGVMYXllclJlY3Q7CiAgICAgSW50UG9pbnQg
bV9zY3JvbGxQb3NpdGlvbjsKLSAgICBJbnRTaXplIG1fbWF4U2Nyb2xsUG9zaXRpb247CisgICAg
Ym9vbCBtX3Njcm9sbGFibGU7CiAgICAgRmxvYXRQb2ludCBtX3Bvc2l0aW9uOwogICAgIEZsb2F0
UG9pbnQgbV9hbmNob3JQb2ludDsKICAgICBDb2xvciBtX2JhY2tncm91bmRDb2xvcjsKQEAgLTI4
Myw2ICsyODIsOCBAQCBwcml2YXRlOgogICAgIEludFJlY3QgbV9kcmF3YWJsZUNvbnRlbnRSZWN0
OwogCiAgICAgU3RyaW5nIG1fbmFtZTsKKworICAgIGJvb2wgbV9wYWdlU2NhbGVEaXJ0eTsKIH07
CiAKIHZvaWQgc29ydExheWVycyhWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID46Oml0ZXJh
dG9yLCBWZWN0b3I8UmVmUHRyPExheWVyQ2hyb21pdW0+ID46Oml0ZXJhdG9yLCB2b2lkKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAppbmRleCBkZjI1NDM1NmJkYmQ2MWY4
MmQ5MjFlOGU5YzBkY2VlYzlhYTVlOGEyLi4yMjAzMjFiNzRlYWE2NTZlMGFlNDM1ZjJlOTZmOGMz
NTY2YjEyNWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAgLTM2
MSw5ICszNjEsMTQgQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnNJbnRl
cm5hbCgpCiAgICAgbV9kZWZhdWx0UmVuZGVyU3VyZmFjZSA9IHJvb3REcmF3TGF5ZXItPnJlbmRl
clN1cmZhY2UoKTsKICAgICBtX2RlZmF1bHRSZW5kZXJTdXJmYWNlLT5jbGVhckxheWVyTGlzdCgp
OwogCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWFnbmlmeU1hdHJpeChtX3BhZ2VNYWduaWZ5
TWF0cml4KTsKKyAgICAvLyBUT0RPKGFlbGlhcyk6IFRoZXNlIHR3byB0cmFuc2Zvcm1hdGlvbnMg
YXJlIHJlZHVuZGFudDsgdW5pZnkgem9vbUFuaW1hdG9yCisgICAgLy8gYW5kIGltcGwtdGhyZWFk
IHNpZGUgbWF0cml4LgorICAgIG1hZ25pZnlNYXRyaXgubXVsdGlwbHkobV96b29tQW5pbWF0b3JU
cmFuc2Zvcm0pOworCiAgICAgewogICAgICAgICBUUkFDRV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNo
cm9taXVtOjpkcmF3TGF5ZXJzSW50ZXJuYWw6OmNhbGNEcmF3RXRjIiwgdGhpcywgMCk7Ci0gICAg
ICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNp
YmlsaXR5KHJvb3REcmF3TGF5ZXIsIHJvb3REcmF3TGF5ZXIsIG1fem9vbUFuaW1hdG9yVHJhbnNm
b3JtLCBtX3pvb21BbmltYXRvclRyYW5zZm9ybSwgcmVuZGVyU3VyZmFjZUxheWVyTGlzdCwgbV9k
ZWZhdWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xheWVyU29ydGVyLCBtX2NhcGFi
aWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CisgICAgICAgIENDTGF5ZXJUcmVlSG9zdENvbW1vbjo6
Y2FsY3VsYXRlRHJhd1RyYW5zZm9ybXNBbmRWaXNpYmlsaXR5KHJvb3REcmF3TGF5ZXIsIHJvb3RE
cmF3TGF5ZXIsIG1hZ25pZnlNYXRyaXgsIG1hZ25pZnlNYXRyaXgsIHJlbmRlclN1cmZhY2VMYXll
ckxpc3QsIG1fZGVmYXVsdFJlbmRlclN1cmZhY2UtPmxheWVyTGlzdCgpLCAmbV9sYXllclNvcnRl
ciwgbV9jYXBhYmlsaXRpZXMubWF4VGV4dHVyZVNpemUpOwogICAgIH0KIAogICAgIC8vIFRoZSBH
TCB2aWV3cG9ydCBjb3ZlcnMgdGhlIGVudGlyZSB2aXNpYmxlIGFyZWEsIGluY2x1ZGluZyB0aGUg
c2Nyb2xsYmFycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKaW5kZXggNjQ2ZWE2
ZTVjNDQ4YTU4YzYxMjQxMzQyYjBmOWE2ZWFkZGFlZjQ0Ny4uMDI4ZTY2NGQzY2I5ZTVmNWIwNmU2
YmVmOWZjNzdiMGZlYzUxMmRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgK
QEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCB2aWV3cG9ydENoYW5nZWQoKTsK
IAorICAgIHZvaWQgc2V0UGFnZU1hZ25pZnlUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIHBhZ2VNYWduaWZ5TWF0cml4KSB7IG1fcGFnZU1hZ25pZnlNYXRyaXggPSBwYWdlTWFn
bmlmeU1hdHJpeDsgfQorCiAgICAgdm9pZCBkcmF3TGF5ZXJzKCk7CiAKICAgICAvLyB3YWl0cyBm
b3IgcmVuZGVyaW5nIHRvIGZpbmlzaApAQCAtMTk1LDYgKzE5Nyw3IEBAIHByaXZhdGU6CiAKICAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3Byb2plY3Rpb25NYXRyaXg7CiAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggbV93aW5kb3dNYXRyaXg7CisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV9w
YWdlTWFnbmlmeU1hdHJpeDsKIAogICAgIENDUmVuZGVyU3VyZmFjZSogbV9jdXJyZW50UmVuZGVy
U3VyZmFjZTsKICAgICB1bnNpZ25lZCBtX29mZnNjcmVlbkZyYW1lYnVmZmVySWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3Np
dGVkQ29udGVudEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcAppbmRleCAyNTgzOWM4OGE5NzMzOWRl
NjcxMGZjMDZjYmVkMDllYTRiZTI0ZmNmLi5iYzZhMmE0OTc4MjhlYjI5MWU5ODk3ZWIxYmIxMjIy
MDcwYTRhMmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAK
QEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFNjcm9s
bExheWVyKEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgIEFTU0VSVChzY3JvbGxMYXllcigpKTsK
IH0KIAotdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IElu
dFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBJ
bnRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6
c2V0Vmlld3BvcnQoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBJbnRTaXplJiBj
b250ZW50c1NpemUsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgZmxvYXQgcGFnZVNj
YWxlKQogewogICAgIGlmICghc2Nyb2xsTGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtODMs
MTYgKzgzLDE2IEBAIHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydChj
b25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEluCiAKICAgICBtX3ZpZXdwb3J0U2l6
ZSA9IHZpZXdwb3J0U2l6ZTsKICAgICBzY3JvbGxMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihz
Y3JvbGxQb3NpdGlvbik7Ci0gICAgSW50U2l6ZSBtYXhTY3JvbGwgPSBjb250ZW50c1NpemUgLSB2
aWV3cG9ydFNpemU7Ci0gICAgLy8gVGhlIHZpZXdwb3J0IG1heSBiZSBsYXJnZXIgdGhhbiB0aGUg
Y29udGVudHMgaW4gc29tZSBjYXNlcywgc3VjaCBhcwotICAgIC8vIGhhdmluZyBhIHZlcnRpY2Fs
IHNjcm9sbGJhciBidXQgbm8gaG9yaXpvbnRhbCBvdmVyZmxvdy4KLSAgICBtYXhTY3JvbGwuY2xh
bXBOZWdhdGl2ZVRvWmVybygpOwotCi0gICAgc2Nyb2xsTGF5ZXIoKS0+c2V0TWF4U2Nyb2xsUG9z
aXRpb24obWF4U2Nyb2xsKTsKKyAgICAvLyBEdWUgdG8gdGhlIHBvc3NpYmlsaXR5IG9mIHBpbmNo
IHpvb20sIHRoZSBub25jb21wb3NpdGVkIGxheWVyIGlzIGFsd2F5cworICAgIC8vIGFzc3VtZWQg
dG8gYmUgc2Nyb2xsYWJsZS4KKyAgICBzY3JvbGxMYXllcigpLT5zZXRTY3JvbGxhYmxlKHRydWUp
OwogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0U2l6ZShjb250ZW50c1NpemUpOwogCiAgICAgaWYg
KHZpc2libGVSZWN0Q2hhbmdlZCkKICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXROZWVkc0Rp
c3BsYXkoKTsKKworICAgIGlmIChtX2dyYXBoaWNzTGF5ZXItPnBhZ2VTY2FsZUZhY3RvcigpICE9
IHBhZ2VTY2FsZSkKKyAgICAgICAgbV9ncmFwaGljc0xheWVyLT5kZXZpY2VPclBhZ2VTY2FsZUZh
Y3RvckNoYW5nZWQoKTsKIH0KIAogTGF5ZXJDaHJvbWl1bSogTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0OjpzY3JvbGxMYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5o
CmluZGV4IDI4NjQ3NWNiZGNkYzdmNWIxOTEyNDBhZDhlMWExMTc5MDE0YmIyN2EuLjgwYTcwYTlk
YmQzMTZlYWEwYmVkMjQ5YWU5OWFkMzg5OWU4ZjQwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdC5oCkBAIC01NSw4ICs1NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGlu
dmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmKTsKICAgICB2b2lkIHNldEJhY2tncm91bmRDb2xv
cihjb25zdCBDb2xvciYpOwogICAgIHZvaWQgc2V0U2Nyb2xsTGF5ZXIoR3JhcGhpY3NMYXllciop
OwotICAgIHZvaWQgc2V0Vmlld3BvcnQoY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBjb25z
dCBJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbik7
CisgICAgdm9pZCBzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0
IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBm
bG9hdCBwYWdlU2NhbGUpOwogICAgIHZvaWQgcHJvdGVjdFZpc2libGVUaWxlVGV4dHVyZXMoKTsK
KyAgICBHcmFwaGljc0xheWVyKiB0b3BMZXZlbFJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1f
Z3JhcGhpY3NMYXllci5nZXQoKTsgfQogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdChQYXNzT3duUHRyPExheWVyUGFpbnRlckNocm9taXVtPiBjb250ZW50
UGFpbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCmluZGV4IGY1YTVhMWQxYTdkMDg1MThlMzI5
YzY4ZjRjMjhkMjlmNzgyOGYzMGYuLmJkMmFhMGFmYzQzZDc4ZTAxYTYzYzljNDhkMmFlY2EyYTEy
Mjc5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKQEAgLTQyLDYgKzQyLDcgQEAgQ0NMYXll
ckltcGw6OkNDTGF5ZXJJbXBsKGludCBpZCkKICAgICAsIG1fbGF5ZXJJZChpZCkKICAgICAsIG1f
YW5jaG9yUG9pbnQoMC41LCAwLjUpCiAgICAgLCBtX2FuY2hvclBvaW50WigwKQorICAgICwgbV9z
Y3JvbGxhYmxlKGZhbHNlKQogICAgICwgbV9kb3VibGVTaWRlZCh0cnVlKQogICAgICwgbV9sYXll
clByb3BlcnR5Q2hhbmdlZChmYWxzZSkKICAgICAsIG1fbWFza3NUb0JvdW5kcyhmYWxzZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVySW1wbC5oCmluZGV4IDJiODg0MzlkNGZmMDMxYWM1MTE2MWI0ZTA3MWNmY2MxNmNk
MjRmZjIuLmI3MmNhZTEwZDkxNzFjZTY3ZGJkYjc0Y2IxNGI1ZTUxNTM1MGFjNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaApAQCAtMTU4LDcgKzE1OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNj
cm9sbERlbHRhKGNvbnN0IEludFNpemUmKTsKIAogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgSW50
U2l6ZSYgc2Nyb2xsKTsKLSAgICBib29sIHNjcm9sbGFibGUoKSBjb25zdCB7IHJldHVybiAhbWF4
U2Nyb2xsUG9zaXRpb24oKS5pc1plcm8oKTsgfQorCisgICAgYm9vbCBzY3JvbGxhYmxlKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlOyB9CisgICAgdm9pZCBzZXRTY3JvbGxhYmxlKGJvb2wg
c2Nyb2xsYWJsZSkgeyBtX3Njcm9sbGFibGUgPSBzY3JvbGxhYmxlOyB9CiAKICAgICBjb25zdCBJ
bnRSZWN0JiB2aXNpYmxlTGF5ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gbV92aXNpYmxlTGF5ZXJS
ZWN0OyB9CiAgICAgdm9pZCBzZXRWaXNpYmxlTGF5ZXJSZWN0KGNvbnN0IEludFJlY3QmIHZpc2li
bGVMYXllclJlY3QpIHsgbV92aXNpYmxlTGF5ZXJSZWN0ID0gdmlzaWJsZUxheWVyUmVjdDsgfQpA
QCAtMjE2LDcgKzIxOCw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX2JvdW5kczsKICAgICBJ
bnRTaXplIG1fY29udGVudEJvdW5kczsKICAgICBJbnRQb2ludCBtX3Njcm9sbFBvc2l0aW9uOwot
ICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlvbjsKKyAgICBib29sIG1fc2Nyb2xsYWJsZTsK
ICAgICBDb2xvciBtX2JhY2tncm91bmRDb2xvcjsKIAogICAgIC8vIFdoZXRoZXIgdGhlICJiYWNr
IiBvZiB0aGlzIGxheWVyIHNob3VsZCBkcmF3LgpAQCAtMjM5LDYgKzI0MSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2RyYXdzQ29udGVudDsKIAogICAgIEludFNpemUgbV9zY3JvbGxEZWx0YTsK
KyAgICBJbnRTaXplIG1fbWF4U2Nyb2xsUG9zaXRpb247CiAKICAgICAvLyBQcm9wZXJ0aWVzIG93
bmVkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgQ0NMYXllckltcGwuCiAgICAgLy8gRGVidWdnaW5nLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMTI3NjFmMWFkMDlhNWIwYjFkY2Yz
NTY2NGQ4ZjI5NDc3MWJhNGU5Yi4uNGYyYzFmYjYyNjRlZTdjM2E5ZTYxNzUzN2EwMjg5ODJmOGFi
MzNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC01Niw2ICs1Niw5IEBA
IENDTGF5ZXJUcmVlSG9zdDo6Q0NMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9zdENsaWVudCog
Y2xpZW50LCBjb25zdCBDQ1NldHRpbmdzCiAgICAgLCBtX3NldHRpbmdzKHNldHRpbmdzKQogICAg
ICwgbV92aXNpYmxlKHRydWUpCiAgICAgLCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMoZmFsc2Up
CisgICAgLCBtX3BhZ2VTY2FsZSgxKQorICAgICwgbV9taW5QYWdlU2NhbGUoMSkKKyAgICAsIG1f
bWF4UGFnZVNjYWxlKDEpCiB7CiAgICAgQ0NNYWluVGhyZWFkOjppbml0aWFsaXplKCk7CiAgICAg
QVNTRVJUKENDUHJveHk6OmlzTWFpblRocmVhZCgpKTsKQEAgLTEzMCw2ICsxMzMsOCBAQCB2b2lk
IENDTGF5ZXJUcmVlSG9zdDo6ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKENDTGF5ZXJUcmVlSG9z
dEltcGwqIGhvc3RJbXBsKQogICAgIGhvc3RJbXBsLT5zZXRIYXZlV2hlZWxFdmVudEhhbmRsZXJz
KG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyk7CiAgICAgaG9zdEltcGwtPnNldFpvb21BbmltYXRv
clRyYW5zZm9ybShtX3pvb21BbmltYXRvclRyYW5zZm9ybSk7CiAgICAgaG9zdEltcGwtPnNldFZp
ZXdwb3J0KHZpZXdwb3J0U2l6ZSgpKTsKKyAgICBob3N0SW1wbC0+c2V0UGFnZVNjYWxlKHBhZ2VT
Y2FsZSgpKTsKKyAgICBob3N0SW1wbC0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKG1fbWluUGFn
ZVNjYWxlLCBtX21heFBhZ2VTY2FsZSk7CiAKICAgICAvLyBTeW5jaHJvbml6ZSB0cmVlcywgaWYg
b25lIGV4aXN0cyBhdCBhbGwuLi4KICAgICBpZiAocm9vdExheWVyKCkpCkBAIC0yMjQsNiArMjI5
LDI1IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2
aWV3cG9ydFNpemUpCiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAordm9pZCBDQ0xheWVyVHJl
ZUhvc3Q6OnNldFBhZ2VTY2FsZShmbG9hdCBwYWdlU2NhbGUpCit7CisgICAgaWYgKHBhZ2VTY2Fs
ZSA9PSBtX3BhZ2VTY2FsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlU2NhbGUgPSBw
YWdlU2NhbGU7CisgICAgc2V0TmVlZHNDb21taXQoKTsKK30KKwordm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5TY2FsZSwgZmxvYXQgbWF4U2Nh
bGUpCit7CisgICAgaWYgKG1pblNjYWxlID09IG1fbWluUGFnZVNjYWxlICYmIG1heFNjYWxlID09
IG1fbWF4UGFnZVNjYWxlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21pblBhZ2VTY2FsZSA9
IG1pblNjYWxlOworICAgIG1fbWF4UGFnZVNjYWxlID0gbWF4U2NhbGU7CisgICAgc2V0TmVlZHND
b21taXQoKTsKK30KKwogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldFZpc2libGUoYm9vbCB2aXNp
YmxlKQogewogICAgIGlmIChtX3Zpc2libGUgPT0gdmlzaWJsZSkKQEAgLTQzNywxNSArNDYxLDE1
IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpjbGVhclBlbmRpbmdVcGRhdGUoKQogICAgIG1fdXBk
YXRlTGlzdC5jbGVhcigpOwogfQogCi12b2lkIENDTGF5ZXJUcmVlSG9zdDo6YXBwbHlTY3JvbGxE
ZWx0YXMoY29uc3QgQ0NTY3JvbGxVcGRhdGVTZXQmIGluZm8pCit2b2lkIENDTGF5ZXJUcmVlSG9z
dDo6YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBDQ1Njcm9sbEFuZFNjYWxlU2V0JiBpbmZvKQog
ewogICAgIC8vIEZJWE1FOiBwdXNoaW5nIHNjcm9sbCBvZmZzZXRzIHRvIG5vbi1yb290IGxheWVy
cyBub3QgaW1wbGVtZW50ZWQKLSAgICBpZiAoIWluZm8uc2l6ZSgpKQorICAgIGlmICghaW5mby5z
Y3JvbGxzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGluZm8uc2l6ZSgp
ID09IDEpOwotICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBpbmZvWzBdLnNjcm9sbERlbHRhOwot
ICAgIG1fY2xpZW50LT5hcHBseVNjcm9sbERlbHRhKHNjcm9sbERlbHRhKTsKKyAgICBBU1NFUlQo
aW5mby5zY3JvbGxzLnNpemUoKSA9PSAxKTsKKyAgICBJbnRTaXplIHNjcm9sbERlbHRhID0gaW5m
by5zY3JvbGxzWzBdLnNjcm9sbERlbHRhOworICAgIG1fY2xpZW50LT5hcHBseVNjcm9sbEFuZFNj
YWxlKHNjcm9sbERlbHRhLCBpbmZvLnBhZ2VTY2FsZSk7CiB9CiAKIHZvaWQgQ0NMYXllclRyZWVI
b3N0OjpzdGFydFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuaAppbmRleCA3NTA3MzBkY2ViYTczNjQ4M2VjY2QyODA4ODQxMDg3
MDczMmIxOGNiLi43NTE5NTQ1ZTE3NTA0YjZhMjRjYzFhNzQyODk2YTY4MWE3NTI3OTRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaApAQCAtNTQsNyArNTQsNyBAQCBjbGFzcyBUZXh0dXJl
TWFuYWdlcjsKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdENsaWVudCB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGFuaW1hdGVBbmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3JvbGxE
ZWx0YSwgZmxvYXQgcGFnZVNjYWxlKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBjcmVhdGVMYXllclRyZWVIb3N0Q29udGV4dDNEKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4dChib29sIHN1Y2Nlc3MpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKGludCBmcmFtZU51bWJlcikg
PSAwOwpAQCAtMTU4LDYgKzE1OCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWaWV3cG9ydChj
b25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUpOwogCiAgICAgY29uc3QgSW50U2l6ZSYgdmlld3Bv
cnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydFNpemU7IH0KKworICAgIHZvaWQgc2V0
UGFnZVNjYWxlKGZsb2F0KTsKKyAgICBmbG9hdCBwYWdlU2NhbGUoKSBjb25zdCB7IHJldHVybiBt
X3BhZ2VTY2FsZTsgfQorCisgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQg
bWluU2NhbGUsIGZsb2F0IG1heFNjYWxlKTsKKwogICAgIFRleHR1cmVNYW5hZ2VyKiBjb250ZW50
c1RleHR1cmVNYW5hZ2VyKCkgY29uc3Q7CiAKICAgICBib29sIHZpc2libGUoKSBjb25zdCB7IHJl
dHVybiBtX3Zpc2libGU7IH0KQEAgLTE2OCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1
cGRhdGVMYXllcnMoKTsKIAogICAgIHZvaWQgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcyhHcmFw
aGljc0NvbnRleHQzRCosIENDVGV4dHVyZVVwZGF0ZXImKTsKLSAgICB2b2lkIGFwcGx5U2Nyb2xs
RGVsdGFzKGNvbnN0IENDU2Nyb2xsVXBkYXRlU2V0Jik7CisgICAgdm9pZCBhcHBseVNjcm9sbEFu
ZFNjYWxlKGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmKTsKICAgICB2b2lkIHN0YXJ0UmF0ZUxp
bWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqKTsKICAgICB2b2lkIHN0b3BSYXRlTGltaXRlcihHcmFw
aGljc0NvbnRleHQzRCopOwogCkBAIC0yMDksNiArMjE1LDkgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVyczsKICAgICB0eXBlZGVmIEhhc2hNYXA8R3JhcGhpY3ND
b250ZXh0M0QqLCBSZWZQdHI8UmF0ZUxpbWl0ZXI+ID4gUmF0ZUxpbWl0ZXJNYXA7CiAgICAgUmF0
ZUxpbWl0ZXJNYXAgbV9yYXRlTGltaXRlcnM7CisKKyAgICBmbG9hdCBtX3BhZ2VTY2FsZTsKKyAg
ICBmbG9hdCBtX21pblBhZ2VTY2FsZSwgbV9tYXhQYWdlU2NhbGU7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RDb21tb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oCmluZGV4IDY5ZDU4NGQ0ZDBlYWJhZmFjZTdk
MDUxYzM4NjUyYWVhOGI0YjE4ODguLjUyOWIzYjMyMGNmNzI0NGUyZTQxOThlZjE5N2U1YzQzZGM1
YjY5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oCkBAIC01MSw3
ICs1MSwxMCBAQCBwdWJsaWM6CiAgICAgfTsKIH07CiAKLXR5cGVkZWYgVmVjdG9yPENDTGF5ZXJU
cmVlSG9zdENvbW1vbjo6U2Nyb2xsVXBkYXRlSW5mbz4gQ0NTY3JvbGxVcGRhdGVTZXQ7CitzdHJ1
Y3QgQ0NTY3JvbGxBbmRTY2FsZVNldCB7CisgICAgVmVjdG9yPENDTGF5ZXJUcmVlSG9zdENvbW1v
bjo6U2Nyb2xsVXBkYXRlSW5mbz4gc2Nyb2xsczsKKyAgICBmbG9hdCBwYWdlU2NhbGU7Cit9Owog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBMYXllclR5cGU+CiBJbnRSZWN0IENDTGF5ZXJUcmVlSG9zdENv
bW1vbjo6Y2FsY3VsYXRlVmlzaWJsZUxheWVyUmVjdChMYXllclR5cGUqIGxheWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRleCBmZTA5MzI2ZTRiMjk5MDU2ZjJk
NzViM2ViMWU2YWUzMjM4Y2M0NmU2Li44YWNiNTRiYmM0NTZjZWEwYzBjNDE2YmVlYzI0ZTAyZmI5
NzA2NGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcApAQCAtNTAs
NiArNTAsMTEgQEAgQ0NMYXllclRyZWVIb3N0SW1wbDo6Q0NMYXllclRyZWVIb3N0SW1wbChjb25z
dCBDQ1NldHRpbmdzJiBzZXR0aW5ncywgQ0NMYXllclRyZWUKICAgICAsIG1fc2V0dGluZ3Moc2V0
dGluZ3MpCiAgICAgLCBtX3Zpc2libGUodHJ1ZSkKICAgICAsIG1faGF2ZVdoZWVsRXZlbnRIYW5k
bGVycyhmYWxzZSkKKyAgICAsIG1fcGFnZVNjYWxlKDEpCisgICAgLCBtX3NjYWxlRGVsdGEoMSkK
KyAgICAsIG1fbWluUGFnZVNjYWxlKDApCisgICAgLCBtX21heFBhZ2VTY2FsZSgwKQorICAgICwg
bV9waW5jaEdlc3R1cmVBY3RpdmUoZmFsc2UpCiB7CiAgICAgQVNTRVJUKENDUHJveHk6OmlzSW1w
bFRocmVhZCgpKTsKIH0KQEAgLTY4LDYgKzczLDkgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBs
OjpiZWdpbkNvbW1pdCgpCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6Y29tbWl0Q29tcGxl
dGUoKQogeworICAgIC8vIFJlY29tcHV0ZSBtYXggc2Nyb2xsIHBvc2l0aW9uOyBtdXN0IGJlIGFm
dGVyIGxheWVyIGNvbnRlbnQgYm91bmRzIGFyZQorICAgIC8vIHVwZGF0ZWQuCisgICAgdXBkYXRl
TWF4U2Nyb2xsUG9zaXRpb24oKTsKIH0KIAogR3JhcGhpY3NDb250ZXh0M0QqIENDTGF5ZXJUcmVl
SG9zdEltcGw6OmNvbnRleHQoKQpAQCAtMTI4LDcgKzEzNiw3IEBAIHN0YXRpYyBDQ0xheWVySW1w
bCogZmluZFNjcm9sbExheWVyKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBpZiAoIWxheWVyKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIGlmICghbGF5ZXItPm1heFNjcm9sbFBvc2l0aW9uKCku
aXNaZXJvKCkpCisgICAgaWYgKGxheWVyLT5zY3JvbGxhYmxlKCkpCiAgICAgICAgIHJldHVybiBs
YXllcjsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXItPmNoaWxkcmVuKCkuc2l6
ZSgpOyArK2kpIHsKQEAgLTE4MCwxMCArMTg4LDgyIEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0SW1w
bDo6aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4K
IAogdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2
aWV3cG9ydFNpemUpCiB7Ci0gICAgYm9vbCBjaGFuZ2VkID0gdmlld3BvcnRTaXplICE9IG1fdmll
d3BvcnRTaXplOworICAgIGlmICh2aWV3cG9ydFNpemUgPT0gbV92aWV3cG9ydFNpemUpCisgICAg
ICAgIHJldHVybjsKKwogICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXplOwotICAgIGlm
IChjaGFuZ2VkKQotICAgICAgICBtX2xheWVyUmVuZGVyZXItPnZpZXdwb3J0Q2hhbmdlZCgpOwor
ICAgIHVwZGF0ZU1heFNjcm9sbFBvc2l0aW9uKCk7CisgICAgbV9sYXllclJlbmRlcmVyLT52aWV3
cG9ydENoYW5nZWQoKTsKK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRQYWdlU2Nh
bGUoZmxvYXQgcGFnZVNjYWxlKQoreworICAgIGlmICghcGFnZVNjYWxlIHx8IHBhZ2VTY2FsZSA9
PSBtX3BhZ2VTY2FsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gTWFpbnRhaW4gY29uc3Rh
bnQgdGhlIHByb2R1Y3Qgb2YgbV9wYWdlU2NhbGUgKiBtX3NjYWxlRGVsdGEuCisgICAgZmxvYXQg
c2NhbGVDaGFuZ2UgPSBwYWdlU2NhbGUgLyBtX3BhZ2VTY2FsZTsKKyAgICBmbG9hdCBvbGRNYWdu
aWZ5U2NhbGUgPSBtX3BhZ2VTY2FsZSAqIG1fc2NhbGVEZWx0YTsKKyAgICBtX3BhZ2VTY2FsZSA9
IHBhZ2VTY2FsZTsKKworICAgIHNldFNjYWxlRGVsdGEob2xkTWFnbmlmeVNjYWxlIC8gcGFnZVNj
YWxlKTsKKworICAgIC8vIFdlIGFsc28gbmVlZCB0byBjb252ZXJ0IGltcGwtc2lkZSBzY3JvbGwg
ZGVsdGFzIHRvIHBhZ2VTY2FsZSBzcGFjZS4KKyAgICBpZiAobV9zY3JvbGxMYXllckltcGwgJiYg
bV9zY3JvbGxMYXllckltcGwtPnNjcm9sbGFibGUoKSkgeworICAgICAgICBJbnRTaXplIHNjcm9s
bERlbHRhID0gbV9zY3JvbGxMYXllckltcGwtPnNjcm9sbERlbHRhKCk7CisgICAgICAgIHNjcm9s
bERlbHRhLnNjYWxlKHNjYWxlQ2hhbmdlKTsKKyAgICAgICAgbV9zY3JvbGxMYXllckltcGwtPnNl
dFNjcm9sbERlbHRhKHNjcm9sbERlbHRhKTsKKyAgICB9Cit9CisKK3ZvaWQgQ0NMYXllclRyZWVI
b3N0SW1wbDo6c2V0U2NhbGVEZWx0YShmbG9hdCBkZWx0YSkKK3sKKyAgICAvLyBDbGFtcCB0byB0
aGUgY3VycmVudCBtaW4vbWF4IGxpbWl0cy4KKyAgICBmbG9hdCBmaW5hbE1hZ25pZnlTY2FsZSA9
IG1fcGFnZVNjYWxlICogZGVsdGE7CisgICAgaWYgKG1fbWluUGFnZVNjYWxlICYmIGZpbmFsTWFn
bmlmeVNjYWxlIDwgbV9taW5QYWdlU2NhbGUpCisgICAgICAgIGRlbHRhID0gbV9taW5QYWdlU2Nh
bGUgLyBtX3BhZ2VTY2FsZTsKKyAgICBlbHNlIGlmIChtX21heFBhZ2VTY2FsZSAmJiBmaW5hbE1h
Z25pZnlTY2FsZSA+IG1fbWF4UGFnZVNjYWxlKQorICAgICAgICBkZWx0YSA9IG1fbWF4UGFnZVNj
YWxlIC8gbV9wYWdlU2NhbGU7CisKKyAgICBpZiAoZGVsdGEgPT0gbV9zY2FsZURlbHRhKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3NjYWxlRGVsdGEgPSBkZWx0YTsKKworICAgIHVwZGF0ZU1h
eFNjcm9sbFBvc2l0aW9uKCk7CisKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBkZWx0YU1hdHJp
eDsKKyAgICBkZWx0YU1hdHJpeC5zY2FsZShtX3NjYWxlRGVsdGEpOworICAgIG1fbGF5ZXJSZW5k
ZXJlci0+c2V0UGFnZU1hZ25pZnlUcmFuc2Zvcm0oZGVsdGFNYXRyaXgpOworfQorCit2b2lkIEND
TGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdl
U2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSkKK3sKKyAgICBtX21pblBhZ2VTY2FsZSA9IG1pblBh
Z2VTY2FsZTsKKyAgICBtX21heFBhZ2VTY2FsZSA9IG1heFBhZ2VTY2FsZTsKKworICAgIC8vIFRo
aXMgd2lsbCBjbGFtcCBtX3NjYWxlRGVsdGEgYW5kIGFwcGx5IHNpZGUgZWZmZWN0cyBpZiBjbGFt
cGVkLgorICAgIHNldFNjYWxlRGVsdGEobV9zY2FsZURlbHRhKTsKK30KKwordm9pZCBDQ0xheWVy
VHJlZUhvc3RJbXBsOjp1cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpCit7CisgICAgaWYgKCFtX3Nj
cm9sbExheWVySW1wbCB8fCAhbV9zY3JvbGxMYXllckltcGwtPmNoaWxkcmVuKCkuc2l6ZSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBGbG9hdFNpemUgdmlld0JvdW5kcyA9IG1fdmlld3BvcnRT
aXplOworICAgIHZpZXdCb3VuZHMuc2NhbGUoMSAvIG1fc2NhbGVEZWx0YSk7CisKKyAgICAvLyBU
T0RPKGFlbGlhcyk6IEhhcmRjb2RpbmcgdGhlIGZpcnN0IGNoaWxkIGhlcmUgaXMgd2VpcmQuIFRo
aW5rIG9mCisgICAgLy8gYSBjbGVhbmVyIHdheSB0byBnZXQgdGhlIGNvbnRlbnRCb3VuZHMgb24g
dGhlIEltcGwgc2lkZS4KKyAgICBJbnRTaXplIG1heFNjcm9sbCA9IG1fc2Nyb2xsTGF5ZXJJbXBs
LT5jaGlsZHJlbigpWzBdLT5jb250ZW50Qm91bmRzKCkgLSBleHBhbmRlZEludFNpemUodmlld0Jv
dW5kcyk7CisgICAgLy8gVGhlIHZpZXdwb3J0IG1heSBiZSBsYXJnZXIgdGhhbiB0aGUgY29udGVu
dHMgaW4gc29tZSBjYXNlcywgc3VjaCBhcworICAgIC8vIGhhdmluZyBhIHZlcnRpY2FsIHNjcm9s
bGJhciBidXQgbm8gaG9yaXpvbnRhbCBvdmVyZmxvdy4KKyAgICBtYXhTY3JvbGwuY2xhbXBOZWdh
dGl2ZVRvWmVybygpOworCisgICAgbV9zY3JvbGxMYXllckltcGwtPnNldE1heFNjcm9sbFBvc2l0
aW9uKG1heFNjcm9sbCk7CisKKyAgICAvLyBUT0RPKGFlbGlhcyk6IEFsc28gdXBkYXRlIHN1Ymxh
eWVycy4KIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRab29tQW5pbWF0b3JUcmFu
c2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHpvb20pCkBAIC0yMDcsMjAgKzI4Nyw2
MSBAQCBib29sIENDTGF5ZXJUcmVlSG9zdEltcGw6OmhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKQog
ICAgIHJldHVybiBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnM7CiB9CiAKLVBhc3NPd25QdHI8Q0NT
Y3JvbGxVcGRhdGVTZXQ+IENDTGF5ZXJUcmVlSG9zdEltcGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMo
KQordm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVCZWdpbigpCiB7Ci0gICAg
T3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvID0gYWRvcHRQdHIobmV3IENDU2Ny
b2xsVXBkYXRlU2V0KCkpOwotICAgIC8vIEZJWE1FOiB0cmFjayBzY3JvbGxzIGZyb20gbGF5ZXJz
IG90aGVyIHRoYW4gdGhlIHJvb3QKLSAgICBpZiAobV9zY3JvbGxMYXllckltcGwgJiYgIW1fc2Ny
b2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpLmlzWmVybygpKSB7Ci0gICAgICAgIENDTGF5ZXJU
cmVlSG9zdENvbW1vbjo6U2Nyb2xsVXBkYXRlSW5mbyBpbmZvOwotICAgICAgICBpbmZvLmxheWVy
SWQgPSBtX3Njcm9sbExheWVySW1wbC0+aWQoKTsKLSAgICAgICAgaW5mby5zY3JvbGxEZWx0YSA9
IG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpOwotICAgICAgICBzY3JvbGxJbmZvLT5h
cHBlbmQoaW5mbyk7Ci0KLSAgICAgICAgbV9zY3JvbGxMYXllckltcGwtPnNldFNjcm9sbFBvc2l0
aW9uKG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxQb3NpdGlvbigpICsgbV9zY3JvbGxMYXllcklt
cGwtPnNjcm9sbERlbHRhKCkpOwotICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0UG9zaXRp
b24obV9zY3JvbGxMYXllckltcGwtPnBvc2l0aW9uKCkgLSBtX3Njcm9sbExheWVySW1wbC0+c2Ny
b2xsRGVsdGEoKSk7Ci0gICAgICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRTY3JvbGxEZWx0YShJ
bnRTaXplKCkpOworICAgIG1fcGluY2hHZXN0dXJlQWN0aXZlID0gdHJ1ZTsKK30KKwordm9pZCBD
Q0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRh
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50
UG9pbnQmIGFuY2hvcikKK3sKKyAgICBUUkFDRV9FVkVOVCgiQ0NMYXllclRyZWVIb3N0SW1wbDo6
cGluY2hHZXN0dXJlVXBkYXRlIiwgdGhpcywgMCk7CisKKyAgICBpZiAobWFnbmlmeURlbHRhID09
IDEuMCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghbV9zY3JvbGxMYXllckltcGwpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIEtlZXAgdGhlIGNlbnRlci1vZi1waW5jaCBhbmNob3Igc3Bl
Y2lmaWVkIGJ5ICh4LCB5KSBpbiBhIHN0YWJsZQorICAgIC8vIHBvc2l0aW9uIG92ZXIgdGhlIGNv
dXJzZSBvZiB0aGUgbWFnbmlmeS4KKyAgICBGbG9hdFBvaW50IHByZXZTY2FsZUFuY2hvcihhbmNo
b3IueCgpIC8gbV9zY2FsZURlbHRhLCBhbmNob3IueSgpIC8gbV9zY2FsZURlbHRhKTsKKyAgICBz
ZXRTY2FsZURlbHRhKG1fc2NhbGVEZWx0YSAqIG1hZ25pZnlEZWx0YSk7CisgICAgRmxvYXRQb2lu
dCBuZXdTY2FsZUFuY2hvcihhbmNob3IueCgpIC8gbV9zY2FsZURlbHRhLCBhbmNob3IueSgpIC8g
bV9zY2FsZURlbHRhKTsKKworICAgIEZsb2F0U2l6ZSBtb3ZlID0gcHJldlNjYWxlQW5jaG9yIC0g
bmV3U2NhbGVBbmNob3I7CisKKyAgICBzY3JvbGxSb290TGF5ZXIocm91bmRlZEludFNpemUobW92
ZSkpOworCisgICAgbV9jbGllbnQtPnNldE5lZWRzUmVkcmF3T25JbXBsVGhyZWFkKCk7Cit9CisK
K3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6cGluY2hHZXN0dXJlRW5kKCkKK3sKKyAgICBtX3Bp
bmNoR2VzdHVyZUFjdGl2ZSA9IGZhbHNlOworCisgICAgbV9jbGllbnQtPnNldE5lZWRzQ29tbWl0
T25JbXBsVGhyZWFkKCk7Cit9CisKK1Bhc3NPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gQ0NM
YXllclRyZWVIb3N0SW1wbDo6cHJvY2Vzc1Njcm9sbERlbHRhcygpCit7CisgICAgT3duUHRyPEND
U2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8gPSBhZG9wdFB0cihuZXcgQ0NTY3JvbGxBbmRT
Y2FsZVNldCgpKTsKKyAgICBib29sIGRpZE1vdmUgPSBtX3Njcm9sbExheWVySW1wbCAmJiAoIW1f
c2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpLmlzWmVybygpIHx8IG1fc2NhbGVEZWx0YSAh
PSAxLjBmKTsKKyAgICBpZiAoIWRpZE1vdmUgfHwgbV9waW5jaEdlc3R1cmVBY3RpdmUpIHsKKyAg
ICAgICAgc2Nyb2xsSW5mby0+cGFnZVNjYWxlID0gbV9wYWdlU2NhbGU7CisgICAgICAgIHJldHVy
biBzY3JvbGxJbmZvLnJlbGVhc2UoKTsKICAgICB9CisKKyAgICAvLyBGSVhNRTogdHJhY2sgc2Ny
b2xscyBmcm9tIGxheWVycyBvdGhlciB0aGFuIHRoZSByb290CisgICAgc2Nyb2xsSW5mby0+cGFn
ZVNjYWxlID0gbV9wYWdlU2NhbGUgKiBtX3NjYWxlRGVsdGE7CisgICAgQ0NMYXllclRyZWVIb3N0
Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZvIHNjcm9sbDsKKyAgICBzY3JvbGwubGF5ZXJJZCA9IG1f
c2Nyb2xsTGF5ZXJJbXBsLT5pZCgpOworICAgIHNjcm9sbC5zY3JvbGxEZWx0YSA9IG1fc2Nyb2xs
TGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpOworICAgIHNjcm9sbEluZm8tPnNjcm9sbHMuYXBwZW5k
KHNjcm9sbCk7CisKKyAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2Nyb2xsUG9zaXRpb24obV9z
Y3JvbGxMYXllckltcGwtPnNjcm9sbFBvc2l0aW9uKCkgKyBtX3Njcm9sbExheWVySW1wbC0+c2Ny
b2xsRGVsdGEoKSk7CisgICAgbV9zY3JvbGxMYXllckltcGwtPnNldFBvc2l0aW9uKG1fc2Nyb2xs
TGF5ZXJJbXBsLT5wb3NpdGlvbigpIC0gbV9zY3JvbGxMYXllckltcGwtPnNjcm9sbERlbHRhKCkp
OworICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRTY3JvbGxEZWx0YShJbnRTaXplKCkpOworCiAg
ICAgcmV0dXJuIHNjcm9sbEluZm8ucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBs
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RJbXBsLmgKaW5kZXggYjUzZTIwMDE5MThjNjU2NjRjMmNjYTYwNTVlYTdlNWRlMGI0
YjYyMi4uYzg3Y2MxY2M4NDY3MDdjN2Q3NzAzYTdjZTg5N2IwNGE3MTM0MmMxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaApAQCAtOTcsOSArOTcsMTcgQEAgcHVibGljOgog
ICAgIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3Bv
cnRTaXplOyB9CiAgICAgdm9pZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmKTsKIAorICAgIHZvaWQgc2V0UGFnZVNjYWxlKGZsb2F0KTsKKyAgICBm
bG9hdCBwYWdlU2NhbGUoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VTY2FsZTsgfQorICAgIHZvaWQg
c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VTY2FsZSwgZmxvYXQgbWF4UGFn
ZVNjYWxlKTsKKwogICAgIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgeyByZXR1
cm4gbV9zZXR0aW5nczsgfQogCi0gICAgUGFzc093blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gcHJv
Y2Vzc1Njcm9sbERlbHRhcygpOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVCZWdpbigp
OworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQsIGNvbnN0IEludFBv
aW50Jik7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUVuZCgpOworICAgIFBhc3NPd25Q
dHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gcHJvY2Vzc1Njcm9sbERlbHRhcygpOworICAgIHZvaWQg
dXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24oKTsKIAogcHJvdGVjdGVkOgogICAgIENDTGF5ZXJUcmVl
SG9zdEltcGwoY29uc3QgQ0NTZXR0aW5ncyYsIENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQqKTsK
QEAgLTEwOCw2ICsxMTYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgaW50IG1fZnJhbWVOdW1iZXI7CiAK
IHByaXZhdGU6CisgICAgdm9pZCBzZXRTY2FsZURlbHRhKGZsb2F0KTsKKwogICAgIE93blB0cjxM
YXllclJlbmRlcmVyQ2hyb21pdW0+IG1fbGF5ZXJSZW5kZXJlcjsKICAgICBSZWZQdHI8Q0NMYXll
ckltcGw+IG1fcm9vdExheWVySW1wbDsKICAgICBSZWZQdHI8Q0NMYXllckltcGw+IG1fc2Nyb2xs
TGF5ZXJJbXBsOwpAQCAtMTE1LDYgKzEyNSwxMiBAQCBwcml2YXRlOgogICAgIEludFNpemUgbV92
aWV3cG9ydFNpemU7CiAgICAgYm9vbCBtX3Zpc2libGU7CiAgICAgYm9vbCBtX2hhdmVXaGVlbEV2
ZW50SGFuZGxlcnM7CisKKyAgICBmbG9hdCBtX3BhZ2VTY2FsZTsKKyAgICBmbG9hdCBtX3NjYWxl
RGVsdGE7CisgICAgZmxvYXQgbV9taW5QYWdlU2NhbGUsIG1fbWF4UGFnZVNjYWxlOworCisgICAg
Ym9vbCBtX3BpbmNoR2VzdHVyZUFjdGl2ZTsKIH07CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Njcm9sbENvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xs
Q29udHJvbGxlci5oCmluZGV4IDkyYjk1ZDdkY2FjZDc0YWRmM2RiZTU2ZmNmMmEwZGUwODk4YmNj
NDIuLmM4NDFkMjQzYTgwNWEyZDBkZmMyNDA0M2U3OTY4MmVjMDBmOGVjZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDU2Nyb2xsQ29udHJvbGxlci5oCkBAIC0zNiw2ICszNiw5IEBAIGNsYXNzIENDU2Nyb2xs
Q29udHJvbGxlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJvb3RMYXllcihj
b25zdCBJbnRTaXplJikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXZlV2hlZWxFdmVudEhhbmRs
ZXJzKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVCZWdpbigpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGluY2hHZXN0dXJlVXBkYXRlKGZsb2F0IG1hZ25pZnlEZWx0YSwgY29u
c3QgSW50UG9pbnQmIGFuY2hvcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVF
bmQoKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBDQ1Njcm9sbENvbnRyb2xsZXIoKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2luZ2xlVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKaW5kZXggZWIxZGNkNGRkYjdlODhm
Yjk5MzZjOWNkZmQ2OGI0ZDFmMzFkNzAyZi4uMTFiMjY0OGZiNWFjMWI2MjBhMGQ1ZDJjMjgyNjM3
ZDRmYzRmN2EzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKQEAg
LTE2Niw3ICsxNjYsNyBAQCB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OmRvQ29tbWl0KCkKICNp
ZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgICAgIC8vIEluIHRoZSBzaW5nbGUtdGhyZWFkZWQgY2Fz
ZSwgdGhlIHNjcm9sbCBkZWx0YXMgc2hvdWxkIG5ldmVyIGJlCiAgICAgICAgIC8vIHRvdWNoZWQg
b24gdGhlIGltcGwgbGF5ZXIgdHJlZS4KLSAgICAgICAgT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0
PiBzY3JvbGxJbmZvID0gbV9sYXllclRyZWVIb3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygp
OworICAgICAgICBPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbyA9IG1fbGF5
ZXJUcmVlSG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKICAgICAgICAgQVNTRVJUKCFz
Y3JvbGxJbmZvLT5zaXplKCkpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmNwcAppbmRleCBkZTE5NWVmMjI2ZTAyZDE2OGIxZjQ0ZDE0NjRhNzQyZWEyNDdiNzk3Li4zYzEz
NzczYjY1YzA3NjQyODk3NWQxNmQ5ZDg3NGZhOTAwZmYwOGI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVh
ZFByb3h5LmNwcApAQCAtMzQxLDExICszNDEsMTEgQEAgUGFzc093blB0cjxDQ01haW5UaHJlYWQ6
OlRhc2s+IENDVGhyZWFkUHJveHk6OmNyZWF0ZUJlZ2luRnJhbWVBbmRDb21taXRUYXNrT25JbXAK
ICAgICAvLyBudW1iZXJzIGJlbG93IHRoZSBsYXN0IGV4ZWN1dGVkIG9uZS4KICAgICBpbnQgdGhp
c1Rhc2tTZXF1ZW5jZU51bWJlciA9IG1fbnVtQmVnaW5GcmFtZUFuZENvbW1pdHNJc3N1ZWRPbklt
cGxUaHJlYWQ7CiAgICAgbV9udW1CZWdpbkZyYW1lQW5kQ29tbWl0c0lzc3VlZE9uSW1wbFRocmVh
ZCsrOwotICAgIE93blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5mbyA9IG1fbGF5ZXJU
cmVlSG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKKyAgICBPd25QdHI8Q0NTY3JvbGxB
bmRTY2FsZVNldD4gc2Nyb2xsSW5mbyA9IG1fbGF5ZXJUcmVlSG9zdEltcGwtPnByb2Nlc3NTY3Jv
bGxEZWx0YXMoKTsKICAgICByZXR1cm4gY3JlYXRlTWFpblRocmVhZFRhc2sodGhpcywgJkNDVGhy
ZWFkUHJveHk6OmJlZ2luRnJhbWVBbmRDb21taXQsIHRoaXNUYXNrU2VxdWVuY2VOdW1iZXIsIGZy
YW1lQmVnaW5UaW1lLCBzY3JvbGxJbmZvLnJlbGVhc2UoKSk7CiB9CiAKLXZvaWQgQ0NUaHJlYWRQ
cm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdChpbnQgc2VxdWVuY2VOdW1iZXIsIGRvdWJsZSBmcmFt
ZUJlZ2luVGltZSwgUGFzc093blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5mbykKK3Zv
aWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdChpbnQgc2VxdWVuY2VOdW1iZXIs
IGRvdWJsZSBmcmFtZUJlZ2luVGltZSwgUGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBz
Y3JvbGxJbmZvKQogewogICAgIFRSQUNFX0VWRU5UKCJDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1l
QW5kQ29tbWl0IiwgdGhpcywgMCk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTM1
Myw3ICszNTMsNyBAQCB2b2lkIENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVBbmRDb21taXQoaW50
IHNlcXVlbmNlTnVtYmVyLCBkb3VibGUgZnJhbWVCZWdpblRpbQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBTY3JvbGwgZGVsdGFzIG5lZWQgdG8gYmUgYXBwbGllZCBldmVuIGlmIHRoZSBjb21t
aXQgd2lsbCBiZSBkcm9wcGVkLgotICAgIG1fbGF5ZXJUcmVlSG9zdC0+YXBwbHlTY3JvbGxEZWx0
YXMoKnNjcm9sbEluZm8uZ2V0KCkpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+YXBwbHlTY3JvbGxB
bmRTY2FsZSgqc2Nyb2xsSW5mby5nZXQoKSk7CiAKICAgICAvLyBEcm9wIGJlZ2luRnJhbWVBbmRD
b21taXQgY2FsbHMgdGhhdCBvY2N1ciBvdXQgb2Ygc2VxdWVuY2UuIFNlZSBjcmVhdGVCZWdpbkZy
YW1lQW5kQ29tbWl0VGFza09uSW1wbFRocmVhZCBmb3IKICAgICAvLyBhbiBleHBsYW5hdGlvbiBv
ZiBob3cgb3V0LW9mLXNlcXVlbmNlIGJlZ2luRnJhbWVBbmRDb21taXQgdGFza3MgY2FuIG9jY3Vy
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCmluZGV4IDE2NzZmODM3MGJiZWMwZjQ2ZDkwMWQ5NDNl
NzNhNWY5NzE4OWYwZTMuLmRmZjA1YmJkZjZhOTMzZmUxNjhiNWZmZGRmZmNmN2JkOWQ4MDdmMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKQEAgLTgxLDcgKzgxLDcgQEAgcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBDQ1RocmVhZFByb3h5KENDTGF5ZXJUcmVlSG9zdCopOwogCiAgICAgLy8gQ2Fs
bGVkIG9uIENDTWFpblRocmVhZAotICAgIHZvaWQgYmVnaW5GcmFtZUFuZENvbW1pdChpbnQgc2Vx
dWVuY2VOdW1iZXIsIGRvdWJsZSBmcmFtZUJlZ2luVGltZSwgUGFzc093blB0cjxDQ1Njcm9sbFVw
ZGF0ZVNldD4pOworICAgIHZvaWQgYmVnaW5GcmFtZUFuZENvbW1pdChpbnQgc2VxdWVuY2VOdW1i
ZXIsIGRvdWJsZSBmcmFtZUJlZ2luVGltZSwgUGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0
Pik7CiAgICAgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoaW50IGZyYW1lTnVtYmVyKTsKIAog
ICAgIC8vIENhbGxlZCBvbiBDQ1RocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCmluZGV4IDA5MTI2OWM3YWI1NDkw
OGZiZjI4NTgzM2I1ZTE4NjBjYTNkMmIzM2YuLjZmNTAwOTYwNzZjZGY2NjJiNzI0YTAxODM0NTM3
NGM0YjBkNmFkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkxheWVyVHJlZVZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmgKQEAgLTM3LDkgKzM3LDExIEBAIHB1YmxpYzoKICAg
ICAvLyBzbyB0aGF0IGxheWVycyBjYW4gYmUgdXBkYXRlZCBhdCB0aGUgZ2l2ZW4gZnJhbWUgdGlt
ZS4KICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRp
bWUpID0gMDsKIAotICAgIC8vIEFwcGxpZXMgYSBzY3JvbGwgZGVsdGEgdG8gdGhlIHJvb3QgbGF5
ZXIuIFRoaXMgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cwotICAgIC8vIHNlbnQgdG8gdGhlIGNvbXBv
c2l0b3IgdGhyZWFkIHRocm91Z2ggdGhlIFdlYkNvbXBvc2l0b3IgaW50ZXJmYWNlLgotICAgIHZp
cnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IFdlYlNpemUmKSA9IDA7CisgICAgLy8g
QXBwbGllcyBhIHNjcm9sbCBkZWx0YSB0byB0aGUgcm9vdCBsYXllciwgd2hpY2ggaXMgYnVuZGxl
ZCB3aXRoIGEgcGFnZQorICAgIC8vIHNjYWxlIGZhY3RvciB0aGF0IG1heSBhcHBseSBhIENTUyB0
cmFuc2Zvcm0gb24gdGhlIHdob2xlIGRvY3VtZW50ICh1c2VkCisgICAgLy8gZm9yIG1vYmlsZS1k
ZXZpY2UgcGluY2ggem9vbWluZykuIFRoaXMgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBzZW50IHRv
IHRoZQorICAgIC8vIGNvbXBvc2l0b3IgdGhyZWFkIHRocm91Z2ggdGhlIFdlYkNvbXBvc2l0b3Ig
aW50ZXJmYWNlLgorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdl
YlNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3RvcikgPSAwOwogCiAgICAgLy8gQ3Jl
YXRlcyBhIDNEIGNvbnRleHQgc3VpdGFibGUgZm9yIHRoZSBjb21wb3NpdGluZy4gVGhpcyBtYXkg
YmUgY2FsbGVkCiAgICAgLy8gbW9yZSB0aGFuIG9uY2UgaWYgdGhlIGNvbnRleHQgZ2V0cyBsb3N0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IGM3N2Y0NTJkMGY2
YzJkMGNkZjQ5NGQ0NTM4ZTg1MDhjNzA2NDlkYzQuLjQyOGI4Mjc0N2FjMWQyZjVjMDY4M2Y1YWEx
OWYyMTkxNGU1YjlkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgK
QEAgLTIwNyw2ICsyMDcsMTEgQEAgcHVibGljOgogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGRv
dWJsZSB6b29tTGV2ZWxUb1pvb21GYWN0b3IoZG91YmxlIHpvb21MZXZlbCk7CiAgICAgV0VCS0lU
X0VYUE9SVCBzdGF0aWMgZG91YmxlIHpvb21GYWN0b3JUb1pvb21MZXZlbChkb3VibGUgZmFjdG9y
KTsKIAorICAgIC8vIFBhZ2VTY2FsZUZhY3RvciB3aWxsIGJlIGZvcmNlLWNsYW1wZWQgYmV0d2Vl
biBtaW5QYWdlU2NhbGUgYW5kIG1heFBhZ2VTY2FsZQorICAgIC8vIChhbmQgdGhlc2UgdmFsdWVz
IHdpbGwgcGVyc2lzdCB1bnRpbCBzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMgaXMgY2FsbGVkCisg
ICAgLy8gYWdhaW4pLgorICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMo
ZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbGUpID0gMDsKKwogICAgIC8vIEdl
dHMgdGhlIHNjYWxlIGZhY3RvciBvZiB0aGUgcGFnZSwgd2hlcmUgMS4wIGlzIHRoZSBub3JtYWwg
c2l6ZSwgPiAxLjAKICAgICAvLyBpcyBzY2FsZWQgdXAsIDwgMS4wIGlzIHNjYWxlZCBkb3duLgog
ICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwCmluZGV4IGQ4YmQz
YTE2MzQxYjc5YzVmYjIyMWQ3YTNmZTIwZDYxODBjNDlhZDcuLmNmMzMzMzU2NmU0MzE4OGQ5ZTUz
MGFjOWI1ZjE4ZDlmMzRmNzlmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkNvbXBvc2l0b3JJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKQEAgLTEzMyw0ICsxMzMsMyBAQCBpbnQgV2ViQ29tcG9z
aXRvckltcGw6OmlkZW50aWZpZXIoKSBjb25zdAogfQogCiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcAppbmRleCAyZTY5ZWMz
NDdjZGQwZTUwNWFlNTVmMmM1MGFjYWFhOTZkNGRhMWJmLi5kZGJlMDY0MzFjNjU3ZWQzNzM0YzU0
MThmYjcwNGVhYmY0NGNiMjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCkBAIC02NSwxMCArNjUsMTAgQEAgdm9pZCBXZWJM
YXllclRyZWVWaWV3SW1wbDo6YW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUp
CiAgICAgICAgIG1fY2xpZW50LT5hbmltYXRlQW5kTGF5b3V0KGZyYW1lQmVnaW5UaW1lKTsKIH0K
IAotdm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlTY3JvbGxEZWx0YShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBkZWx0YSkKK3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmFwcGx5U2Ny
b2xsQW5kU2NhbGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHBh
Z2VTY2FsZSkKIHsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5hcHBseVNj
cm9sbERlbHRhKFdlYlNpemUoZGVsdGEpKTsKKyAgICAgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xs
QW5kU2NhbGUoV2ViU2l6ZShzY3JvbGxEZWx0YSksIHBhZ2VTY2FsZSk7CiB9CiAKIFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IFdlYkxheWVyVHJlZVZpZXdJbXBsOjpjcmVhdGVMYXllclRy
ZWVIb3N0Q29udGV4dDNEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkxheWVyVHJlZVZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJM
YXllclRyZWVWaWV3SW1wbC5oCmluZGV4IDFiMTNiZjM0NTkxMzE4MWI3ZTA3ZDdkMmJlNzg2ODhj
ZjljNDQzYmYuLmQ2ZGQ2ZTMzMjg3MmM3YzlhYzBkZDBiZGM2ODFmNmY5MGY0ZjUzZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaApA
QCAtNDIsNyArNDIsNyBAQCBwcml2YXRlOgogICAgIFdlYkxheWVyVHJlZVZpZXdJbXBsKFdlYkxh
eWVyVHJlZVZpZXdDbGllbnQqLCBjb25zdCBXZWJMYXllciYgcm9vdCwgY29uc3QgV2ViTGF5ZXJU
cmVlVmlldzo6U2V0dGluZ3MmKTsKICAgICB2aXJ0dWFsIH5XZWJMYXllclRyZWVWaWV3SW1wbCgp
OwogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGlt
ZSk7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpOworICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUpOwogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9z
dENvbnRleHQzRCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoaW50
IGZyYW1lTnVtYmVyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRl
eHQoYm9vbCBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAppbmRleCBiMmQxNmU1MWM3M2VkZmM2NGE3YzBjMDNlODhhMzZkOWUzZmQwYTRjLi42YThk
NzM4OWQ3MjAxOTQ4NmVmNWIyNjg4ZDI5NGY1ZGI2YzAzNTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xODk4LDYgKzE4OTgsMjMgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKGJvb2wgZW5hYmxlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBmcmFtZS0+dmlldygpLT5zZXRVc2VGaXhlZExheW91dChlbmFibGUpOwor
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIC8vIEFsc28gbm90aWZ5IHRo
ZSBiYXNlIGxheWVyLCB3aGljaCBSZW5kZXJMYXllckNvbXBvc2l0b3IgZG9lcyBub3Qgc2VlLgor
ICAgIGlmIChtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCkgeworICAgICAgICBHcmFwaGljc0xh
eWVyKiByb290ID0gbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QtPnRvcExldmVsUm9vdExheWVy
KCk7CisgICAgICAgIHJvb3QtPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOworICAg
IH0KKworICAgIHVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0KCk7CisjZW5kaWYKK30KKwordm9pZCBX
ZWJWaWV3SW1wbDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VTY2FsZSwg
ZmxvYXQgbWF4UGFnZVNjYWxlKQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
KyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhtaW5QYWdlU2Nh
bGUsIG1heFBhZ2VTY2FsZSk7CisjZW5kaWYKIH0KIAogV2ViU2l6ZSBXZWJWaWV3SW1wbDo6Zml4
ZWRMYXlvdXRTaXplKCkgY29uc3QKQEAgLTI3MDYsMTIgKzI3MjMsMzAgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6YW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpCiAgICAgbGF5b3V0
KCk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6
ZSYgc2Nyb2xsRGVsdGEpCit2b2lkIFdlYlZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNv
bnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZUZhY3RvcikKIHsKICAgICBpZiAo
IW1haW5GcmFtZUltcGwoKSB8fCAhbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZVZpZXcoKS0+c2Nyb2xsQnko
c2Nyb2xsRGVsdGEpOworICAgIGZsb2F0IG9sZFNjYWxlID0gcGFnZVNjYWxlRmFjdG9yKCk7Cisg
ICAgaWYgKCFvbGRTY2FsZSkKKyAgICAgICAgb2xkU2NhbGUgPSAxLjBmOworCisgICAgaWYgKCFz
Y2FsZUZhY3RvciB8fCBvbGRTY2FsZSA9PSBzY2FsZUZhY3RvcikKKyAgICAgICAgbWFpbkZyYW1l
SW1wbCgpLT5mcmFtZVZpZXcoKS0+c2Nyb2xsQnkoc2Nyb2xsRGVsdGEpOworICAgIGVsc2Ugewor
ICAgICAgICAvLyBUaGUgcGFnZSBzY2FsZSBjaGFuZ2VkLCBzbyBhcHBseSBhIHNjYWxlIGFuZCBz
Y3JvbGwgaW4gYSBzaW5nbGUKKyAgICAgICAgLy8gb3BlcmF0aW9uLiBUaGUgb2xkIHNjcm9sbCBv
ZmZzZXQgKGFuZCBwYXNzZWQtaW4gZGVsdGEpIGFyZQorICAgICAgICAvLyBpbiB0aGUgb2xkIGNv
b3JkaW5hdGUgc3BhY2UsIHNvIHdlIGZpcnN0IG5lZWQgdG8gbXVsdGlwbHkgdGhlbQorICAgICAg
ICAvLyBieSB0aGUgcGFnZSBzY2FsZSBkZWx0YS4KKyAgICAgICAgV2ViU2l6ZSBzY3JvbGxPZmZz
ZXQgPSBtYWluRnJhbWUoKS0+c2Nyb2xsT2Zmc2V0KCk7CisgICAgICAgIHNjcm9sbE9mZnNldC53
aWR0aCArPSBzY3JvbGxEZWx0YS53aWR0aCgpOworICAgICAgICBzY3JvbGxPZmZzZXQuaGVpZ2h0
ICs9IHNjcm9sbERlbHRhLmhlaWdodCgpOworICAgICAgICBmbG9hdCBzY2FsZURlbHRhID0gc2Nh
bGVGYWN0b3IgLyBvbGRTY2FsZTsKKyAgICAgICAgV2ViUG9pbnQgc2NhbGVkU2Nyb2xsT2Zmc2V0
KHNjcm9sbE9mZnNldC53aWR0aCAqIHNjYWxlRGVsdGEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQuaGVpZ2h0ICogc2NhbGVEZWx0YSk7CisgICAgICAg
IHNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvciwgc2NhbGVkU2Nyb2xsT2Zmc2V0KTsKKyAg
ICB9CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJh
bWVOdW1iZXIpCkBAIC0yNzUzLDggKzI3ODgsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVM
YXllclRyZWVWaWV3cG9ydCgpCiAgICAgSW50UmVjdCB2aXNpYmxlUmVjdCA9IHZpZXctPnZpc2li
bGVDb250ZW50UmVjdCh0cnVlIC8qIGluY2x1ZGUgc2Nyb2xsYmFycyAqLyk7CiAgICAgSW50UG9p
bnQgc2Nyb2xsKHZpZXctPnNjcm9sbFgoKSwgdmlldy0+c2Nyb2xsWSgpKTsKIAotICAgIG1fbm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0LT5zZXRWaWV3cG9ydCh2aXNpYmxlUmVjdC5zaXplKCksIHZp
ZXctPmNvbnRlbnRzU2l6ZSgpLCBzY3JvbGwpOworICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0LT5zZXRWaWV3cG9ydCh2aXNpYmxlUmVjdC5zaXplKCksIHZpZXctPmNvbnRlbnRzU2l6ZSgp
LCBzY3JvbGwsIHBhZ2VTY2FsZUZhY3RvcigpKTsKICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZp
ZXdwb3J0KHZpc2libGVSZWN0LnNpemUoKSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRQYWdl
U2NhbGUocGFnZVNjYWxlRmFjdG9yKCkpOwogfQogCiBXZWJHcmFwaGljc0NvbnRleHQzRCogV2Vi
Vmlld0ltcGw6OmdyYXBoaWNzQ29udGV4dDNEKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCmluZGV4IDRkMTJiMjk0MzNiMjQxOWZlNjljNTI2ODMyMDQyNDZhZTYxNTc0
ZDEuLjhkYTYzMmQyNTI2Yzk3NzE3Y2YyODMxODc5NGM1M2VhYTIwZWQ2YTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTYwLDYgKzE2MCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBzY2FsZVBhZ2UoZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IFdlYlBvaW50JiBvcmln
aW4pOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0
b3IsIGNvbnN0IFdlYlBvaW50JiBvcmlnaW4pOworICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlU2Nh
bGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbGUpOwog
ICAgIHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwogICAgIHZpcnR1YWwgYm9vbCBpc0Zp
eGVkTGF5b3V0TW9kZUVuYWJsZWQoKSBjb25zdDsKQEAgLTIyMSw3ICsyMjIsNyBAQCBwdWJsaWM6
CiAKICAgICAvLyBDQ0xheWVyVHJlZUhvc3RDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0
ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBhcHBs
eVNjcm9sbERlbHRhKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQpOwogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5
ZXJUcmVlSG9zdENvbnRleHQzRCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3
RnJhbWUoaW50IGZyYW1lTnVtYmVyKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVHcmFw
aGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKaW5kZXggZmE1YzcwY2Jm
MWI0MzM5OGExMDIzMTIxZTE3NWE1MDMyNWFjOGEzNi4uNGM0MzQ4N2VkNWJmMDc3ZjY5NWJmZmQy
NzUyNjZhYmU2Y2FiMzIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHAKQEAgLTU5LDE0ICs1OSwxNCBAQCBw
dWJsaWM6CiAgICAgICAgICAgICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKGxh
eWVyLT5jaGlsZHJlbigpW2ldLmdldCgpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgdm9pZCBleHBl
Y3RDb250YWlucyhjb25zdCBDQ1Njcm9sbFVwZGF0ZVNldCYgc2Nyb2xsSW5mbywgaW50IGlkLCBj
b25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKKyAgICBzdGF0aWMgdm9pZCBleHBlY3RDb250YWlu
cyhjb25zdCBDQ1Njcm9sbEFuZFNjYWxlU2V0JiBzY3JvbGxJbmZvLCBpbnQgaWQsIGNvbnN0IElu
dFNpemUmIHNjcm9sbERlbHRhKQogICAgIHsKICAgICAgICAgaW50IHRpbWVzRW5jb3VudGVyZWQg
PSAwOwogCi0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2Nyb2xsSW5mby5zaXplKCk7
ICsraSkgewotICAgICAgICAgICAgaWYgKHNjcm9sbEluZm9baV0ubGF5ZXJJZCAhPSBpZCkKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzY3JvbGxJbmZvLnNjcm9sbHMuc2l6ZSgpOyAr
K2kpIHsKKyAgICAgICAgICAgIGlmIChzY3JvbGxJbmZvLnNjcm9sbHNbaV0ubGF5ZXJJZCAhPSBp
ZCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIEFTU0VSVF9FUShzY3Jv
bGxJbmZvW2ldLnNjcm9sbERlbHRhLCBzY3JvbGxEZWx0YSk7CisgICAgICAgICAgICBBU1NFUlRf
RVEoc2Nyb2xsSW5mby5zY3JvbGxzW2ldLnNjcm9sbERlbHRhLCBzY3JvbGxEZWx0YSk7CiAgICAg
ICAgICAgICB0aW1lc0VuY291bnRlcmVkKys7CiAgICAgICAgIH0KIApAQCAtODQsOCArODQsOCBA
QCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHNjcm9sbERlbHRhTm9MYXllcnMpCiB7
CiAgICAgQVNTRVJUX0ZBTFNFKG1faG9zdEltcGwtPnJvb3RMYXllcigpKTsKIAotICAgIE93blB0
cjxDQ1Njcm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3Jv
bGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAwdSk7CisgICAg
T3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8gPSBtX2hvc3RJbXBsLT5wcm9j
ZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6
ZSgpLCAwdSk7CiB9CiAKIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVs
dGFUcmVlQnV0Tm9DaGFuZ2VzKQpAQCAtMTAwLDE0ICsxMDAsMTQgQEAgVEVTVF9GKENDTGF5ZXJU
cmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVRyZWVCdXROb0NoYW5nZXMpCiAKICAgICBleHBl
Y3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogCi0gICAgT3duUHRy
PENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZvOworICAgIE93blB0cjxDQ1Njcm9sbEFuZFNj
YWxlU2V0PiBzY3JvbGxJbmZvOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nl
c3NTY3JvbGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAwdSk7
CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAwdSk7CiAgICAgZXhw
ZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIAogICAgIHNjcm9s
bEluZm8gPSBtX2hvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7Ci0gICAgQVNTRVJUX0VR
KHNjcm9sbEluZm8tPnNpemUoKSwgMHUpOworICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3Jv
bGxzLnNpemUoKSwgMHUpOwogICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUo
cm9vdC5nZXQoKSk7CiB9CiAKQEAgLTExNywxNSArMTE3LDE2IEBAIFRFU1RfRihDQ0xheWVyVHJl
ZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFSZXBlYXRlZFNjcm9sbHMpCiAgICAgSW50U2l6ZSBz
Y3JvbGxEZWx0YSgxMSwgLTE1KTsKICAgICBSZWZQdHI8Q0NMYXllckltcGw+IHJvb3QgPSBDQ0xh
eWVySW1wbDo6Y3JlYXRlKDEwKTsKICAgICByb290LT5zZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxQ
b3NpdGlvbik7CisgICAgcm9vdC0+c2V0U2Nyb2xsYWJsZSh0cnVlKTsKICAgICByb290LT5zZXRN
YXhTY3JvbGxQb3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CiAgICAgcm9vdC0+c2Nyb2xsQnko
c2Nyb2xsRGVsdGEpOwogICAgIG1faG9zdEltcGwtPnNldFJvb3RMYXllcihyb290KTsKIAotICAg
IE93blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5mbzsKKyAgICBPd25QdHI8Q0NTY3Jv
bGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbzsKIAogICAgIHNjcm9sbEluZm8gPSBtX2hvc3RJbXBs
LT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAgICAgQVNTRVJUX0VRKHJvb3QtPnNjcm9sbFBvc2l0
aW9uKCksIHNjcm9sbFBvc2l0aW9uICsgc2Nyb2xsRGVsdGEpOwotICAgIEFTU0VSVF9FUShzY3Jv
bGxJbmZvLT5zaXplKCksIDF1KTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5z
aXplKCksIDF1KTsKICAgICBleHBlY3RDb250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgcm9vdC0+
aWQoKSwgc2Nyb2xsRGVsdGEpOwogICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNp
dmUocm9vdC5nZXQoKSk7CiAKQEAgLTEzMywxNCArMTM0LDE0IEBAIFRFU1RfRihDQ0xheWVyVHJl
ZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFSZXBlYXRlZFNjcm9sbHMpCiAgICAgcm9vdC0+c2Ny
b2xsQnkoc2Nyb2xsRGVsdGEyKTsKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vz
c1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShyb290LT5zY3JvbGxQb3NpdGlvbigpLCBz
Y3JvbGxQb3NpdGlvbiArIHNjcm9sbERlbHRhICsgc2Nyb2xsRGVsdGEyKTsKLSAgICBBU1NFUlRf
RVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAxdSk7CisgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNj
cm9sbHMuc2l6ZSgpLCAxdSk7CiAgICAgZXhwZWN0Q29udGFpbnMoKnNjcm9sbEluZm8uZ2V0KCks
IHJvb3QtPmlkKCksIHNjcm9sbERlbHRhMik7CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRh
c1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIAogICAgIHJvb3QtPnNjcm9sbEJ5KEludFNpemUoKSk7
CiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKICAg
ICBBU1NFUlRfRVEocm9vdC0+c2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsUG9zaXRpb24gKyBzY3Jv
bGxEZWx0YSArIHNjcm9sbERlbHRhMik7Ci0gICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNpemUo
KSwgMHUpOworICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMHUpOwog
ICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUocm9vdC5nZXQoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRl
c3QuY3BwCmluZGV4IDU5Y2JhYjExMGI2ZDNkZmY2NDk5ZjM0MjM1YTdlYTEyNjk3Y2RlMGEuLjlk
OTFiY2QwZTA1NTkyYTFmMGE3NjBmZDgyYTgyNmJkYjcyMGNiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcApAQCAtNTcs
NyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luQ29tbWl0T25DQ1RocmVh
ZChDQ0xheWVyVHJlZUhvc3RJbXBsKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdENvbXBs
ZXRlT25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJikgeyB9CisgICAgdmlydHVh
bCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYsIGZsb2F0KSB7IH0KIH07
CiAKIC8vIEFkYXB0cyBDQ0xheWVyVHJlZUhvc3RJbXBsIGZvciB0ZXN0LiBSdW5zIHJlYWwgY29k
ZSwgdGhlbiBpbnZva2VzIHRlc3QgaG9va3MuCkBAIC0xNTMsOSArMTUzLDkgQEAgcHVibGljOgog
ICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJ
bnRTaXplJiBzY3JvbGxEZWx0YSkKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2Fs
ZShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgc2NhbGUpCiAgICAgewotICAgICAg
ICBtX3Rlc3RIb29rcy0+YXBwbHlTY3JvbGxEZWx0YShzY3JvbGxEZWx0YSk7CisgICAgICAgIG1f
dGVzdEhvb2tzLT5hcHBseVNjcm9sbEFuZFNjYWxlKHNjcm9sbERlbHRhLCBzY2FsZSk7CiAgICAg
fQogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXll
clRyZWVIb3N0Q29udGV4dDNEKCkKQEAgLTYyNCw3ICs2MjQsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIHZvaWQgYmVnaW5UZXN0KCkKICAgICB7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
cm9vdExheWVyKCktPnNldE1heFNjcm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDApKTsKKyAg
ICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsYWJsZSh0cnVlKTsK
ICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24o
bV9pbml0aWFsU2Nyb2xsKTsKICAgICAgICAgcG9zdFNldE5lZWRzQ29tbWl0VG9NYWluVGhyZWFk
KCk7CiAgICAgfQpAQCAtNjQ3LDYgKzY0Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgQ0NMYXllcklt
cGwqIHJvb3QgPSBpbXBsLT5yb290TGF5ZXIoKTsKICAgICAgICAgRVhQRUNUX0VRKHJvb3QtPnNj
cm9sbERlbHRhKCksIEludFNpemUoKSk7CiAKKyAgICAgICAgcm9vdC0+c2V0U2Nyb2xsYWJsZSh0
cnVlKTsKKyAgICAgICAgcm9vdC0+c2V0TWF4U2Nyb2xsUG9zaXRpb24oSW50U2l6ZSgxMDAsIDEw
MCkpOwogICAgICAgICByb290LT5zY3JvbGxCeShtX3Njcm9sbEFtb3VudCk7CiAKICAgICAgICAg
aWYgKGltcGwtPmZyYW1lTnVtYmVyKCkgPT0gMSkgewpAQCAtNjYwLDcgKzY2Miw3IEBAIHB1Ymxp
YzoKICAgICAgICAgfQogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRh
KGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9s
bEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBzY2FsZSkKICAgICB7
CiAgICAgICAgIEludFBvaW50IHBvc2l0aW9uID0gbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIo
KS0+c2Nyb2xsUG9zaXRpb24oKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIo
KS0+c2V0U2Nyb2xsUG9zaXRpb24ocG9zaXRpb24gKyBzY3JvbGxEZWx0YSk7CkBAIC02OTQsNyAr
Njk2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpCiAgICAgewot
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRNYXhTY3JvbGxQb3NpdGlv
bihJbnRTaXplKDEwMCwgMTAwKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVy
KCktPnNldFNjcm9sbGFibGUodHJ1ZSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExh
eWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKG1faW5pdGlhbFNjcm9sbCk7CiAgICAgICAgIHBvc3RT
ZXROZWVkc0NvbW1pdFRvTWFpblRocmVhZCgpOwogICAgIH0KQEAgLTcxMyw2ICs3MTUsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRyYXdMYXllcnNPbkNDVGhyZWFkKENDTGF5ZXJUcmVl
SG9zdEltcGwqIGltcGwpCiAgICAgewogICAgICAgICBDQ0xheWVySW1wbCogcm9vdCA9IGltcGwt
PnJvb3RMYXllcigpOworICAgICAgICByb290LT5zZXRTY3JvbGxhYmxlKHRydWUpOworICAgICAg
ICByb290LT5zZXRNYXhTY3JvbGxQb3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CiAKICAgICAg
ICAgaWYgKGltcGwtPmZyYW1lTnVtYmVyKCkgPT0gMSkgewogICAgICAgICAgICAgRVhQRUNUX0VR
KHJvb3QtPnNjcm9sbERlbHRhKCksIEludFNpemUoKSk7CkBAIC03MzUsNyArNzM5LDcgQEAgcHVi
bGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVs
dGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Ny
b2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlKQogICAg
IHsKICAgICAgICAgSW50UG9pbnQgcG9zaXRpb24gPSBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXll
cigpLT5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXll
cigpLT5zZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiArIHNjcm9sbERlbHRhKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXgg
YzQzN2Y4YWNlMGEwMTRiMTA1ZTM3ZmRlNzAxNTBmMGQ2OGNmOTQ2My4uZWQ5Y2VjYjk2MzY2MTlh
Y2QyNWU0MDIwNTkxYWRhNmQzNjNhOTMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTY0Niw2ICs2NDYsNyBAQCBURVNU
X0YoTGF5ZXJDaHJvbWl1bVRlc3QsIGNoZWNrUHJvcGVydHlDaGFuZ2VDYXVzZXNDb3JyZWN0QmVo
YXZpb3IpCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tE
ZWxlZ2F0ZSwgMSwgdGVzdExheWVyLT5zZXRPcGFxdWUoZmFsc2UpKTsKICAgICBFWEVDVVRFX0FO
RF9WRVJJRllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAxLCB0ZXN0TGF5ZXIt
PnNldFBvc2l0aW9uKEZsb2F0UG9pbnQoNC4wZiwgOS4wZikpKTsKICAgICBFWEVDVVRFX0FORF9W
RVJJRllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAxLCB0ZXN0TGF5ZXItPnNl
dFN1YmxheWVyVHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4KCkpKTsKKyAgICBFWEVDVVRF
X0FORF9WRVJJRllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAxLCB0ZXN0TGF5
ZXItPnNldFNjcm9sbGFibGUodHJ1ZSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllf
U1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0VHJhbnNmb3JtKFRy
YW5zZm9ybWF0aW9uTWF0cml4KCkpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfTk9USUZZX1NZ
TkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAxLCB0ZXN0TGF5ZXItPnNldERvdWJsZVNpZGVkKGZh
bHNlKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114327</attachid>
            <date>2011-11-09 11:33:49 -0800</date>
            <delta_ts>2011-11-09 14:36:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71595-20111109113348.patch</filename>
            <type>text/plain</type>
            <size>55555</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk1OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOWQ5NDA3YjNhMmFiOTA3
ZjBlNTVkNjZmOGUzYzkyMDFjZmY3MjFjLi41ZDA2ZmEyMzI1MTVlY2I0N2M0NmZjMWUxMjIzZjI0
YWFjNmMzMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMTEtMTEtMDggIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBhcmUgdHdvIG1hZ25pZnkg
dmFsdWVzOgorICAgICAgICAxLiBUaGUgV2ViS2l0LXNpZGUgcGFnZVNjYWxlIHZhbHVlIGNvcnJl
c3BvbmRpbmcgdG8gdGhlIHJlc29sdXRpb24gb2YKKyAgICAgICAgICAgdGhlIHBhaW50ZWQgY29u
dGVudC4KKyAgICAgICAgMi4gVGhlIEltcGwtc2lkZS1vbmx5IHNjYWxlRGVsdGEgdmFsdWUgcmVw
cmVzZW50aW5nIHRoZSBhZGRpdGlvbmFsCisgICAgICAgICAgIGRlZ3JlZSBvZiBjdXJyZW50IG1h
Z25pZmljYXRpb24sIGFwcGxpZWQgYXMgYSBkcmF3IHRyYW5zZm9ybS4gIFdlYktpdAorICAgICAg
ICAgICBpcyBuZXZlciBleHBsaWNpdGx5IGF3YXJlIG9mIHRoaXMgdmFsdWUgYW5kIHRoZSBvbmx5
IHdheSB0byBjaGFuZ2UgaXQKKyAgICAgICAgICAgY3VycmVudGx5IGlzIHZpYSBwaW5jaCBldmVu
dHMgKGFuZCBpbiB0aGUgZnV0dXJlLCBkb3VibGUtdGFwL2V0YworICAgICAgICAgICBldmVudHMp
LiAgQXQgdGhlIGVuZCBvZiBhIHBpbmNoIHpvb20sIHdlIG11bHRpcGx5IHBhZ2VTY2FsZSAqCisg
ICAgICAgICAgIHNjYWxlRGVsdGEgYW5kIHRlbGwgV2ViS2l0IHRvIHVzZSBpdCBhcyB0aGUgbmV3
IHBhZ2VTY2FsZS4KKworICAgICAgICBTY3JvbGwgb2Zmc2V0cyBhbmQgbWF4LWV4dGVudHMgYXJl
IG1haW50YWluZWQgaW4gcGFnZVNjYWxlIHNwYWNlLgorICAgICAgICBXaGVuIHRoZSBzY2FsZSBj
aGFuZ2VzLCB3ZSBuZWVkIHRvIHRha2UgY2FyZSB0byBjb252ZXJ0IHRoZW0gdG8gdGhlCisgICAg
ICAgIG5ldyBzY2FsZSBhbmQgYXZvaWQgZ2V0dGluZyB0aGVtIGNsYW1wZWQgdG8gdGhlIGV4dGVu
dHMgYXQgdGhlIHdyb25nCisgICAgICAgIHNjYWxlLgorCisgICAgICAgIEkgcmVtb3ZlZCBtYXhT
Y3JvbGxQb3NpdGlvbiBvbiB0aGUgbm9uLWltcGwgc2lkZSBiZWNhdXNlIGl0IG1ha2VzIG5vCisg
ICAgICAgIHNlbnNlIHRvIHByZWNvbXB1dGUgaXQgaW4gdGhlIHByZXNlbmNlIG9mIGFuIGltcGwt
c2lkZSB6b29tLiAgUmVwbGFjZWQKKyAgICAgICAgd2l0aCBhIHNpbXBsZSAnYm9vbCBtX3Njcm9s
bGFibGUnLgorCisgICAgICAgIHpvb21BbmltYXRvclRyYW5zZm9ybSBpcyBub3QgdXNlZCBiZWNh
dXNlIGl0IGN1cnJlbnRseSBpc24ndCBpbiB0aGUKKyAgICAgICAgYnJhbmNoLCBhbmQgbW9zdGx5
IGRvZXNuJ3QgYmVoYXZlIHRoZSB3YXkgd2Ugd2FudCBhbnl3YXkgKGl0IGRvZXMgbW9zdAorICAg
ICAgICB0aGluZ3MgaW4gV2ViS2l0IHRocmVhZCkuICBXZSB3aWxsIG5lZWQgdG8gdW5pZnkgdGhl
c2UgbGF0ZXIuCisKKyAgICAgICAgQWxzbyBpbnRyb2R1Y2UgZGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkKCkgY2FsbCB3aGljaCBpbnZhbGlkYXRlcworICAgICAgICBsYXllcnMuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChmaWxlZCA3MTUyOSB0byByZW1lbWJlciB0byBkbyBpdCBsYXRl
cikuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpk
ZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5ZXJDaHJvbWl1bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNo
cm9taXVtOjpzZXRCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6cHVz
aFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2Nyb2xsYWJs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpzZXRTY3JvbGxhYmxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnBhZ2VTY2FsZUNoYW5nZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnNJbnRl
cm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnNl
dFBhZ2VNYWduaWZ5VHJhbnNmb3JtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnRvcExldmVsUm9vdExheWVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6Q0NMYXllckltcGwpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmg6CisgICAgICAgIChXZWJD
b3JlOjpDQ0xheWVySW1wbDo6c2Nyb2xsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
SW1wbDo6c2V0U2Nyb2xsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdDo6Q0NMYXllclRyZWVIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dDo6ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdDo6c2V0UGFnZVNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ0xh
eWVyVHJlZUhvc3Q6OnBhZ2VTY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhvc3RJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OmNvbW1pdENvbXBsZXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OmZpbmRTY3JvbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhv
c3RJbXBsOjpzZXRQYWdlU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0
SW1wbDo6c2V0U2NhbGVEZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJ
bXBsOjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXll
clRyZWVIb3N0SW1wbDo6dXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6cGluY2hHZXN0dXJlQmVnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6cGluY2hHZXN0dXJlVXBkYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBs
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwYWdlU2NhbGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhy
ZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9D
b21taXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFk
UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Y3JlYXRlQmVnaW5G
cmFtZUFuZENvbW1pdFRhc2tPbkltcGxUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJl
YWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oOgorCiAyMDExLTExLTA4ICBEYW5pZWwgQmF0
ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgZ2V0KCkgZGVmaW5lZCBp
biBDcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDUxZmMwZGM0ODk1ZDMyYzEzNmQxMTliMDRiYzIxYzA4N2RkZWY5YWYuLjU2ZTc5NDcwN2I2MzZh
YmMzMTRiMTEzMTA3ZThiZmViZWJkMWFhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjEgQEAKKzIwMTEtMTEtMDggIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29n
bGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGRyYXctdGltZSBzY2FsZSBkZWx0YSB0
byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGVyZSBhcmUgdHdvIG1hZ25pZnkgdmFsdWVzOgorICAgICAgICAxLiBUaGUg
V2ViS2l0LXNpZGUgcGFnZVNjYWxlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHJlc29sdXRp
b24gb2YKKyAgICAgICAgICAgdGhlIHBhaW50ZWQgY29udGVudC4KKyAgICAgICAgMi4gVGhlIElt
cGwtc2lkZS1vbmx5IHNjYWxlRGVsdGEgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBhZGRpdGlvbmFs
CisgICAgICAgICAgIGRlZ3JlZSBvZiBjdXJyZW50IG1hZ25pZmljYXRpb24sIGFwcGxpZWQgYXMg
YSBkcmF3IHRyYW5zZm9ybS4gIFdlYktpdAorICAgICAgICAgICBpcyBuZXZlciBleHBsaWNpdGx5
IGF3YXJlIG9mIHRoaXMgdmFsdWUgYW5kIHRoZSBvbmx5IHdheSB0byBjaGFuZ2UgaXQKKyAgICAg
ICAgICAgY3VycmVudGx5IGlzIHZpYSBwaW5jaCBldmVudHMgKGFuZCBpbiB0aGUgZnV0dXJlLCBk
b3VibGUtdGFwL2V0YworICAgICAgICAgICBldmVudHMpLiAgQXQgdGhlIGVuZCBvZiBhIHBpbmNo
IHpvb20sIHdlIG11bHRpcGx5IHBhZ2VTY2FsZSAqCisgICAgICAgICAgIHNjYWxlRGVsdGEgYW5k
IHRlbGwgV2ViS2l0IHRvIHVzZSBpdCBhcyB0aGUgbmV3IHBhZ2VTY2FsZS4KKworICAgICAgICBT
Y3JvbGwgb2Zmc2V0cyBhbmQgbWF4LWV4dGVudHMgYXJlIG1haW50YWluZWQgaW4gcGFnZVNjYWxl
IHNwYWNlLgorICAgICAgICBXaGVuIHRoZSBzY2FsZSBjaGFuZ2VzLCB3ZSBuZWVkIHRvIHRha2Ug
Y2FyZSB0byBjb252ZXJ0IHRoZW0gdG8gdGhlCisgICAgICAgIG5ldyBzY2FsZSBhbmQgYXZvaWQg
Z2V0dGluZyB0aGVtIGNsYW1wZWQgdG8gdGhlIGV4dGVudHMgYXQgdGhlIHdyb25nCisgICAgICAg
IHNjYWxlLgorCisgICAgICAgIEkgcmVtb3ZlZCBtYXhTY3JvbGxQb3NpdGlvbiBvbiB0aGUgbm9u
LWltcGwgc2lkZSBiZWNhdXNlIGl0IG1ha2VzIG5vCisgICAgICAgIHNlbnNlIHRvIHByZWNvbXB1
dGUgaXQgaW4gdGhlIHByZXNlbmNlIG9mIGFuIGltcGwtc2lkZSB6b29tLiAgUmVwbGFjZWQKKyAg
ICAgICAgd2l0aCBhIHNpbXBsZSAnYm9vbCBtX3Njcm9sbGFibGUnLgorCisgICAgICAgIHpvb21B
bmltYXRvclRyYW5zZm9ybSBpcyBub3QgdXNlZCBiZWNhdXNlIGl0IGN1cnJlbnRseSBpc24ndCBp
biB0aGUKKyAgICAgICAgYnJhbmNoLCBhbmQgbW9zdGx5IGRvZXNuJ3QgYmVoYXZlIHRoZSB3YXkg
d2Ugd2FudCBhbnl3YXkgKGl0IGRvZXMgbW9zdAorICAgICAgICB0aGluZ3MgaW4gV2ViS2l0IHRo
cmVhZCkuICBXZSB3aWxsIG5lZWQgdG8gdW5pZnkgdGhlc2UgbGF0ZXIuCisKKyAgICAgICAgQWxz
byBpbnRyb2R1Y2UgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkgY2FsbCB3aGljaCBp
bnZhbGlkYXRlcworICAgICAgICBsYXllcnMuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViTGF5ZXJU
cmVlVmlld0NsaWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICog
c3JjL1dlYkNvbXBvc2l0b3JJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlT
Y3JvbGxBbmRTY2FsZSk6CisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmg6Cisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmVuYWJsZUZpeGVkTGF5b3V0TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1
cGRhdGVMYXllclRyZWVWaWV3cG9ydCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6Cisg
ICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdDo6ZXhwZWN0Q29udGFpbnMpOgorICAgICAgICAo
V2ViS2l0OjpURVNUX0YpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3Bw
OgorICAgICAgICAoV1RGOjpUZXN0SG9va3M6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAg
ICAoV1RGOjpNb2NrTGF5ZXJUcmVlSG9zdENsaWVudDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6Cisg
ICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6OmJlZ2luVGVzdCk6
CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6OmRyYXdMYXll
cnNPbkNDVGhyZWFkKToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdFNjcm9sbFNp
bXBsZTo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9z
dFRlc3RTY3JvbGxNdWx0aXBsZVJlZHJhdzo6YmVnaW5UZXN0KToKKyAgICAgICAgKFdURjo6Q0NM
YXllclRyZWVIb3N0VGVzdFNjcm9sbE11bHRpcGxlUmVkcmF3OjpkcmF3TGF5ZXJzT25DQ1RocmVh
ZCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0aXBsZVJlZHJh
dzo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisKIDIwMTEtMTEtMDggIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZGlzcGxheSBu
b3RpZmljYXRpb24gaW4gdGhlIGZyb250LWVuZCB3aGVuIGluc3BlY3RlZCB3b3JrZXIgdGVybWlu
YXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNzI5YTlhY2Rl
Y2M0OGVmMDk5YzJlNWI5YzM3NjA1OTRkMGM2YjE3ZS4uMTU2YjJlOTBlZjQ1ZTY5MDA3ODJlYTU5
NDgwOGI2YWQ4MmUzZmJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3Bw
CkBAIC02NzAsNiArNjcwLDEyIEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVP
cGFjaXR5T25MYXllcigpCiAgICAgcHJpbWFyeUxheWVyKCktPnNldE9wYWNpdHkobV9vcGFjaXR5
KTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fbGF5ZXIpCisgICAgICAgIG1fbGF5ZXItPnBhZ2VT
Y2FsZUNoYW5nZWQoKTsKK30KKwogYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRyYXdzQ29u
dGVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEdyYXBoaWNzTGF5ZXI6OmRyYXdzQ29udGVudCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
R3JhcGhpY3NMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRleCA3MTkwZTUwNTlmYzU2MTY0
OTY5NjkwNDk0M2E1ZTc1YzUzN2M1MzdlLi5mNzNlNzMzNzM5YmExNmE1MjIxMWIzMTFlMjY5YzUz
NmJjYWJhNzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTAwLDYg
KzEwMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBjbGlwKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
U3luY1JlcXVpcmVkKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkKCk7CiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlT3BhY2l0eU9uTGF5ZXIoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmNwcAppbmRleCAxYmU3OTg1NWMxZTZiM2ZlMTI5NzI0MmJjMjk4
NDA1NmQ0MDk3OGJiLi5jYTAwYzIzNTI0Zjc3YTYzYjBlODU5OGJkODEzZjIwMzZjNjA4NjQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtNTgsNiArNTgsNyBAQCBMYXllckNocm9taXVtOjpM
YXllckNocm9taXVtKENDTGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgOiBtX2RlbGVnYXRl
KGRlbGVnYXRlKQogICAgICwgbV9sYXllcklkKHNfbmV4dExheWVySWQrKykKICAgICAsIG1fcGFy
ZW50KDApCisgICAgLCBtX3Njcm9sbGFibGUoZmFsc2UpCiAgICAgLCBtX2FuY2hvclBvaW50KDAu
NSwgMC41KQogICAgICwgbV9iYWNrZ3JvdW5kQ29sb3IoMCwgMCwgMCwgMCkKICAgICAsIG1fZGVi
dWdCb3JkZXJXaWR0aCgwKQpAQCAtNzIsNiArNzMsNyBAQCBMYXllckNocm9taXVtOjpMYXllckNo
cm9taXVtKENDTGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgLCBtX3JlcGxpY2FMYXllcigw
KQogICAgICwgbV9kcmF3T3BhY2l0eSgwKQogICAgICwgbV90YXJnZXRSZW5kZXJTdXJmYWNlKDAp
CisgICAgLCBtX3BhZ2VTY2FsZURpcnR5KGZhbHNlKQogewogfQogCkBAIC0yMTAsMTAgKzIxMiwx
MiBAQCB2b2lkIExheWVyQ2hyb21pdW06OnNldEJvdW5kcyhjb25zdCBJbnRTaXplJiBzaXplKQog
CiAgICAgbV9ib3VuZHMgPSBzaXplOwogCi0gICAgaWYgKGZpcnN0UmVzaXplKQorICAgIGlmIChm
aXJzdFJlc2l6ZSB8fCBtX3BhZ2VTY2FsZURpcnR5KQogICAgICAgICBzZXROZWVkc0Rpc3BsYXko
RmxvYXRSZWN0KDAsIDAsIGJvdW5kcygpLndpZHRoKCksIGJvdW5kcygpLmhlaWdodCgpKSk7CiAg
ICAgZWxzZQogICAgICAgICBzZXROZWVkc0NvbW1pdCgpOworCisgICAgbV9wYWdlU2NhbGVEaXJ0
eSA9IGZhbHNlOwogfQogCiBjb25zdCBMYXllckNocm9taXVtKiBMYXllckNocm9taXVtOjpyb290
TGF5ZXIoKSBjb25zdApAQCAtMjg3LDcgKzI5MSw3IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cHVz
aFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgbGF5ZXItPnNldERyYXdzQ29u
dGVudChkcmF3c0NvbnRlbnQoKSk7CiAgICAgbGF5ZXItPnNldElzTm9uQ29tcG9zaXRlZENvbnRl
bnQobV9pc05vbkNvbXBvc2l0ZWRDb250ZW50KTsKICAgICBsYXllci0+c2V0TWFza3NUb0JvdW5k
cyhtX21hc2tzVG9Cb3VuZHMpOwotICAgIGxheWVyLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtX21h
eFNjcm9sbFBvc2l0aW9uKTsKKyAgICBsYXllci0+c2V0U2Nyb2xsYWJsZShtX3Njcm9sbGFibGUp
OwogICAgIGxheWVyLT5zZXROYW1lKG1fbmFtZSk7CiAgICAgbGF5ZXItPnNldE9wYXF1ZShtX29w
YXF1ZSk7CiAgICAgbGF5ZXItPnNldE9wYWNpdHkobV9vcGFjaXR5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
aAppbmRleCBiYjBlYzYyNjUwMzM2OGY0OTljOTUzMmRkNjk0NDljZWJhMzcwYzk0Li43NDdkYzk4
NjljZjEwYjYyZjMwZTliZjA5YWYyMjc5ODY2NGQzNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBA
IC0xMzEsMTMgKzEzMSwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxQb3NpdGlvbjsgfQogICAgIHZvaWQgc2V0
U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKSB7IG1fc2Nyb2xs
UG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsgfQogCi0gICAgY29uc3QgSW50U2l6ZSYgbWF4U2Ny
b2xsUG9zaXRpb24oKSBjb25zdCB7cmV0dXJuIG1fbWF4U2Nyb2xsUG9zaXRpb247IH0KLSAgICB2
b2lkIHNldE1heFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFNpemUmIG1heFNjcm9sbFBvc2l0aW9u
KSB7IG1fbWF4U2Nyb2xsUG9zaXRpb24gPSBtYXhTY3JvbGxQb3NpdGlvbjsgfQorICAgIGJvb2wg
c2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZTsgfQorICAgIHZvaWQgc2V0
U2Nyb2xsYWJsZShib29sIHNjcm9sbGFibGUpIHsgbV9zY3JvbGxhYmxlID0gdHJ1ZTsgIHNldE5l
ZWRzQ29tbWl0KCk7IH0KIAogICAgIEludFNpemUgc2Nyb2xsRGVsdGEoKSBjb25zdCB7IHJldHVy
biBJbnRTaXplKCk7IH0KIAotICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFt
YXhTY3JvbGxQb3NpdGlvbigpLmlzWmVybygpOyB9Ci0KICAgICBib29sIGRvdWJsZVNpZGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9kb3VibGVTaWRlZDsgfQogICAgIHZvaWQgc2V0RG91YmxlU2lkZWQo
Ym9vbCBkb3VibGVTaWRlZCkgeyBtX2RvdWJsZVNpZGVkID0gZG91YmxlU2lkZWQ7IHNldE5lZWRz
Q29tbWl0KCk7IH0KIApAQCAtMTY0LDYgKzE2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0SXNNYXNrKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250ZW50
c1RleHR1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZSgpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBwYWdlU2NhbGVDaGFuZ2VkKCkgeyBtX3BhZ2VTY2FsZURpcnR5
ID0gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygp
IHsgfQogCiAgICAgLy8gVGhlc2UgZXhpc3QganVzdCBmb3IgZGVidWdnaW5nICh2aWEgZHJhd0Rl
YnVnQm9yZGVyKCkpLgpAQCAtMjUyLDcgKzI1MSw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBt
X2JvdW5kczsKICAgICBJbnRSZWN0IG1fdmlzaWJsZUxheWVyUmVjdDsKICAgICBJbnRQb2ludCBt
X3Njcm9sbFBvc2l0aW9uOwotICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlvbjsKKyAgICBi
b29sIG1fc2Nyb2xsYWJsZTsKICAgICBGbG9hdFBvaW50IG1fcG9zaXRpb247CiAgICAgRmxvYXRQ
b2ludCBtX2FuY2hvclBvaW50OwogICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9yOwpAQCAtMjgz
LDYgKzI4Miw4IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7
CiAKICAgICBTdHJpbmcgbV9uYW1lOworCisgICAgYm9vbCBtX3BhZ2VTY2FsZURpcnR5OwogfTsK
IAogdm9pZCBzb3J0TGF5ZXJzKFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0
b3IsIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIHZvaWQqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
UmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IGRmMjU0MzU2YmRiZDYxZjgy
ZDkyMWU4ZTljMGRjZWVjOWFhNWU4YTIuLjIyMDMyMWI3NGVhYTY1NmUwYWU0MzVmMmU5NmY4YzM1
NjZiMTI1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtMzYx
LDkgKzM2MSwxNCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc0ludGVy
bmFsKCkKICAgICBtX2RlZmF1bHRSZW5kZXJTdXJmYWNlID0gcm9vdERyYXdMYXllci0+cmVuZGVy
U3VyZmFjZSgpOwogICAgIG1fZGVmYXVsdFJlbmRlclN1cmZhY2UtPmNsZWFyTGF5ZXJMaXN0KCk7
CiAKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYWduaWZ5TWF0cml4KG1fcGFnZU1hZ25pZnlN
YXRyaXgpOworICAgIC8vIFRPRE8oYWVsaWFzKTogVGhlc2UgdHdvIHRyYW5zZm9ybWF0aW9ucyBh
cmUgcmVkdW5kYW50OyB1bmlmeSB6b29tQW5pbWF0b3IKKyAgICAvLyBhbmQgaW1wbC10aHJlYWQg
c2lkZSBtYXRyaXguCisgICAgbWFnbmlmeU1hdHJpeC5tdWx0aXBseShtX3pvb21BbmltYXRvclRy
YW5zZm9ybSk7CisKICAgICB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXllclJlbmRlcmVyQ2hy
b21pdW06OmRyYXdMYXllcnNJbnRlcm5hbDo6Y2FsY0RyYXdFdGMiLCB0aGlzLCAwKTsKLSAgICAg
ICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2li
aWxpdHkocm9vdERyYXdMYXllciwgcm9vdERyYXdMYXllciwgbV96b29tQW5pbWF0b3JUcmFuc2Zv
cm0sIG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBtX2Rl
ZmF1bHRSZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKSwgJm1fbGF5ZXJTb3J0ZXIsIG1fY2FwYWJp
bGl0aWVzLm1heFRleHR1cmVTaXplKTsKKyAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpj
YWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdERyYXdMYXllciwgcm9vdERy
YXdMYXllciwgbWFnbmlmeU1hdHJpeCwgbWFnbmlmeU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCwgbV9kZWZhdWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xheWVyU29ydGVy
LCBtX2NhcGFiaWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CiAgICAgfQogCiAgICAgLy8gVGhlIEdM
IHZpZXdwb3J0IGNvdmVycyB0aGUgZW50aXJlIHZpc2libGUgYXJlYSwgaW5jbHVkaW5nIHRoZSBz
Y3JvbGxiYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAppbmRleCA2NDZlYTZl
NWM0NDhhNThjNjEyNDEzNDJiMGY5YTZlYWRkYWVmNDQ3Li4wMjhlNjY0ZDNjYjllNWY1YjA2ZTZi
ZWY5ZmM3N2IwZmVjNTEyZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApA
QCAtOTgsNiArOTgsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHZpZXdwb3J0Q2hhbmdlZCgpOwog
CisgICAgdm9pZCBzZXRQYWdlTWFnbmlmeVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgcGFnZU1hZ25pZnlNYXRyaXgpIHsgbV9wYWdlTWFnbmlmeU1hdHJpeCA9IHBhZ2VNYWdu
aWZ5TWF0cml4OyB9CisKICAgICB2b2lkIGRyYXdMYXllcnMoKTsKIAogICAgIC8vIHdhaXRzIGZv
ciByZW5kZXJpbmcgdG8gZmluaXNoCkBAIC0xOTUsNiArMTk3LDcgQEAgcHJpdmF0ZToKIAogICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fcHJvamVjdGlvbk1hdHJpeDsKICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBtX3dpbmRvd01hdHJpeDsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3Bh
Z2VNYWduaWZ5TWF0cml4OwogCiAgICAgQ0NSZW5kZXJTdXJmYWNlKiBtX2N1cnJlbnRSZW5kZXJT
dXJmYWNlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2NyZWVuRnJhbWVidWZmZXJJZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCmluZGV4IDI1ODM5Yzg4YTk3MzM5ZGU2
NzEwZmMwNmNiZWQwOWVhNGJlMjRmY2YuLmJjNmEyYTQ5NzgyOGViMjkxZTk4OTdlYjFiYjEyMjIw
NzBhNGEyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcApA
QCAtNzQsNyArNzQsNyBAQCB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0U2Nyb2xs
TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgQVNTRVJUKHNjcm9sbExheWVyKCkpOwog
fQogCi12b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQoY29uc3QgSW50
U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IElu
dFBvaW50JiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojpz
ZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNv
bnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBmbG9hdCBwYWdlU2Nh
bGUpCiB7CiAgICAgaWYgKCFzY3JvbGxMYXllcigpKQogICAgICAgICByZXR1cm47CkBAIC04Mywx
NiArODMsMTYgQEAgdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNv
bnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW4KIAogICAgIG1fdmlld3BvcnRTaXpl
ID0gdmlld3BvcnRTaXplOwogICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHNj
cm9sbFBvc2l0aW9uKTsKLSAgICBJbnRTaXplIG1heFNjcm9sbCA9IGNvbnRlbnRzU2l6ZSAtIHZp
ZXdwb3J0U2l6ZTsKLSAgICAvLyBUaGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBj
b250ZW50cyBpbiBzb21lIGNhc2VzLCBzdWNoIGFzCi0gICAgLy8gaGF2aW5nIGEgdmVydGljYWwg
c2Nyb2xsYmFyIGJ1dCBubyBob3Jpem9udGFsIG92ZXJmbG93LgotICAgIG1heFNjcm9sbC5jbGFt
cE5lZ2F0aXZlVG9aZXJvKCk7Ci0KLSAgICBzY3JvbGxMYXllcigpLT5zZXRNYXhTY3JvbGxQb3Np
dGlvbihtYXhTY3JvbGwpOworICAgIC8vIER1ZSB0byB0aGUgcG9zc2liaWxpdHkgb2YgcGluY2gg
em9vbSwgdGhlIG5vbmNvbXBvc2l0ZWQgbGF5ZXIgaXMgYWx3YXlzCisgICAgLy8gYXNzdW1lZCB0
byBiZSBzY3JvbGxhYmxlLgorICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbGFibGUodHJ1ZSk7
CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaXplKGNvbnRlbnRzU2l6ZSk7CiAKICAgICBpZiAo
dmlzaWJsZVJlY3RDaGFuZ2VkKQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlz
cGxheSgpOworCisgICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+cGFnZVNjYWxlRmFjdG9yKCkgIT0g
cGFnZVNjYWxlKQorICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPmRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpOwogfQogCiBMYXllckNocm9taXVtKiBOb25Db21wb3NpdGVkQ29udGVudEhv
c3Q6OnNjcm9sbExheWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgK
aW5kZXggMjg2NDc1Y2JkY2RjN2Y1YjE5MTI0MGFkOGUxYTExNzkwMTRiYjI3YS4uODBhNzBhOWRi
ZDMxNmVhYTBiZWQyNDlhZTk5YWQzODk5ZThmNDA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0LmgKQEAgLTU1LDggKzU1LDkgQEAgcHVibGljOgogICAgIHZvaWQgaW52
YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpOwogICAgIHZvaWQgc2V0QmFja2dyb3VuZENvbG9y
KGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVyKik7
Ci0gICAgdm9pZCBzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0
IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKTsK
KyAgICB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3Qg
SW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGZs
b2F0IHBhZ2VTY2FsZSk7CiAgICAgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpOwor
ICAgIEdyYXBoaWNzTGF5ZXIqIHRvcExldmVsUm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9n
cmFwaGljc0xheWVyLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0KFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+IGNvbnRlbnRQ
YWludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKaW5kZXggZjVhNWExZDFhN2QwODUxOGUzMjlj
NjhmNGMyOGQyOWY3ODI4ZjMwZi4uYmQyYWEwYWZjNDNkNzhlMDFhNjNjOWM0OGQyYWVjYTJhMTIy
NzkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcApAQCAtNDIsNiArNDIsNyBAQCBDQ0xheWVy
SW1wbDo6Q0NMYXllckltcGwoaW50IGlkKQogICAgICwgbV9sYXllcklkKGlkKQogICAgICwgbV9h
bmNob3JQb2ludCgwLjUsIDAuNSkKICAgICAsIG1fYW5jaG9yUG9pbnRaKDApCisgICAgLCBtX3Nj
cm9sbGFibGUoZmFsc2UpCiAgICAgLCBtX2RvdWJsZVNpZGVkKHRydWUpCiAgICAgLCBtX2xheWVy
UHJvcGVydHlDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9tYXNrc1RvQm91bmRzKGZhbHNlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJJbXBsLmgKaW5kZXggMmI4ODQzOWQ0ZmYwMzFhYzUxMTYxYjRlMDcxY2ZjYzE2Y2Qy
NGZmMi4uYjcyY2FlMTBkOTE3MWNlNjdkYmRiNzRjYjE0YjVlNTE1MzUwYWM2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllcklt
cGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVySW1wbC5oCkBAIC0xNTgsNyArMTU4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Ny
b2xsRGVsdGEoY29uc3QgSW50U2l6ZSYpOwogCiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBJbnRT
aXplJiBzY3JvbGwpOwotICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtYXhT
Y3JvbGxQb3NpdGlvbigpLmlzWmVybygpOyB9CisKKyAgICBib29sIHNjcm9sbGFibGUoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGFibGU7IH0KKyAgICB2b2lkIHNldFNjcm9sbGFibGUoYm9vbCBz
Y3JvbGxhYmxlKSB7IG1fc2Nyb2xsYWJsZSA9IHNjcm9sbGFibGU7IH0KIAogICAgIGNvbnN0IElu
dFJlY3QmIHZpc2libGVMYXllclJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Zpc2libGVMYXllclJl
Y3Q7IH0KICAgICB2b2lkIHNldFZpc2libGVMYXllclJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJs
ZUxheWVyUmVjdCkgeyBtX3Zpc2libGVMYXllclJlY3QgPSB2aXNpYmxlTGF5ZXJSZWN0OyB9CkBA
IC0yMTYsNyArMjE4LDcgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIG1fYm91bmRzOwogICAgIElu
dFNpemUgbV9jb250ZW50Qm91bmRzOwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247Ci0g
ICAgSW50U2l6ZSBtX21heFNjcm9sbFBvc2l0aW9uOworICAgIGJvb2wgbV9zY3JvbGxhYmxlOwog
ICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9yOwogCiAgICAgLy8gV2hldGhlciB0aGUgImJhY2si
IG9mIHRoaXMgbGF5ZXIgc2hvdWxkIGRyYXcuCkBAIC0yMzksNiArMjQxLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fZHJhd3NDb250ZW50OwogCiAgICAgSW50U2l6ZSBtX3Njcm9sbERlbHRhOwor
ICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlvbjsKIAogICAgIC8vIFByb3BlcnRpZXMgb3du
ZWQgZXhjbHVzaXZlbHkgYnkgdGhpcyBDQ0xheWVySW1wbC4KICAgICAvLyBEZWJ1Z2dpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCAxMjc2MWYxYWQwOWE1YjBiMWRjZjM1
NjY0ZDhmMjk0NzcxYmE0ZTliLi40ZjJjMWZiNjI2NGVlN2MzYTllNjE3NTM3YTAyODk4MmY4YWIz
M2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTU2LDYgKzU2LDkgQEAg
Q0NMYXllclRyZWVIb3N0OjpDQ0xheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiBj
bGllbnQsIGNvbnN0IENDU2V0dGluZ3MKICAgICAsIG1fc2V0dGluZ3Moc2V0dGluZ3MpCiAgICAg
LCBtX3Zpc2libGUodHJ1ZSkKICAgICAsIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhmYWxzZSkK
KyAgICAsIG1fcGFnZVNjYWxlKDEpCisgICAgLCBtX21pblBhZ2VTY2FsZSgxKQorICAgICwgbV9t
YXhQYWdlU2NhbGUoMSkKIHsKICAgICBDQ01haW5UaHJlYWQ6OmluaXRpYWxpemUoKTsKICAgICBB
U1NFUlQoQ0NQcm94eTo6aXNNYWluVGhyZWFkKCkpOwpAQCAtMTMwLDYgKzEzMyw4IEBAIHZvaWQg
Q0NMYXllclRyZWVIb3N0OjpmaW5pc2hDb21taXRPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0
SW1wbCogaG9zdEltcGwpCiAgICAgaG9zdEltcGwtPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMo
bV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKTsKICAgICBob3N0SW1wbC0+c2V0Wm9vbUFuaW1hdG9y
VHJhbnNmb3JtKG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtKTsKICAgICBob3N0SW1wbC0+c2V0Vmll
d3BvcnQodmlld3BvcnRTaXplKCkpOworICAgIGhvc3RJbXBsLT5zZXRQYWdlU2NhbGUocGFnZVNj
YWxlKCkpOworICAgIGhvc3RJbXBsLT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMobV9taW5QYWdl
U2NhbGUsIG1fbWF4UGFnZVNjYWxlKTsKIAogICAgIC8vIFN5bmNocm9uaXplIHRyZWVzLCBpZiBv
bmUgZXhpc3RzIGF0IGFsbC4uLgogICAgIGlmIChyb290TGF5ZXIoKSkKQEAgLTIyNCw2ICsyMjks
MjUgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSkKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVl
SG9zdDo6c2V0UGFnZVNjYWxlKGZsb2F0IHBhZ2VTY2FsZSkKK3sKKyAgICBpZiAocGFnZVNjYWxl
ID09IG1fcGFnZVNjYWxlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2VTY2FsZSA9IHBh
Z2VTY2FsZTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9z
dDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblNjYWxlLCBmbG9hdCBtYXhTY2Fs
ZSkKK3sKKyAgICBpZiAobWluU2NhbGUgPT0gbV9taW5QYWdlU2NhbGUgJiYgbWF4U2NhbGUgPT0g
bV9tYXhQYWdlU2NhbGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWluUGFnZVNjYWxlID0g
bWluU2NhbGU7CisgICAgbV9tYXhQYWdlU2NhbGUgPSBtYXhTY2FsZTsKKyAgICBzZXROZWVkc0Nv
bW1pdCgpOworfQorCiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZShib29sIHZpc2li
bGUpCiB7CiAgICAgaWYgKG1fdmlzaWJsZSA9PSB2aXNpYmxlKQpAQCAtNDM3LDE1ICs0NjEsMTUg
QEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmNsZWFyUGVuZGluZ1VwZGF0ZSgpCiAgICAgbV91cGRh
dGVMaXN0LmNsZWFyKCk7CiB9CiAKLXZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbERl
bHRhcyhjb25zdCBDQ1Njcm9sbFVwZGF0ZVNldCYgaW5mbykKK3ZvaWQgQ0NMYXllclRyZWVIb3N0
OjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmIGluZm8pCiB7
CiAgICAgLy8gRklYTUU6IHB1c2hpbmcgc2Nyb2xsIG9mZnNldHMgdG8gbm9uLXJvb3QgbGF5ZXJz
IG5vdCBpbXBsZW1lbnRlZAotICAgIGlmICghaW5mby5zaXplKCkpCisgICAgaWYgKCFpbmZvLnNj
cm9sbHMuc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaW5mby5zaXplKCkg
PT0gMSk7Ci0gICAgSW50U2l6ZSBzY3JvbGxEZWx0YSA9IGluZm9bMF0uc2Nyb2xsRGVsdGE7Ci0g
ICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsRGVsdGEoc2Nyb2xsRGVsdGEpOworICAgIEFTU0VSVChp
bmZvLnNjcm9sbHMuc2l6ZSgpID09IDEpOworICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBpbmZv
LnNjcm9sbHNbMF0uc2Nyb2xsRGVsdGE7CisgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsQW5kU2Nh
bGUoc2Nyb2xsRGVsdGEsIGluZm8ucGFnZVNjYWxlKTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OnN0YXJ0UmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDc1MDczMGRjZWJhNzM2NDgzZWNjZDI4MDg4NDEwODcw
NzMyYjE4Y2IuLjc1MTk1NDVlMTc1MDRiNmEyNGNjMWE3NDI4OTZhNjgxYTc1Mjc5NGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIFRleHR1cmVN
YW5hZ2VyOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERl
bHRhLCBmbG9hdCBwYWdlU2NhbGUpID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2VzcykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoaW50IGZyYW1lTnVtYmVyKSA9
IDA7CkBAIC0xNTgsNiArMTU4LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdwb3J0KGNv
bnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSk7CiAKICAgICBjb25zdCBJbnRTaXplJiB2aWV3cG9y
dFNpemUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0U2l6ZTsgfQorCisgICAgdm9pZCBzZXRQ
YWdlU2NhbGUoZmxvYXQpOworICAgIGZsb2F0IHBhZ2VTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZVNjYWxlOyB9CisKKyAgICB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBt
aW5TY2FsZSwgZmxvYXQgbWF4U2NhbGUpOworCiAgICAgVGV4dHVyZU1hbmFnZXIqIGNvbnRlbnRz
VGV4dHVyZU1hbmFnZXIoKSBjb25zdDsKIAogICAgIGJvb2wgdmlzaWJsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdmlzaWJsZTsgfQpAQCAtMTY4LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVw
ZGF0ZUxheWVycygpOwogCiAgICAgdm9pZCB1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBo
aWNzQ29udGV4dDNEKiwgQ0NUZXh0dXJlVXBkYXRlciYpOwotICAgIHZvaWQgYXBwbHlTY3JvbGxE
ZWx0YXMoY29uc3QgQ0NTY3JvbGxVcGRhdGVTZXQmKTsKKyAgICB2b2lkIGFwcGx5U2Nyb2xsQW5k
U2NhbGUoY29uc3QgQ0NTY3JvbGxBbmRTY2FsZVNldCYpOwogICAgIHZvaWQgc3RhcnRSYXRlTGlt
aXRlcihHcmFwaGljc0NvbnRleHQzRCopOwogICAgIHZvaWQgc3RvcFJhdGVMaW1pdGVyKEdyYXBo
aWNzQ29udGV4dDNEKik7CiAKQEAgLTIwOSw2ICsyMTUsOSBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzOwogICAgIHR5cGVkZWYgSGFzaE1hcDxHcmFwaGljc0Nv
bnRleHQzRCosIFJlZlB0cjxSYXRlTGltaXRlcj4gPiBSYXRlTGltaXRlck1hcDsKICAgICBSYXRl
TGltaXRlck1hcCBtX3JhdGVMaW1pdGVyczsKKworICAgIGZsb2F0IG1fcGFnZVNjYWxlOworICAg
IGZsb2F0IG1fbWluUGFnZVNjYWxlLCBtX21heFBhZ2VTY2FsZTsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdENvbW1vbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKaW5kZXggNjlkNTg0ZDRkMGVhYmFmYWNlN2Qw
NTFjMzg2NTJhZWE4YjRiMTg4OC4uNTI5YjNiMzIwY2Y3MjQ0ZTJlNDE5OGVmMTk3ZTVjNDNkYzVi
NjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKQEAgLTUxLDcg
KzUxLDEwIEBAIHB1YmxpYzoKICAgICB9OwogfTsKIAotdHlwZWRlZiBWZWN0b3I8Q0NMYXllclRy
ZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZvPiBDQ1Njcm9sbFVwZGF0ZVNldDsKK3N0cnVj
dCBDQ1Njcm9sbEFuZFNjYWxlU2V0IHsKKyAgICBWZWN0b3I8Q0NMYXllclRyZWVIb3N0Q29tbW9u
OjpTY3JvbGxVcGRhdGVJbmZvPiBzY3JvbGxzOworICAgIGZsb2F0IHBhZ2VTY2FsZTsKK307CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHlwZT4KIEludFJlY3QgQ0NMYXllclRyZWVIb3N0Q29t
bW9uOjpjYWxjdWxhdGVWaXNpYmxlTGF5ZXJSZWN0KExheWVyVHlwZSogbGF5ZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IGZlMDkzMjZlNGIyOTkwNTZmMmQ3
NWIzZWIxZTZhZTMyMzhjYzQ2ZTYuLjhhY2I1NGJiYzQ1NmNlYTBjMGM0MTZiZWVjMjRlMDJmYjk3
MDY0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC01MCw2
ICs1MCwxMSBAQCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhvc3RJbXBsKGNvbnN0
IENDU2V0dGluZ3MmIHNldHRpbmdzLCBDQ0xheWVyVHJlZQogICAgICwgbV9zZXR0aW5ncyhzZXR0
aW5ncykKICAgICAsIG1fdmlzaWJsZSh0cnVlKQogICAgICwgbV9oYXZlV2hlZWxFdmVudEhhbmRs
ZXJzKGZhbHNlKQorICAgICwgbV9wYWdlU2NhbGUoMSkKKyAgICAsIG1fc2NhbGVEZWx0YSgxKQor
ICAgICwgbV9taW5QYWdlU2NhbGUoMCkKKyAgICAsIG1fbWF4UGFnZVNjYWxlKDApCisgICAgLCBt
X3BpbmNoR2VzdHVyZUFjdGl2ZShmYWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBs
VGhyZWFkKCkpOwogfQpAQCAtNjgsNiArNzMsOSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6
OmJlZ2luQ29tbWl0KCkKIAogdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21taXRDb21wbGV0
ZSgpCiB7CisgICAgLy8gUmVjb21wdXRlIG1heCBzY3JvbGwgcG9zaXRpb247IG11c3QgYmUgYWZ0
ZXIgbGF5ZXIgY29udGVudCBib3VuZHMgYXJlCisgICAgLy8gdXBkYXRlZC4KKyAgICB1cGRhdGVN
YXhTY3JvbGxQb3NpdGlvbigpOwogfQogCiBHcmFwaGljc0NvbnRleHQzRCogQ0NMYXllclRyZWVI
b3N0SW1wbDo6Y29udGV4dCgpCkBAIC0xMjgsNyArMTM2LDcgQEAgc3RhdGljIENDTGF5ZXJJbXBs
KiBmaW5kU2Nyb2xsTGF5ZXIoQ0NMYXllckltcGwqIGxheWVyKQogICAgIGlmICghbGF5ZXIpCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKCFsYXllci0+bWF4U2Nyb2xsUG9zaXRpb24oKS5p
c1plcm8oKSkKKyAgICBpZiAobGF5ZXItPnNjcm9sbGFibGUoKSkKICAgICAgICAgcmV0dXJuIGxh
eWVyOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllci0+Y2hpbGRyZW4oKS5zaXpl
KCk7ICsraSkgewpAQCAtMTgwLDEwICsxODgsODIgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3RJbXBs
Ojppbml0aWFsaXplTGF5ZXJSZW5kZXJlcihQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPgog
CiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSkKIHsKLSAgICBib29sIGNoYW5nZWQgPSB2aWV3cG9ydFNpemUgIT0gbV92aWV3
cG9ydFNpemU7CisgICAgaWYgKHZpZXdwb3J0U2l6ZSA9PSBtX3ZpZXdwb3J0U2l6ZSkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgbV92aWV3cG9ydFNpemUgPSB2aWV3cG9ydFNpemU7Ci0gICAgaWYg
KGNoYW5nZWQpCi0gICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+dmlld3BvcnRDaGFuZ2VkKCk7Cisg
ICAgdXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24oKTsKKyAgICBtX2xheWVyUmVuZGVyZXItPnZpZXdw
b3J0Q2hhbmdlZCgpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2Fs
ZShmbG9hdCBwYWdlU2NhbGUpCit7CisgICAgaWYgKCFwYWdlU2NhbGUgfHwgcGFnZVNjYWxlID09
IG1fcGFnZVNjYWxlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBNYWludGFpbiBjb25zdGFu
dCB0aGUgcHJvZHVjdCBvZiBtX3BhZ2VTY2FsZSAqIG1fc2NhbGVEZWx0YS4KKyAgICBmbG9hdCBz
Y2FsZUNoYW5nZSA9IHBhZ2VTY2FsZSAvIG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG9sZE1hZ25p
ZnlTY2FsZSA9IG1fcGFnZVNjYWxlICogbV9zY2FsZURlbHRhOworICAgIG1fcGFnZVNjYWxlID0g
cGFnZVNjYWxlOworCisgICAgc2V0U2NhbGVEZWx0YShvbGRNYWduaWZ5U2NhbGUgLyBwYWdlU2Nh
bGUpOworCisgICAgLy8gV2UgYWxzbyBuZWVkIHRvIGNvbnZlcnQgaW1wbC1zaWRlIHNjcm9sbCBk
ZWx0YXMgdG8gcGFnZVNjYWxlIHNwYWNlLgorICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiBt
X3Njcm9sbExheWVySW1wbC0+c2Nyb2xsYWJsZSgpKSB7CisgICAgICAgIEludFNpemUgc2Nyb2xs
RGVsdGEgPSBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKTsKKyAgICAgICAgc2Nyb2xs
RGVsdGEuc2NhbGUoc2NhbGVDaGFuZ2UpOworICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0
U2Nyb2xsRGVsdGEoc2Nyb2xsRGVsdGEpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVyVHJlZUhv
c3RJbXBsOjpzZXRTY2FsZURlbHRhKGZsb2F0IGRlbHRhKQoreworICAgIC8vIENsYW1wIHRvIHRo
ZSBjdXJyZW50IG1pbi9tYXggbGltaXRzLgorICAgIGZsb2F0IGZpbmFsTWFnbmlmeVNjYWxlID0g
bV9wYWdlU2NhbGUgKiBkZWx0YTsKKyAgICBpZiAobV9taW5QYWdlU2NhbGUgJiYgZmluYWxNYWdu
aWZ5U2NhbGUgPCBtX21pblBhZ2VTY2FsZSkKKyAgICAgICAgZGVsdGEgPSBtX21pblBhZ2VTY2Fs
ZSAvIG1fcGFnZVNjYWxlOworICAgIGVsc2UgaWYgKG1fbWF4UGFnZVNjYWxlICYmIGZpbmFsTWFn
bmlmeVNjYWxlID4gbV9tYXhQYWdlU2NhbGUpCisgICAgICAgIGRlbHRhID0gbV9tYXhQYWdlU2Nh
bGUgLyBtX3BhZ2VTY2FsZTsKKworICAgIGlmIChkZWx0YSA9PSBtX3NjYWxlRGVsdGEpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fc2NhbGVEZWx0YSA9IGRlbHRhOworCisgICAgdXBkYXRlTWF4
U2Nyb2xsUG9zaXRpb24oKTsKKworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGRlbHRhTWF0cml4
OworICAgIGRlbHRhTWF0cml4LnNjYWxlKG1fc2NhbGVEZWx0YSk7CisgICAgbV9sYXllclJlbmRl
cmVyLT5zZXRQYWdlTWFnbmlmeVRyYW5zZm9ybShkZWx0YU1hdHJpeCk7Cit9CisKK3ZvaWQgQ0NM
YXllclRyZWVIb3N0SW1wbDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VT
Y2FsZSwgZmxvYXQgbWF4UGFnZVNjYWxlKQoreworICAgIG1fbWluUGFnZVNjYWxlID0gbWluUGFn
ZVNjYWxlOworICAgIG1fbWF4UGFnZVNjYWxlID0gbWF4UGFnZVNjYWxlOworCisgICAgLy8gVGhp
cyB3aWxsIGNsYW1wIG1fc2NhbGVEZWx0YSBhbmQgYXBwbHkgc2lkZSBlZmZlY3RzIGlmIGNsYW1w
ZWQuCisgICAgc2V0U2NhbGVEZWx0YShtX3NjYWxlRGVsdGEpOworfQorCit2b2lkIENDTGF5ZXJU
cmVlSG9zdEltcGw6OnVwZGF0ZU1heFNjcm9sbFBvc2l0aW9uKCkKK3sKKyAgICBpZiAoIW1fc2Ny
b2xsTGF5ZXJJbXBsIHx8ICFtX3Njcm9sbExheWVySW1wbC0+Y2hpbGRyZW4oKS5zaXplKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIEZsb2F0U2l6ZSB2aWV3Qm91bmRzID0gbV92aWV3cG9ydFNp
emU7CisgICAgdmlld0JvdW5kcy5zY2FsZSgxIC8gbV9zY2FsZURlbHRhKTsKKworICAgIC8vIFRP
RE8oYWVsaWFzKTogSGFyZGNvZGluZyB0aGUgZmlyc3QgY2hpbGQgaGVyZSBpcyB3ZWlyZC4gVGhp
bmsgb2YKKyAgICAvLyBhIGNsZWFuZXIgd2F5IHRvIGdldCB0aGUgY29udGVudEJvdW5kcyBvbiB0
aGUgSW1wbCBzaWRlLgorICAgIEludFNpemUgbWF4U2Nyb2xsID0gbV9zY3JvbGxMYXllckltcGwt
PmNoaWxkcmVuKClbMF0tPmNvbnRlbnRCb3VuZHMoKSAtIGV4cGFuZGVkSW50U2l6ZSh2aWV3Qm91
bmRzKTsKKyAgICAvLyBUaGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBjb250ZW50
cyBpbiBzb21lIGNhc2VzLCBzdWNoIGFzCisgICAgLy8gaGF2aW5nIGEgdmVydGljYWwgc2Nyb2xs
YmFyIGJ1dCBubyBob3Jpem9udGFsIG92ZXJmbG93LgorICAgIG1heFNjcm9sbC5jbGFtcE5lZ2F0
aXZlVG9aZXJvKCk7CisKKyAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0TWF4U2Nyb2xsUG9zaXRp
b24obWF4U2Nyb2xsKTsKKworICAgIC8vIFRPRE8oYWVsaWFzKTogQWxzbyB1cGRhdGUgc3VibGF5
ZXJzLgogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFpvb21BbmltYXRvclRyYW5z
Zm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgem9vbSkKQEAgLTIwNywyMCArMjg3LDYx
IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6aGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpCiAg
ICAgcmV0dXJuIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVyczsKIH0KIAotUGFzc093blB0cjxDQ1Nj
cm9sbFVwZGF0ZVNldD4gQ0NMYXllclRyZWVIb3N0SW1wbDo6cHJvY2Vzc1Njcm9sbERlbHRhcygp
Cit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKCkKIHsKLSAgICBP
d25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+IHNjcm9sbEluZm8gPSBhZG9wdFB0cihuZXcgQ0NTY3Jv
bGxVcGRhdGVTZXQoKSk7Ci0gICAgLy8gRklYTUU6IHRyYWNrIHNjcm9sbHMgZnJvbSBsYXllcnMg
b3RoZXIgdGhhbiB0aGUgcm9vdAotICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiAhbV9zY3Jv
bGxMYXllckltcGwtPnNjcm9sbERlbHRhKCkuaXNaZXJvKCkpIHsKLSAgICAgICAgQ0NMYXllclRy
ZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZvIGluZm87Ci0gICAgICAgIGluZm8ubGF5ZXJJ
ZCA9IG1fc2Nyb2xsTGF5ZXJJbXBsLT5pZCgpOwotICAgICAgICBpbmZvLnNjcm9sbERlbHRhID0g
bV9zY3JvbGxMYXllckltcGwtPnNjcm9sbERlbHRhKCk7Ci0gICAgICAgIHNjcm9sbEluZm8tPmFw
cGVuZChpbmZvKTsKLQotICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2Nyb2xsUG9zaXRp
b24obV9zY3JvbGxMYXllckltcGwtPnNjcm9sbFBvc2l0aW9uKCkgKyBtX3Njcm9sbExheWVySW1w
bC0+c2Nyb2xsRGVsdGEoKSk7Ci0gICAgICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRQb3NpdGlv
bihtX3Njcm9sbExheWVySW1wbC0+cG9zaXRpb24oKSAtIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3Jv
bGxEZWx0YSgpKTsKLSAgICAgICAgbV9zY3JvbGxMYXllckltcGwtPnNldFNjcm9sbERlbHRhKElu
dFNpemUoKSk7CisgICAgbV9waW5jaEdlc3R1cmVBY3RpdmUgPSB0cnVlOworfQorCit2b2lkIEND
TGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQ
b2ludCYgYW5jaG9yKQoreworICAgIFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3RJbXBsOjpw
aW5jaEdlc3R1cmVVcGRhdGUiLCB0aGlzLCAwKTsKKworICAgIGlmIChtYWduaWZ5RGVsdGEgPT0g
MS4wKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gS2VlcCB0aGUgY2VudGVyLW9mLXBpbmNoIGFuY2hvciBzcGVj
aWZpZWQgYnkgKHgsIHkpIGluIGEgc3RhYmxlCisgICAgLy8gcG9zaXRpb24gb3ZlciB0aGUgY291
cnNlIG9mIHRoZSBtYWduaWZ5LgorICAgIEZsb2F0UG9pbnQgcHJldlNjYWxlQW5jaG9yKGFuY2hv
ci54KCkgLyBtX3NjYWxlRGVsdGEsIGFuY2hvci55KCkgLyBtX3NjYWxlRGVsdGEpOworICAgIHNl
dFNjYWxlRGVsdGEobV9zY2FsZURlbHRhICogbWFnbmlmeURlbHRhKTsKKyAgICBGbG9hdFBvaW50
IG5ld1NjYWxlQW5jaG9yKGFuY2hvci54KCkgLyBtX3NjYWxlRGVsdGEsIGFuY2hvci55KCkgLyBt
X3NjYWxlRGVsdGEpOworCisgICAgRmxvYXRTaXplIG1vdmUgPSBwcmV2U2NhbGVBbmNob3IgLSBu
ZXdTY2FsZUFuY2hvcjsKKworICAgIHNjcm9sbFJvb3RMYXllcihyb3VuZGVkSW50U2l6ZShtb3Zl
KSk7CisKKyAgICBtX2NsaWVudC0+c2V0TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQoKTsKK30KKwor
dm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVFbmQoKQoreworICAgIG1fcGlu
Y2hHZXN0dXJlQWN0aXZlID0gZmFsc2U7CisKKyAgICBtX2NsaWVudC0+c2V0TmVlZHNDb21taXRP
bkltcGxUaHJlYWQoKTsKK30KKworUGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBDQ0xh
eWVyVHJlZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKCkKK3sKKyAgICBPd25QdHI8Q0NT
Y3JvbGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBDQ1Njcm9sbEFuZFNj
YWxlU2V0KCkpOworICAgIGJvb2wgZGlkTW92ZSA9IG1fc2Nyb2xsTGF5ZXJJbXBsICYmICghbV9z
Y3JvbGxMYXllckltcGwtPnNjcm9sbERlbHRhKCkuaXNaZXJvKCkgfHwgbV9zY2FsZURlbHRhICE9
IDEuMGYpOworICAgIGlmICghZGlkTW92ZSB8fCBtX3BpbmNoR2VzdHVyZUFjdGl2ZSkgeworICAg
ICAgICBzY3JvbGxJbmZvLT5wYWdlU2NhbGUgPSBtX3BhZ2VTY2FsZTsKKyAgICAgICAgcmV0dXJu
IHNjcm9sbEluZm8ucmVsZWFzZSgpOwogICAgIH0KKworICAgIC8vIEZJWE1FOiB0cmFjayBzY3Jv
bGxzIGZyb20gbGF5ZXJzIG90aGVyIHRoYW4gdGhlIHJvb3QKKyAgICBzY3JvbGxJbmZvLT5wYWdl
U2NhbGUgPSBtX3BhZ2VTY2FsZSAqIG1fc2NhbGVEZWx0YTsKKyAgICBDQ0xheWVyVHJlZUhvc3RD
b21tb246OlNjcm9sbFVwZGF0ZUluZm8gc2Nyb2xsOworICAgIHNjcm9sbC5sYXllcklkID0gbV9z
Y3JvbGxMYXllckltcGwtPmlkKCk7CisgICAgc2Nyb2xsLnNjcm9sbERlbHRhID0gbV9zY3JvbGxM
YXllckltcGwtPnNjcm9sbERlbHRhKCk7CisgICAgc2Nyb2xsSW5mby0+c2Nyb2xscy5hcHBlbmQo
c2Nyb2xsKTsKKworICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRTY3JvbGxQb3NpdGlvbihtX3Nj
cm9sbExheWVySW1wbC0+c2Nyb2xsUG9zaXRpb24oKSArIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3Jv
bGxEZWx0YSgpKTsKKyAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0UG9zaXRpb24obV9zY3JvbGxM
YXllckltcGwtPnBvc2l0aW9uKCkgLSBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKSk7
CisgICAgbV9zY3JvbGxMYXllckltcGwtPnNldFNjcm9sbERlbHRhKEludFNpemUoKSk7CisKICAg
ICByZXR1cm4gc2Nyb2xsSW5mby5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuaAppbmRleCBiNTNlMjAwMTkxOGM2NTY2NGMyY2NhNjA1NWVhN2U1ZGUwYjRi
NjIyLi5jODdjYzFjYzg0NjcwN2M3ZDc3MDNhN2NlODk3YjA0YTcxMzQyYzFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCkBAIC05Nyw5ICs5NywxNyBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9y
dFNpemU7IH0KICAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYpOwogCisgICAgdm9pZCBzZXRQYWdlU2NhbGUoZmxvYXQpOworICAgIGZs
b2F0IHBhZ2VTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlOyB9CisgICAgdm9pZCBz
ZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdl
U2NhbGUpOworCiAgICAgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHJldHVy
biBtX3NldHRpbmdzOyB9CiAKLSAgICBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBwcm9j
ZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCk7
CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCwgY29uc3QgSW50UG9p
bnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGluY2hHZXN0dXJlRW5kKCk7CisgICAgUGFzc093blB0
cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBwcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgdm9pZCB1
cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpOwogCiBwcm90ZWN0ZWQ6CiAgICAgQ0NMYXllclRyZWVI
b3N0SW1wbChjb25zdCBDQ1NldHRpbmdzJiwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCopOwpA
QCAtMTA4LDYgKzExNiw4IEBAIHByb3RlY3RlZDoKICAgICBpbnQgbV9mcmFtZU51bWJlcjsKIAog
cHJpdmF0ZToKKyAgICB2b2lkIHNldFNjYWxlRGVsdGEoZmxvYXQpOworCiAgICAgT3duUHRyPExh
eWVyUmVuZGVyZXJDaHJvbWl1bT4gbV9sYXllclJlbmRlcmVyOwogICAgIFJlZlB0cjxDQ0xheWVy
SW1wbD4gbV9yb290TGF5ZXJJbXBsOwogICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbV9zY3JvbGxM
YXllckltcGw7CkBAIC0xMTUsNiArMTI1LDEyIEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX3Zp
ZXdwb3J0U2l6ZTsKICAgICBib29sIG1fdmlzaWJsZTsKICAgICBib29sIG1faGF2ZVdoZWVsRXZl
bnRIYW5kbGVyczsKKworICAgIGZsb2F0IG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG1fc2NhbGVE
ZWx0YTsKKyAgICBmbG9hdCBtX21pblBhZ2VTY2FsZSwgbV9tYXhQYWdlU2NhbGU7CisKKyAgICBi
b29sIG1fcGluY2hHZXN0dXJlQWN0aXZlOwogfTsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxD
b250cm9sbGVyLmgKaW5kZXggOTJiOTVkN2RjYWNkNzRhZGYzZGJlNTZmY2YyYTBkZTA4OThiY2M0
Mi4uYzg0MWQyNDNhODA1YTJkMGRmYzI0MDQzZTc5NjgyZWMwMGY4ZWNkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKQEAgLTM2LDYgKzM2LDkgQEAgY2xhc3MgQ0NTY3JvbGxD
b250cm9sbGVyIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUm9vdExheWVyKGNv
bnN0IEludFNpemUmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxl
cnMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRhLCBjb25z
dCBJbnRQb2ludCYgYW5jaG9yKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUVu
ZCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIENDU2Nyb2xsQ29udHJvbGxlcigpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
aW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCBlYjFkY2Q0ZGRiN2U4OGZi
OTkzNmM5Y2RmZDY4YjRkMWYzMWQ3MDJmLi42MjkxZGI1N2ExMWEzNTRiYjA1Y2VkNzJhZDJlMWEx
ZWM3Mzc4NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAt
MTY2LDggKzE2Niw4IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQoKQogI2lm
ICFBU1NFUlRfRElTQUJMRUQKICAgICAgICAgLy8gSW4gdGhlIHNpbmdsZS10aHJlYWRlZCBjYXNl
LCB0aGUgc2Nyb2xsIGRlbHRhcyBzaG91bGQgbmV2ZXIgYmUKICAgICAgICAgLy8gdG91Y2hlZCBv
biB0aGUgaW1wbCBsYXllciB0cmVlLgotICAgICAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+
IHNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7
Ci0gICAgICAgIEFTU0VSVCghc2Nyb2xsSW5mby0+c2l6ZSgpKTsKKyAgICAgICAgT3duUHRyPEND
U2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9j
ZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgICAgIEFTU0VSVCghc2Nyb2xsSW5mby0+c2Nyb2xscy5z
aXplKCkpOwogI2VuZGlmCiAgICAgfQogICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxl
dGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggZGUxOTVlZjIyNmUwMmQxNjhi
MWY0NGQxNDY0YTc0MmVhMjQ3Yjc5Ny4uM2MxMzc3M2I2NWMwNzY0Mjg5NzVkMTZkOWQ4NzRmYTkw
MGZmMDhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTM0MSwxMSArMzQxLDEx
IEBAIFBhc3NPd25QdHI8Q0NNYWluVGhyZWFkOjpUYXNrPiBDQ1RocmVhZFByb3h5OjpjcmVhdGVC
ZWdpbkZyYW1lQW5kQ29tbWl0VGFza09uSW1wCiAgICAgLy8gbnVtYmVycyBiZWxvdyB0aGUgbGFz
dCBleGVjdXRlZCBvbmUuCiAgICAgaW50IHRoaXNUYXNrU2VxdWVuY2VOdW1iZXIgPSBtX251bUJl
Z2luRnJhbWVBbmRDb21taXRzSXNzdWVkT25JbXBsVGhyZWFkOwogICAgIG1fbnVtQmVnaW5GcmFt
ZUFuZENvbW1pdHNJc3N1ZWRPbkltcGxUaHJlYWQrKzsKLSAgICBPd25QdHI8Q0NTY3JvbGxVcGRh
dGVTZXQ+IHNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVs
dGFzKCk7CisgICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8gPSBtX2xh
eWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAgICAgcmV0dXJuIGNyZWF0
ZU1haW5UaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0
LCB0aGlzVGFza1NlcXVlbmNlTnVtYmVyLCBmcmFtZUJlZ2luVGltZSwgc2Nyb2xsSW5mby5yZWxl
YXNlKCkpOwogfQogCi12b2lkIENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVBbmRDb21taXQoaW50
IHNlcXVlbmNlTnVtYmVyLCBkb3VibGUgZnJhbWVCZWdpblRpbWUsIFBhc3NPd25QdHI8Q0NTY3Jv
bGxVcGRhdGVTZXQ+IHNjcm9sbEluZm8pCit2b2lkIENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVB
bmRDb21taXQoaW50IHNlcXVlbmNlTnVtYmVyLCBkb3VibGUgZnJhbWVCZWdpblRpbWUsIFBhc3NP
d25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbykKIHsKICAgICBUUkFDRV9FVkVO
VCgiQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdCIsIHRoaXMsIDApOwogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0zNTMsNyArMzUzLDcgQEAgdm9pZCBDQ1RocmVhZFBy
b3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1l
QmVnaW5UaW0KICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gU2Nyb2xsIGRlbHRhcyBuZWVkIHRv
IGJlIGFwcGxpZWQgZXZlbiBpZiB0aGUgY29tbWl0IHdpbGwgYmUgZHJvcHBlZC4KLSAgICBtX2xh
eWVyVHJlZUhvc3QtPmFwcGx5U2Nyb2xsRGVsdGFzKCpzY3JvbGxJbmZvLmdldCgpKTsKKyAgICBt
X2xheWVyVHJlZUhvc3QtPmFwcGx5U2Nyb2xsQW5kU2NhbGUoKnNjcm9sbEluZm8uZ2V0KCkpOwog
CiAgICAgLy8gRHJvcCBiZWdpbkZyYW1lQW5kQ29tbWl0IGNhbGxzIHRoYXQgb2NjdXIgb3V0IG9m
IHNlcXVlbmNlLiBTZWUgY3JlYXRlQmVnaW5GcmFtZUFuZENvbW1pdFRhc2tPbkltcGxUaHJlYWQg
Zm9yCiAgICAgLy8gYW4gZXhwbGFuYXRpb24gb2YgaG93IG91dC1vZi1zZXF1ZW5jZSBiZWdpbkZy
YW1lQW5kQ29tbWl0IHRhc2tzIGNhbiBvY2N1ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAppbmRl
eCAxNjc2ZjgzNzBiYmVjMGY0NmQ5MDFkOTQzZTczYTVmOTcxODlmMGUzLi5kZmYwNWJiZGY2YTkz
M2ZlMTY4YjVmZmRkZmZjZjdiZDlkODA3ZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCkBA
IC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ0NUaHJlYWRQcm94eShDQ0xh
eWVyVHJlZUhvc3QqKTsKIAogICAgIC8vIENhbGxlZCBvbiBDQ01haW5UaHJlYWQKLSAgICB2b2lk
IGJlZ2luRnJhbWVBbmRDb21taXQoaW50IHNlcXVlbmNlTnVtYmVyLCBkb3VibGUgZnJhbWVCZWdp
blRpbWUsIFBhc3NPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+KTsKKyAgICB2b2lkIGJlZ2luRnJh
bWVBbmRDb21taXQoaW50IHNlcXVlbmNlTnVtYmVyLCBkb3VibGUgZnJhbWVCZWdpblRpbWUsIFBh
c3NPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4pOwogICAgIHZvaWQgZGlkQ29tbWl0QW5kRHJh
d0ZyYW1lKGludCBmcmFtZU51bWJlcik7CiAKICAgICAvLyBDYWxsZWQgb24gQ0NUaHJlYWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdD
bGllbnQuaAppbmRleCAwOTEyNjljN2FiNTQ5MDhmYmYyODU4MzNiNWUxODYwY2EzZDJiMzNmLi42
ZjUwMDk2MDc2Y2RmNjYyYjcyNGEwMTgzNDUzNzRjNGIwZDZhZDc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCkBA
IC0zNyw5ICszNywxMSBAQCBwdWJsaWM6CiAgICAgLy8gc28gdGhhdCBsYXllcnMgY2FuIGJlIHVw
ZGF0ZWQgYXQgdGhlIGdpdmVuIGZyYW1lIHRpbWUuCiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGVB
bmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSA9IDA7CiAKLSAgICAvLyBBcHBsaWVzIGEg
c2Nyb2xsIGRlbHRhIHRvIHRoZSByb290IGxheWVyLiBUaGlzIGlzIHRyaWdnZXJlZCBieSBldmVu
dHMKLSAgICAvLyBzZW50IHRvIHRoZSBjb21wb3NpdG9yIHRocmVhZCB0aHJvdWdoIHRoZSBXZWJD
b21wb3NpdG9yIGludGVyZmFjZS4KLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShj
b25zdCBXZWJTaXplJikgPSAwOworICAgIC8vIEFwcGxpZXMgYSBzY3JvbGwgZGVsdGEgdG8gdGhl
IHJvb3QgbGF5ZXIsIHdoaWNoIGlzIGJ1bmRsZWQgd2l0aCBhIHBhZ2UKKyAgICAvLyBzY2FsZSBm
YWN0b3IgdGhhdCBtYXkgYXBwbHkgYSBDU1MgdHJhbnNmb3JtIG9uIHRoZSB3aG9sZSBkb2N1bWVu
dCAodXNlZAorICAgIC8vIGZvciBtb2JpbGUtZGV2aWNlIHBpbmNoIHpvb21pbmcpLiBUaGlzIGlz
IHRyaWdnZXJlZCBieSBldmVudHMgc2VudCB0byB0aGUKKyAgICAvLyBjb21wb3NpdG9yIHRocmVh
ZCB0aHJvdWdoIHRoZSBXZWJDb21wb3NpdG9yIGludGVyZmFjZS4KKyAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgc2Nh
bGVGYWN0b3IpID0gMDsKIAogICAgIC8vIENyZWF0ZXMgYSAzRCBjb250ZXh0IHN1aXRhYmxlIGZv
ciB0aGUgY29tcG9zaXRpbmcuIFRoaXMgbWF5IGJlIGNhbGxlZAogICAgIC8vIG1vcmUgdGhhbiBv
bmNlIGlmIHRoZSBjb250ZXh0IGdldHMgbG9zdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXcuaAppbmRleCBjNzdmNDUyZDBmNmMyZDBjZGY0OTRkNDUzOGU4NTA4YzcwNjQ5ZGM0
Li40MjhiODI3NDdhYzFkMmY1YzA2ODNmNWFhMTlmMjE5MTRlNWI5ZDM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0yMDcsNiArMjA3LDExIEBAIHB1YmxpYzoK
ICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBkb3VibGUgem9vbUxldmVsVG9ab29tRmFjdG9yKGRv
dWJsZSB6b29tTGV2ZWwpOwogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGRvdWJsZSB6b29tRmFj
dG9yVG9ab29tTGV2ZWwoZG91YmxlIGZhY3Rvcik7CiAKKyAgICAvLyBQYWdlU2NhbGVGYWN0b3Ig
d2lsbCBiZSBmb3JjZS1jbGFtcGVkIGJldHdlZW4gbWluUGFnZVNjYWxlIGFuZCBtYXhQYWdlU2Nh
bGUKKyAgICAvLyAoYW5kIHRoZXNlIHZhbHVlcyB3aWxsIHBlcnNpc3QgdW50aWwgc2V0UGFnZVNj
YWxlRmFjdG9yTGltaXRzIGlzIGNhbGxlZAorICAgIC8vIGFnYWluKS4KKyAgICB2aXJ0dWFsIHZv
aWQgc2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VTY2FsZSwgZmxvYXQgbWF4
UGFnZVNjYWxlKSA9IDA7CisKICAgICAvLyBHZXRzIHRoZSBzY2FsZSBmYWN0b3Igb2YgdGhlIHBh
Z2UsIHdoZXJlIDEuMCBpcyB0aGUgbm9ybWFsIHNpemUsID4gMS4wCiAgICAgLy8gaXMgc2NhbGVk
IHVwLCA8IDEuMCBpcyBzY2FsZWQgZG93bi4KICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZh
Y3RvcigpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkNvbXBvc2l0b3JJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNv
bXBvc2l0b3JJbXBsLmNwcAppbmRleCBkOGJkM2ExNjM0MWI3OWM1ZmIyMjFkN2EzZmUyMGQ2MTgw
YzQ5YWQ3Li5jZjMzMzM1NjZlNDMxODhkOWU1MzBhYzliNWYxOGQ5ZjM0Zjc5ZmU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwCkBAIC0x
MzMsNCArMTMzLDMgQEAgaW50IFdlYkNvbXBvc2l0b3JJbXBsOjppZGVudGlmaWVyKCkgY29uc3QK
IH0KIAogfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXll
clRyZWVWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRy
ZWVWaWV3SW1wbC5jcHAKaW5kZXggMmU2OWVjMzQ3Y2RkMGU1MDVhZTU1ZjJjNTBhY2FhYTk2ZDRk
YTFiZi4uZGRiZTA2NDMxYzY1N2VkMzczNGM1NDE4ZmI3MDRlYWJmNDRjYjIwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcApA
QCAtNjUsMTAgKzY1LDEwIEBAIHZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmFuaW1hdGVBbmRM
YXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKQogICAgICAgICBtX2NsaWVudC0+YW5pbWF0ZUFu
ZExheW91dChmcmFtZUJlZ2luVGltZSk7CiB9CiAKLXZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6
OmFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEpCit2b2lkIFdl
YkxheWVyVHJlZVZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUpCiB7CiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxEZWx0YShXZWJTaXplKGRlbHRhKSk7Cisg
ICAgICAgIG1fY2xpZW50LT5hcHBseVNjcm9sbEFuZFNjYWxlKFdlYlNpemUoc2Nyb2xsRGVsdGEp
LCBwYWdlU2NhbGUpOwogfQogCiBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBXZWJMYXll
clRyZWVWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAppbmRleCAxYjEz
YmYzNDU5MTMxODFiN2UwN2Q3ZDJiZTc4Njg4Y2Y5YzQ0M2JmLi5kNmRkNmUzMzI4NzJjN2M5YWMw
ZGQwYmRjNjgxZjZmOTBmNGY1M2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHJpdmF0ZToKICAg
ICBXZWJMYXllclRyZWVWaWV3SW1wbChXZWJMYXllclRyZWVWaWV3Q2xpZW50KiwgY29uc3QgV2Vi
TGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJik7CiAgICAgdmly
dHVhbCB+V2ViTGF5ZXJUcmVlVmlld0ltcGwoKTsKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZUFu
ZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNj
cm9sbERlbHRhKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBw
bHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxv
YXQgcGFnZVNjYWxlKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKGludCBmcmFtZU51bWJlcik7CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYjJkMTZlNTFjNzNlZGZjNjRh
N2MwYzAzZTg4YTM2ZDllM2ZkMGE0Yy4uNmE4ZDczODlkNzIwMTk0ODZlZjViMjY4OGQyOTRmNWRi
NmMwMzU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApA
QCAtMTg5OCw2ICsxODk4LDIzIEBAIHZvaWQgV2ViVmlld0ltcGw6OmVuYWJsZUZpeGVkTGF5b3V0
TW9kZShib29sIGVuYWJsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZnJhbWUtPnZpZXcoKS0+
c2V0VXNlRml4ZWRMYXlvdXQoZW5hYmxlKTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyAgICAvLyBBbHNvIG5vdGlmeSB0aGUgYmFzZSBsYXllciwgd2hpY2ggUmVuZGVyTGF5
ZXJDb21wb3NpdG9yIGRvZXMgbm90IHNlZS4KKyAgICBpZiAobV9ub25Db21wb3NpdGVkQ29udGVu
dEhvc3QpIHsKKyAgICAgICAgR3JhcGhpY3NMYXllciogcm9vdCA9IG1fbm9uQ29tcG9zaXRlZENv
bnRlbnRIb3N0LT50b3BMZXZlbFJvb3RMYXllcigpOworICAgICAgICByb290LT5kZXZpY2VPclBh
Z2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKKyAgICB9CisKKyAgICB1cGRhdGVMYXllclRyZWVWaWV3
cG9ydCgpOworI2VuZGlmCit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFBhZ2VTY2FsZUZhY3Rv
ckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSkKK3sKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRQYWdl
U2NhbGVGYWN0b3JMaW1pdHMobWluUGFnZVNjYWxlLCBtYXhQYWdlU2NhbGUpOworI2VuZGlmCiB9
CiAKIFdlYlNpemUgV2ViVmlld0ltcGw6OmZpeGVkTGF5b3V0U2l6ZSgpIGNvbnN0CkBAIC0yNzA2
LDEyICsyNzIzLDMwIEBAIHZvaWQgV2ViVmlld0ltcGw6OmFuaW1hdGVBbmRMYXlvdXQoZG91Ymxl
IGZyYW1lQmVnaW5UaW1lKQogICAgIGxheW91dCgpOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjph
cHBseVNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQordm9pZCBXZWJWaWV3
SW1wbDo6YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxv
YXQgc2NhbGVGYWN0b3IpCiB7CiAgICAgaWYgKCFtYWluRnJhbWVJbXBsKCkgfHwgIW1haW5GcmFt
ZUltcGwoKS0+ZnJhbWVWaWV3KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1haW5GcmFtZUlt
cGwoKS0+ZnJhbWVWaWV3KCktPnNjcm9sbEJ5KHNjcm9sbERlbHRhKTsKKyAgICBmbG9hdCBvbGRT
Y2FsZSA9IHBhZ2VTY2FsZUZhY3RvcigpOworICAgIGlmICghb2xkU2NhbGUpCisgICAgICAgIG9s
ZFNjYWxlID0gMS4wZjsKKworICAgIGlmICghc2NhbGVGYWN0b3IgfHwgb2xkU2NhbGUgPT0gc2Nh
bGVGYWN0b3IpCisgICAgICAgIG1haW5GcmFtZUltcGwoKS0+ZnJhbWVWaWV3KCktPnNjcm9sbEJ5
KHNjcm9sbERlbHRhKTsKKyAgICBlbHNlIHsKKyAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUgY2hh
bmdlZCwgc28gYXBwbHkgYSBzY2FsZSBhbmQgc2Nyb2xsIGluIGEgc2luZ2xlCisgICAgICAgIC8v
IG9wZXJhdGlvbi4gVGhlIG9sZCBzY3JvbGwgb2Zmc2V0IChhbmQgcGFzc2VkLWluIGRlbHRhKSBh
cmUKKyAgICAgICAgLy8gaW4gdGhlIG9sZCBjb29yZGluYXRlIHNwYWNlLCBzbyB3ZSBmaXJzdCBu
ZWVkIHRvIG11bHRpcGx5IHRoZW0KKyAgICAgICAgLy8gYnkgdGhlIHBhZ2Ugc2NhbGUgZGVsdGEu
CisgICAgICAgIFdlYlNpemUgc2Nyb2xsT2Zmc2V0ID0gbWFpbkZyYW1lKCktPnNjcm9sbE9mZnNl
dCgpOworICAgICAgICBzY3JvbGxPZmZzZXQud2lkdGggKz0gc2Nyb2xsRGVsdGEud2lkdGgoKTsK
KyAgICAgICAgc2Nyb2xsT2Zmc2V0LmhlaWdodCArPSBzY3JvbGxEZWx0YS5oZWlnaHQoKTsKKyAg
ICAgICAgZmxvYXQgc2NhbGVEZWx0YSA9IHNjYWxlRmFjdG9yIC8gb2xkU2NhbGU7CisgICAgICAg
IFdlYlBvaW50IHNjYWxlZFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQud2lkdGggKiBzY2FsZURl
bHRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0Lmhl
aWdodCAqIHNjYWxlRGVsdGEpOworICAgICAgICBzZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0
b3IsIHNjYWxlZFNjcm9sbE9mZnNldCk7CisgICAgfQogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpk
aWRDb21taXRBbmREcmF3RnJhbWUoaW50IGZyYW1lTnVtYmVyKQpAQCAtMjc1Myw4ICsyNzg4LDkg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlTGF5ZXJUcmVlVmlld3BvcnQoKQogICAgIEludFJl
Y3QgdmlzaWJsZVJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QodHJ1ZSAvKiBpbmNsdWRl
IHNjcm9sbGJhcnMgKi8pOwogICAgIEludFBvaW50IHNjcm9sbCh2aWV3LT5zY3JvbGxYKCksIHZp
ZXctPnNjcm9sbFkoKSk7CiAKLSAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC0+c2V0Vmll
d3BvcnQodmlzaWJsZVJlY3Quc2l6ZSgpLCB2aWV3LT5jb250ZW50c1NpemUoKSwgc2Nyb2xsKTsK
KyAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC0+c2V0Vmlld3BvcnQodmlzaWJsZVJlY3Qu
c2l6ZSgpLCB2aWV3LT5jb250ZW50c1NpemUoKSwgc2Nyb2xsLCBwYWdlU2NhbGVGYWN0b3IoKSk7
CiAgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3cG9ydCh2aXNpYmxlUmVjdC5zaXplKCkpOwor
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0UGFnZVNjYWxlKHBhZ2VTY2FsZUZhY3RvcigpKTsKIH0K
IAogV2ViR3JhcGhpY3NDb250ZXh0M0QqIFdlYlZpZXdJbXBsOjpncmFwaGljc0NvbnRleHQzRCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA0ZDEyYjI5NDMz
YjI0MTlmZTY5YzUyNjgzMjA0MjQ2YWU2MTU3NGQxLi44ZGE2MzJkMjUyNmM5NzcxN2NmMjgzMTg3
OTRjNTNlYWEyMGVkNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKQEAgLTE2MCw2ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2NhbGVQYWdlKGZsb2F0IHNjYWxl
RmFjdG9yLCBjb25zdCBXZWJQb2ludCYgb3JpZ2luKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UGFn
ZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yLCBjb25zdCBXZWJQb2ludCYgb3JpZ2luKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VT
Y2FsZSwgZmxvYXQgbWF4UGFnZVNjYWxlKTsKICAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxl
RmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZs
b2F0KTsKICAgICB2aXJ0dWFsIGJvb2wgaXNGaXhlZExheW91dE1vZGVFbmFibGVkKCkgY29uc3Q7
CkBAIC0yMjEsNyArMjIyLDcgQEAgcHVibGljOgogCiAgICAgLy8gQ0NMYXllclRyZWVIb3N0Q2xp
ZW50CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGVBbmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5U
aW1lKTsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJik7CisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYsIGZsb2F0KTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKGludCBmcmFtZU51bWJlcik7CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdElt
cGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
SW1wbFRlc3QuY3BwCmluZGV4IGZhNWM3MGNiZjFiNDMzOThhMTAyMzEyMWUxNzVhNTAzMjVhYzhh
MzYuLjRjNDM0ODdlZDViZjA3N2Y2OTViZmZkMjc1MjY2YWJlNmNhYjMyMjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRl
c3QuY3BwCkBAIC01OSwxNCArNTksMTQgQEAgcHVibGljOgogICAgICAgICAgICAgZXhwZWN0Q2xl
YXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShsYXllci0+Y2hpbGRyZW4oKVtpXS5nZXQoKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIHZvaWQgZXhwZWN0Q29udGFpbnMoY29uc3QgQ0NTY3JvbGxVcGRh
dGVTZXQmIHNjcm9sbEluZm8sIGludCBpZCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCisg
ICAgc3RhdGljIHZvaWQgZXhwZWN0Q29udGFpbnMoY29uc3QgQ0NTY3JvbGxBbmRTY2FsZVNldCYg
c2Nyb2xsSW5mbywgaW50IGlkLCBjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICB7CiAg
ICAgICAgIGludCB0aW1lc0VuY291bnRlcmVkID0gMDsKIAotICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNjcm9sbEluZm8uc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChzY3Jv
bGxJbmZvW2ldLmxheWVySWQgIT0gaWQpCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2Nyb2xsSW5mby5zY3JvbGxzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoc2Nyb2xs
SW5mby5zY3JvbGxzW2ldLmxheWVySWQgIT0gaWQpCiAgICAgICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgICAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mb1tpXS5zY3JvbGxEZWx0YSwgc2Nyb2xs
RGVsdGEpOworICAgICAgICAgICAgQVNTRVJUX0VRKHNjcm9sbEluZm8uc2Nyb2xsc1tpXS5zY3Jv
bGxEZWx0YSwgc2Nyb2xsRGVsdGEpOwogICAgICAgICAgICAgdGltZXNFbmNvdW50ZXJlZCsrOwog
ICAgICAgICB9CiAKQEAgLTg0LDggKzg0LDggQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxU
ZXN0LCBzY3JvbGxEZWx0YU5vTGF5ZXJzKQogewogICAgIEFTU0VSVF9GQUxTRShtX2hvc3RJbXBs
LT5yb290TGF5ZXIoKSk7CiAKLSAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+IHNjcm9sbElu
Zm8gPSBtX2hvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7Ci0gICAgQVNTRVJUX0VRKHNj
cm9sbEluZm8tPnNpemUoKSwgMHUpOworICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBz
Y3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOworICAgIEFTU0VS
VF9FUShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMHUpOwogfQogCiBURVNUX0YoQ0NMYXll
clRyZWVIb3N0SW1wbFRlc3QsIHNjcm9sbERlbHRhVHJlZUJ1dE5vQ2hhbmdlcykKQEAgLTEwMCwx
NCArMTAwLDE0IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsRGVsdGFU
cmVlQnV0Tm9DaGFuZ2VzKQogCiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2
ZShyb290LmdldCgpKTsKIAotICAgIE93blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5m
bzsKKyAgICBPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbzsKIAogICAgIHNj
cm9sbEluZm8gPSBtX2hvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7Ci0gICAgQVNTRVJU
X0VRKHNjcm9sbEluZm8tPnNpemUoKSwgMHUpOworICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5z
Y3JvbGxzLnNpemUoKSwgMHUpOwogICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNp
dmUocm9vdC5nZXQoKSk7CiAKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Nj
cm9sbERlbHRhcygpOwotICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsKKyAg
ICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDB1KTsKICAgICBleHBlY3RD
bGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogfQogCkBAIC0xMTcsMTUg
KzExNywxNiBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHNjcm9sbERlbHRhUmVw
ZWF0ZWRTY3JvbGxzKQogICAgIEludFNpemUgc2Nyb2xsRGVsdGEoMTEsIC0xNSk7CiAgICAgUmVm
UHRyPENDTGF5ZXJJbXBsPiByb290ID0gQ0NMYXllckltcGw6OmNyZWF0ZSgxMCk7CiAgICAgcm9v
dC0+c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOworICAgIHJvb3QtPnNldFNjcm9s
bGFibGUodHJ1ZSk7CiAgICAgcm9vdC0+c2V0TWF4U2Nyb2xsUG9zaXRpb24oSW50U2l6ZSgxMDAs
IDEwMCkpOwogICAgIHJvb3QtPnNjcm9sbEJ5KHNjcm9sbERlbHRhKTsKICAgICBtX2hvc3RJbXBs
LT5zZXRSb290TGF5ZXIocm9vdCk7CiAKLSAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+IHNj
cm9sbEluZm87CisgICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm87CiAK
ICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAg
IEFTU0VSVF9FUShyb290LT5zY3JvbGxQb3NpdGlvbigpLCBzY3JvbGxQb3NpdGlvbiArIHNjcm9s
bERlbHRhKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAxdSk7CisgICAgQVNT
RVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAxdSk7CiAgICAgZXhwZWN0Q29udGFp
bnMoKnNjcm9sbEluZm8uZ2V0KCksIHJvb3QtPmlkKCksIHNjcm9sbERlbHRhKTsKICAgICBleHBl
Y3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogCkBAIC0xMzMsMTQg
KzEzNCwxNCBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHNjcm9sbERlbHRhUmVw
ZWF0ZWRTY3JvbGxzKQogICAgIHJvb3QtPnNjcm9sbEJ5KHNjcm9sbERlbHRhMik7CiAgICAgc2Ny
b2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKICAgICBBU1NFUlRf
RVEocm9vdC0+c2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsUG9zaXRpb24gKyBzY3JvbGxEZWx0YSAr
IHNjcm9sbERlbHRhMik7Ci0gICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNpemUoKSwgMXUpOwor
ICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMXUpOwogICAgIGV4cGVj
dENvbnRhaW5zKCpzY3JvbGxJbmZvLmdldCgpLCByb290LT5pZCgpLCBzY3JvbGxEZWx0YTIpOwog
ICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUocm9vdC5nZXQoKSk7CiAKICAg
ICByb290LT5zY3JvbGxCeShJbnRTaXplKCkpOwogICAgIHNjcm9sbEluZm8gPSBtX2hvc3RJbXBs
LT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAgICAgQVNTRVJUX0VRKHJvb3QtPnNjcm9sbFBvc2l0
aW9uKCksIHNjcm9sbFBvc2l0aW9uICsgc2Nyb2xsRGVsdGEgKyBzY3JvbGxEZWx0YTIpOwotICAg
IEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xs
SW5mby0+c2Nyb2xscy5zaXplKCksIDB1KTsKICAgICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVsdGFz
UmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAppbmRleCA1OWNiYWIxMTBiNmQzZGZm
NjQ5OWYzNDIzNWE3ZWExMjY5N2NkZTBhLi45ZDkxYmNkMGUwNTU5MmExZjBhNzYwZmQ4MmE4MjZi
ZGI3MjBjYjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NM
YXllclRyZWVIb3N0VGVzdC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBiZWdpbkNvbW1pdE9uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBjb21taXRDb21wbGV0ZU9uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0
SW1wbCopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkcmF3TGF5ZXJzT25DQ1RocmVhZChDQ0xheWVy
VHJlZUhvc3RJbXBsKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29u
c3QgSW50U2l6ZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNv
bnN0IEludFNpemUmLCBmbG9hdCkgeyB9CiB9OwogCiAvLyBBZGFwdHMgQ0NMYXllclRyZWVIb3N0
SW1wbCBmb3IgdGVzdC4gUnVucyByZWFsIGNvZGUsIHRoZW4gaW52b2tlcyB0ZXN0IGhvb2tzLgpA
QCAtMTUzLDkgKzE1Myw5IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdmlydHVhbCB2
b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCisgICAgdmly
dHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEs
IGZsb2F0IHNjYWxlKQogICAgIHsKLSAgICAgICAgbV90ZXN0SG9va3MtPmFwcGx5U2Nyb2xsRGVs
dGEoc2Nyb2xsRGVsdGEpOworICAgICAgICBtX3Rlc3RIb29rcy0+YXBwbHlTY3JvbGxBbmRTY2Fs
ZShzY3JvbGxEZWx0YSwgc2NhbGUpOwogICAgIH0KIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gY3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpCkBAIC02MjQs
NyArNjI0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpCiAgICAg
ewotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRNYXhTY3JvbGxQb3Np
dGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExh
eWVyKCktPnNldFNjcm9sbGFibGUodHJ1ZSk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9v
dExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKG1faW5pdGlhbFNjcm9sbCk7CiAgICAgICAgIHBv
c3RTZXROZWVkc0NvbW1pdFRvTWFpblRocmVhZCgpOwogICAgIH0KQEAgLTY0Nyw2ICs2NDcsOCBA
QCBwdWJsaWM6CiAgICAgICAgIENDTGF5ZXJJbXBsKiByb290ID0gaW1wbC0+cm9vdExheWVyKCk7
CiAgICAgICAgIEVYUEVDVF9FUShyb290LT5zY3JvbGxEZWx0YSgpLCBJbnRTaXplKCkpOwogCisg
ICAgICAgIHJvb3QtPnNldFNjcm9sbGFibGUodHJ1ZSk7CisgICAgICAgIHJvb3QtPnNldE1heFNj
cm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDApKTsKICAgICAgICAgcm9vdC0+c2Nyb2xsQnko
bV9zY3JvbGxBbW91bnQpOwogCiAgICAgICAgIGlmIChpbXBsLT5mcmFtZU51bWJlcigpID09IDEp
IHsKQEAgLTY2MCw3ICs2NjIsNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkK
KyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3Jv
bGxEZWx0YSwgZmxvYXQgc2NhbGUpCiAgICAgewogICAgICAgICBJbnRQb2ludCBwb3NpdGlvbiA9
IG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNjcm9sbFBvc2l0aW9uKCk7CiAgICAgICAg
IG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9u
ICsgc2Nyb2xsRGVsdGEpOwpAQCAtNjk0LDcgKzY5Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBiZWdpblRlc3QoKQogICAgIHsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290
TGF5ZXIoKS0+c2V0TWF4U2Nyb2xsUG9zaXRpb24oSW50U2l6ZSgxMDAsIDEwMCkpOworICAgICAg
ICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxhYmxlKHRydWUpOwogICAg
ICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihtX2lu
aXRpYWxTY3JvbGwpOwogICAgICAgICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQoKTsK
ICAgICB9CkBAIC03MTMsNiArNzE1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkcmF3
TGF5ZXJzT25DQ1RocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKiBpbXBsKQogICAgIHsKICAgICAg
ICAgQ0NMYXllckltcGwqIHJvb3QgPSBpbXBsLT5yb290TGF5ZXIoKTsKKyAgICAgICAgcm9vdC0+
c2V0U2Nyb2xsYWJsZSh0cnVlKTsKKyAgICAgICAgcm9vdC0+c2V0TWF4U2Nyb2xsUG9zaXRpb24o
SW50U2l6ZSgxMDAsIDEwMCkpOwogCiAgICAgICAgIGlmIChpbXBsLT5mcmFtZU51bWJlcigpID09
IDEpIHsKICAgICAgICAgICAgIEVYUEVDVF9FUShyb290LT5zY3JvbGxEZWx0YSgpLCBJbnRTaXpl
KCkpOwpAQCAtNzM1LDcgKzczOSw3IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotICAg
IHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRh
KQorICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBmbG9hdCBzY2FsZSkKICAgICB7CiAgICAgICAgIEludFBvaW50IHBvc2l0aW9u
ID0gbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2Nyb2xsUG9zaXRpb24oKTsKICAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24ocG9zaXRp
b24gKyBzY3JvbGxEZWx0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
TGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGM0MzdmOGFjZTBhMDE0YjEwNWUzN2ZkZTcwMTUw
ZjBkNjhjZjk0NjMuLmVkOWNlY2I5NjM2NjE5YWNkMjVlNDAyMDU5MWFkYTZkMzYzYTkzMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwCkBAIC02NDYsNiArNjQ2LDcgQEAgVEVTVF9GKExheWVyQ2hyb21pdW1UZXN0LCBjaGVja1By
b3BlcnR5Q2hhbmdlQ2F1c2VzQ29ycmVjdEJlaGF2aW9yKQogICAgIEVYRUNVVEVfQU5EX1ZFUklG
WV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0T3Bh
cXVlKGZhbHNlKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9S
KG1vY2tEZWxlZ2F0ZSwgMSwgdGVzdExheWVyLT5zZXRQb3NpdGlvbihGbG9hdFBvaW50KDQuMGYs
IDkuMGYpKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1v
Y2tEZWxlZ2F0ZSwgMSwgdGVzdExheWVyLT5zZXRTdWJsYXllclRyYW5zZm9ybShUcmFuc2Zvcm1h
dGlvbk1hdHJpeCgpKSk7CisgICAgRVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFW
SU9SKG1vY2tEZWxlZ2F0ZSwgMSwgdGVzdExheWVyLT5zZXRTY3JvbGxhYmxlKHRydWUpKTsKICAg
ICBFWEVDVVRFX0FORF9WRVJJRllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAx
LCB0ZXN0TGF5ZXItPnNldFRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKSk7CiAgICAg
RVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tEZWxlZ2F0ZSwgMSwg
dGVzdExheWVyLT5zZXREb3VibGVTaWRlZChmYWxzZSkpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>114339</attachid>
            <date>2011-11-09 12:17:11 -0800</date>
            <delta_ts>2011-11-09 12:17:11 -0800</delta_ts>
            <desc>Archive of layout-test-results from ec2-cr-linux-01</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>43353</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAACChaT8AAAAAAAAAAAAAAAAYABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvVVQJ
AAPb3bpO3N26TnV4CwABBOgDAAAE6AMAAFBLAwQKAAAAAAAcoWk/AAAAAAAAAAAAAAAAIwAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvVVQJAAPY3bpO3N26TnV4CwABBOgDAAAE
6AMAAFBLAwQUAAIACAAcoWk/NL0w8fYAAAB4AQAARgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNzcy1ydWxlLXR5cGVzLXN0ZGVyci50eHRVVAkAA9fduk7X
3bpOdXgLAAEE6AMAAAToAwAAVY8/T8MwEMXn9lN0bDeTOHHsNQxFIJZEMCCGS3wtEfEf2Y5ovz1n
NUJl8t3z+7272wwQUSmNw3JWqkswfvcBRryv94fdB7tUIOWAn9vNjdiDdfZq3BJ3FgxGT8bDSj0u
xnfT2cJ8BKtnDGuCLOQgKYFdxKlsWN2U1Viw3AMXVU3VOw6tCxT/6mzrjHdxSqhbZxPadHQxKRUx
vU34411It1hiRZ1jCX6eyEFvdjwZPyu1eA0JX+CKoQ+I/1Fej6LihPYYU/eFMwEBaULu89Tg5r/1
OWeAmsxhsfl/VYuS6YZUA5NdBdGU91cWZMDc8wehT3JLt+EvUEsDBBQAAgAIABuhaT9qw0C39wAA
AHgBAABQABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tYWRk
LWV2ZW50cy1pbi1oYW5kbGVyLWNyYXNoLWxvZy50eHRVVAkAA9bduk7W3bpOdXgLAAEE6AMAAATo
AwAAVY8/T8MwEMXn9lN0bDeTOnHsNQxFIJZEMCCGS3wpEfEf2Y5ovz1nNUJl8t3z+7272/QQUSmN
/XJWqk0wfHcBBryv94fdB7uUIGWPn9vNjdiDdfZq3BJ3FgxGT8bDSj0uxrfT2cJ8AqtnDGuCLGQv
KYFdxFhWgwSmh4LlHrgoK6resW9coPhXZxtnvItTQt04m9Cmk4tJqYjpbcIf70K6xRIrqhxL8PNE
Dnqz48n4WanFa0j4AlcMXUD8j/JqECUntMOY2i+cCQhIE3KfpwY3/63POQPUZA6Lzf+rWhyZrkk1
MNlVEPXx7ko51rrG3PMHoUe5pdvwF1BLAwQUAAIACAAcoWk///02pvYAAAB4AQAASwAcAHRtcC9s
YXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1ub3JtYWwt
Y3Jhc2gtbG9nLnR4dFVUCQAD2N26Ttjduk51eAsAAQToAwAABOgDAABVjz9PwzAQxef2U3RsN5M6
cew1DEUglkQwIIZLfCkR8R/Zjmi/PWc1QmXy3fP7vbvb9BBRKY39claqTTB8dwEGvK/3h90Hu5Qg
ZY+f282N2IN19mrcEncWDEZPxsNKPS7Gt9PZwnwCq2cMa4IsZC8pgV3EOIKQTOJQsNwDF2VF1Tv2
jQsU/+ps44x3cUqoG2cT2nRyMSkVMb1N+ONdSLdYYkWVYwl+nshBb3Y8GT8rtXgNCV/giqELiP9R
Xg2i5IR2GFP7hTMBAWlC7vPU4Oa/9TlngJrMYbH5f1WLI9M1qQYmuwqiPt5fWUtdY+75g9Cj3NJt
+AtQSwMEFAACAAgAHKFpPxHC1k73AAAAeAEAAEoAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1jb250cm9sbGVyLWRydC1hcGktc3RkZXJyLnR4dFVUCQAD1926
Ttfduk51eAsAAQToAwAABOgDAABVjz9vgzAQxefkU2RMNgoGY690SNSqC6gdqg4HPlIU/Ee2UZNv
37OCqnTy3fP7vbvb9BBQSoX9cpayjTBcOg8DPtb7w+4zu5YgRI9f282d2IOx5qbtEnYGNAZHxsNK
PS/atdPZwHwEo2b0a4LIRS8oIbvykRVjWdRsyLPUA+NlRdUH9o31FP9mTWO1s2GKqBprIpp4tCFK
GTC+T/jjrI/3WGJ5lWIJfpnIQW9ynLSbpVycgoivcEPfecT/KKsGXjJCOwyx/caZAI80IfVpqrfz
3/qMZYCKzH4x6X9V8yJTNakaJrMKvC4er6xGVWPq2RNXo9jSbfgLUEsDBBQAAgAIAByhaT80vTDx
9gAAAHgBAABJABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24t
Y3NzLXJ1bGUtdHlwZXMtY3Jhc2gtbG9nLnR4dFVUCQAD1926Ttfduk51eAsAAQToAwAABOgDAABV
jz9PwzAQxef2U3RsN5M4cew1DEUglkQwIIZLfC0R8R/Zjmi/PWc1QmXy3fP7vbvbDBBRKY3Dclaq
SzB+9wFGvK/3h90Hu1Qg5YCf282N2IN19mrcEncWDEZPxsNKPS7Gd9PZwnwEq2cMa4Is5CApgV3E
qWxY3ZTVWLDcAxdVTdU7Dq0LFP/qbOuMd3FKqFtnE9p0dDEpFTG9TfjjXUi3WGJFnWMJfp7IQW92
PBk/K7V4DQlf4IqhD4j/UV6PouKE9hhT94UzAQFpQu7z1ODmv/U5Z4CazGGx+X9Vi5LphlQDk10F
0ZT3VxZkwNzzB6FPcku34S9QSwMEFAACAAgAHKFpPwThx8n3AAAAeAEAAEQAHAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tY3Jhc2gtbG9nLnR4
dFVUCQAD2N26Ttjduk51eAsAAQToAwAABOgDAABVj71uwzAMhOfkKTImm+PIlqXVHVK06GKjHYoO
lMUkRq0fSDKavH0pxCjSSeTpviO5UhBRSo1qPkvZJRi++wADPtbb3eazuFYghMKv9epObME6ezNu
jhsLBqMn426hnmbju/FsYTqC1ROGJUGUQglKKK78VJeq2A84lEXugfGqpuoDVesCxb852zrjXRwT
6tbZhDYdXUxSRkzvI/54F9I9llhe51iCX0Zy0Jsdz8ZPUs5eQ8JXuGHoA+J/lNUDrxihPcbUXXAi
ICBNyH2eGtz0tz5jBaAmc5ht/l/U8lDohlQDo10E3hwer1RCN5h7tuf6JNZ0G/4CUEsDBBQAAgAI
AByhaT8RwtZO9wAAAHgBAABNABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9h
bmltYXRpb24tY29udHJvbGxlci1kcnQtYXBpLWNyYXNoLWxvZy50eHRVVAkAA9fduk7X3bpOdXgL
AAEE6AMAAAToAwAAVY8/b4MwEMXn5FNkTDYKBmOvdEjUqguoHaoOBz5SFPxHtlGTb9+zgqp08t3z
+7272/QQUEqF/XKWso0wXDoPAz7W+8PuM7uWIESPX9vNndiDseam7RJ2BjQGR8bDSj0v2rXT2cB8
BKNm9GuCyEUvKCG78pEVY1nUbMiz1APjZUXVB/aN9RT/Zk1jtbNhiqgaayKaeLQhShkwvk/446yP
91hieZViCX6ZyEFvcpy0m6VcnIKIr3BD33nE/yirBl4yQjsMsf3GmQCPNCH1aaq389/6jGWAisx+
Mel/VfMiUzWpGiazCrwuHq+sRlVj6tkTV6PY0m34C1BLAwQUAAIACAAcoWk/BOHHyfcAAAB4AQAA
QQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlv
bi1zdGRlcnIudHh0VVQJAAPY3bpO2N26TnV4CwABBOgDAAAE6AMAAFWPvW7DMAyE5+QpMiab48iW
pdUdUrToYqMdig6UxSRGrR9IMpq8fSnEKNJJ5Om+I7lSEFFKjWo+S9klGL77AAM+1tvd5rO4ViCE
wq/16k5swTp7M26OGwsGoyfjbqGeZuO78WxhOoLVE4YlQZRCCUoorvxUl6rYDziURe6B8aqm6gNV
6wLFvznbOuNdHBPq1tmENh1dTFJGTO8j/ngX0j2WWF7nWIJfRnLQmx3Pxk9Szl5Dwle4YegD4n+U
1QOvGKE9xtRdcCIgIE3IfZ4a3PS3PmMFoCZzmG3+X9TyUOiGVAOjXQTeHB6vVEI3mHu25/ok1nQb
/gJQSwMEFAACAAgAHKFpP//9Nqb2AAAAeAEAAEgAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1kaXJlY3Rpb24tbm9ybWFsLXN0ZGVyci50eHRVVAkAA9jduk7Y
3bpOdXgLAAEE6AMAAAToAwAAVY8/T8MwEMXn9lN0bDeTOnHsNQxFIJZEMCCGS3wpEfEf2Y5ovz1n
NUJl8t3z+7272/QQUSmN/XJWqk0wfHcBBryv94fdB7uUIGWPn9vNjdiDdfZq3BJ3FgxGT8bDSj0u
xrfT2cJ8AqtnDGuCLGQvKYFdxDiCkEziULDcAxdlRdU79o0LFP/qbOOMd3FKqBtnE9p0cjEpFTG9
TfjjXUi3WGJFlWMJfp7IQW92PBk/K7V4DQlf4IqhC4j/UV4NouSEdhhT+4UzAQFpQu7z1ODmv/U5
Z4CazGGx+X9ViyPTNakGJrsKoj7eX1lLXWPu+YPQo9zSbfgLUEsDBBQAAgAIABuhaT9qw0C39wAA
AHgBAABNABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tYWRk
LWV2ZW50cy1pbi1oYW5kbGVyLXN0ZGVyci50eHRVVAkAA9bduk7W3bpOdXgLAAEE6AMAAAToAwAA
VY8/T8MwEMXn9lN0bDeTOnHsNQxFIJZEMCCGS3wpEfEf2Y5ovz1nNUJl8t3z+7272/QQUSmN/XJW
qk0wfHcBBryv94fdB7uUIGWPn9vNjdiDdfZq3BJ3FgxGT8bDSj0uxrfT2cJ8AqtnDGuCLGQvKYFd
xFhWgwSmh4LlHrgoK6resW9coPhXZxtnvItTQt04m9Cmk4tJqYjpbcIf70K6xRIrqhxL8PNEDnqz
48n4WanFa0j4AlcMXUD8j/JqECUntMOY2i+cCQhIE3KfpwY3/63POQPUZA6Lzf+rWhyZrkk1MNlV
EPXx7ko51rrG3PMHoUe5pdvwF1BLAwQKAAAAAAAaoWk/AAAAAAAAAAAAAAAAQwAcAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL3B5d2Vic29ja2V0LndzLmxvZy0wOU5vdjIwMTEtMjAwODUyLWVyci50
eHRVVAkAA9Tduk7U3bpOdXgLAAEE6AMAAAToAwAAUEsDBBQAAgAIAByhaT9c3VhYZAAAANYAAAAm
ABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvdGVzdHNfcnVuMC50eHRVVAkAA9jduk7V3bpOdXgL
AAEE6AMAAAToAwAAfctRDoNACITh994F90wjEiHdbgigxtu3ja/G1/m/0SpvJVnZ4M5glQZmyaTd
QCGLhXBNrv7SO7uVTlqffls5kEqHyqCB3VaUjZVw4KT6jzP4/fSWRUYZOm3RH9wZ1rvxT9mlvlBL
AwQUAAIACAAcoWk/2KNiY3kAAAD1AAAAJgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3Rz
X3J1bjEudHh0VVQJAAPY3bpO1t26TnV4CwABBOgDAAAE6AMAAIWOQQpCMQxE994leqY0jTS2P5Ek
hd/bq+hG8ONuGN4bBok4QooMyXXBekNiTSDTFJ2YYhpAOIMBI9hfBVxRxnQ+t9zGCb8XlJo5DNHO
FVBN12YzoAyjDuQY7afmgkCNqRfb34HrfzB5z0OqcpBL4VoWPE+L3ucHfgBQSwMEFAACAAgAHKFp
PzuLAxRYAAAA/AAAACYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy90ZXN0c19ydW4zLnR4dFVU
CQAD2N26Ttbduk51eAsAAQToAwAABOgDAACdy0EKgDAMRNG9VxFSEbyIN4hppIFYSxMEby/qXtHd
MPxHmDe0UJKolOBsbqGPQNcNlTGuWXdIvmhDL+3MlTPxc6yMdWTydhbVcwBqSdjB8NN9VBOa0I0O
UEsDBAoAAAAAAByhaT8AAAAAAAAAAAAAAAAfABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2Fu
dmFzL1VUCQAD1926Ttzduk51eAsAAQToAwAABOgDAABQSwMECgAAAAAAHKFpPwAAAAAAAAAAAAAA
ACYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL1VUCQAD1926Ttzduk51
eAsAAQToAwAABOgDAABQSwMECgAAAAAAHKFpPwAAAAAAAAAAAAAAACwAHAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzL1VUCQAD2N26Ttzduk51eAsAAQToAwAABOgD
AABQSwMEFAACAAgAHKFpP4qIBWD2AAAAeAEAAFYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9j
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNsZWFyUmVjdCtmaWxsUmVjdC5hbHBoYTAtY3Jhc2gtbG9n
LnR4dFVUCQAD2N26Ttjduk51eAsAAQToAwAABOgDAABVj7tuwzAMRefkKzImm+LIL63ukKJFFxvt
UHSgJCYxaj0gyWjy96UQo0gnkVf3XJIrCRGF0CjnsxB9AvU9BFD4WG93m092LaFtJX6tV3diC9bZ
m3Fz3FgwGD0Zdwv1NBvfj2cL0xGsnjAsCW3RypYS2LU+MSkRcK8KlnvgdVlR9YGyc4Hi35ztnPEu
jgl152xCm44uJiEipvcRf7wL6R5LbF3lWIJfRnLQmx3Pxk9CzF5Dwle4YRgC4n+UV6ouOaEDxtRf
cCIgIE3IfZ4a3PS3PucMUJM5zDb/L2pxYLoh1cBoF6FuDo9XKqUbzD3f1/rUruk2/AVQSwMEFAAC
AAgAHKFpP4T1zJ/3AAAAeAEAAEwAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLmNhbnZhcy5yZWFkb25seS1jcmFzaC1sb2cudHh0VVQJAAPX3bpO1926TnV4
CwABBOgDAAAE6AMAAFWPvW7DMAyE5+QpMiab48iWpdUdUrToYqMdig6UxSRGrR9IMpq8fSnEKNJJ
5Om+I7lSEFFKjWo+S9klGL77AAM+1tvd5rO4ViCEwq/16k5swTp7M26OGwsGoyfjbqGeZuO78Wxh
OoLVE4YlQZRCCUoorvy0h3poQA1lkXtgvKqp+kDVukDxb862zngXx4S6dTahTUcXk5QR0/uIP96F
dI8lltc5luCXkRz0Zsez8ZOUs9eQ8BVuGPqA+B9l9cArRmiPMXUXnAgISBNyn6cGN/2tz1gBqMkc
Zpv/F7U8FLoh1cBoF4E3h8crRa0bzD3bc30Sa7oNfwFQSwMEFAACAAgAHKFpP8Xe5974AAAAeAEA
AE0AHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNhbnZh
cy5yZWZlcmVuY2UtY3Jhc2gtbG9nLnR4dFVUCQAD1926Ttfduk51eAsAAQToAwAABOgDAABVjz9v
wjAQxWf4FIywheDEsdd0AFF1SdQOVYdLfIGo8R/ZjgrfvmcRVXTy3fP7vbtbdRBQSoXdfJGyidB/
tx56fK63u81nditAiA6/1qsHsQVjzV3bOWwMaAyOjLuFepm1a8aLgekIRk3olwSRi05QQnbjQz6o
QuxZn2epB8aLkqoP7GrrKf7NmtpqZ8MYUdXWRDTxaEOUMmB8H/HHWR8fscTyMsUSfB7JQW9ynLSb
pJydgoivcEffesT/KCt7XjBCWwyxueJEgEeakPo01dvpb33GMkBFZj+b9L+o+SFTFakaRrMIvDo8
XVkNg6ow9WzP1SDWdBv+AlBLAwQUAAIACAAcoWk/oWdAOfcAAAB4AQAAUgAcAHRtcC9sYXlvdXQt
dGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0K2ZpbGxSZWN0LmJh
c2ljLXN0ZGVyci50eHRVVAkAA9jduk7Y3bpOdXgLAAEE6AMAAAToAwAAVY+9bsMwDITn5CkyJpvi
yJal1R1StOgSox2KDrRFJ0atH0gymrx9KcQo0knk6b4jueogolIau/ms1ClB/90G6PGx3u42n+xa
gpQdfq1Xd2IL1tmbcXPcWDAYPRl3C/U0G38azxamI1g9YVgSZCE7SQnsKoZ6KHVR7PuC5R64KCuq
PrBrXKD4N2cbZ7yLY0LdOJvQpqOLSamI6X3EH+9CuscSK6ocS/DLSA56s+PZ+Emp2WtI+Ao3DG1A
/I/yqhclJ7TFmE4XnAgISBNyn6cGN/2tzzkD1GQOs83/i1ocmK5JNTDaRRD14fFK1usac8/3Qg9y
TbfhL1BLAwQUAAIACAAcoWk/xd7n3vgAAAB4AQAASgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2FudmFzLnJlZmVyZW5jZS1zdGRlcnIudHh0VVQJAAPX
3bpO1926TnV4CwABBOgDAAAE6AMAAFWPP2/CMBDFZ/gUjLCF4MSx13QAUXVJ1A5Vh0t8gajxH9mO
Ct++ZxFVdPLd8/u9u1t1EFBKhd18kbKJ0H+3Hnp8rre7zWd2K0CIDr/WqwexBWPNXds5bAxoDI6M
u4V6mbVrxouB6QhGTeiXBJGLTlBCduNDPqhC7FmfZ6kHxouSqg/sausp/s2a2mpnwxhR1dZENPFo
Q5QyYHwf8cdZHx+xxPIyxRJ8HslBb3KctJuknJ2CiK9wR996xP8oK3teMEJbDLG54kSAR5qQ+jTV
2+lvfcYyQEVmP5v0v6j5IVMVqRpGswi8OjxdWQ2DqjD1bM/VINZ0G/4CUEsDBBQAAgAIAByhaT+h
Z0A59wAAAHgBAABVABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0
cy8yZC5jbGVhclJlY3QrZmlsbFJlY3QuYmFzaWMtY3Jhc2gtbG9nLnR4dFVUCQAD2N26Ttjduk51
eAsAAQToAwAABOgDAABVj71uwzAMhOfkKTImm+LIlqXVHVK06BKjHYoOtEUnRq0fSDKavH0pxCjS
SeTpviO56iCiUhq7+azUKUH/3Qbo8bHe7jaf7FqClB1+rVd3YgvW2Ztxc9xYMBg9GXcL9TQbfxrP
FqYjWD1hWBJkITtJCewqhnoodVHs+4LlHrgoK6o+sGtcoPg3ZxtnvItjQt04m9Cmo4tJqYjpfcQf
70K6xxIrqhxL8MtIDnqz49n4SanZa0j4CjcMbUD8j/KqFyUntMWYThecCAhIE3KfpwY3/a3POQPU
ZA6zzf+LWhyYrkk1MNpFEPXh8UrW6xpzz/dCD3JNt+EvUEsDBBQAAgAIAByhaT+KiAVg9gAAAHgB
AABTABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVh
clJlY3QrZmlsbFJlY3QuYWxwaGEwLXN0ZGVyci50eHRVVAkAA9jduk7Y3bpOdXgLAAEE6AMAAATo
AwAAVY+7bsMwDEXn5CsyJpviyC+t7pCiRRcb7VB0oCQmMWo9IMlo8velEKNIJ5FX91ySKwkRhdAo
57MQfQL1PQRQ+Fhvd5tPdi2hbSV+rVd3YgvW2Ztxc9xYMBg9GXcL9TQb349nC9MRrJ4wLAlt0cqW
Eti1PjEpEXCvCpZ74HVZUfWBsnOB4t+c7ZzxLo4JdedsQpuOLiYhIqb3EX+8C+keS2xd5ViCX0Zy
0Jsdz8ZPQsxeQ8JXuGEYAuJ/lFeqLjmhA8bUX3AiICBNyH2eGtz0tz7nDFCTOcw2/y9qcWC6IdXA
aBehbg6PVyqlG8w939f61K7pNvwFUEsDBBQAAgAIAByhaT8bMhBN9wAAAHgBAABVABwAdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmlsbFJl
Y3QuYWxwaGEwLjUtc3RkZXJyLnR4dFVUCQAD1926Ttfduk51eAsAAQToAwAABOgDAABVjz9PwzAQ
xef2U3Rst5A4cew1DEUglkQwIIZzfC0R8R/Zjmi/PWc1QmXy3fP7vbvbKIgopUa1nKXsE4zfQ4AR
7+v9YfdRXGoQQuHndnMj9mCdvRq3xJ0Fg9GT8bBSj4vx/XS2MB/B6hnDmiBKoQQlFBd+4qLWTaXG
ssg9MF43VL2j6lyg+FdnO2e8i1NC3Tmb0Kaji0nKiOltwh/vQrrFEsubHEvw80QOerPjyfhZysVr
SPgCVwxDQPyPsmbkNSN0wJj6L5wJCEgTcp+nBjf/rc9YAajJHBab/1e1rArdkmpgsqvA2+r+yrLR
LeaePXB9Elu6DX8BUEsDBBQAAgAIAByhaT+E9cyf9wAAAHgBAABJABwAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jYW52YXMucmVhZG9ubHktc3RkZXJyLnR4
dFVUCQAD1926Ttfduk51eAsAAQToAwAABOgDAABVj71uwzAMhOfkKTImm+PIlqXVHVK06GKjHYoO
lMUkRq0fSDKavH0pxCjSSeTpviO5UhBRSo1qPkvZJRi++wADPtbb3eazuFYghMKv9epObME6ezNu
jhsLBqMn426hnmbju/FsYTqC1ROGJUGUQglKKK78tId6aEANZZF7YLyqqfpA1bpA8W/Ots54F8eE
unU2oU1HF5OUEdP7iD/ehXSPJZbXOZbgl5Ec9GbHs/GTlLPXkPAVbhj6gPgfZfXAK0ZojzF1F5wI
CEgTcp+nBjf9rc9YAajJHGab/xe1PBS6IdXAaBeBN4fHK0WtG8w923N9Emu6DX8BUEsDBBQAAgAI
AByhaT8bMhBN9wAAAHgBAABYABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxp
cC90ZXN0cy8yZC5jbGVhclJlY3QrZmlsbFJlY3QuYWxwaGEwLjUtY3Jhc2gtbG9nLnR4dFVUCQAD
1926Ttfduk51eAsAAQToAwAABOgDAABVjz9PwzAQxef2U3Rst5A4cew1DEUglkQwIIZzfC0R8R/Z
jmi/PWc1QmXy3fP7vbvbKIgopUa1nKXsE4zfQ4AR7+v9YfdRXGoQQuHndnMj9mCdvRq3xJ0Fg9GT
8bBSj4vx/XS2MB/B6hnDmiBKoQQlFBd+4qLWTaXGssg9MF43VL2j6lyg+FdnO2e8i1NC3Tmb0Kaj
i0nKiOltwh/vQrrFEsubHEvw80QOerPjyfhZysVrSPgCVwxDQPyPsmbkNSN0wJj6L5wJCEgTcp+n
Bjf/rc9YAajJHBab/1e1rArdkmpgsqvA2+r+yrLRLeaePXB9Elu6DX8BUEsDBAoAAAAAABqhaT8A
AAAAAAAAAAAAAABDABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcHl3ZWJzb2NrZXQud3MubG9n
LTA5Tm92MjAxMS0yMDA4NTItb3V0LnR4dFVUCQAD1N26TtTduk51eAsAAQToAwAABOgDAABQSwME
CgAAAAAAHKFpPwAAAAAAAAAAAAAAACYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3Np
YmlsaXR5L1VUCQAD2N26Ttzduk51eAsAAQToAwAABOgDAABQSwMEFAACAAgAHKFpP0mJ34T3AAAA
eAEAAEkAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2ti
b3gtY2hlY2tlZC1jcmFzaC1sb2cudHh0VVQJAAPX3bpO1926TnV4CwABBOgDAAAE6AMAAFWPvW7D
MAyE5+QpMiab4siWrdUdUrToYqMdig6UxSRGrR9IMpq8fSnEKNJJ5Om+I7lSEFFKjWo+S9klGL77
AAM+1tvd5pNdS2gahV/r1Z3YgnX2ZtwcNxYMRk/G3UI9zcZ349nCdASrJwxLQlM0qqEEdhWnva7q
UrChYLkHLsqKqg9UrQsU/+Zs64x3cUyoW2cT2nR0MUkZMb2P+ONdSPdYYkWVYwl+GclBb3Y8Gz9J
OXsNCV/hhqEPiP9RXg2i5IT2GFN3wYmAgDQh93lqcNPf+pwzQE3mMNv8v6jFgemaVAOjXQRRHx6v
LJWuMfd8L/SpWdNt+AtQSwMEFAACAAgAG6FpPyxdljD2AAAAeAEAAF8AHAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FkamFjZW50LWNvbnRpbnVhdGlvbnMtY2F1c2UtYXNz
ZXJ0aW9uLWZhaWx1cmUtc3RkZXJyLnR4dFVUCQAD1t26Ttbduk51eAsAAQToAwAABOgDAABVjz9P
wzAQxef2U3Rst5A6cew1DEUglkQwIIaLfSkR8R/Zjmi/PWc1QmXy3fP7vbvbDBBRSo3DcpayS6C+
+wAK7+v9YfdRXCoQYsDP7eZG7ME6ezVuiTsLBqMn42GlHhfju+lsYT6B1TOGNUGUYhCUUFz4qLRm
MApVFrkHxquaqnccWhco/tXZ1hnv4pRQt84mtOnkYpIyYnqb8Me7kG6xxPI6xxL8PJGD3ux4Mn6W
cvEaEr7AFUMfEP+jrFa8YoT2GFP3hTMBAWlC7vPU4Oa/9RkrADWZw2Lz/6qWx0I3pBqY7Crw5nh/
JTLdYO7ZA9ej2NJt+AtQSwMEFAACAAgAHKFpP1V1MN32AAAAeAEAAEoAHAB0bXAvbGF5b3V0LXRl
c3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtZGVzY3JpYmVkYnktb24taW5wdXQtc3RkZXJy
LnR4dFVUCQAD2N26Ttjduk51eAsAAQToAwAABOgDAABVjz9PwzAQxef2U3Rst5A6cew1DEUglkQw
IIZzfCkR8R/Zjmi/PWc1QmXy3fP7vbvbKIgopUa1nKXsEgzffYAB7+v9YfdRXCoQQuHndnMj9mCd
vRq3xJ0Fg9GT8bBSj4vx3XS2MJ/A6hnDmiBKoQQlFBc+VoqPjLGhLHIPjFc1Ve+oWhco/tXZ1hnv
4pRQt84mtOnkYpIyYnqb8Me7kG6xxPI6xxL8PJGD3ux4Mn6WcvEaEr7AFUMfEP+jrB54xQjtMabu
C2cCAtKE3Oepwc1/6zNWAGoyh8Xm/1Utj4VuSDUw2VXgzfH+ynLUDeaePXA9ii3dhr9QSwMEFAAC
AAgAHKFpP9tMpBn2AAAAeAEAAEYAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmls
aXR5L2FyaWEtY2hlY2tib3gtdGV4dC1jcmFzaC1sb2cudHh0VVQJAAPY3bpO2N26TnV4CwABBOgD
AAAE6AMAAFWPP0/DMBDF5/ZTdGw3kzpx7DUMRSCWVDAghnN8LRHxH9mOaL89ZzVCZfLd8/u9u1tp
SKiUQT2fleozDN/HCAPe19vd5oNdapBS4+d6dSO24Ly7Wj+njQOLKZBxt1CPsw39eHYwHcCZCeOS
ICupJSWwizg1DLUGPVSs9MBF3VD1jrrzkeJfveu8DT6NGU3nXUaXDz5lpRLmtxF/go/5FkusaEos
wc8jOegtjicbJqXmYCDjC1wxHiPif5Q3g6g5oUdMuf/CiYCINKH0ZWr009/6nDNAQ+Y4u/K/qNWe
mZZUC6NbBNHu76+UjWmx9PxBmJNc0234C1BLAwQUAAIACAAcoWk/SYnfhPcAAAB4AQAARgAcAHRt
cC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2Vk
LXN0ZGVyci50eHRVVAkAA9fduk7X3bpOdXgLAAEE6AMAAAToAwAAVY+9bsMwDITn5CkyJpviyJat
1R1StOhiox2KDpTFJEatH0gymrx9KcQo0knk6b4juVIQUUqNaj5L2SUYvvsAAz7W293mk11LaBqF
X+vVndiCdfZm3Bw3FgxGT8bdQj3Nxnfj2cJ0BKsnDEtCUzSqoQR2Fae9rupSsKFguQcuyoqqD1St
CxT/5mzrjHdxTKhbZxPadHQxSRkxvY/4411I91hiRZVjCX4ZyUFvdjwbP0k5ew0JX+GGoQ+I/1Fe
DaLkhPYYU3fBiYCANCH3eWpw09/6nDNATeYw2/y/qMWB6ZpUA6NdBFEfHq8sla4x93wv9KlZ0234
C1BLAwQUAAIACAAcoWk/VXUw3fYAAAB4AQAATQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Fj
Y2Vzc2liaWxpdHkvYXJpYS1kZXNjcmliZWRieS1vbi1pbnB1dC1jcmFzaC1sb2cudHh0VVQJAAPY
3bpO2N26TnV4CwABBOgDAAAE6AMAAFWPP0/DMBDF5/ZTdGy3kDpx7DUMRSCWRDAghnN8KRHxH9mO
aL89ZzVCZfLd8/u9u9soiCilRrWcpewSDN99gAHv6/1h91FcKhBC4ed2cyP2YJ29GrfEnQWD0ZPx
sFKPi/HddLYwn8DqGcOaIEqhBCUUFz5Wio+MsaEscg+MVzVV76haFyj+1dnWGe/ilFC3zia06eRi
kjJiepvwx7uQbrHE8jrHEvw8kYPe7HgyfpZy8RoSvsAVQx8Q/6OsHnjFCO0xpu4LZwIC0oTc56nB
zX/rM1YAajKHxeb/VS2PhW5INTDZVeDN8f7KctQN5p49cD2KLd2Gv1BLAwQUAAIACAAcoWk/20yk
GfYAAAB4AQAAQwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYXJpYS1j
aGVja2JveC10ZXh0LXN0ZGVyci50eHRVVAkAA9jduk7Y3bpOdXgLAAEE6AMAAAToAwAAVY8/T8Mw
EMXn9lN0bDeTOnHsNQxFIJZUMCCGc3wtEfEf2Y5ovz1nNUJl8t3z+727W2lIqJRBPZ+V6jMM38cI
A97X293mg11qkFLj53p1I7bgvLtaP6eNA4spkHG3UI+zDf14djAdwJkJ45IgK6klJbCLODUMtQY9
VKz0wEXdUPWOuvOR4l+967wNPo0ZTeddRpcPPmWlEua3EX+Cj/kWS6xoSizBzyM56C2OJxsmpeZg
IOMLXDEeI+J/lDeDqDmhR0y5/8KJgIg0ofRlavTT3/qcM0BD5ji78r+o1Z6ZllQLo1sE0e7vr5SN
abH0/EGYk1zTbfgLUEsDBBQAAgAIABuhaT8sXZYw9gAAAHgBAABiABwAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hZGphY2VudC1jb250aW51YXRpb25zLWNhdXNlLWFzc2Vy
dGlvbi1mYWlsdXJlLWNyYXNoLWxvZy50eHRVVAkAA9bduk7W3bpOdXgLAAEE6AMAAAToAwAAVY8/
T8MwEMXn9lN0bLeQOnHsNQxFIJZEMCCGi30pEfEf2Y5ovz1nNUJl8t3z+7272wwQUUqNw3KWskug
vvsACu/r/WH3UVwqEGLAz+3mRuzBOns1bok7CwajJ+NhpR4X47vpbGE+gdUzhjVBlGIQlFBc+Ki0
ZjAKVRa5B8armqp3HFoXKP7V2dYZ7+KUULfOJrTp5GKSMmJ6m/DHu5BuscTyOscS/DyRg97seDJ+
lnLxGhK+wBVDHxD/o6xWvGKE9hhT94UzAQFpQu7z1ODmv/UZKwA1mcNi8/+qlsdCN6QamOwq8OZ4
fyUy3WDu2QPXo9jSbfgLUEsDBBQAAgAIAByhaT/AdxAt9wAAAHgBAABXABwAdG1wL2xheW91dC10
ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hbmNob3ItbGlua2VkLWFub255bW91cy1ibG9jay1j
cmFzaC1jcmFzaC1sb2cudHh0VVQJAAPX3bpO1926TnV4CwABBOgDAAAE6AMAAFWPvW7DMAyE5+Qp
Miab4siWpdUdUrToEqMdig60RSdGrR9IMpq8fSnEKNJJ5Om+I7nqIKJSGrv5rNQpQf/dBujxsd7u
Np/sWoKUHX6tV3diC9bZm3Fz3FgwGD0Zdwv1NBt/Gs8WpiNYPWFYEmQhO0kJ7CqGgbM9MN0XLPfA
RVlR9YFd4wLFvznbOONdHBPqxtmENh1dTEpFTO8j/ngX0j2WWFHlWIJfRnLQmx3Pxk9KzV5Dwle4
YWgD4n+UV70oOaEtxnS64ERAQJqQ+zw1uOlvfc4ZoCZzmG3+X9TiwHRNqoHRLoKoDw9XyqHWNeae
74Ue5Jpuw19QSwMEFAACAAgAHKFpP8B3EC33AAAAeAEAAFQAHAB0bXAvbGF5b3V0LXRlc3QtcmVz
dWx0cy9hY2Nlc3NpYmlsaXR5L2FuY2hvci1saW5rZWQtYW5vbnltb3VzLWJsb2NrLWNyYXNoLXN0
ZGVyci50eHRVVAkAA9fduk7X3bpOdXgLAAEE6AMAAAToAwAAVY+9bsMwDITn5CkyJpviyJal1R1S
tOgSox2KDrRFJ0atH0gymrx9KcQo0knk6b4jueogolIau/ms1ClB/90G6PGx3u42n+xagpQdfq1X
d2IL1tmbcXPcWDAYPRl3C/U0G38azxamI1g9YVgSZCE7SQnsKoaBsz0w3Rcs98BFWVH1gV3jAsW/
Ods4410cE+rG2YQ2HV1MSkVM7yP+eBfSPZZYUeVYgl9GctCbHc/GT0rNXkPCV7hhaAPif5RXvSg5
oS3GdLrgREBAmpD7PDW46W99zhmgJnOYbf5f1OLAdE2qgdEugqgPD1fKodY15p7vhR7kmm7DX1BL
AwQKAAAAAAAboWk/AAAAAAAAAAAAAAAAHQAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAv
VVQJAAPW3bpO3N26TnV4CwABBOgDAAAE6AMAAFBLAwQKAAAAAAAboWk/AAAAAAAAAAAAAAAAIwAc
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvVVQJAAPW3bpO3N26TnV4CwABBOgD
AAAE6AMAAFBLAwQKAAAAAAAcoWk/AAAAAAAAAAAAAAAALAAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvVVQJAAPY3bpO3N26TnV4CwABBOgDAAAE6AMAAFBLAwQU
AAIACAAcoWk/U+L4DvYAAAB4AQAAXgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVz
dHMvYXBwY2FjaGUvY3Jhc2gtd2hlbi1uYXZpZ2F0aW5nLWF3YXktdGhlbi1iYWNrLWNyYXNoLWxv
Zy50eHRVVAkAA9fduk7X3bpOdXgLAAEE6AMAAAToAwAAVY+9bsMwDITn5CkyJpvryJal1R1SJOhi
ox2KDpTFpEatH0gymrx9KcQo0knk6b4juVIQUUqNar5I2SUYvvsAAz7W293mo7hWIITCz/XqTmzB
Onszbo4bCwajJ+NuoZ5n47vxYmE6gNUThiVBlEIJSiiu/FxXqPWghrLIPTBe1VS9o2pdoPhXZ1tn
vItjQt06m9Cmg4tJyojpbcQf70K6xxLL6xxL8HEkB73Z8WL8JOXsNSQ8wQ1DHxD/o6weeMUI7TGm
7gsnAgLShNznqcFNf+szVgBqMofZ5v9FLfeFbkg1MNpF4M3+8UpV6wZzz564Pos13Ya/UEsDBBQA
AgAIAByhaT9T4vgO9gAAAHgBAABbABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9jcmFzaC13aGVuLW5hdmlnYXRpbmctYXdheS10aGVuLWJhY2stc3RkZXJyLnR4
dFVUCQAD1926Ttfduk51eAsAAQToAwAABOgDAABVj71uwzAMhOfkKTImm+vIlqXVHVIk6GKjHYoO
lMWkRq0fSDKavH0pxCjSSeTpviO5UhBRSo1qvkjZJRi++wADPtbb3eajuFYghMLP9epObME6ezNu
jhsLBqMn426hnmfju/FiYTqA1ROGJUGUQglKKK78XFeo9aCGssg9MF7VVL2jal2g+FdnW2e8i2NC
3Tqb0KaDi0nKiOltxB/vQrrHEsvrHEvwcSQHvdnxYvwk5ew1JDzBDUMfEP+jrB54xQjtMabuCycC
AtKE3OepwU1/6zNWAGoyh9nm/0Ut94VuSDUw2kXgzf7xSlXrBnPPnrg+izXdhr9QSwMEFAACAAgA
HKFpP7Avba32AAAAeAEAAEgAHAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2Fw
cGNhY2hlL2NyZWRlbnRpYWwtdXJsLWNyYXNoLWxvZy50eHRVVAkAA9jduk7Y3bpOdXgLAAEE6AMA
AAToAwAAVY8/T8MwEMXn9lN0bDeTOnHiNQxFIJZEMCCGc3wpEfEf2Y5ovz1nNUJl8t3z+7272yiI
KKVGtZyl7BIM332AAe/r/WH3wS4lNI3Cz+3mRuzBOns1bok7CwajJ+NhpR4X47vpbGE+gdUzhjWh
KRrVUAK7iLEAYGPNhoLlHrgoK6reUbUuUPyrs60z3sUpoW6dTWjTycUkZcT0NuGPdyHdYokVVY4l
+HkiB73Z8WT8LOXiNSR8gSuGPiD+R3k1iJIT2mNM3RfOBASkCbnPU4Ob/9bnnAFqMofF5v9VLY5M
16QamOwqiPp4f2WldI255w9Cj82WbsNfUEsDBBQAAgAIAByhaT+wL22t9gAAAHgBAABFABwAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9jcmVkZW50aWFsLXVybC1z
dGRlcnIudHh0VVQJAAPY3bpO2N26TnV4CwABBOgDAAAE6AMAAFWPP0/DMBDF5/ZTdGw3kzpx4jUM
RSCWRDAghnN8KRHxH9mOaL89ZzVCZfLd8/u9u9soiCilRrWcpewSDN99gAHv6/1h98EuJTSNws/t
5kbswTp7NW6JOwsGoyfjYaUeF+O76WxhPoHVM4Y1oSka1VACu4ixAGBjzYaC5R64KCuq3lG1LlD8
q7OtM97FKaFunU1o08nFJGXE9Dbhj3ch3WKJFVWOJfh5Ige92fFk/Czl4jUkfIErhj4g/kd5NYiS
E9pjTN0XzgQEpAm5z1ODm//W55wBajKHxeb/VS2OTNekGpjsKoj6eH9lpXSNuecPQo/Nlm7DX1BL
AwQUAAIACAAcoWk/K1gA8/YAAAB4AQAAOwAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAv
dGVzdHMvYXBwY2FjaGUvYXV0aC1zdGRlcnIudHh0VVQJAAPX3bpO1926TnV4CwABBOgDAAAE6AMA
AFWPu27DMAxF5+QrMiab48iWpdUdUrToYqMdig60xSRGrQf0QJO/L4UYRTqJvLrnklwNEFBKhUM6
S9lFGL97DyM+1tvd5rO4ViDEgF/r1Z3YgrHmpm0KGwMagyPjbqGeknbddDYwH8GoGf2SIEoxCEoo
rvy0Z6ViohrLIvfAeFVT9YFDaz3Fv1nTWu1smCKq1pqIJh5tiFIGjO8T/jjr4z2WWF7nWIJfJnLQ
mx3P2s1SJqcg4ivc0Pce8T/K6pFXjNAeQ+wuOBPgkSbkPk/1dv5bn7ECUJHZJ5P/F7U8FKohVcNk
FoE3h8crGzJg7tmeq5NY0234C1BLAwQUAAIACAAcoWk/nOGPxvYAAAB4AQAAQwAcAHRtcC9sYXlv
dXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvY3lyaWxsaWMtdXJpLXN0ZGVyci50
eHRVVAkAA9jduk7Y3bpOdXgLAAEE6AMAAAToAwAAVY8/T8MwEMXn9lN0bDeT2nHjNQxFIJZUMCCG
c3wpEfEf2Y5ovz1nNUJl8t3z+727W2lIqJRBPZ+V6jL036cIPd7X293mg10ENI3Gz/XqRmzBeXe1
fk4bBxZTIONuoR5nG7rx7GA6gjMTxiWhqRrdUAK7yGFgAnQt+oqVHrgUNVXvqFsfKf7Vu9bb4NOY
0bTeZXT56FNWKmF+G/En+JhvscTKusQS/DySg97ieLJhUmoOBjK+wBXjKSL+R3ndS8EJPWHK3RdO
BESkCaUvU6Of/tbnnAEaMsfZlf9FrfbMHEi1MLpFkIf9/ZWCDFh6/iDN0KzpNvwFUEsDBBQAAgAI
ABuhaT+nH4vS9wAAAHgBAABNABwAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9h
cHBjYWNoZS9hY2Nlc3MtdmlhLXJlZGlyZWN0LWNyYXNoLWxvZy50eHRVVAkAA9bduk7W3bpOdXgL
AAEE6AMAAAToAwAAVY+9bsMwDITn5CkyJpvjyJal1R1StOgSox2KDpRFJ0atH0gymrx9KcQo0knk
6b4juVIQUUqNaj5LeUrQf3cBenyst7vNZ3GtQAiFX+vVndiCdfZm3Bw3FgxGT8bdQj3Nxp/Gs4Xp
CFZPGJYEUQolKKG48qHU1Z4p1pdF7oHxqqbqA1XrAsW/Ods6410cE+rW2YQ2HV1MUkZM7yP+eBfS
PZZYXudYgl9GctCbHc/GT1LOXkPCV7hh6ALif5TVPa8YoR3GdLrgREBAmpD7PDW46W99xgpATeYw
2/y/qOWh0A2pBka7CLw5PF4pBt1g7tme60Gs6Tb8BVBLAwQUAAIACAAcoWk/K1gA8/YAAAB4AQAA
PgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUvYXV0aC1jcmFz
aC1sb2cudHh0VVQJAAPX3bpO1926TnV4CwABBOgDAAAE6AMAAFWPu27DMAxF5+QrMiab48iWpdUd
UrToYqMdig60xSRGrQf0QJO/L4UYRTqJvLrnklwNEFBKhUM6S9lFGL97DyM+1tvd5rO4ViDEgF/r
1Z3YgrHmpm0KGwMagyPjbqGeknbddDYwH8GoGf2SIEoxCEoorvy0Z6ViohrLIvfAeFVT9YFDaz3F
v1nTWu1smCKq1pqIJh5tiFIGjO8T/jjr4z2WWF7nWIJfJnLQmx3P2s1SJqcg4ivc0Pce8T/K6pFX
jNAeQ+wuOBPgkSbkPk/1dv5bn7ECUJHZJ5P/F7U8FKohVcNkFoE3h8crGzJg7tmeq5NY0234C1BL
AwQUAAIACAAboWk/px+L0vcAAAB4AQAASgAcAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAv
dGVzdHMvYXBwY2FjaGUvYWNjZXNzLXZpYS1yZWRpcmVjdC1zdGRlcnIudHh0VVQJAAPW3bpO1t26
TnV4CwABBOgDAAAE6AMAAFWPvW7DMAyE5+QpMiab48iWpdUdUrToEqMdig6URSdGrR9IMpq8fSnE
KNJJ5Om+I7lSEFFKjWo+S3lK0H93AXp8rLe7zWdxrUAIhV/r1Z3YgnX2ZtwcNxYMRk/G3UI9zcaf
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
ZS10eXBlcy1zdGRlcnIudHh0VVQFAAPX3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAG6Fp
P2rDQLf3AAAAeAEAAFAAGAAAAAAAAQAAAKSBJQIAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLWFkZC1ldmVudHMtaW4taGFuZGxlci1jcmFzaC1sb2cudHh0VVQF
AAPW3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpP//9Nqb2AAAAeAEAAEsAGAAAAAAA
AQAAAKSBpgMAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRp
cmVjdGlvbi1ub3JtYWwtY3Jhc2gtbG9nLnR4dFVUBQAD2N26TnV4CwABBOgDAAAE6AMAAFBLAQIe
AxQAAgAIAByhaT8RwtZO9wAAAHgBAABKABgAAAAAAAEAAACkgSEFAAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1jb250cm9sbGVyLWRydC1hcGktc3RkZXJyLnR4
dFVUBQAD1926TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAByhaT80vTDx9gAAAHgBAABJABgA
AAAAAAEAAACkgZwGAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hbmltYXRpb25zL2FuaW1hdGlv
bi1jc3MtcnVsZS10eXBlcy1jcmFzaC1sb2cudHh0VVQFAAPX3bpOdXgLAAEE6AMAAAToAwAAUEsB
Ah4DFAACAAgAHKFpPwThx8n3AAAAeAEAAEQAGAAAAAAAAQAAAKSBFQgAAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1jcmFzaC1sb2cudHh0VVQF
AAPY3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpPxHC1k73AAAAeAEAAE0AGAAAAAAA
AQAAAKSBigkAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWNv
bnRyb2xsZXItZHJ0LWFwaS1jcmFzaC1sb2cudHh0VVQFAAPX3bpOdXgLAAEE6AMAAAToAwAAUEsB
Ah4DFAACAAgAHKFpPwThx8n3AAAAeAEAAEEAGAAAAAAAAQAAAKSBCAsAAHRtcC9sYXlvdXQtdGVz
dC1yZXN1bHRzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVjdGlvbi1zdGRlcnIudHh0VVQFAAPY
3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpP//9Nqb2AAAAeAEAAEgAGAAAAAAAAQAA
AKSBegwAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRpcmVj
dGlvbi1ub3JtYWwtc3RkZXJyLnR4dFVUBQAD2N26TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAI
ABuhaT9qw0C39wAAAHgBAABNABgAAAAAAAEAAACkgfINAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0
cy9hbmltYXRpb25zL2FuaW1hdGlvbi1hZGQtZXZlbnRzLWluLWhhbmRsZXItc3RkZXJyLnR4dFVU
BQAD1t26TnV4CwABBOgDAAAE6AMAAFBLAQIeAwoAAAAAABqhaT8AAAAAAAAAAAAAAABDABgAAAAA
AAAAAACkgXAPAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9weXdlYnNvY2tldC53cy5sb2ctMDlO
b3YyMDExLTIwMDg1Mi1lcnIudHh0VVQFAAPU3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgA
HKFpP1zdWFhkAAAA1gAAACYAGAAAAAAAAQAAAKSB7Q8AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRz
L3Rlc3RzX3J1bjAudHh0VVQFAAPY3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpP9ij
YmN5AAAA9QAAACYAGAAAAAAAAQAAAKSBsRAAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3Rz
X3J1bjEudHh0VVQFAAPY3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpPzuLAxRYAAAA
/AAAACYAGAAAAAAAAQAAAKSBihEAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1bjMu
dHh0VVQFAAPY3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DCgAAAAAAHKFpPwAAAAAAAAAAAAAAAB8A
GAAAAAAAAAAQAO1BQhIAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9VVAUAA9fduk51
eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAAcoWk/AAAAAAAAAAAAAAAAJgAYAAAAAAAAABAA7UGb
EgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC9VVAUAA9fduk51eAsAAQTo
AwAABOgDAABQSwECHgMKAAAAAAAcoWk/AAAAAAAAAAAAAAAALAAYAAAAAAAAABAA7UH7EgAAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy9VVAUAA9jduk51eAsAAQTo
AwAABOgDAABQSwECHgMUAAIACAAcoWk/iogFYPYAAAB4AQAAVgAYAAAAAAABAAAApIFhEwAAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmls
bFJlY3QuYWxwaGEwLWNyYXNoLWxvZy50eHRVVAUAA9jduk51eAsAAQToAwAABOgDAABQSwECHgMU
AAIACAAcoWk/hPXMn/cAAAB4AQAATAAYAAAAAAABAAAApIHnFAAAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jYW52YXMucmVhZG9ubHktY3Jhc2gtbG9nLnR4
dFVUBQAD1926TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAByhaT/F3ufe+AAAAHgBAABNABgA
AAAAAAEAAACkgWQWAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLmNhbnZhcy5yZWZlcmVuY2UtY3Jhc2gtbG9nLnR4dFVUBQAD1926TnV4CwABBOgDAAAE6AMA
AFBLAQIeAxQAAgAIAByhaT+hZ0A59wAAAHgBAABSABgAAAAAAAEAAACkgeMXAAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNsZWFyUmVjdCtmaWxsUmVjdC5i
YXNpYy1zdGRlcnIudHh0VVQFAAPY3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpP8Xe
5974AAAAeAEAAEoAGAAAAAAAAQAAAKSBZhkAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZh
cy9waGlsaXAvdGVzdHMvMmQuY2FudmFzLnJlZmVyZW5jZS1zdGRlcnIudHh0VVQFAAPX3bpOdXgL
AAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpP6FnQDn3AAAAeAEAAFUAGAAAAAAAAQAAAKSB4hoA
AHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0
K2ZpbGxSZWN0LmJhc2ljLWNyYXNoLWxvZy50eHRVVAUAA9jduk51eAsAAQToAwAABOgDAABQSwEC
HgMUAAIACAAcoWk/iogFYPYAAAB4AQAAUwAYAAAAAAABAAAApIFoHAAAdG1wL2xheW91dC10ZXN0
LXJlc3VsdHMvY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmlsbFJlY3QuYWxwaGEw
LXN0ZGVyci50eHRVVAUAA9jduk51eAsAAQToAwAABOgDAABQSwECHgMUAAIACAAcoWk/GzIQTfcA
AAB4AQAAVQAYAAAAAAABAAAApIHrHQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5jbGVhclJlY3QrZmlsbFJlY3QuYWxwaGEwLjUtc3RkZXJyLnR4dFVUBQAD
1926TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAByhaT+E9cyf9wAAAHgBAABJABgAAAAAAAEA
AACkgXEfAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNh
bnZhcy5yZWFkb25seS1zdGRlcnIudHh0VVQFAAPX3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAC
AAgAHKFpPxsyEE33AAAAeAEAAFgAGAAAAAAAAQAAAKSB6yAAAHRtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0K2ZpbGxSZWN0LmFscGhhMC41LWNy
YXNoLWxvZy50eHRVVAUAA9fduk51eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAAaoWk/AAAAAAAA
AAAAAAAAQwAYAAAAAAAAAAAApIF0IgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvcHl3ZWJzb2Nr
ZXQud3MubG9nLTA5Tm92MjAxMS0yMDA4NTItb3V0LnR4dFVUBQAD1N26TnV4CwABBOgDAAAE6AMA
AFBLAQIeAwoAAAAAAByhaT8AAAAAAAAAAAAAAAAmABgAAAAAAAAAEADtQfEiAAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L1VUBQAD2N26TnV4CwABBOgDAAAE6AMAAFBLAQIe
AxQAAgAIAByhaT9Jid+E9wAAAHgBAABJABgAAAAAAAEAAACkgVEjAAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1jcmFzaC1sb2cudHh0
VVQFAAPX3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAG6FpPyxdljD2AAAAeAEAAF8AGAAA
AAAAAQAAAKSByyQAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYWRqYWNl
bnQtY29udGludWF0aW9ucy1jYXVzZS1hc3NlcnRpb24tZmFpbHVyZS1zdGRlcnIudHh0VVQFAAPW
3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpP1V1MN32AAAAeAEAAEoAGAAAAAAAAQAA
AKSBWiYAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmli
ZWRieS1vbi1pbnB1dC1zdGRlcnIudHh0VVQFAAPY3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAAC
AAgAHKFpP9tMpBn2AAAAeAEAAEYAGAAAAAAAAQAAAKSB1CcAAHRtcC9sYXlvdXQtdGVzdC1yZXN1
bHRzL2FjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC10ZXh0LWNyYXNoLWxvZy50eHRVVAUAA9jd
uk51eAsAAQToAwAABOgDAABQSwECHgMUAAIACAAcoWk/SYnfhPcAAAB4AQAARgAYAAAAAAABAAAA
pIFKKQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94
LWNoZWNrZWQtc3RkZXJyLnR4dFVUBQAD1926TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAByh
aT9VdTDd9gAAAHgBAABNABgAAAAAAAEAAACkgcEqAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9h
Y2Nlc3NpYmlsaXR5L2FyaWEtZGVzY3JpYmVkYnktb24taW5wdXQtY3Jhc2gtbG9nLnR4dFVUBQAD
2N26TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAByhaT/bTKQZ9gAAAHgBAABDABgAAAAAAAEA
AACkgT4sAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2ti
b3gtdGV4dC1zdGRlcnIudHh0VVQFAAPY3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAG6Fp
PyxdljD2AAAAeAEAAGIAGAAAAAAAAQAAAKSBsS0AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Fj
Y2Vzc2liaWxpdHkvYWRqYWNlbnQtY29udGludWF0aW9ucy1jYXVzZS1hc3NlcnRpb24tZmFpbHVy
ZS1jcmFzaC1sb2cudHh0VVQFAAPW3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpP8B3
EC33AAAAeAEAAFcAGAAAAAAAAQAAAKSBQy8AAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vz
c2liaWxpdHkvYW5jaG9yLWxpbmtlZC1hbm9ueW1vdXMtYmxvY2stY3Jhc2gtY3Jhc2gtbG9nLnR4
dFVUBQAD1926TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAByhaT/AdxAt9wAAAHgBAABUABgA
AAAAAAEAAACkgcswAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NpYmlsaXR5L2FuY2hv
ci1saW5rZWQtYW5vbnltb3VzLWJsb2NrLWNyYXNoLXN0ZGVyci50eHRVVAUAA9fduk51eAsAAQTo
AwAABOgDAABQSwECHgMKAAAAAAAboWk/AAAAAAAAAAAAAAAAHQAYAAAAAAAAABAA7UFQMgAAdG1w
L2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC9VVAUAA9bduk51eAsAAQToAwAABOgDAABQSwECHgMK
AAAAAAAboWk/AAAAAAAAAAAAAAAAIwAYAAAAAAAAABAA7UGnMgAAdG1wL2xheW91dC10ZXN0LXJl
c3VsdHMvaHR0cC90ZXN0cy9VVAUAA9bduk51eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAAcoWk/
AAAAAAAAAAAAAAAALAAYAAAAAAAAABAA7UEEMwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0
cC90ZXN0cy9hcHBjYWNoZS9VVAUAA9jduk51eAsAAQToAwAABOgDAABQSwECHgMUAAIACAAcoWk/
U+L4DvYAAAB4AQAAXgAYAAAAAAABAAAApIFqMwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0
cC90ZXN0cy9hcHBjYWNoZS9jcmFzaC13aGVuLW5hdmlnYXRpbmctYXdheS10aGVuLWJhY2stY3Jh
c2gtbG9nLnR4dFVUBQAD1926TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAByhaT9T4vgO9gAA
AHgBAABbABgAAAAAAAEAAACkgfg0AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3Rz
L2FwcGNhY2hlL2NyYXNoLXdoZW4tbmF2aWdhdGluZy1hd2F5LXRoZW4tYmFjay1zdGRlcnIudHh0
VVQFAAPX3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpP7Avba32AAAAeAEAAEgAGAAA
AAAAAQAAAKSBgzYAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHAvdGVzdHMvYXBwY2FjaGUv
Y3JlZGVudGlhbC11cmwtY3Jhc2gtbG9nLnR4dFVUBQAD2N26TnV4CwABBOgDAAAE6AMAAFBLAQIe
AxQAAgAIAByhaT+wL22t9gAAAHgBAABFABgAAAAAAAEAAACkgfs3AAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2NyZWRlbnRpYWwtdXJsLXN0ZGVyci50eHRVVAUA
A9jduk51eAsAAQToAwAABOgDAABQSwECHgMUAAIACAAcoWk/K1gA8/YAAAB4AQAAOwAYAAAAAAAB
AAAApIFwOQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9hdXRo
LXN0ZGVyci50eHRVVAUAA9fduk51eAsAAQToAwAABOgDAABQSwECHgMUAAIACAAcoWk/nOGPxvYA
AAB4AQAAQwAYAAAAAAABAAAApIHbOgAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9jeXJpbGxpYy11cmktc3RkZXJyLnR4dFVUBQAD2N26TnV4CwABBOgDAAAE6AMA
AFBLAQIeAxQAAgAIABuhaT+nH4vS9wAAAHgBAABNABgAAAAAAAEAAACkgU48AAB0bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2FjY2Vzcy12aWEtcmVkaXJlY3QtY3Jh
c2gtbG9nLnR4dFVUBQAD1t26TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAByhaT8rWADz9gAA
AHgBAAA+ABgAAAAAAAEAAACkgcw9AAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3Rz
L2FwcGNhY2hlL2F1dGgtY3Jhc2gtbG9nLnR4dFVUBQAD1926TnV4CwABBOgDAAAE6AMAAFBLAQIe
AxQAAgAIABuhaT+nH4vS9wAAAHgBAABKABgAAAAAAAEAAACkgTo/AAB0bXAvbGF5b3V0LXRlc3Qt
cmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL2FjY2Vzcy12aWEtcmVkaXJlY3Qtc3RkZXJyLnR4
dFVUBQAD1t26TnV4CwABBOgDAAAE6AMAAFBLAQIeAxQAAgAIAByhaT+c4Y/G9gAAAHgBAABGABgA
AAAAAAEAAACkgbVAAAB0bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9odHRwL3Rlc3RzL2FwcGNhY2hl
L2N5cmlsbGljLXVyaS1jcmFzaC1sb2cudHh0VVQFAAPY3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4D
FAACAAgAHKFpP/KAfWTaAAAATAEAACUAGAAAAAAAAQAAAKSBK0IAAHRtcC9sYXlvdXQtdGVzdC1y
ZXN1bHRzL2Vycm9yX2xvZy50eHRVVAUAA9jduk51eAsAAQToAwAABOgDAABQSwECHgMUAAIACAAg
oWk/sQtGC+IdAAASfAAAJAAYAAAAAAABAAAApIFkQwAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMv
cmVzdWx0cy5odG1sVVQFAAPb3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAHKFpP4zO62VV
AAAA1QAAACYAGAAAAAAAAQAAAKSBpGEAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL3Rlc3RzX3J1
bjIudHh0VVQFAAPY3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAIKFpP1Y3zPg1AgAAXAgA
ACkAGAAAAAAAAQAAAKSBWWIAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Z1bGxfcmVzdWx0cy5q
c29uVVQFAAPb3bpOdXgLAAEE6AMAAAToAwAAUEsBAh4DFAACAAgAGqFpP5HsZoEaJAAAb2EAACIA
GAAAAAAAAQAAAKSB8WQAAHRtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2h0dHBkLmNvbmZVVAUAA9Pd
uk51eAsAAQToAwAABOgDAABQSwECHgMKAAAAAAAaoWk/AAAAAAAAAAAAAAAAJgAYAAAAAAAAAAAA
pIFniQAAdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzX2xvZy50eHRVVAUAA9Pduk51eAsA
AQToAwAABOgDAABQSwUGAAAAADwAPAB8HwAAx4kAAAAA
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114371</attachid>
            <date>2011-11-09 14:37:00 -0800</date>
            <delta_ts>2011-11-09 15:48:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71595-20111109143659.patch</filename>
            <type>text/plain</type>
            <size>55724</size>
            <attacher name="Alexandre Elias">aelias</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk1OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOWQ5NDA3YjNhMmFiOTA3
ZjBlNTVkNjZmOGUzYzkyMDFjZmY3MjFjLi41ZDA2ZmEyMzI1MTVlY2I0N2M0NmZjMWUxMjIzZjI0
YWFjNmMzMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMTEtMTEtMDggIEFsZXhh
bmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IGRyYXctdGltZSBzY2FsZSBkZWx0YSB0byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBhcmUgdHdvIG1hZ25pZnkg
dmFsdWVzOgorICAgICAgICAxLiBUaGUgV2ViS2l0LXNpZGUgcGFnZVNjYWxlIHZhbHVlIGNvcnJl
c3BvbmRpbmcgdG8gdGhlIHJlc29sdXRpb24gb2YKKyAgICAgICAgICAgdGhlIHBhaW50ZWQgY29u
dGVudC4KKyAgICAgICAgMi4gVGhlIEltcGwtc2lkZS1vbmx5IHNjYWxlRGVsdGEgdmFsdWUgcmVw
cmVzZW50aW5nIHRoZSBhZGRpdGlvbmFsCisgICAgICAgICAgIGRlZ3JlZSBvZiBjdXJyZW50IG1h
Z25pZmljYXRpb24sIGFwcGxpZWQgYXMgYSBkcmF3IHRyYW5zZm9ybS4gIFdlYktpdAorICAgICAg
ICAgICBpcyBuZXZlciBleHBsaWNpdGx5IGF3YXJlIG9mIHRoaXMgdmFsdWUgYW5kIHRoZSBvbmx5
IHdheSB0byBjaGFuZ2UgaXQKKyAgICAgICAgICAgY3VycmVudGx5IGlzIHZpYSBwaW5jaCBldmVu
dHMgKGFuZCBpbiB0aGUgZnV0dXJlLCBkb3VibGUtdGFwL2V0YworICAgICAgICAgICBldmVudHMp
LiAgQXQgdGhlIGVuZCBvZiBhIHBpbmNoIHpvb20sIHdlIG11bHRpcGx5IHBhZ2VTY2FsZSAqCisg
ICAgICAgICAgIHNjYWxlRGVsdGEgYW5kIHRlbGwgV2ViS2l0IHRvIHVzZSBpdCBhcyB0aGUgbmV3
IHBhZ2VTY2FsZS4KKworICAgICAgICBTY3JvbGwgb2Zmc2V0cyBhbmQgbWF4LWV4dGVudHMgYXJl
IG1haW50YWluZWQgaW4gcGFnZVNjYWxlIHNwYWNlLgorICAgICAgICBXaGVuIHRoZSBzY2FsZSBj
aGFuZ2VzLCB3ZSBuZWVkIHRvIHRha2UgY2FyZSB0byBjb252ZXJ0IHRoZW0gdG8gdGhlCisgICAg
ICAgIG5ldyBzY2FsZSBhbmQgYXZvaWQgZ2V0dGluZyB0aGVtIGNsYW1wZWQgdG8gdGhlIGV4dGVu
dHMgYXQgdGhlIHdyb25nCisgICAgICAgIHNjYWxlLgorCisgICAgICAgIEkgcmVtb3ZlZCBtYXhT
Y3JvbGxQb3NpdGlvbiBvbiB0aGUgbm9uLWltcGwgc2lkZSBiZWNhdXNlIGl0IG1ha2VzIG5vCisg
ICAgICAgIHNlbnNlIHRvIHByZWNvbXB1dGUgaXQgaW4gdGhlIHByZXNlbmNlIG9mIGFuIGltcGwt
c2lkZSB6b29tLiAgUmVwbGFjZWQKKyAgICAgICAgd2l0aCBhIHNpbXBsZSAnYm9vbCBtX3Njcm9s
bGFibGUnLgorCisgICAgICAgIHpvb21BbmltYXRvclRyYW5zZm9ybSBpcyBub3QgdXNlZCBiZWNh
dXNlIGl0IGN1cnJlbnRseSBpc24ndCBpbiB0aGUKKyAgICAgICAgYnJhbmNoLCBhbmQgbW9zdGx5
IGRvZXNuJ3QgYmVoYXZlIHRoZSB3YXkgd2Ugd2FudCBhbnl3YXkgKGl0IGRvZXMgbW9zdAorICAg
ICAgICB0aGluZ3MgaW4gV2ViS2l0IHRocmVhZCkuICBXZSB3aWxsIG5lZWQgdG8gdW5pZnkgdGhl
c2UgbGF0ZXIuCisKKyAgICAgICAgQWxzbyBpbnRyb2R1Y2UgZGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkKCkgY2FsbCB3aGljaCBpbnZhbGlkYXRlcworICAgICAgICBsYXllcnMuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIChmaWxlZCA3MTUyOSB0byByZW1lbWJlciB0byBkbyBpdCBsYXRl
cikuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpk
ZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5ZXJDaHJvbWl1bTo6TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNo
cm9taXVtOjpzZXRCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6cHVz
aFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6c2Nyb2xsYWJs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNocm9taXVtOjpzZXRTY3JvbGxhYmxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnBhZ2VTY2FsZUNoYW5nZWQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdMYXllcnNJbnRl
cm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnNl
dFBhZ2VNYWduaWZ5VHJhbnNmb3JtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9u
Q29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnRvcExldmVsUm9vdExheWVyKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6Q0NMYXllckltcGwpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmg6CisgICAgICAgIChXZWJD
b3JlOjpDQ0xheWVySW1wbDo6c2Nyb2xsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVy
SW1wbDo6c2V0U2Nyb2xsYWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdDo6Q0NMYXllclRyZWVIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dDo6ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdDo6c2V0UGFnZVNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ0xh
eWVyVHJlZUhvc3Q6OnBhZ2VTY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhvc3RJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OmNvbW1pdENvbXBsZXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OmZpbmRTY3JvbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpzZXRWaWV3cG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhv
c3RJbXBsOjpzZXRQYWdlU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0
SW1wbDo6c2V0U2NhbGVEZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJ
bXBsOjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXll
clRyZWVIb3N0SW1wbDo6dXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6cGluY2hHZXN0dXJlQmVnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6cGluY2hHZXN0dXJlVXBkYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBs
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpwYWdlU2NhbGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhy
ZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9D
b21taXQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFk
UHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6Y3JlYXRlQmVnaW5G
cmFtZUFuZENvbW1pdFRhc2tPbkltcGxUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJl
YWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oOgorCiAyMDExLTExLTA4ICBEYW5pZWwgQmF0
ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgZ2V0KCkgZGVmaW5lZCBp
biBDcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDUxZmMwZGM0ODk1ZDMyYzEzNmQxMTliMDRiYzIxYzA4N2RkZWY5YWYuLjU2ZTc5NDcwN2I2MzZh
YmMzMTRiMTEzMTA3ZThiZmViZWJkMWFhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjEgQEAKKzIwMTEtMTEtMDggIEFsZXhhbmRyZSBFbGlhcyAgPGFlbGlhc0Bnb29n
bGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGRyYXctdGltZSBzY2FsZSBkZWx0YSB0
byBjb21wb3NpdG9yIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzE1OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGVyZSBhcmUgdHdvIG1hZ25pZnkgdmFsdWVzOgorICAgICAgICAxLiBUaGUg
V2ViS2l0LXNpZGUgcGFnZVNjYWxlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHJlc29sdXRp
b24gb2YKKyAgICAgICAgICAgdGhlIHBhaW50ZWQgY29udGVudC4KKyAgICAgICAgMi4gVGhlIElt
cGwtc2lkZS1vbmx5IHNjYWxlRGVsdGEgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBhZGRpdGlvbmFs
CisgICAgICAgICAgIGRlZ3JlZSBvZiBjdXJyZW50IG1hZ25pZmljYXRpb24sIGFwcGxpZWQgYXMg
YSBkcmF3IHRyYW5zZm9ybS4gIFdlYktpdAorICAgICAgICAgICBpcyBuZXZlciBleHBsaWNpdGx5
IGF3YXJlIG9mIHRoaXMgdmFsdWUgYW5kIHRoZSBvbmx5IHdheSB0byBjaGFuZ2UgaXQKKyAgICAg
ICAgICAgY3VycmVudGx5IGlzIHZpYSBwaW5jaCBldmVudHMgKGFuZCBpbiB0aGUgZnV0dXJlLCBk
b3VibGUtdGFwL2V0YworICAgICAgICAgICBldmVudHMpLiAgQXQgdGhlIGVuZCBvZiBhIHBpbmNo
IHpvb20sIHdlIG11bHRpcGx5IHBhZ2VTY2FsZSAqCisgICAgICAgICAgIHNjYWxlRGVsdGEgYW5k
IHRlbGwgV2ViS2l0IHRvIHVzZSBpdCBhcyB0aGUgbmV3IHBhZ2VTY2FsZS4KKworICAgICAgICBT
Y3JvbGwgb2Zmc2V0cyBhbmQgbWF4LWV4dGVudHMgYXJlIG1haW50YWluZWQgaW4gcGFnZVNjYWxl
IHNwYWNlLgorICAgICAgICBXaGVuIHRoZSBzY2FsZSBjaGFuZ2VzLCB3ZSBuZWVkIHRvIHRha2Ug
Y2FyZSB0byBjb252ZXJ0IHRoZW0gdG8gdGhlCisgICAgICAgIG5ldyBzY2FsZSBhbmQgYXZvaWQg
Z2V0dGluZyB0aGVtIGNsYW1wZWQgdG8gdGhlIGV4dGVudHMgYXQgdGhlIHdyb25nCisgICAgICAg
IHNjYWxlLgorCisgICAgICAgIEkgcmVtb3ZlZCBtYXhTY3JvbGxQb3NpdGlvbiBvbiB0aGUgbm9u
LWltcGwgc2lkZSBiZWNhdXNlIGl0IG1ha2VzIG5vCisgICAgICAgIHNlbnNlIHRvIHByZWNvbXB1
dGUgaXQgaW4gdGhlIHByZXNlbmNlIG9mIGFuIGltcGwtc2lkZSB6b29tLiAgUmVwbGFjZWQKKyAg
ICAgICAgd2l0aCBhIHNpbXBsZSAnYm9vbCBtX3Njcm9sbGFibGUnLgorCisgICAgICAgIHpvb21B
bmltYXRvclRyYW5zZm9ybSBpcyBub3QgdXNlZCBiZWNhdXNlIGl0IGN1cnJlbnRseSBpc24ndCBp
biB0aGUKKyAgICAgICAgYnJhbmNoLCBhbmQgbW9zdGx5IGRvZXNuJ3QgYmVoYXZlIHRoZSB3YXkg
d2Ugd2FudCBhbnl3YXkgKGl0IGRvZXMgbW9zdAorICAgICAgICB0aGluZ3MgaW4gV2ViS2l0IHRo
cmVhZCkuICBXZSB3aWxsIG5lZWQgdG8gdW5pZnkgdGhlc2UgbGF0ZXIuCisKKyAgICAgICAgQWxz
byBpbnRyb2R1Y2UgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkgY2FsbCB3aGljaCBp
bnZhbGlkYXRlcworICAgICAgICBsYXllcnMuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViTGF5ZXJU
cmVlVmlld0NsaWVudC5oOgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgICog
c3JjL1dlYkNvbXBvc2l0b3JJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmll
d0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlT
Y3JvbGxBbmRTY2FsZSk6CisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmg6Cisg
ICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmVuYWJsZUZpeGVkTGF5b3V0TW9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1
cGRhdGVMYXllclRyZWVWaWV3cG9ydCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6Cisg
ICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdDo6ZXhwZWN0Q29udGFpbnMpOgorICAgICAgICAo
V2ViS2l0OjpURVNUX0YpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3Bw
OgorICAgICAgICAoV1RGOjpUZXN0SG9va3M6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAg
ICAoV1RGOjpNb2NrTGF5ZXJUcmVlSG9zdENsaWVudDo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6Cisg
ICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6OmJlZ2luVGVzdCk6
CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxTaW1wbGU6OmRyYXdMYXll
cnNPbkNDVGhyZWFkKToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVzdFNjcm9sbFNp
bXBsZTo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9z
dFRlc3RTY3JvbGxNdWx0aXBsZVJlZHJhdzo6YmVnaW5UZXN0KToKKyAgICAgICAgKFdURjo6Q0NM
YXllclRyZWVIb3N0VGVzdFNjcm9sbE11bHRpcGxlUmVkcmF3OjpkcmF3TGF5ZXJzT25DQ1RocmVh
ZCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxNdWx0aXBsZVJlZHJh
dzo6YXBwbHlTY3JvbGxBbmRTY2FsZSk6CisKIDIwMTEtMTEtMDggIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZGlzcGxheSBu
b3RpZmljYXRpb24gaW4gdGhlIGZyb250LWVuZCB3aGVuIGluc3BlY3RlZCB3b3JrZXIgdGVybWlu
YXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggNzI5YTlhY2Rl
Y2M0OGVmMDk5YzJlNWI5YzM3NjA1OTRkMGM2YjE3ZS4uMTU2YjJlOTBlZjQ1ZTY5MDA3ODJlYTU5
NDgwOGI2YWQ4MmUzZmJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3Bw
CkBAIC02NzAsNiArNjcwLDEyIEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVP
cGFjaXR5T25MYXllcigpCiAgICAgcHJpbWFyeUxheWVyKCktPnNldE9wYWNpdHkobV9vcGFjaXR5
KTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpCit7CisgICAgaWYgKG1fbGF5ZXIpCisgICAgICAgIG1fbGF5ZXItPnBhZ2VT
Y2FsZUNoYW5nZWQoKTsKK30KKwogYm9vbCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRyYXdzQ29u
dGVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEdyYXBoaWNzTGF5ZXI6OmRyYXdzQ29udGVudCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
R3JhcGhpY3NMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAppbmRleCA3MTkwZTUwNTlmYzU2MTY0
OTY5NjkwNDk0M2E1ZTc1YzUzN2M1MzdlLi5mNzNlNzMzNzM5YmExNmE1MjIxMWIzMTFlMjY5YzUz
NmJjYWJhNzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTAwLDYg
KzEwMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBjbGlwKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
U3luY1JlcXVpcmVkKCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0
b3JDaGFuZ2VkKCk7CiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlT3BhY2l0eU9uTGF5ZXIoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmNwcAppbmRleCAxYmU3OTg1NWMxZTZiM2ZlMTI5NzI0MmJjMjk4
NDA1NmQ0MDk3OGJiLi5jYTAwYzIzNTI0Zjc3YTYzYjBlODU5OGJkODEzZjIwMzZjNjA4NjQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtNTgsNiArNTgsNyBAQCBMYXllckNocm9taXVtOjpM
YXllckNocm9taXVtKENDTGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgOiBtX2RlbGVnYXRl
KGRlbGVnYXRlKQogICAgICwgbV9sYXllcklkKHNfbmV4dExheWVySWQrKykKICAgICAsIG1fcGFy
ZW50KDApCisgICAgLCBtX3Njcm9sbGFibGUoZmFsc2UpCiAgICAgLCBtX2FuY2hvclBvaW50KDAu
NSwgMC41KQogICAgICwgbV9iYWNrZ3JvdW5kQ29sb3IoMCwgMCwgMCwgMCkKICAgICAsIG1fZGVi
dWdCb3JkZXJXaWR0aCgwKQpAQCAtNzIsNiArNzMsNyBAQCBMYXllckNocm9taXVtOjpMYXllckNo
cm9taXVtKENDTGF5ZXJEZWxlZ2F0ZSogZGVsZWdhdGUpCiAgICAgLCBtX3JlcGxpY2FMYXllcigw
KQogICAgICwgbV9kcmF3T3BhY2l0eSgwKQogICAgICwgbV90YXJnZXRSZW5kZXJTdXJmYWNlKDAp
CisgICAgLCBtX3BhZ2VTY2FsZURpcnR5KGZhbHNlKQogewogfQogCkBAIC0yMTAsMTAgKzIxMiwx
MiBAQCB2b2lkIExheWVyQ2hyb21pdW06OnNldEJvdW5kcyhjb25zdCBJbnRTaXplJiBzaXplKQog
CiAgICAgbV9ib3VuZHMgPSBzaXplOwogCi0gICAgaWYgKGZpcnN0UmVzaXplKQorICAgIGlmIChm
aXJzdFJlc2l6ZSB8fCBtX3BhZ2VTY2FsZURpcnR5KQogICAgICAgICBzZXROZWVkc0Rpc3BsYXko
RmxvYXRSZWN0KDAsIDAsIGJvdW5kcygpLndpZHRoKCksIGJvdW5kcygpLmhlaWdodCgpKSk7CiAg
ICAgZWxzZQogICAgICAgICBzZXROZWVkc0NvbW1pdCgpOworCisgICAgbV9wYWdlU2NhbGVEaXJ0
eSA9IGZhbHNlOwogfQogCiBjb25zdCBMYXllckNocm9taXVtKiBMYXllckNocm9taXVtOjpyb290
TGF5ZXIoKSBjb25zdApAQCAtMjg3LDcgKzI5MSw3IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cHVz
aFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgbGF5ZXItPnNldERyYXdzQ29u
dGVudChkcmF3c0NvbnRlbnQoKSk7CiAgICAgbGF5ZXItPnNldElzTm9uQ29tcG9zaXRlZENvbnRl
bnQobV9pc05vbkNvbXBvc2l0ZWRDb250ZW50KTsKICAgICBsYXllci0+c2V0TWFza3NUb0JvdW5k
cyhtX21hc2tzVG9Cb3VuZHMpOwotICAgIGxheWVyLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtX21h
eFNjcm9sbFBvc2l0aW9uKTsKKyAgICBsYXllci0+c2V0U2Nyb2xsYWJsZShtX3Njcm9sbGFibGUp
OwogICAgIGxheWVyLT5zZXROYW1lKG1fbmFtZSk7CiAgICAgbGF5ZXItPnNldE9wYXF1ZShtX29w
YXF1ZSk7CiAgICAgbGF5ZXItPnNldE9wYWNpdHkobV9vcGFjaXR5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
aAppbmRleCBiYjBlYzYyNjUwMzM2OGY0OTljOTUzMmRkNjk0NDljZWJhMzcwYzk0Li43NDdkYzk4
NjljZjEwYjYyZjMwZTliZjA5YWYyMjc5ODY2NGQzNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBA
IC0xMzEsMTMgKzEzMSwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxQb3NpdGlvbjsgfQogICAgIHZvaWQgc2V0
U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKSB7IG1fc2Nyb2xs
UG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsgfQogCi0gICAgY29uc3QgSW50U2l6ZSYgbWF4U2Ny
b2xsUG9zaXRpb24oKSBjb25zdCB7cmV0dXJuIG1fbWF4U2Nyb2xsUG9zaXRpb247IH0KLSAgICB2
b2lkIHNldE1heFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFNpemUmIG1heFNjcm9sbFBvc2l0aW9u
KSB7IG1fbWF4U2Nyb2xsUG9zaXRpb24gPSBtYXhTY3JvbGxQb3NpdGlvbjsgfQorICAgIGJvb2wg
c2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZTsgfQorICAgIHZvaWQgc2V0
U2Nyb2xsYWJsZShib29sIHNjcm9sbGFibGUpIHsgbV9zY3JvbGxhYmxlID0gdHJ1ZTsgIHNldE5l
ZWRzQ29tbWl0KCk7IH0KIAogICAgIEludFNpemUgc2Nyb2xsRGVsdGEoKSBjb25zdCB7IHJldHVy
biBJbnRTaXplKCk7IH0KIAotICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFt
YXhTY3JvbGxQb3NpdGlvbigpLmlzWmVybygpOyB9Ci0KICAgICBib29sIGRvdWJsZVNpZGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9kb3VibGVTaWRlZDsgfQogICAgIHZvaWQgc2V0RG91YmxlU2lkZWQo
Ym9vbCBkb3VibGVTaWRlZCkgeyBtX2RvdWJsZVNpZGVkID0gZG91YmxlU2lkZWQ7IHNldE5lZWRz
Q29tbWl0KCk7IH0KIApAQCAtMTY0LDYgKzE2Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0SXNNYXNrKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB1bnJlc2VydmVDb250ZW50
c1RleHR1cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4dHVyZSgpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBwYWdlU2NhbGVDaGFuZ2VkKCkgeyBtX3BhZ2VTY2FsZURpcnR5
ID0gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygp
IHsgfQogCiAgICAgLy8gVGhlc2UgZXhpc3QganVzdCBmb3IgZGVidWdnaW5nICh2aWEgZHJhd0Rl
YnVnQm9yZGVyKCkpLgpAQCAtMjUyLDcgKzI1MSw3IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBt
X2JvdW5kczsKICAgICBJbnRSZWN0IG1fdmlzaWJsZUxheWVyUmVjdDsKICAgICBJbnRQb2ludCBt
X3Njcm9sbFBvc2l0aW9uOwotICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlvbjsKKyAgICBi
b29sIG1fc2Nyb2xsYWJsZTsKICAgICBGbG9hdFBvaW50IG1fcG9zaXRpb247CiAgICAgRmxvYXRQ
b2ludCBtX2FuY2hvclBvaW50OwogICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9yOwpAQCAtMjgz
LDYgKzI4Miw4IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCBtX2RyYXdhYmxlQ29udGVudFJlY3Q7
CiAKICAgICBTdHJpbmcgbV9uYW1lOworCisgICAgYm9vbCBtX3BhZ2VTY2FsZURpcnR5OwogfTsK
IAogdm9pZCBzb3J0TGF5ZXJzKFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0
b3IsIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIHZvaWQqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
UmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IGRmMjU0MzU2YmRiZDYxZjgy
ZDkyMWU4ZTljMGRjZWVjOWFhNWU4YTIuLjIyMDMyMWI3NGVhYTY1NmUwYWU0MzVmMmU5NmY4YzM1
NjZiMTI1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtMzYx
LDkgKzM2MSwxNCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVyc0ludGVy
bmFsKCkKICAgICBtX2RlZmF1bHRSZW5kZXJTdXJmYWNlID0gcm9vdERyYXdMYXllci0+cmVuZGVy
U3VyZmFjZSgpOwogICAgIG1fZGVmYXVsdFJlbmRlclN1cmZhY2UtPmNsZWFyTGF5ZXJMaXN0KCk7
CiAKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtYWduaWZ5TWF0cml4KG1fcGFnZU1hZ25pZnlN
YXRyaXgpOworICAgIC8vIFRPRE8oYWVsaWFzKTogVGhlc2UgdHdvIHRyYW5zZm9ybWF0aW9ucyBh
cmUgcmVkdW5kYW50OyB1bmlmeSB6b29tQW5pbWF0b3IKKyAgICAvLyBhbmQgaW1wbC10aHJlYWQg
c2lkZSBtYXRyaXguCisgICAgbWFnbmlmeU1hdHJpeC5tdWx0aXBseShtX3pvb21BbmltYXRvclRy
YW5zZm9ybSk7CisKICAgICB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXllclJlbmRlcmVyQ2hy
b21pdW06OmRyYXdMYXllcnNJbnRlcm5hbDo6Y2FsY0RyYXdFdGMiLCB0aGlzLCAwKTsKLSAgICAg
ICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2li
aWxpdHkocm9vdERyYXdMYXllciwgcm9vdERyYXdMYXllciwgbV96b29tQW5pbWF0b3JUcmFuc2Zv
cm0sIG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtLCByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0LCBtX2Rl
ZmF1bHRSZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKSwgJm1fbGF5ZXJTb3J0ZXIsIG1fY2FwYWJp
bGl0aWVzLm1heFRleHR1cmVTaXplKTsKKyAgICAgICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpj
YWxjdWxhdGVEcmF3VHJhbnNmb3Jtc0FuZFZpc2liaWxpdHkocm9vdERyYXdMYXllciwgcm9vdERy
YXdMYXllciwgbWFnbmlmeU1hdHJpeCwgbWFnbmlmeU1hdHJpeCwgcmVuZGVyU3VyZmFjZUxheWVy
TGlzdCwgbV9kZWZhdWx0UmVuZGVyU3VyZmFjZS0+bGF5ZXJMaXN0KCksICZtX2xheWVyU29ydGVy
LCBtX2NhcGFiaWxpdGllcy5tYXhUZXh0dXJlU2l6ZSk7CiAgICAgfQogCiAgICAgLy8gVGhlIEdM
IHZpZXdwb3J0IGNvdmVycyB0aGUgZW50aXJlIHZpc2libGUgYXJlYSwgaW5jbHVkaW5nIHRoZSBz
Y3JvbGxiYXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAppbmRleCA2NDZlYTZl
NWM0NDhhNThjNjEyNDEzNDJiMGY5YTZlYWRkYWVmNDQ3Li4wMjhlNjY0ZDNjYjllNWY1YjA2ZTZi
ZWY5ZmM3N2IwZmVjNTEyZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApA
QCAtOTgsNiArOTgsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHZpZXdwb3J0Q2hhbmdlZCgpOwog
CisgICAgdm9pZCBzZXRQYWdlTWFnbmlmeVRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgcGFnZU1hZ25pZnlNYXRyaXgpIHsgbV9wYWdlTWFnbmlmeU1hdHJpeCA9IHBhZ2VNYWdu
aWZ5TWF0cml4OyB9CisKICAgICB2b2lkIGRyYXdMYXllcnMoKTsKIAogICAgIC8vIHdhaXRzIGZv
ciByZW5kZXJpbmcgdG8gZmluaXNoCkBAIC0xOTUsNiArMTk3LDcgQEAgcHJpdmF0ZToKIAogICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IG1fcHJvamVjdGlvbk1hdHJpeDsKICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBtX3dpbmRvd01hdHJpeDsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3Bh
Z2VNYWduaWZ5TWF0cml4OwogCiAgICAgQ0NSZW5kZXJTdXJmYWNlKiBtX2N1cnJlbnRSZW5kZXJT
dXJmYWNlOwogICAgIHVuc2lnbmVkIG1fb2Zmc2NyZWVuRnJhbWVidWZmZXJJZDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0
ZWRDb250ZW50SG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCmluZGV4IDI1ODM5Yzg4YTk3MzM5ZGU2
NzEwZmMwNmNiZWQwOWVhNGJlMjRmY2YuLmJjNmEyYTQ5NzgyOGViMjkxZTk4OTdlYjFiYjEyMjIw
NzBhNGEyYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcApA
QCAtNzQsNyArNzQsNyBAQCB2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0U2Nyb2xs
TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgQVNTRVJUKHNjcm9sbExheWVyKCkpOwog
fQogCi12b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0Vmlld3BvcnQoY29uc3QgSW50
U2l6ZSYgdmlld3BvcnRTaXplLCBjb25zdCBJbnRTaXplJiBjb250ZW50c1NpemUsIGNvbnN0IElu
dFBvaW50JiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0Ojpz
ZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNv
bnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBmbG9hdCBwYWdlU2Nh
bGUpCiB7CiAgICAgaWYgKCFzY3JvbGxMYXllcigpKQogICAgICAgICByZXR1cm47CkBAIC04Mywx
NiArODMsMTYgQEAgdm9pZCBOb25Db21wb3NpdGVkQ29udGVudEhvc3Q6OnNldFZpZXdwb3J0KGNv
bnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3QgSW4KIAogICAgIG1fdmlld3BvcnRTaXpl
ID0gdmlld3BvcnRTaXplOwogICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHNj
cm9sbFBvc2l0aW9uKTsKLSAgICBJbnRTaXplIG1heFNjcm9sbCA9IGNvbnRlbnRzU2l6ZSAtIHZp
ZXdwb3J0U2l6ZTsKLSAgICAvLyBUaGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBj
b250ZW50cyBpbiBzb21lIGNhc2VzLCBzdWNoIGFzCi0gICAgLy8gaGF2aW5nIGEgdmVydGljYWwg
c2Nyb2xsYmFyIGJ1dCBubyBob3Jpem9udGFsIG92ZXJmbG93LgotICAgIG1heFNjcm9sbC5jbGFt
cE5lZ2F0aXZlVG9aZXJvKCk7Ci0KLSAgICBzY3JvbGxMYXllcigpLT5zZXRNYXhTY3JvbGxQb3Np
dGlvbihtYXhTY3JvbGwpOworICAgIC8vIER1ZSB0byB0aGUgcG9zc2liaWxpdHkgb2YgcGluY2gg
em9vbSwgdGhlIG5vbmNvbXBvc2l0ZWQgbGF5ZXIgaXMgYWx3YXlzCisgICAgLy8gYXNzdW1lZCB0
byBiZSBzY3JvbGxhYmxlLgorICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbGFibGUodHJ1ZSk7
CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRTaXplKGNvbnRlbnRzU2l6ZSk7CiAKICAgICBpZiAo
dmlzaWJsZVJlY3RDaGFuZ2VkKQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldE5lZWRzRGlz
cGxheSgpOworCisgICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+cGFnZVNjYWxlRmFjdG9yKCkgIT0g
cGFnZVNjYWxlKQorICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPmRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpOwogfQogCiBMYXllckNocm9taXVtKiBOb25Db21wb3NpdGVkQ29udGVudEhv
c3Q6OnNjcm9sbExheWVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgK
aW5kZXggMjg2NDc1Y2JkY2RjN2Y1YjE5MTI0MGFkOGUxYTExNzkwMTRiYjI3YS4uODBhNzBhOWRi
ZDMxNmVhYTBiZWQyNDlhZTk5YWQzODk5ZThmNDA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0LmgKQEAgLTU1LDggKzU1LDkgQEAgcHVibGljOgogICAgIHZvaWQgaW52
YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpOwogICAgIHZvaWQgc2V0QmFja2dyb3VuZENvbG9y
KGNvbnN0IENvbG9yJik7CiAgICAgdm9pZCBzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVyKik7
Ci0gICAgdm9pZCBzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0
IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKTsK
KyAgICB2b2lkIHNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgY29uc3Qg
SW50U2l6ZSYgY29udGVudHNTaXplLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGZs
b2F0IHBhZ2VTY2FsZSk7CiAgICAgdm9pZCBwcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpOwor
ICAgIEdyYXBoaWNzTGF5ZXIqIHRvcExldmVsUm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9n
cmFwaGljc0xheWVyLmdldCgpOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTm9uQ29tcG9z
aXRlZENvbnRlbnRIb3N0KFBhc3NPd25QdHI8TGF5ZXJQYWludGVyQ2hyb21pdW0+IGNvbnRlbnRQ
YWludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKaW5kZXggZjVhNWExZDFhN2QwODUxOGUzMjlj
NjhmNGMyOGQyOWY3ODI4ZjMwZi4uYmQyYWEwYWZjNDNkNzhlMDFhNjNjOWM0OGQyYWVjYTJhMTIy
NzkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcApAQCAtNDIsNiArNDIsNyBAQCBDQ0xheWVy
SW1wbDo6Q0NMYXllckltcGwoaW50IGlkKQogICAgICwgbV9sYXllcklkKGlkKQogICAgICwgbV9h
bmNob3JQb2ludCgwLjUsIDAuNSkKICAgICAsIG1fYW5jaG9yUG9pbnRaKDApCisgICAgLCBtX3Nj
cm9sbGFibGUoZmFsc2UpCiAgICAgLCBtX2RvdWJsZVNpZGVkKHRydWUpCiAgICAgLCBtX2xheWVy
UHJvcGVydHlDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9tYXNrc1RvQm91bmRzKGZhbHNlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJJbXBsLmgKaW5kZXggMmI4ODQzOWQ0ZmYwMzFhYzUxMTYxYjRlMDcxY2ZjYzE2Y2Qy
NGZmMi4uYjcyY2FlMTBkOTE3MWNlNjdkYmRiNzRjYjE0YjVlNTE1MzUwYWM2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllcklt
cGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVySW1wbC5oCkBAIC0xNTgsNyArMTU4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2Ny
b2xsRGVsdGEoY29uc3QgSW50U2l6ZSYpOwogCiAgICAgdm9pZCBzY3JvbGxCeShjb25zdCBJbnRT
aXplJiBzY3JvbGwpOwotICAgIGJvb2wgc2Nyb2xsYWJsZSgpIGNvbnN0IHsgcmV0dXJuICFtYXhT
Y3JvbGxQb3NpdGlvbigpLmlzWmVybygpOyB9CisKKyAgICBib29sIHNjcm9sbGFibGUoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGFibGU7IH0KKyAgICB2b2lkIHNldFNjcm9sbGFibGUoYm9vbCBz
Y3JvbGxhYmxlKSB7IG1fc2Nyb2xsYWJsZSA9IHNjcm9sbGFibGU7IH0KIAogICAgIGNvbnN0IElu
dFJlY3QmIHZpc2libGVMYXllclJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Zpc2libGVMYXllclJl
Y3Q7IH0KICAgICB2b2lkIHNldFZpc2libGVMYXllclJlY3QoY29uc3QgSW50UmVjdCYgdmlzaWJs
ZUxheWVyUmVjdCkgeyBtX3Zpc2libGVMYXllclJlY3QgPSB2aXNpYmxlTGF5ZXJSZWN0OyB9CkBA
IC0yMTYsNyArMjE4LDcgQEAgcHJpdmF0ZToKICAgICBJbnRTaXplIG1fYm91bmRzOwogICAgIElu
dFNpemUgbV9jb250ZW50Qm91bmRzOwogICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247Ci0g
ICAgSW50U2l6ZSBtX21heFNjcm9sbFBvc2l0aW9uOworICAgIGJvb2wgbV9zY3JvbGxhYmxlOwog
ICAgIENvbG9yIG1fYmFja2dyb3VuZENvbG9yOwogCiAgICAgLy8gV2hldGhlciB0aGUgImJhY2si
IG9mIHRoaXMgbGF5ZXIgc2hvdWxkIGRyYXcuCkBAIC0yMzksNiArMjQxLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fZHJhd3NDb250ZW50OwogCiAgICAgSW50U2l6ZSBtX3Njcm9sbERlbHRhOwor
ICAgIEludFNpemUgbV9tYXhTY3JvbGxQb3NpdGlvbjsKIAogICAgIC8vIFByb3BlcnRpZXMgb3du
ZWQgZXhjbHVzaXZlbHkgYnkgdGhpcyBDQ0xheWVySW1wbC4KICAgICAvLyBEZWJ1Z2dpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCAxMjc2MWYxYWQwOWE1YjBiMWRjZjM1
NjY0ZDhmMjk0NzcxYmE0ZTliLi40ZjJjMWZiNjI2NGVlN2MzYTllNjE3NTM3YTAyODk4MmY4YWIz
M2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTU2LDYgKzU2LDkgQEAg
Q0NMYXllclRyZWVIb3N0OjpDQ0xheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiBj
bGllbnQsIGNvbnN0IENDU2V0dGluZ3MKICAgICAsIG1fc2V0dGluZ3Moc2V0dGluZ3MpCiAgICAg
LCBtX3Zpc2libGUodHJ1ZSkKICAgICAsIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhmYWxzZSkK
KyAgICAsIG1fcGFnZVNjYWxlKDEpCisgICAgLCBtX21pblBhZ2VTY2FsZSgxKQorICAgICwgbV9t
YXhQYWdlU2NhbGUoMSkKIHsKICAgICBDQ01haW5UaHJlYWQ6OmluaXRpYWxpemUoKTsKICAgICBB
U1NFUlQoQ0NQcm94eTo6aXNNYWluVGhyZWFkKCkpOwpAQCAtMTMwLDYgKzEzMyw4IEBAIHZvaWQg
Q0NMYXllclRyZWVIb3N0OjpmaW5pc2hDb21taXRPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0
SW1wbCogaG9zdEltcGwpCiAgICAgaG9zdEltcGwtPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMo
bV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKTsKICAgICBob3N0SW1wbC0+c2V0Wm9vbUFuaW1hdG9y
VHJhbnNmb3JtKG1fem9vbUFuaW1hdG9yVHJhbnNmb3JtKTsKICAgICBob3N0SW1wbC0+c2V0Vmll
d3BvcnQodmlld3BvcnRTaXplKCkpOworICAgIGhvc3RJbXBsLT5zZXRQYWdlU2NhbGUocGFnZVNj
YWxlKCkpOworICAgIGhvc3RJbXBsLT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMobV9taW5QYWdl
U2NhbGUsIG1fbWF4UGFnZVNjYWxlKTsKIAogICAgIC8vIFN5bmNocm9uaXplIHRyZWVzLCBpZiBv
bmUgZXhpc3RzIGF0IGFsbC4uLgogICAgIGlmIChyb290TGF5ZXIoKSkKQEAgLTIyNCw2ICsyMjks
MjUgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSkKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCit2b2lkIENDTGF5ZXJUcmVl
SG9zdDo6c2V0UGFnZVNjYWxlKGZsb2F0IHBhZ2VTY2FsZSkKK3sKKyAgICBpZiAocGFnZVNjYWxl
ID09IG1fcGFnZVNjYWxlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2VTY2FsZSA9IHBh
Z2VTY2FsZTsKKyAgICBzZXROZWVkc0NvbW1pdCgpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9z
dDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblNjYWxlLCBmbG9hdCBtYXhTY2Fs
ZSkKK3sKKyAgICBpZiAobWluU2NhbGUgPT0gbV9taW5QYWdlU2NhbGUgJiYgbWF4U2NhbGUgPT0g
bV9tYXhQYWdlU2NhbGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWluUGFnZVNjYWxlID0g
bWluU2NhbGU7CisgICAgbV9tYXhQYWdlU2NhbGUgPSBtYXhTY2FsZTsKKyAgICBzZXROZWVkc0Nv
bW1pdCgpOworfQorCiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0VmlzaWJsZShib29sIHZpc2li
bGUpCiB7CiAgICAgaWYgKG1fdmlzaWJsZSA9PSB2aXNpYmxlKQpAQCAtNDM3LDE1ICs0NjEsMTUg
QEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmNsZWFyUGVuZGluZ1VwZGF0ZSgpCiAgICAgbV91cGRh
dGVMaXN0LmNsZWFyKCk7CiB9CiAKLXZvaWQgQ0NMYXllclRyZWVIb3N0OjphcHBseVNjcm9sbERl
bHRhcyhjb25zdCBDQ1Njcm9sbFVwZGF0ZVNldCYgaW5mbykKK3ZvaWQgQ0NMYXllclRyZWVIb3N0
OjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmIGluZm8pCiB7
CiAgICAgLy8gRklYTUU6IHB1c2hpbmcgc2Nyb2xsIG9mZnNldHMgdG8gbm9uLXJvb3QgbGF5ZXJz
IG5vdCBpbXBsZW1lbnRlZAotICAgIGlmICghaW5mby5zaXplKCkpCisgICAgaWYgKCFpbmZvLnNj
cm9sbHMuc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoaW5mby5zaXplKCkg
PT0gMSk7Ci0gICAgSW50U2l6ZSBzY3JvbGxEZWx0YSA9IGluZm9bMF0uc2Nyb2xsRGVsdGE7Ci0g
ICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsRGVsdGEoc2Nyb2xsRGVsdGEpOworICAgIEFTU0VSVChp
bmZvLnNjcm9sbHMuc2l6ZSgpID09IDEpOworICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBpbmZv
LnNjcm9sbHNbMF0uc2Nyb2xsRGVsdGE7CisgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsQW5kU2Nh
bGUoc2Nyb2xsRGVsdGEsIGluZm8ucGFnZVNjYWxlKTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OnN0YXJ0UmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDc1MDczMGRjZWJhNzM2NDgzZWNjZDI4MDg4NDEwODcw
NzMyYjE4Y2IuLjc1MTk1NDVlMTc1MDRiNmEyNGNjMWE3NDI4OTZhNjgxYTc1Mjc5NGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC01NCw3ICs1NCw3IEBAIGNsYXNzIFRleHR1cmVN
YW5hZ2VyOwogY2xhc3MgQ0NMYXllclRyZWVIb3N0Q2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgYW5pbWF0ZUFuZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERl
bHRhLCBmbG9hdCBwYWdlU2NhbGUpID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2VzcykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoaW50IGZyYW1lTnVtYmVyKSA9
IDA7CkBAIC0xNTgsNiArMTU4LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdwb3J0KGNv
bnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSk7CiAKICAgICBjb25zdCBJbnRTaXplJiB2aWV3cG9y
dFNpemUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0U2l6ZTsgfQorCisgICAgdm9pZCBzZXRQ
YWdlU2NhbGUoZmxvYXQpOworICAgIGZsb2F0IHBhZ2VTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZVNjYWxlOyB9CisKKyAgICB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBt
aW5TY2FsZSwgZmxvYXQgbWF4U2NhbGUpOworCiAgICAgVGV4dHVyZU1hbmFnZXIqIGNvbnRlbnRz
VGV4dHVyZU1hbmFnZXIoKSBjb25zdDsKIAogICAgIGJvb2wgdmlzaWJsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdmlzaWJsZTsgfQpAQCAtMTY4LDcgKzE3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVw
ZGF0ZUxheWVycygpOwogCiAgICAgdm9pZCB1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKEdyYXBo
aWNzQ29udGV4dDNEKiwgQ0NUZXh0dXJlVXBkYXRlciYpOwotICAgIHZvaWQgYXBwbHlTY3JvbGxE
ZWx0YXMoY29uc3QgQ0NTY3JvbGxVcGRhdGVTZXQmKTsKKyAgICB2b2lkIGFwcGx5U2Nyb2xsQW5k
U2NhbGUoY29uc3QgQ0NTY3JvbGxBbmRTY2FsZVNldCYpOwogICAgIHZvaWQgc3RhcnRSYXRlTGlt
aXRlcihHcmFwaGljc0NvbnRleHQzRCopOwogICAgIHZvaWQgc3RvcFJhdGVMaW1pdGVyKEdyYXBo
aWNzQ29udGV4dDNEKik7CiAKQEAgLTIwOSw2ICsyMTUsOSBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzOwogICAgIHR5cGVkZWYgSGFzaE1hcDxHcmFwaGljc0Nv
bnRleHQzRCosIFJlZlB0cjxSYXRlTGltaXRlcj4gPiBSYXRlTGltaXRlck1hcDsKICAgICBSYXRl
TGltaXRlck1hcCBtX3JhdGVMaW1pdGVyczsKKworICAgIGZsb2F0IG1fcGFnZVNjYWxlOworICAg
IGZsb2F0IG1fbWluUGFnZVNjYWxlLCBtX21heFBhZ2VTY2FsZTsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdENvbW1vbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKaW5kZXggNjlkNTg0ZDRkMGVhYmFmYWNlN2Qw
NTFjMzg2NTJhZWE4YjRiMTg4OC4uNTI5YjNiMzIwY2Y3MjQ0ZTJlNDE5OGVmMTk3ZTVjNDNkYzVi
NjlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q29tbW9uLmgKQEAgLTUxLDcg
KzUxLDEwIEBAIHB1YmxpYzoKICAgICB9OwogfTsKIAotdHlwZWRlZiBWZWN0b3I8Q0NMYXllclRy
ZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZvPiBDQ1Njcm9sbFVwZGF0ZVNldDsKK3N0cnVj
dCBDQ1Njcm9sbEFuZFNjYWxlU2V0IHsKKyAgICBWZWN0b3I8Q0NMYXllclRyZWVIb3N0Q29tbW9u
OjpTY3JvbGxVcGRhdGVJbmZvPiBzY3JvbGxzOworICAgIGZsb2F0IHBhZ2VTY2FsZTsKK307CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHlwZT4KIEludFJlY3QgQ0NMYXllclRyZWVIb3N0Q29t
bW9uOjpjYWxjdWxhdGVWaXNpYmxlTGF5ZXJSZWN0KExheWVyVHlwZSogbGF5ZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IGZlMDkzMjZlNGIyOTkwNTZmMmQ3
NWIzZWIxZTZhZTMyMzhjYzQ2ZTYuLjhhY2I1NGJiYzQ1NmNlYTBjMGM0MTZiZWVjMjRlMDJmYjk3
MDY0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC01MCw2
ICs1MCwxMSBAQCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpDQ0xheWVyVHJlZUhvc3RJbXBsKGNvbnN0
IENDU2V0dGluZ3MmIHNldHRpbmdzLCBDQ0xheWVyVHJlZQogICAgICwgbV9zZXR0aW5ncyhzZXR0
aW5ncykKICAgICAsIG1fdmlzaWJsZSh0cnVlKQogICAgICwgbV9oYXZlV2hlZWxFdmVudEhhbmRs
ZXJzKGZhbHNlKQorICAgICwgbV9wYWdlU2NhbGUoMSkKKyAgICAsIG1fc2NhbGVEZWx0YSgxKQor
ICAgICwgbV9taW5QYWdlU2NhbGUoMCkKKyAgICAsIG1fbWF4UGFnZVNjYWxlKDApCisgICAgLCBt
X3BpbmNoR2VzdHVyZUFjdGl2ZShmYWxzZSkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBs
VGhyZWFkKCkpOwogfQpAQCAtNjgsNiArNzMsOSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6
OmJlZ2luQ29tbWl0KCkKIAogdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpjb21taXRDb21wbGV0
ZSgpCiB7CisgICAgLy8gUmVjb21wdXRlIG1heCBzY3JvbGwgcG9zaXRpb247IG11c3QgYmUgYWZ0
ZXIgbGF5ZXIgY29udGVudCBib3VuZHMgYXJlCisgICAgLy8gdXBkYXRlZC4KKyAgICB1cGRhdGVN
YXhTY3JvbGxQb3NpdGlvbigpOwogfQogCiBHcmFwaGljc0NvbnRleHQzRCogQ0NMYXllclRyZWVI
b3N0SW1wbDo6Y29udGV4dCgpCkBAIC0xMjgsNyArMTM2LDcgQEAgc3RhdGljIENDTGF5ZXJJbXBs
KiBmaW5kU2Nyb2xsTGF5ZXIoQ0NMYXllckltcGwqIGxheWVyKQogICAgIGlmICghbGF5ZXIpCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKCFsYXllci0+bWF4U2Nyb2xsUG9zaXRpb24oKS5p
c1plcm8oKSkKKyAgICBpZiAobGF5ZXItPnNjcm9sbGFibGUoKSkKICAgICAgICAgcmV0dXJuIGxh
eWVyOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXllci0+Y2hpbGRyZW4oKS5zaXpl
KCk7ICsraSkgewpAQCAtMTgwLDEwICsxODgsODIgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3RJbXBs
Ojppbml0aWFsaXplTGF5ZXJSZW5kZXJlcihQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPgog
CiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFZpZXdwb3J0KGNvbnN0IEludFNpemUmIHZp
ZXdwb3J0U2l6ZSkKIHsKLSAgICBib29sIGNoYW5nZWQgPSB2aWV3cG9ydFNpemUgIT0gbV92aWV3
cG9ydFNpemU7CisgICAgaWYgKHZpZXdwb3J0U2l6ZSA9PSBtX3ZpZXdwb3J0U2l6ZSkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgbV92aWV3cG9ydFNpemUgPSB2aWV3cG9ydFNpemU7Ci0gICAgaWYg
KGNoYW5nZWQpCi0gICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+dmlld3BvcnRDaGFuZ2VkKCk7Cisg
ICAgdXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24oKTsKKyAgICBtX2xheWVyUmVuZGVyZXItPnZpZXdw
b3J0Q2hhbmdlZCgpOworfQorCit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFBhZ2VTY2Fs
ZShmbG9hdCBwYWdlU2NhbGUpCit7CisgICAgaWYgKCFwYWdlU2NhbGUgfHwgcGFnZVNjYWxlID09
IG1fcGFnZVNjYWxlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBNYWludGFpbiBjb25zdGFu
dCB0aGUgcHJvZHVjdCBvZiBtX3BhZ2VTY2FsZSAqIG1fc2NhbGVEZWx0YS4KKyAgICBmbG9hdCBz
Y2FsZUNoYW5nZSA9IHBhZ2VTY2FsZSAvIG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG9sZE1hZ25p
ZnlTY2FsZSA9IG1fcGFnZVNjYWxlICogbV9zY2FsZURlbHRhOworICAgIG1fcGFnZVNjYWxlID0g
cGFnZVNjYWxlOworCisgICAgc2V0U2NhbGVEZWx0YShvbGRNYWduaWZ5U2NhbGUgLyBwYWdlU2Nh
bGUpOworCisgICAgLy8gV2UgYWxzbyBuZWVkIHRvIGNvbnZlcnQgaW1wbC1zaWRlIHNjcm9sbCBk
ZWx0YXMgdG8gcGFnZVNjYWxlIHNwYWNlLgorICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiBt
X3Njcm9sbExheWVySW1wbC0+c2Nyb2xsYWJsZSgpKSB7CisgICAgICAgIEludFNpemUgc2Nyb2xs
RGVsdGEgPSBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKTsKKyAgICAgICAgc2Nyb2xs
RGVsdGEuc2NhbGUoc2NhbGVDaGFuZ2UpOworICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0
U2Nyb2xsRGVsdGEoc2Nyb2xsRGVsdGEpOworICAgIH0KK30KKwordm9pZCBDQ0xheWVyVHJlZUhv
c3RJbXBsOjpzZXRTY2FsZURlbHRhKGZsb2F0IGRlbHRhKQoreworICAgIC8vIENsYW1wIHRvIHRo
ZSBjdXJyZW50IG1pbi9tYXggbGltaXRzLgorICAgIGZsb2F0IGZpbmFsTWFnbmlmeVNjYWxlID0g
bV9wYWdlU2NhbGUgKiBkZWx0YTsKKyAgICBpZiAobV9taW5QYWdlU2NhbGUgJiYgZmluYWxNYWdu
aWZ5U2NhbGUgPCBtX21pblBhZ2VTY2FsZSkKKyAgICAgICAgZGVsdGEgPSBtX21pblBhZ2VTY2Fs
ZSAvIG1fcGFnZVNjYWxlOworICAgIGVsc2UgaWYgKG1fbWF4UGFnZVNjYWxlICYmIGZpbmFsTWFn
bmlmeVNjYWxlID4gbV9tYXhQYWdlU2NhbGUpCisgICAgICAgIGRlbHRhID0gbV9tYXhQYWdlU2Nh
bGUgLyBtX3BhZ2VTY2FsZTsKKworICAgIGlmIChkZWx0YSA9PSBtX3NjYWxlRGVsdGEpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fc2NhbGVEZWx0YSA9IGRlbHRhOworCisgICAgdXBkYXRlTWF4
U2Nyb2xsUG9zaXRpb24oKTsKKworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGRlbHRhTWF0cml4
OworICAgIGRlbHRhTWF0cml4LnNjYWxlKG1fc2NhbGVEZWx0YSk7CisgICAgbV9sYXllclJlbmRl
cmVyLT5zZXRQYWdlTWFnbmlmeVRyYW5zZm9ybShkZWx0YU1hdHJpeCk7Cit9CisKK3ZvaWQgQ0NM
YXllclRyZWVIb3N0SW1wbDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VT
Y2FsZSwgZmxvYXQgbWF4UGFnZVNjYWxlKQoreworICAgIG1fbWluUGFnZVNjYWxlID0gbWluUGFn
ZVNjYWxlOworICAgIG1fbWF4UGFnZVNjYWxlID0gbWF4UGFnZVNjYWxlOworCisgICAgLy8gVGhp
cyB3aWxsIGNsYW1wIG1fc2NhbGVEZWx0YSBhbmQgYXBwbHkgc2lkZSBlZmZlY3RzIGlmIGNsYW1w
ZWQuCisgICAgc2V0U2NhbGVEZWx0YShtX3NjYWxlRGVsdGEpOworfQorCit2b2lkIENDTGF5ZXJU
cmVlSG9zdEltcGw6OnVwZGF0ZU1heFNjcm9sbFBvc2l0aW9uKCkKK3sKKyAgICBpZiAoIW1fc2Ny
b2xsTGF5ZXJJbXBsIHx8ICFtX3Njcm9sbExheWVySW1wbC0+Y2hpbGRyZW4oKS5zaXplKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIEZsb2F0U2l6ZSB2aWV3Qm91bmRzID0gbV92aWV3cG9ydFNp
emU7CisgICAgdmlld0JvdW5kcy5zY2FsZSgxIC8gbV9zY2FsZURlbHRhKTsKKworICAgIC8vIFRP
RE8oYWVsaWFzKTogSGFyZGNvZGluZyB0aGUgZmlyc3QgY2hpbGQgaGVyZSBpcyB3ZWlyZC4gVGhp
bmsgb2YKKyAgICAvLyBhIGNsZWFuZXIgd2F5IHRvIGdldCB0aGUgY29udGVudEJvdW5kcyBvbiB0
aGUgSW1wbCBzaWRlLgorICAgIEludFNpemUgbWF4U2Nyb2xsID0gbV9zY3JvbGxMYXllckltcGwt
PmNoaWxkcmVuKClbMF0tPmNvbnRlbnRCb3VuZHMoKSAtIGV4cGFuZGVkSW50U2l6ZSh2aWV3Qm91
bmRzKTsKKyAgICAvLyBUaGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBjb250ZW50
cyBpbiBzb21lIGNhc2VzLCBzdWNoIGFzCisgICAgLy8gaGF2aW5nIGEgdmVydGljYWwgc2Nyb2xs
YmFyIGJ1dCBubyBob3Jpem9udGFsIG92ZXJmbG93LgorICAgIG1heFNjcm9sbC5jbGFtcE5lZ2F0
aXZlVG9aZXJvKCk7CisKKyAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0TWF4U2Nyb2xsUG9zaXRp
b24obWF4U2Nyb2xsKTsKKworICAgIC8vIFRPRE8oYWVsaWFzKTogQWxzbyB1cGRhdGUgc3VibGF5
ZXJzLgogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFpvb21BbmltYXRvclRyYW5z
Zm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgem9vbSkKQEAgLTIwNywyMCArMjg3LDYx
IEBAIGJvb2wgQ0NMYXllclRyZWVIb3N0SW1wbDo6aGF2ZVdoZWVsRXZlbnRIYW5kbGVycygpCiAg
ICAgcmV0dXJuIG1faGF2ZVdoZWVsRXZlbnRIYW5kbGVyczsKIH0KIAotUGFzc093blB0cjxDQ1Nj
cm9sbFVwZGF0ZVNldD4gQ0NMYXllclRyZWVIb3N0SW1wbDo6cHJvY2Vzc1Njcm9sbERlbHRhcygp
Cit2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZUJlZ2luKCkKIHsKLSAgICBP
d25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+IHNjcm9sbEluZm8gPSBhZG9wdFB0cihuZXcgQ0NTY3Jv
bGxVcGRhdGVTZXQoKSk7Ci0gICAgLy8gRklYTUU6IHRyYWNrIHNjcm9sbHMgZnJvbSBsYXllcnMg
b3RoZXIgdGhhbiB0aGUgcm9vdAotICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiAhbV9zY3Jv
bGxMYXllckltcGwtPnNjcm9sbERlbHRhKCkuaXNaZXJvKCkpIHsKLSAgICAgICAgQ0NMYXllclRy
ZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZvIGluZm87Ci0gICAgICAgIGluZm8ubGF5ZXJJ
ZCA9IG1fc2Nyb2xsTGF5ZXJJbXBsLT5pZCgpOwotICAgICAgICBpbmZvLnNjcm9sbERlbHRhID0g
bV9zY3JvbGxMYXllckltcGwtPnNjcm9sbERlbHRhKCk7Ci0gICAgICAgIHNjcm9sbEluZm8tPmFw
cGVuZChpbmZvKTsKLQotICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0U2Nyb2xsUG9zaXRp
b24obV9zY3JvbGxMYXllckltcGwtPnNjcm9sbFBvc2l0aW9uKCkgKyBtX3Njcm9sbExheWVySW1w
bC0+c2Nyb2xsRGVsdGEoKSk7Ci0gICAgICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRQb3NpdGlv
bihtX3Njcm9sbExheWVySW1wbC0+cG9zaXRpb24oKSAtIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3Jv
bGxEZWx0YSgpKTsKLSAgICAgICAgbV9zY3JvbGxMYXllckltcGwtPnNldFNjcm9sbERlbHRhKElu
dFNpemUoKSk7CisgICAgbV9waW5jaEdlc3R1cmVBY3RpdmUgPSB0cnVlOworfQorCit2b2lkIEND
TGF5ZXJUcmVlSG9zdEltcGw6OnBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCBtYWduaWZ5RGVsdGEs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRQ
b2ludCYgYW5jaG9yKQoreworICAgIFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3RJbXBsOjpw
aW5jaEdlc3R1cmVVcGRhdGUiLCB0aGlzLCAwKTsKKworICAgIGlmIChtYWduaWZ5RGVsdGEgPT0g
MS4wKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gS2VlcCB0aGUgY2VudGVyLW9mLXBpbmNoIGFuY2hvciBzcGVj
aWZpZWQgYnkgKHgsIHkpIGluIGEgc3RhYmxlCisgICAgLy8gcG9zaXRpb24gb3ZlciB0aGUgY291
cnNlIG9mIHRoZSBtYWduaWZ5LgorICAgIEZsb2F0UG9pbnQgcHJldlNjYWxlQW5jaG9yKGFuY2hv
ci54KCkgLyBtX3NjYWxlRGVsdGEsIGFuY2hvci55KCkgLyBtX3NjYWxlRGVsdGEpOworICAgIHNl
dFNjYWxlRGVsdGEobV9zY2FsZURlbHRhICogbWFnbmlmeURlbHRhKTsKKyAgICBGbG9hdFBvaW50
IG5ld1NjYWxlQW5jaG9yKGFuY2hvci54KCkgLyBtX3NjYWxlRGVsdGEsIGFuY2hvci55KCkgLyBt
X3NjYWxlRGVsdGEpOworCisgICAgRmxvYXRTaXplIG1vdmUgPSBwcmV2U2NhbGVBbmNob3IgLSBu
ZXdTY2FsZUFuY2hvcjsKKworICAgIHNjcm9sbFJvb3RMYXllcihyb3VuZGVkSW50U2l6ZShtb3Zl
KSk7CisKKyAgICBtX2NsaWVudC0+c2V0TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQoKTsKK30KKwor
dm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpwaW5jaEdlc3R1cmVFbmQoKQoreworICAgIG1fcGlu
Y2hHZXN0dXJlQWN0aXZlID0gZmFsc2U7CisKKyAgICBtX2NsaWVudC0+c2V0TmVlZHNDb21taXRP
bkltcGxUaHJlYWQoKTsKK30KKworUGFzc093blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBDQ0xh
eWVyVHJlZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKCkKK3sKKyAgICBPd25QdHI8Q0NT
Y3JvbGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBDQ1Njcm9sbEFuZFNj
YWxlU2V0KCkpOworICAgIGJvb2wgZGlkTW92ZSA9IG1fc2Nyb2xsTGF5ZXJJbXBsICYmICghbV9z
Y3JvbGxMYXllckltcGwtPnNjcm9sbERlbHRhKCkuaXNaZXJvKCkgfHwgbV9zY2FsZURlbHRhICE9
IDEuMGYpOworICAgIGlmICghZGlkTW92ZSB8fCBtX3BpbmNoR2VzdHVyZUFjdGl2ZSkgeworICAg
ICAgICBzY3JvbGxJbmZvLT5wYWdlU2NhbGUgPSBtX3BhZ2VTY2FsZTsKKyAgICAgICAgcmV0dXJu
IHNjcm9sbEluZm8ucmVsZWFzZSgpOwogICAgIH0KKworICAgIC8vIEZJWE1FOiB0cmFjayBzY3Jv
bGxzIGZyb20gbGF5ZXJzIG90aGVyIHRoYW4gdGhlIHJvb3QKKyAgICBzY3JvbGxJbmZvLT5wYWdl
U2NhbGUgPSBtX3BhZ2VTY2FsZSAqIG1fc2NhbGVEZWx0YTsKKyAgICBDQ0xheWVyVHJlZUhvc3RD
b21tb246OlNjcm9sbFVwZGF0ZUluZm8gc2Nyb2xsOworICAgIHNjcm9sbC5sYXllcklkID0gbV9z
Y3JvbGxMYXllckltcGwtPmlkKCk7CisgICAgc2Nyb2xsLnNjcm9sbERlbHRhID0gbV9zY3JvbGxM
YXllckltcGwtPnNjcm9sbERlbHRhKCk7CisgICAgc2Nyb2xsSW5mby0+c2Nyb2xscy5hcHBlbmQo
c2Nyb2xsKTsKKworICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRTY3JvbGxQb3NpdGlvbihtX3Nj
cm9sbExheWVySW1wbC0+c2Nyb2xsUG9zaXRpb24oKSArIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3Jv
bGxEZWx0YSgpKTsKKyAgICBtX3Njcm9sbExheWVySW1wbC0+c2V0UG9zaXRpb24obV9zY3JvbGxM
YXllckltcGwtPnBvc2l0aW9uKCkgLSBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKSk7
CisgICAgbV9zY3JvbGxMYXllckltcGwtPnNldFNjcm9sbERlbHRhKEludFNpemUoKSk7CisKICAg
ICByZXR1cm4gc2Nyb2xsSW5mby5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuaAppbmRleCBiNTNlMjAwMTkxOGM2NTY2NGMyY2NhNjA1NWVhN2U1ZGUwYjRi
NjIyLi5jODdjYzFjYzg0NjcwN2M3ZDc3MDNhN2NlODk3YjA0YTcxMzQyYzFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCkBAIC05Nyw5ICs5NywxNyBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9y
dFNpemU7IH0KICAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShjb25zdCBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYpOwogCisgICAgdm9pZCBzZXRQYWdlU2NhbGUoZmxvYXQpOworICAgIGZs
b2F0IHBhZ2VTY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlOyB9CisgICAgdm9pZCBz
ZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdl
U2NhbGUpOworCiAgICAgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHJldHVy
biBtX3NldHRpbmdzOyB9CiAKLSAgICBQYXNzT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBwcm9j
ZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCk7
CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZVVwZGF0ZShmbG9hdCwgY29uc3QgSW50UG9p
bnQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGluY2hHZXN0dXJlRW5kKCk7CisgICAgUGFzc093blB0
cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBwcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgdm9pZCB1
cGRhdGVNYXhTY3JvbGxQb3NpdGlvbigpOwogCiBwcm90ZWN0ZWQ6CiAgICAgQ0NMYXllclRyZWVI
b3N0SW1wbChjb25zdCBDQ1NldHRpbmdzJiwgQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCopOwpA
QCAtMTA4LDYgKzExNiw4IEBAIHByb3RlY3RlZDoKICAgICBpbnQgbV9mcmFtZU51bWJlcjsKIAog
cHJpdmF0ZToKKyAgICB2b2lkIHNldFNjYWxlRGVsdGEoZmxvYXQpOworCiAgICAgT3duUHRyPExh
eWVyUmVuZGVyZXJDaHJvbWl1bT4gbV9sYXllclJlbmRlcmVyOwogICAgIFJlZlB0cjxDQ0xheWVy
SW1wbD4gbV9yb290TGF5ZXJJbXBsOwogICAgIFJlZlB0cjxDQ0xheWVySW1wbD4gbV9zY3JvbGxM
YXllckltcGw7CkBAIC0xMTUsNiArMTI1LDEyIEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBtX3Zp
ZXdwb3J0U2l6ZTsKICAgICBib29sIG1fdmlzaWJsZTsKICAgICBib29sIG1faGF2ZVdoZWVsRXZl
bnRIYW5kbGVyczsKKworICAgIGZsb2F0IG1fcGFnZVNjYWxlOworICAgIGZsb2F0IG1fc2NhbGVE
ZWx0YTsKKyAgICBmbG9hdCBtX21pblBhZ2VTY2FsZSwgbV9tYXhQYWdlU2NhbGU7CisKKyAgICBi
b29sIG1fcGluY2hHZXN0dXJlQWN0aXZlOwogfTsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsQ29udHJvbGxlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxD
b250cm9sbGVyLmgKaW5kZXggOTJiOTVkN2RjYWNkNzRhZGYzZGJlNTZmY2YyYTBkZTA4OThiY2M0
Mi4uYzg0MWQyNDNhODA1YTJkMGRmYzI0MDQzZTc5NjgyZWMwMGY4ZWNkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxDb250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NTY3JvbGxDb250cm9sbGVyLmgKQEAgLTM2LDYgKzM2LDkgQEAgY2xhc3MgQ0NTY3JvbGxD
b250cm9sbGVyIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUm9vdExheWVyKGNv
bnN0IEludFNpemUmKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhdmVXaGVlbEV2ZW50SGFuZGxl
cnMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUJlZ2luKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBwaW5jaEdlc3R1cmVVcGRhdGUoZmxvYXQgbWFnbmlmeURlbHRhLCBjb25z
dCBJbnRQb2ludCYgYW5jaG9yKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpbmNoR2VzdHVyZUVu
ZCgpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIENDU2Nyb2xsQ29udHJvbGxlcigpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
aW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCBlYjFkY2Q0ZGRiN2U4OGZi
OTkzNmM5Y2RmZDY4YjRkMWYzMWQ3MDJmLi42MjkxZGI1N2ExMWEzNTRiYjA1Y2VkNzJhZDJlMWEx
ZWM3Mzc4NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAt
MTY2LDggKzE2Niw4IEBAIHZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21taXQoKQogI2lm
ICFBU1NFUlRfRElTQUJMRUQKICAgICAgICAgLy8gSW4gdGhlIHNpbmdsZS10aHJlYWRlZCBjYXNl
LCB0aGUgc2Nyb2xsIGRlbHRhcyBzaG91bGQgbmV2ZXIgYmUKICAgICAgICAgLy8gdG91Y2hlZCBv
biB0aGUgaW1wbCBsYXllciB0cmVlLgotICAgICAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+
IHNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7
Ci0gICAgICAgIEFTU0VSVCghc2Nyb2xsSW5mby0+c2l6ZSgpKTsKKyAgICAgICAgT3duUHRyPEND
U2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9j
ZXNzU2Nyb2xsRGVsdGFzKCk7CisgICAgICAgIEFTU0VSVCghc2Nyb2xsSW5mby0+c2Nyb2xscy5z
aXplKCkpOwogI2VuZGlmCiAgICAgfQogICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29tbWl0Q29tcGxl
dGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggZGUxOTVlZjIyNmUwMmQxNjhi
MWY0NGQxNDY0YTc0MmVhMjQ3Yjc5Ny4uM2MxMzc3M2I2NWMwNzY0Mjg5NzVkMTZkOWQ4NzRmYTkw
MGZmMDhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTM0MSwxMSArMzQxLDEx
IEBAIFBhc3NPd25QdHI8Q0NNYWluVGhyZWFkOjpUYXNrPiBDQ1RocmVhZFByb3h5OjpjcmVhdGVC
ZWdpbkZyYW1lQW5kQ29tbWl0VGFza09uSW1wCiAgICAgLy8gbnVtYmVycyBiZWxvdyB0aGUgbGFz
dCBleGVjdXRlZCBvbmUuCiAgICAgaW50IHRoaXNUYXNrU2VxdWVuY2VOdW1iZXIgPSBtX251bUJl
Z2luRnJhbWVBbmRDb21taXRzSXNzdWVkT25JbXBsVGhyZWFkOwogICAgIG1fbnVtQmVnaW5GcmFt
ZUFuZENvbW1pdHNJc3N1ZWRPbkltcGxUaHJlYWQrKzsKLSAgICBPd25QdHI8Q0NTY3JvbGxVcGRh
dGVTZXQ+IHNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVs
dGFzKCk7CisgICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm8gPSBtX2xh
eWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAgICAgcmV0dXJuIGNyZWF0
ZU1haW5UaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0
LCB0aGlzVGFza1NlcXVlbmNlTnVtYmVyLCBmcmFtZUJlZ2luVGltZSwgc2Nyb2xsSW5mby5yZWxl
YXNlKCkpOwogfQogCi12b2lkIENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVBbmRDb21taXQoaW50
IHNlcXVlbmNlTnVtYmVyLCBkb3VibGUgZnJhbWVCZWdpblRpbWUsIFBhc3NPd25QdHI8Q0NTY3Jv
bGxVcGRhdGVTZXQ+IHNjcm9sbEluZm8pCit2b2lkIENDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWVB
bmRDb21taXQoaW50IHNlcXVlbmNlTnVtYmVyLCBkb3VibGUgZnJhbWVCZWdpblRpbWUsIFBhc3NP
d25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gc2Nyb2xsSW5mbykKIHsKICAgICBUUkFDRV9FVkVO
VCgiQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZUFuZENvbW1pdCIsIHRoaXMsIDApOwogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0zNTMsNyArMzUzLDcgQEAgdm9pZCBDQ1RocmVhZFBy
b3h5OjpiZWdpbkZyYW1lQW5kQ29tbWl0KGludCBzZXF1ZW5jZU51bWJlciwgZG91YmxlIGZyYW1l
QmVnaW5UaW0KICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gU2Nyb2xsIGRlbHRhcyBuZWVkIHRv
IGJlIGFwcGxpZWQgZXZlbiBpZiB0aGUgY29tbWl0IHdpbGwgYmUgZHJvcHBlZC4KLSAgICBtX2xh
eWVyVHJlZUhvc3QtPmFwcGx5U2Nyb2xsRGVsdGFzKCpzY3JvbGxJbmZvLmdldCgpKTsKKyAgICBt
X2xheWVyVHJlZUhvc3QtPmFwcGx5U2Nyb2xsQW5kU2NhbGUoKnNjcm9sbEluZm8uZ2V0KCkpOwog
CiAgICAgLy8gRHJvcCBiZWdpbkZyYW1lQW5kQ29tbWl0IGNhbGxzIHRoYXQgb2NjdXIgb3V0IG9m
IHNlcXVlbmNlLiBTZWUgY3JlYXRlQmVnaW5GcmFtZUFuZENvbW1pdFRhc2tPbkltcGxUaHJlYWQg
Zm9yCiAgICAgLy8gYW4gZXhwbGFuYXRpb24gb2YgaG93IG91dC1vZi1zZXF1ZW5jZSBiZWdpbkZy
YW1lQW5kQ29tbWl0IHRhc2tzIGNhbiBvY2N1ci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAppbmRl
eCAxNjc2ZjgzNzBiYmVjMGY0NmQ5MDFkOTQzZTczYTVmOTcxODlmMGUzLi5kZmYwNWJiZGY2YTkz
M2ZlMTY4YjVmZmRkZmZjZjdiZDlkODA3ZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCkBA
IC04MSw3ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ0NUaHJlYWRQcm94eShDQ0xh
eWVyVHJlZUhvc3QqKTsKIAogICAgIC8vIENhbGxlZCBvbiBDQ01haW5UaHJlYWQKLSAgICB2b2lk
IGJlZ2luRnJhbWVBbmRDb21taXQoaW50IHNlcXVlbmNlTnVtYmVyLCBkb3VibGUgZnJhbWVCZWdp
blRpbWUsIFBhc3NPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+KTsKKyAgICB2b2lkIGJlZ2luRnJh
bWVBbmRDb21taXQoaW50IHNlcXVlbmNlTnVtYmVyLCBkb3VibGUgZnJhbWVCZWdpblRpbWUsIFBh
c3NPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4pOwogICAgIHZvaWQgZGlkQ29tbWl0QW5kRHJh
d0ZyYW1lKGludCBmcmFtZU51bWJlcik7CiAKICAgICAvLyBDYWxsZWQgb24gQ0NUaHJlYWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdD
bGllbnQuaAppbmRleCAwOTEyNjljN2FiNTQ5MDhmYmYyODU4MzNiNWUxODYwY2EzZDJiMzNmLi42
ZjUwMDk2MDc2Y2RmNjYyYjcyNGEwMTgzNDUzNzRjNGIwZDZhZDc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCkBA
IC0zNyw5ICszNywxMSBAQCBwdWJsaWM6CiAgICAgLy8gc28gdGhhdCBsYXllcnMgY2FuIGJlIHVw
ZGF0ZWQgYXQgdGhlIGdpdmVuIGZyYW1lIHRpbWUuCiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGVB
bmRMYXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSA9IDA7CiAKLSAgICAvLyBBcHBsaWVzIGEg
c2Nyb2xsIGRlbHRhIHRvIHRoZSByb290IGxheWVyLiBUaGlzIGlzIHRyaWdnZXJlZCBieSBldmVu
dHMKLSAgICAvLyBzZW50IHRvIHRoZSBjb21wb3NpdG9yIHRocmVhZCB0aHJvdWdoIHRoZSBXZWJD
b21wb3NpdG9yIGludGVyZmFjZS4KLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShj
b25zdCBXZWJTaXplJikgPSAwOworICAgIC8vIEFwcGxpZXMgYSBzY3JvbGwgZGVsdGEgdG8gdGhl
IHJvb3QgbGF5ZXIsIHdoaWNoIGlzIGJ1bmRsZWQgd2l0aCBhIHBhZ2UKKyAgICAvLyBzY2FsZSBm
YWN0b3IgdGhhdCBtYXkgYXBwbHkgYSBDU1MgdHJhbnNmb3JtIG9uIHRoZSB3aG9sZSBkb2N1bWVu
dCAodXNlZAorICAgIC8vIGZvciBtb2JpbGUtZGV2aWNlIHBpbmNoIHpvb21pbmcpLiBUaGlzIGlz
IHRyaWdnZXJlZCBieSBldmVudHMgc2VudCB0byB0aGUKKyAgICAvLyBjb21wb3NpdG9yIHRocmVh
ZCB0aHJvdWdoIHRoZSBXZWJDb21wb3NpdG9yIGludGVyZmFjZS4KKyAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgc2Nh
bGVGYWN0b3IpID0gMDsKIAogICAgIC8vIENyZWF0ZXMgYSAzRCBjb250ZXh0IHN1aXRhYmxlIGZv
ciB0aGUgY29tcG9zaXRpbmcuIFRoaXMgbWF5IGJlIGNhbGxlZAogICAgIC8vIG1vcmUgdGhhbiBv
bmNlIGlmIHRoZSBjb250ZXh0IGdldHMgbG9zdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXcuaAppbmRleCBjNzdmNDUyZDBmNmMyZDBjZGY0OTRkNDUzOGU4NTA4YzcwNjQ5ZGM0
Li40MjhiODI3NDdhYzFkMmY1YzA2ODNmNWFhMTlmMjE5MTRlNWI5ZDM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0yMDcsNiArMjA3LDExIEBAIHB1YmxpYzoK
ICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBkb3VibGUgem9vbUxldmVsVG9ab29tRmFjdG9yKGRv
dWJsZSB6b29tTGV2ZWwpOwogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGRvdWJsZSB6b29tRmFj
dG9yVG9ab29tTGV2ZWwoZG91YmxlIGZhY3Rvcik7CiAKKyAgICAvLyBQYWdlU2NhbGVGYWN0b3Ig
d2lsbCBiZSBmb3JjZS1jbGFtcGVkIGJldHdlZW4gbWluUGFnZVNjYWxlIGFuZCBtYXhQYWdlU2Nh
bGUKKyAgICAvLyAoYW5kIHRoZXNlIHZhbHVlcyB3aWxsIHBlcnNpc3QgdW50aWwgc2V0UGFnZVNj
YWxlRmFjdG9yTGltaXRzIGlzIGNhbGxlZAorICAgIC8vIGFnYWluKS4KKyAgICB2aXJ0dWFsIHZv
aWQgc2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VTY2FsZSwgZmxvYXQgbWF4
UGFnZVNjYWxlKSA9IDA7CisKICAgICAvLyBHZXRzIHRoZSBzY2FsZSBmYWN0b3Igb2YgdGhlIHBh
Z2UsIHdoZXJlIDEuMCBpcyB0aGUgbm9ybWFsIHNpemUsID4gMS4wCiAgICAgLy8gaXMgc2NhbGVk
IHVwLCA8IDEuMCBpcyBzY2FsZWQgZG93bi4KICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZh
Y3RvcigpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkNvbXBvc2l0b3JJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNv
bXBvc2l0b3JJbXBsLmNwcAppbmRleCBkOGJkM2ExNjM0MWI3OWM1ZmIyMjFkN2EzZmUyMGQ2MTgw
YzQ5YWQ3Li5jZjMzMzM1NjZlNDMxODhkOWU1MzBhYzliNWYxOGQ5ZjM0Zjc5ZmU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuY3BwCkBAIC0x
MzMsNCArMTMzLDMgQEAgaW50IFdlYkNvbXBvc2l0b3JJbXBsOjppZGVudGlmaWVyKCkgY29uc3QK
IH0KIAogfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXll
clRyZWVWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRy
ZWVWaWV3SW1wbC5jcHAKaW5kZXggMmU2OWVjMzQ3Y2RkMGU1MDVhZTU1ZjJjNTBhY2FhYTk2ZDRk
YTFiZi4uZGRiZTA2NDMxYzY1N2VkMzczNGM1NDE4ZmI3MDRlYWJmNDRjYjIwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcApA
QCAtNjUsMTAgKzY1LDEwIEBAIHZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmFuaW1hdGVBbmRM
YXlvdXQoZG91YmxlIGZyYW1lQmVnaW5UaW1lKQogICAgICAgICBtX2NsaWVudC0+YW5pbWF0ZUFu
ZExheW91dChmcmFtZUJlZ2luVGltZSk7CiB9CiAKLXZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6
OmFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZGVsdGEpCit2b2lkIFdl
YkxheWVyVHJlZVZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUpCiB7CiAgICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxEZWx0YShXZWJTaXplKGRlbHRhKSk7Cisg
ICAgICAgIG1fY2xpZW50LT5hcHBseVNjcm9sbEFuZFNjYWxlKFdlYlNpemUoc2Nyb2xsRGVsdGEp
LCBwYWdlU2NhbGUpOwogfQogCiBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBXZWJMYXll
clRyZWVWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAppbmRleCAxYjEz
YmYzNDU5MTMxODFiN2UwN2Q3ZDJiZTc4Njg4Y2Y5YzQ0M2JmLi5kNmRkNmUzMzI4NzJjN2M5YWMw
ZGQwYmRjNjgxZjZmOTBmNGY1M2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKQEAgLTQyLDcgKzQyLDcgQEAgcHJpdmF0ZToKICAg
ICBXZWJMYXllclRyZWVWaWV3SW1wbChXZWJMYXllclRyZWVWaWV3Q2xpZW50KiwgY29uc3QgV2Vi
TGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJik7CiAgICAgdmly
dHVhbCB+V2ViTGF5ZXJUcmVlVmlld0ltcGwoKTsKICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZUFu
ZExheW91dChkb3VibGUgZnJhbWVCZWdpblRpbWUpOwotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNj
cm9sbERlbHRhKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXBw
bHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxv
YXQgcGFnZVNjYWxlKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKGludCBmcmFtZU51bWJlcik7CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2Vzcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYjJkMTZlNTFjNzNlZGZjNjRh
N2MwYzAzZTg4YTM2ZDllM2ZkMGE0Yy4uZTQ0YzFhODM2N2QxNTdjMDk4YmEzYzk2YmQ2NzFlYWQ5
NjkxZGIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApA
QCAtMTg5OCw2ICsxODk4LDIxIEBAIHZvaWQgV2ViVmlld0ltcGw6OmVuYWJsZUZpeGVkTGF5b3V0
TW9kZShib29sIGVuYWJsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZnJhbWUtPnZpZXcoKS0+
c2V0VXNlRml4ZWRMYXlvdXQoZW5hYmxlKTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyAgICAvLyBBbHNvIG5vdGlmeSB0aGUgYmFzZSBsYXllciwgd2hpY2ggUmVuZGVyTGF5
ZXJDb21wb3NpdG9yIGRvZXMgbm90IHNlZS4KKyAgICBpZiAobV9ub25Db21wb3NpdGVkQ29udGVu
dEhvc3QpIHsKKyAgICAgICAgbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QtPnRvcExldmVsUm9v
dExheWVyKCktPmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOworICAgICAgICB1cGRh
dGVMYXllclRyZWVWaWV3cG9ydCgpOworICAgIH0KKyNlbmRpZgorfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBt
YXhQYWdlU2NhbGUpCit7CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKG1pblBhZ2VTY2FsZSwgbWF4
UGFnZVNjYWxlKTsKKyNlbmRpZgogfQogCiBXZWJTaXplIFdlYlZpZXdJbXBsOjpmaXhlZExheW91
dFNpemUoKSBjb25zdApAQCAtMjcwNiwxMiArMjcyMSwzMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjph
bmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKICAgICBsYXlvdXQoKTsKIH0K
IAotdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBzY3Jv
bGxEZWx0YSkKK3ZvaWQgV2ViVmlld0ltcGw6OmFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50
U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHNjYWxlRmFjdG9yKQogewogICAgIGlmICghbWFpbkZy
YW1lSW1wbCgpIHx8ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtYWluRnJhbWVJbXBsKCktPmZyYW1lVmlldygpLT5zY3JvbGxCeShzY3JvbGxE
ZWx0YSk7CisgICAgZmxvYXQgb2xkU2NhbGUgPSBwYWdlU2NhbGVGYWN0b3IoKTsKKyAgICBpZiAo
IW9sZFNjYWxlKQorICAgICAgICBvbGRTY2FsZSA9IDEuMGY7CisKKyAgICBpZiAoIXNjYWxlRmFj
dG9yIHx8IG9sZFNjYWxlID09IHNjYWxlRmFjdG9yKQorICAgICAgICBtYWluRnJhbWVJbXBsKCkt
PmZyYW1lVmlldygpLT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7CisgICAgZWxzZSB7CisgICAgICAg
IC8vIFRoZSBwYWdlIHNjYWxlIGNoYW5nZWQsIHNvIGFwcGx5IGEgc2NhbGUgYW5kIHNjcm9sbCBp
biBhIHNpbmdsZQorICAgICAgICAvLyBvcGVyYXRpb24uIFRoZSBvbGQgc2Nyb2xsIG9mZnNldCAo
YW5kIHBhc3NlZC1pbiBkZWx0YSkgYXJlCisgICAgICAgIC8vIGluIHRoZSBvbGQgY29vcmRpbmF0
ZSBzcGFjZSwgc28gd2UgZmlyc3QgbmVlZCB0byBtdWx0aXBseSB0aGVtCisgICAgICAgIC8vIGJ5
IHRoZSBwYWdlIHNjYWxlIGRlbHRhLgorICAgICAgICBXZWJTaXplIHNjcm9sbE9mZnNldCA9IG1h
aW5GcmFtZSgpLT5zY3JvbGxPZmZzZXQoKTsKKyAgICAgICAgc2Nyb2xsT2Zmc2V0LndpZHRoICs9
IHNjcm9sbERlbHRhLndpZHRoKCk7CisgICAgICAgIHNjcm9sbE9mZnNldC5oZWlnaHQgKz0gc2Ny
b2xsRGVsdGEuaGVpZ2h0KCk7CisgICAgICAgIGZsb2F0IHNjYWxlRGVsdGEgPSBzY2FsZUZhY3Rv
ciAvIG9sZFNjYWxlOworICAgICAgICBXZWJQb2ludCBzY2FsZWRTY3JvbGxPZmZzZXQoc2Nyb2xs
T2Zmc2V0LndpZHRoICogc2NhbGVEZWx0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNjcm9sbE9mZnNldC5oZWlnaHQgKiBzY2FsZURlbHRhKTsKKyAgICAgICAgc2V0UGFn
ZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yLCBzY2FsZWRTY3JvbGxPZmZzZXQpOworICAgIH0KIH0K
IAogdm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKGludCBmcmFtZU51bWJl
cikKQEAgLTI3NDYsMTUgKzI3NzksMTYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2NoZWR1bGVDb21w
b3NpdGUoKQogCiB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVMYXllclRyZWVWaWV3cG9ydCgpCiB7
Ci0gICAgaWYgKCFwYWdlKCkpCisgICAgaWYgKCFwYWdlKCkgfHwgIW1fbm9uQ29tcG9zaXRlZENv
bnRlbnRIb3N0IHx8ICFtX2xheWVyVHJlZUhvc3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIEZy
YW1lVmlldyogdmlldyA9IHBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKTsKICAgICBJbnRSZWN0
IHZpc2libGVSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyogaW5jbHVkZSBz
Y3JvbGxiYXJzICovKTsKICAgICBJbnRQb2ludCBzY3JvbGwodmlldy0+c2Nyb2xsWCgpLCB2aWV3
LT5zY3JvbGxZKCkpOwogCi0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QtPnNldFZpZXdw
b3J0KHZpc2libGVSZWN0LnNpemUoKSwgdmlldy0+Y29udGVudHNTaXplKCksIHNjcm9sbCk7Cisg
ICAgbV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QtPnNldFZpZXdwb3J0KHZpc2libGVSZWN0LnNp
emUoKSwgdmlldy0+Y29udGVudHNTaXplKCksIHNjcm9sbCwgcGFnZVNjYWxlRmFjdG9yKCkpOwog
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Vmlld3BvcnQodmlzaWJsZVJlY3Quc2l6ZSgpKTsKKyAg
ICBtX2xheWVyVHJlZUhvc3QtPnNldFBhZ2VTY2FsZShwYWdlU2NhbGVGYWN0b3IoKSk7CiB9CiAK
IFdlYkdyYXBoaWNzQ29udGV4dDNEKiBXZWJWaWV3SW1wbDo6Z3JhcGhpY3NDb250ZXh0M0QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggNGQxMmIyOTQzM2Iy
NDE5ZmU2OWM1MjY4MzIwNDI0NmFlNjE1NzRkMS4uOGRhNjMyZDI1MjZjOTc3MTdjZjI4MzE4Nzk0
YzUzZWFhMjBlZDZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CkBAIC0xNjAsNiArMTYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNjYWxl
RmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNjYWxlUGFnZShmbG9hdCBzY2FsZUZh
Y3RvciwgY29uc3QgV2ViUG9pbnQmIG9yaWdpbik7CiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VT
Y2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvciwgY29uc3QgV2ViUG9pbnQmIG9yaWdpbik7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2Nh
bGUsIGZsb2F0IG1heFBhZ2VTY2FsZSk7CiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9h
dCk7CiAgICAgdmlydHVhbCBib29sIGlzRml4ZWRMYXlvdXRNb2RlRW5hYmxlZCgpIGNvbnN0OwpA
QCAtMjIxLDcgKzIyMiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENDTGF5ZXJUcmVlSG9zdENsaWVu
dAogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlQW5kTGF5b3V0KGRvdWJsZSBmcmFtZUJlZ2luVGlt
ZSk7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpOworICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCBmbG9hdCk7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEPiBjcmVhdGVMYXllclRyZWVIb3N0Q29udGV4dDNEKCk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFtZShpbnQgZnJhbWVOdW1iZXIpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4dChib29sIHN1Y2Nlc3MpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdElt
cGxUZXN0LmNwcAppbmRleCBmYTVjNzBjYmYxYjQzMzk4YTEwMjMxMjFlMTc1YTUwMzI1YWM4YTM2
Li40YzQzNDg3ZWQ1YmYwNzdmNjk1YmZmZDI3NTI2NmFiZTZjYWIzMjIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0
LmNwcApAQCAtNTksMTQgKzU5LDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGV4cGVjdENsZWFy
ZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUobGF5ZXItPmNoaWxkcmVuKClbaV0uZ2V0KCkpOwogICAg
IH0KIAotICAgIHN0YXRpYyB2b2lkIGV4cGVjdENvbnRhaW5zKGNvbnN0IENDU2Nyb2xsVXBkYXRl
U2V0JiBzY3JvbGxJbmZvLCBpbnQgaWQsIGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQorICAg
IHN0YXRpYyB2b2lkIGV4cGVjdENvbnRhaW5zKGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmIHNj
cm9sbEluZm8sIGludCBpZCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgewogICAg
ICAgICBpbnQgdGltZXNFbmNvdW50ZXJlZCA9IDA7CiAKLSAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzY3JvbGxJbmZvLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoc2Nyb2xs
SW5mb1tpXS5sYXllcklkICE9IGlkKQorICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNj
cm9sbEluZm8uc2Nyb2xscy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHNjcm9sbElu
Zm8uc2Nyb2xsc1tpXS5sYXllcklkICE9IGlkKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgQVNTRVJUX0VRKHNjcm9sbEluZm9baV0uc2Nyb2xsRGVsdGEsIHNjcm9sbERl
bHRhKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLnNjcm9sbHNbaV0uc2Nyb2xs
RGVsdGEsIHNjcm9sbERlbHRhKTsKICAgICAgICAgICAgIHRpbWVzRW5jb3VudGVyZWQrKzsKICAg
ICAgICAgfQogCkBAIC04NCw4ICs4NCw4IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVz
dCwgc2Nyb2xsRGVsdGFOb0xheWVycykKIHsKICAgICBBU1NFUlRfRkFMU0UobV9ob3N0SW1wbC0+
cm9vdExheWVyKCkpOwogCi0gICAgT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3JvbGxJbmZv
ID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwotICAgIEFTU0VSVF9FUShzY3Jv
bGxJbmZvLT5zaXplKCksIDB1KTsKKyAgICBPd25QdHI8Q0NTY3JvbGxBbmRTY2FsZVNldD4gc2Ny
b2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKKyAgICBBU1NFUlRf
RVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDB1KTsKIH0KIAogVEVTVF9GKENDTGF5ZXJU
cmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVRyZWVCdXROb0NoYW5nZXMpCkBAIC0xMDAsMTQg
KzEwMCwxNCBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHNjcm9sbERlbHRhVHJl
ZUJ1dE5vQ2hhbmdlcykKIAogICAgIGV4cGVjdENsZWFyZWRTY3JvbGxEZWx0YXNSZWN1cnNpdmUo
cm9vdC5nZXQoKSk7CiAKLSAgICBPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+IHNjcm9sbEluZm87
CisgICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm87CiAKICAgICBzY3Jv
bGxJbmZvID0gbV9ob3N0SW1wbC0+cHJvY2Vzc1Njcm9sbERlbHRhcygpOwotICAgIEFTU0VSVF9F
UShzY3JvbGxJbmZvLT5zaXplKCksIDB1KTsKKyAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Ny
b2xscy5zaXplKCksIDB1KTsKICAgICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZl
KHJvb3QuZ2V0KCkpOwogCiAgICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3Jv
bGxEZWx0YXMoKTsKLSAgICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAwdSk7CisgICAg
QVNTRVJUX0VRKHNjcm9sbEluZm8tPnNjcm9sbHMuc2l6ZSgpLCAwdSk7CiAgICAgZXhwZWN0Q2xl
YXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIH0KIApAQCAtMTE3LDE1ICsx
MTcsMTYgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVJlcGVh
dGVkU2Nyb2xscykKICAgICBJbnRTaXplIHNjcm9sbERlbHRhKDExLCAtMTUpOwogICAgIFJlZlB0
cjxDQ0xheWVySW1wbD4gcm9vdCA9IENDTGF5ZXJJbXBsOjpjcmVhdGUoMTApOwogICAgIHJvb3Qt
PnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKyAgICByb290LT5zZXRTY3JvbGxh
YmxlKHRydWUpOwogICAgIHJvb3QtPnNldE1heFNjcm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAx
MDApKTsKICAgICByb290LT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7CiAgICAgbV9ob3N0SW1wbC0+
c2V0Um9vdExheWVyKHJvb3QpOwogCi0gICAgT3duUHRyPENDU2Nyb2xsVXBkYXRlU2V0PiBzY3Jv
bGxJbmZvOworICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvOwogCiAg
ICAgc2Nyb2xsSW5mbyA9IG1faG9zdEltcGwtPnByb2Nlc3NTY3JvbGxEZWx0YXMoKTsKICAgICBB
U1NFUlRfRVEocm9vdC0+c2Nyb2xsUG9zaXRpb24oKSwgc2Nyb2xsUG9zaXRpb24gKyBzY3JvbGxE
ZWx0YSk7Ci0gICAgQVNTRVJUX0VRKHNjcm9sbEluZm8tPnNpemUoKSwgMXUpOworICAgIEFTU0VS
VF9FUShzY3JvbGxJbmZvLT5zY3JvbGxzLnNpemUoKSwgMXUpOwogICAgIGV4cGVjdENvbnRhaW5z
KCpzY3JvbGxJbmZvLmdldCgpLCByb290LT5pZCgpLCBzY3JvbGxEZWx0YSk7CiAgICAgZXhwZWN0
Q2xlYXJlZFNjcm9sbERlbHRhc1JlY3Vyc2l2ZShyb290LmdldCgpKTsKIApAQCAtMTMzLDE0ICsx
MzQsMTQgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxEZWx0YVJlcGVh
dGVkU2Nyb2xscykKICAgICByb290LT5zY3JvbGxCeShzY3JvbGxEZWx0YTIpOwogICAgIHNjcm9s
bEluZm8gPSBtX2hvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAgICAgQVNTRVJUX0VR
KHJvb3QtPnNjcm9sbFBvc2l0aW9uKCksIHNjcm9sbFBvc2l0aW9uICsgc2Nyb2xsRGVsdGEgKyBz
Y3JvbGxEZWx0YTIpOwotICAgIEFTU0VSVF9FUShzY3JvbGxJbmZvLT5zaXplKCksIDF1KTsKKyAg
ICBBU1NFUlRfRVEoc2Nyb2xsSW5mby0+c2Nyb2xscy5zaXplKCksIDF1KTsKICAgICBleHBlY3RD
b250YWlucygqc2Nyb2xsSW5mby5nZXQoKSwgcm9vdC0+aWQoKSwgc2Nyb2xsRGVsdGEyKTsKICAg
ICBleHBlY3RDbGVhcmVkU2Nyb2xsRGVsdGFzUmVjdXJzaXZlKHJvb3QuZ2V0KCkpOwogCiAgICAg
cm9vdC0+c2Nyb2xsQnkoSW50U2l6ZSgpKTsKICAgICBzY3JvbGxJbmZvID0gbV9ob3N0SW1wbC0+
cHJvY2Vzc1Njcm9sbERlbHRhcygpOwogICAgIEFTU0VSVF9FUShyb290LT5zY3JvbGxQb3NpdGlv
bigpLCBzY3JvbGxQb3NpdGlvbiArIHNjcm9sbERlbHRhICsgc2Nyb2xsRGVsdGEyKTsKLSAgICBB
U1NFUlRfRVEoc2Nyb2xsSW5mby0+c2l6ZSgpLCAwdSk7CisgICAgQVNTRVJUX0VRKHNjcm9sbElu
Zm8tPnNjcm9sbHMuc2l6ZSgpLCAwdSk7CiAgICAgZXhwZWN0Q2xlYXJlZFNjcm9sbERlbHRhc1Jl
Y3Vyc2l2ZShyb290LmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKaW5kZXggNTljYmFiMTEwYjZkM2RmZjY0
OTlmMzQyMzVhN2VhMTI2OTdjZGUwYS4uOWQ5MWJjZDBlMDU1OTJhMWYwYTc2MGZkODJhODI2YmRi
NzIwY2IzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVy
VHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5
ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgYmVnaW5Db21taXRPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgY29tbWl0Q29tcGxldGVPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdElt
cGwqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVyc09uQ0NUaHJlYWQoQ0NMYXllclRy
ZWVIb3N0SW1wbCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0
IEludFNpemUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25z
dCBJbnRTaXplJiwgZmxvYXQpIHsgfQogfTsKIAogLy8gQWRhcHRzIENDTGF5ZXJUcmVlSG9zdElt
cGwgZm9yIHRlc3QuIFJ1bnMgcmVhbCBjb2RlLCB0aGVuIGludm9rZXMgdGVzdCBob29rcy4KQEAg
LTE1Myw5ICsxNTMsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZpcnR1YWwgdm9p
ZCBhcHBseVNjcm9sbERlbHRhKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQorICAgIHZpcnR1
YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBm
bG9hdCBzY2FsZSkKICAgICB7Ci0gICAgICAgIG1fdGVzdEhvb2tzLT5hcHBseVNjcm9sbERlbHRh
KHNjcm9sbERlbHRhKTsKKyAgICAgICAgbV90ZXN0SG9va3MtPmFwcGx5U2Nyb2xsQW5kU2NhbGUo
c2Nyb2xsRGVsdGEsIHNjYWxlKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUxheWVyVHJlZUhvc3RDb250ZXh0M0QoKQpAQCAtNjI0LDcg
KzYyNCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBiZWdpblRlc3QoKQogICAgIHsK
LSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0TWF4U2Nyb2xsUG9zaXRp
b24oSW50U2l6ZSgxMDAsIDEwMCkpOworICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXll
cigpLT5zZXRTY3JvbGxhYmxlKHRydWUpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RM
YXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihtX2luaXRpYWxTY3JvbGwpOwogICAgICAgICBwb3N0
U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQoKTsKICAgICB9CkBAIC02NDcsNiArNjQ3LDggQEAg
cHVibGljOgogICAgICAgICBDQ0xheWVySW1wbCogcm9vdCA9IGltcGwtPnJvb3RMYXllcigpOwog
ICAgICAgICBFWFBFQ1RfRVEocm9vdC0+c2Nyb2xsRGVsdGEoKSwgSW50U2l6ZSgpKTsKIAorICAg
ICAgICByb290LT5zZXRTY3JvbGxhYmxlKHRydWUpOworICAgICAgICByb290LT5zZXRNYXhTY3Jv
bGxQb3NpdGlvbihJbnRTaXplKDEwMCwgMTAwKSk7CiAgICAgICAgIHJvb3QtPnNjcm9sbEJ5KG1f
c2Nyb2xsQW1vdW50KTsKIAogICAgICAgICBpZiAoaW1wbC0+ZnJhbWVOdW1iZXIoKSA9PSAxKSB7
CkBAIC02NjAsNyArNjYyLDcgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgfQogCi0gICAgdmly
dHVhbCB2b2lkIGFwcGx5U2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCisg
ICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xs
RGVsdGEsIGZsb2F0IHNjYWxlKQogICAgIHsKICAgICAgICAgSW50UG9pbnQgcG9zaXRpb24gPSBt
X2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICBt
X2xheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLT5zZXRTY3JvbGxQb3NpdGlvbihwb3NpdGlvbiAr
IHNjcm9sbERlbHRhKTsKQEAgLTY5NCw3ICs2OTYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgYmVnaW5UZXN0KCkKICAgICB7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExh
eWVyKCktPnNldE1heFNjcm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDApKTsKKyAgICAgICAg
bV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsYWJsZSh0cnVlKTsKICAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24obV9pbml0
aWFsU2Nyb2xsKTsKICAgICAgICAgcG9zdFNldE5lZWRzQ29tbWl0VG9NYWluVGhyZWFkKCk7CiAg
ICAgfQpAQCAtNzEzLDYgKzcxNSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xh
eWVyc09uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCogaW1wbCkKICAgICB7CiAgICAgICAg
IENDTGF5ZXJJbXBsKiByb290ID0gaW1wbC0+cm9vdExheWVyKCk7CisgICAgICAgIHJvb3QtPnNl
dFNjcm9sbGFibGUodHJ1ZSk7CisgICAgICAgIHJvb3QtPnNldE1heFNjcm9sbFBvc2l0aW9uKElu
dFNpemUoMTAwLCAxMDApKTsKIAogICAgICAgICBpZiAoaW1wbC0+ZnJhbWVOdW1iZXIoKSA9PSAx
KSB7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocm9vdC0+c2Nyb2xsRGVsdGEoKSwgSW50U2l6ZSgp
KTsKQEAgLTczNSw3ICs3MzksNyBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkK
KyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3Jv
bGxEZWx0YSwgZmxvYXQgc2NhbGUpCiAgICAgewogICAgICAgICBJbnRQb2ludCBwb3NpdGlvbiA9
IG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNjcm9sbFBvc2l0aW9uKCk7CiAgICAgICAg
IG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9u
ICsgc2Nyb2xsRGVsdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9MYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xh
eWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCBjNDM3ZjhhY2UwYTAxNGIxMDVlMzdmZGU3MDE1MGYw
ZDY4Y2Y5NDYzLi5lZDljZWNiOTYzNjYxOWFjZDI1ZTQwMjA1OTFhZGE2ZDM2M2E5MzFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNw
cApAQCAtNjQ2LDYgKzY0Niw3IEBAIFRFU1RfRihMYXllckNocm9taXVtVGVzdCwgY2hlY2tQcm9w
ZXJ0eUNoYW5nZUNhdXNlc0NvcnJlY3RCZWhhdmlvcikKICAgICBFWEVDVVRFX0FORF9WRVJJRllf
Tk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAxLCB0ZXN0TGF5ZXItPnNldE9wYXF1
ZShmYWxzZSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUiht
b2NrRGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCg0LjBmLCA5
LjBmKSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2Nr
RGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0U3VibGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtYXRp
b25NYXRyaXgoKSkpOworICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklP
Uihtb2NrRGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0U2Nyb2xsYWJsZSh0cnVlKSk7CiAgICAg
RVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tEZWxlZ2F0ZSwgMSwg
dGVzdExheWVyLT5zZXRUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgoKSkpOwogICAgIEVY
RUNVVEVfQU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDEsIHRl
c3RMYXllci0+c2V0RG91YmxlU2lkZWQoZmFsc2UpKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>